70% сайтов имеют уязвимости высокой степени риска, которые приводят к компрометации ресурса и утечки данных.

Penetration test (сокр. pentest) или тест на проникновение - моделирование действий хакера на сайт, с целью получения абсолютно объективной оценки текущего уровня информационной безопасности исследуемого ресурса.

Выполнение данных работ позволяет разработать адекватную и всеобъемлющую программу мероприятий по повышению уровня защищенности веб-приложения, что в свою очередь приводит к снижению операционных, финансовых и репутационных рисков до приемлемого уровня. Проще говоря, это конечный логический этап при разработке вашего сайта, если вы действительно всерьез задумались о безопасности.

Зачем проводить тест на проникновение?

Проведения теста на проникновения решает в первую очередь следующие задачи:

  • выявление недостатков в применяемых клиентом мерах информационной безопасности и оценка возможности их использования нарушителем
  • практическая демонстрация возможности использования уязвимостей (на примере наиболее критических)
  • получение на основе объективных свидетельств комплексной оценки текущего уровня защищенности веб-приложения
  • выработка рекомендаций по устранению выявленных уязвимостей и недостатков с целью повышения уровня защищенности веб-приложения

В большинстве случаев тестирование проходит методом черного ящик (black box).

При таком методе используется следующая модель нарушителя: высококвалифицированный внешний нарушитель (уровень квалификации - хакер), действующий со стороны сети Интернет, не имеющий никаких привилегий и не обладающий никакими данными об исследуемом ресурсе, осуществляющий атаки, направленные на получение несанкционированного доступа к веб-приложению. Единственная информация, которой владеет исполнитель – адрес сайта.

При проведении теста на проникновение используются общепризнанные стандарты и руководства по обеспечению информационной безопасности, такие как:

  • OWASP Testing Guide
  • OWASP Top10
  • Web Application Security Consortium Threat (WASC) Classification
  • Стандарты серии ISO 17799/27000

Проведение работ можно логически разбить на следующие этапы:

1. Сбор и анализ информации

2. Идентификация уязвимостей

3. Реализация атаки на веб-приложение

4. Анализ и составление отчета

5. Устранение уязвимостей

Сбор и анализ информации.

На данном этапе производится сканирование портов исследуемого ресурса, а также идентификация доступных сервисов, служб, средств защиты.

Идентификация уязвимостей.

Сбор и анализ информации об имеющихся уязвимостях в обнаруженных версиях служб, сервисов, скриптах. Выявление способов использования уязвимостей, оценка рисков использования уязвимостей. Тестирование уязвимостей OWASP Top10 (https://www.owasp.org). Анализ и тестирование логики веб-приложений, проверка возможности раскрытияе чувствительных данных, тестирование механизмов проверки входных данных (SQL Injection, XML Injection, XSS, Code Injection, B/H/S overflows) и т.д.

Реализация атаки на веб-приложение.

Проверка выполнение произвольного кода на стороне сервера, получение прав на чтение или запись файлов/бд на сервере, доступ к приватной информации и т.д.

Анализ и составление отчетов.

Здесь происходит объединение и упорядочивание информации, полученной в процессе тестирования. Составляется отчет, который содержит: обзорный отчет, отчет об обнаруженных уязвимостях, вывод о состоянии информационной безопасности исследуемого ресурса и план по устранению выявленных уязвимостей.

Как должен выглядеть список проверок и тестов?

В качестве приоритетных векторов атак, для проверки их реализуемости в отношении сценариев веб-приложения используются нижеперечисленные группы тестов и проверок:

1. «Abuse of Functionality». Злоупотребление функциональными возможностями. Использование функций веб-приложения с целью обхода механизмов разграничение доступа.

2. «Brute Force». Перебор паролей по словарям простых и стандартных паролей.

3. «Directory Indexing» Поиск листинга директорий.

4. «Content Spoofing».Подмена содержания сайта. отображение удаленного

5. «Credential/Session Prediction».Предсказуемое значение идентификатора

сессии позволяет перехватывать сессии других пользователей. Подобные атаки

выполняются путем предсказания или угадывания уникального идентификатора

сессии пользователя.

6. «Cross­Site Scripting». Атака на веб­приложение, заключающиеся во внедрении

в выдаваемую веб-­системой страницу вредоносного кода (который будет

выполнен на компьютере пользователя при открытии им этой страницы) и

взаимодействии этого кода с веб-­сервером злоумышленника.

7. «Cross­Site Request Forgery». Подделка межсайтовых запросов. Атака на

посетителей веб­сайта, использующая недостатки протокола HTTP.

8. «HTTP Response Smuggling». Атаки, основанные на некорректной передачи

ответов HTTP.

9. «HTTP Response Splitting». Атаки с разделением ответов HTTP.

10. «HTTP Request Smuggling». Атаки некорректной передачи запросов HTTP.

11. «HTTP Request Splitting». Атаки с разделением запросов HTTP.

12. «LDAP Injection». Внедрение операторов LDAP ­ атака на веб-сервер,

создающаю запросы к службе LDAP на основе данных, вводимых

пользователем.

13. «Null Byte Injection». Обход проверки фильтра веб-­инфраструктуры, путем

добавления в url символа нулевого байта, с целью изменения логики

веб-­приложения и получения НСД к файлам.

14. «OS Commanding». Выполнение команд ОС посредством манипуляций

входными данными приложения.

15. «Path Traversal». Получения доступа к файлам, директориям и командам,

находящимся вне основной директории веб-­сервера.

16. «Predictable Resource Location». Предсказуемое расположение ресурсов,

позволяющие получить доступ к скрытым данным или функциональным

возможностям.

17. «Remote File Inclusion» (RFI).Тип атаки, которая позволяет использовать

удаленный файл на серверной стороне, через скрипт на веб­-сервере.

18. «Routing Detour». Маршрутизация SOAP сообщений.

19. «Session Fixation». Фиксация сессии. Используя данный класс атак,

злоумышленник присваивает идентификатору сессии пользователя заданное

значение.

20. «SOAP Array Abuse». Инъекции определений наборов данных в SOAP­ сообщение.

21. «SSI Injection». Внедрение серверных расширений. Вставка серверных команд в

HTML код или запуск их напрямую с сервера.

22. «SQL Injection». Внедрении в запрос произвольного SQL ­кода.

23. «URL Redirector Abuse». Редиректы без верификации для спама.

24. «XPath Injection». Внедрение операторов XPath ­ атаки направленные на

веб-сервер, создающие запросы на языке XPath на основе данных, вводимых

пользователем.

25. «XML Attribute Blowup»."Раздутие" параметров.

26. «XML External Entities». Инклуд внешнего файла.

27. «XML Entity Expansion». Внедрение переменных из тела сообщения.

28. «XML Injection». Внедрении в запрос произвольного XML­кода.

29. «XQuery Injection». Внедрении в запрос произвольного XQuery ­кода.

Как должен выглядеть отчет?

Отчет должен содержать введение, где будет описана методика проведения работ, объект аудита, границы тестирования (scope), так же должна содержаться информация об используемых инструментальных средствах анализа защищенности, которые будут применяться при тестировании. Каждой уязвимости, обнаруженной в ходе проведения тестирования присваивается определенная степень риска – высокая, средняя, низкая.

Классификация уязвимостей должна быть описана в отчете, например, уязвимости присваивается высокая степень риска, если ее использование может привести к компрометации данных, доступности сервера или сервисов, выполнению произвольного кода, манипуляции с данными. Сюда же входят уязвимости связанные с отказом в обслуживании, слабые или стандартные пароли, отсутствие шифрования, доступ к произвольным файлам или конфиденциальных данных.

Для описания степени риска и оценки критичности обнаруженных уязвимостей используются классификации "The Common Vulnerability Scoring System (CVSSv2)", MITRE (CAPEC) и OWASP. Так же все уязвимости должны быть классифицированы по сложности эксплуатации и обнаружению.

Пример уязвимости:

Unrestricted upload

Потенциальный злоумышленник может обойти скрипт проверки расширения загружаемого файла, что позволит ему загрузить веб-шелл, получить контроль над приложением и доступ к серверу.

Сложность эксплуатации – легко.

Тип – удаленная.

Воздействие (CVSSv2) – Бизнесс воздействие – 10 баллов

CWE-434: Unrestricted Upload of File

OWASP Unrestricted File Upload

А надо ли...?

Необходимость проведения теста на проникновение каждый определяет сам для себя. Задачи проведения перечислены в начале статьи. Если ресурс содержит критически важные и ценные данные, имеет высокую посещаемость, идет обработка перс. данных ну или сайт просто приносит хорошие деньги - необходимость проведения теста очевидна. Достаточно вспомнить недавнюю утечки данных FL.ru http://siliconrus.com/2015/02/fl-hacked .

По опыту могу сказать, что ломают все сайты, которые представляют той или иной интерес для взломщика. Иногда взлом происходит просто ради интереса или продвижения политический идей и т.д. (http://ru.wikipedia.org/?oldid=65240870). В этом месяца было много дефейсов (подмена содержания главной страницы) исламским государством. На сайтах размещалась молитва и различные изображения, отпугивая клиентов.

06.12.2012

При проведении есть несколько видов сбора и оценки информации. Наиболее популярным во всём мире является тестирование на проникновение (пентест) . Он может проводиться в составе аудита информационной безопасности ресурса или же, как самостоятельная работа.

Тестирование на проникновение (он же пентест , penetration testing , pentest , или тест на преодоление защиты) – метод определения защищённости ресурса путём санкционированного моделирования хакерской атаки.

Тестирование на проникновение состоит из следующих этапов:

  1. 1) Планирование теста
  2. 2) Идентификация уязвимостей
  3. 3) Попытка эксплуатации уязвимостей
  4. 4)Создание и предоставление отчёта
  5. 5) Устранение уязвимостей

