ADG Оставить заявку
Блог Информационная безопасность 4 мин чтения

Code Red и Nimda: когда червь приходит сам

Черви Code Red и Nimda атакуют IIS-серверы по всему интернету без всякого участия пользователя. Что видно на практике и почему патч решает больше, чем героическое лечение.

Контекст момента

черви Code Red и Nimda массово заражают веб-серверы на IIS по всему интернету

Последние недели в интернете неспокойно. Code Red пошёл в июле, сейчас добавился Nimda - и всё это вместе превратилось в такой фоновый шум, который слышен на каждом сервере с IIS, смотрящем наружу. Не у каждого клиента, не в каждой конторе - у каждого, у кого IIS открыт в интернет и не закрыт патчами.

Это отдельный класс заразы, и стоит объяснить, чем он отличается от того, с чем обычно приходят с вирусами.

Никакого пользователя не нужно. Обычный вирус попадает на машину, когда кто-то открывает файл, запускает вложение, вставляет дискету. Здесь этого нет. Червь сам обходит диапазоны IP-адресов, отправляет на 80-й порт специально сформированный запрос, и если на той стороне IIS без патча - выполняет код. Без участия человека, без клика, без «открыть» или «запустить». Сервер просто стоит и слушает - этого достаточно.

Code Red использует уязвимость в обработке запросов к .ida-файлам - переполнение буфера в ISAPI-фильтре. Nimda чуть хитрее: распространяется сразу несколькими путями, в том числе через расшаренные папки и по почте, но веб-вектор тоже активен. Оба написаны под необновлённый IIS 4.0 и 5.0.

Что видно на заражённом сервере. Логи IIS начинают пухнуть запросами вида GET /default.ida?NNNN... - длинная строка из повторяющихся символов. Это зонд: червь проверяет, откликнется ли сервер нужным образом. Если сервер заражён, он сам начинает генерировать такие же запросы на случайные адреса - и нагрузка на канал растёт. На одном из клиентских серверов мы наблюдали это вживую: пинг до провайдера начал задыхаться, хотя реального трафика сайт не генерировал. Заглянули в логи - там было несколько тысяч запросов за час, все одного типа, все исходящие.

Это неприятно само по себе. Но хуже то, что заражённый сервер потенциально открыт для дальнейшего: некоторые варианты Code Red оставляют бэкдор, через который можно зайти позже.

Почему помогает периметр. У части клиентов, которые физически разделили сеть на сегменты, ситуация оказалась проще. Внутренний веб-сервер, до которого снаружи не достучаться напрямую, в общем-то и не интересен червю - он просто не видит его. Это не магия и не хитрая защита, а просто закрытый порт на межсетевом экране. Если 80-й снаружи не проброшен, запрос не доходит.

Для серверов, которые стоят непосредственно с внешним IP и открытым IIS, это не работает - они торчат в интернете именно для того, чтобы к ним ходили. Там единственный нормальный ответ - патч.

Патч, а не чистка. Несколько контор пробовали бороться руками: находили и убивали процессы, чистили временные файлы, перезапускали сервер. Помогало на пару часов. Червь заходил снова с другого адреса, потому что дыра никуда не делась. Убирать симптомы без закрытия уязвимости - это как вытирать лужу, пока кран открыт.

Microsoft выпустила патч ещё до начала волны - в июне. Просто большинство серверов не обновлялись. Причины стандартные: «работает - не трогай», «обновление сломает что-нибудь», «потом». Когда червь уже ходит по логам, «потом» становится «прямо сейчас и в авральном режиме».

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

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

Отдельный вопрос - что делать с теми, кто уже заражён. Здесь правило одно: сначала патч, потом чистка. Чистить незапатченный сервер бессмысленно - он заразится снова раньше, чем вы закроете терминал.

Nimda, судя по всему, чуть зубастее Code Red в плане путей распространения, так что одним IIS-патчем здесь не обойтись - нужно смотреть расшаренные папки и почту. Но веб-вектор закрывается тем же обновлением.

Ситуация неприятная, но управляемая. Паники нет, но и расслабляться не стоит: пока серверов без патча в сети много, черви никуда не денутся.

Контакт

Нужна такая же инженерная работа?

Опишите задачу и контекст. Ответим в течение рабочего дня, при необходимости подпишем NDA.