Код
#статьи

Что такое пентесты и для чего они нужны

Говорят, чтобы защититься от хакера, нужно думать как хакер. О том, как освоить такое мышление, — рассказываем в статье.

Иллюстрация: Оля Ежак для Skillbox Media

Этичные, или белые, хакеры, white hats, пентестеры — так называют людей, которые за деньги помогают компаниям взламывать свои собственные системы. В этой статье расскажем подробнее, что это за профессия, почему она важна, каких навыков требует и что нужно, чтобы её освоить.


Для чего нужны пентесты

Пентест (от англ. pentest, «тест на проникновение») — это проверка защищённости компьютерной системы, при которой моделируется реальная атака злоумышленника (хакера).

Смысл метода в том, что специалист по кибербезопасности пытается проникнуть в систему с помощью хакерских методов и ищет в ней баги и уязвимости. В результате все в выигрыше: «дыры» в безопасности закрыты, компания спасает деньги и репутацию, а этичный хакер монетизирует свои навыки взлома.

В широком смысле пентест — это не только закрытие уязвимостей в системе, но и защита данных. Сейчас чуть ли не каждый месяц появляются новости об утечках — то вдруг исходники «Яндекса» оказываются в Сети, то данные о клиентах «Сбера». Задача пентестера — защищать компанию и от таких угроз тоже.

Бывает и так, что сами пользователи находят ошибки в приложениях и начинают использовать их для заработка. Из недавних кейсов:

  • Клиенты «Тинькофф» воспользовались ошибкой в банковском приложении и обогатились при помощи обмена валюты внутри программы. Специалисты оценили ущерб в 7 млн долларов.
  • Клиент банка «Ак Барс» незаконно перевёл себе 68 млн рублей и успел скрыться с частью денег.
  • Покупатель из Волгограда приобрёл люксовые вещи в интернет-магазине ЦУМ в 846 раз дешевле их реальной стоимости. Причина — технический сбой на сайте магазина.

Вовремя проведённый пентест помогает предотвратить такие ситуации.

Кто такой пентестер

Короткий ответ: пентестер — это человек, который проводит тесты на проникновение. Должность в компании будет, скорее всего, называться «специалист/инженер по информационной безопасности».

Развёрнуто: специалист со знаниями в области компьютерных сетей, операционных систем и криптографии. Как правило, у серьёзных «безопасников» за плечами есть опыт администрирования, настройки сетей, знание хотя бы одного языка программирования и умение пользоваться Kali Linux либо аналогами утилит, которые она предлагает «из коробки».

Отдельная категория пентестеров — это бывшие хакеры, которые в силу разных причин переходят на светлую сторону. Например, Кевин Митник — некогда самый разыскиваемый киберпреступник, который в 1990-х взламывал самые защищённые сервера американских ведомств и компаний, включая Apple, IBM и FedEx.

После своего освобождения из тюрьмы в 2003 году Митник успешно сменил «чёрную шляпу» на «белую» и стал консультировать компании по вопросам информационной безопасности. Из под его пера вышли известные книги о хакинге, безопасности и защите персональных данных: «Искусство обмана», «Искусство вторжения», «Искусство быть невидимым. Как сохранить приватность в эпоху Big Data» и многие другие.

Кевин Митник в футболке с надписью «Я не хакер, я — специалист по информационной безопасности»
Фото: Wikimedia Commons

Вообще, Митник — настоящий хакер-евангелист, энтузиаст и бессребреник: в его руках были бизнес-секреты стоимостью миллионы долларов, а также данные кредиток по всей Америке, но он никогда не использовал их для своего обогащения. Когда-нибудь мы выпустим о его жизни отдельный материал, а пока — двигаемся дальше.

Какие бывают пентестеры

Пентестеры бывают разные. Деление на специализации продиктовано самим процессом пентестинга. Давайте разберём основные варианты классификации.

По ролям:

Редтимеры (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) — открытый и свободно распространяемый сканер уязвимостей: устаревших компонентов серверов, слабых учётных данных — стандартных или совпадающих логинов и паролей, отсутствия свежих патчей в ОС.

Что умеет:

  • Сканировать серверы, роутеры, коммутаторы, брандмауэры, принтеры и прочие для обнаружения уязвимостей.
  • Анализировать конфигурацию и настройки систем с целью выявления слабых мест.
  • Проверять наличие известных уязвимостей в операционных системах, сервисах и приложениях.
  • Создавать отчёты с детальным описанием найденных уязвимостей и рекомендациями по их устранению.

Плюсы: бесплатный, открытый, гибкий в настройке, содержит обширную базу данных уязвимостей, поддерживает создание отчётов.

Минус: сложный интерфейс.

Аналоги: Nessus, Nexpose, Nikto, Qualys.

Эксплойт-фреймворк 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 — играх, где участники решают криптографические и прочие хакерские головоломки, чтобы найти «флаги» — уникальные последовательности символов.

Если вы хотите получить структурированную информацию, то выбирайте в вузе или колледже специальность «Информационная безопасность» и штудируйте информатику, математику и физику. Можете заглянуть и на наш курс «Специалист по кибербезопасности» — не нужно проходить никаких вступительных испытаний, а заниматься можно где угодно — лишь бы интернет был.

Проверьте свой английский. Бесплатно ➞
Нескучные задания: small talk, поиск выдуманных слов — и не только. Подробный фидбэк от преподавателя + персональный план по повышению уровня.
Пройти тест
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована