Тестирование на проникновение (пентест) — это форма тестирования и оценки безопасности, которая имитирует использование хакерских техник и методов для выявления уязвимостей в безопасности целевой системы, получения контроля над системой, доступа к конфиденциальным данным в системе и обнаружения рисков безопасности, которые могут повлиять на текущую работу бизнеса.
Основное различие между тестированием на проникновение и взломом заключается в том, что тестирование на проникновение проводится с разрешения клиента и использует контролируемые, неразрушающие методы и средства для обнаружения слабых мест в объекте и сетевом оборудовании. Оно помогает администраторам узнать о проблемах, с которыми они сталкиваются в своих сетях, и после него предоставляются рекомендации по усилению безопасности, чтобы помочь клиентам повысить безопасность своих систем.
Тестирование на проникновение включает в себя тестирование «черного ящика», «белого ящика» и «серого ящика».
Тестирование «черного ящика»
Это процесс тестирования безопасности сетевого объекта извне без знания внутренней технической архитектуры тестируемого устройства. С помощью реальных методов взлома и инструментов взлома, тестирование черного ящика — это организованный и поэтапный процесс проникновения и взлома целевой системы для выявления некоторых известных и неизвестных уязвимостей безопасности в системе и оценки того, могут ли эти уязвимости быть использованы недобросовестными элементами и привести к потере бизнеса и активов.
Тестирование «белого ящика»
Тестировщики имеют доступ к сетевой архитектуре и различным технологиям, лежащим в основе тестируемого устройства. Исходя из этого, можно использовать методы и инструменты целевого тестирования для поиска и подтверждения наиболее серьезных уязвимостей в системе безопасности при относительно небольших затратах. Оба способа имеют свои преимущества и недостатки, и должны проводиться в комбинации.
Тестирование «серого ящика»
Специалисты по тестированию на проникновение могут выбрать наилучший путь для тестирования на проникновение, основываясь на ограниченных знаниях и информации о целевой системе, которой они располагают. Эксперты также должны постепенно проникать во внутреннюю сеть извне, а имеющаяся у них базовая топология целевой сети помогает им лучше выбрать путь и метод атаки, тем самым достигая лучших результатов тестирования на проникновение.
Процесс тестирования на проникновение
PTES (PenTest execution standards) — это стандарт проведения тестирования на проникновение, разработанный совместно ведущими компаниями в области безопасности.
Процесс тестирования на проникновение, определенный в стандарте PTES, широко признан и поддерживается в отрасли и состоит из семи конкретных этапов, в которые входят:
1. Фаза предварительного взаимодействия
На этапе предварительного взаимодействия команда тестирования на проникновение взаимодействует с клиентской организацией для обсуждения и, что самое важное, определения объема, целей, ограничений и деталей контракта на обслуживание теста на проникновение.
Этот этап обычно включает в себя такие действия как: сбор требований клиента, подготовка планов тестирования, определение объема и границ тестирования, определение бизнес-целей, управление проектом и планирование.
2. Фаза сбора разведданных
После определения масштаба цели наступает этап сбора информации, на котором команда пентестеров может использовать различные источники информации и методы сбора, чтобы попытаться получить больше информации о топологии сети целевой организации, конфигурации системы и средствах защиты.
Тестировщики на проникновение могут использовать такие методы сбора разведданных, как запросы к открытым источникам, Google Hacking, социальная инженерия, сканирование узлов, пассивное прослушивание, обнаружение сервисов и т.д. Умение прощупывать целевую систему на предмет разведданных — очень важный навык для специалистов по тестированию на проникновение. Адекватность сбора разведданных во многом определяет успех или неудачу пентеста, поскольку если вы упустите важную разведывательную информацию, то, скорее всего, на последующих этапах вы придете с пустыми руками.
3. Фаза моделирования угроз
После сбора достаточной информации члены группы тестирования на проникновение собираются вместе, чтобы провести моделирование угрозы и планирование атаки на основе полученной информации. Это критический момент в процессе тестирования на проникновение.
Благодаря тщательному анализу разведданных и «мозговому штурму» идей атаки, команда может разобраться в большом количестве информации и разведданных и определить наиболее реальные каналы атаки.
4. Фаза анализа уязвимости
После определения наиболее жизнеспособного канала атаки, следующим шагом является рассмотрение способов получения доступа к целевой системе, т.е. этап анализа уязвимости.
На этом этапе «хакеру» необходимо проанализировать разведывательную информацию, полученную и собранную на предыдущих этапах, особенно результаты сканирования уязвимостей безопасности, информацию о контрольных точках обслуживания и т.д. И провести поиск в доступных ресурсах кода проникновения, чтобы определить точки атаки, где может быть проведена атака проникновения, и проверить их в экспериментальной среде. На этом этапе команда тестирования на проникновение высокого уровня также проводит обнаружение и поиск уязвимостей безопасности для некоторых критически важных систем и сервисов в канале атаки, рассчитывая найти неизвестные уязвимости безопасности, которые могут быть использованы, и разработать код проникновения для открытия критически важных путей в канале атаки.
5. Фаза эксплуатации
Эксплуатация — самая увлекательная часть пентеста. На этом этапе команда тестирования на проникновение использует уязвимости безопасности, которые они выявили в целевой системе, чтобы фактически проникнуть в систему и получить к ней доступ.
Атаки на проникновение могут проводиться с использованием общедоступного кода проникновения, но, как правило, в реальных сценариях тестерам проникновения также необходимо адаптировать свои атаки на проникновение, чтобы учесть характеристики целевой системы и обойти защиту, установленную в целевой сети и системе, для успешного достижения своих целей проникновения. При тестировании «черного ящика» тестеру проникновения также необходимо рассмотреть возможность обхода механизмов обнаружения целевой системы, чтобы избежать предупреждения и обнаружения группы реагирования безопасности целевой организации.
6. Фаза закрепления
Постэксплуатация — это часть процесса тестирования на проникновение, которая лучше всего демонстрирует творческий подход и технические навыки команды. Если предыдущие этапы можно описать как пошаговый процесс достижения очень общих целей, то на этом этапе команде тестирования на проникновение необходимо разработать собственные цели атаки, определить критическую инфраструктуру. Также им необходимо найти наиболее ценную информацию и активы организации-клиента, которые необходимо защитить, основываясь на различных характеристиках бизнес-модели целевой организации, защищенных активах и плане защиты безопасности. И, наконец, достичь пути атаки, который может оказать наиболее важное влияние на бизнес организации-клиента. Путь атаки, который окажет наиболее значительное влияние на бизнес-организации клиента.
Эти цели и пути атаки могут сильно варьироваться от одного сценария к другому, а точность и осуществимость установки зависит от собственного чувства инноваций, объема знаний, практического опыта и технических способностей команды.
7. Фаза отчетности
Процесс пентеста завершается представлением отчета о тестировании организации-заказчику для принятия и успешной оплаты контракта. Этот отчет представляет собой компиляцию ключевой разведывательной информации, полученной командой на всех предыдущих этапах. Обнаруженных и раскрытых уязвимостей безопасности, процесса успешных атак на проникновение и средств атаки, которые привели к воздействию на бизнес. Также итоговый отчет помогает проанализировать слабые места в защите, проблемы и технические решения для их устранения и модернизации с точки зрения защитника.