Как не стать соучастником DDoS -атаки
Введение
Так сложилось, что для компьютерных вещей используется медицинская/биологическая терминология, поэтому будем говорить о трех вещах:
- Описание и профилактика
- Лечение
- Диагностика
Описание и профилактика
Когда говорят про DDoS, обычно подразумевают один из вариантов «болезни» сервера:
- на нем запущено ПО, которое генерирует пакеты на жертву (прямая атака)
- на нем запущено ПО, которое посылает ответы жертве (атака через отражение)
Прямая атака
Смысл атаки: с зараженного компьютера посылать множество пакетов/запросов на адрес жертвы.
Для профилактики помогают общие рекомендации по безопасности:
- обновляйте уязвимое ПО (чтобы не стать жертвой заражения)
- не давайте доступ к системе (особенно привилегированный) кому-попало
Атака через отражение
Смысл атаки: атакующий посылает запрос на ваш сервис, сервис отвечает, но
- отвечает на адрес жертвы (в запросе подменили обратный адрес)
- ответ в несколько раз превышает запрос (атакующий тем самым за счет ваших ресурсов ведет атаку на полосу пропускания жертвы)
Это сработает, если не требуется устанавливать соединение, т.е. используются сервисы, которые работают через UDP:
- Chargen (тестовый сервис). Служит для тестирования коммуникаций, в большинстве систем отключен. Если не знаете, что это — не включайте. Сервис был найден на одной старой системе.
- NTP (сервис времени). Если у Вас установлен NTP-сервер, то наверняка слышали о исправленной в нем уязвимости.
- DNS (сервис доменных имен):
- Не отвечайте на рекурсивные запросы от непроверенных адресов (т.е. ограничьте список тех, кому доверяете)
- Не отвечайте и на запрос корневой зоны. Пример (послали 56 байт, получили 783):
11:03:56.632116 IP 195.133.194.55.36043 > 188.44.42.31.53: 57143+ [1au] NS? . (28)
11:03:56.639358 IP 188.44.42.31.53 > 195.133.194.55.36043: 57143*- 13/0/25 NS k.root-servers.net., NS a.root-servers.net., NS i.root-servers.net., NS m.root-servers.net., NS j.root-servers.net., NS b.root-servers.net., NS g.root-servers.net., NS c.root-servers.net., NS e.root-servers.net., NS l.root-servers.net., NS h.root-servers.net., NS d.root-servers.net., NS f.root-servers.net. (755)
- SNMP (простой сервис управления). С помощью команды GetBulk атакующий в запросе на 70 байт может получить 2470 байт на жертву.
Рекомендации:
- ограничьте список адресов, с которых можно принимать запрос
- не используйте стандартные пароли, не используйте уровень noAuth (SNMP v3).
Дополнительная рекомендация по всем сервисам: ограничьте число запросов к серверу.
Пример: если DNS-сервер для одного IP-адреса обрабатывает 10000 запросов в секунду, то на жертву он выдаст поток в 60Mbit/s, если же всего 10 запросов в секунду, то 60Kbit/s.
Лечение
Стандартное для Вашего ПО:
- обновиться на безопасную версию
- поменять пароли/закрыть доступ
- и т.д.
Диагностика
Проверяйте трафик. В обычной ситуации входящий трафик больше исходящего в 4-8 раз, поэтому превалирование исходящего — это очень подозрительный симптом.
Из опыта: простой анализ графиков (да, пока не полностью автоматизировано) позволил обнаружить и заблокировать две DDoS -атаки:
- с сервера одной из лабораторий (не обновляли ПО, не анализировали журналы http-сервера, поэтому рекомендуется использовать хостинг Факультета, который администрируется и обновляется значительно лучше)
- с NTP-сервера факультета (тут сработала автоматика).