На предыдущую страницу
Блог

Инструменты для тестирования на проникновение

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

Что такое пентест

Пентест (от pentesting, penetration testing) – это симуляция кибератаки на компьютерную систему, нацеленная на определение уязвимостей и угроз безопасности.

Заказать тестирование на проникновение

Зачем компаниям нужен пентест

  • Обнаружение уязвимостей, в частности, проверка на возможность доступа извне или получение несанкционированных доступов внутри компании;
  • Соответствие требованиям безопасности (для тех видов деятельности, к которым предъявляют требования государство или регуляторы), и стандартам, например, КИИ, PCI DSS, 821-П (бывший 719-П), ГОСТ Р 57580 и другие;
  • Управление рисками: идентификация угроз и проверка эффективности принятых мер входит в большинство методологий управления рисками;
  • Защита от атак: результатом пентеста является не только обнаружение брешей в защите, но и план их устранения вкупе с общими рекомендациями по повышению уровня безопасности;

Методологии/виды пентеста

  1. White box (букв. “белый ящик”) – тот, кто имитирует атаку, имеет достаточно высокий уровень доступа к инфраструктуре компании или уровень знаний о ее устройстве. Самое важное отличие от других видов пентеста в ITGLOBAL.COM Security – тестирование white box проводится с доступом к исходным кодам приложения;
  2. Gray box (“серый ящик” или смешанный пентест) – пентестер имеет некоторые знания внутренней структуре или частичный доступ к ее инфраструктуре, например, как у бывшего работника компании, или, например, учетную запись с ограниченными правами;
  3. Black box (“черный ящик”, как правило проводится при внешнем пентесте) – пентестер действует как злоумышленник со стороны, который не имеет знаний об инфраструктуре компании, кроме общедоступных, и, соответственно, никаких доступов;
  4.  Скрытый пентест (он же double blind, двойной слепой) – иногда в отдельную группу выделяется подвид “черного ящика”, почти никто в компании не знает о том, что проводится пентест, включая команду технической защиты информации (именно поэтому он “двойной”);

В этой статье рассматривается проведение тестирования на проникновение методом black box/gray box, то есть без доступа к исходному коду приложений и инфраструктуре заказчика.  

Этапы и шаги пентеста

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

    Команда ITGLOBAL.COM Security обычно начинает работу с получения списка доменов заказчика, которые входят в область проведения тестирования. Дополнительно, если у заказчика есть такой запрос, можно получить учетные записи пользователей внутри системы заказчика и проводить тестирование с позиции внутреннего нарушителя (серый ящик). Первым этапом после получения списка целевых ресурсов будет проведение внешней разведки OSINT (open-source intelligence), т.е. сбора информации из открытых источников.

    Для этого используются следующие сервисы:

    • BBOT – фреймворк автоматизации OSINT, используется для поиска поддоменов, сканирования портов, выполнения скриншотов веб-страниц;
    • Hunter.io, Contactout.com –  сайты для поиска почт, связанных с компанией;
    • Breachdirectory.org, Leak-lookup.com, Intelx.io  – ресурсы для поиска почт/логинов/паролей пользователей сотрудников компании в агрегаторах утечек;
    • Wappalyzer, BuiltWith – сервисы для сбора информации о стеке технологий, используемых заказчиком (движок сайта, CMS, хостинг, серверы, сертификаты, аналитика и другое);
    • Shodan, Censys – системы для поиска информации о целевых системах и сетях, включая открытые порты, версии ПО, используемые протоколы и сертификаты. 
  2. Сканирование

    Следующим этапом проводится тщательное сканирование ресурсов заказчика с использованием автоматизированных средств, таких как:

    1. Nmap – программное обеспечение с открытым исходным кодом, используемое для:

    • сканирования хостов;
    • определения ОС;
    • определение открытых портов;
    • определение версий программ;
    • выполнения сложных задач, таких как выполнение сетевых аудитов, при помощи встроенного скриптового движка.

    2. Burp Suite – это ПО для тестирования безопасности веб-приложений в автоматическом и ручном режимах. Используется для нахождения конечных точек плюс как сканер веб-уязвимостей.

    3. Фаззеры (например, FFUF) используются для брутфорса конечных точек/путей веб-приложения.

  3. Детальный разбор ресурсов

    Далее команда вручную проверяет ресурсы заказчика, в том числе прибегая к автоматизированным инструментам. Основным ПО является Burp Suite и его плагины:

    Repeater инструмент для ручной отправки HTTP-запросов с возможностью их модификации. Полезен для проверки различных сценариев эксплуатации уязвимостей. С помощью модуля Repeater можно:

    • Отправлять запросы с измененными значениями параметров для проверки на уязвимости, связанные с пользовательским вводом;
    • Отправлять серии HTTP-запросов в определенной последовательности для проверки на уязвимости в многоэтапных процессах или уязвимости, которые связаны с состоянием соединения;
    • Вручную проверять проблемы, которые нашел Burp Scanner;

    Collaborator – модуль позволяющий обнаруживать уязвимости через взаимодействие веб-приложений с внешними серверами под контролем атакующего. Например, с помощью Burp Collaborator можно проверить работоспособность следующих уязвимостей:

    • Server-Side Request Forgery (SSRF, подделка запросов на стороне сервера): злоумышленник заставляет сервер делать запросы к произвольным внешним ресурсам;
    • Cross-Site Scripting (XSS, межсайтовый скриптинг): в результате атаки на сайт внедряется сторонний скрипт;
    • Remote Code Execution (RCE) – удаленное выполнение произвольных команд на сервере;
    • Data Exfiltration (кража данных) – выведение данных из системы на внешний сервер.

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

  4. Эксплуатация

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

    Все найденные потенциальные уязвимости проходят проверку, в ходе которой пентестеры эксплуатируют уязвимость и либо заносят ее в отчет (вместе с оценкой потенциального ущерба), либо отмечают как ложноположительный результат. Используемые инструменты напрямую зависят от типа эксплуатируемой уязвимости. Большинство уязвимостей веб-приложений можно проверить с помощью Burp Suite или Postman. Часто требуется написать скрипт для проверки уязвимости. В таком случае используется Python или Bash.

    • Burp Suite Intruder используется для перебора параметров в HTTP запросах, атак типа “brute force”;
    • Repeater нужен для ручного создания и модификации HTTP/HTTPS-запросов и анализа ответов;
    • Postman нужен для отправки HTTP-запросов, тестирования ответов и автоматизации взаимодействия с API (в отличие от Burp, он используется не только для тестирования безопасности);
    • cURL – это инструмент командной строки, который разработчики используют для передачи данных на сервер и с него;
    • Metasploit – один из самых популярных фреймворков для пентеста с широкой сферой применения, на этом этапе используется для эксплуатации известных уязвимостей, включая уязвимости из каталога CVE;
    • Консольные утилиты Linux/Kali Linux нужны для взаимодействия с базами данных, FTP-серверами, SMTP-серверами и так далее;
    • Python/Bash/JavaScript используются для написания скриптов для проверки комплексных уязвимостей.

    Немаловажную роль в оценке безопасности системы играет то, насколько быстро обнаружена атака/несанкционированный доступ и насколько хорошо пентестерам удается скрыть следы произошедшего. Это, разумеется, актуально для сценария, в котором большая часть ответственных инженеров и безопасников “нарочно” не знает о проводящемся тестировании.

  5. Анализ результатов, документирование и отчетность

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

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

    Для создания отчета используется фреймворк/платформа PTaaS (penetration testing as a service), которая упрощает документирование в ходе пентеста и структурирование информации по проектам.

    Как правило, отчёт содержит в себе:

    1. Полное и структурированное описание уязвимостей с процессом эксплуатации
    2. Описание хода пентеста, методологии (например, NIST SP800-115 и OSSTMM) и этапов тестирования, включающее в себя использованные инструменты
    3. Описание действий после эксплуатации уязвимостей (например, создание устойчивых доступов, эксфильтрация данных)
    4. Наглядные доказательства проведенного тестирования и его результатов (скриншоты, логи)
    5. Общую оценку защищенности ресурсов заказчика, аналитические выводы по наиболее встречающимся типам уязвимостей
    6. Последствия для бизнеса: оценка возможных последствий для бизнеса в случае реальной атаки
    7. Рекомендации общего характера по повышению безопасности системы, а также по устранению конкретных уязвимостей – с приоритезацией согласно степенями риска уязвимости по шкале CVSS (низкая, средняя, высокая, критическая степени)

Что делать с результатами пентеста

Нужно понимать, что найденные в процессе тестирования уязвимости – это положительный результат, который убережет вас от проблем в дальнейшем.

Первоочередная задача после получения результатов – на основании полученного отчета разработать план по устранению уязвимостей с учетом их критичности и имеющихся ресурсов. Хорошо, если этот план включает в себя не только “работу над ошибками” и изменения в процессах, но и обучение сотрудников.

Оцените данную статью

Узнавайте о выходе новых статей в блоге первыми!

Подпишитесь на нашу рассылку
Нажимая на кнопку, Вы соглашаетесь с условиями «Политики конфиденциальности»
Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies