Что такое сканирование уязвимостей (Vulnerability Scanning)?

«Что такое сканирование уязвимостей (Vulnerability Scanning)?» — вопрос из категории Тестирование безопасности, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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

Цели:

  • Обнаружение уязвимостей из публичных баз (CVE, OWASP Top 10).
  • Проверка соответствия политикам безопасности и стандартам (PCI DSS, CIS Benchmarks).
  • Оценка общего уровня защищенности (security posture).

Типы и инструменты:

Тип сканирования Что проверяет Пример инструмента
Сетевого уровня Открытые порты, сервисы, ОС, конфигурации сетевого оборудования. Nessus, OpenVAS, Nmap (nmap -sV --script vuln <target>)
Веб-приложений Уязвимости уровня приложения (SQLi, XSS, CSRF, небезопасные десериализации). OWASP ZAP, Burp Suite, Acunetix
Зависимостей (SCA) Уязвимости в сторонних библиотеках и пакетах. Snyk, OWASP Dependency-Check, GitHub Dependabot
Контейнеров/образов Уязвимости в Docker-образах и их слоях. Trivy, Clair, Docker Scout

Пример (SCA-сканирование с помощью OWASP Dependency-Check):

# Сканирование проекта на Java (Maven)
dependency-check.sh --project "MyApp" --scan ./target/myapp.jar --format HTML

Результатом является отчет с классификацией уязвимостей по степени риска (CVSS score), который требует верификации для устранения ложных срабатываний (false positives).

Ограничения: Сканеры не обнаруживают уязвимости в бизнес-логике, нулевые дни (0-day) или проблемы, требующие авторизации в системе. Они — часть процесса, а не замена ручному тестированию безопасности (Pentest).