Иногда, после устранения уязвимостей, появляется необходимость в повторном проведении пентеста . В этом случае всё опять начинается с пункта 1 и заканчивается пунктом 5.

Теперь поподробнее о каждом этапе проведения тестирования.

Планирование пентеста

На данном этапе в ходе ряда встреч с заказчиком улаживаются как юридические моменты, так и согласовываются цели и содержание теста на проникновение .

К юридическим моментам относятся подписание официального договора, в котором определяется область деятельности и ответственности исполнителя и заказчика и оформление исполнителем подписки о неразглашении данных полученных в ходе выполнения работ.

При согласовании целей и содержания задаётся регламент, устанавливающий порядок и рамки проведения работ; выбираются объекты исследования; задаётся модель поведения нарушителя и оговариваются режимы работы на основе первоначальных знаний исполнителя о ресурсе Белый ящик», «Чёрный ящик») и информированности персонала заказчика о проводимых испытаниях («Белая шляпа», «Чёрная шляпа»).

Тестирование Белого ящика

В этом режиме работ исполнителю предоставляется полная информация о структуре ресурса и применяемых средствах защиты.

Тестирование Чёрного ящика

В данном режиме работы исполнителю предоставляется минимум информации. Иногда информация не предоставляется вовсе. Однако, учитывая то, что большинство злоумышленников длительно готовятся к проведению атаки на ресурс, предполагать у них полное отсутствие информации нецелесообразно.

Тестирование Белой шляпы

В этом режиме работ какие-либо действия по сокрытию работы исполнителя не проводятся. Он работает в тесном контакте со службой информационной безопасности , а основной задачей является обнаружение возможных уязвимостей ресурса и оценка возможности проникновения в систему .

