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

Испытание на проникновение (англ. penetration test, также используется сокращение пентест от англ. pentest) — это санкционированная имитация кибератаки на компьютерную систему с целью оценки её безопасности[1]. Испытание проводится для выявления слабых мест (или уязвимостей), включая возможность получения несанкционированного доступа к функциям и данным системы[2][3], а также для выявления сильных сторон[4], что позволяет провести комплексную оценку рисков.

Процесс обычно начинается с определения целевых систем и конкретных целей тестирования, затем проводится анализ доступной информации, после чего применяются различные методы для достижения поставленной цели. Целью испытания может быть так называемый тест типа «белый ящик» (когда тестирующему заранее предоставляется информация о системе) либо «чёрный ящик» (когда предоставляется только минимальная информация, кроме названия организации). Существует также промежуточный вариант — тест типа «серый ящик», при котором тестировщику передаётся ограниченный объём сведений о целях.[4][5][6] Различают также тесты по назначению: сетевые (внешние и внутренние), беспроводные, тесты веб-приложений, социальной инженерии и проверки устранения уязвимостей. Испытание на проникновение позволяет установить, насколько система уязвима для атак.

Национальный центр кибербезопасности Великобритании (англ. National Cyber Security Centre — NCSC) определяет испытание на проникновение как: «способ получить уверенность в защищённости информационной системы, пытаясь обойти её защиту с помощью тех же инструментов и методов, которыми может пользоваться злоумышленник»[7]. Испытание на проникновение является частью полноценного аудита безопасности. Например, стандарт PCI DSS требует регулярно проводить такие испытания, а также выполнять их после изменений в системе[8]. Также испытания на проникновение используются для поддержки оценки рисков в рамках NIST Risk Management Framework SP 800-53[9].

Существуют различные стандарты и методики проведения испытаний на проникновение: Open Source Security Testing Methodology Manual (OSSTMM), Penetration Testing Execution Standard (PTES), NIST Special Publication 800-115, Information System Security Assessment Framework (ISSAF) и OWASP Testing Guide. Некоммерческая организация CREST также публикует стандарт CREST Defensible Penetration Test, который определяет требования к обеспечению достаточного уровня доверия при проведении подобных работ[10].

В 2023 году универсальный инструмент для пентестинга flipper был использован хакерской группой Scattered Spiders для атаки на казино MGM, что показало многофункциональность ряда пентест-устройств[11].

Назначение

Цели проведения испытания на проникновение зависят от поставленной задачи, однако основной задачей является выявление уязвимостей, которые могут быть использованы злоумышленниками, и информирование заказчика об этих уязвимостях, а также предоставление рекомендаций по их устранению. В отчётах по результатам часто оцениваются потенциальные последствия для организации и приводятся предложения по снижению рисков[12].

История

К середине 1960-х годов рост популярности систем с разделением времени, которые предоставляли удалённый доступ к ресурсам, породил новые вопросы безопасности. Как отмечали исследователи Дебора Рассел и Г. Т. Ганджеми-старший, «1960-е стали настоящим началом эры компьютерной безопасности»[13].

В июне 1965 года в США ведущие специалисты по безопасности компьютерных систем собрались на одну из первых крупных конференций, организованных System Development Corporation (SDC). Там выяснилось, что одному из сотрудников SDC удалось достаточно просто обойти защиту на системе SDC AN/FSQ-32. В ходе дискуссии прозвучал призыв к более глубокому изучению вопросов безопасности, в частности — с помощью атак на систему. Иными словами, именно тогда прозвучал первый формализованный запрос на использование имитации взлома в целях исследования защиты[14].

В 1968 году на весенней конференции специалисты по безопасности, такие как Willis Ware, Гарольд Петерсен, Рейн Терн (все из RAND Corporation) и Бернард Питерс из АНБ, ввели само понятие «проникновение» в контексте компьютерных атак. В частности, в материалах конференции отмечалось, что для онлайн-систем с удалённым доступом «следует ожидать преднамеренных попыток проникновения». Коллеги разделяли эти опасения: «онлайн-системы уязвимы, включая угрозу преднамеренного проникновения»[14].

