История зла 1999-2009

САМАЯ НАШУМЕВШАЯ МАЛВАРЬ ЗА ПОСЛЕДНИЕ 10 ЛЕТ
Каждый день — новая зараза. С таким разнообразием всевозможной живности появление новой малвари просто перестаешь замечать. И все-таки, были эпидемии, которые не прошли незамечено. Мы решили вспомнить последние 10 лет и выбрать за каждый год наиболее запомнившуюся заразу.

Melissa

Едва ли программист из Нью-Джерси задумывался о том, чтобы собрать ботнет из миллионов машин и использовать его для рассылки спама. Вряд ли он мог представить последствия, создавая своего, казалось бы, безобидного червя Melissa. Ведь даже распространение тот начинал не с инета — впервые червь был обнаружен 26 марта в конференции alt.sex внутри Usenet — в то время еще популярной сети для общения и обмена файлами. К сообщению был приложен файл List.DOC, содержащий пароли на 80 порнушных сайтов: позарившись на «клубничку», файлик с радостью открыли многие. А дальше пошло-поехало: червь тут же начал распространение, отправляя себя по 50 первым контрактам из записной книжки пользователя. Это был первый успешный червь, распространяемый через e-mail.
Когда Melissa открывает зараженный документ MS Word 97/2000, запускается специальный макрос, который рассылает копии червя в сообщениях электронной почты при помощи обычного Outlook’а. Для этого червь юзает возможность Visual Basic активизировать другие приложения MS Windows и использовать их процедуры. Вирус вызывает MS Outlook, считывает из адресной книги первые 50 email’ов и посылает по этим адресам сообщения. Написав в мессаге текст аля «Вот документ, о котором ты меня спрашивал», червь приаттачивал к письму текущий открытый документ пользователя, предварительно заражая его. Последнее, кстати, повлекло за собой массу курьезных ситуаций и, в ряде случаев — утечки конфиденциальной информации. В 1999 году пользователи даже не задумывались о том, что в аттаче от известного им адресата может быть какая-то зараза, и активно открывали вложения.
Стремительное распространение вируса серьезно нагрузило почтовые серверы — им пришлось обрабатывать на несколько порядков больше отправлений, чем обычно. Тысячи машин по всему миру не выдержали нагрузки и вышли из строя. К 27 марта распространение вируса приняло характер эпидемии; 29 марта он проник уже на компьютеры всех стран мира, подключенных к Сети, в том числе и на российские.
Найденному силами ФБР Девиду Смиту, который и написал те три десятка строк кода на VB, грозили 10 лет тюрьмы, но парень «легко отделался», получив 20 месяцев заключения и штраф в $5000. Однако исходники червя еще долго мусолили хакеры, плодя различные модификации Melissa.

весь код Melissa умещался в 100 строчках

Loveletter