Тестирование Чёрной шляпы

В этом режиме работ о проведении penetration testing проинформировано только руководство заказчика и руководители службы информационной безопасности. Задача исполнителя в этом режиме наиболее приближённое к реальности моделирование хакерской атаки. При этом оценивается не только уровень защищённости системы, но и уровень готовности сотрудников службы информационной безопасности.

Идентификация уязвимостей

Этот этап разделяется на:

Сбор информации о ресурсе и пользователях (сотрудниках). При этом используются общедоступные информационные ресурсы (социальные сети, электронная почта, новости);

Первичное тестирование найденных узлов («пробинг»). Изучается реакция ресурса на внешнее воздействие, составляется карта ресурса;

Детальный анализ. При помощи специально разработанных программ и ручным способом идентифицируются следующие уязвимости ресурса: внедрение оператора SQL, межсайтовое исполнение сценариев, подмена содержимого, выполнение команд ОС, уязвимости, связанные с некорректной настройкой механизмов аутентификации и авторизации.

Попытка эксплуатации уязвимостей

Данный этап функционально может делиться на технический тест на проникновение и социотехнический тест на проникновение. В первом случае это комплекс мер по имитации действий внешних нарушителей. Во втором случае – это атака на сотрудников при помощи методов «социальной инженерии» через социальные сети, электронную почту и проч. с целью получения контроля над их рабочими станциями. Однако как показывает практика, чаще всего используется комплексный pentest с элементами как технического, так и социотехнического теста.

Пентест - или тест на проникновение - показывает, насколько легко злоумышленнику проникнуть в корпоративную информационную систему. В ходе тестирования на проникновение «Перспективный мониторинг» моделирует действия злоумышленника и даёт оценку, сколько ресурсов и времени потребуется для успешной кибератаки на заказчика. Мы выявляем вероятные направления атак и даём рекомендации, как устранить слабые места в защите и повысить уровень ИБ.

Чем полезны пентесты

Тест на проникновение показывает, как будет действовать потенциальный злоумышленник во время кибератаки на организацию. Знание векторов атак даёт возможность подготовиться к ним и снизить негативные последствия.

Пентестер находит и эксплуатирует уязвимости в сетевом оборудовании, средствах защиты информации, серверном, системном, прикладном ПО, узнаёт, насколько актуальны знания сотрудников атакуемой организации в области ИБ. «Перспективный мониторинг» даёт заказчикам подробные рекомендации, как можно устранить обнаруженные уязвимости или принять компенсационные меры, и, если необходимо, помогает это сделать.

Регулярные периодические пентесты помогают оценить уровень защищённости информационной системы в динамике (меняются настройки средств защиты, приходят и уходят люди, появляются новые атаки) и ответить на вопрос - «Наша защита стала лучше после того, как мы поставили эту „железку“ за кучу денег?!». Пентестеры «Перспективного мониторинга» выясняют, насколько группа реагирования на инциденты готова противостоять действиям злоумышленника.

Также регулярное тестирование на проникновение - требование PCI DSS и ISO 27001. Согласно этим стандартам пентесты проводятся ежегодно или после существенных изменений в информационной инфраструктуре.

Приказы ФСТЭК России № 17, № 21 и № 31 требуют анализировать защищённость информационных систем. Приказ № 21 содержит требование к периодичности - не реже одного раза в 3 года.

Виды тестов на проникновение

Наша компания проводит три вида пентестов:

  1. Тест на проникновение, основанный на технических методах. В рамках него мы находим и эксплуатируем уязвимости оборудования и ПО. Мы используем инструменты автоматического и ручного тестирования, которые детектирует IPS/IDS заказчика. Поэтому этот вид пентеста проводится на заранее определённые системы в согласованное со службой ИБ время.
  2. Тест на проникновение, основанный на методах социальной инженерии. Мы проверяем уровень осведомлённости сотрудников заказчика в вопросах информационной безопасности. Любопытство, жадность и желание развлечься - лучшие инструменты злоумышленников, которыми они успешно пользуются. Для планирования атак мы пользуемся инструментами The Social Engineering Framework и Social Engineer Toolkit (SET).
  3. Социотехнический пентест. Он совмещает преимущества первых двух и помогает выявить наибольшее число вероятных направлений атак и уязвимостей.

