Что такое пентесты и для чего они нужны
Говорят, чтобы защититься от хакера, нужно думать как хакер. О том, как освоить такое мышление, — рассказываем в статье.
Иллюстрация: Оля Ежак для Skillbox Media
Этичные, или белые, хакеры, white hats, пентестеры — так называют людей, которые за деньги помогают компаниям взламывать свои собственные системы. В этой статье расскажем подробнее, что это за профессия, почему она важна, каких навыков требует и что нужно, чтобы её освоить.
- Для чего нужны пентесты
- Кто такой пентестер
- Какие бывают пентестеры
- Виды пентестов
- Roadmap: что нужно знать, чтобы стать пентестером
- Популярные программы для пентестов
- С чего начать
Для чего нужны пентесты
Пентест (от англ. pentest, «тест на проникновение») — это проверка защищённости компьютерной системы, при которой моделируется реальная атака злоумышленника (хакера).
Смысл метода в том, что специалист по кибербезопасности пытается проникнуть в систему с помощью хакерских методов и ищет в ней баги и уязвимости. В результате все в выигрыше: «дыры» в безопасности закрыты, компания спасает деньги и репутацию, а этичный хакер монетизирует свои навыки взлома.
В широком смысле пентест — это не только закрытие уязвимостей в системе, но и защита данных. Сейчас чуть ли не каждый месяц появляются новости об утечках — то вдруг исходники «Яндекса» оказываются в Сети, то данные о клиентах «Сбера». Задача пентестера — защищать компанию и от таких угроз тоже.
Бывает и так, что сами пользователи находят ошибки в приложениях и начинают использовать их для заработка. Из недавних кейсов:
- Клиенты «Тинькофф» воспользовались ошибкой в банковском приложении и обогатились при помощи обмена валюты внутри программы. Специалисты оценили ущерб в 7 млн долларов.
- Клиент банка «Ак Барс» незаконно перевёл себе 68 млн рублей и успел скрыться с частью денег.
- Покупатель из Волгограда приобрёл люксовые вещи в интернет-магазине ЦУМ в 846 раз дешевле их реальной стоимости. Причина — технический сбой на сайте магазина.
Вовремя проведённый пентест помогает предотвратить такие ситуации.
Кто такой пентестер
Короткий ответ: пентестер — это человек, который проводит тесты на проникновение. Должность в компании будет, скорее всего, называться «специалист/инженер по информационной безопасности».
Развёрнуто: специалист со знаниями в области компьютерных сетей, операционных систем и криптографии. Как правило, у серьёзных «безопасников» за плечами есть опыт администрирования, настройки сетей, знание хотя бы одного языка программирования и умение пользоваться Kali Linux либо аналогами утилит, которые она предлагает «из коробки».
Отдельная категория пентестеров — это бывшие хакеры, которые в силу разных причин переходят на светлую сторону. Например, Кевин Митник — некогда самый разыскиваемый киберпреступник, который в 1990-х взламывал самые защищённые сервера американских ведомств и компаний, включая Apple, IBM и FedEx.
После своего освобождения из тюрьмы в 2003 году Митник успешно сменил «чёрную шляпу» на «белую» и стал консультировать компании по вопросам информационной безопасности. Из под его пера вышли известные книги о хакинге, безопасности и защите персональных данных: «Искусство обмана», «Искусство вторжения», «Искусство быть невидимым. Как сохранить приватность в эпоху Big Data» и многие другие.
Вообще, Митник — настоящий хакер-евангелист, энтузиаст и бессребреник: в его руках были бизнес-секреты стоимостью миллионы долларов, а также данные кредиток по всей Америке, но он никогда не использовал их для своего обогащения. Когда-нибудь мы выпустим о его жизни отдельный материал, а пока — двигаемся дальше.
Какие бывают пентестеры
Пентестеры бывают разные. Деление на специализации продиктовано самим процессом пентестинга. Давайте разберём основные варианты классификации.
По ролям:
Редтимеры (red teamers) — те, кто атакует. Редтимеры входят в так называемую красную команду, задача которой — имитировать реальные атаки на систему. Цель — проверить эффективность системы защиты и действий сотрудников по обнаружению и предотвращению вторжения.
Блютимеры (blue teamers) — те, кто защищает: укрепляют безопасность, стараются предотвратить атаки, реагируют на инциденты и укрепляют системы безопасности. В отличие от редтимеров, члены «синей команды» работают постоянно, чтобы максимально подготовиться к возможной атаке.
По отношению к инфраструктуре организации:
Внутренние пентестеры (internal penetration testers). Работают внутри организации и выполняют пентесты для оценки безопасности внутренних систем. Они анализируют уязвимости, связанные с внутренними сетями, сотрудниками, доступом и другими внутренними аспектами.
Внешние пентестеры (external penetration testers). Тестируют систему со стороны человека, который не имеет отношения к организации.
По технической специализации:
Специалисты по безопасности приложений. Занимаются поиском уязвимостей, связанных с мобильными и веб-приложениями.
Физические пентестеры. Пытаются проникнуть на объект заказчика в офлайне — подделывают пропуска, выдают себя за курьеров или соискателей, договариваются с охранниками и персоналом. Цель — проверить внутренние системы безопасности и бдительность сотрудников.
Эксперты по беспроводным сетям. Исследуют и тестируют уязвимости, связанные с протоколами беспроводной связи, находясь в пределах диапазона сети.
Аудиторы. Проводят аудит систем безопасности, проверяют системы на предмет соответствия требованиям законодательства, нормативными документам и внутренней политике организации.
Как проводят тестирование: виды пентестов
Всего существует три подхода к проведению пентестов: по принципу белого, чёрного и серого ящиков. Отличаются они по количеству информации о системе, которая есть у пентестера перед началом процедуры. Давайте разберём каждый подход по отдельности.
Белый ящик
В этом случае пентестер получает полную информацию о системе: устройстве сети, средствах защиты, исходном коде, процессах и так далее. При этом все сотрудники должны быть осведомлены о том, что проводится тестирование.
✅ Плюсы:
- Полный доступ к внутренней структуре и дизайну системы.
- Тестирование системы на всех уровнях и со всеми составляющими.
- Детальное понимание системы и возможность оптимизации безопасности.
❌ Минусы:
- Требует полного сотрудничества со стороны клиента.
- Зачастую — долго.
- Высокие затраты на подготовку и проведение.
Чёрный ящик
Тестировщики действуют с нуля: сами ищут информацию, изучают систему — то есть ставят себя в условия, в которых и будет действовать настоящий хакер.
✅ Плюсы:
- Эмулирует реальные условия атаки, когда хакер не имеет знаний о системе.
- Позволяет оценить уровень защиты системы внешними атакующими.
- Независимое и объективное тестирование без предварительного знания системы.
❌ Минусы:
- Ограниченное понимание внутренней структуры и деталей системы.
- Могут быть упущены специфические уязвимости, которые требуют знания системы.
- Возможны ложные срабатывания, не связанные с уязвимостями.
Серый ящик
Специалист получает ограниченную информацию о системе.
✅ Плюсы:
- Комбинирует преимущества исследования с доступными знаниями о системе.
- Позволяет проверить систему с различных уровней доступа.
- Более реалистичное моделирование атаки с учётом частичной информации о системе.
❌ Минусы:
- Возможно неполное понимание системы и упущение специфических уязвимостей.
- Затруднения при определении объёма информации, доступной для тестирования.
- Требует дополнительного согласования и сотрудничества со стороны клиента.
Roadmap: что нужно знать и уметь, чтобы стать пентестером
Основная задача пентестера — взлом. А чтобы что-то взломать, нужно понимать, как это что-то работает. Основы информатики — устройство компьютера, системы счисления, пользовательская подкованность, компьютерная логика — база. Без них вы просто не поймёте, как работают остальные инструменты. А далее путь будет примерно таким:
Сетевые технологии
В первую очередь изучите сетевые модели OSI и TCP/IP, особенно протоколы верхнего уровня: HTTP, FTP, IP и другие.
Следующий этап — технологии, задействованные внутри браузера: языки HTML, CSS и JavaScript, веб-сокеты, концепции и стандарты безопасности SOP, CORS, cookies и прочие типы браузерных хранилищ.
И на сладкое — серверную часть: язык PHP или Python, фреймворки (Django, Flask, Laravel), CMS (WordPress, Joomla, Drupal, Magento, PrestaShop).
Linux
Основы работы: установка, администрирование, работа в терминале Bash. Плавно перейти с Windows на Linux позволяют дистрибутивы с похожими интерфейсами: Debian, Mint, Fedora. А если хотите сразу прыгнуть с места в карьер, попробуйте освоить (или хотя бы установить) Arch Linux. Получите +10 к навыку взлома, если сможете скастомизировать подобие Kali Linux на Arch.
Инструментарий — изучите «джентльменский набор» приложений:
- John the Ripper — взлом паролей методом перебора (брутфорсом).
- Aircrack-ng — тестирование безопасности Wi-Fi-сетей.
- THC Hydra — ещё один инструмент для взлома аутентификации.
- Burp Suite — программа для поиска уязвимостей на сайтах и в веб-приложениях.
- Wireshark — анализатор сетевых пакетов.
Мы подробнее разберём софт после раздела Roadmap.
Управление пользователями и правами доступа. Методы управления учётными записями пользователей и групп в Linux. Права доступа к файлам и директориям, а также настройка политики безопасности.
Сетевая безопасность в Linux. Сетевые протоколы и конфигурации сетевых интерфейсов. Как работает брандмауэр, маршрутизация и фильтрация пакетов. Освоение инструментов для сканирования сети и обнаружения уязвимостей.
Защита и мониторинг. Защита и профилактика взлома Linux-систем — обновление программного обеспечения, настройка брандмауэров и антивирусных программ. Мониторинг и анализ безопасности системы.
Уязвимости и эксплойты. Какие уязвимости и эксплойты существуют, частые сценарии их эксплуатации. Атаки на службы, привилегированные уязвимости и другие. Защита и профилактика таких атак.
Логирование и анализ событий. Работа с журналами событий в Linux — журналы системы, аутентификации и приложений. Методы анализа журналов и выявления аномальной активности.
Скриптинг и автоматизация. Учимся кодить — пишем на Bash, Python или Perl скрипты для автоматизации задач.
Windows Server
Архитектура и функциональность Windows Server. Различные роли сервера — Active Directory, DNS, DHCP и другие. Концепции домена, леса, контроллера домена и доверительных отношений.
Управление аккаунтами и политиками безопасности. Управление учётными записями — создание, удаление и модификация аккаунтов пользователей и групп. Политики безопасности, аутентификации и авторизации.
Защита и мониторинг. Брандмауэры, системы обнаружения вторжений (IDS), антивирусные программы и другие меры безопасности. Мониторинг и анализ безопасности системы.
Уязвимости и эксплойты. Понимание распространённых атак — атаки на службы удалённого доступа, привилегированные уязвимости.
Логирование и анализ событий. Работа с журналами событий Windows Server — журналы безопасности, системы и приложений. Анализ журналов и выявление аномальной активности.
Основы PowerShell. Командлеты, скрипты и методы автоматизации задач.
Криптография и криптоанализ
Основы криптографии — шифрование, хеширование, цифровые подписи и асимметричное шифрование. Алгоритмы шифрования — AES, RSA, ECC.
Математика — алгебра, теория чисел, модулярная арифметика и дискретная математика.
Криптографические протоколы — SSL/TLS, IPsec, SSH — как работают и какие уязвимости существуют.
Криптоанализ. Методы анализа и взлома криптографических систем. Основные виды атак — на основе перебора, статистические атаки, дифференциальный криптоанализ.
Инструменты для криптоанализа. ПО для криптоанализа и анализа криптографических систем — CrypTool, Hashcat, Cryptanalysis Toolkit (CAT), Xortool и другие.
Программы для пентестов
А вот и самое вкусное — софт. Мы уже упоминали некоторые программы выше, а теперь соберём полный мультитул продвинутого пентестера.
Сканер уязвимостей OpenVAS
OpenVAS (Open Vulnerability Assessment System) — открытый и свободно распространяемый сканер уязвимостей: устаревших компонентов серверов, слабых учётных данных — стандартных или совпадающих логинов и паролей, отсутствия свежих патчей в ОС.
Что умеет:
- Сканировать серверы, роутеры, коммутаторы, брандмауэры, принтеры и прочие для обнаружения уязвимостей.
- Анализировать конфигурацию и настройки систем с целью выявления слабых мест.
- Проверять наличие известных уязвимостей в операционных системах, сервисах и приложениях.
- Создавать отчёты с детальным описанием найденных уязвимостей и рекомендациями по их устранению.
Эксплойт-фреймворк Metasploit Framework
Metasploit Framework — фреймворк для обнаружения и использования уязвимостей, например возможности вредоносных проведения SQL-инъекций или переполнения серверного буфера.
Что умеет:
- Сканировать сети и хосты в пассивном и активном режиме.
- Тестировать и использовать эксплойты для слабых мест в системе.
- Получать удалённый доступ к целевой системе при помощи стандартных и настраиваемых пейлоадов (полезных нагрузок).
- Создавать и управлять сеансами Meterpreter — собственной сетевой оболочки, которую Metasploit внедряет в целевую систему для получения удалённого доступа или перехвата трафика.
Плюсы: богатый набор функций для эксплуатации уязвимостей, активное сообщество, обновления с новыми эксплойтами, графический и командный интерфейсы.
Минусы: сложноват для новичков, иногда требуется дополнительная настройка для конкретных сценариев эксплуатации.
Аналоги: Cobalt Strike, Canvas, Core Impact, BeEF.
Анализатор трафика Wireshark
Wireshark — мощный инструмент анализа сетевого трафика с графическим интерфейсом. Помогает выявить аномальную сетевую активность и перегрузки, а также проследить, как сетевые службы взаимодействуют друг с другом, чтобы выявить возможные утечки данных.
Что умеет:
- Захватывать и анализировать пакеты данных в реальном времени.
- Расшифровывать и декодировать различные протоколы.
- Фильтровать и искать пакеты по различным параметрам.
- Генерировать подробные отчёты и статистику о сетевом трафике.
Плюсы: бесплатный, поддерживает множество протоколов и форматов данных, широкие возможности настройки и анализа.
Минусы: сложноват для новичков, захват большого объёма трафика требует высокой вычислительной мощности.
Аналоги: tcpdump, NetworkMiner, Capsa Free.
Программа для подбора паролей Hydra
Hydra — инструмент для перебора паролей, поддерживающий различные протоколы и сервисы. Нужен для оценки политики паролей. Если аутентификация Hydra не по зубам — значит, политика работает.
Что умеет:
- Подбирать пароли по различным протоколам, включая SSH, FTP, HTTP, SMTP и другие.
- Работать с разными методами аутентификации и форматами паролей.
Плюсы: бесплатная, поддерживает множество протоколов и сервисов, много возможностей для настройки и управления процессом перебора, многопоточность, гибкая настройка параметров и возможность использования словарей паролей.
Минусы: требует некоторого технического опыта, может вызвать блокировку узлов или сервисов при неправильном использовании.
Аналоги: Medusa, Ncrack, John the Ripper, Hashcat.
Программа для анализа кода SonarQube
SonarQube — инструмент для анализа кода с отчётами о качестве и безопасности. Помогает выявить места в коде, которые вызывают появление уязвимостей: возможность вредоносных SQL-инъекций, переполнения буфера или слабого хранения паролей.
Что умеет:
- Проводить статический анализ кода (то есть анализ без запуска самого приложения) для выявления потенциальных ошибок, уязвимостей и нарушений правил кодирования.
- Предоставлять отчёты о качестве кода, покрытии тестами, дублировании кода и других метриках.
- Интегрироваться с различными инструментами разработки и системами управления версиями.
Плюсы: бесплатная, с открытым исходным кодом, поддерживает много языков программирования, имеет мощные возможности анализа и генерации отчётов.
Минусы: установка и настройка могут быть сложными, ресурсоёмкий процесс анализа больших проектов.
Аналоги: ESLint, PMD, Checkstyle, Code Climate.
С чего начать
Чтобы научиться проведению пентестов, вы можете либо получить образование в области информационной безопасности, либо освоить все необходимые технологии и методы самостоятельно.
Напутствие для тех, кто выбрал второй путь — гуглить, не сдаваться, учить английский, участвовать в CTF — играх, где участники решают криптографические и прочие хакерские головоломки, чтобы найти «флаги» — уникальные последовательности символов.
Если вы хотите получить структурированную информацию, то выбирайте в вузе или колледже специальность «Информационная безопасность» и штудируйте информатику, математику и физику. Можете заглянуть и на наш курс «Специалист по кибербезопасности» — не нужно проходить никаких вступительных испытаний, а заниматься можно где угодно — лишь бы интернет был.