Инструменты для тестирования безопасности


Тестирование / Понедельник, Февраль 19th, 2018

Обеспечение должной безопасности веб-приложений — это очень важная, актуальная и не простая задача, с которой сталкиваются все команды, разрабатывающие соотвествующие продукты. Думать о безопасности следует начинать как можно раньше. Тестирование безопасности обеспечивает обратную связь команде о состоянии продукта. Согласно ISO 9126 тестирование безопасности является частью функционального тестирования. SWEBOK определяет тестирование безопасности как проверку того, что программное обеспечение защищено от внешних атак: в частности, включает проверки конфиденциальности, целостности и доступности систем и их данных. Решить эту непростую задачу помогают автоматизированные инструменты тестирования, направленные на поиск уязвимостей продукта.

Тестирование безопасности в автоматизированном режиме обладает следующими основными преимуществами:

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

ВАЖНО: автоматизация не заменяет человеческого участия в процессе: результаты, полученные в результате выполнения автоматизированных тестов, необходимо оценить с критической точки зрения и проанализировать для принятия дальнейших решений.

Web Application Attack and Audit Framework(w3af)

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

  • Широкий спектр плагинов.
  • Информативный отчет с результатами тестирования, с возможностью экспорта данных в различных форматах.
  • Встроенный прокси-сервер с возможностью редактирования запросов на лету.
  • Наличие документации
  • Неустойчивая работа под Windows.

SkipFish

SkipFish бесплатный сканер безопасности с открытым кодом, строит детальную интерактивную карту выбранного сайта,  используя рекурсивный метод. Утилита не обладает графическим интерфейсом.  Полный список проверок и документация доступны тут. Обзор SkipFish на русском.  Среди особенностей можно выделить:

  • Высокая скорость работы (до 2000 запросов в секунду).
  • Простота в использовании.
  • Отчет с результатами тестирования в формате html.
  • Длительное время сканирования.

SQLMap

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

  • поддержка 5 основных классов SQL-инъекций: boolean-based blind, time-based blind, error-based, UNION query,  stacked queries.
  • поддержка различных баз данных: MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird, Sybase, SAP MaxDB, HSQLDB and Informix.
  • возможность сделать дамп БД.
  • Генерируемых отчет в html-формате: используем python-скрипт в командной строке SQLMap: «/tmp/scan_out.txt»

Полный список особенностей и основной сценарий работы можно посмотреть в статье (на русском). Полезная статья об использовании SQLMap на owasp.org.

 Acunetix Web Vulnerability Scanner

 Acunetix платный автоматизированный сканер безопасности web-приложений (есть бесплатная десктопная версия на 14 дней, также доступна бесплатная веб-версия). Ищет множество уязвимостей, включая SQL-инъекции, межсайтовый скриптинг и слабые пароли. Особенности работы сканера:

  • интуитивно понятный графический интерфейс,
  • максимальная автоматизация. Пользователю следует только указать целевой ресурс, записать сценарий авторизации, указать игнорированные транзакции (зачастую это сценарий выхода).
  • отображение результатов сканирования в реальном времени.
  • создание подробного отчета с результатами тестирования, в том числе с указанием способов устранения найденных проблем.
  • Параллельная проверка нескольких ресурсов.
  • Наличие документации.

Nikto

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

Для геренации отчета с результатами тестирования в формате html  используем команду:

$ nikto -h test.com -Display V -F htm -output testrelults.html

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

Burp Suite

Burp Suite — это платная (бесплатная содержит ограниченный функционал) мощная платформа для тестирования безопасности веб-приложений как в ручном так и автоматизированном режимах  с интуитивно понятным интерфейсом, включает инструменты по созданию карты веб-приложения, изменения запросов, фаззинга и т.д. Является одним из самых популярных инструментов тестирования безопасности, как говорится «его рекомендуют друзьям». Основной функционал представлен в следующих модулях:

  • Proxy — перехватывающий прокси-сервер, работающий по протоколу HTTP(S) в режиме man-in-the-middle. Требуется также прописать прокси в целевом браузере, а для перехвата запросов по HTTPS установить сертификаты безопасности.
  • Spider — паук, собирающий в автоматическом режиме информацию о об архитектуре веб-приложения.
  • Scanner — автоматический сканер уязвимостей, который доступен только в professional версии.
  • Intruder — утилита, позволяющая в автоматическом режиме производить атаки различного вида, с возможностью  загрузки пользовательских файлов. Возможно проведение таких атак как:  подбор пароля, перебор идентификаторов, фаззинг и т.д.
  • Repeater — позволяет изменять и отправлять повторно отдельные запросы и получать ответы для дальнейшего анализа.
  • Sequencer — инструмент, используемый для генерации случайных непредсказуемых данных.
  • Decoder — полезный инструмент для ручного или автоматизированного де/кодирования данных приложения.
  • Comparer — удобная утилита для выявления различий в данных.

Среди особенностей стоит отметить:

  • возможность обнаружения большого числа разнообразных уязвимостей.
  • поддержку ряда веб-технологии: REST, JSON, AJAX и SOAP,
  • возможность тестирования безопасности мобильный приложений платформы iOS (Burp Suite Mobile Assistant).
  • Отчет содержит не только список проверок, но и рекомендации по устранению уязвимостей.

Документация по Burp Suite на английском. Основной сценарий работы включая установку, настройку и запуск можно посмотреть тут и обзорная статья на Хабре.

OWASP ZAP

OWASP Zed Attack Proxy Project (ZAP) — один из самых известных инструментов для тестирования безопасности веб-приложений. Является бесплатным кросс-платформенным, простым в использовании, мультиязычным (переведен на множество языков) инструментом с открытым исходным кодом. Включает в себя: перехватывающий прокси, активный и пассивный сканеры, поддержку веб-сокетов, поддержку аутентификаций и сессий, поддержку большого кол-ва скриптовых языков и т.д.

Список всей необходимой документации доступен здесь. OWASP ZAP является один из самых активных проектов OWASP

Netsparker

Netsparker платный инструмент для поиска уязвимостей для всех типов веб-приложений, таких как SQL Injection и Cross-Site Scripting (XSS). Есть как десктопное так и облачное решение Netsparker Cloud. Очень прост в использовании, следует указать только адрес целевого ресурса, логин и пароль пользователя, под которым выполнять аутентификацию, а также выбрать скорость тестирования. Отчет о ходе тестирования отображается в реальном времени. Также инструмент анализирует структуру веб-сайта на предмет раскрытия служебной информации, такой как резервные копии данных, отладочные веб-скрипты, скрытые каталоги и т.д.  Среди особенностей стоит отметить:

  • Полная поддержка HTML 5.
  •  Поддержка AJAX / JAVASCRIPT.
  • Поддержка веб-ресурсов, использующих механизм защиты ANTI-CSRF TOKEN.
  • По результатам тестирования оценивается состояние продукта, предоставляется подробная информация о найденных уязвимостях.

Документация на английском тут.

MindMap основного сценария использования сканеров.

Итоги

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

Благодарности

Хочу выразить благодарность Веселину Андрею за помощь в подготовки материалов, а также проведенное тестирование безопасности наших веб-приложений. Также хочу поблагодарить Хлебухова Александра и Ивакина Дмитрия за дельные замечания. Спасибо всем большое)

 

 

Spread the love

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *