Лучших веб-сервисов, с помощью которых можно исследовать сайты на уязвимости. По оценке HP , 80% всех уязвимостей вызвано неправильными настройками веб-сервера, использованием устаревшего ПО либо другими проблемами, которых можно было легко избежать.

Сервисы из обзора помогают определить такие ситуации. Обычно сканеры осуществляют проверку по базе известных уязвимостей. Некоторые из них довольно просты и только проверяют открытые порты, а другие работают тщательнее и даже пытаются осуществить SQL-инъекцию.

WebSAINT

SAINT - известный сканер уязвимостей, на основе которого сделаны веб-сервисы WebSAINT и WebSAINT Pro . Как Approved Scanning Vendor, сервис осуществляет ASV-сканирование сайтов организаций, для которых это необходимо по условиями сертификации PCI DSS. Может работать по расписанию и проводить периодические проверки, составляет различные отчеты по результатам сканирования. WebSAINT сканирует порты TCP и UDP на указанных адресах в сети пользователя. В «профессиональной» версии добавлены пентесты и сканирование веб-приложений и настраиваемые отчеты.

ImmuniWeb

Сервис ImmuniWeb от компании High-Tech Bridge использует немного другой подход к сканированию: кроме автоматического сканирования, здесь предлагают еще пентесты вручную. Процедура начинается в указанное клиентом время и занимает до 12 часов. Отчет просматривают сотрудники компании перед тем, как отправить клиенту. В нем указывают как минимум три способа устранения каждой выявленной уязвимости, в том числе варианты изменения исходного кода веб-приложения, изменение правил файрвола, установка патча.

За человеческий труд приходится платить больше, чем за автоматическую проверку. Полное сканирование с пентестами ImmuniWeb стоит $639.

BeyondSaaS

BeyondSaaS от BeyondTrust обойдется еще дороже. Клиентам предлагают оформить подписку за $3500, после чего они могут проводить неограниченное количество проверок в течение года. Однократный скан стоит $700. Сайты проверяются на SQL-инъекции, XSS, CSRF и уязвимости операционной системы. Разработчики заявляют вероятность ложных срабатываний не более 1%, а в отчетах тоже указывают варианты исправления проблем.

Компания BeyondTrust предлагает и другие инструменты для сканирования на уязвимости, в том числе бесплатный Retina Network Community, который ограничен 256 IP-адресами.

Dell Secure Works

Dell Secure Works , возможно, самый продвинутый из веб-сканеров, представленных в обзоре. Он работает на технологии QualysGuard Vulnerability Management и проверяет веб-серверы, сетевые устройства, серверы приложений и СУБД как внутри корпоративной сети, так и на облачном хостинге. Веб-сервис соответствует требованиям PCI, HIPAA, GLBA и NERC CIP.

показано, что более 70% отсканированных веб-сайтов были заражены одной или несколькими уязвимостями.

Как владелец веб-приложения, как вы гарантируете, что ваш сайт защищен от онлайн-угроз? Или от утечки конфиденциальной информации?

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

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

Существует два типа сканера.

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

Acunetix
Detectify
Qualys

Open Source / Бесплатные — вы можете загружать и выполнять проверку безопасности по требованию.

Не все из них смогут охватить широкий спектр уязвимостей, таких как коммерческий.

Давайте посмотрим на следующие сканеры уязвимостей с открытым исходным кодом.

1. Arachni

Arachni — высокопроизводительный сканер безопасности, построенный на основе Ruby для современных веб-приложений.

Он доступен в двоичном формате для Mac, Windows и Linux.

Это не только решение для базового статического или веб-сайта с CMS, но также Arachni способен выполнять интеграцию со следующиим платформами.

Он выполняет активные и пассивные проверки.

Windows, Solaris, Linux, BSD, Unix
Nginx, Apache, Tomcat, IIS, Jetty
Java, Ruby, Python, ASP, PHP
Django, Rails, CherryPy, CakePHP, ASP.NET MVC, Symfony

Некоторые из обнаруженных уязвимостей:

NoSQL / Blind / SQL / Code / LDAP / Command / XPath injection
Подделка запросов межсайтовый скриптинг
Обход пути
Включение локального / удаленного файла
Разделение ответа
Межсайтовый скриптинг
Неопределенные перенаправления DOM
Раскрытие исходного кода

2. XssPy

Сканер уязвимостей XSS (межсайтовый скриптинг) на основе python используется многими организациями, включая Microsoft, Stanford, Motorola, Informatica и т.д.

XssPy by Faizan Ahmad — умный инструмент. Вместо того, чтобы просто проверять домашнюю страницу или страницу, она проверяет всю ссылку на веб-сайтах.

XssPy также проверяет субдомен.

3. w3af

w3af, проект с открытым исходным кодом, начатый еще в конце 2006 года, основан на Python и доступен для Linux и ОС Windows. w3af способен обнаруживать более 200 уязвимостей, включая OWASP top 10.

Он поддерживает различные методы ведения журнала для отчетности. Пример:

CSV
HTML
Консоль
Текст
XML
Эл. адрес

Он построен на архитектуре плагина, и вы можете проверить все доступные плагины.

4. Nikto

Проект с открытым исходным кодом, спонсируемый Netsparker, направлен на поиск неправильной конфигурации веб-сервера, плагинов и уязвимостей в Интернете.

5. Wfuzz

Wfuzz (Web Fuzzer) — это инструмент оценки приложений для тестирования на проникновение.

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

Wfuzz требует наличия Python на компьютере, на котором вы хотите запустить сканирование.

6. OWASP ZAP

ZAP (Zet Attack Proxy) — один из известных инструментов тестирования на проникновение, который активно обновляется сотнями добровольцев во всем мире.

Это кросс-платформенный Java-инструмент, который может работать даже на Raspberry Pi.

ZIP находится между браузером и веб-приложением для перехвата и проверки сообщений.

Некоторым из следующих функций ZAP, которые следует упомянуть.

Fuzzer
Автоматический и пассивный сканер
Поддержка нескольких языков сценариев
Принудительный просмотр

7. Wapiti

Wapiti просматривает веб-страницы заданной цели и ищет сценарии и форму для ввода данных, чтобы узнать, является ли оно уязвимым.

Это не проверка безопасности исходного кода, а скорее проверка блэк боксов.

Он поддерживает методы GET и POST HTTP, прокси HTTP и HTTPS, несколько аутентификаций и т. д.

8. Vega

Vega разработан Subgraph, многоплатформенное программное обеспечение, написанное на Java, для поиска XSS, SQLi, RFI и многих других уязвимостей.

Vega получил удобный графический интерфейс и способен выполнять автоматическое сканирование, войдя в приложение с заданными учетными данными.

Если вы разработчик, вы можете использовать vega API для создания новых модулей атаки.

9. SQLmap

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

Он работает с Python 2.6 или 2.7 на любой ОС. Если вы хотите , то sqlmap будет полезен как никогда.

10. Grabber

Это небольшой инструмент, основанный на Python, делает несколько вещей достаточно хорошо.

Некоторые из функций Grabber:

Анализатор исходного кода JavaScript
Межсайтовый скриптинг, SQL-инъекция, слепое внедрение SQL
Тестирование PHP-приложений с использованием PHP-SAT

11. Golismero

Фреймворк для управления и запуска некоторых популярных инструментов безопасности, таких как Wfuzz, DNS recon, sqlmap, OpenVas, анализатор роботов и т. д.).

Golismero может консолидировать отзывы от других инструментов и показать один результат.

12. OWASP Xenotix XSS

Xenotix XSS OWASP — это расширенная инфраструктура для поиска и использования межсайтовых скриптов.

Он имеет встроенные три интеллектуальных фьюзера для быстрого сканирования и улучшения результатов.

13. Metascan

Сканер по поиску уязвимостей веб-приложений от отечественных разработчиков

Проблема безопасности вебсайтов ещё никогда не стояла так остро, как в 21 веке. Конечно, это связано со всеобъемлющим распространением сети Интернет практически во всех отраслях и сферах. Каждый день хакеры и специалисты по безопасности находят по нескольку новых уязвимостей сайтов. Многие из них тут же закрываются владельцами и разработчиками, а какие-то остаются как есть. Чем и пользуются злоумышленники. А ведь с помощью взломанного сайта можно нанести большой вред как его пользователям, так и серверам, на которых он размещён.

Типы уязвимостей сайтов

Вам будет интересно:

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

  • XSS. Каждый сайт обладает небольшими формами. С их помощью пользователи вводят данные и получают какой-либо результат, проводят регистрации или отправляют сообщения. Подстановкой в эти формы специальных значений можно спровоцировать выполнение определённого скрипта, что может вызвать нарушение целостности сайта и компрометирование данных.
  • SQL-инъекция. Очень распространённый и эффективный способ получить доступ к конфиденциальным данным. Происходить это может либо через адресную строку, либо через формы. Процесс проводится путем подстановки значений, которые могут не отфильтровываться скриптами и выполнять запросы в базу данных. А при должных знаниях это может вызвать нарушение безопасности.

При подготовке использовались материалы: «9 security tips to protect your website from hackers» , «10 Tips to Improve Your Website Security» и «Web Application Security Testing Cheat Sheet»

Общедоступные веб-приложения интересны хакерам как ресурсы или инструменты заработка. Спектр применения полученной в результате взлома информации широкий: платное предоставление доступа к ресурсу, использование в бот-сетях и т. д. Личность владельца не важна, так как процесс взлома автоматизирован и поставлен на поток. Стоимость информации пропорциональна известности и влиятельности компании.

Если задаться целью, уязвимость в приложении найдётся. В отчете о хакерских атаках на сайты за 2016 год эксперты Google сообщили о том, что количество взломанных ресурсов увеличилось на 32% по сравнению с 2015 годом, и это не предел. Помните об этом и отбросьте заблуждения о неприступности своих веб-ресурсов, когда планируете работы по информационной безопасности.

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

Используйте инструменты для анализа защищенности

Прежде чем искать уязвимости вручную проверьте приложение автоматизированными средствами. Они выполняют тесты на проникновение, пытаются его взломать, например, при помощи SQL-инъекции.

Ниже приведена подборка бесплатных инструментов.

Приложения и фреймворки

  • OpenVAS сканирует узлы сети на наличие уязвимостей и позволяет управлять уязвимостями.
  • OWASP Xenotix XSS Exploit Framework сканирует ресурс на возможность эксплуатации XSS-уязвимостей.
  • Approof от Positive Technologies проверяет конфигурацию веб-приложения, сканирует на наличие уязвимых компонентов, незащищенных чувствительных данных и вредоносного кода.

Предотвратите SQL-инъекции

Проверяйте и шифруйте пароли

Храните пароли в виде хэша, причём лучше использовать алгоритмы одностороннего хэширования, например, SHA. В этом случае для авторизации пользователей сравниваются хэшированные значения. Если злоумышленник взломает ресурс и получит хэшированные пароли, ущерб будет снижен за счёт того, что хэш имеет необратимое действие и получить из него исходные данные практически невозможно. Но хэши на популярные пароли легко перебираются по словарю, поэтому используйте также «соль», уникальную для каждого пароля. Тогда взлом большого количества паролей становится ещё медленнее и требует больших вычислительных затрат.

Что касается валидации, установите ограничение на минимальную длину пароля, а также делайте проверку на совпадение с логином, e-mail и адресом сайта.

К счастью, большинство CMS предоставляют инструменты управления политиками безопасности, но для использования «соли» или установки минимальной сложности пароля иногда требуется дополнительная настройка или установка модуля. При использовании.NET стоит применить провайдеры членства, потому что в них заложена встроенная система безопасности с большим количеством настроек и готовыми элементами для аутентификации и изменения пароля.

Контролируйте процесс загрузки файлов

Загрузка пользователем файлов на веб-сайт, даже если это просто смена аватара, несёт в себе угрозу информационной безопасности. Загруженный файл, который, на первый взгляд, выглядит безобидно, может содержать скрипт и при выполнении на сервере откроет злоумышленнику доступ к сайту.

