Проверить собственный сайт на известные уязвимости можно самостоятельно, не дожидаясь инцидента. Для этого есть бесплатные сканеры: nuclei работает по шаблонам, nikto проверяет веб-сервер, wpscan разбирает WordPress. Статья описывает, как запускать их против своих ресурсов, как читать результат и чем сканирование отличается от пентеста.
Границы: только свои ресурсы
Сканеры отправляют серверу сотни запросов, часть которых выглядит как попытка атаки. Запускайте их только против сайтов, которыми владеете или на проверку которых имеете письменное разрешение. Сканирование чужого ресурса без согласия может нарушать закон и правила хостинг-провайдера. Если сайт размещён на общем сервере, предупредите поддержку и выберите время с низкой нагрузкой. Лучший вариант — проверять тестовую копию (staging), а не рабочий сайт.
Какой инструмент что проверяет
Инструменты дополняют друг друга. Ни один из них не заменяет остальные, а результат каждого нужно проверять вручную.
| Инструмент | Что проверяет | Результат |
|---|---|---|
| nuclei | Известные уязвимости, ошибки конфигурации и открытые панели по шаблонам | Список находок с уровнем серьёзности |
| nikto | Веб-сервер: устаревшее ПО, опасные файлы, небезопасные заголовки | Текстовый отчёт со ссылками на описания |
| wpscan | WordPress: версия ядра, плагины, темы, пользователи | Список компонентов и известных проблем |
nuclei: проверка по шаблонам
Nuclei запускает наборы YAML-шаблонов, каждый из которых описывает одну проверку. Перед началом обновите шаблоны, затем ограничьте серьёзность и скорость, чтобы не перегрузить сервер. Ключ -o сохраняет результат в файл.
nuclei -ut
nuclei -u https://example.com -severity medium,high,critical -o nuclei.txt
nuclei -u https://example.com -rate-limit 10
nikto и wpscan
Nikto ищет проблемы на уровне веб-сервера: старые версии, забытые файлы, каталоги с листингом, отсутствие защитных заголовков. Он шумный и даёт много ложных срабатываний, зато быстро показывает очевидные недочёты.
apt install -y nikto
nikto -h https://example.com -o nikto.txt
Wpscan создан для WordPress. Параметр --enumerate с набором vp, vt и u перечисляет уязвимые плагины, темы и пользователей. Чтобы получить сведения об уязвимостях, нужен бесплатный токен API проекта: без него утилита покажет только версии компонентов.
gem install wpscan
wpscan --url https://example.com --enumerate vp,vt,u
wpscan --url https://example.com --api-token TOKEN
Как читать отчёт
Находка сканера — это гипотеза, а не приговор. Прежде чем что-то менять, проверьте её вручную.
- Уровень info означает сведения о системе, а не уязвимость; сначала разбирайте high и critical.
- Ложные срабатывания встречаются часто: проверьте версию и условия, при которых проблема воспроизводится.
- Открытая версия сервера или плагина сама по себе не взлом, но облегчает подбор атаки.
- После исправления повторите скан и убедитесь, что находка исчезла.
Скан и пентест: в чём разница
Сканер автоматически сопоставляет ваш сайт с базой известных проблем. Пентест — работа специалиста, который по согласованному плану проверяет логику приложения: права доступа, обход оплаты, цепочки из нескольких мелких ошибок. Сканер не найдёт то, чего нет в шаблонах, и не поймёт бизнес-логику. Скан годится для регулярной гигиены, пентест — для важных систем.
По найденному действуйте по порядку. Для зависимостей приложения есть проверка из статьи Аудит зависимостей: npm audit и composer audit, для сервера — чеклист безопасности Linux-сервера, для сайта на WordPress — защита WordPress на сервере. Настройки веб-сервера описаны в материале Hardening Nginx.
Частые вопросы
Законно ли запускать сканер против своего сайта?
Проверка собственного ресурса законна, но и здесь действуют правила площадки. Если сайт стоит на общем сервере или за защитным сервисом, предупредите поддержку: частые запросы могут сработать как атака. Чужие сайты без письменного разрешения владельца проверять нельзя ни при каких обстоятельствах.
Можно ли сканировать рабочий сайт?
Можно, но осторожно: ограничьте скорость, выберите время с малой нагрузкой и сделайте резервную копию. Надёжнее проверить тестовую копию, которая повторяет рабочую. Так сканер не создаст нагрузку на посетителей, а сомнительные проверки не затронут реальные данные.
Что делать, если сканер нашёл много проблем?
Разберите их по серьёзности: сначала критичные и высокие, затем остальные. Для каждой находки проверьте, не ложная ли она, и найдите исправление: обновление, настройка или удаление ненужного компонента. После правок повторите сканирование и сохраните отчёты, чтобы видеть динамику.
Заменяет ли сканирование проверку специалиста?
Нет. Сканер быстро находит известные проблемы, но не понимает логику вашего приложения и не обнаружит новых уязвимостей. Для регулярной проверки он удобен, а для критичных систем дополнительно нужен ручной аудит или согласованный пентест, который проводит опытный специалист.