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

Тема в разделе ".:: Уязвимости", создана пользователем Raccoon, 7 окт 2010.

Статус темы:
Закрыта.
  1. Raccoon

    Raccoon

    Регистр.:
    31 июл 2007
    Сообщения:
    176
    Симпатии:
    9
    Какие варианты защиты существуют сетевых сканеров?

    Имеется ввиду как-то блочить/прерывать распространенные сетевые сканеры, чтобы они не срали в формы и скрипты кривыми SQL запросами.
     
  2. usasoft

    usasoft

    Регистр.:
    9 янв 2008
    Сообщения:
    200
    Симпатии:
    107
  3. Hilo

    Hilo

    Moderator
    Регистр.:
    31 мар 2008
    Сообщения:
    927
    Симпатии:
    582
    Есть один интересный метод, но это метод перенаправления сканеров на другой сайт. ДЛя этого добавьте в файл .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.КУДА_НИБУДЬ_ПОДАЛЬШЕ 
    поставьте какой-нибудь реально существующий сайт плохого содержания - вся зараза будет перенаправляться с вашего сайта на него.
     
    Agr3ss0r нравится это.
  4. glamyrit

    glamyrit

    Регистр.:
    27 фев 2008
    Сообщения:
    234
    Симпатии:
    66
    а как поисковики реагируют, яндекс и гугл?
     
  5. mcdir

    mcdir

    Регистр.:
    6 ноя 2007
    Сообщения:
    202
    Симпатии:
    37
    положительно )
    они такое у сайта не спрашивают )
     
  6. ask0n

    ask0n

    Регистр.:
    9 июн 2009
    Сообщения:
    227
    Симпатии:
    63
    Правила rewrite на стороне apache создают дополнительную нагрузку на сам сервер. При этом часть времени вместо того, чтобы обрабатывать запросы клиентов и выдавать контент сервер будет проверять !каждый! поступающий запрос на соответствие спискам правил rewrite.
    Т.е. без правил перезаписи сканер просто получит 404 ответ, с правилами вы платите свои деньги за сомнительное успокоение при редиректе бота неизвестно куда.
    mod_security разрабатывался больше как защита от неизвестных угроз (запретить запрос похожий на SQL-inj по синтаксису или запрос похожий на file include и т.п.) для этих целей целесообразность сомнительна.
    ИМХО самый простой способ в формах и скриптах проверять ref строку, чтоб не давать по прямым линкам POST запросы кидать, если проблемма только в "чтобы они не срали в формы и скрипты кривыми SQL запросами". Плюс не помешает ограничение на количество запросов в секунду с одного адреса не более двух, например. Этого вполне достаточно чтоб кликнуть и перейти по 302у редиректу на тот же сайт.
     
  7. Neow15ard

    Neow15ard

    Регистр.:
    27 ноя 2008
    Сообщения:
    422
    Симпатии:
    188
    У меня вот такой стоит..
    PHP:
    #### block out some common exploits
    RewriteCond %{QUERY_STRINGmosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
    RewriteCond %{QUERY_STRINGbase64_encode.*\(.*\) [OR]
    RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
    RewriteCond %{QUERY_STRINGGLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
    RewriteCond %{QUERY_STRING_REQUEST(=|\[|\%[0-9A-Z]{0,2})
    RewriteCond %{QUERY_STRINGSELECT(=|\[|\%[0-9A-Z]{0,2}) [OR]
    RewriteCond %{QUERY_STRINGUNION(=|\[|\%[0-9A-Z]{0,2}) [OR]
    RewriteCond %{QUERY_STRINGUPDATE(=|\[|\%[0-9A-Z]{0,2}) [OR]
    RewriteRule ^([^.]*)/?$ home.php
     
Статус темы:
Закрыта.