Зафиксировано использование Memcached в качестве усилителя трафика для DDoS-атак
Как сообщает opennet.ru компания Cloudflare сообщила о выявлении массивных DDoS-атак, интенсивность трафика в которых доходит до 500 Гбит/с, проводимых с использованием усилителя из общедоступных серверов Memcached. Метод атаки с использованием усилителя трафика основа на том, что запросы с участвующих в DDoS-атаке компьютеров направляются не напрямую на систему жертвы, а через промежуточный усилитель трафика, путем отправки UDP-пакетов с подставным обратным адресом жертвы (спуфинг).
Предоставляемый Memcached протокол позволяет взаимодействовать с сервером через протокол UDP. Один из вариантов усилителя заключается в отправке запроса вывода статистики (команда STAT), размер пакетов с которой во много раз может превышать размер исходного запроса. Второй вариант заключается в загрузке в кэш Memcached большого блока данных с последующей отправкой с поддельного адреса жертвы запросов на загрузку этих данных (команда GET).
В случае Memecached, размер запроса составляет 15 байт, а ответ может включать сотни килобайт данных. В одной из изученных атак средний размер ответа составил 134 КБ (усиление в 9000 раз). Наибольший зафиксированный в атаках размер ответа составил 750 КБ. В зависимости от сервера коэффициент усиления трафика может достигать 10-50 тысяч, что является абсолютным рекордом среди методов усиления атак. Для сравнения коэффициент усиления трафика для NTP составляет 556 раз, DNS - 28-54, RIPv2 - 21, SSDP - 20, SNMPv2 - 6.
Опасность представляют некорректно настроенные серверы, в которых Memcached прикреплен к внешнему сетевому порту и может принимать запросы извне. Memcached не поддерживает аутентификацию и расчитан на прикрепление к внутреннему сетевому порту или ограничение доступа на уровне межсетевого экрана. Некорректная настройка позволяет любому обратиться к незащищенному хранилищу Memcached, а поддержка протокола UDP дает возможность подделать обратный адрес, на который будет отправлен ответ.
Всплеск DDoS-атак с привлечением memcached зафиксирован 24 февраля и продолжает нарастать. Если первые дни в атаке было задействовано около 400 серверов, то к 28 февраля их число удвоилось. Всего по предварительной оценке в сети насчитывается 93 тысячи общедоступных серверов Memcached, которые потенциально могут быть вовлечены в атаки.
При запуске по умолчанию memcached прикрепляется ко всем сетевым портам и принимает соединения по UDP (для привязки к localhost и отключения UDP следует запускать memcached с опциями "--listen 127.0.0.1 -U 0"). При установке из пакетов в Ubuntu 16.04 по умолчанию memcached привязывается к localhost, но при установке из пакета в CentOS 7.4 осуществляется привязка ко всем имеющимся сетевым интерфейсам.
Всем администраторам рекомендуется проверить свои системы на предмет наличия открытого доступа к сетевому порту 11211 и заблокировать возможность обращения к нему из внешних сетей пакетным фильтром. Разработчики Memcached оперативно выпустили обновление 1.5.6, в котором по умолчанию отключили привязку к UDP-порту (для обращения к memcached всеми современными клиентами обычно используется TCP). Для проверки своего сервера на возможность доступа по UDP можно при помощи команд:
$ echo -en "&92;x00&92;x00&92;x00&92;x00&92;x00&92;x01&92;x00&92;x00stats&92;r&92;n" | nc -q1 -u 192.168.1.1 11211 STAT pid 21357 STAT uptime 41557034 STAT time 1519734962... или nmap 192.168.1.1 -p 11211 -sU -sS --script memcached-info PORT STATE SERVICE 11211/tcp open memcache.