Маскировка личности сервера
Одним из методов, который часто помогает замедлить и сбить с толку злоумышленников, является изменение идентичности веб-сервера. Веб-серверы обычно отправляют свои идентификационные данные при каждом HTTP-ответе в заголовке сервера. Apache особенно полезен здесь, он не только отправляет свое имя и полную версию по умолчанию, но также позволяет серверным модулям добавлять свои версии.
Чтобы изменить удостоверение веб-сервера Apache, вам нужно будет зайти в исходный код, найти, где имя «Apache» жестко запрограммировано, изменить его и перекомпилировать сервер. Тот же эффект может быть достигнут с помощью
Директива SecServerSignature:
SecServerSignature "Microsoft-IIS/5.0"
Следует отметить, что хотя это работает довольно хорошо, опытные злоумышленники (и инструменты) могут использовать другие методы для «снятия отпечатков» с веб-сервера. Например, файлы по умолчанию, сообщение об ошибке, упорядочение исходящих заголовков, способ, которым сервер отвечает на определенные запросы и тому подобное, - все они могут выдавать истинную идентичность. Я буду смотреть на дальнейшее улучшение поддержки маскировки личности в будущих выпусках mod_security.
Если вы измените подпись Apache, но вас раздражает странное сообщение в журнале ошибок (некоторые модули все еще видны - это влияет только на журнал ошибок, снаружи он все еще работает, как и ожидалось):
[Fri Jun 11 04:02:28 2004] [notice]
Microsoft-IIS/5.0 mod_ssl/2.8.12
OpenSSL/0.9.6b \ configured --
resuming normal operations
Затем вы должны изменить порядок загрузки модулей, чтобы позволить mod_security работать в последнюю очередь, как описано для chroot.
Заметка
Чтобы эта директива работала, вы должны оставить / установить ServerTokens на Full.
Когда для изменения сигнатуры общедоступного сервера используется директива SecServerSignature, ModSecurity начнет записывать действительную подпись в журнал ошибок, чтобы можно было идентифицировать веб-сервер и используемые модули.