Гид по технологиям

Тестирование безопасности Apache с помощью Nikto

• 6 min read • Безопасность • Обновлено 27 Nov 2025
Тестирование Apache с Nikto — руководство
Тестирование Apache с Nikto — руководство

Введение

У вас появился новый сервер LAMP, например на Ubuntu 6.0.6 (Dapper Drake), и вы хотите убедиться, что веб‑сервер Apache настроен безопасно. Nikto — это бесплатный инструмент сканирования уязвимостей веб‑серверов: он ищет известные конфигурационные ошибки, устаревшие компоненты и потенциально опасные сценарии. Этот материал основан на практической главе из книги по ужесточению Apache и показывает только установку и первый запуск Nikto — для полного процесса hardening потребуется дополнительное изучение.

Важно: сканируйте только те серверы, которыми вы владеете или на которые у вас есть разрешение. Несанкционированное сканирование может привести к юридическим последствиям.

Что такое Nikto и зачем он нужен

Nikto — это набор Perl‑скриптов, который автоматизирует проверку конфигурации веб‑сервера и поиска известных уязвимостей. Он полезен как быстрый первичный аудит: выявляет открытые каталоги, устаревшие версии ПО, неправильные права доступа и часто встречающиеся плохие конфигурации.

Кратко о терминах:

  • SSL/TLS — протоколы шифрования для защищённых соединений.
  • IDS/IPS — системы обнаружения/предотвращения вторжений.

Содержание руководства

  1. Установка модуля Net_SSLeay (для проверки SSL)
  2. Загрузка и обновление Nikto
  3. Базовый и расширенный запуск Nikto
  4. Разбор результатов, когда Nikto ошибается
  5. Альтернативные инструменты и сопутствующие процессы
  6. Чек‑листы для ролей, методология и критерии приёмки

1. Установка Net_SSLeay

Net_SSLeay — это модуль Perl, добавляющий поддержку SSL‑соединений. Он потребуется, если вы собираетесь тестировать HTTPS‑сервера.

Я рекомендую хранить исходники в каталоге /src. Пример команд:

mkdir /src
cd /src

Скачайте архив модуля (пример с версией, указанной в исходном материале):

wget http://search.cpan.org/CPAN/authors/id/F/FL/FLORA/Net_SSLeay.pm-1.30.tar.gz

Распакуйте и установите:

tar -xzvf Net_SSLeay.pm-1.30.tar.gz
cd ./Net_SSLeay.pm-1.30
perl Makefile.PL
make
make install

После установки проверьте, что Perl видит модуль (запуск тестового скрипта или импорт модуля в интерактивном Perl может помочь).

2. Установка Nikto

Скачайте последнюю стабилизацию Nikto с сайта проекта (в исходнике использовалась версия 1.35). Выполните:

cd /src
wget http://www.cirt.net/nikto/nikto-current.tar.gz
tar -xzvf nikto-current.tar.gz

Nikto использует библиотеку LibWhisker для сетевой работы. В комплекте идет версия, но имеет смысл обновить её:

wget http://www.wiretrip.net/rfp/libwhisker/LW.pm
cp LW.pm ./nikto-1.35/LW.pm

Переместите распакованный каталог в постоянное место, например /usr/local:

mv nikto-1.35/ /usr/local/nikto

Обновите базу данных плагинов и сигнатур Nikto:

cd /usr/local/nikto
perl nikto.pl -update

3. Базовое использование Nikto

Простой тест на локальной машине:

perl nikto.pl -h localhost

Пример запуска для удалённого хоста с попыткой обхода IDS/IPS (опция -evasion):

perl nikto.pl -h example.com -evasion 1

Опция -evasion имеет несколько режимов (в исходном материале упомянуто 9 вариантов). Режим 1 — случайное кодирование URI; такие сканы идут медленнее.

Полезные дополнительные опции (общие и часто используемые):

  • -h — цель (IP или домен);
  • -evasion — режим увёртки против IDS;
  • -update — обновление баз;
  • -output — сохранить результат в файл;
  • -Format — выбрать формат вывода (как правило, доступен текст, CSV, XML).

(Проверьте README/nikto_usage.html в каталоге nikto/docs для точных флагов вашей версии.)

4. Как интерпретировать результаты и когда Nikto ошибается

Nikto генерирует отчёты с категориями проблем: информационные сообщения, устаревшие компоненты, конфигурационные ошибки и потенциально эксплуатируемые уязвимости.

Когда Nikto может дать ложные срабатывания:

  • Скрипты или заглушки вызывают похожие подписи на уязвимости;
  • Защитные механизмы (WAF) или прокси искажают ответы сервера;
  • Частные, кастомные приложения возвращают нестандартные заголовки или страницы, похожие на сигнатуры.

Как снижать ложные срабатывания:

  • Сопоставляйте сообщения Nikto с логами сервера и точными HTTP‑ответами;
  • Повторяйте проверки вручную для критичных проблем;
  • Используйте другие инструменты для подтверждения (сканирование модулей, ручное тестирование).

5. Альтернативы и дополнения

Если Nikto не подходит как единственный инструмент, рассмотрите следующие варианты:

  • Nmap с NSE (скрипты обнаружения веб‑уязвимостей);
  • OWASP ZAP — интерактивный прокси и сканер для приложений;
  • OpenVAS или Nessus — комплексные сканеры уязвимостей (часто используются в корпоративной среде);
  • Burp Suite — мощный инструмент для тестирования веб‑приложений.

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

6. Мини‑методология аудита веб‑сервера (шаги)

  1. Подготовка: резервные копии конфигураций и сайтов.
  2. Обновление инструментов: nikto -update, обновление LibWhisker и модулей Perl.
  3. Пробный запуск: локальный и внешний скан, базовый режим.
  4. Анализ: сопоставление с логами, классификация находок.
  5. Приоритеты исправлений: критичные уязвимости и устаревшие компоненты в первую очередь.
  6. Повторный тест и мониторинг: регрессионное сканирование после исправлений.

7. Чек‑листы по ролям

Чек‑лист для системного администратора:

  • Выполнить обновление ОС и компонентов (Apache, PHP, OpenSSL).
  • Проверить доступ к каталогам (Manual, Icons и т.д.).
  • Отключить ненужные модули Apache.
  • Настроить безопасные заголовки и права файлов.

Чек‑лист для разработчика веб‑приложений:

  • Проверить вводимые данные и механизмы аутентификации.
  • Убедиться в корректной работе CSRF/XSS‑защиты.
  • Прогнать тесты на уязвимости бизнес‑логики.

Чек‑лист для команды реагирования на инциденты:

  • Собрать и сохранить логи до и после сканирования.
  • Оценить риск и план отката для внесённых изменений.
  • Подготовить уведомления заинтересованным сторонам.

8. Критерии приёмки

Критерии для «чистого» результата после исправлений:

  • Нет сообщений о критичных уязвимостях;
  • Нет сообщений о доступности чувствительных директорий (Manual, Icons и т. п.);
  • Отсутствуют предупреждения о явно устаревших компонентах;
  • Прошло регрессионное сканирование без новых критичных находок.

9. Безопасность и подсказки по ужесточению

Практические шаги для повышения безопасности после сканирования:

  • Регулярно обновляйте Apache, PHP и OpenSSL;
  • Отключайте или ограничивайте доступ к стандартным директориям документации и иконок;
  • Включите строгие политики заголовков (Content‑Security‑Policy, X‑Frame‑Options);
  • Ограничьте информацию в заголовках сервера (ServerTokens, ServerSignature);
  • Настройте WAF и IDS/IPS для слежения за аномалиями.

10. Риски и смягчения (матрица)

  • Угроза: устаревший OpenSSL → Смягчение: обновление и проверка конфигурации TLS
  • Угроза: доступ к служебным каталогам → Смягчение: убрать индексацию и настроить директивы доступа
  • Угроза: ложные срабатывания → Смягчение: верификация по логам и ручное тестирование

11. Полезная шпаргалка и команды

Быстрые команды, упомянутые ранее:

cd /src
wget http://search.cpan.org/CPAN/authors/id/F/FL/FLORA/Net_SSLeay.pm-1.30.tar.gz
perl Makefile.PL
make
make install

cd /src
wget http://www.cirt.net/nikto/nikto-current.tar.gz
tar -xzvf nikto-current.tar.gz
wget http://www.wiretrip.net/rfp/libwhisker/LW.pm
cp LW.pm ./nikto-1.35/LW.pm
mv nikto-1.35/ /usr/local/nikto
cd /usr/local/nikto
perl nikto.pl -update
perl nikto.pl -h localhost
perl nikto.pl -h example.com -evasion 1

12. Глоссарий (1‑строчно)

  • Nikto — сканер уязвимостей веб‑серверов на Perl.
  • Net_SSLeay — Perl‑модуль для работы с SSL/TLS.
  • LibWhisker — библиотека сетевых функций, используемая Nikto.

13. Когда Nikto не даст полного покрытия (ограничения)

  • Nikto ориентирован на известные сигнатуры и плохие конфигурации, он не заменяет ручное тестирование бизнес‑логики приложения;
  • Не всегда обнаруживает уязвимости 0‑day или специфичные уязвимости приложений;
  • Может пропускать проблемы, связанные с аутентификацией, если скан проводится анонимно.

Заключение

Nikto — удобный и быстрый инструмент для первичного аудита безопасности веб‑серверов Apache. Он помогает выявить очевидные ошибки конфигурации и устаревшие компоненты, но не является «серебряной пулей». Используйте его как часть более широкой методологии аудита: обновления, ручная проверка, дополнительные сканеры и мониторинг.

Удачных и безопасных сканирований!


Сводка:

  • Никто не гарантирует абсолютную безопасность, но регулярные сканирования помогают обнаруживать слабые места;
  • Комбинируйте Nikto с другими инструментами и ручной проверкой;
  • Всегда сканируйте только разрешённые активы и сохраняйте логи перед изменениями.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро