Пентест
Тестирование на проникновение (пентест) — это определенные мероприятия, направленные на поиск уязвимостей в информационной системе. Цель пентеста — выявить любые слабые места в защите системы, которыми могут воспользоваться злоумышленники. При тестировании на проникновение эксперты создают условия, при которых имитируется реальная атака на системы компании.
В любом приложении или сети есть недостатки, которые злоумышленник может использовать для нарушения конфиденциальности, целостности или доступности данных. Цель тестирования одинакова при атаке на любой объект информатизации.
Результаты пентеста представляют собой перечень уязвимостей, риски, которые они представляют для сети или приложения, и итоговый отчет, включающий описание тестирования, объем и границы работ, методологию и рекомендации по исправлению.
Уязвимости, обнаруженные во время пентеста, можно использовать для изменения существующих политик безопасности, исправления приложений и сетей, выявления слабых мест в системах и укрепления общего состояния информационной безопасности систем и организации в целом.
Зачем проводить тестирование на проникновение
Предупреждение атак
Основная причина, по которой следует проводить тесты на проникновение, — помочь ИТ-специалистам научиться справляться с любым типом взлома со стороны злоумышленников. Пентесты наглядно показывают, насколько эффективна политика безопасности, принятая в организации.
Идентификация риска
Тестирование на проникновение также дает представление об информационных каналах в организации, которые подвергаются наибольшему риску. Пентест дает понимание, в какие новые инструменты или протоколы безопасности необходимо инвестировать. Идентификация рисков позволит выявить те слабые места, о которых в компании даже не подозревали.
Уменьшение количества ошибок
Отчеты о тестировании на проникновение также могут помочь разработчикам совершать меньше ошибок. Когда разработчики точно понимают, как злоумышленник инициировал атаку на приложение, операционную систему или другое программное обеспечение, они станут более заинтересованными в получении дополнительной информации о безопасности и с меньшей вероятностью будут совершать подобные ошибки в будущем.
Кто проводит пентесты?
Наличие в компании собственного отдела информационной безопасности является преимуществом. Однако, для проведения испытаний лучше привлекать сторонних подрядчиков, имеющих необходимые лицензии регуляторов. Дело в том, что сторонний эксперт априори обладает лучшими навыками и компетенциями в силу своего опыта работы.
Не обладая информацией об уровне защищенности целевой системы, проще выявить “белые пятна”, пропущенные разработчиками системы. Таких приглашенных специалистов называют «белыми хакерами», поскольку они взламывают систему с целью повышения безопасности, только с согласия и под контролем заказчика.
Белый хакер — это эксперт по информационной безопасности, анализирующий уязвимости ИТ-системы по заказу компаний, обладающий необходимыми навыками по эксплуатации этих уязвимостей и предпринимающий попытки по обходу существующих настроек безопасности, чтобы выяснить, насколько уязвима система, веб-приложение, операционная система или другой информационный объект.
При выборе компании-исполнителя, рекомендуем воспользоваться советами ниже:
- Пообщайтесь с доступным профессиональным сообществом.
- Проверьте подтверждение их компетенций.
- Убедитесь в наличии опыта.
Коллеги уже могли работать с определенным интегратором, и от них можно получить рекомендацию, а так же перечень навыков исполнителя. Как и любой профессионал, у команды пентестеров есть собственный стиль работы.
Существует ряд сертификатов по тестированию на проникновение, которые имеют большую значимость. Если у предполагаемого исполнителя есть один или несколько подобных сертификатов, можно быть уверенным, что он соответствует требуемому уровню навыков. Наличие сертификата безопасности почти наверняка подтверждает, что специалисты не будут использовать полученные знания о целевой системе для ее последующего взлома.
Тестирование на проникновение — сложная область ИТ-безопасности. Наличие соответствующего опыта у предполагаемого исполнителя может быть дополнительным фактором при его выборе, так как подтверждает его высокую квалификацию. При взаимодействии с исполнителем необходимо требовать подписания NDA.
Как проводится типичный тест на проникновение
Тесты на проникновение начинаются со сбора информации. Специалисты изучают и собирают данные, которые они будут использовать для имитации атаки. После этого тестировщики приступают к поиску уязвимостей и их эксплуатации. Для удачного теста на проникновение существуют разнообразные инструменты.
Рекомендуем ознакомиться с некоторыми из них:
- metasploit (сетевой сканер);
- wireshark (анализ пакетов);
- aircrackng (инструмент сетевой безопасности);
- john the ripper (взломщик паролей);
- fiddler (сниффер).
Иногда по завершении работ специалист пытается полностью замести следы. Он удаляет любое встроенное оборудование или ПО, стирает логи с целью избежать обнаружения и оставить систему именно такой, какой она была до проникновения.
Виды пентестов
Тестирование на проникновение в сеть
Целью теста на проникновение в сеть является поиск уязвимостей в сетевой инфраструктуре, будь то в локальной или облачной среде. В этом тесте проверяется широкий спектр областей, таких как конфигурации, шифрование и устаревшие исправления безопасности.
Тестирование на проникновение в сеть делится на категории:
- Внешний пентест
- Внутренний пентест
Этот сценарий имитирует атаку стороннего лица, имеющего доступ к Интернету и не имеющего предварительного знания о системе. Тестер пытается проникнуть в систему, используя внешние уязвимости и получая доступ к внутренним данным и системам.
Внутренний пентест связан с анализом инфраструктуры изнутри и ориентирован на внутреннюю среду. В этом случае предполагается, что злоумышленники смогли взломать внешний уровень и уже находятся в сети, либо роль киберпреступника играет инсайдер - внутренний пользователь.
Тестирование веб-приложений на проникновение
Целью этого тестирования является обнаружение недостатков безопасности на веб-сайтах, платформах электронной коммерции и в программном обеспечении.
С появлением веб-приложений неудивительно, что огромные объемы данных, хранящихся и передаваемых через них, становятся привлекательными целями для кибератак. Организации должны периодически проводить этот тест, чтобы быть в курсе последних методологий атак и недостатков безопасности.
Некоторые из распространенных уязвимостей включают в себя:
- инъекции (Injections);
- раскрытие конфиденциальных данных (Sensitive Data Explosure);
- XSS - Межсайтовый скриптинг (Cross-Site Scripting);
- недостатки системы аутентификации (Broken Authentication).
Социальная инженерия
В отличие от вышеперечисленных тестов, где тщательно изучается техническая сторона приложения, в социальной инженерии взлом провоцирует психология человека. Тестировщики используют человеческую природу, чтобы взломать систему.
Посредством манипуляций тестер будет убеждать человека раскрыть конфиденциальную информацию, которая будет использоваться для проникновения в систему и планирования дальнейших атак.
Некоторые из распространенных техник атаки:
- троян;
- плечевой серфинг;
- претекстинг;
- обратная социальная инженерия и др.
Какие бывают методы проведения пентестов?
Целью любого метода тестирования безопасности является обеспечение устойчивости системы перед лицом атак или сбоев программного обеспечения. Методы проведения пентеста: “белый ящик”,“черный ящик” и “серый ящик”, в зависимости от объема информации о целевой системе, доступной пентестерам.
Белый ящик
Тестирование методом «белого ящика» выполняется на основе исчерпывающих знаний о том, как реализована система. Тестирование методом «белого ящика» включает в себя анализ потока данных, потока управления, потока информации, методов кодирования.
А также обработки ошибок в системе для проверки предполагаемого и непреднамеренного поведения программного обеспечения.
Тестирование методом «белого ящика» может быть выполнено:
- для проверки того, соответствует ли реализация кода предполагаемому замыслу;
- для проверки реализованных функций безопасности;
- для выявления уязвимостей, которые можно использовать.
Серый ящик
В тесте с «серым ящиком» хакеру заранее будет предоставлена некоторая информация об уровне безопасности компании.
У пентестеров «серого ящика» обычно есть некоторые знания о внутреннем устройстве сети, включая документацию по дизайну и архитектуре, а также имеется непривилегированная внутренняя учетная запись к сети.
Цель пентеста методом «серого ящика» — обеспечить более целенаправленную и эффективную оценку безопасности сети, чем оценка «черного ящика». Используя проектную документацию сети, пентестеры могут сосредоточить свои усилия на системах с наибольшим риском и ценностью с самого начала, а не тратить время на самостоятельное определение этой информации.
Внутренняя учетная запись в системе также позволяет тестировать безопасность внутри усиленного периметра и имитирует злоумышленника с долгосрочным доступом к сети.
Черный ящик
При таком подходе тестировщик ничего не знает о системе и разрабатывает тест как неосведомленный злоумышленник. Этот подход наиболее близок к реальной атаке и требует высокой степени технических навыков.
Тестировщикам не предоставляются какие-либо схемы архитектуры или исходный код, которые не являются общедоступными. Тест на проникновение методом «черного ящика» определяет уязвимости в системе, которые можно использовать извне сети.
Тестирование основано на динамическом анализе работающих в данный момент программ и систем в сети. Специалист должен быть знаком с инструментами автоматического сканирования и методологиями ручного тестирования на проникновение. Тестировщики также должны уметь создавать собственную карту сети на основе своих наблюдений, поскольку такая диаграмма им не предоставляется.
Основным недостатком такого подхода является то, что если тестировщики не могут взломать периметр, любые уязвимости внутренних сервисов остаются не обнаруженными и не исправленными.
Скрытый тест на проникновение (Redteaming)
Это метод, когда почти никто в компании не знает о проведении теста на проникновение, включая ИТ-специалистов и специалистов по безопасности, которые будут реагировать на атаку.
Для скрытых тестов особенно важно, чтобы у хакера (Red Team) было письменное разрешение на взлом для избежания проблем с правоохранительными органами. Данный метод позволяет показать реальный уровень подготовленности команды ИТ- и ИБ-специалистов заказчика (Blue Team) для противодействия атакам.
Этапы тестирования на проникновение
Процесс тестирования можно разбить на пять этапов.
1. Планирование
На этом этапе компания, занимающаяся тестированием на проникновение, определяет логику теста, ожидания, юридические последствия, цели и задачи, которые необходимо достичь.
В зависимости от типа тестирования исполнителю может потребоваться физически находиться на территории заказчика. Другие типы тестирования могут проводиться удаленно, например, тестирование сети или веб-приложений. Если проводится тест на проникновение в сеть, необходимо знать, какие IP-адреса или подсети будут тестироваться.
С другой стороны, если проводится тест на проникновение приложения, необходимо знать размер и сложность приложения, в том числе, сколько различных ролей пользователей будет тестироваться.
Первый этап предполагает:
- определение объема и целей тестирования;
- сбор информации (например, сетевых и доменных имен, почтового сервера).
2. Разведка
Цель следующего шага — понять, как система будет реагировать на различные попытки вторжения.
Обычно это делается с помощью:
- статического анализа (проверка работы системы в определенный период);
- динамического анализа (проверка работы системы в реальном времени).
Этап разведки состоит из методов сбора открытых данных. Источники, обычно используемые для сбора информации, включают социальные сети, общедоступный веб-сайт организации, а также средства массовой информации и документы по связям с общественностью.
Социальные сети, например, предоставляет отличное место для сбора информации о сотрудниках. Понимание имен и ролей сотрудников в организации может помочь в перечислении адресов электронной почты для фишинговой атаки или идентификации сетевых администраторов.
Злоумышленники могут в пассивном режиме собирать сетевую информацию с помощью инструментов, постоянно сканирующих общедоступные IP-адреса. Это позволяет тестировщику начать выстраивать картину внешней сети без необходимости ее активного сканирования.
3. Анализ уязвимостей
Этап обнаружения состоит из сканирования и анализа активов компании. Как правило, тестер будет использовать инструмент сканирования сети, чтобы определить доступность данных.
После того как тестировщики просканируют и проанализируют активы, они начнут искать и анализировать уязвимости. Цель анализа — найти те уязвимости, с помощью которых возможно попасть в сеть. Тестировщики могут выявлять уязвимости вручную, анализируя результаты предыдущего этапа, или использовать автоматизированный инструмент сканирования уязвимостей.
Существует множество доступных инструментов сканирования уязвимостей, и они часто используются организациями как часть программы непрерывного управления уязвимостями.
4. Эксплуатация
Предыдущие этапы подготавливают тестировщика к этапу эксплуатации. Цель — установить доступ к системе, используя “лазейки”, обнаруженные на более ранних этапах тестирования на проникновение. Пентестер пытается определить точку входа, а затем ищет активы, к которым можно получить доступ через нее.
5. Анализ и отчет
Отчетность — самый важный этап любого теста на проникновение. На данном этапе тестер составляет отчет с описанием теста, включая описание выполненных цепочек атак.
В хорошем отчете о тестировании на проникновение результаты будут организованы и ранжированы по уровню риска. Специалисты включают в отчет скриншоты работ и подробное описание каждого этапа атаки. Большинство тестировщиков также дадут рекомендации о том, как исправить найденные ошибки.
Типичный отчет о тестировании на проникновение будет состоять из следующих разделов:
- вводная часть о компании и типе теста;
- методология тестирования;
- подробные выводы и рекомендации;
- приложение (скриншоты, таблицы и другие материалы).
В отчете следует обратить внимание на следующую информацию:
- конкретные уязвимости, которые были выявлены;
- конфиденциальные данные, к которым был получен доступ;
- время, в течение которого пентестер мог оставаться в системе незамеченным.
Как правило, организация-заказчик, получая отчет о тестировании на проникновение, пытается воспроизвести и проверить цепочки атак. Затем они вносят соответствующие изменения, используя общедоступные источники, знания сотрудников и рекомендации тестировщика по исправлению.
Сколько времени требуется для завершения всех этапов тестирования на проникновение?
Первые пять этапов тестирования на проникновение от подготовки до создания отчета может занимать от 10 до 60 рабочих дней в зависимости от объема теста.
Сроки этапа исправления ошибок зависят от того, насколько быстро команда заказчика сможет поработать над исправлениями, рекомендованными командой пентестеров.