Начало этой истории было относительно удачным: распространение интернет-червя Code Red, атакующего системы на базе Windows с установленным веб-сервером Microsoft IIS (Internet Information Services for Windows Server), удалось выявить в самом начале эпидемии. Первооткрывателями стали специалисты компании eEye Security: на момент обнаружения (13 июля 2001 года) они как раз занимались разработкой системы по поиску уязвимостей в Microsoft IIS. Их тестовый сервер неожиданно перестал отвечать на запросы. Вслед за этим последовала бессонная ночь, которую исследователи провели, изучая логи системы в поисках следов заражения. Зловред назвали по первому попавшемуся на глаза предмету: это была газировка Mountain Dew Code Red.
Однако относительно раннее обнаружение не особо помогло остановить эпидемию. Зловред использовал уже зараженные системы для дальнейших атак, и буквально за считанные дни распространился по всему миру. Позднее организация Centre for Applied Internet Data Analysis показала статистику за 19 июля, которая хорошо демонстрирует скорость распространения Code Red. Всего, по разным данным, было атаковано более 300 тысяч серверов.
Принципы работы Code Red
Интернет-червь использовал тривиальнейшую уязвимость в одном из модулей веб-сервера, а точнее, расширении для индексации данных. В библиотеке idq.dll была обнаружена ошибка переполнения буфера. Уязвимость получила идентификатор MS01-33. По современным меркам это простейшая ошибка, которую можно проэксплуатировать, отправив на сервер чрезмерно длинный запрос такого вида:
GET /default.ida?NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN%u9090%u6858%ucbd3%u7801%u9090%u6858%ucbd3%u7801%u9090%u6858%ucbd3%u7801%u9090%u9090%u8190%u00c3%u0003%u8b00%u531b%u53ff%u0078%u0000%u00=a HTTP/1.0
В результате данные после многочисленных символов N интерпретируются как инструкции и выполняются. Вся вредоносная нагрузка содержится непосредственно в запросе, то есть при наличии уязвимой инсталляции Microsoft IIS система заражается моментально и со стопроцентной гарантией. Самым заметным следствием заражения становился дефейс веб-сайта, обслуживаемого веб-сервером. Вместо его содержимого выводилась вот такая заглушка:
По информации «Лаборатории Касперского», дефейс был не перманентный: через 10 часов после успешной атаки червь восстанавливал нормальное содержимое веб-сайта. Дальнейшие действия зависели от даты. С 1 по 19 число каждого месяца червь занимался собственным распространением, отправляя вредоносные запросы по случайным IP-адресам. С 20 по 27 число производилась DDoS-атака на ряд фиксированных IP-адресов, среди которых был адрес сайта администрации президента США. С 28 числа до конца месяца у Code Red были выходные.
Взгляд из 2022 года
Происшествия, подобные Code Red, происходят и по сей день, но чаще всего они связаны с уязвимостями нулевого дня. Именно такие уязвимости, обнаруживаемые, как правило, уже в процессе анализа активной атаки, могут стать причиной подобных эпидемий в настоящее время. Характерный пример — активно эксплуатируемая на момент обнаружения серия уязвимостей в почтовом сервере Microsoft Exchange. От нее пострадали более 30 тысяч организаций по всему миру, а администраторы почтовых сервисов во многих компаниях обнаружили себя в ситуации, когда патч надо устанавливать «вчера», и желательно еще провести аудит на случай, если заражение уже произошло.
Этот пример указывает не только на то, что атаки стали значительно сложнее, но и что произошел прогресс с точки зрения защиты. Code Red не эксплуатировал уязвимость zero-day — она была обнаружена и закрыта за месяц до эпидемии. Но принятая тогда скорость установки обновлений, отсутствие средств автоматической их установки и плохое информирование корпоративных пользователей сыграли свою роль. Еще одно важное отличие Code Red от современных атак — отсутствие какой-либо «монетизации». Сейчас за взломом уязвимого сервера компании неизбежно последовала бы кража данных либо их шифрование с последующим требованием выкупа (а часто и то, и другое). Более того, современные злоумышленники вряд ли будут анонсировать доступ к сайту дефейсом —наоборот, злоумышленники скорее предпримут все возможные шаги, чтобы скрыть свое присутствие в IT-инфраструктуре компании.
Не только Code Red
Code Red сошел со сцены достаточно быстро. В августе 2001 года появилась слегка измененная версия Code Red II, способная заражать системы, где уже «сидел» первый вариант червя. Но вообще в начале нулевых было немало и других атак с похожими сценариями. Уже в сентябре 2001 года произошла эпидемия интернет-червя Nimda, также эксплуатирующего давно пропатченные уязвимости в Microsoft IIS. В 2003 году активно распространялся червь Blaster. Стало очевидно, что патчи для критических уязвимостей в корпоративном ПО надо устанавливать как можно быстрее: сразу после выхода апдейта злоумышленники тщательно анализируют его и незамедлительно начинают эксплуатировать закрытую им уязвимость, пока большинство пользователей не установили обновления. Причем и сейчас нельзя сказать, что эта проблема решена. Есть и более свежие примеры, такие как атака WannaCry 2017 года — там тоже была использована давно известная, но не закрытая уязвимость.
Однако Code Red и прочие многочисленные вредоносные программы, заражавшие сотни тысяч систем по всему миру, отчасти помогли сформировать те подходы к корпоративной безопасности, которыми мы руководствуемся сейчас. Во многом благодаря им мы научились защищаться от кибератак. Впрочем, серебряной пули, решающей все проблемы бизнеса в киберпространстве, пока никто не придумал. Поэтому мы постоянно продолжаем совершенствовать технологии информационной безопасности. Эволюция киберзащиты — это необходимый путь к совершенству систем безопасности, в котором невозможно достичь идеала и успокоиться.