Проведения теста на проникновения решает в первую очередь следующие задачи:
- выявление недостатков в применяемых клиентом мерах информационной безопасности и оценка возможности их использования нарушителем;
- практическая демонстрация возможности использования уязвимостей (на примере наиболее критических);
- получение на основе объективных свидетельств комплексной оценки текущего уровня защищенности веб-приложения;
- выработка рекомендаций по устранению выявленных уязвимостей и недостатков с целью повышения уровня защищенности веб-приложения.
В большинстве случаев тестирование проходит методом черного ящик (black box).
При таком методе используется следующая модель нарушителя: высококвалифицированный внешний нарушитель (уровень квалификации — хакер), действующий со стороны сети Интернет, не имеющий никаких привилегий и не обладающий никакими данными об исследуемом ресурсе, осуществляющий атаки, направленные на получение несанкционированного доступа к веб-приложению. Единственная информация, которой владеет исполнитель – адрес сайта.
При проведении теста на проникновение используются общепризнанные стандарты и руководства по обеспечению информационной безопасности, такие как:
- OWASP Testing Guide
- OWASP Top10
- Web Application Security Consortium Threat (WASC) Classification
- Стандарты серии ISO 17799/27000
Проведение работ можно логически разбить на следующие этапы:
1. Сбор и анализ информации
2. Идентификация уязвимостей
3. Реализация атаки на веб-приложение
4. Анализ и составление отчета
5. Устранение уязвимостей
Сбор и анализ информации.
На данном этапе производится сканирование портов исследуемого ресурса, а также идентификация доступных сервисов, служб, средств защиты.
Идентификация уязвимостей.
Сбор и анализ информации об имеющихся уязвимостях в обнаруженных версиях служб, сервисов, скриптах. Выявление способов использования уязвимостей, оценка рисков использования уязвимостей. Тестирование уязвимостей OWASP Top10 (https://www.owasp.org). Анализ и тестирование логики веб-приложений, проверка возможности раскрытияе чувствительных данных, тестирование механизмов проверки входных данных (SQL Injection, XML Injection, XSS, Code Injection, B/H/S overflows) и т.д.
Реализация атаки на веб-приложение.
Проверка выполнение произвольного кода на стороне сервера, получение прав на чтение или запись файлов/бд на сервере, доступ к приватной информации и т.д.
Анализ и составление отчетов.
Здесь происходит объединение и упорядочивание информации, полученной в процессе тестирования. Составляется отчет, который содержит : обзорный отчет, отчет об обнаруженных уязвимостях, вывод о состоянии информационной безопасности исследуемого ресурса и план по устранению выявленных уязвимостей.