Тесты отличаются по степени информированности пентестера о средствах защиты, сетевой инфраструктуре, аппаратном и программном обеспечении заказчика:

  • внешний без учётных данных,
  • внешний с учётными данными клиента,
  • внутренний без учётных данных,
  • внутренний с учётными данными клиента,
  • внутренний с учётными данными администратора.

Мы разработали собственную методику тестирования, которая базируется на Draft Guideline on Network Security Testing (от NIST), Open-Source Security Testing Methodology (OSSTM) и The OWASP Testing Framework.

Объекты исследований

  • СУБД.
  • Сетевые службы и сервисы (электронная почта, прокси, VoIP, FTP и пр.).
  • Протоколы различных уровней сетевой модели OSI.
  • Сетевое оборудование.
  • Беспроводные технологии.
  • Средства защиты информации.
  • Серверные и пользовательские операционные системы.

Сроки

Сбор информации - от 1 до 5 дней.

Подготовка к пентесту - до 5 дней.

Атака - 1–2 дня.

Подготовка отчёта - до 5 дней.

«Разбор полётов» с заказчиком - до 10 дней.

Обучение сотрудников заказчика - от 1 до 10 дней.

Результат

Отчёт о тестировании на проникновение содержит:

  • перечень проведённых тестов;
  • перечень выявленных уязвимостей с оценкой по методике Common Vulnerability Scoring System (CVSS);
  • описание способов эксплуатации уязвимостей для проведения атак;
  • описание применённых техник социнженерии с результатами проверки;
  • протокол действий службы реагирования;
  • рекомендации по устранению уязвимостей.

При необходимости мы разработаем программу повышения осведомлённости сотрудников в вопросах ИБ.

Существует несколько популярных securty дистрибутивов, содержащих большинство популярных утилит и приложений для проведения тестирования на проникновение. Обычно они основаны на существующих Linux-дистрибутивах и представляют из себя их переработанные версии. В этой статье будут представлены наиболее известные из них.

Kali Linux

Наиболее популярный дистрибутив на сегодняшний день. Является преемником Backtrack Linux.
Kali Linux является невероятно мощным инструментом для тестирования на проникновение, который поставляется с более чем 600 security-утилитами, такими как: Wireshark, Nmap, Armitage, Aircrack, Burp Suite, и т.д.

Существует несколько видов этого дистрибутива для различных платформ, таких как ARM, систем виртуализации, инстансов для проведения атак с мобильных платформ - Kali Nethunter.

В данный момент дистрибутив реализован в виде роллинг-релиза, который гарантирует, что вы всегда будете обладать новейшими версиями лучших инструментов и утилит для проведения тестирования на проникновение.

BlackArch

BlackArch Linux создан специально для пентестеров и специалистов по безопасности. Он поддерживает архитектуры i686 и x86_64. В комплект установки сейчас входит 1359 утилит для тестирования на проникновение и их число постоянно увеличивается. Основан на Arch Linux.

Количество утилит действительно довольно внушительное, но, некоторые из них имеют схожий функционал и новичку может быть довольно сложно разобраться в таком количестве программ.

Parrot Security OS

Набирающий популярность security-дистрибутив, основанный на Debian-linux. Довольно простой в освоении, подходит и для новичков и для профессионалов. Этот дистрибутив нацелен как на проведение тестирования на проникновение, так и на анонимную работу в сети Интернет.

Довольно легкий и эффективный инструмент, многие security специалисты нашли в нем замену все более «прожорливому» Kali, тем более что Parrot использует репозитории Kali для обновления.