В следующем году — новая почтовая эпидемия, вызванная вирусом Love Letter (или Love Bug). Письма, содержащие незамысловатое ILOVEYOU в строке темы, посыпались на ничего не подозревавших пользователей градом. И все было бы замечательно, если бы к письму не был приложен скриптик на Visual Basic Script, замаскированный под текстовый файл.
The Subject: ILOVEYOU
Message body: kindly check the
attached LOVELETTER coming from me.
Attached file: LOVE-LETTER-FORYOU.TXT.vbs
На лицо отличный пример социальной инженерии и прием двойного расширения, — что помогло скрыть подлинную природу файла. По умолчанию Винда не показывала второе, настоящее, расширение файла, поэтому принять аттач за обычный текстовик действительно было проще простого. Ну а коль пользователь файл запустил, можно делать свое дело. Написанная с использованием механизма Windows Scripting Host, малварь честно рассылает копии тела по всем адресам из адресной книги почтовой программы MS Outlook, после чего приступает к деструктивной части, закачивая и устанавливая в системе троя. Путь до исполняемого файла прописывался как домашняя страница в параметрах Internet Explorer. Это обеспечивало его автоматическую загрузку, а запуск в системе гарантировал специально созданный ключ в реестре. Далее домашняя страница возвращалась на свое место — и ушастый пользователь даже не замечал изменений. Тем временем, WIN-BUGSFIX.EXE или Microsoftv25.exe честно отправлял автору отснифанные пароли.
Трик с использованием двойного расширения автор заюзал не только в письмах. Для файлов целого ряда расширений, червь создавал свои копии, добавляя к их названию расширение .vbs. Если в папке был файл rulez.mp3, то тут же создавался rulez.mp3.vbs с телом червя — и так повсюду.
В основе другого способа распространения, который так же давал плоды, лежали скрипты для mIRC — самой распространенной программы для бешено популярных тогда IRC-чатов. Пользователям чата автоматически передавалась HTML-ка, предлагающая закачать некий ActiveX-элемент. Что находилось внутри, объяснять не надо, но поверь на слово: посмотреть, что прислал им хороший приятель, соглашались очень многие.
Первый случай активности Love Letter был зафиксирован 4 мая 2000 г., а уже через сутки им были частично или полностью поражены сети ЦРУ, NASA, Министерства энергетики, конгресса США, Пентагона, британской палаты общин и еще множества организаций. Ущерб, нанесенный червем в первые дни активности, был оценен в $5 миллионов. Офигительно? Виновника этого безобразия помог найти оставленный им автограф: «barok -loveletter(vbe) < i hate go to school > by: spyder / ispyder@mail.com / Manila,Philippines». Но в виду отсутствия местных законов за подобные преступления, никакой ответственности он не понес.

а вот так выглядело письмо ILOVEYOU

Code Red

Из-за этого червя сайту Белого дома США в 2002 году пришлось поменять IP-адрес . Стартовавшего 13 июля 2001 года, Code Red интересовали виндовые машины с запущенным веб демоном IIS на борту и включенной системой индексирования. О существовании критической уязвимости, приводящей к переполнению буфера, в Microsoft знали задолго до появления вируса, а за месяц до эпидемии была опубликована заплатка. Впрочем, это не помешало запущенному 13 июля червю заразить за 6 следующих дней более 350 тысяч машин. Брешь в ISS позволяла легко выполнять на сервере удаленный код. Разработчики Code Red не сильно заморачивались и приделали эксплоит к простейшему сканеру, который работал «в лоб». Во время сканирования Code Red не проверял наличие IIS на новом компьютере-жертве, а тупо отправлял специально сформированные HTTP-запросы на сгенерированные случайно IP-адреса в надежде, что где-то на 80-порту окажется вожделенный IIS. Море запросов— огромный объем трафика. В итоге, оборудование попросту стало задыхаться от мусорных GET-запросов, которые генерировали ноды по всему мира. В логах Apache, на который, естественно, уязвимость IIS не распространялась, можно было обнаружить подобные строки:
GET /default.ida?NNNNNNNNNNNNNNNNNN
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNNNNNNNNNNNNN%u9090%u685
8%ucbd3%u7801%u9090%u6858%ucbd3%u7
801%u9090%u6858%ucbd3%u7801%u9090%
u9090%u8190%u00c3%u0003%u8b00%u531
b%u53ff%u0078%u0000%u00=a HTTP/1.0
В процессе работы Code Red не использовал никаких временных или постоянных файлов. Червь уникален: он существовал либо в системной памяти зараженных компьютеров, либо в виде TCP/IP-пакета при пересылке на удаленные машины. Но наличие заразы на сервере обнаруживалось без всякого антивируса. Поскольку в памяти компьютера могли существовать сразу сотни активных процессов Code Red, то тормоза и лаги были неизбежны. Червь заменял содержимое страниц на зараженных серверах на сообщение: «HELLO! Welcome to http://www.worm.com! Hacked By Chinese!», но был избирателен и дефейсил только те системы, где в качестве основного языка был установлен английский.Через некоторое время, правда, дефейс снимался автоматически: видимо, разработчики не хотели раньше времени терять драгоценную ноду.
Между 20 и 28 числами месяца тело червя должно было начать DoS-атаку на несколько IP-адресов, один из которых принадлежал американскому Белому дому.
В августе этого же года начал распространяться новый червь Code Red II, код которого, несмотря на схожее название, был создан заново и предоставлял владельцам полный контроль над зараженными машинами, копируя файл cmd.exe в каталог \inetpub\scripts\ ISS-сервера. В отличие от оригинального Code Red, клон старался атаковать хосты в той же подсети и не допускал одновременного запуска себя на одной системе.

Code Red дефейсил системы с английской локалью

Nimda

Запустившегося в сентябре 2001 года червя ну никак не могли не связать с деятельностью Алькайды, заодно рассказывая о мощных технологиях, применяемых в новой заразе. Но если присказки о терроризме были выдумкой журналистов, то очевидная продвинутость нового червя была на лицо. Фишка Nimda заключалась сразу в нескольких каналах распространения, благодаря которым ему удалось в считанные минуты распространиться по Сети. Разберемся по порядку.
1. Наибольший пробив был получен за счет эксплоита, который использовал уязвимость в Internet Explore’е, позволяющую автоматически запускать приаттаченный к письму файл. Прикрепленный к письму README.EXE (написаный, кстати, на С++) беспрепятственно запускался на машине при простом открытия письма, и комфортно начинал свое распространение. Причем, для поиска новых адресатов вирус кропотливо сканировал текстовые документы на жестком диске, а также запрашивал с помощью специальной MAPI-функции список адресатов с сервера Microsoft Exchange.
2. Другой способ распространения — расшаренные ресурсы в локалке. После сканирования всех доступных шар Nimda создавал там файлы с почтовыми сообщениями, имеющие расширение .EML и .NWS.Открытие таких файлов происходит в почтовой программе, что автоматически влекло за собой заражение, как если бы письмо просто пришло по почте.
3. Не могли забыть создатели и про дырявый IIS, уязвимость в котором уже использовали другие черви. Поэтому Nimda довольно эффективно пробивал майкросовский веб-демон с помощью уязвимости directory traversal. В случае заражения веб-сервера на нем случайным образом выбирались странички, откуда начиналась загрузка вируса посетителям.
4. И еще интересный ход — Nimda не стеснялся и активно использовал для распространения бекдоры, оставленные в системах червями Code Red II и sadmind/IIS.
Добавим, что Nimda имел опасный побочный эффект, который мог допустить утечку конфиденциальной информации с зараженных компьютеров. Червь добавлял пользователя под именем «Guest» в группу пользователей «Администраторы». Таким образом, обычные гости получали полный доступ к ресурсам компьютера. Более того, все локальные диски открывались через шары для полного доступа.
Автор этого вируса официально не найден, но в теле червя содержится строка, указывающая, что создатель из Китая: «Concept Virus(CV) V.5, Copyright(C)2001 R.P.China»

разные способы заражения червя Nimda

Slammer

Незадачливые жители стран Северной Америки были сильно удивлены, когда 25 января многие банкоматы попросту перестали работать. Во всем мире со сбоями работали службы по заказу и резервированию авиабилетов, многие сервисы вообще не были доступны. Но набивший оскомину финансовый кризис тут вовсе не причем — это лишь всплеск активности червя Slammer. Активность впервые замечена в 12:30 по среднеатлантическому времени, а к 12:33 количество зараженных машин удваивалось каждые 8.5 секунд.
В основе червя лежала уязвимость в Microsoft SQL Server, концепция которой была представлена David Litchfield на конференции BlackHat. Отправляя на 1434 скомпрометированный пакет, вирус мог выполнить на удаленной машине произвольный код и, в свою очередь, продолжить распространение. По различным отчетам сообщается, что вирусу удалось заразить 75.000 машин за каких-то десять минут, — но как? Уязвимый модуль IIS, позволяющий приложениям автоматически обращаться к нужной базе данных, принимал запросы как раз по UDP, а тело вируса, составляющее всего 376 байт, отлично помещалось в один единственный UDP-пакет. В результате Slammer не использовал тормозной TCP, требующий постоянных квитков-подтверждений, а рассылал себя по ненадежному UDP со скоростью несколько десятков запросов в секунду! Несмотря на то, что патч для уязвимости был выпущен за 6 месяцев до эпидемии, а вирус никак не проявлял себя на зараженной машине, последствия от Slammer’а были колоссальными. Роутеры и маршрутизаторы на магистралях были настолько перегружены трафиком, что лавинообразно выбивали другу друга в конце концов отключив некоторые бэкбоны. Южная Корея была полностью отрублена от инета и находилась в таком состоянии почти 24 часа. Только представь: никакого интернета и мобильной связи с внешним миром для 27 миллионов человек. Забавно, что многие жертвы даже не знали, что на их машине установлена такая специфическая вещь, как SQL.

сетевая активность Slammer'a

Sasser

Уж что-что, а окошко System Shutdown, инициированное NT AUTHORITY\SYSTEM с обратным отсчетом и сообщением о принудительной перезагрузке компьютера видел почти каждый — годом ранее, во время эпидемии Blaster’а, либо же в 2004, когда стал бушевать во многом похожий на него Sasser. Принципиальная разница червей в том, что они используют критические уязвимости в разных службах. Для размножения Sasser использует баг переполнения буфера в службе Local Security Authority Subsystem Service (LSAS) — отсюда и название червя. Написанное на С++ тело Sasser в первоначальной версии открывает 128 параллельных потоков, и, используя специальный алгоритм по генерации IP-адресов, пытается найти системы с незащищенным 445 портом и уязвимым сервисом. Сплоит работал на «ура», правда, приводил к ошибке на системе пользователя. Sasser открывал на 9997 порту шелл, через который далее и заливалось все необходимое. Само тело червя без лишнего геморроя просто передавалось по протоколу через FTP, причем сервер также открывался на зараженных компьютерах на 5554 порту. Как часто бывает, шелл-код сплоита отличается от системы к системе, поэтому Sasser предварительно проверял версии удаленной системы, чтобы выбрать правильный набор параметров для атаки.
Оригинальная версия червя Sasser распространялась достаточно медленно, но через несколько дней в Сети были выпущены модификации, распространяющиеся гораздо быстрее. К этому моменту число зараженных машин измерялось сотнями тысяч, а в пике эпидемии речь шла о миллионах. В Финляндии были отменены рейсы местной авиакомпании, во многих странах закрыты некоторые отделения крупнейших банков. Автором заразы оказался 18-летний немецкий студент Свен Яшан, хотя изначально разрабатывался «русский след». Юного вредителя заложил кто-то из своих, позарившись на обещанное Microsoft’ом награждение в 250.000 баксов. Помимо Sasser, на компьютере парнишки нашли еще и многочисленные модификации червя Netsky.

ошибка системы после заражения Sasser'om

Sony rootkit

Забавный факт: это единственный руткит, который распространялся легально! Win32/Rootkit.XCP, или «sony rootkit», является частью системы защиты аудио-CD,выпускаемых Sony BMG. Растроенная всепоглощающим пиратством компания решила бороться с нелегальным копированием с помощью DRM-компонентов (Digital Rights Management), а в попытке скрыть их присутствие в системе обратилась в компанию First 4 Internet, чтобы те написали маскирующий руткит. В итоге, система защиты дисков вместе с руткитом стала инсталлироваться на компьютер пользователя автоматически, когда в привод вставляется защищенный компакт диск. После установки, в системе появлялись два новых сервиса, которые и выполняли все функции. Установленный драйвер $sys$aries (aries.sys) скрывает все файлы и ключи в реестре, которые начинаются с «$sys$» посредством перехвата нативных API-функций. Win32/Rootkit.XCP отслеживает обращения к System Service Table (SST) и перехватывает обращения к функциям: NtCreateFile, NtEnumerateKey, NtOpenKey, NtQueryDirectoryFile, NtQuerySystemInformation. В результате удается скрыть присутствие ключей в реестре, папок, файлов и процессов.
Ты спросишь: а в чем, собственно, трабл? Ну, скрывает этот руткит работу нужных ему компонентов, что с того? Очень просто. Сразу после появления руткита, Марк Руссинович в своем блоге рассказал о многочисленных брешах в собственной защите программы. И был прав: очень скоро механизм, предназначенный для сокрытия файлов и процессов, быстро приспособили для своих нужд кодеры вирусов. Более того, распространение этого ноу-хао само по себе приводило к нестабильности системы, зависанию компьютера и потере данных из-за кривых драйверов, установленных в систему. И даже тогда, когда Sony выпустила специальную тулзу, избавиться от это дряни полностью было очень и очень затруднительно.

BSOD из-за корявых драйверов Sony rootkit

Warezov

На дворе — 2006 год, только вот ушастые пользователи по-прежнему открывают все вложения в письмах, а программно им мало кто запрещает это делать. Результат? Огромный ботнет Warezov (он же Stration), который авторы сумели собрать за счет одноименного червя, рассылаемого по email. Никаких сплоитов и уязвимостей, — социальная инженерия и людская тупость. И ведь повсю трубят: «Не открывай вложений» — так ведь все равно кликают. Особенность червя Warezov — в огромном количестве вариаций, которые появлялись, как грибы после дождя. Был момент, когда новые модификации появлялись чуть ли не раз в 30 минут. Даже с обновленными антивирусными базами многие юзеры оставались не у дел. Впоследствии, когда на веб-серверах глобально начали вычищать все письма со зловредными аттачами, модификации перекинулись на IM-сети. А один из вариантов Warezov стал первым червем, который распространялся через Skype!
Как и подобает трою для ботнета, тело Warezov позволяло владельцам загрузить на компьютер любую заразу. Червь содержит в себе список жестко прописанных URL-адресов (что, конечно, минус), которые он проверяет на наличие файлов. В случае если по какому-либо из этих адресов будет размещен файл, он загрузится в систему и запустится. Основной модуль Warezov способен завершать различные процессы, а также останавливать и удалять службы антивирусных программ и персональных брандмауэров. Для организации рассылки червь использует собственный SMTP-сервер. Главное использование ботнета — это, конечно же, спам. Однако многие ноды служили для хостинга так называемых fast-flux платформ, позволяя спамерам прятать настоящее расположение их спамерских сайтов за IP-адресом жертвы. IP менялся настолько часто, что его невозможно было прикрыть. Warezov достигал этого двумя средствами: во-первых, reverse HTTP proxy, которая получала контент с настоящего (скрываемого) сайта, а также DNS-сервера, на котором специальная версия Bind под Windows меняла записи по нужному алгоритму.

временный файл Warezov

Storm

Ботнет, созданный с помощью червя Storm, можно смело назвать произведением искуства. Децентрализованная P2P-сеть, в которой большинство хостов сидит тихо и ждет указаний. Доменные имена разрешаются в постоянно меняющиеся IP-адреса (опять же fast-flux domains). Часть кода червя — полиморфная. В пике — более миллиона инфицированных хостов. Как это удалось?
Эпидемия червя началась с компьютеров в Европе и Соединенных Штатах 19 января 2008 года, когда, прикрываясь темой урагана в Европе, пользователям повалились письма с предложением открыть вложенный файл с названиями Full Clip.exe, Full Story.exe, Read More.exe или Video.exe.
Все попавшиеся на удочку машины автоматически объединялись в ботнет, но в отличие от других сетей, он не использовал специальный управляющий сервер, доступ к которому легко перекрыть. Принцип управления Storm больше напоминает пиринговую сеть, в которой зараженные ноды подключаются к своему управляющему хосту (он руководит обычно 30-45 зомби), а хосты взаимодействуют между друг другом. Причем роль хоста в случае необходимости может занять любая из нод. Вся сеть устроена так, что полного списка нодов нет ни у кого, поэтому точные размеры ботнета так и остались загадкой. По разным подсчетам, он варьировался от одного до нескольких миллионов машин.
Помимо функций по работе с ботнетом, Storm устанавливает в системе руткит: Win32.agent.dh, посредством которого держатели ботнета могли стащить любую конфиденциальную инфу, рассылать спам и устраивать мощные DDoS-атаки.

