Защита от сетевых сканеров

Статус
В этой теме нельзя размещать новые ответы.

Raccoon

Участник
Регистрация
31 Июл 2007
Сообщения
176
Реакции
9
Какие варианты защиты существуют сетевых сканеров?

Имеется ввиду как-то блочить/прерывать распространенные сетевые сканеры, чтобы они не срали в формы и скрипты кривыми SQL запросами.
 
Есть один интересный метод, но это метод перенаправления сканеров на другой сайт. ДЛя этого добавьте в файл .htaccess следующий код:
PHP:
<IfModule mod_rewrite.c>
RedirectMatch permanent (.*)cmd.exe(.*)$ http://www.КУДА_НИБУДЬ_ПОДАЛЬШЕ
RedirectMatch permanent (.*)root.exe(.*)$ http://www.КУДА_НИБУДЬ_ПОДАЛЬШЕ
RedirectMatch permanent (.*)\/_vti_bin\/(.*)$ http://www.КУДА_НИБУДЬ_ПОДАЛЬШЕ
RedirectMatch permanent (.*)\/scripts\/\.\.(.*)$ http://www.КУДА_НИБУДЬ_ПОДАЛЬШЕ
RedirectMatch permanent (.*)\/_mem_bin\/(.*)$ http://www.КУДА_НИБУДЬ_ПОДАЛЬШЕ
RedirectMatch permanent (.*)\/msadc\/(.*)$ http://www.КУДА_НИБУДЬ_ПОДАЛЬШЕ
RedirectMatch permanent (.*)\/MSADC\/(.*)$ http://www.КУДА_НИБУДЬ_ПОДАЛЬШЕ
RedirectMatch permanent (.*)\/c\/winnt\/(.*)$ http://www.КУДА_НИБУДЬ_ПОДАЛЬШЕ
RedirectMatch permanent (.*)\/d\/winnt\/(.*)$ http://www.КУДА_НИБУДЬ_ПОДАЛЬШЕ
RedirectMatch permanent (.*)\/x90\/(.*)$ http://www.КУДА_НИБУДЬ_ПОДАЛЬШЕ
RedirectMatch permanent (.*)cmd.pl(.*)$ http://www.КУДА_НИБУДЬ_ПОДАЛЬШЕ
RedirectMatch permanent (.*)root.pl(.*)$ http://www.КУДА_НИБУДЬ_ПОДАЛЬШЕ
RedirectMatch permanent (.*)cmd.php(.*)$ http://www.КУДА_НИБУДЬ_ПОДАЛЬШЕ
RedirectMatch permanent (.*)root.php(.*)$ http://www.КУДА_НИБУДЬ_ПОДАЛЬШЕ
</IfModule>

Вместо
PHP:
http://www.КУДА_НИБУДЬ_ПОДАЛЬШЕ
поставьте какой-нибудь реально существующий сайт плохого содержания - вся зараза будет перенаправляться с вашего сайта на него.
 
Есть один интересный метод, но это метод перенаправления сканеров на другой сайт. ДЛя этого добавьте в файл .htaccess следующий код:
PHP:
<IfModule mod_rewrite.c>
RedirectMatch permanent (.*)cmd.exe(.*)$ http://www.КУДА_НИБУДЬ_ПОДАЛЬШЕ
RedirectMatch permanent (.*)root.exe(.*)$ http://www.КУДА_НИБУДЬ_ПОДАЛЬШЕ
RedirectMatch permanent (.*)\/_vti_bin\/(.*)$ http://www.КУДА_НИБУДЬ_ПОДАЛЬШЕ
RedirectMatch permanent (.*)\/scripts\/\.\.(.*)$ http://www.КУДА_НИБУДЬ_ПОДАЛЬШЕ
RedirectMatch permanent (.*)\/_mem_bin\/(.*)$ http://www.КУДА_НИБУДЬ_ПОДАЛЬШЕ
RedirectMatch permanent (.*)\/msadc\/(.*)$ http://www.КУДА_НИБУДЬ_ПОДАЛЬШЕ
RedirectMatch permanent (.*)\/MSADC\/(.*)$ http://www.КУДА_НИБУДЬ_ПОДАЛЬШЕ
RedirectMatch permanent (.*)\/c\/winnt\/(.*)$ http://www.КУДА_НИБУДЬ_ПОДАЛЬШЕ
RedirectMatch permanent (.*)\/d\/winnt\/(.*)$ http://www.КУДА_НИБУДЬ_ПОДАЛЬШЕ
RedirectMatch permanent (.*)\/x90\/(.*)$ http://www.КУДА_НИБУДЬ_ПОДАЛЬШЕ
RedirectMatch permanent (.*)cmd.pl(.*)$ http://www.КУДА_НИБУДЬ_ПОДАЛЬШЕ
RedirectMatch permanent (.*)root.pl(.*)$ http://www.КУДА_НИБУДЬ_ПОДАЛЬШЕ
RedirectMatch permanent (.*)cmd.php(.*)$ http://www.КУДА_НИБУДЬ_ПОДАЛЬШЕ
RedirectMatch permanent (.*)root.php(.*)$ http://www.КУДА_НИБУДЬ_ПОДАЛЬШЕ
</IfModule>
Вместо
PHP:
http://www.КУДА_НИБУДЬ_ПОДАЛЬШЕ
поставьте какой-нибудь реально существующий сайт плохого содержания - вся зараза будет перенаправляться с вашего сайта на него.
а как поисковики реагируют, яндекс и гугл?
 
положительно )
они такое у сайта не спрашивают )
 
Правила rewrite на стороне apache создают дополнительную нагрузку на сам сервер. При этом часть времени вместо того, чтобы обрабатывать запросы клиентов и выдавать контент сервер будет проверять !каждый! поступающий запрос на соответствие спискам правил rewrite.
Т.е. без правил перезаписи сканер просто получит 404 ответ, с правилами вы платите свои деньги за сомнительное успокоение при редиректе бота неизвестно куда.
mod_security разрабатывался больше как защита от неизвестных угроз (запретить запрос похожий на SQL-inj по синтаксису или запрос похожий на file include и т.п.) для этих целей целесообразность сомнительна.
ИМХО самый простой способ в формах и скриптах проверять ref строку, чтоб не давать по прямым линкам POST запросы кидать, если проблемма только в "чтобы они не срали в формы и скрипты кривыми SQL запросами". Плюс не помешает ограничение на количество запросов в секунду с одного адреса не более двух, например. Этого вполне достаточно чтоб кликнуть и перейти по 302у редиректу на тот же сайт.
 
У меня вот такой стоит..
PHP:
#### block out some common exploits
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR]
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteCond %{QUERY_STRING} SELECT(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} UNION(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} UPDATE(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteRule ^([^.]*)/?$ home.php
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху