Минимизируем неприятные последствия HTTP-сканирования

Защищаем сайт от HTTP-сканеров

Анализируя логи Апача после полуторамесячного отпуска, я обратил внимание на то, что попыток сканирования сайта на уязвимости стало гораздо больше (сравнивая, например, с летом). Я решил проанализировать все попытки и попытаться найти решение, которое держало бы юных хакеров подальше от сайта. Если Вы всё еще читаете , то скажу, что практическая реализация моего решения требует [...]

← Вернуться к полной версии записи «Минимизируем неприятные последствия HTTP-сканирования»…

Автор: ; опубликовано в: Безопасность; метки: scanning, атака, безопасность, сканирование, уязвимость
19
Ноя
2008

RSS Комментарии к статье «Минимизируем неприятные последствия HTTP-сканирования» (28)  »

  1. Данная конфигурация успешно прошла тестирование сканером Nikto:

    [-]
    View Code Apache configuration
    <IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteCond %{QUERY_STRING} [^?]*\? [OR]
    RewriteCond %{QUERY_STRING} (\.\./|\.\.\\) [OR]
    RewriteCond %{QUERY_STRING} (///) [OR]
    RewriteCond %{THE_REQUEST} "^(GET|POST) /?https?:" [OR]
    RewriteCond %{THE_REQUEST} "^(GET|POST|HEAD) //"
    RewriteRule (.*) $1 [F]

    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]

    </IfModule>

    выдав ложное срабатывание:

    [-]
    View Code (Unknown Language)
    + OSVDB-6659: GET //mjOBSzH8ieiUEDLZCd16N0PKeX82FUtQqK0hflmti6YQG8iiB02CBte7HdUt9UEnFImwu1n74gXfAADVMl3Gfa7X4UOAfOA4fngZg8fwIKNhWGjIlrKMXeVPAVMEuiCnl7LHpRrjOOnZqBVTXWO4Q9hzaF2rWT0xSVENILkT4iHp5biJMzN9WoZuZkTVGrbwabcPzOrPQoPCNkahQRZnLxFBcAIikV0<font%20size=50>DEFACED<!--//-- : MyWebServer 1.0.2 is vulnerable to HTML injection. Upgrade to a later version.
  2. Вы правы Владимир – тоже самое.
    Я почему-то думал, что после запрета пустых катологов и переопределения файлов нужно ставить проверку на зацикливание :oops:

  3. [...] TCP Wrappers очень удобно использовать с программами для защиты от червей (BlackHosts, DenyHosts, Fail2ban), в частности, для защиты от HTTP-сканирования. [...]

  4. Здравствуйте, Владимир.
    Есть плагин Search Meter, который пишет поисковые запросы, введенные через форму сайта. Поставил его на WP 2.8.6, интересно было знать что у меня ищут посетители – оказалось, что лог изобилует запросами типа:

    002dfe33d7af285673de33b1ba70ae32

    Объясните нубу, если это попытки взлома, то что они пытаются проковырять? А если нет – то что можно найти подобным запросом?
    Или сам плагин кривоват?

    • Вопрос хороший… Вряд ли это взлом, возможно, что кто-то балуется.

      Вы не пробовали смотреть логи web-сервера, по идее там должны быть такие же строки? Если же их там нет, то это плагин шалит.

      • levati

        Есть строки – на плагин жалоб не осталось. Упражняется кто-то, только в чём? И трекбэки в последней версии WP без модерации идут – хоть отключай совсем… :(

        • Трэкбэки без модерации? Это очень странно. У меня стоит самая последняя бета 2.9, на это жалоб нет.

          Может какой плагин с трэкбэками химичит?

          • Не думаю, вообще-то линков на трекбэки на самом сайте не видно, но после апдейта версий с 2.3.х на ветку 2.8.х уведомления о трекбеках стали приходить с поразительной регулярностью…

          • А с одного и того же адреса или с разных? Если спамеров несколько, можно просто их по IP забанить.

            Был один товарищ, rss.e-customer.ru, он меня сильно спамил (спам в трэкбэках, несколько десятков сообщений в день). Пришлось человеку популярно объяснять, что он козёл. После того, как у него сервер упал пару раз, спам прекратился :-)

  5. С комментами проще – я на WP шаблон коммента расширил и сделал небольшое изменение в wp-comments: руками прописал пару строк – автоспамеры не досаждают. А с трекбеками как быть – пока не знаю…

    • Попробуйте плагин Simple Trackback Validation. Он, во-первых, сверяет IP-адрес, с которого приехал trackback, с IP-адресом веб-сервера URL-а в теле trackback-а и, во-вторых, проверяет есть ли ссылка на ваш блог на странице с URL-ом из тела trackback-а. У меня после его установки trackback-овый спам прекратился.

  6. deck53

    У меня есть сайт на php на котором стоит редирект дублей www и index.php на корень
    Если добавляю в htaccess вышеприведённый код редирект перестаёт работать

    [-]
    View Code Apache configuration
    RewriteEngine On

    RewriteCond %{QUERY_STRING} [^?]*\? [OR]
    RewriteCond %{QUERY_STRING} (\.\./|\.\.\\) [OR]
    RewriteCond %{QUERY_STRING} (///) [OR]
    RewriteCond %{THE_REQUEST} "^(GET|POST) /?https?:" [OR]
    RewriteCond %{THE_REQUEST} "^(GET|POST|HEAD) //"
    RewriteRule (.*) $1 [F]

    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]

    Ещё есть сайт на html в котором прописано выполнение php и тоже стоит редирект дублей.
    Простое убирание из кода index.php не помогает.
    Если не трудно, как будет выглядеть вышеуказанный код для этих случаев?
    P.s. Сам не програмист и с htaccess туго.

    • Это .htaccess целиком? Я редиректов просто не вижу.

      • deck53

        Это мой .htaccess:

        [-]
        View Code Apache configuration
        # удаление дублей www и index.html
        Options +FollowSymLinks
        RewriteEngine On
        RewriteBase /
        RewriteCond %{HTTP_HOST} ^www.сайт\.ru$ [NC]
        RewriteRule ^(.*)$ http://сайт.ru/$1 [R=301,L]
        RewriteRule ^(.*)index\.html$ /$1 [R=301]

        # запрет на отображение содержимого директории при отсутствии индексного файла
        Options -Indexes

        # выполнение php на html страницах
        AddHandler application/x-httpd-php5 .htm .html

        # своя ошибка 404
        ErrorDocument 404 /404.html

        # редирект
        Redirect 301 /contact.html http://сайт.ru/contact.php

        Если в него добавить это:

        [-]
        View Code Apache configuration
        RewriteEngine On

        RewriteCond %{QUERY_STRING} [^?]*\? [OR]
        RewriteCond %{QUERY_STRING} (\.\./|\.\.\\) [OR]
        RewriteCond %{QUERY_STRING} (///) [OR]
        RewriteCond %{THE_REQUEST} "^(GET|POST) /?https?:" [OR]
        RewriteCond %{THE_REQUEST} "^(GET|POST|HEAD) //"
        RewriteRule (.*) $1 [F]

        RewriteBase /
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule . /index.php [L]

        то при вводе такого адреса http://сайт.ru/index.php сайт (php) выдаёт ошибку 500 вместо редиректа на http://сайт.ru/
        Для сайта (html) пробовал менять предпоследнюю строку вашего htaccess на RewriteRule . /index.html [L] и на RewriteRule . /[L], всё равно ошибка 500.

        • А версия апача какая? Есть серьёзное подозрение, что он банально с регулярными выражениями не справляется.

          • deck53

            Версия Apache 2.0.63
            Я поставил первую версию вашего кода и всё нормально.
            Мне кажется что с моим htaccess конфликтует эта строка RewriteRule . /index.php [L]

          • Попробуйте комментировать строки по одной.

  7. 4iz

    я бы хотел уточнить такую вещь:
    данные передаются через GET массив, насколько я понимаю. Так разве не помогает, в этом случае, фильтрация и обработка всех переменных в скрипте?
    Может я что-то путаю, конечно. Тогда, если не трудно, можно ли где-то восполнить свои знания на просторах Инета, скиньте ссылку?

    • Вы правы, но если реализовывать проверку параметров непосредственно в скрипте, то потребуется лезть в код (чужого) скрипта и исправлять его. И при следующем обновлении скрипта повторять всё сначала. Проще изменить один раз .htaccess.

      Но если Вы пишите свой скрипт, то да, проверку параметров делать нужно :-)

      • 4iz

        благодарю за ответ. тогда у меня все гуд :)
        я тоже заметил подобные запросы в логах и искал ответ – чем это грозит… наткнулся на Ваш блог.

        в общем-то на сколько я знаю фильтрация через .htaccess даже меньше будет грузит сервер, чем непосредственно в скрипте.
        Так что еще один плюс к статье.

  8. izma

    Здравствуйте Vladimir, подскажите пожалуйста, что делать, если сайт уже взломали и уже есть полная его копия?

  9. izma

    У злоумышленника была полная копия сайта(дизайн, контент, движок – абсолютная копия). Даже домен такой же, толко в другой зоне. В индесе было уже более 100 страниц. Связался с админом – он сайт удалил.

Пожалуйста, не используйте эту форму для комментирования! Данная форма предназначена исключительно для ботов.

Оставить комментарий к записи «Минимизируем неприятные последствия HTTP-сканирования»

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Оставляя комментарий, вы выражаете своё согласие с Правилами комментирования.

Подписаться, не комментируя

गते गते पारगते पारसंगते बोधि स्वाहा