Shodan собирал IPv6-адреса NTP-клиентов и сканировал их в ответ

Одним из преимуществ IPv6 является отсутствие необходимости NAT из-за большого количества адресов в целом и длины выдаваемых пользователям подсетей в частности. Казалось бы, никто просто так не подключиться к какому-нибудь одноплатнику, который вы только-только подключили в домашнюю сеть с поддержкой IPv6. Никто же, в здравом уме, не будет сканировать всю вашу подсеть. Если весь IPv4-интернет можно просканировать в течение десятков минут, то на полное сканирование одной только /64 (минимальная подсеть, рекомендуемая к выдаче клиентам) уйдут десятки лет. К тому же, если каким-то образом злоумышленник узнал ваш IPv6-адрес, всегда можно активировать поддержку IPv6 Privacy Extensions, с которыми ваш адрес будет рандомизироваться раз в сутки или чаще.
Казалось бы, вероятность сканирования вашего одноплатника, который не обращается к внешним ресурсам, крайне низка. Однако, есть одна вещь, которая настроена почти на каждом компьютере — периодическая синхронизация времени через NTP.

NTP

Подавляющее большинство дистрибутивов Linux устанавливаются с настроенной автоматической синхронизацией времени через NTP, используя серверы pool.ntp.org. Как оказалось, стать частью pool.ntp.org достаточно просто, чем и воспользовались Shodan, задействовав 5 NTP-серверов в разных частях света, для верности используя несколько IP-адресов на одном сервере, чтобы вероятность попадания запроса клиента именно на их сервер была выше. Таким образом, в пуле ntp.org оказалось 45 IPv6-адресов машин Shodan, которые сканируют любой подключающийся к ним IPv6-адрес в ответ.
Обнаружил факт сканирования и вычислил все серверы Shodan Brad Hein. Вычислить все сканирующие NTP-серверы вручную достаточно сложно, т.к. NTP-демон обращается ко многим NTP-серверам последовательно для более точной синхронизации времени. Для автоматизации процесса был написан скрипт, который обрабатывает журнал файрволла и соединяется с подозрительными хостами еще раз, чтобы удостовериться, что они действительно сканируют в ответ, используя свежий временный IPv6-адрес.
Подтвердить принадлежность хостов к Shodan было довольно легко — почти все серверы использовали настоящие имена хостов в PTR-записи, вида *.scan6.shodan.io

На данный момент, серверы Shodan исключили из пула ntp.org.

Как защититься?

SANS рекомендует настроить свой собственный NTP-сервер в локальной сети, который будет синхронизироваться с доверенными серверами NTP, либо же используя спутники GPS или время базовых станций операторов через GSM. Стоит сразу безопасно настроить NTP-сервер, следуя, например, специальной инструкции. Необходимо помнить, что в протоколе NTP существует команда MONLIST, которая выдает адреса всех недавно обновлявших время клиентов, поэтому будьте бдительны при выборе доверенного сервера.

Заключение

Bjørn Hansen считает, что в скором времени могут появиться сервисы, собирающие активные IPv6-адреса, и продающие списки третьим лицам. «Выбирайте веб-сайты, которые вы посещаете, с осторожностью».

Ссылки

arstechnica.com/security/2016/02/using-ipv6-with-linux-youve-likely-been-visited-by-shodan-and-other-scanners
netpatterns.blogspot.de/2016/01/the-rising-sophistication-of-network.html
isc.sans.edu/forums/diary/Targeted+IPv6+Scans+Using+poolntporg/20681

© Habrahabr.ru