4. Сканирование веб-сайта на наличие уязвимостей

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

  • Сканеры могут тестировать только те уязвимости, под которые разрабатывались. Например, если программа заточена на поиск только Command Injection, то она не способна обнаружить уязвимости типа CSRF или SQL Injection.
  • Сканер может пропустить существующую уязвимость или выявить ложную уязвимость. Всегда требуется проверка результата. На практике это означает, что тестировщик анализирует полученные результаты и воспроизводит все действия в ручном режиме.
  • Работа программы вызывает много «шума», так как генерируется большое количество подозрительного трафика, который может блокироваться WAF, IPS, AntiDDOS устройствами и самим провайдером, что может отразиться на результатах сканирования.
  • В некоторых случаях сканер может временно вывести из строя сам сайт или повредить его БД.

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

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

  • Коммерческие:
    • Burp Suite Pro
    • Nessus
    • Qualys
    • Acunetix
  • Бесплатные:
    • Nikto
    • OWASP ZAP
    • Wapiti
    • OpenVAS

В этом курсе мы рассмотрим работу некоторых бесплатных сканеров.