Наносим удар по ddos ботнету своими силами



    Доброго времени суток уважаемое хабрасообщество, по просьбам хабровчан решил поделится некоторыми своими наработками борьбы с ддосом на основании личного практического опыта отражения атак.
    В данной статье не будет очередного нового способа, как защититься от ддоса своими силами, информации по этому предостаточно. Мы зайдем немного с другой стороны.
    Как говорится лучшая защита — нападение. Вот мы и будем с вами наносить удар по самому больному месту ддосеров — по ботам. Дополнительным приятным бонусом для нас будет то, что мы сделаем доброе дело и освободим хоть какую-то часть зараженных машин из плена злых ботнетчиков.
    Понятно, что ботнет нам не убить, однако нанести порой вполне существенный удар можно, особенно если основную часть ботнета составляют дедики с руткитами, которые порой создают основную проблему при отражении атаки. Ну и кулхацкеру васе с его сотней кровью и потом добытых ботов тоже можно очень неплохо напакостить. Ибо боты, особенно на хороших каналах и из хороших регионов, стоят денег и порой немалых. Если они начнут дохнуть от посыпавшихся абуз, ддосерам может быть накладно продолжать ддосить вас и они могут повысить цену для заказчика или вообще приостановить атаку. Намного проще ддосить того, от кого не будет лишнего шума.


    Как убить бота?



    Итак, как же нам убить бота, ну или по крайней мере попытаться освободить его душу от вселившихся злых сил?

    Для этого необходимо:

    1). Определить ip адреса атакующих ботов
    2). Определить кому принадлежат данные ip адреса (вышестоящая организация: ДЦ, провайдер, учереждение ...), из whois получить список контактных abuse email, на которые будем слать жалобы
    3). Подготовить логи, подтверждающие факт проведения атаки.
    4). Отправить лог по спискам abuse email

    Если ботов немного, можно конечно все это сделать руками, но мы автоматизируем этот процесс.

    Ддос бывает разный


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

    В общем это тема для отдельной статьи, я же постараюсь для понимания выбрать простой и доступный всем способ.
    Итак, допустим, мы имеем TCP/UDP flood по разным портам, какие-то методы ддос сдерживают, доступ к машине есть, но мы хотим снизить мощность атаки и не допустить ее увеличение, ну или просто напакостить ддосерам.
    Задача — нанести контрудар, лишить ботнетчиков самых активных ботов.

    Собираем логи


    Вариантов много, опять-таки тема для отдельной статьи. Есть много разных способов логирования трафика например tcpdump, iptrtaf, netflow…
    У меня как-то исторически сложилось большинство логов было снято с использованием iptraf, который использовался для наблюдения за атакой и все скрипты были настроены на их распарсинг. Решение может не самое красивое, но достаточно универсальное. При самой минимальной модификации можно использовать любые логи и проделывать все нижеперечисленные манипуляции в реальном времени.

    Итак, начался ддос, мы запускаем iptraf, в настройках (Configure) влючаем логирование (Logging), теперь когда мы запустим IP traffic monitor, оно спросит в какой файл сохранять лог, например
    /var/log/iptraf/iptraf.log
    Теперь iptraf для нас будет записывать основную информацию о каждом пакете (в т.ч. и дропнутом).
    По личному наблюдению хуже серверу от этого не станет, данное логирование почти не тратит полезных ресурсов сервера.

    Отправляем абузы


    Когда лог есть, можем приступать к его обработке и отправке писем счастья провайдерам зараженных машинок, дабы они разобрались с владельцами.
    Для этого предлагаю несколько самописных скриптов, предназначенных для этого.
    Скрипты писались в очень тяжелое время, так что о красоте и оптимизации речи не шло, сейчас их немного доработал, приправил комментариями.
    Специально разбил всю работу на несколько модулей, каждый из которых отвечает за свою задачу. Это позволит адаптировать их под свой случай и контролировать каждый шаг.

    Скрипты


    Все скрипты можно скачать тут: github.com/Ajex/AntiDdosAbuse

    Ниже опишу каждый.

    1). show_ips.sh — выводит список ip адресов из лога и количество пакетов, которые прошли за интервал сбора.

    Параметры запуска:
    ./show_ips.sh iptraf.log "Dec 12" > ddos_ips.txt

    После этого скрипт распарсит файл, используя в качестве исходного лога файл iptraf.log и фильтра «Dec 12», и выведет результат в файл ddos_ips.txt для последующего анализа другими скриптами.

    * Можно применять и любые свои фильтры, выбирая данные к примеру за конкретный час

    Вывод его будет такого вида:

         3 1.1.1.1.
         3 1.1.1.2.
         3 1.1.2.1.
       10 2.3.2.2.
       10 2.3.2.2.
    ....
    7833 x.x.x.x
    19343 y.y.y.y
    58234 z.z.z.z
    


    Учитывая, что данный лог будет сделан в момент атаки, будет очень сильный разрыв между наименьшими и наибольшими значениями. Порой в тысячи и десятки тысяч раз. Тут, опять-таки, нет универсальных алгоритмов по какому признаку считать трафик аномальным, нужно смотреть и думать головой.
    Но как правило в файле будет очень хорошо видно, ибо нормальный пользователь не может отправить несколько десятков тысяч запросов за несколько минут.
    На основании этого лога определяем границу с которой считать айпишники ботами. Можно дополнительно провести ручную проверку некоторых адресов из топов по логам apache/nginx и логу иптрафа.
    Например бот ломился по UDP, а у вас только webserver или TCP долбился по каким-то левым портам, кои у вас наглухо закрыты.
    Голову на данном шаге очень важно включать, ибо повторюсь универсальных методов нет, все зависит от того что за сервер под атакой, какие сервисы запущены, какая нагрузка.
    Можно доработать скрипт и вместе с количеством выводить например еще регион адреса и считать количество закрытых портов, по которым ломился бот, дополнить информацию из логов вэб сервера…
    Тут целое поле для мыслительной деятельности, которые выходит за рамки данной статьи.

    2). get_info.sh — извлекает abuse email из whois информации для каждого айпишника, полученного скриптом show_ips.sh на шаге 1.
    Параметры запуска:
    ./get_info.sh ddos_ips.txt > abuse_email.txt

    где, ddos_ips.txt это файл созданный на шаге 1
    После этого abuse_email.txt будет содержать список email адресов для отправки писем.

    Вывод его будет такого вида:

    x.x.x.x abuse@aaa.com master@aaa.com
    y.y.y.y abuse@bbb.com
    z.z.z.z abuse@ccc.com
    ....
    


    Важно, в скрипте есть конфигурационный параметр th_limit , он означает с какого количества соединений считать ип ботом, эта граница определяется на предыдущем шаге.

    3). get_logs.sh — скрипт извлекает из лога iptraf информацию по каждому конкретному ip адресу, сохраняет в отдельный файл и упаковывает в Gzip

    Параметры запуска:

    ./get_logs.sh ddos_ips.txt iptraf.log "Nov 20" pref

    где, pref префикс создаваемых логов для удобства их сортировки

    В параметрах обязательно указать th_limit, это опять число коннектов из файла ddos_ips.txt отделяющих хорошие ip адреса от ботов.
    На выходе в текущей папке будут созданы Gzip файлы содержащие логи по каждому отдельному ипу.

    4). mail_send.sh — скрипт рассылающий абузы по спискам полученным из шага 2. скриптом get_info.sh

    Параметры запуска:

    ./mail_send.sh abuse_email.txt pref


    где abuse_email.txt файл полученный на шаге 2

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

    echo "Hi, today, our server x.x.x.x was attacked from your or your c$ip
    Here are the logs yourcompany.com/abuse$pref$ip.txt.gz (TZ - Europe/Moscow) ... bla bla bla ... The Company Name Ltd." | mail -s "[Abuse] ddos attack from your $ip" $email_row

    (свой текст специально не привожу, чтобы не слали по шаблону и не попало в спамфильтр)

    В скрипте, в шаблоне отправки, содержится ссылка на файл с логами. Я пробовал прикреплять файлы прямо в письмо, но, во первых, они часто бывают объемными, во вторых часто режутся спамфильтрами и вызывают подозрение, в третьих порой сложно их отсылать с машины под ддосом, а ссылка на корпоративный сайт выглядит весомее и безопаснее.
    Поэтому я простым скриптом копировал логи на другую машину с поднятым вэбсервером, а в теле письма просто указывал ссылку на лог.

    do_all.sh — данный скрипт выполняет все действия последовательно, но сделан больше для демонстрации, ибо перед тем как его запустить, нужно оттюнинговать параметры скриптов, особенно th_limit под свой случай

    Вот его параметры:

    parse_date — по этому выражению будет делаться Grep лога, если нужно отобрать записи за определенное число или час
    pref — префикс для создаваемых файлов, например та же дата
    iptraf_raw_file — откуда брать лог iptrafa

    Понятно что можно было сделать скрипты через потоки, но для статьи и понимания работы сделал так, как есть, простор для фантазии бесконечный. Можно доработать и автоматизировать все процессы, например автоматом включать логирование после начала атаки, сделать более точный анализатор для шага 1.

    Если действовать с умом, можно нанести достаточно весомый удар по ботнету, особенно если число ботов небольшое, но они большей частью состоят из дедиков на руткитах. Говорю это из личного опыта.

    И что в результате? Неужели это подействует?


    Что произойдет с полученной абузой? Возможно конечно ее проигнорируют, но, например, на следующий день айпишник опять попадет в черный список и опять уйдет абуза и т.д., возможно когда-то отреагируют.
    Если ип это какой-то впс/вдс сервер и абуза попадет например в ДЦ с подробными логами, нормально оформлена, то она скорее всего будет изучена, а если логи будут очень вескими и сойдутся со статистикой ДЦ, то может и будет блок. Тут где-то 50/50, что в общем тоже неплохо.
    Если подобное придет провайдеру, он скорее всего уведомит абонента (общался с некоторыми знакомыми, сказали что поступят именно так), а если жалоб придет несколько и опять-таки аргументированных, то может и заблочат до тех пор, пока клиент не поставит нормального антивируса.

    После нашей рассылки по всему миру произойдет целая цепочка событий, о которых мы, возможно, никогда и не узнаем, и возможно они не будут иметь какого-то решающего воздействия, но в любом случае это лучше чем ничего не делать и надеяться, что завтра ддосить будут кого-то другого а не вас.
    Если подобные действия будут производить большинство и абузы будут сыпаться с разных айпишников, провайдеры будут вынуждены принять меры, каждая такая абуза это гвоздь в гроб ботнета.

    Спасибо за внимание, это моя первая статья на хабре, просьба сильно не ругать если что не так. Если же тематика будет интереса, поделюсь практическим опытом, как не обладая серьезными ресурсами, имея 3 рубля за пазухой можно своими силами противостоять достаточно сильным атакам. Порой хитрость и смекалка могут дать больше, чем мощное железо или широкий канал.

    UPD: Кстати, бывают случаи, когда способ, описанный в статье, может стать реальным спасением от ддоса. Например если завалили всю ширину порта со сравнительно небольшого числа ботов на широких каналах или сетевая не справляется с потоком запросов. В таком случае помогут или блок на стороне вышестоящего маршрутизатора, что очень часто не представляется возможным во многих ДЦ, или борьба при помощи абуз. Последнее кроме своей простоты и доступности, дает возможность неплохо так напакостить ддосерам и разоружить их.

    Similar posts

    Ads
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More

    Comments 61

      +10
      А мне всегда казалось, что сильно долбить с малого кол-ва адресов глупо и надо долбить понемногу, но с большого кол-ва машин…
        +3
        Я тоже так раньше думал. Но когда столкнулся с тем, что сервер долбили кроме стандартных ботов, несколько таких, которые выдавали до 400 тыс pps и поток в 200-300 мегабит каждый. Фишка в том, что на обычных сетевых, кои стоят в большинстве серверов, прерывания обрабатываются одним ядром, в независимости от их кол-ва на машине. И от такого числа коннектов, даже при полном DROP всех соединений вся сетевая подсистема уходит в астрал. Ну и затык канала тоже ни кто не отменял, особенно если он у вас небольшой.
        Бороться с таким достаточно проблематично. Вот абузами такие дедики убиваются достаточно просто (когда как, иногда конечно приходилось звонить и ругаться). Собственно для этого и затевалась вся затея с этими скриптами, но потом я применил ее отослав абузы по нескольким сотням адресов из списка тех ботов что нас долбили постоянно, заметил, их поубавилось, а на ящик стали приходить письма мол спасибо проверим, или спасибо отослали уведомление клиенту.
          +4
          И такое всё, чаще и чаще, ибо рутануть мажорный сервер, у каких-нибудь дизайнеров, офисных сисадминов и иже с ними «компетентных» товарищей, гораздо проще и доступней юным кул хачикам, чем создание и управление ядрёным ботнетом. А эффективность, вполне себе хороша, хоть и временна.
            0
            Эффективность очень уж временна. Такой поток от хостящегося сервера «дизайнеров» провайдер по идее поймает в автоматическом режиме за буквально пару минут.
        –60
        Интересное решение, но какое-то не красивое.
        Это всё-равно что вас в детском садике толкнул кто-то, а вы к воспитателю: «А он толкнул меня, вот запись камеры, накажите его». Да, возможно эффективно, но не красиво.
        А вот если вы просто заблокируете, к примеру, пакеты от этого IP или ещё чего-нибудь, то атакующий будет знать, что тут работает «сильный админ».
        Если бы мне пришло такое письмо от провайдера, то я бы даже захотел вместо установки антивируса специально продолжить DDoS.
          –23
          Кстати, как поведёт себя ваша система если я буду слать запросы со случайного IP?
            +13
            Интересная у вас терминология, «случайный IP»?
            • UFO just landed and posted this here
                0
                Имелся ввиду «фиктивный» IP, сгенерированный «случайным» образом.
                  0
                  Я в первую очередь подумал о динамическом IP, когда адрес выдаётся достаточно часто. Но провайдеры в таких случаях могут просмотреть логи и узнать кто в конкретный момент времени пользовался указанным в письме адресом.

                  По повод вашего варианта, для меня это выглядит странно и я хотел бы усомниться в возможности проведения такой атаки. Я конечно слышал о дырах, которые заключаются в недостаточной фильтрации IP-адреса, но любой пакет, так или иначе, должен иметь адрес отправителя и адрес получателя, и чтобы это изменить нужно изменить протокол передачи данных. Если я ошибаюсь, то дайте пруфлинк на практический пример.
                    +1
                    Первое же по запросу в Google:
                    rfc2.ru/2827.rfc
                    Там рассказывается как с этим бороться
                      0
                      Ошибаетесь.

                      В курсе, что, к примеру, поля в email (как то from) элементарно подделывается? Тут тот же механизм, ни чего не мешает передающей стороне указать не свой реальный IP адрес, а вообще какой угодно. При такой атаке просто трехэтапное рукопожатие не завершается, но злоумышленнику это и не нужно. В частности это используется в таких атаках как IP spoofing.

                      Бороться с такого рода атаками можно только на уровне провайдера оборудование которого смотрит IP адрес отправителя и убеждается, что он соответствует адресу указанному в заголовке пакета. Но зачастую это не делается, потому что указание не «своего» IP адреса вполне себе легитимный механизм и есть системы использующие это.
                      +2
                      Если я правильно понимаю, речь идет об IP-spoofing — атака, заключающаяся в использовании в IP-пакетах, отправляемых жертве, в качестве обратного адреса IP-адрес хоста, которому она доверяет; легко осуществима в UDP, в некоторых случаях возможна в TCP-соединениях.

                      Знаю такую гадость, но насколько мне известно сейчас подобное блокируется выше на уровне ДЦ, хотя могу ошибаться.
                      На уровне сервера это решается настройками sysctl, правда в случае с забиванием канала это конечно не спасет.

                      Было бы интересно если бы кто-то, кто имеет отношение к провайдерству прокомментировал, актуален ли сейчас IP-spoofing.
                        +1
                        Конечно, актуален. Не далее недели назад видели spoofed-атаку в 1,5 Гбит/с, и вообще регулярно их видим. Даже речи не идёт о том, чтобы сбрасывать их со счетов.
                          +2
                          Не встречал еще пока такого ДЦ, который бы детектил IP-spoofing. Во-первых, это не делается по той же причине по которой невозможно на роутерах ДЦ рулить блокировкой. Фильтровать трафик на это уровне долго и дорого (относительно варианта «не фильтровать» конечно же). И вторая причина, хоть в IP-spoofing и используется подмена адреса в зловредных целях, есть ряд вполне себе нормальных систем которые используют такую схемы работы (т.е. указывают не «свой» IP адрес, а чужой, но на этом «чужом» адресе входящий пакет принимается штатном режиме).
                            +1
                            Что то я не понимаю, каким образом это можно осуществить?
                            Ведь если подставлять совсем уж рандомные адреса, то они просто напросто не будут смаршрутизированы оборудованием дата-центра, откуда идет атака. Есть конечно вариант занимать соседние адреса из своей подсети, не используемые в ДЦ, но в этом случае можно схлопотать по шапке от ДЦ еще до прихода абузы.

                            Да и большинстро «поROOTенных» серверов не является таковыми. В большинстве случаев — это дырявые скрипты на сайте, соответственно для проворачивания таких вещей привилегий маловато.
                        0
                        От случайных ИП защитит uRPF-failed на самом сервере, мощные атаки бывают как правило по UDP, (10 — 20гигабит), в таких случаях следует обращатся к своему хостеру с просьбой зарезать весь UDP к серверу, и проблема будет решена.
                          0
                          В случае атаки 20 гигабит максимум что можно сделать, не обладая существенными денежными ресурсами, это поставить свечку и заказать панихиду по серверу, а самому податься в философские размышления на тему «кто же меня так не любит и кому я так насолил».
                          Мы в свое время пытались тыкаться по ДЦ которые бы нам смогли порезать трафик, это я вам скажу совсем не тривиальная задача (найти такой ДЦ)
                            +1
                            Опять же зависит от хостера, если хостер надёжный, то с ним и в огонь и в воду, в обиду не даст. :)
                            Вот буквально 04.12 поливали клиентов как из ведра (СМИ), ничего устояли, живы целы, саппорт в усиленном режиме работал.
                            Ну если еще будет актуально — всегда велкам,
                            мы всегда помогаем клиентам.
                        +2
                        неудачный ход мыслей
                        Во-первых, все стороны в конечном итоге теряют деньги (владельцы бот-сетей не в счет)
                        Во-вторых, Билайн блокирует зараженные машины клиентов без предупреждения (год назад столкнулся с таким случаем). И требовалось очень долго висеть на линии техподержки, выясняя причину блокировки и последующего подключения
                          +1
                          Владелец зараженной машины так или иначе должен нести ответственность за свою машину, в противном случае от подобной безответственности деньги как раз начинают терять ни в чем не повинные владельцы атакуемого ресурса. Да и сам владелец машины может в таком случае долго оставаться в неведении об «альтер-эго» его компьютера.
                          А блокировка без предупреждения это скорее изъян самого билайна, а не хода мыслей в целом. Так или иначе, abuse-адреса именно для этого и существуют.
                          Да и билайн, думаю, тоже понять можно. Слишком много ресурсов уходит на анализ каждого подобного случая, связь с владельцем машина, а таких случаев в день может быть иысячи.
                          +13
                          А зачем атакующему знать, что работает «сильный админ»? Пусть лучше не знает.
                          Другое дело, что воспитатель в садике может крепко по попе надавать, и отбить желание впредь пакостить. Ничего «детского» в этом нет.
                          (Ведь если вас, не дай боже, побьют или ограбят — вы вооружаетесь и идёте мстить, вместо того, чтоб обратится в милицию? Не думаю.)
                            +3
                            Ну немного не в тему, но про сильного админа логика не лишена смысла. Тут имеет место чисто психологический момент. Если ддосеры (или заказчики ддоса) видят, что админ показал зубки и начал обороняться, к примеру ресурс начал пусть через раз, но открываться, на главной нет плаксивых историй о мегаддосе, зато видно что администрация онлайн, работает, сообщает о том, что все действия ддосеров логируются для последующего анализа, абузы рассылаются…, это может повлиять на решение о прекращении ддоса.
                            Идеальная жертва ддосера — ресурс, который тут же складывается намертво и не предпринимает ни каких действий к обороне, на главной куча слез, мол «мы ничего не можем сделать, ддос мощный», никаких попыток логировани и анализа трафика не предпринимается, абузы не шлются.
                              +2
                              Решение о прекращении принимается тогда, когда заканчивается оплаченный срок. До этого момента никто ничего не будет прекращать по собственному желанию. Исполнители не будут прекращать потому, что услуга уже оплачена, а заказчикам вообще нет смысла отменять (выгоднее сменить исполнителя).
                              Ботнет пополняется ежечасно (если не чаще), а ваши абузы, в лучшем случае, начнут работать через день. Владельцы ботнета от этого не пострадают.
                                +2
                                По поводу срока согласен, но думаю врядли заказывают ддос на месяц сразу. Обычно берут на пробу час или несколько часов.
                                В случаях с ДЦ абузы работают достаточно быстро, хотя понятно, что тут не идет речь о том что это панацея и все должно моментом сработать. Пусть до кого-то дойдет уведомление даже через месяц и на одного бота в мире станет меньше. В совокупности это может дать эффект.

                                Тут важно не просто писать абузы, а подкреплять их логами. Даже по логам иптрафа можно увидеть что трафик совершенно ненормальный (несколько десятков тысяч соединений в сек с одного ип адреса, явно нормальными ни как не назвать).
                            +1
                            Кстати повторюсь, бывают случаи, когда блокировка не дает ни какого эффекта и при полном DROP всех соединений сервер лежит, из-за того что, например, канал забит или сетевая не справляется с запросами.
                            Сейчас ввиду распространения широких каналов данный вид аттаки набирает популярностью. Тут уже не обязательно десятков тысяч ботов. Достаточно всего лишь купить несколько протрояненных дедиков на широких каналах чтобы с них терроризировать любой ресурс.
                            По собственному опыту скажу, что просить вам ДЦ помочь порой бесполезно, ибо им проще скинуть такого клиента, чем перестраивать свои конфиги. А если вы работаете через реселлера, то тут задача усложняется до почти невыполнимой.
                              0
                              Причем тут скинуть? В нормальных ДЦ есть услуга «Защита от DDOS». В некоторых даже временная (включается на время атаки). Но это конечно стоит денег.
                                0
                                Ну в нормальных это слишком обобщенно сказано, таких ДЦ можно на пальцах сосчитать, которые действильно могут защитить, большинство будет защищать на 3 — 4 уровне оси, на л7 практически никто небудет защищать, но у многих есть API для того что-бы управлять услугой, и тогда — логика на самом сервере (самое правильное место) а по API информация передается на ферму блокировки в ДЦ.
                                0
                                Злостный ДЦ у вас наверное, раз непомогает своим клиентам,
                                от себя скажу как хостер — помогать клиенту в таких случаях крайне необходимо,
                                ибо атака в несколько гигабит, может не только сервер клиента положить, но и всю стойку с другими клиентами.Хотя и встречались такие ДЦ, которые при ДДоСе просят клиента уйти по-дальше, для таких — всегда велкам :)
                                +1
                                а мне наоборот кажется, что решение очень красивое. продолжая ваш пример с детским садом: Вася ударил Петю, Петя надел шлем, Вася взял молоток, Петя решил просто спасаться бегством при виде Васи, тогда Вася надел ролики, Петя одел платье Маши в надежде, что его не заметят и так далее… Именно с этим можно сравнить обычные решения проблемы ДДОСа, разве это красиво?
                                А если просто через воспитательницу объяснить Васе, что так делать не хорошо, то это будет проще, эффективнее и красивее:)
                                  0
                                  У Вас «детское» сравнение, попробуйте сделать его постарше, предположите вред чуть больший, чем просто «толкнул». Вы считаете, что сообщить «куда надо» будет хуже, чем сделать более грозный вид, чтоб не приставали, и пусть «обижают» других?
                                  В топике ведь речь не про «пожаловаться», а скорее про «воспользоваться» основным доступным вариантом ответного воздействия.
                                  • UFO just landed and posted this here
                                    +2
                                    Спасибо. Полезная статья.
                                      0
                                      Хм, пожалуй да. Но отправка abuse писем тоже может быть замечена.

                                      Вообще лучше всего наверно применять оба пути — и защита блокировками, и контратака abuse письмами.
                                      Так что vkupriyanov здесь несколько не прав, считая практику отсылки abuse писем «детской» и несерьёзной. С технической стороны — может и так, не шибко умно (хотя смотря как реализовать ). Но с юридической и практической — вполне логичный ход.
                                        +1
                                        Я ведь не предлагал свой способ, как единственно верный, в самом начале я говорил о том, что это не метод борьбы (хотя в некоторых случаях он может и являться таковым).
                                        Это просто логическое дополнение к основным методам защиты.
                                        Можно конечно сидеть в крепости с высока наблюдая за осадой, а можно бомбить в ответку, по одному отстреливая нападающих.
                                        +11
                                        In Soviet Russia botnet DDoS'ed by YOU!!
                                          +7
                                          Наши админы настолько суровы, что они ддосят ботнеты.)))
                                          +1
                                          Пара тезисов:
                                          — UDP/ICMP/SYN-флуд, как правило, ведётся со spoofed (затрудняюсь сказать по-русски) IP-адресов, и жаловаться на них можно хоть в спортлото;
                                          — атаки уровня приложения, как правило, ведутся с нескольких тысяч IP-адресов заражённых десктопов, и жаловаться на них можно их провайдерам до бесконечности. Малая часть провайдеров захочет принимать какие-то меры, и, к большому сожалению, ещё меньшая обладает техническими специалистами уровня, достаточного для реального решения проблемы. В результате из 10000 ботов вы отсечёте, ну, сотни четыре, при этом потратив существенное время на переговоры с сотрудниками каждого из провайдеров, иногда ещё и не на русском языке. Толку от таких действий — никакого.

                                          Having said that, изредка случаются атаки с дедиков без спуфа, и abuse@ может помочь в этом случае. Проблема в том, что время реакции abuse@ составляет иногда до 4 дней. Так что жалоба — это именно не решение проблемы, а месть атакующим.

                                          Нужно также понимать, что если атакующие не скрывают IP-адреса источников атаки, то будущее этих источников им до лампочки — машины заражены/взломаны, имя им — легион, и управляются они из командного центра. Так что и мстите-то вы скорее для собственного удовольствия.
                                          • UFO just landed and posted this here
                                              +2
                                              Само собой. Однако в то же время эти толпы являются целевой аудиторией абсолютного большинства рентабельных сервисов Рунета, и, если эти толпы поставить к стенке, данные сервисы просто перестанут существовать.

                                              Моё личное узколобое предвзятое мнение состоит в том, что провайдеры должны как-то, ну, ухаживать за своими клиентами. Антивирусы там дарить или бесплатное регулярное техобслуживание. А то развешивать рекламу и дарить домохозяйкам бесплатное подключение все горазды, а потом на этих домохозяек их провайдер плюёт с высокой колокольни.
                                                0
                                                Провайдеру это не выгодно. Какая бесплатная поддержка, когда зачастую даже для штатных работ нанимают студентов которые в предметной области очень сильно плавают. И это даже не беря в расчет соображение о том, юзера любят временно отключать антивирусник когда им кажется что он мешает работе системы.

                                                Имхо, решение есть, но оно должно проводиться на уровне государства и законов. И к этому еще придут. Просто это элементы безопасности и страхования рисков, как и ремень безопасности в машине или ОСАГО. Вводить ответственность для конечно пользователей глупо, имхо, как нетехнические специалисты это не их дело. Но административную ответственность вводить для лиц устанавливающих антивирусные системы. Приглашать или нет такого спеца дело должно быть добровольное, но если нет актов от установленном и настроем ПО от таких специалистов, то ответственность на владельце компа. В нормально законе рецидив должен учитываться. Т.е. в случае первого нарушения ни какие санкции кроме уведомления не применяются. После этого адекватный пользователь либо произведет нормальную настройку, либо пригласит спецов и получит бумагу под это дело. Ну а не внял, значит применять прогрессирующую шкалу штрафов.

                                                В общем как и в программинге реализуемо все, вопрос воли и желания.
                                                  0
                                                  Не забудьте, что задача выяснения того, что данная конкретно программа — вредоносная — алгоритмически неразрешима…
                                                    0
                                                    Проблема в том, что антивирусные системы тоже обладают неплохой такой инерцией. То есть искоренить вирусы и ботнеты не удастся, они будут всегда, вопрос только во времени их существования и в скорости реакции ответственных за их обезвреживание лиц.

                                                    При этом организовать быструю реакцию техподдержки провайдера вполне реально. Оная техподдержка, по-хорошему, так или иначе должна быть круглосуточной и иметь в штате толкового технического специалиста, и она может оперативно заблокировать трафик по определённому признаку (например, IP-адрес назначения) по экстренному запросу. А вот организовать быструю реакцию эникейщиков-спецов по установке/обновлению антивируса невозможно.

                                                    Но, конечно, это можно воплотить в жизнь только на уровне законов. Призывов к сознательности здесь явно недостаточно.
                                                0
                                                UDP/ICMP — блокируются спокойно у хостера, даже на простой циске (свиче) простейшим аксес-листом.
                                                SYN — это уже можно передавать хостеру у которого есть услуга защиты от ДДоС,
                                                всёж лучше чем нагружать интераптами простой сервачок, хоть и дороже.
                                                Вот хомячки — это больная тема, «домашние» провайдеры как правило медленно реагируют на абузу, тут спасает либо капасити сервера, либо услуга от ДЦ.
                                                Насчёт времени реакции, ДЦ заинтересованы отвечать быстро, 24 — 48 часов макс.
                                                т.к повторюсь (ниже уже писал) ниодин ДЦ, не хочет славы абузоустойчивого ДЦ со всеми вытекающими.
                                                  +1
                                                  24-48 часов это быстрое время реакции? В нашем случае, например через 48 часов можно было бы уже закрываться и попрощаться со всем проектом.
                                                  Посему наедятся тут на ДЦ достаточно рискованно. Тут надо оценку делать, или справляться своими силами, или фильтровать трафик на стороне.
                                                  Это конечно хорошо когда ДЦ помогает, но мне таких на жизненном пути не встречалось, может просто не везло. Им намного проще потерять одного клиента, нежели поставить под удар все оборудование и потерять всех остальных.
                                                    0
                                                    В данном случае, приведены макс. позволительные для хостера сроки, у многих ДЦ поддержка 24х7, и обычно реакция незамедлительна (хотя опять же, судим по себе, и по партнёрам).
                                                    Может быть и проще потерять клиента, но раз клиент, два клиент, три клиент,
                                                    а потом и репутацию надёжного партнёра, с которым можно вести дела, и потерять можно.
                                                    0
                                                    SYN — это уже можно передавать хостеру у которого есть услуга защиты от ДДоС

                                                    а может просто включить SYN cookies?
                                                      0
                                                      Вы правы, SYN cookies / SYN proxy поможет боротся с SYN флудом, но с маленьким,
                                                      если вы не упрётесь в процессор (я имею ввиду прерывания, на обработку которых весь ресурс процессора будет выделен) то вы упрётесь в ширину канала сетевой карты (при больших атаках).
                                                      Так что боротся можно и самому, но со «школьниками» без помощи ДЦ (редкие ДЦ) / внешнего сервиса (дорогие сервисы) тут уж точно не обойтись.
                                                    0
                                                    а ещё довольно таки часто обращения на abuse@ или валятся в какой-нибудь редко проверяемый ящик, или адрес вовсе не работает (для Азии и Южной Америки вполне себе обыденность)
                                                      +1
                                                      > — UDP/ICMP/SYN-флуд, как правило, ведётся со spoofed (затрудняюсь сказать по-русски) IP-адресов, и жаловаться на них можно хоть в спортлото;

                                                      Задавал уже в комментариях этот вопрос, все же. Разве spoofed-травик не отвалится сам собой на маршрутизаторах ДЦ, в котором расположен атакующий хост?
                                                        +1
                                                        Не отвалится. Во-первых, не все ДЦ заботятся о такой фильтрации. Во-вторых, существуют IX, где вообще мало кого интересует, что там происходит на подключенных машинах. abuse@ у ряда IX абсолютно непробиваемый.
                                                      0
                                                      Спасибо, жду еще статей:)
                                                        +1
                                                        Странный итог статьи, разослали письма, и не сказали уменьшилась ли атака. Только рассуждения что возможно найдутся люди которые отреагируют.
                                                        Но мне больше видится сценарий что через пару месяцев таких автоматических абуз ваш ip попадет в спамхаус и аналоги. Ip spoof здравствует и процветает.
                                                          0
                                                          Если говорить про мой конкретный случай, да это помогло. В основном долбили пара десятков дедиков на мощных каналах, после абуз они исчезали, от ДЦ почти всегда приходили ответы.
                                                          Маскировать ip ддосеры не пытались.
                                                          По письмам, отосланным на адреса простых ботов, ответы приходили еще на протяжении пары недель. Где-то стандартные шаблонные отписки мол ваш запрос принят, разберемся, где-то писали мол уведомили клиента или заблочили.
                                                          0
                                                          Спасибо за статью, хотелось бы узнать насколько с практической точки зрения данный метод эффективен?
                                                            +1
                                                            В принципе от зараженных дедиков — очень даже, многие ДЦ реагируют быстро,
                                                            это в их же интересах, никому ненужна слава абузоустойчивого хостера.
                                                            0
                                                            ваше решение по моему опыту будет неработоспособным. Всё хорошо, кроме поиска электронных адресов и отправки писем.
                                                            whois IP|grep mail
                                                            это как-то отстойненько. Когда-то я тоже решал похожую задачу и так не нашёл способа универсально парсить ответ whois — он очень сильно различается для разных зон.
                                                            Вторая проблема — после некоторого количества запросов за единицу времени whois просто перестаёт отвечать вообще. Я так понял, это защита от ДДоСа или как-то так.
                                                              0
                                                              >>> ваше решение по моему опыту будет неработоспособным. Всё хорошо, кроме поиска электронных адресов и отправки писем.
                                                              А вы попробуйте. :) Перед тем как выложить скрипты я их проверял на работоспособность. Если знаете что можно улучшить, код на гитхабе, там это все можно осуществить.

                                                              >>> whois IP|grep mail это как-то отстойненько.
                                                              Все гениальное порой очень просто, почему оно должно быть сложным?

                                                              >> Вторая проблема — после некоторого количества запросов за единицу времени
                                                              возможно, но я на такой лимит не натыкался. Думаю если чекать 100 тыс ботов, это будет проблемным, но в отличие от общепринятого мнения ботов не сотни тыщ, а вполне определенное количество, поэтому в большинстве случаев проблем не должно возникнуть. Можно разбить проверку на группы и делать задержку. Я просто не хотел усложнять скрипты, в них принцип работы, который каждый волен настроить под себя.

                                                              >>> Я так понял, это защита от ДДоСа или как-то так.
                                                              своершенно не правильно поняли, данное решение совершенно не претендует на способ защиты и я об этом писал. Это одна из возможных составляющих оборонного комплекса, эдакая месть, если так проще для понимания. Возможно вам оно ни как и не поможет, но поможет кому-то еще.
                                                              0
                                                              А что если ваш E-mail занесут в спам?
                                                                0
                                                                Забавно, сам не так давно озаботился подобным (на базе логов Apache).
                                                                Конструкцию whois IP | grep mail не использую, т.к.:

                                                                а) это приводит к отправке бесполезных абуз на адреса ripe.net, ripe.net и т.п.;
                                                                b) пропускаются некоторые адреса из whois (например, для 77.239.176.4 будет пропущен адрес abuse@vegatele.com)

                                                                + время от времени адреса в полученном списке будут дублироваться, а "… | uniq", используемый в mail_send.sh, без предварительного "… sort | " мало помогает делу:

                                                                $ whois 101.51.103.66 | grep mail | awk '{print tolower($0)}' | egrep -o "\w+([._-]\w)*@\w+([._-]\w)*\.\w{2,4}" | uniq
                                                                arin@apnic.net
                                                                apipolg@tot.co
                                                                abuse@totisp.net
                                                                apipolg@tot.co
                                                                abuse@totisp.net
                                                                ap@gmail.com

                                                                $ whois 101.51.103.66 | grep mail | awk '{print tolower($0)}' | egrep -o "\w+([._-]\w)*@\w+([._-]\w)*\.\w{2,4}" | sort | uniq
                                                                abuse@totisp.net
                                                                ap@gmail.com
                                                                apipolg@tot.co
                                                                arin@apnic.net

                                                                Поэтому использую громоздкое, самописное, кривое и избыточное, но зато рабочее:

                                                                $ whois 101.51.103.66 | sed -e 's/^.*ripe.net//' -e 's/^.*@apnic.net//' -e 's/^.*@lacnic.net//' |
                                                                grep -E -o "[a-zA-Z0-9_.-\S]+@[a-zA-Z0-9_.-\S]+.[a-zA-Z0-9_.-\S]+.[a-zA-Z\S]{2,6}" | sort | uniq
                                                                  0
                                                                  + Забыл в предыдущем комменте сказать — Ваш регексп не берёт адреса типа ***tot.co.th
                                                                  На примере того же 101.51.110.248 сравните вывод:

                                                                  whois 101.51.103.66 | grep mail | awk '{print tolower($0)}' | egrep -o "\w+([._-]\w)*@\w+([._-]\w)*\.\w{2,4}" | sort | uniq
                                                                  whois 101.51.103.66 | grep -E -o "[a-zA-Z0-9_.-\S]+@[a-zA-Z0-9_.-\S]+.[a-zA-Z0-9_.-\S]+.[a-zA-Z\S]{2,6}" | sort | uniq

                                                                  И адреса в доменах типа .travel тоже мимо кассы пойдут

                                                                Only users with full accounts can post comments. Log in, please.