NTP reflection attack - уязвимость в реализациях протокола NTP

Версия для печати

NTP

13 января 2014 года US-CERT выпустило предупреждение о новом способе DDOS атак, при помощи уязвимости в протоколе NTP (Network Time Protocol).

Атака основана на опции monlist, которая включена по умолчанию на старых версия протокола. Этот запрос получает список последних 600 клиентов воспользовавшихся сервисом. Зараженные компьютеры отправляют запрос monlist с поддельным IP-адресом отправителя к NTP-серверу. Запрос monlist возвращает список из последних 600 клиентов ntpd. В результате размер ответа во много раз превышает исходный запрос (на загруженных серверах на запрос в 234 байт возвращается ответ в 48 Кб), что позволяет многократно усилить объём трафика, генерируемого в сторону системы жертвы. Проблему усугубляет то, что команда monlist выполняется без аутентификации. Помимо увеличения трафика на сервере так же увеличивается, многократно нагрузка.

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

Проверить свой сервер на NTP уязвимость можно выполнив команду ntpdc -n -c monlist ip_адрес_вашего_сервера. Пример ответа от сервера с уязвимостью:

>ntpdc -n -c monlist 127.0.0.1

remote address          port local address      count m ver code avgint  lstint

===============================================================================

91.196.101.225         24525 127.0.0.1             6 7 2      0    334       0

198.100.144.49            80 127.0.0.1          2497 7 2      0      0       0

217.168.137.25           123 127.0.0.1        221289 7 2      0      0       0

66.150.121.186         25565 127.0.0.1         16684 7 2      0      0       0

178.32.140.23          25565 127.0.0.1          7087 7 2      0      0       0

178.33.179.47             80 127.0.0.1          1596 7 2      0      0       0

185.24.69.90           23000 127.0.0.1         17829 7 2      0      0       0

192.232.206.151           25 127.0.0.1         34218 7 2      0      0       0

193.192.58.54           2302 127.0.0.1          1789 7 2      0      0       0

192.64.169.29           8088 127.0.0.1         18073 7 2      0      0       0

185.9.158.45              27 127.0.0.1         11002 7 2      0      0       0

Устранить уязвимость можно обновлением версии NTPd до 4.2.7p26 или отключением функции мониторинга. Это можно сделать внесением строки disable monitor в конфигурационный файл ntp.conf и перезапустить демон ntpd. Если уязвимость устранена, то в ответ на запрос сервер выдает отвер "Server reports data not found".

>ntpdc -n -c monlist 127.0.0.1

***Server reports data not found

Просьба всех владельцев серверов на Unix-платформах проверить свои сервера на наличие уязвимости и в случае ее обнаружение - устранить.