Программирование • 27 декабря 2023 • 5 мин чтения

Мыслить как преступник: разбираемся в тестировании безопасности

Пентест — это имитация хакерской атаки. Его проводят, чтобы починить слабые места в безопасности до того, как их найдут злоумышленники. Разбираем особенности этичного взлома.

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

Согласно отчёту Positive Technologies, в 2022 году количество успешных кибератак выросло более чем на 20%. Часть таких атак произошла из-за того, что владельцы сервисов не тестировали их безопасность. Например, за третий квартал 2023 года злоумышленники украли у блокчейн-проектов около 200 млн долларов. В половине случаев проекты не проверили на уязвимости.

Пентесты или тестирование на проникновение — один из способов проверить, насколько компания защищена от угроз. Во время пентестов имитируют взлом систем и утечки данных. Это помогает опередить хакеров — выявить слабые места компании и найти способы устранить уязвимости.

Тестирование на проникновение проводят не только для ПО или техники, но и с сотрудниками. Большая часть взломов связана с человеческим фактором: люди открывают подозрительные ссылки или по ошибке дают мошенникам персональные данные. Задача белого хакерства в том числе — выяснить, как обманывают людей. Например, сотрудникам компании могут отправить письма с просьбой пройти по ссылке. Если они её откроют, значит, в компании недостаточно рассказывают о цифровой гигиене и о том, как она влияет на прибыль и убытки.

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

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

Иван Авраменко, инженер по кибербезопасности

Пентестер — это своего рода детектив. Если хотелось заниматься расследованиями, решать головоломки, эта специальность подойдет. Правда, здесь нужно будет не расследовать преступления, а совершать их в безопасной среде. Планировать тестирование (атаку), уметь работать по своему и внешнему чек-листу, быть стрессоустойчивым, терпеливым и готовым к вызовам. От внимательности зависит результат всей работы: не заметил какую-то деталь — пропустил уязвимость.

Тестирование на проникновение — микс из традиционного тестирования, программирования и системного администрирования. Чтобы заниматься этичным хакингом, нужно разбираться в технологиях, которые использует браузер и серверная часть сайта или приложения. Понимать, как устроена архитектура корпоративных сетей и как настроить сетевое оборудование. На курсе «Специалист по информационной безопасности: веб-пентест» дают не только техническую базу, но и показывают, как выглядят уязвимости в реальных приложениях. Студенты учатся находить слабые места в коде или инфраструктуре. Готовят дипломный проект, где нужно пройти все этапы аудита — от расследования до отчёта по тестированию.

Попробуйте себя в роли специалиста по информационной безопасности
Научитесь тестировать приложения на уязвимости и писать устойчивый к атакам код. Практикуйтесь в облаке Яндекса и получите в подарок мини-курс по основам сетей, вёрстке, API и криптографии.

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

Пентестеры бывают внешними и внутренними. Разберём, чем они отличаются.


Внутренний пентестер


Внешний пентестер

Работает внутри команды как штатный сотрудник.
Компания нанимает его под проект.
Разбирается во внутренних системах, процессах и технологиях компании. Знает, какие есть внутренние политики и правила безопасности.
Его сила — в знании популярных и нестандартных методов, которые хакеры используют для атак снаружи.
Есть полный доступ к внутренним ресурсам компании, информация о структуре систем, архитектуре сети, иногда — исходные коды программ.
Ограничен в доступе. Ему предоставляют только информацию, которую злоумышленник мог бы получить без внутренней поддержки. Не владеет полным представлением о внутренних механизмах компании.

Для комплексной системы безопасности нужны оба специалиста, поэтому нет задачи выбрать между двумя этими направлениями. Внутренний эксперт понимает особенности компании, а внешний может заметить неочевидные проблемы, которых не видно изнутри.

Иван Авраменко

Чтобы комфортно войти в профессию, в среднем нужно 3―4 года работы системным администратором. Но это не единственный путь. Многое зависит от мышления и способности к обучению. Кому-то и без опыта достаточно прочитать статью на Хабре или GitHub, и он уже немного пентестер. Другому специалисту понадобится несколько дней, чтобы разобраться в инструментах и видах уязвимостей.

Виды пентестов

Есть три основных вида тестирования на проникновение: внешний, или black box, внутренний, или white box, и смешанный — «серый ящик».

1. Black Box. Специалист анализирует компанию так, как если бы он был злоумышленником, который хочет проникнуть в её системы через интернет. Он исследует слабые места в компонентах инфраструктуры, которые подключены к интернету. Например, уязвимости в формах ввода на сайтах, серверы, офисную технику, которая подключена к Wi-Fi.

2. White Box. Специалист получает информацию о компании не просто как сотрудник, а скорее как администратор с доступами во все системы. Он исследует, насколько защищены внутренние системы и базы данных, легко ли получить доступ к чувствительной информации. Этот способ помогает тщательно проверить все внутренние ресурсы и защиту данных от сотрудников с разным уровнем доступа к ним.

3. Gray Box. Пентестер знает, как устроена инфраструктура компании, и продумывает атаки на известные ему ресурсы или сотрудников. Например, использует фишинговые письма, звонки или даже личное общение. Разбрасывает флешки с вредоносными файлами в офисе, устраивается на работу как стажёр, получает физический доступ к локальной сети под видом монтажника камер видеонаблюдения.

Инструменты для тестирования на проникновение

Инструменты для пентеста помогают решать конкретные задачи или комплексно проводить пентест сайта или приложения. Разберём основные.


Для чего нужен


Пример

Программы для комплексного тестирования
Kali Linux — операционная система для тестирования на проникновение и проверки безопасности компьютерных систем. В ней заранее установлены и настроены множество инструментов. Например, для сканирования сети, тестирования веб-приложений, анализа беспроводных сетей.Тестировщикам не нужно искать, скачивать и устанавливать каждый инструмент отдельно.
Сканировать сети — определить активные устройства в сети, анализировать открытые порты, собирать данные о сетевой инфраструктуре и действиях пользователей.
Nmap, Wireshark
Собирать информацию о домене, его владельце, IP и хостинге, доступности сервера, к которому обращается сайт.
Whois-service,dnsrecon,dig,nslookup
Анализировать безопасность веб- и мобильных приложений, обнаруживать уязвимости, работа с протоколами HTTP и HTTPS.
Burp Suite, OWASP Zap, OpenVAS, Nexpose, Vega, QARK
Перебирать и восстанавливать пароли пользователей.
John The Ripper, Hydra, Hashcat, Net-Creds (входит в Kali Linux)
Создавать и выполнять атаки на сеть, анализировать безопасность сетевых устройств.
Metasploit (входит в Kali Linux), Cobalt Strike (для атак на системы, которые регулярно обновляют и проверяют на уязвимости)
Проводить атаки, связанные с манипуляциями людьми: отправка фишинговых писем, создание схем социальной инженерии.
Фреймворки Social-Engineer Toolkit (можно подключить к Kali Linux), GoPhish
Инструменты для тестирования безопасности беспроводных сетей, взлом паролей Wi-Fi.
Aircrack-ng, Kismet
Инструменты для тестирования на проникновение в приложения: атаки на внедрение кода, тестирование безопасности баз данных.
SQLMap помогает тестировать уязвимость БД перед SQL-инъекциями — вредоносными запросами, которые помогают получить доступ к базе без пароля

Иван Авраменко

Чтобы провести пентест, недостаточно просто запустить инструмент, а потом скачать отчёт о тестировании. В реальной жизни средства автоматизации атак могут подвести: перестать работать или просто не подойти для конкретной задачи. Остаётся полагаться только на свою квалификацию. Если большая часть опыта связана только с автоматизацией пентестов, заполнять пробелы в обучении будет долго и больно.

Что входит в тестирование на проникновение

Проведение пентеста проходит в несколько этапов. Разберём их на примере пентеста веб-приложения:

1. Сбор информации
Этот этап похож на «шпионаж» перед атакой. Пентестер ищет всю доступную публичную информацию о сайте. Например, доменные имена, IP-адреса, информацию о структуре сайта, имена сотрудников, технологии, на которых написано веб-приложение.

Какие пригодятся инструменты:
● WHOIS-сервисы — для получения информации о владельце домена.
● Специализированные поисковые запросы — для поиска открытой информации на сайтах и форумах.

2. Анализ уязвимостей
На этом этапе пентестер определяет, есть ли «дыры» в безопасности приложения или сети, через которые может попытаться проникнуть злоумышленник. Он сканирует веб-приложение на наличие уязвимостей. Проверяет открытые порты, анализирует конфигурации сервера, проверяет, есть ли уязвимости в коде приложения.

Какие пригодятся инструменты:
● Nmap: для сканирования открытых портов и определения сервисов.
● Nessus или OpenVAS: для обнаружения уязвимостей в сетевых устройствах.
● Burp Suite или OWASP Zap: для тестирования безопасности веб-приложения.

3. Эксплуатация
На этом этапе пентестер проверяет, насколько сложно воспользоваться найденными уязвимостями и проникнуть в систему. Например, получить доступ к базе данных.