Даже если установлено ограничение на тип (например, только изображения), относитесь к загружаемым пользователями файлам с подозрением. Расширение или MIME-тип легко подделать, чтение заголовка или использование функций проверки размера изображения не дают 100% гарантии, в большинство форматов изображений возможно внедрить код PHP, который будет выполнен на сервере.

Чтобы это предотвратить, запретите исполнение загружаемых файлов пользователями. По умолчанию веб-серверы не пытаются выполнить файлы с расширениями изображений, но не стоит полагаться только на расширение. Известны случаи, когда файл image.jpg.php обходил эту проверку.

Способы ограничения доступа:

  • переименовывать или изменять расширения файлов при загрузке;
  • изменять разрешения, например, на chmod 0666 ;
  • создать файл.htaccess (см. пример ниже), который откроет доступ только к указанным типам файлов.
deny from all order deny,allow allow from all

Более безопасный способ –– запретить прямой доступ к загружаемым файлам, разместив их, например, вне папки корня сайта. Однако в этом случае потребуется создать скрипт (или обработчик HTTP в.NET), чтобы извлекать файлы из закрытой части и выдавать пользователю.

Меры защиты веб-приложений для владельцев собственных серверов:

  1. Настройте межсетевой экран, в том числе на блокировку неиспользуемых портов.
  2. При наличии доступа к серверу из локальной сети создайте демилитаризованную зону (DMZ), открыв доступ из внешнего мира только к портам 80 и 443.
  3. При отсутствии доступа к серверу из локальной сети используйте защищённые методы (SFTP, SSH и др.) для передачи файлов и управления сервером извне.
  4. Если возможно, выделите отдельный сервер для баз данных, который не будет напрямую доступен из внешнего мира.
  5. Отграничьте физический доступ к серверу.

Следите за сообщениями об ошибках

Будьте осторожны с тем, что отображается в сообщениях об ошибках приложения. Сообщайте пользователю информацию об ошибках в максимально лаконичной форме, которая исключает наличие любой технической информации. Подробные сведения храните в лог-файлах сервера. Ведь имея полную информацию, злоумышленнику проще произвести комплексные атаки вроде SQL-инъекции.

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

Проверяйте входящие данные

Контролируйте данные, полученные с веб-форм, как на стороне клиента, так и на стороне сервера. В браузере проверяются простые ошибки вроде незаполненного обязательного поля или текста, введённого в числовое поле. Эти проверки обходятся, поэтому контроль на стороне сервера обязателен. Отсутствие проверки на стороне сервера приводит к эксплуатации злоумышленником инъекций и других видов атак.

Распределяйте права доступа к файлам

Разрешения файла (file permissions) определяют КТО и ЧТО может с ним делать.

В *nix системах у файлов 3 варианта доступа, которые представляются в виде цифр:

  • «Read» (4) - чтение содержимого файла;
  • «Write» (2) - изменение содержимого файла;
  • «Execute» (1) - выполнение программы или скрипта.

Чтобы установить множественные разрешения, достаточно сложить их числовые значения:

  • «Чтение» (4) + «запись» (2) = 6;
  • «Чтение» (4) + «запись» (2) + «выполнение» (1) = 7.

При распределении прав пользователи делятся на 3 типа:

  • «Owner» (владелец) - создатель файла (изменяем, но может быть только один);
  • «Group» (группа) - группа пользователей, которые получают разрешения;
  • «Others» (прочие) - остальные пользователи.

Установка владельцу прав доступа на чтение и запись, группе - на чтение, прочим - запрет доступа выглядит так:

Итоговое представление: 640 .

Для каталогов аналогично, но флаг «выполнить» значит сделать рабочей директорией.

.

Рисунок 2. Внешний вид веб-приложения Mutillidae

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

Теперь, когда мы подготовили тестовый стенд, можно рассмотреть процесс тестирования, который будет представлять собой следующую последовательность действий:

  1. Подготовка тестового приложения к сканированию
  2. Настройка сканера безопасности
  3. Запуск процесса сканирования с выбранными настройками
  4. Анализ результатов и занесение их в таблицу
