MyDoom: в первый день шлюз принял в десятки раз больше писем - почти всё черви
Январь 2004: червь MyDoom за сутки забил почтовые шлюзы мусором. Серый список и блокировка исполняемых вложений остановили волну без потерь легитимной почты.
червь MyDoom дал самое быстрое на тот момент распространение через почту, январь 2004
Примерно в обед в понедельник у нас начали звонить клиенты с одним и тем же вопросом: почта стала странно тормозить, входящие идут медленно, у кого-то сервер вообще перестал отвечать на подключения. Мы сами к тому моменту уже смотрели в логи шлюза с нехорошим ощущением. Очередь принятых писем выросла в разы за час - и росла дальше.
Это был MyDoom. Про него уже писали в зарубежных новостях с утра, но масштаб дошёл до нас именно к обеду, когда волна добралась до российских адресатов.
Что именно мы увидели
Картина в логах была простая и от этого особенно неприятная. Обычный фоновый почтовый трафик у одного из клиентов - торговая компания, полсотни ящиков - это несколько сотен писем в сутки. К середине дня шлюз принял столько писем, сколько он раньше видел за несколько дней. При этом в папках у людей почти ничего не прибавилось - вся эта масса оседала на шлюзе, потому что антивирус и фильтры работали и отсекали заражённые вложения. Процессор на сервере гудел, очередь не рассасывалась, легитимные письма задерживались.
MyDoom распространялся через вложения с именами вроде document, readme, mail, file - с расширениями .exe, .pif, .scr, .bat, .cmd. Тема и тело письма были нейтральными или вообще пустыми. Пользователь получал письмо, открывал вложение из любопытства или по ошибке - и его машина начинала рассылать то же самое по всем адресам из адресной книги. Плюс червь оставлял бэкдор, но это уже отдельная история.
Что остановило волну
К счастью, у нас к тому моменту было два рубежа защиты, которые мы ставили ещё по урокам Klez в 2002-м.
Первый рубеж - блокировка исполняемых вложений на шлюзе. Любое письмо с вложением .exe, .pif, .scr, .bat, .cmd - не проходит. Вообще. Независимо от того, знает ли антивирус эту конкретную сигнатуру. MyDoom был новым, и первые несколько часов антивирусные базы за ним не поспевали. Но это не имело значения: письмо с .pif просто отбивалось по типу вложения, даже не доходя до антивирусной проверки. Этот простой фильтр снял основной вал.
Второй рубеж - серый список. Мы начали применять greylisting ещё в 2002-м как меру против спама. MyDoom, как выяснилось, вёл себя похоже на дешёвые спамерские рассылки: заражённые машины долбились по адресам и не всегда корректно обрабатывали временный отказ. Часть волны просто не вернулась за письмом после паузы.
Вместе эти два фильтра срезали, по ощущению, большую часть потока. Сервер всё равно работал с повышенной нагрузкой - очередь надо было принять и обработать, - но к вечеру выровнялся.
Где было больно
Нагрузка. Даже отбитые письма надо принять, распарсить, проверить по фильтрам и ответить отправляющей стороне. У клиента, где шлюз был настроен на скромном железе, к середине дня мы были на пределе: очередь входящих стояла, легитимные письма лежали в ней вместе с мусором и ждали своей очереди. Люди жаловались, что не получают счета и подтверждения от партнёров.
Выход нашли оперативный: временно ужесточили ограничения по IP - отбивали сразу, если один IP долбится чаще определённого порога за минуту. Заражённая машина, которая шлёт письма по пять штук в секунду, под этот порог попадала моментально. Обычный почтовый сервер - нет.
Другая боль - то, что некоторые клиенты не успели поставить антивирус на шлюзе, у них только клиентский. Там всё было хуже: письма с червями доходили до ящиков, пользователи открывали вложения, и к нам ехать пришлось лично. Не катастрофа, но потерянный день и нервы.
Что вынесли
MyDoom в первый день смотрелся как почтовый апокалипсис - если не было никакой защиты, шлюз просто ложился под нагрузкой. Нас это почти не задело, потому что два инструмента, которые мы внедрили ещё по предыдущим историям, держали.
Сухой остаток такой.
- Блокировать исполняемые вложения на шлюзе - не опционально. Ни один сотрудник не должен получать
.exeпо почте в рабочих целях. Если кому-то надо передать программу - есть другие каналы. - Серый список для борьбы с червями работает по той же логике, что и против спама: примитивные рассылалки не умеют переспрашивать.
- Антивирус на шлюзе - первая линия, а не замена клиентскому. Пока базы обновились и узнали MyDoom, прошло несколько часов. Всё это время тип вложения спасал там, где антивирус был бессилен.
- Ограничение частоты от одного IP добавили в конфигурацию постфактум, но теперь оно там есть - как стандарт.
Клиентам, у кого почта идёт через нас в рамках сопровождения инфраструктуры, мы это закрыли централизованно. Тем, кто держал почту сам - объезжали и дотягивали руками. Разница в том, как прошёл этот день, была очень заметной.
MyDoom продолжает ходить - прямо сейчас, пока мы это пишем, шлюзы принимают тысячи заражённых писем в сутки. Волна спала, но не остановилась.
- Klez: клиент не виноват, но именно его письма заразили соседей · 11 марта 2002
- Спам захлестнул почту, а фильтров толком нет · 15 октября 2002