Инструменты:
● Metasploit: для автоматизации атак и использования известных уязвимостей.
● SQLMap: для тестирования на SQL-инъекции.
● Hydra: для атак на аутентификацию.

4. Поддержание доступа
Чем дольше у хакеров будет доступ к системам и данным, тем дороже компании обойдётся уязвимость. На этом этапе пентестер оценивает, как долго система не замечает, что ее взломали и атакуют. Он устанавливает инструменты, которые помогают поддерживать доступ в систему на протяжении тестирования. Например, Netcat или Meterpreter — для удалённого доступа и установки дополнительных инструментов.

Во время пентеста с помощью нескольких инструментов в систему запускают безопасную хакерскую атаку и смотрят, как она отреагирует

5. Зачистка следов пребывания
Злоумышленники могут оставить следы взлома. Например, удалить данные пользователя, оформить подписки, зайти по логину и паролю с нескольких устройств. Чем больше таких следов, тем проще компании провести расследование после хакерской атаки. Опытные хакеры заметают следы своих атак. Пентестеры делают то же самое после теста на проникновение.

6. Анализ данных
Пентестер анализирует информацию, которую он смог получить. Оценивает потенциальный ущерб от успешной атаки. Например, как дорого компании обойдётся утечка данных клиентов из базы.

7. Документирование результатов
Пентестер создает отчёт, в котором описывает выявленные уязвимости, даёт рекомендации по их устранению и общую оценку безопасности веб-приложения. Вот какую информацию он должен содержать, чтобы бизнес понял, как действовать дальше:

✅Понятную структуру, опи­сание рисун­ков, схем, таб­лиц. Формулировки должны быть понятными и для технического специалиста, и для сотрудников маркетинга или HR.

✅Де­таль­ное опи­сание уязвимостей: где наш­ли, в чём суть, скриншоты для наглядности.

✅Опи­сание про­цес­са тес­тирова­ния, тех­ник MITRE. Пентесты проводят в том числе, чтобы выполнить требования регуляторов, поэтому в некоторых случаях добавляют ссылки на базы уяз­вимос­тей ФСТЭК.

✅Ре­комен­дации по устранению уязвимостей для сте­ка тех­нологий, который исполь­зует заказ­чик.

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

✅Последствия для компании, если хакеры воспользуются уязвимостью. Нап­ример, ущерб от DDos-атаки. В этом случае злоумышленники перегружают сервер запросами, пока он не выйдет из строя. Допустим, на сайте компании, которая разрабатывает сайты, есть форма заявки для связи с менеджером. Когда клиент заполняет заявку, информация с сайта поступает на сервер. Каждая такая операция обходится компании в 1000 рублей. При нормальных условиях сайт может выдержать 50 таких запросов в минуту. Теперь представим, что DDoS-атака увеличивает количество запросов в 100 раз. Это означает, что вместо 50 запросов в минуту серверы обрабатывают 5000 запросов, и большинство из них фальшивые. Если атака продлится час, компания потеряет около 300 млн рублей.

✅Ре­зюме работы с общими рекомен­даци­ями и выводом.

Совет эксперта

Иван Авраменко

Как и в программировании, учиться придётся всю жизнь. Систем и приложений с каждым годом все больше. Чтобы находить уязвимости, нужно понимать, как устроена их архитектура. Чем лучше специалист разбирается в технологиях, тем вероятнее он справится с нестандартной задачей. Например, привычные инструменты не подходят. Возможно, придётся написать небольшой скрипт.

Полезно читать, что пишут другие пентестеры и компании, которые занимаются безопасностью. Вот несколько телеграм-каналов по теме:

Кraken — канал со статьями, подкастами и полезными ссылками для начинающего пентестера. Публикуют обзоры инструментов и терминов, обсуждают рынок в прямом эфире.
T.Hunter — практикующий пентестер делится мнением о контексте рынка и важных кейсах для индустрии. Даёт ссылки на полезные OSINT-ресурсы. База для начинающего пентестера.
AP Security — канал компании AP Security. Рассказывают о новых уязвимостях, дают ссылки на исследования, интересные материалы. Канал не для новичков, зато сразу погружает в серьёзный контекст.

Статью подготовили:
Иван Авраменко
Яндекс Практикум
Инженер по кибербезопасности
Яндекс Практикум
Редактор
Анастасия Павлова
Яндекс Практикум
Иллюстратор

Дайджест блога: ежемесячная подборка лучших статей от редакции

Поделиться
Знакомство с IT: Бесплатный гид Практикума по профессиям
Mon Jan 29 2024 11:10:33 GMT+0300 (Moscow Standard Time)