Комплексный аудит безопасности сайта

madman

Резидент
225
266
2 Июл 2016
Комплексный аудит безопасности сайта

Методы тестирования на проникновение:

1. Поиск по открытым источникам. Так как используется способ «черного ящика», то тестировщик абсолютно не в курсе, как выглядит атакуемый объект изнутри, иначе взлом был бы крайне тривиальной задачей. Поэтому в ход идет предварительный сбор информации.

Специалиста в первую очередь интересует техническая сторона веб-приложения – на каком языке оно написано, какую CMS использует и с какими расширениями. Узнать все это можно даже не прибегая к специальным средствам, иногда хватит только Google. Например, можно найти в LinkedIn сотрудников атакуемой компании, выделить среди них программистов и определить, на каком языке они специализируются.

Более того, при желании можно выяснить, и чем конкретно они занимались. Для этого достаточно поискать по их именам или никнеймам, и можно найти в выдаче много чего интересного. Это может быть, например, обсуждение от имени этого программиста какого-либо модуля для движка или заказ с корпоративного аккаунта у фрилансера-подрядчика нового плагина с подробным ТЗ.

2. Определение защитных средств. Наличие какого-либо софта для безопасности – систем предотвращения вторжения, защиты от DDoS, межсетевого экрана — может серьезно усложнить задачу по взлому, поэтому его необходимо обнаружить. Обычно для этого применяются специальные программы. К примеру, обнаружить наличие фаерфола можно с помощью сканера портов, а антиддос-сервисы определяются по DNS-записям домена.

3. Использование стандартных уязвимостей. Прежде чем начинать искать неизвестные уязвимости нулевого дня, изучать логику работы веб-приложения и его архитектуру, тестировщик проверят устойчивость сайта к обычным методам атаки. Например, это может быть использование известного эксплойта к старой версии движка. Именно на этом этапе и пострадали вышеупомянутые Interpark и форум Ubuntu.

В общем виде на этом этапе обычно происходит следующее:
- Попытка удаленного выполнения кода.
- Попытка SQL-инъекции.
- Эксплуатирование XSS, RFI и LFI уязвимостей.
- Поиск мест хранения backup-ов и получение доступа к ним.
- Манипуляции с системой авторизации: брутфорс, поиск небезопасного восстановления пароля, обход аутентификации.
- Изучение файловой структуры сайта с целью обнаружения файлов, доступ к которым ограничен только отсутствием явной ссылки на него.
- Перехват трафика и его исследование.
- Поиск вариантов несанкционированного доступа к конфиденциальной информации.

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

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

На самом деле, если ваш сайт успешно проходит тестирование на все стандартные виды угроз, то проверку можно считать успешной. Более детальное и глубокое изучение методов взлома актуального только для очень крупных проектов, для взлома которых могут привлекать действительно высококлассных хакеров, способных обнаруживать новые бреши в защите.