Сейчас я изучаю сети, и мне пришло в голову, что DNS-запросы можно легко подделать с поддельными IP-адресами (поскольку они используют UDP). Поскольку DNS полагается на UDP для связи, может ли злоумышленник отправить миллионы поддельных запросов на DNS-сервер (возможно, даже на корневые серверы?) И легко отключить его? Я не могу придумать хороший способ предотвратить это (кроме перехода на другой протокол).
Да, это возможно. Заблокировать тоже непросто, поскольку злоумышленник может подделать исходный IP-адрес как один из почти четырех миллиардов IP-адресов. Однако многие атаки, подобные этой, можно отфильтровать, исследуя данные DNS внутри дейтаграммы. Многие флуд-атаки либо используют неверные данные, либо используют одни и те же данные снова и снова. Это можно использовать, чтобы отличить действительный трафик от недопустимого, если у вас есть сетевое оборудование, способное выполнять глубокую проверку пакетов. Атака по-прежнему будет использовать значительную часть вашей пропускной способности, но вы можете, по крайней мере, не допустить ее перегрузки вашего сервера имен.
Однако обычно сам сервер имен не является целью для такого рода атак. Вместо использования случайного IP-адреса источника в качестве IP-адреса источника устанавливается IP-адрес реальной цели: атака с отражением DNS. Очень короткие вопросы, приводящие к длинным ответам, отправляются на сервер имен, и сервер имен отправляет ответ на целевой IP-адрес, заполняя его трафиком. Это легче фильтровать на стороне сервера имен, поскольку он выглядит как единый источник, поскольку он так нацелен.
Как и в случае любой другой DoS-атаки, здесь нет метода предотвращения или защиты, единственный инструмент, который у вас есть, - это добавить нулевые маршруты с исходных IP-адресов. Даже если ваш маршрутизатор блокирует трафик, вы по-прежнему тратите входящую полосу пропускания и, следовательно, запрещаете другим пользователям доступ к службе.
В конечном итоге вам нужно связаться с интернет-организациями, расположенными ближе к источнику, чтобы аналогичным образом отключить источник из Интернета.
Итак, чтобы ответить на этот вопрос, все, что вы действительно можете сделать, - это предоставить услугу, достаточную для того, чтобы один хост не смог DoS вас, но спросите себя, что происходит, когда ботнет запускает DoS? Масштаб хостов делает невозможным создание схемы защиты, которая также не затрагивает обычных пользователей.