Испытание на проникновение
Испыта́ние на проникнове́ние (англ. 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 году частная фирма Андерсона по заказу ВВС США проверяла безопасность системы с разделением времени в Пентагоне. В отчёте он описал общую последовательность атаки:
- Найти эксплуатируемую уязвимость.
- Проектировать атаку.
- Проверить атаку.
- Захватить используемую линию.
- Реализовать атаку.
- Использовать проникновение для получения информации.
Публикации Андерсона впоследствии легли в основу многих методик оценки защищённости[14].
В последующие годы методы тестирования на проникновение совершенствовались. В начале 1980-х журналист Уильям Брод в The New York Times писал, что правительственные «тигриные бригады» всегда успешно проникали в целевые системы, что вызывало обеспокоенность состоянием компьютерной безопасности в США[18].
Исследователь Эдвард Хант отмечал, что именно оборонный сектор США в ходе этих работ создал многие современные инструменты кибервойны, тщательно изучая и формализуя возможные методы проникновения в системы[14].
Инструменты
Существует широкий спектр инструментов для тестирования безопасности, включая бесплатное программное обеспечение с открытым кодом и коммерческие решения.
Методология гипотез о дефектах — это подход системного анализа и прогнозирования успешности имитации проникновения, при котором на основе изучения спецификаций и документации системы составляется перечень предполагаемых недостатков. Далее он ранжируется по вероятности существования дефекта и удобству его эксплуатации. Приоритетные пункты используются в работе по непосредственному взлому[19].
Для проведения испытаний на проникновение существуют специализированные дистрибутивы операционных систем[20]. В такие сборки заранее включён и настроен комплекс необходимых инструментов. Это избавляет тестировщика от необходимости подбирать каждую утилиту, снижая риск ошибок компиляции, проблем с зависимостями и конфигурацией. В ряде случаев возможности по доустановке новых инструментов могут быть ограничены.
Известные операционные системы для испытаний на проникновение:
- BlackArch (основана на Arch Linux)
- BackBox (на Ubuntu)
- Kali Linux (сменил BackTrack в декабре 2012; на базе Debian)
- Parrot Security OS (на Debian)
- Pentoo (на Gentoo)
- WHAX (на Slackware)
Существуют и другие специализированные дистрибутивы, горячо используемые в отдельных сферах пентестинга. В то же время отдельные дистрибутивы Linux содержат заведомо уязвимые версии приложений и ОС — они служат «мишенями» для учебных атак. Это позволяет начинающим специалистам отработать работу с инструментами в безопасной лабораторной среде. Типичные примеры: Damn Vulnerable Linux (DVL), OWASP Web Testing Environment (WTW), Metasploitable.
- BackBox
- Hping
- Metasploit Project
- Nessus
- Nmap
- OWASP ZAP
- SAINT
- w3af
- Burp Suite
- Wireshark
- John the Ripper
- Hashcat
Существуют специальные аппаратные решения для имитационного анализа безопасности. Однако не обязательно все такие инструменты разработаны только для пентестинга: часть устройств (измерительная и отладочная техника) нередко используется в силу их функционала и универсальности.
- Proxmark3 — универсальный инструмент для анализа радиочастотной идентификации (RFID).
- BadUSB — инструментарий для эксплуатации уязвимостей портов USB, позволяющий внедрять вредоносные действия через эмуляцию ввода с клавиатуры.
- Flipper Zero — портативное, многофункциональное устройство с открытым кодом для тестирования беспроводных протоколов (Sub-GHz, RFID, NFC, инфракрасные, Bluetooth).
- Raspberry Pi — мини-компьютер, часто применяемый для разведки в сети и эксплуатации уязвимостей.
- SDR (программно-определяемое радио) — платформы для анализа и атаки радиосвязи (перехват, эмуляция, декодирование, передача сигналов).
- ChipWhisperer — специализированный инструмент для побочных атак, позволяет анализировать криптографические реализации по электромагнитному излучению и потреблению тока.
Этапы испытания на проникновение
Процедура испытания на проникновение обычно включает следующие семь этапов:
- Разведка: сбор максимально полной информации о целевой системе для более эффективной атаки. Например, открытые поисковые системы могут использоваться для сбора данных, пригодных для социальной инженерии.
- Сканирование: применение технических средств для дальнейшего анализа системы (например, сканер Nmap может выявить открытые порты).
- Получение доступа: используя данные разведки, применение кода или эксплойтов для эксплуатации уязвимостей. Например, Metasploit позволяет автоматизировать атаки по известным уязвимостям; после успешной атаки возможен переход к новым целям (поворот атаки).
- Закрепление: обеспечение продолжительного доступа и возможности долговременного сбора данных.
- Сокрытие следов: удаление следов присутствия, собранных данных, событий в журнале с целью анонимности[21].
- Отчётность: описание найденных уязвимостей в отчёте, включающем сводку, расшифровку уязвимостей, рекомендации по их устранению.
- Исправление и повторная проверка: после устранения выявленных проблем тестирование повторяется, чтобы убедиться в надежности улучшений и составить итоговый сокращённый отчёт[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).
Примечания
- ↑ Что такое испытание на проникновение? (англ.). Архивировано 12 октября 2025 года. Дата обращения: 18 декабря 2018.
- ↑ The CISSP® and CAPCM Prep Guide: Platinum Edition : [англ.]. — John Wiley & Sons, 6 ноября 2006. — «Испытание на проникновение позволяет определить реакцию системы на атаку, возможность обхода её защиты и виды информации, которые можно получить из системы». — ISBN 978-0-470-00792-1.
- ↑ Kevin M. Henry. Penetration Testing: Protecting Networks and Systems : [англ.]. — IT Governance Ltd, 2012. — «Испытание на проникновение имитирует атаку на систему, сеть, оборудование или иной объект с целью определить, насколько данный объект уязвим для реального нападения.». — ISBN 978-1-849-28371-7.
- ↑ 1 2 Cris Thomas (Space Rogue), Dan Patterson. Вскрытие паролей проще, чем кажется: IBM и Space Rogue [Видео]. CBS Interactive. (2017). Время от начала источника: 4:30–5:30.
- ↑ Типы испытаний на проникновение (англ.) (9 июня 2017). Архивировано 8 октября 2025 года. Дата обращения: 23 октября 2018.
- ↑ Penetration Testing: Assessing Your Overall Security Before Attackers Do (англ.). SANS Institute. Дата обращения: 16 января 2014. Архивировано 27 февраля 2014 года.
- ↑ Penetration Testing (англ.). NCSC (август 2017). Дата обращения: 30 октября 2018. Архивировано 8 октября 2025 года.
- ↑ Alan Calder, Geraint Williams. PCI DSS: Карманный справочник, 3-е изд. : [англ.]. — IT Governance Limited, 2014. — «Сетевое сканирование на уязвимости должно проводиться не реже одного раза в квартал и после любых существенных изменений». — ISBN 978-1-84928-554-4.
- ↑ NIST Risk Management Framework (англ.). NIST (2020). Архивировано 6 мая 2021 года.
- ↑ CREST публикует рекомендации по проведению испытаний на проникновение (англ.). IntelligentCISO (2022). Архивировано 16 января 2025 года.
- ↑ Пятеро обвиняемых, связанных с хакерской группой «Scattered Spider», стоявшей за атаками 2023 года на MGM и Caesars (англ.). KLAS (21 ноября 2024). Дата обращения: 6 декабря 2024. Архивировано 4 июня 2025 года.
- ↑ Написание отчёта по результатам испытания на проникновение (англ.). SANS Institute. Дата обращения: 12 января 2015. Архивировано 20 августа 2013 года.
- ↑ 1 2 Russell, Deborah. Computer Security Basics : [англ.] / Deborah Russell, G.T. Gangemi. — O'Reilly Media Inc., 1991. — ISBN 9780937175712.
- ↑ 1 2 3 4 5 6 Hunt, Edward (2012). “US Government Computer Penetration Programs and the Implications for Cyberwar”. IEEE Annals of the History of Computing [англ.]. 34 (3): 4—21. DOI:10.1109/MAHC.2011.82. S2CID 16367311.
- ↑ 1 2 Yost, Jeffrey R. A History of Computer Security Standards, in The History of Information Security: A Comprehensive Handbook : [англ.]. — Elsevier, 2007. — P. 601–602.
- ↑ Mackenzie, Donald; Pottinger, Garrel (1997). “Mathematics, Technology, and Trust: Formal Verification, Computer Security, and the U.S. Military”. IEEE Annals of the History of Computing [англ.]. 19 (3): 41—59. DOI:10.1109/85.601735.
- ↑ Mackenzie, Donald A. Mechanizing Proof: Computing, Risk, and Trust : [англ.]. — Massachusetts Institute of Technology, 2004. — P. 156. — ISBN 978-0-262-13393-7.
- ↑ Брод, Уильям Дж. (25 сентября 1983). «Военные эксперты обеспокоены компьютерной безопасностью», The New York Times.
- ↑ Four Levels of Testing (англ.) (PDF) 10 (1 декабря 2006). Дата обращения: 9 сентября 2025. Архивировано 21 сентября 2025 года.
- ↑ Faircloth, Jeremy. Глава 1: Инструменты профессии // Penetration Tester's Open Source Toolkit : [англ.]. — Third. — Elsevier, 2011. — ISBN 978-1597496278.
- ↑ Пять фаз испытания на проникновение — как их суммировать (англ.), Cybrary (6 мая 2015). Архивировано 8 апреля 2019. Дата обращения: 25 июня 2018.
- ↑ Penetration Testing Australia: Meeting Client Security Expectations and Excelling in Vendor Selection (англ.). Core Sentinel. Дата обращения: 15 июля 2025. Архивировано 19 июля 2025 года.
- ↑ GSA HACS SIN 132-45 Services (англ.) (1 марта 2018). Дата обращения: 1 марта 2018. Архивировано 23 марта 2019 года.
- ↑ Pen Testing Services (англ.) (1 марта 2018). Дата обращения: 1 марта 2018. Архивировано 26 июня 2018 года.
- ↑ Penetration testing (англ.). National Cyber Security Centre (8 августа 2007). Архивировано 8 октября 2025 года.
- ↑ Open-Source Security Testing Methodology Manual — обзор (англ.). ScienceDirect. Дата обращения: 13 октября 2021. Архивировано 1 июля 2021 года.