BackBox

BackBox основанный на Ubuntu легковесный дистрибутив. В прямом сравнении с Kali проиграет по многим пунктам. В нем нет такого количества разнообразных инструментов, утилит и фреймворков доступных прямо “из коробки”. Нет оптимизаций ядра и прочих твиков.

Благодаря легковесной оболочке XFCE BackBox Linux больше подходит для повседневного использования в качестве рабочей лошадки на вашем личном компьютере. Существует режим - Anonymous mode – весь системный траффик пропускается через TOR-прокси. Скрипт запуска меняет MAC-адрес системы и hostname, также при выключении режима все временные файлы удаляются с помощью интегрированного пакета BleachBit.

Backbox Linux может стать отличной альтернативой Kali Linux для тех, кто ищет баланс между функциональностью и удобством повседневного использования.

Pentoo Linux

Pentoo - security дистрибутив, основанный на популярном дистрибутиве Gentoo Linux, фанатами которого являются разработчики Pentoo. Содержит множество security-утилит.

Одной из особенностей является нативная поддержка Hardened Gentoo - несколько изменений в компиляторе и ядре, которые увеличивают общую защищенность системы от взлома.

Network Security Toolkit

Network Security Toolkit - это один из многих дистрибутивов Linux типа Live CD, направленных на анализ безопасности сети. NST дает администраторам простой доступ к широкому множеству открытых сетевых приложений, многие из которых включены в сотню лучших средств безопасности, рекомендованных сайтом insecure.org. Основан на Fedora Linux.

Обладая сбалансированным набором средств сетевого мониторинга, анализа и безопасности, может дать явные преимущества сетевому администратору, для контроля безопасности вверенной ему инфраструктуры.

DEFT Linux

Это дистрибутив разработан на платформе Lubuntu и оснащен удобным графическим интерфейсом. Кроме того, в продукт добавлен набор профильных утилит, начиная антивирусами, системами поиска информации в кэше браузра, сетевыми сканерами и утилитами для выявления руткитов и заканчивая инструментами, необходимыми при проведении поиска скрытых на диске данных.

Основное предназначение - проведение мероприятий по форензике - анализа последствий взлома компьютерных систем, определения потерянных и скомпрометированных данных, а также для сбора т.н. цифровых доказательств совершения киберпреступлений.

Samurai Web Security Framework

Основное предназначение этого дистрибутива - тестирование на проникновения различных веб-приложений.

Поставляется в виде образа виртуальной машины, содержащий наиболее популярные Open Source утилиты для сбора информации и проведения различных атак на веб-приложения.

Pentest Box

PentestBox не похож на другие security-дистрибутивы, которые работают на виртуальных машинах. Было бы не совсем правильным называть эту сборку дистрибутивом, это скорее набор *nix-like утилит работающий в Windows окружении.

Имеет собственную оболочку, интерфейс выполнен в виде командной строки, содержит большое количество утилит, список которых можно самостоятельно дополнять/кастомизировать.

Если Вы Windows пользователь и Вас пугает установка виртуальных машин или Linux, Вы можете попробовать поработать с этой оболочкой.

Santoku Linux

Дистрибутив построен на основе Ubuntu linux. Представлен только в виде X64 платформы.

Эта сборка предназначена для анализа мобильных устройств и приложений - проведения анализа безопасности, извлечения данных, реверс-инжениринга, форензики, также содержит средства разработки.

WifiSlax

Это специализированный дистрибутива с подборкой инструментов для проверки безопасности систем WiFi-сетей и проведения криминалистического анализа. Дистрибутив построен на базе Slackware linux.

В настоящее время, это один из наиболее часто используемых инструментов для аудита WiFi сетей, в него включены большинстов популярных утилит для анализа защищенности беспроводных сетей, поддерживается большинство производитей сетевых карт.

Теги: Добавить метки