Эти риски получили обоснование в знаковом, проведённом по инициативе Министерства обороны США в 1967 году исследовании, руководил которым Уиллис Уэр. Работа подтвердила: нарушение системы с помощью атак действительно представляет критическую опасность для многопользовательских систем. Доклад был засекречен, но эксперты быстро признали его эталонным в области компьютерной безопасности[14]. Позднее Джеффри Йост из Charles Babbage Institute назвал отчёт Уэра «самым важным и всесторонним исследованием проблем и стандартов безопасности того времени»[15]. Итог исследования — признание испытаний на проникновение ключевой угрозой и, одновременно, инструментом для анализа реальной защищённости систем.

Для изучения уязвимостей государственные структуры вскоре начали формировать специальные команды тестировщиков, названных «тигриными бригадами». По словам Рассел и Ганджеми, «в 1970-х тигриные бригады — финансируемые государством и промышленностью группы специалистов — пытались взламывать компьютерные системы с целью выявить и закрыть дыры в их безопасности»[13].

Эксперт по истории компьютерных технологий Дональд Маккензи отмечал: «RAND проводил эксперименты по проникновению (обход средств защиты) старейших многопользовательских систем для правительства»[16][17]. В своих работах Джеффри Йост также подтверждает: RAND и SDC были среди первых, кто использовал «penetration studies» для проверки защищённости вычислительных комплексов[15]. В большинстве ранних опытов тигриные бригады успешно находили пути обхода защиты — системы с разделением времени имели слабую защищённость.

Опыт RAND подтвердил эффективность методов имитации проникновения для анализа защитных механизмов. Тогдашние аналитики писали: «такие проверки доказали целесообразность использования системы атак для оценки защищённости данных». Преимуществом была и способность тестировщика анализировать систему с «дьявольской изобретательностью», что сложно смоделировать искусственно. Поэтому многие специалисты рекомендовали продолжать развитие методов имитационного тестирования[14].

Ведущим специалистом в этой области был Джеймс П. Андерсон, сотрудничавший с АНБ, RAND и другими структурами. В 1971 году частная фирма Андерсона по заказу ВВС США проверяла безопасность системы с разделением времени в Пентагоне. В отчёте он описал общую последовательность атаки:

  1. Найти эксплуатируемую уязвимость.
  2. Проектировать атаку.
  3. Проверить атаку.
  4. Захватить используемую линию.
  5. Реализовать атаку.
  6. Использовать проникновение для получения информации.

Публикации Андерсона впоследствии легли в основу многих методик оценки защищённости.[14]

В последующие годы методы тестирования на проникновение совершенствовались. В начале 1980-х журналист Уильям Брод в The New York Times писал, что правительственные «тигриные бригады» всегда успешно проникали в целевые системы, что вызывало обеспокоенность состоянием компьютерной безопасности в США.[18]

Исследователь Эдвард Хант отмечал, что именно оборонный сектор США в ходе этих работ создал многие современные инструменты кибервойны, тщательно изучая и формализуя возможные методы проникновения в системы[14].

Инструменты

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

Методология гипотез о дефектах

Методология гипотез о дефектах — это подход системного анализа и прогнозирования успешности имитации проникновения, при котором на основе изучения спецификаций и документации системы составляется перечень предполагаемых недостатков. Далее он ранжируется по вероятности существования дефекта и удобству его эксплуатации. Приоритетные пункты используются в работе по непосредственному взлому.[19]

Специализированные дистрибутивы ОС

Для проведения испытаний на проникновение существуют специализированные дистрибутивы операционных систем[20]. В такие сборки заранее включён и настроен комплекс необходимых инструментов. Это избавляет тестировщика от необходимости подбирать каждую утилиту, снижая риск ошибок компиляции, проблем с зависимостями и конфигурацией. В ряде случаев возможности по доустановке новых инструментов могут быть ограничены.

Известные операционные системы для испытаний на проникновение:

Существуют и другие специализированные дистрибутивы, горячо используемые в отдельных сферах пентестинга. В то же время отдельные дистрибутивы Linux содержат заведомо уязвимые версии приложений и ОС — они служат «мишенями» для учебных атак. Это позволяет начинающим специалистам отработать работу с инструментами в безопасной лабораторной среде. Типичные примеры: Damn Vulnerable Linux (DVL), OWASP Web Testing Environment (WTW), Metasploitable.

Программные платформы

