Скрипт для ддос атаки

Одним из главных событий последних недель можно назвать мощнейшие DDoS-атаки, достигавшие мощности 1,7 Тб/сек за счет Memcached-амплификации. Теперь в сети были опубликованы PoC-утилиты для организации таких атак, а также IP-адреса 17 000 уязвимых серверов. Но практически одновременно с этим специалисты компании Corero Network Security сообщили, что нашли способ защиты.

Напомню, что злоумышленники научились использовать для амплификации DDoS-атак серверы Memcached, что позволяет усилить атаку более чем в 50 000 раз. Данный метод впервые был описан (PDF) в ноябре 2017 года группой исследователей 0Kee Team из компании Qihoo 360. Тогда эксперты предрекали, что из-за эксплуатации Memcached-серверов мы увидим DDoS-атаки мощностью вплоть до 2 Тб/сек.

Вновь о таком методе амплификации заговорили в конце февраля и начале марта 2018 года. Тогда компании Qrator Labs, Cloudflare, Arbor Networks и Qihoo 360 практически одновременно сообщили о том, что преступники действительно начали использовать Memcached для амплификации DDoS-атак, и отчитались от отражении атак мощностью 260-480 Гб/сек. Затем на GitHub обрушилась атака мощностью 1,35 Тб/сек, а также были зафиксированы случаи вымогательских DDoS-атак, тоже усиленных при помощи Memcached.

Сразу три proof-of-concept утилиты для организации DDoS-атак с амплификацией посредством Memcached были опубликованы в сети.

Первая утилита — это написанный на Python скрипт Memcacrashed.py, который сканирует Shodan в поисках уязвимых Memcached-серверов. Скрипт позволяет пользователю сразу же использовать полученные IP-адреса для усиления DDoS-атаки. Автором данного решения является ИБ-специалист, ведущий блог Spuz.me.

Вторая утилита была опубликована на Pastebin еще в начале текущей недели, ее автор неизвестен. Инструмент написан на C и комплектуется списком из 17 000 IP-адресов, принадлежащих уязвимым Memcached-серверам. Скрипт запускает DDoS-атаку, используя адреса из списка для ее амплификации.

К сожалению, невзирая на терабитные DDoS-атаки, количество уязвимых Memcached-серверов в сети убывает очень медленно. К примеру, известный исследователь и глава GDI Foundation Виктор Геверс (Victor Gevers) уже более двух лет пытается исправить сложившуюся ситуация, связывается с владельцами проблемных серверов и объясняет им, как обезопасить себя и окружающих.

«Очень жаль видеть, что после двух лет предупреждений DDoS-атаки все-таки начали происходить. Иногда очень не хочется оказаться правым, — рассказал Геверс журналистам Bleeping Computer. — Находить владельцев [уязвимых серверов], предупреждать их о рисках и заставлять действовать, это очень практически тщетно. Дело в том, что риска утечки данных нет, и люди зачастую вообще не отвечают на наши электронные письма.

Угроза мощных DDoS-атак никуда не исчезнет. Теперь, когда написаны PoC-решения и опубликованы готовые списки [уязвимых серверов], уже на следующей неделе нас ожидает значительный рост амплифицированных посредством Memcached атак».

Хочется надеяться, что мрачные предсказания Виктора Геверса не воплотятся в жизнь, ведь далеко не все ИБ-специалисты работали над PoC-утилитами для организации атак. Например, эксперты компании Corero Network Security искали возможные способы решения проблемы и сообщают, что им удалось найти «рубильник», способный прекратить Memcached-DDoS.

Читайте также:  Расшифровка диагностики автомобиля ошибок

Еще неделю назад один из разработчиков Memcached предложил использовать для защиты от уже начавшихся атак команды flush_all и shutdown, которые жертва может отправить на серверы, с которых исходит DDoS.

For what it’s worth, if you’re getting attacked by memcached’s, it’s pretty easy to disable them since the source won’t be spoofed. They may accept "shutdownrn", but also running "flush_allrn" in a loop will prevent amplification.

— dormando (@dormando) February 27, 2018

Этот совет оставался незамеченным вплоть до 7 марта 2018 года, пока специалисты Corero Network Security не опубликовали пресс-релиз, посвященный Memcached-атакам. Разработчики компании пишут, что их решение для защиты от DDoS-атак было обновлено и теперь содержит «стопроцентно эффективный» способ их пресечения. Как не трудно догадаться, специалисты взяли на вооружение совет разработчика Memcached, и используют flush_all, подчеркивая, что никаких минусов у данного метода просто нет.

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

Также стоит отметить, что разработчики Memcached выпустили обновленную версию своего продукта, Memcached v1.5.6, в которой была исправлена уязвимость CVE-2018-1000115. Дело в том, что по умолчанию Memcached-серверы доступны через порт 11211, и именно эту особенность злоумышленники используют для амплификации атак. Своим исправлением разработчики изменили конфигурацию по умолчанию, отключив протокол UDP «из коробки».

Огласка в СМИ и патч, выпущенный разработчиками, похоже, делают свое дело. Так, специалисты компании Rapid7 сообщили, что количество уязвимых Memcached-серверов с открытым портом 11211 все же начало снижаться. По данным компании, 1 марта 2018 года их число равнялось 18 000, но уже 5 марта 2018 года оно снизилось до 12 000.

Похожую картину наблюдает и вышеупомянутый Виктор Геверс, о чем эксперт сообщил у себя в Twitter. Он пишет, что утром 8 марта 2018 года количество уязвимых серверов равнялось 107 431, согласно статистике Shodan, и постепенно продолжает снижаться.

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

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

DoSатака (Denial of Service) — закидывание неугодных ресурсов различным флудом, приводящее их к нокдауну. А DDoSатака — это такая DoSатака, которую осуществляет не один энтузиаст, а разгневанная толпа, желающая Страшный Суд, Ад и Погибель неправославному ресурсу. Весь профит этого метода заключается в том, что грамотно спланированную атаку невозможно отразить вообще. В результате сервер начинает как минимум безбожно тормозить при ответах на нормальные запросы, а то и вовсе ложится, не вынеся такого издевательства.

Проще говоря, что такое DoS? Это, к примеру, когда ведёшь разговор с кем-то, но тут подходит алкаш, и начинает громко нести бред. Говорить либо невозможно, либо очень сложно. Решение: зовёшь охрану, она скручивает синяка и уводит.

Читайте также:  Скачки напряжения в блоке питания компьютера

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

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

Для начала нужно посмотреть сколько запросов идет с IP адресов клиентов. Для этого в консоли выполним команду:

netstat -ntu | awk ‘‘| cut -d: -f1 | sort | uniq -c | sort -nr | more

Видно, что с IP 192.230.77.217 поступило 129 обращений. "Алкаш" (смотреть выше) один, значит не DDOS, а просто DOSатака. Заголовок статьи менять уже не буду – позже поймете почему.

Ради интереса, можно посмотреть на какие порты идут обращения с этого IP адреса выполнив команду:

Ага. 443 порт пользуется популярностью. Я думал как обычно на 80-й будет, но в принципе не важно.

Блокирую по всем портам исходящие и входящие соединения с этого IP адреса командами:

iptables -A INPUT -s 192.230.77.217 -j DROP

iptables -A INPUT -d 192.230.77.217 -j DROP

Исходящие блокирую "на всякий случай". Вдруг меня взломают и начнут атаковать с моего сервера. Неприятностей потом будет куча, поэтому лучше подстраховаться.

Все порты блокирую на случай, если будет идти подбор паролей к FTP или еще к чему-то.

Проверяем заново текущую ситуацию после применения блокировки командой:

netstat -ntu | awk ‘‘| cut -d: -f1 | sort | uniq -c | sort -nr | more

Все чисто. Враг не пройдет!

Автоматизация защиты при DDoS атаке

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

Читайте также:  Размер а4 в пикселях в фотошопе вертикально

На основе одного примера, найденного в Интернете, я написал свой скрипт для защиты от DoS и DDoS атак. Он получился простой, но очень эффективный. Скрипт блокирует IP адреса, количество подключений с которых превысило 50. Это значение можно изменять – скрипт хорошо прокомментирован.

# Находим все соединения на все порты и записываем их в файл ddos.iplist
netstat -ntu | awk ‘‘ | cut -d: -f1 | sort | uniq -c | sort -nr | grep -v "127.0.0.1" > /usr/local/ddos/ddos.iplist

# создаем DROP правила (не выдавать ответа сервера на запросы забаненых) для IP с количеством подключений более 50 и добавляем их в файл
awk ‘ 50) >’ /usr/local/ddos/ddos.iplist >> /usr/local/ddos/iptables_ban.sh

# запускаем скрипт бана IP атакующих
bash /usr/local/ddos/iptables_ban.sh

# Очищаем скрипт, который производит бан
cat /dev/null > /usr/local/ddos/iptables_ban.sh

Давайте его установим.

Для начала, необходимо создать рабочую папку для нашего скрипта. Вводим в консоли команду:

Теперь перейдем в эту папку командой:

Загружаем скрипт в эту папку командой:

Выставляем права 755 на файл скрипта командой:

Запускаем скрипт для теста командой:

В папке со скриптом появятся два файла:

ddos.iplist – в него скидываются все подключения

iptables_ban.sh – сформированный скрипт для блокировки IP адресов

Теперь открываем файл /etc/crontab и добавляем в него следующие строки

*/5 * * * * root /bin/sh /usr/local/ddos/ddos.sh
@monthly root iptables -F

  • Первая строка – запускает наш скрипт каждые 5 минут.
  • Вторая – производит раз в месяц очистку всех блокировок (амнистия).

За неделю работы скрипта ситуация с банами IP сложилась следующая (команда iptables -L).

На этом все. Возникнут вопросы – пишите в комментариях.

Недавно озаботился поиском адекватного решения для защиты некоторых подконтрольных ресурсов от DDos атак.
Первое что посоветовали — Cisco Guard. Но так как требовалось что то легкое и не столь дорогое, то решил посмотреть в сторону софтверных продуктов.
После непродолжительного гугления наткнулся на небольшой скриптик (D)DoS-Deflate

Работает довольно просто — каждую минуту по крону запускается команда
netstat -ntu | awk ‘‘ | cut -d: -f1 | sort | uniq -c | sort -n
и выбираются все айпишники число соединений с которых превышает заданное в конфиге ограничени(по умолчанию 150).
Время бана тоже настраивается в конфиге. Также можно выбрать с каким файрволом работать — iptables или apf(надстройка над iptables).

Решение довольно очевидное, словесные описания проскакивали и до этого, но такой готовой реализации ранее не встречал.

UPD: не забываем что этот скрипт в силу своей простоты не спасет от серьезных заказных атак, но большинство кулхацкеров остановит

Leave a Reply

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

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>