Назад | Перейти на главную страницу

Strange DNS DOS attack — Endless Recursive Queries for <blank domain=""></blank>

Наши DNS-серверы W2K3, кажется, подвергаются какой-то атаке DOS, но я не могу найти никакого описания или обоснования атаки.

Три конкретных удаленных хоста бомбардируют два из трех наших DNS-серверов такими строками:

8937  891.093750  91.205.43.25  ns2.me.com  DNS  DNS: QueryId = 0xDA7C, QUERY (Standard query), Query  for   of type NS on class Internet
8938  891.218750  91.205.43.25  ns2.me.com  DNS  DNS: QueryId = 0xA504, QUERY (Standard query), Query  for   of type NS on class Internet
8939  891.219727  91.205.43.25  ns1.me.com  DNS  DNS: QueryId = 0x4E3F, QUERY (Standard query), Query  for   of type NS on class Internet
8940  891.370117  69.197.181.26   ns1.me.com  DNS  DNS: QueryId = 0xA8CC, QUERY (Standard query), Query  for   of type NS on class Internet
8941  891.372070  69.197.181.26   ns2.me.com  DNS  DNS: QueryId = 0xC808, QUERY (Standard query), Query  for   of type NS on class Internet
8942  891.476562  91.205.43.25  ns2.me.com  DNS  DNS: QueryId = 0xCC37, QUERY (Standard query), Query  for   of type NS on class Internet
8943  891.478516  91.205.43.25  ns1.me.com  DNS  DNS: QueryId = 0xEDEC, QUERY (Standard query), Query  for   of type NS on class Internet

Их было около 10 в секунду в течение нескольких дней. Каждый злоумышленник пробует оба атакованных сервера в быстрой последовательности, хотя они никогда не пробуют наш третий сервер.

Вот образец деталей каждого пакета:

  Frame: 
+ Ethernet: Etype = Internet IP (IPv4)
+ Ipv4: Next Protocol = UDP, Packet ID = 20114, Total IP Length = 45
+ Udp: SrcPort = 23909, DstPort = DNS(53), Length = 25
- Dns: QueryId = 0xEDEC, QUERY (Standard query), Query  for   of type NS on class Internet
    QueryIdentifier: 60908 (0xEDEC)
  - Flags:  Query, Opcode - QUERY (Standard query), RD, Rcode - Success
     QR:                (0...............) Query
     Opcode:            (.0000...........) QUERY (Standard query) 0
     AA:                (.....0..........) Not authoritative
     TC:                (......0.........) Not truncated
     RD:                (.......1........) Recursion desired
     RA:                (........0.......) Recursive query support not available
     Zero:              (.........0......) 0
     AuthenticatedData: (..........0.....) Not AuthenticatedData
     CheckingDisabled:  (...........0....) Not CheckingDisabled
     Rcode:             (............0000) Success 0
    QuestionCount: 1 (0x1)
    AnswerCount: 0 (0x0)
    NameServerCount: 0 (0x0)
    AdditionalCount: 0 (0x0)
  - QRecord:   of type NS on class Internet
     QuestionName: 
     QuestionType: NS, Authoritative name server, 2(0x2)
     QuestionClass: Internet, 1(0x1)

В настоящее время у нас настроен наш брандмауэр, чтобы просто отбрасывать запросы от трех злоумышленников, но если я разрешаю им пройти, наш сервер отвечает длинным ответом, в котором перечислены имена (но не адреса) всех корневых серверов подсказок, и, похоже, он делает это независимо от того, включена ли рекурсия.

Кто-нибудь знает, о чем это? Могу ли я остановить входящий трафик, или я все еще блокирую его на брандмауэре, пока им не надоест?

Спасибо за любую информацию,
Павел

Это может не быть DoS против вас - гораздо более вероятно, что ваши машины используются для отправки пакетов кому-то другому.

Это называется «атакой усиления». Они отправляют вам 25-байтовый DNS-запрос - вы отправляете обратно ~ 500 байтов корневых ссылок.

В этом случае исходные IP-адреса фактически подделаны, и они используют ваш большой ответ, чтобы усилить эффект их DoS против этих поддельных IP-адресов.

Отбрасывание пакетов на брандмауэре, вероятно, лучшее, что вы можете сделать на данный момент.

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

Возможно, вторя Альнитак, Я не понимаю назначение ваших DNS-серверов.

Они публичные авторитетные серверы предоставляете информацию о ваших доменах? В таком случае нет необходимости отвечать ни на какие другие запросы, кроме тех, для которых они являются полномочными. 10 запросов в секунду - это не то, о чем вам следует беспокоиться, если вы все равно не отправляете ответы.

Это внутренний рекурсивный / кеширующий сервер, предоставляя услуги для внутренних пользователей? Если да, то должен быть view это может match-clients (в синтаксисе BIND) и не получать запросы из-за пределов вашей сети. Если он у вас уже есть и запросы поступают из контролируемых вами сегментов, что ж, выследите этих клиентов!

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

Тем не менее, вы также хотите исправить ответ своего сервера, чтобы защитить его от будущих атак или даже если ваши текущие злоумышленники просто переключают IP-адреса. Но кто-то другой может помочь с этой частью вопроса лучше меня.