Как взломать систему или Основные этапы Penetration Test
Многие до сих пор не верят, что пентестеры могут просто так взять и взломать любую систему. Просто так действительно не могут. Но пентест никто и не делает наобум. Его всегда тщательно готовят и разбивают на несколько основных этапов.
Планирование
Заказчик выбирает исполнителя, который будет проводить тест на проникновение, и согласовывает с ним все нюансы будущей проверки.
- Объекты тестирования (пентестер может атаковать всю систему или отдельные ее компоненты).
- Модель пентеста: White box (исполнитель владеет всей информацией о системе), Grey box (располагает лишь некоторыми данными) или Black box (знает только название компании, которую нужно атаковать).
- Режим информирования персонала: Белая Шляпа (сотрудники заказчика знают о тестировании) или Черная Шляпа (о пентесте знает только заказчик).
- Сроки и порядок проведения работ.
Очень важно не просто оговорить все моменты, связанные с проведением теста на проникновение, но и заверить их юридически. Лучше всего составить SLA и обязательно прописать в нем пункт, запрещающий исполнителю разглашать конфиденциальную информацию о компании-заказчике.
Идентификация уязвимостей
Итак, пентестер получил заказ на тестирование и теперь должен найти внешние уязвимости, которые помогут ему проникнуть внутрь системы. Что он для этого делает?
- собирает информацию о компании, ее сотрудниках и пользователях;
- сканирует отдельные элементы сети, которые могут открыть вход в систему: IP-адреса, порты (для обнаружения открытых точек входа), службы и их версии (для обнаружения описанных уязвимостей) и т.д.
- анализирует доступность сетевого узла, сетевых служб и используемых приложений для определения существующих или потенциальных уязвимостей.
При использовании моделей White box или Grey box этот этап можно упустить или сократить, соответственно. Достаточно провести сканирование уязвимостей при помощи специальных программ. Для Black box важно выполнить все пункты в максимальном объеме.
Попытка взлома
Точнее, попытка использования обнаруженных уязвимостей.
Алгоритм взлома зависит от особенностей конфигурации системы и текущего уровня ее безопасности. Иногда пентестеру достаточно подобрать или взломать простой пароль, чтобы получить права администратора. В других случаях приходится использовать ошибки в ПО, «проникать» в программный код ОС, подменять загружаемые библиотеки, которые используются системными сервисами, проводить DDoS-атаки или запускать в сеть вредоносное ПО.
Все это примеры технического пентеста, но тестирование бывает и социотехническим. В таком случае пентестер атакует сотрудников компании с целью получения доступа к их рабочим станциям. Атакует не напрямую, конечно, а через электронную почту, Фейсбук или другие социальные каналы.
Считается, что самую объективную оценку уровня защищенности системы дает комплексный пентест, при котором эксплуатируются и технические уязвимости, и человеческий фактор.
Оценка результатов
По сути, результат один – удалось взломать систему или нет.
Но главное в пентесте – не сам факт взлома, а анализ уязвимостей, которые сделали этот взлом возможным. Поэтому после проверки исполнитель составляет детальный отчет, в котором описывает все обнаруженные и использованные им уязвимости, а еще дает рекомендации по повышению уровня защищенности системы.
Планирование, идентификация уязвимостей, попытка взлома и составление отчета – общая схема, по которой проводится большинство пентестов. Но нельзя забывать, что хороший аудит не может быть универсальным, поэтому схема тестирования должна подбираться под каждую систему индивидуально.
Кроме того, для тестирования на проникновение можно использовать разные стандарты. О самых популярных из них мы обязательно расскажем в следующий раз.