
Сканер безопасности веб-приложений, созданный lcamtuf для Google - Неофициальное зеркало
http://code.google.com/p/skipfish/
Написан и сопровождается:
Michal Zalewski [email protected] Niels Heinen [email protected] Sebastian Roschke [email protected]
Авторские права 2009–2012 Google Inc, все права защищены.
Выпущен на условиях Apache License, версии 2.0.
Skipfish — это активный инструмент разведки безопасности веб-приложений. Он строит интерактивную карту сайта (sitemap) для целевого ресурса, выполняя рекурсивный обход и словарные проверки. Затем полученная карта аннотируется результатами ряда активных (но, хочется надеяться, неразрушающих) проверок безопасности. Итоговый отчёт, формируемый инструментом, предназначен служить основой для профессиональной оценки безопасности веб-приложений.
Существует множество коммерческих и open source инструментов с аналогичной функциональностью (например, Nikto, Nessus); выбирайте тот, который лучше всего подходит вам. Тем не менее skipfish пытается решить некоторые распространённые проблемы веб-сканеров безопасности. К конкретным преимуществам относятся:
Высокая производительность: наблюдалось 500+ запросов в секунду к отзывчивым интернет-целям, 2000+ запросов в секунду в сетях LAN/MAN и 7000+ запросов к локальным экземплярам, при очень скромном потреблении CPU, сети и памяти. Это объясняется:
Мультиплексирующая однопоточная, полностью асинхронная модель сетевого ввода-вывода и обработки данных, которая устраняет неэффективность управления памятью, планирования и межпроцессного взаимодействия, присущую некоторым многопоточным клиентам.
Продвинутые возможности HTTP/1.1, такие как range-запросы, сжатие контента и keep-alive соединения, а также принудительное ограничение размера ответов для контроля сетевых накладных расходов.
Для минимизации лишнего трафика используются интеллектуальное кэширование ответов и продвинутые эвристики поведения сервера.
Ориентированная на производительность реализация на чистом C, включая собственный HTTP-стек.
Простота использования: skipfish отличается высокой адаптивностью и надёжностью. Сканер включает:
Эвристическое распознавание неочевидных схем обработки параметров в пути и в строке запроса.
Корректная обработка сайтов на нескольких фреймворках, где одни пути подчиняются совершенно иной семантике или разным правилам фильтрации.
Автоматическое построение словарей на основе анализа содержимого сайта.
Вероятностные режимы сканирования, позволяющие проводить периодические ограниченные по времени оценки сколь угодно сложных сайтов.
Продуманные проверки безопасности: инструмент предназначен для получения точных и значимых результатов:
Тщательно подобранные словари обеспечивают отличное покрытие и позволяют проводить полное тестирование $keyword.$extension за разумное время.
Для обнаружения уязвимостей предпочтение отдаётся трёхэтапным дифференциальным проверкам, а не сигнатурным.
Для выявления тонких проблем безопасности используется логика в стиле ratproxy: межсайтовая подделка запросов (CSRF), включение межсайтовых скриптов, смешанный контент, несоответствия MIME и кодировки, неверные директивы кэширования и т.д.
Встроенные проверки безопасности рассчитаны на сложные сценарии: сохранённый XSS (путь, параметры, заголовки), слепое SQL- или XML-инъекции, слепую инъекцию shell-команд.
Сигнатуры контента в стиле Snort, которые подсвечивают серверные ошибки, утечки информации или потенциально опасные веб-приложения.
Постобработка отчёта значительно снижает шум от остаточных ложных срабатываний или серверных ухищрений за счёт выявления повторяющихся закономерностей.
При этом skipfish не является серебряной пулей и может не подходить для некоторых целей. Например, он не удовлетворяет большинству требований, изложенных в критериях оценки сканеров безопасности веб-приложений WASC (часть из них — намеренно, часть — в силу необходимости). И в отличие от большинства других проектов такого рода, он не поставляется с обширной базой известных уязвимостей для проверок по баннерам.
Ниже приведён общий список проверок безопасности, предлагаемых инструментом.
Уязвимости высокого риска (потенциально ведущие к компрометации системы):
Уязвимости среднего риска (потенциально ведущие к компрометации данных):
Проблемы низкого риска (ограниченное воздействие или низкая специфичность):
Внутренние предупреждения:
Неспецифические информационные записи: