Хакер #305. Многошаговые SQL-инъекции
Одним из главных событий последних недель можно назвать мощнейшие 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-атаку, используя адреса из списка для ее амплификации.
Еще один способ организации Memcached-атак был опубликован ИБ-специалистом в Twitter, и весь код уместился в одно сообщение.
#memecached UDP 50,000x AMP attack IP-Spoof POC. syntax args: <victim_ip> <memecache_ip>
— ens (@the_ens) March 3, 2018
use Socket;socket R,2,3,255;setsockopt R,0,1,1;send R,pack("H*x4H*a4a4H*Z*",45000019,"52110000",(map{inet_aton$_}@ARGV),"fefe2bcb0017"."0"x14,"x01x00x00statsrn"),0,pack"Sna4x8",2,60,pop
К сожалению, невзирая на терабитные 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, и постепенно продолжает снижаться.
Although there were 107,431 Memcached servers in Shodan this morning. The population Memcached is slowly but steadily shrinking. Servers which where vulnerable this morning are now closed 8 hours later. We still have a long way to go but progress is being made. ? pic.twitter.com/nqAFt4BAmG
— Victor Gevers (@0xDUDE) March 7, 2018