Таблица умножения (18.02.14)

Каждого владельца сетевого ресурса подстерегают в интернете самые разные неприятности. Одна из них — это DDoS-атака, когда злоумышленники «забрасывают» сайт запросами, практически неотличимыми от настоящих, и тем самым не оставляют шансов пробиться к сайту или иному сервису для честного пользователя. Вредители обращаются к ресурсу со многих адресов, например, с принадлежащих контролируемому ботнету. Мотивы могут быть самые разные — коммерческие, политические или просто хулиганские.

Одна из разновидностей такой атаки — так называемая Amplification Attack, при которой используются вполне легальные сетевые сервисы, например, DNS. Особенность этих сервисов заключается в том, что на сравнительно маленький запрос они могут направить ответ, во много раз превышающий запрос. Дело остается за малым — перенаправить этот поток в сторону жертвы.

Расскажем немного подробнее о том, как устроена такая атака. В интернете для передачи данных, разбираться с которыми будет уже получатель, широко используются два протокола: TCP и UDP. Специфицированы они давно, RFC относятся к 1980 и 1981 годам. Основное отличие между этими протоколами состоит в том, что протокол TCP предусматривает фазу установления соединения, где обе стороны явно подтверждают установление соединения и точно знают, с кем имеют дело, Это гарантирует надежность доставки пакетов и получение их в правильном порядке. Но за все надо платить, и накладные расходы у протокола TCP куда выше. UDP же предполагает, что никакого подтверждения не требуется. Поэтому UDP, например, подходит для передачи через интернет голоса — просто потому, что при плохой слышимости собеседника всегда можно переспросить. Но именно поэтому в пакете UDP можно указать любой адрес отправителя, и, в отличие от TCP, возможности проверить этот адрес у сервера, дающего ответ, крайне ограничены. Кроме того, далеко не все эти возможности используют. Поэтому честный, но наивный сервер шлет ответ на указанный в запросе обратный адрес, и незаметный трафик с каждого компьютера ботнета, достигнув компьютера жертвы, увеличивается во много раз.

«Много» — это все-таки абстракция. Конкретные цифры довольно печальны. DNS-запрос типа ANY может привести к увеличению ответа в 80 раз по сравнению с исходным запросом. Запрос записи NSEC3, используемой в DNSSEC, тоже дает увеличение ответа, хотя и более скромное, «всего» в 20 раз. Увеличение безопасности в сети парадоксальным образом используется в этих случаях во вред.

Описаны подобные атаки были еще в 2006 году, в дикой природе были замечены в 2009. Способы бороться с этими атаками начали искать сразу же, как только они появились. DNS-серверы перестали обслуживать отдельные категории запросов, например, те же самые ANY, также все чаще стало использоваться ограничение на частоту ответов отдельным клиентам, если запросы идут слишком часто. Появилась возможность учитывать размер ответа, отправляемый клиенту, и если по каким-то критериям запросы становятся подозрительными, можно ограничить направляемый трафик. Было введено принудительное переключение с протокола UDP на протокол TCP, где указать поддельный адрес невозможно.

Основная сложность при отражении подобной атаки состоит в том, чтобы отличить легитимные запросы, на которые надо отвечать, от почти таких же на вид запросов, созданных злоумышленниками. Отдельную проблему для жертв создают так называемые «открытые резолверы» — DNS-серверы, которые отвечают не только на запросы, относящиеся к зонам, которые хостятся непосредственно на сервере, но и переадресуют запросы про любые домены, существующие в сети, к другим DNS-серверам. Такие настройки сервера явно показывают, что владелец сервера игнорирует соображения безопасности. Подобных серверов в мире, согласно исследованиям 2013 года, насчитывается порядка 20 миллионов, и все они могут быть использованы для организации атаки.

Но протоколом DNS создаваемые угрозы не ограничиваются. О новой разновидности DDoS-атак с использованием протокола получения точного времени (NTP) мы уже писали. Тогда жертвой атаки с трафиком в 400 гигабит в секунду стала известная хостинговая компания CloudFlare. Одна из команд, предусмотренных в протоколе NTP, выдает список 600 последних обратившихся к серверу IP-адресов и дает куда больший, чем DNS, коэффициент усиления. Специалисты отмечают, что достаточно одного сервера, где эта возможность не отключена, чтобы организовать атаку на любой ресурс, хотя возможно, и не столь впечатляющую, как в случае с CloudFlare, когда таких серверов использовалось больше 4500.

Надо сказать, что о возможности использования NTP и некоторых других протоколов для атаки, которая относится к категории Amplification Attack рассказывал в сентябре 2013 года на конференции администраторов и регистраторов стран СНГ и Восточной Европы (TLDCON-2013), организованной Координационным центром национального домена сети Интернет, один из крупных специалистов по безопасности в сети, Яп Аккерхуис. Но на тот момент для аналогичных атак использовался только протокол DNS, и всем казалось, что способы бороться с этими атаками уже найдены. Правда, сегодня для пользователей протокола NTP тоже разработаны рекомендации, дело за малым — им последовать.

Что ждет дальше? Еще один протокол, SNMP, уже потихоньку привлекающий внимание злоумышленников, предназначен для удаленного управления устройствами по сети. Этот протокол обещает перспективы усиления атак более чем в 600 раз. CloudFlare уже сообщила о том, что одну атаку, в которой использовался SNMP, пережить им удалось. К счастью, не требующие авторизации SNMP-серверы в сети встречаются редко.

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


Автор:  Дмитрий Белявский (ТЦИ)

Возврат к списку