техника fast-flux в картинках

Merboot

Загрузочные вирусы, о которых все благополучно успели забыть, возвращаются. В 2005 году на хакерской конференции Black Hat специалисты eEye Digital Security продемонстрировали концепт так называемого буткита, размещающего в загрузочном секторе диска код, который перехватывает загрузку ядра Windows и запускает бэкдор с возможностью удаленного управления по локальной сети. Презентация прошла на ура, а в 2008 году, после длительного затишья в области руткитов, выстрелил Mebroot. Новый троян использовал представленную еще в 2005 году идею и размещал свое тело в бут-секторе диска, после чего вносил модификации в ядро Винды, которые затрудняли обнаружение вредоносного кода антивирусами. Подцепить заразу мог кто угодно: компы заражались через свежие сплоиты с популярных сайтов. Вредоносный код сначала изменяет MBR (главная загрузочная запись), записывает руткит-части в сектора диска, извлекает из себя и устанавливает бэкдор в Windows, после чего самоудаляется. В результате заражения, в MBR размещаются инструкции, передающие управление основной части руткита, размещенного в разных секторах жесткого диска. Именно эта часть, уже после загрузки системы, перехватывает API-функции и скрывает зараженный MBR. Кроме традиционных функций по сокрытию своего присутствия в системе, вредоносный код устанавливает в Windows бэкдор, который занимается кражей банковских аккаунтов.

с Merboot'om до сих пор справляются далеко не все антивирусы

Downadup

Червя, нашумевшего в январе, называют по-разному: Downadup, Conficker, Kido. Важно одно: новой малваре за несколько дней удалось заразить миллионы компьютеров, и собранный ботнет функционирует до сих пор. Разработчикам удалось лихо диверсифицировать способы распространения, объединив в одном черве сразу несколько успешных методик. Самый эффективный способ — приватный сплоит, использующий непропатченную систему с уязвимостью переполнения буфера MS08-067 в сервисе «Сервер» (патч вышел еще в октябре). Для этого червь отсылает удаленной машине специальным образом сформированный RPC- запрос, вызывающий переполнение буфера при вызове функции wcscpy_s в библиотеке netapi32.dll. На компьютере запускается специальный код-загрузчик, который скачивает с уже зараженной машины исполняемый файл червя и запускает его.
Кроме этого, червь отлично тиражирует себя через «Сетевое окружение», перебирая пароль администратора к системной шаре ADMIN$. А давно известный способ распространения через флешки претерпел изменения: в результате обфускации Autorun.inf (разработчики просто добавили в файл кучу мусора) удалось обмануть многие сигнатурные антивирусы. Несколько способов = максимальный эффект! Другая ключевая особенность заключается в том, как червь скачивает на зараженную машину трояна (для дальнейшей рассылки вируса, DDoS’а и т.д.). Разработчики отказались от размещения файлов на каком-то жестко зафиксированном серваке. Вместо этого код червя получает на нескольких популярных ресурсах текущую дату и по ней генерирует список из 250 доменов, используя специальный алгоритм. Задача хозяев ботнета — заблаговременно эти домены зарегистрировать и разместить там файлы для загрузки. Противостоять этому не столько сложно, сколько дорого.
Перехватывая API-вызовы, отвечающие за обращение к DNS, заразе долгое время удавалось сдерживать антивирусы, которые банально не могли обновиться, обращаясь к заблокированным доменам, содержащим слова kaspersky, nod, symantec, microsoft и т.д.

разные способы распространения червя Downadup