Аппаратные инструменты

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

  • Proxmark3 — универсальный инструмент для анализа радиочастотной идентификации (RFID).
  • BadUSB — инструментарий для эксплуатации уязвимостей портов USB, позволяющий внедрять вредоносные действия через эмуляцию ввода с клавиатуры.
  • Flipper Zero — портативное, многофункциональное устройство с открытым кодом для тестирования беспроводных протоколов (Sub-GHz, RFID, NFC, инфракрасные, Bluetooth).
  • Raspberry Pi — мини-компьютер, часто применяемый для разведки в сети и эксплуатации уязвимостей.
  • SDR (программно-определяемое радио) — платформы для анализа и атаки радиосвязи (перехват, эмуляция, декодирование, передача сигналов).
  • ChipWhisperer — специализированный инструмент для побочных атак, позволяет анализировать криптографические реализации по электромагнитному излучению и потреблению тока.

Этапы испытания на проникновение

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

  1. Разведка: сбор максимально полной информации о целевой системе для более эффективной атаки. Например, открытые поисковые системы могут использоваться для сбора данных, пригодных для социальной инженерии.
  2. Сканирование: применение технических средств для дальнейшего анализа системы (например, сканер Nmap может выявить открытые порты).
  3. Получение доступа: используя данные разведки, применение кода или эксплойтов для эксплуатации уязвимостей. Например, Metasploit позволяет автоматизировать атаки по известным уязвимостям; после успешной атаки возможен переход к новым целям (поворот атаки).
  4. Закрепление: обеспечение продолжительного доступа и возможности долговременного сбора данных.
  5. Сокрытие следов: удаление следов присутствия, собранных данных, событий в журнале с целью анонимности[21].
  6. Отчётность: описание найденных уязвимостей в отчёте, включающем сводку, расшифровку уязвимостей, рекомендации по их устранению.
  7. Исправление и повторная проверка: после устранения выявленных проблем тестирование повторяется, чтобы убедиться в надежности улучшений и составить итоговый сокращённый отчёт[22].

Уязвимости

Легальные операции (в рамках теста), позволяющие проводить запрещённые действия, включают внедрение неэкранированных SQL-команд, плохие пароли с известным хэшем в открытых проектах, использование социальных связей, устаревшие криптографические функции. Как правило, для критического взлома требуется комбинация известных ошибок и умелое составление вредоносной нагрузки. Metasploit, например, содержит библиотеку на Ruby для типовых задач пентестинга и централизованную базу эксплойтов.

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

Пример: если на сайте 100 текстовых полей ввода, лишь несколько могут быть уязвимы к SQL-инъекциям на определённых строках, и только случайные отправки смогут привести к ошибке, проявляющейся как некорректно отрисованная HTML-страница. Аналогичные потоки данных есть и в других точках системы — cookie, файлы, RPC, память. Главная задача — получить необработанную ошибку, после чего изучить её причину и построить автоматизированный инструмент для тестирования гипотезы. Если этот путь не приносит результата, продолжают фаззинг других каналов. Преимущество фаззинга — экономия времени: нет нужды тратить его на тщательно оттестированный код.

Вредоносная нагрузка

Нелегальная операция («payload» в терминологии Metasploit) может включать перехват нажатий клавиш, снятие скриншотов, установку рекламного ПО, кражу учётных данных, создание бэкдоров на основе шеллкода, или модификацию данных. Крупные компании поддерживают базы эксплойтов и предоставляют продукты для автоматического поиска уязвимостей в целевых системах:

Стандартизированные государственные услуги по проведению тестов

Управление общих служб США (GSA) стандартизировало услугу «испытание на проникновение» как отдельный пункт быстро развёртываемых мер реагирования для предупреждения угроз безопасности федеральных, государственных и местных структур. Данные услуги (Highly Adaptive Cybersecurity Services, HACS) сведены в отдельный перечень на сайте GSA Advantage[23].

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

Услуга 132-45A (Penetration Testing)[24] подразумевает контрольные атаки на приложение, систему или сеть с целью выявления способов обойти защиту. В рамках услуги специалисты-«этичные хакеры» организуют имитацию взлома, ищут уязвимости, а по завершении тестов составляет отчёт с рекомендациями по доработке системы безопасности.

В Великобритании подобные услуги регулируются совместно профессиональными организациями и Национальным центром кибербезопасности[25].

В зависимости от стандартов и методологии, результативность испытаний на проникновение может отличаться. Основные стандарты: Open Source Security Testing Methodology Manual[26] (OSSTMM), OWASP, NIST, Information System Security Assessment Framework (ISSAF) и Penetration Testing Execution Standard (PTES).

Примечания