Тип уязвимости Найдено Ложно найдено Время

Таблица 1. Результаты сканирования

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

The Path Traversal / Local File Inclusion

Sensitive Data Exposure

Затраченное время

Ложно обнару-

Ложно обнару-жено

Ложно обнару-

Ложно обнару-

Ложно обнару-

Таблица 2. Итоговая таблица результатов

В процессе проведения тестов мы столкнемся с несколькими проблемами:

  1. Сканеры безопасности отличаются своей настройкой и функционалом. Для того чтобы отразить в нашем тестировании специфические особенности сканеров, мы будем проводить по несколько серий сканирования с различными конфигурациями настроек для получения более качественного результата (если это возможно).
  2. Сканеры безопасности бывают специализированы на определенном типе уязвимости либо могут определять широкий спектр уязвимостей. Если сканер специализирован на определенном типе уязвимости, следовательно, он должен более качественно определять их, в противном случае мы будем акцентирование особое внимания на не идентифицированной или ложно идентифицированной уязвимости специализированным сканером.
  3. Типы уязвимостей. Так как существует большое множество типов уязвимостей, нам надо определиться с теми типами, которые мы будем отражать в итоговом отчете. В данном вопросе мы будем руководствоваться классификацией OWASP Top 10 2013 и выберем из этого списка пять типов уязвимостей.
  4. Количество уязвимостей в веб-приложении. Заранее знать о том, какое количество уязвимостей содержится в тестовом Web приложении, мы не можем, поэтому за общее число мы возьмем сумму найденных уязвимостей всеми сканерами.

Настройка сканеров и начало тестирования

SkipFish

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

  1. skipfish -W /dev/null -LV […other options…] – в данном режиме запуска сканер выполняет упорядоченный обход цели и в принципе работает также как другие сканеры. Не рекомендуется вследствие ограниченного охвата ресурсов цели, но зато процесс сканирования занимает значительно меньше времени по сравнению с остальными режимами;
  2. skipfish -W dictionary.wl -Y […other options…] – в данном режиме сканер использует фаззинг только имен файлов или расширений. Этот режим предпочтителен, если есть ограничение по времени и при этом требуется получить приемлемый результат;
  3. skipfish -W dictionary.wl […other options…] – в данном режиме сканер перебирает все возможные пары имя и расширение. Этот режим значительно медленнее предыдущих, но при этом он проводит более детальный анализ веб-приложения. Разработчик сканера рекомендует использовать данный вариант по умолчанию.

Skipfish -W dictionary.wl -o ~/report/ http://target/

W – указываем путь к словарю, который мы будем использовать;

O – указываем директорию, в которую будем сохранять отчет.

Тип уязвимости Найдено Ложно найдено Время
SQL injection 6 5 3ч18м
XSS 11 2
CSRF 1 1
3 2
Sensitive Data Exposure 128 0

Таблица 3. Результаты сканирования SkipFish

Рисунок 3. Окончание процесса сканирования SkipFish

SkipFish неплохо справился с поставленной задачей, несмотря на большое количество ложных срабатываний. Стоит заметить, что хоть сканер и не имеет графического интерфейса, он очень прост в настройке. Также помимо результатов, отраженных в таблице, SkipFish обнаружил много интересной информации о Web-приложение, проанализировав которую можно улучшить защищенность приложения

SQLMap

Основной целью данного сканера является автоматический поиск и эксплуатация SQL уязвимостей. Он обладает огромным количеством настроек, позволяющих оптимизировать процесс поиска и эксплуатации уязвимостей. Для запуска сканирования можно воспользоваться визардом: sqlmap —wizard или простейшей командой: sqlmap -u «http://www.target.com/vuln.php?id=1». Мы же постараемся полностью автоматизировать процесс поиска и максимизировать результат. Запускать процесс сканирования мы будем двумя способами:

Sqlmap –u "http://target/" -o –v 4 --crawl=4 --level=3 --risk=2 --forms --batch --dbms=mysql sqlmap –l ~/burplog.log -o –v 4 --batch --level=3 --risk=2 --dbms=mysql

В первом способе мы используем встроенный в SQLMap краулер, а во втором – файл логов Burp Suite. А теперь прокомментируем параметры, которые мы использовали:

U – после данного параметра указываем адрес цели сканирования;

L – после данного параметра указываем путь к файлу с логами Burp Suite (или WebScarab);

O – включаем оптимизацию;

V – устанавливаем уровень подробности выводимой информации;

—dbms – устанавливаем СУБД, которую использует наша цель;

—forms – включаем парсинг и анализ форм, содержащихся в тестовом приложении;

—crawl – включаем встроенный краулер, который будет сканировать нашу цель;

—batch – так как мы решили полностью автоматизировать процесс поиска и эксплуатации, мы воспользуемся этим параметром, он заставляет SQLMap выполнять все действия по умолчанию, а не запрашивать решение у пользователя;

—level, —risk – увеличиваем количество используемых тестов, при этом значительно увеличивается время сканирования.

Тип уязвимости Найдено Ложно найдено Время
SQL injection 14 0 4ч27м
XSS - -
CSRF - -
The Path Traversal / Local File Inclusion - -
Sensitive Data Exposure - -

Таблица 4. Результаты сканирования SQLMap

Рисунок 4. Эксплуатация обнаруженной SQL уязвимости

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

Acunetix Web Vulnerability Scanner (Acunetix WVS)

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

Итак, приступим к настройке сканера:

  1. На первом шаге нам предлагают ввести адрес цели, либо выбрать файл со структурой сайта, который был получен с помощью инструмента «Site Crawler», мы выберем первый вариант
  2. На втором шаге нам предстоит выбрать профиль сканирования, их достаточно много, мы выберем профиль «Default», так как он содержит в себе тесты для поиска всех доступных типов уязвимостей и настройки сканирования, которые мы оставим дефолтными
  3. На третьем шаге сканер пытается определить технологии, которые использует цель, и отображает полученные значения, при этом их можно выбрать самому либо выставить значение «Unknown». В нашем случае все значения были определены верно, и мы их оставим без изменения
  4. Следующим шагом предлагается выбрать способ аутентификации, так как нам она не потребуется, мы пропустим этот шаг
  5. На последнем шаге предлагается сохранить настройки и после нажатия «Finish» начинается процесс сканирования
Тип уязвимости Найдено Ложно найдено Время
SQL injection 1 0 2ч 13м
XSS 31 0
CSRF 19 0
The Path Traversal / Local File Inclusion 4 3
Sensitive Data Exposure 231 0

Таблица 5. Результаты сканирования Acunetix WVS

Рисунок 5. Окончание процесса сканирования Acunetix WVS

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

Web Application Attack and Audit Framework (w3af)

Фреймворк с графическим и консольным интерфейсом, позволяющий искать и эксплуатировать уязвимости в веб-приложении. Благодаря широкому спектру плагинов можно достаточно тонко настроить процесс сканирования. Также в w3af есть готовые шаблоны для сканирования, пользователю надо ввести только адрес цели.

При настройке сканера мы будем базироваться на шаблонах «full_audit» и «full_audit_spider_man», их отличие заключается в том, что в первом шаблоне в качестве плагина краулера используется web_spider – классический web-паук, а во втором spider_man – локальный прокси. Для наших целей нам не понадобятся плагины из группы «bruteforce», включенные по умолчанию в выбранных шаблонах, поэтому мы их выключим. Осталось настроить плагины из группы «output». По умолчанию вывод собранной информации производится только в консоль, что для анализа результатов не очень удобно, поэтому мы включим плагин «html_file», который позволяет сохранять всю полученную информацию в HTML-файл.

Теперь можно ввести адрес цели и начать сканирование.

Тип уязвимости Найдено Ложно найдено Время
SQL injection 4 2 2ч57м
XSS 3 1
CSRF 25 0
The Path Traversal / Local File Inclusion 4 3
Sensitive Data Exposure 17 0

Таблица 6. Результаты сканирования w3af

Рисунок 6. Детали запроса, содержащего SQL уязвимость

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

Итоги тестирования

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

SQL injection