THE BELL

Есть те, кто прочитали эту новость раньше вас.
Подпишитесь, чтобы получать статьи свежими.
Email
Имя
Фамилия
Как вы хотите читать The Bell
Без спама

Проблема эпидемии сетевых червей актуальна для любой локальной сети. Рано или поздно может возникнуть ситуация, когда в ЛВС проникает сетевой или почтовый червь, который не детектируется применяемым антивирусом. Сетевой вирус распространяется по ЛВС через не закрытые на момент заражения уязвимости операционной системы или через доступные для записи общие ресурсы. Почтовый вирус, как следует из названия, распространяется по электронной почте при условии, что он не блокируется клиентским антивирусом и антивирусом на почтовом сервере. Кроме того, эпидемия в ЛВС может быть организована изнутри в результате деятельности инсайдера. В данной статье мы рассмотрим практические методики оперативного анализа компьютеров ЛВС с применением различных средств, в частности с помощью авторской утилиты AVZ.

Постановка задачи

В случае обнаружения эпидемии или некой нештатной активности в сети администратор должен оперативно решить минимум три задачи:

  • обнаружить зараженные ПК в сети;
  • найти образцы вредоносной программы для отправки в антивирусную лабораторию и выработки стратегии противодействия;
  • принять меры для блокирования распространения вируса в ЛВС и его уничтожения на зараженных компьютерах.

В случае деятельности инсайдера основные шаги анализа идентичны и чаще всего сводятся к необходимости обнаружения установленного инсайдером постороннего ПО на компьютерах ЛВС. В качестве примера такого ПО можно назвать утилиты удаленного администрирования, клавиатурные шпионы и различные троянские закладки.

Рассмотрим более подробно решение каждой из поставленных задач.

Поиск зараженных ПК

Для поиска зараженных ПК в сети можно применять как минимум три методики:

  • автоматический удаленный анализ ПК - получение информации о запущенных процессах, загруженных библиотеках и драйверах, поиск характерных закономерностей - например процессов или файлов с заданными именами;
  • исследование трафика ПК с помощью сниффера - данный метод очень эффективен для отлова спам-ботов, почтовых и сетевых червей, однако основная сложность в применении сниффера связана с тем, что современная ЛВС строится на базе коммутаторов и, как следствие, администратор не может осуществлять мониторинг трафика всей сети. Проблема решается двумя путями: запуском сниффера на маршрутизаторе (что позволяет осуществлять мониторинг обмена данными ПК с Интернетом) и применением мониторинговых функций коммутаторов (многие современные коммутаторы позволяют назначить порт мониторинга, на который дублируется трафик одного или нескольких портов коммутатора, указанных администратором);
  • исследование нагрузки на сеть - в данном случае очень удобно применять интеллектуальные коммутаторы, которые позволяют не только оценивать нагрузку, но и удаленно отключать указанные администратором порты. Данная операция существенно упрощается при наличии у администратора карты сети, на которой имеются данные о том, какие ПК подключены к соответствующим портам коммутатора и где они расположены;
  • применение ловушек (honeypot) - в локальной сети настоятельно рекомендуется создать несколько ловушек, которые позволят администратору своевременно обнаружить эпидемию.

Автоматический анализ ПК в сети

Автоматический анализ ПК можно свести к трем основным этапам:

  • проведение полного исследования ПК - запущенные процессы, загруженные библиотеки и драйверы, автозапуск;
  • проведение оперативного обследования - например поиск характерных процессов или файлов;
  • карантин объектов по определенным критериям.

Все перечисленные задачи можно решить при помощи авторской утилиты AVZ, которая рассчитана на запуск из сетевой папки на сервере и поддерживает скриптовый язык для автоматического обследования ПК. Для запуска AVZ на компьютерах пользователей необходимо:

  1. Поместить AVZ в открытую для чтения сетевую папку на сервере.
  2. Создать в этой папке подкаталоги LOG и Qurantine и разрешить пользователям запись в них.
  3. Запустить AVZ на компьютерах ЛВС при помощи утилиты rexec или логон-скрипта.

Запуск AVZ на шаге 3 должен производиться при таких параметрах:

\\my_server\AVZ\avz.exe Priority=-1 nw=Y nq=Y HiddenMode=2 Script=\\my_server\AVZ\my_script.txt

В данном случае параметр Priority=-1 понижает приоритет процесса AVZ, параметры nw=Y и nq=Y переключают карантин в режим «сетевой запуск» (в этом случае в папке карантина для каждого компьютера создается подкаталог, имя которого совпадает с сетевым именем ПК), HiddenMode=2 предписывает запретить пользователю доступ к GUI и управлению AVZ, и, наконец, самый важный параметр Script задает полное имя скрипта с командами, которые AVZ выполнит на компьютере пользователя. Скриптовый язык AVZ достаточно прост для использования и ориентирован исключительно на решение задач обследования компьютера и его лечения. Для упрощения процесса написания скриптов можно использовать специализированный редактор скриптов, который содержит оперативную подсказку, мастер создания типовых скриптов и средства проверки корректности написанного скрипта без его запуска (рис. 1).

Рис. 1. Редактор скриптов AVZ

Рассмотрим три типовых скрипта, которые могут пригодиться в ходе борьбы с эпидемией. Во-первых, нам потребуется скрипт для исследования ПК. Задача скрипта - произвести исследование системы и создать протокол с результатами в заданной сетевой папке. Скрипт имеет следующий вид:

ActivateWatchDog(60 * 10);

// Запуск сканирования и анализа

// Исследование системы

ExecuteSysCheck(GetAVZDirectory+

‘\LOG\’+GetComputerName+’_log.htm’);

//Завершение работы AVZ

В ходе выполнения данного скрипта в папке LOG (предполагается, что она создана в каталоге AVZ на сервере и доступна пользователям для записи) будут создаваться HTML-файлы с результатами исследования компьютеров сети, причем для обеспечения уникальности в имя протокола включается имя исследуемого компьютера. В начале скрипта располагается команда включения сторожевого таймера, который принудительно завершит процеcc AVZ через 10 минут в случае, если в ходе выполнения скрипта возникнут сбои.

Протокол AVZ удобен для изучения вручную, однако для автоматизированного анализа он мало пригоден. Кроме того, администратору часто известно имя файла вредоносной программы и требуется только проверить наличие или отсутствие данного файла, а при наличии - поместить в карантин для анализа. В этом случае можно применить скрипт следующего вида:

// Включение сторожевого таймера на 10 минут

ActivateWatchDog(60 * 10);

// Поиск вредоносной программы по имени

QuarantineFile(‘%WinDir%\smss.exe’, ‘Подозрение на LdPinch.gen’);

QuarantineFile(‘%WinDir%\csrss.exe’, ‘Подозрение на LdPinch.gen’);

//Завершение работы AVZ

В этом скрипте задействуется функция QuarantineFile, которая совершает попытку карантина указанных файлов. Администратору остается только проанализировать содержимое карантина (папка Quarantine\сетевое_имя_ПК\дата_каратина\) на наличие помещенных в карантин файлов. Следует учесть, что функция QuarantineFile автоматически блокирует помещение в карантин файлов, опознанных по базе безопасных AVZ или по базе ЭЦП Microsoft. Для практического применения данный скрипт можно усовершенствовать - организовать загрузку имен файлов из внешнего текстового файла, проверять найденные файлы по базам AVZ и формировать текстовый протокол с результатами работы:

// Поиск файла с указанным именем

function CheckByName(Fname: string) : boolean;

Result:= FileExists(FName) ;

if Result then begin

case CheckFile(FName) of

1: S:= ‘, доступ к файлу блокируется’;

1: S:= ‘, опознан как Malware (‘+GetLastCheckTxt+’)’;

2: S:= ‘, подозревается файловым сканером (‘+GetLastCheckTxt+’)’;

3: exit; // Безопасные файлы игнорируем

AddToLog(‘Файл ‘+NormalFileName(FName)+’ имеет подозрительное имя’+S);

//Добавление указанного файла в карантин

QuarantineFile(FName,’подозрительный файл’+S);

SuspNames: TStringList; // Список имен подозрительных файлов

// Проверка файлов по обновляемой базе данных

if FileExists(GetAVZDirectory + ‘files.db’) then begin

SuspNames:= TStringList.Create;

SuspNames.LoadFromFile(‘files.db’);

AddToLog(‘База имен загружена - количество записей = ‘+inttostr(SuspNames.Count));

// Цикл поиска

for i:= 0 to SuspNames.Count - 1 do

CheckByName(SuspNames[i]);

AddToLog(‘Ошибка загрузки списка имен файлов’);

SaveLog(GetAVZDirectory+’\LOG\’+

GetComputerName+’_files.txt’);

Для работы данного скрипта необходимо создать в папке AVZ доступные пользователям для записи каталоги Quarantine и LOG, а также текстовый файл files.db - каждая строка данного файла будет содержать имя подозрительного файла. Имена файлов могут включать макросы, наиболее полезные из которых - %WinDir% (путь к папке Windows) и %SystemRoot% (путь к папке System32). Другим направлением анализа может стать автоматическое исследование списка процессов, запущенных на компьютерах пользователей. Информация о запущенных процессах есть в протоколе исследования системы, но для автоматического анализа удобнее применять следующий фрагмент скрипта:

procedure ScanProcess;

S:= ‘’; S1:= ‘’;

// Обновление списка процессов

RefreshProcessList;

AddToLog(‘Количество процессов = ‘+IntToStr(GetProcessCount));

// Цикл анализа полученного списка

for i:= 0 to GetProcessCount - 1 do begin

S1:= S1 + ‘,’ + ExtractFileName(GetProcessName(i));

// Поиск процесса по имени

if pos(‘trojan.exe’, LowerCase(GetProcessName(i))) > 0 then

S:= S + GetProcessName(i)+’,’;

if S <> ‘’ then

AddLineToTxtFile(GetAVZDirectory+’\LOG\_alarm.txt’, DateTimeToStr(Now)+’ ‘+GetComputerName+’ : ‘+S);

AddLineToTxtFile(GetAVZDirectory+’\LOG\_all_process.txt’, DateTimeToStr(Now)+’ ‘+GetComputerName+’ : ‘+S1);

Исследование процессов в данном скрипте выполнено в виде отдельной процедуры ScanProcess, поэтому ее несложно поместить в собственный скрипт. Процедура ScanProcess строит два списка процессов: полный список процессов (для последующего анализа) и список процессов, которые, с точки зрения администратора, считаются опасными. В данном случае для демонстрации в качестве опасного рассматривается процесс с именем ‘trojan.exe’. Информация об опасных процессах добавляется в текстовый файл _alarm.txt, данные обо всех процессах - в файл _all_process.txt. Легко заметить, что можно усложнить скрипт, добавив в него, к примеру, проверку файлов процессов по базе безопасных файлов или проверку имен исполняемых файлов процессов по внешней базе. Подобная процедура применяется в скриптах AVZ, используемых в «Смоленскэнерго»: администратор периодически изучает собранную информацию и модифицирует скрипт, добавляя в него имя процессов запрещенных по политике безопасности программ, например ICQ и MailRu.Agent, что позволяет оперативно проверить наличие запрещенного ПО на изучаемых ПК. Другое применение списка процессов - поиск ПК, на которых отсутствует обязательный процесс, например антивирус.

В завершение рассмотрим последний из полезных скриптов анализа - скрипт автоматического карантина всех файлов, которые не опознаются по базе безопасных AVZ и по базе ЭЦП Microsoft:

// Выполнение автокарантина

ExecuteAutoQuarantine;

Автоматический карантин изучает запущенные процессы и загруженные библиотеки, службы и драйверы, около 45 способов автозапуска, модули расширения браузера и проводника, обработчики SPI/LSP, задания планировщика, обработчики системы печати и т.п. Особенностью карантина является то, что файлы в него добавляются с контролем повторов, поэтому функцию автокарантина можно вызывать многократно.

Достоинство автоматического карантина заключается в том, что с его помощью администратор может оперативно собрать потенциально подозрительные файлы со всех компьютеров сети для их изучения. Простейшей (но весьма эффективной на практике) формой изучения файлов может быть проверка полученного карантина несколькими популярными антивирусами в режиме максимальной эвристики. Следует отметить, что одновременный запуск автокарантина на нескольких сотнях компьютеров может создать высокую нагрузку на сеть и на файловый сервер.

Исследование трафика

Исследование трафика можно проводить тремя способами:

  • вручную при помощи снифферов;
  • в полуавтоматическом режиме - в данном случае сниффер собирает информацию, и затем его протоколы обрабатываются либо вручную, либо некоторым ПО;
  • автоматически при помощи систем обнаружения вторжений (IDS) типа Snort (http://www.snort.org/) либо их программных или аппаратных аналогов. В простейшем случае IDS состоит из сниффера и системы, анализирующей собираемую сниффером информацию.

Система обнаружения вторжений является оптимальным средством, так как позволяет создавать наборы правил для обнаружения аномалии в сетевой активности. Второе ее преимущество состоит в следующем: большинство современных IDS позволяют размещать агенты мониторинга трафика на нескольких узлах сети - агенты собирают информацию и передают ее. В случае же применения сниффера очень удобно пользоваться консольным UNIX-сниффером tcpdump. Например, для мониторинга активности по порту 25 (протокол SMTP) достаточно запустить сниффер с командной строкой вида:

tcpdump -i em0 -l tcp port 25 > smtp_log.txt

В данном случае ведется захват пакетов через интерфейс em0; информация о захваченных пакетах будет сохраняться в файле smtp_log.txt. Протокол сравнительно просто анализировать вручную, в данном примере анализ активности по порту 25 позволяет вычислить ПК с активными спам-ботами.

Применение Honeypot

В качестве ловушки (Honeypot) можно использовать устаревший компьютер, производительность которого не позволяет применять его для решения производственных задач. Например, в сети автора в качестве ловушки успешно применяется Pentium Pro c 64 Мбайт оперативной памяти. На этот ПК следует установить наиболее распространенную в ЛВС операционную систему и выбрать одну из стратегий:

  • Установить операционную систему без пакетов обновлений - она будет индикатором появления в сети активного сетевого червя, эксплуатирующего любую из известных уязвимостей для данной операционной системы;
  • установить операционную систему с обновлениями, которые установлены на других ПК сети - Honeypot будет аналогом любой из рабочих станций.

Каждая из стратегий имеет как свои плюсы, так и минусы; автор в основном применяет вариант без обновлений. После создания Honeypot следует создать образ диска для быстрого восстановления системы после ее повреждения вредоносными программами. В качестве альтернативы образу диска можно использовать системы отката изменений типа ShadowUser и его аналогов. Построив Honeypot, следует учесть, что ряд сетевых червей ищут заражаемые компьютеры путем сканирования диапазона IP, отсчитываемого от IP-адреса зараженного ПК (распространенные типовые стратегии - X.X.X.*, X.X.X+1.*, X.X.X-1.*), - следовательно, в идеале Honeypot должен быть в каждой из подсетей. В качестве дополнительных элементов подготовки следует обязательно открыть доступ к нескольким папкам на Honeypot-системе, причем в данные папки следует положить несколько файлов-образцов различного формата, минимальный набор - EXE, JPG, MP3.

Естественно, что, создав Honeypot, администратор должен отслеживать его работу и реагировать на любые аномалии, обнаруженные на данном компьютере. В качестве средств регистрации изменений можно применять ревизоры, для регистрации сетевой активности можно использовать сниффер. Важным моментом является то, что у большинства снифферов предусмотрена возможность настройки отправки оповещения администратору в случае обнаружения заданной сетевой активности. Например, в сниффере CommView правило предполагает указание «формулы», описывающей сетевой пакет, или задание количественных критериев (отправка более заданного количества пакетов или байт в секунду, отправка пакетов на неопознанные IP- или MAC-адреса) - рис. 2.

Рис. 2. Создание и настройка предупреждения о сетевой активности

В качестве предупреждения удобнее всего использовать сообщения электронной почты, отправляемые на почтовый ящик администратора, - в этом случае можно получать оперативные оповещения от всех ловушек в сети. Кроме того, если сниффер позволяет создавать несколько предупреждений, есть смысл дифференцировать сетевую активность, выделив работу с электронной почтой, FTP/HTTP, TFTP, Telnet, MS Net, повышенный трафик более 20-30 пакетов в секунду по любому протоколу (рис. 3).

Рис. 3. Письмо-оповещение, высылаемое
в случае обнаружения пакетов, соответствующих заданным критериям

При организации ловушки неплохо разместить на ней несколько применяемых в сети уязвимых сетевых служб или установить их эмулятор. Простейшим (и бесплатным) является авторская утилита APS, работающая без инсталляции. Принцип работы APS сводится к прослушиванию множества описанных в ее базе портов TCP и UDP и выдаче в момент подключения заранее заданного или случайно генерируемого отклика (рис. 4).

Рис. 4. Главное окно утилиты APS

На рисунке приведен скриншот, снятый во время реального срабатывания APS в ЛВС «Смоленскэнерго». Как видно на рисунке, зафиксирована попытка подключения одного из клиентских компьютеров по порту 21. Анализ протоколов показал, что попытки периодические, фиксируются несколькими ловушками в сети, что позволяет сделать вывод о сканировании сети с целью поиска и взлома FTP-серверов путем подбора паролей. APS ведет протоколы и может отправлять администраторам сообщения с отчетами о зарегистрированных подключениях к контролируемым портам, что удобно для оперативного обнаружения сканирования сети.

При создании Honeypot полезно также ознакомиться с онлайн-ресурсами по данной теме, в частности с сайтом http://www.honeynet.org/. В разделе Tools данного сайта (http://www.honeynet.org/tools/index.html) можно найти ряд инструментов для регистрации и анализа атак.

Дистанционное удаление вредоносных программ

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

  • по ряду независимых от администратора сети причин образы могут не дойти до антивирусной лаборатории;
  • недостаточная оперативность антивирусной лаборатории - в идеале на изучение образцов и их внесение в базы уходит не более 1-2 часов, то есть в пределах рабочего дня можно получить обновленные сигнатурные базы. Однако не все антивирусные лаборатории работают столь оперативно, и обновления можно ждать несколько дней (в редких случаях - даже недель);
  • высокая работоспособность антивируса - ряд вредоносных программ после активации уничтожают антивирусы или всячески нарушают их работу. Классические примеры - внесение в файл hosts записей, блокирующих нормальную работу системы автообновления антивируса, удаление процессов, службы и драйверов антивирусов, повреждение их настроек и т.п.

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

// Удаление файла

DeleteFile(‘имя файла’);

ExecuteSysClean;

Данный скрипт удаляет один заданный файл (или несколько файлов, так как команд DeleteFile в скрипте может быть неограниченное количество) и затем производит автоматическую чистку реестра. В более сложном случае вредоносная программа может защищаться от удаления (например, пересоздавая свои файлы и ключи реестра) или маскироваться по руткит-технологии. В этом случае скрипт усложняется и будет иметь следующий вид:

// Антируткит

SearchRootkit(true, true);

// Управление AVZGuard

SetAVZGuardStatus(true);

// Удаление файла

DeleteFile(‘имя файла’);

// Включение протоколирования BootCleaner

BC_LogFile(GetAVZDirectory + ‘boot_clr.log’);

// Импорт в задание BootCleaner списка файлов, удаленных скриптом

BC_ImportDeletedList;

// Активация BootCleaner

// Эвристическая чистка системы

ExecuteSysClean;

RebootWindows(true);

Данный скрипт включает активное противодействие руткитам, применение системы AVZGuard (это блокиратор активности вредоносных программ) и системы BootCleaner. BootCleaner - это драйвер, выполняющий удаление заданных объектов из KernelMode в ходе перезагрузки, на ранней стадии загрузки системы. Практика показывает, что подобный скрипт в состоянии уничтожить подавляющее большинство существующих вредоносных программ. Исключение составляют malware, меняющие имена своих исполняемых файлов при каждой перезагрузке, - в данном случае обнаруженные в ходе исследования системы файлы могут быть переименованы. В этом случае потребуется лечение компьютера вручную или создание собственных сигнатур вредоносной программы (пример реализующего сигнатурный поиск скрипта описан в справке AVZ).

Заключение

В данной статье мы рассмотрели некоторые практические методики борьбы с эпидемией ЛВС вручную, без использования антивирусных продуктов. Большинство описанных методик также могут применяться для поиска постороннего ПК и троянских закладок на компьютерах пользователей. При возникновении затруднений с поиском вредоносных программ или созданием скриптов лечения администратор может воспользоваться разделом «Помогите» форума http://virusinfo.info или разделом «Борьба с вирусами» форума http://forum.kaspersky.com/index.php?showforum=18. Изучение протоколов и помощь в лечении осуществляются на обоих форумах бесплатно, анализ ПК ведется по протоколам AVZ, и в большинстве случаев лечение сводится к выполнению на зараженных ПК скрипта AVZ, составленного опытными специалистами данных форумов.

Ботнет или сеть ботов - это компьютерная сеть, состоящая из большого количества компьютеров, на которых скрытно установлено вредоносное ПО, позволяющее злоумышленникам удаленно выполнять любые действия с использованием вычислительных ресурсов зараженных машин. Сотни или даже тысячи зараженных компьютеров, как правило, используются для нелегальной и вредоносной деятельности - рассылки спама, вирусов, похищения личных данных или проведения DDoS-атак. На сегодняшний день ботнеты считаются одной из самых серьезных киберугроз.

Как появляются ботнеты?

Для того, чтобы ваш компьютер стал частью ботнета, он должен быть инфицирован специализированным вредоносным ПО, которое поддерживает контакт с удаленным сервером или с иным зараженным устройством, получая, таким образом, инструкции к действиям от злоумышленников, контролирующих данный ботнет. Кроме внушительных масштабов заражения, вредоносное ПО, используемое в целях создания ботнетов, по существу мало чем отличается от традиционных вредоносных программ.

Как распознать ботнет?

Обнаружить типичное для ботнета вредоносное ПО можно тем же самым способом, что и в случае со всеми иными вредоносными программами. Косвенными признаками могут быть медленная работа, странные действия, сообщения об ошибках или внезапный запуск вентилятора охлаждения во время того, как компьютер находится в режиме ожидания. Это возможные симптомы того, что кто-то удаленно использует ваш компьютер, ставший частью разветвленного ботнета.

Как удалить ПК из ботнета?

Доя того, чтобы удалить свой ПК из ботнета, необходимо удалить вредоносное ПО, с помощью которого злоумышленники осуществляют удаленный контроль за ним. Самым эффективным способом является антивирусное сканирование системы вашего компьютера, которое поможет обнаружить вредоносную программу и отстранить ее с компьютера.

Как избежать заражения вредоносным ПО, характерным для ботнета:
  • Установите качественное антивирусное решение на свой компьютер
  • Настройте автоматическое обновление всех сторонних программ
  • Будьте предельно осторожны при переходе по ссылкам, загрузке программ и открытии файлов
Иные способы защиты от риска стать частью ботнета:

Чтобы обезопасить свой компьютер от риска стать одним из ‘зомби’ в армии ботнета, старайтесь избегать любых подозрительных загрузок. Не переходите по ссылкам и не открывайте вложенных файлов из писем, отправители которых вам неизвестны, и будьте предельно внимательны при установке стороннего ПО на свой компьютер. Поддерживайте стороннее ПО обновленным и устанавливайте все самые свежие обновления операционной системы. Однако самое важное - это использование современной и качественной антивирусной защиты, например, антивируса Avast, который обеспечит надежную защиту компьютера от всех типов вредоносного ПО и поможет избежать инфицирования вашего компьютера и включения его в ботнет.

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

О ботнетах говорят, когда компьютеры рядовых пользователей попадают под управление серверов C&C (command and control), которые собирают данные и, как правило, отправляют команды на компьютеры-зомби. Не всегда, однако, такой сервер необходим. В случае P2P-ботнета используется взаимная связь между компьютерами-зомби.

Наиболее частые симптомы заражения компьютера

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

Сюда относятся:

  • внезапное, ничем необъяснимое замедление работы компьютера , повторяющееся поведение;
  • чрезмерная активность дисков и сетевого соединения;
  • внезапное изменение поведения известных сайтов;
  • постоянно появляющиеся всплывающие окна, независимо от того, какой сайт мы просматриваем;
  • усиленная активность пакета защиты - в том числе сигналы о странных соединениях;
  • сообщения о недоставленных сообщениях электронной почты, а также уведомления от друзей, что мы посылаем им спам;
  • проблемы с запуском компьютера, частые зависания компьютера, сообщения об ошибках;
  • дополнительные программные расширения браузера и файлы, появляющиеся и исчезающие с диска;
  • неизвестные нам программы, которые появляются в диспетчере задач, а также расширения браузера , которые вы не устанавливали.

Описанные выше симптомы указывают на повышенный риск, но это ещё не означает, что наш компьютер заражен.

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

Первая линия обороны - антивирус

Превращение компьютера в «зомби» связано с инфицированием вредоносной программой. Поэтому сначала просканируйте компьютер антивирусом. Он должен быть обновлен, а сканирование должно охватить весь компьютер, а не только системные файлы и профиль пользователя.

Сканирование компьютера с помощью антивирусной системы - это половина успеха. Часть вредоносных программ, ответственных за превращение компьютера в зомби, может быть скрыта с помощью руткитов.

Чтобы выявить наличие такого программного обеспечения, вы должны проверить ваш компьютер с помощью опции «Сканирование на руткиты».

Вторая линия защиты - брандмауэр

Брандмауэр используется не только для защиты от вторжений. Его можно использовать для блокировки интернет-трафика по нашему усмотрению.

В первую очередь, когда мы думаем, что наш компьютер зомбирован, но антивирус ничего не обнаружил, стоит уделить немного времени на анализ его поведения. Уровень защиты в Брандмауэре следует установить на максимум, а также включить Интерактивный режим , чтобы любые попытки соединения были выявлены.

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

Сетевая активность также контролируется и записывается в логи, которые можно потом спокойно просмотреть. По мере того, как мы будем исключать неправильно работающие процессы, комфорт использования компьютера вернется к исходному состоянию.

Нагрузка на компьютер - вы можете этого не заметить

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

  • Системный Диспетчер задач - в последних версиях Windows он позволяет контролировать запущенные приложения, а также предоставляет данные об использовании ресурсов компьютера.

После запуска Диспетчера мы можем:

  • просмотреть все активные процессы и выявить вызывающее их программное обеспечение;
  • проверить нагрузку на доступ в Интернет через любое приложение;
  • просмотреть список сервисов , особенно активно работающих, которые не связаны с операционной системой или программным обеспечением;
  • проверить использование ресурсов , в частности процессора, памяти.

Более подробная информация по использованию ресурсов, включая точную спецификацию активных сетевых подключений, отображается в Мониторе ресурсов Windows . Его можно открыть, нажав на «Открыть монитор ресурсов» на вкладке «Быстродействие» в Диспетчере задач.

Также стоит обратить внимание на следующие программы:

  • Sysinternals Suite - это популярный пакет приложений для мониторинга системы может заменить системные утилиты, а благодаря удобному интерфейсу и расшифровке необходимой информации будет намного проще. В этом пакете Вы найдете:
    • TCPView - показывает список всех активных соединений вместе с адресами целевых компьютеров, позволяет идентифицировать их владельца (инструмент Whois);
    • Process Explorer - расширенная версия списка процессов Диспетчера задач, группирует задачи по приложениям, что позволяет оценить взаимозависимости между программным обеспечением;
    • ProcMon - контролирует всю активность жесткого диска, реестра и программного обеспечения, позволяет вести логи для последующего анализа.

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

Ботнеты существуют уже около 10 лет, и приблизительно столько же эксперты предупреждают о той опасности, которую они представляют. Тем не менее, проблема ботнетов по-прежнему остается недооцененной, и многие пользователи (до тех пор пока им не отключат Интернет, пока они не обнаружат исчезновение денег с кредитных карт или у них не украдут почтовый ящик или аккаунт IM) плохо понимают, в чем состоит реальная угроза зомби-сетей.

Что такое ботнет

Итак, прежде всего, давайте разберемся, что такое ботнет или зомби-сеть.

Ботнет – это сеть компьютеров, зараженных вредоносной программой поведения Backdoor. Backdoor’ы позволяют киберпреступникам удаленно управлять зараженными машинами (каждой в отдельности, частью компьютеров, входящих в сеть, или всей сетью целиком) без ведома пользователя. Такие программы называются ботами .

Ботнеты обладают мощными вычислительными ресурсами, являются грозным кибероружием и хорошим способом зарабатывания денег для злоумышленников. При этом зараженными машинами, входящими в сеть, хозяин ботнета может управлять откуда угодно: из другого города, страны или даже с другого континента, а организация Интернета позволяет делать это анонимно.

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

В любом случае хозяин зараженной машины, как правило, даже не подозревает о том, что она используется злоумышленниками. Именно поэтому зараженные вредоносной программой-ботом компьютеры, находящиеся под тайным контролем киберпреступников, называют еще зомби-компьютерами, а сеть, в которую они входят, – зомби-сетью. Чаще всего зомби-машинами становятся персональные компьютеры домашних пользователей.

Использование ботнетов

Ботнеты могут использоваться злоумышленниками для решения криминальных задач разного масштаба: от рассылки спама до атак на государственные сети.

Рассылка спама. Это наиболее распространенный и один из самых простых вариантов эксплуатации ботнетов. По экспертным оценкам, в настоящее время более 80% спама рассылается с зомби-машин. Спам с ботнетов не обязательно рассылается владельцами сети. За определенную плату спамеры могут взять ботнет в аренду.

Именно спамеры могут по достоинству оценить эффективность ботнета: по нашим данным, среднестатистический спамер зарабатывает 50-100 тысяч долларов в год. Многотысячные ботнеты позволяют спамерам осуществлять с зараженных машин миллионные рассылки в течение короткого времени. Кроме обеспечения скорости и масштабности рассылок, ботнеты решают еще одну проблему спамеров. Адреса, с которых активно рассылается спам, зачастую попадают в черные списки почтовых серверов, и письма, приходящие с них, блокируются или автоматически помечаются как спам. Рассылка спама с сотен тысяч зомби-машин позволяет не использовать для рассылки одни и те же адреса.

Еще один «бонус» ботнетов – возможность сбора адресов электронной почты на зараженных машинах. Украденные адреса продаются спамерам либо используются при рассылке спама самими хозяевами ботнета. При этом растущий ботнет позволяет получать новые и новые адреса.

Кибершантаж. Ботнеты широко используются и для проведения DDoS атак (Distributed Denial of Service – распределенная атака типа «отказ в обслуживании»). В ходе такой атаки с зараженных ботом машин создается поток ложных запросов на атакуемый сервер в Сети. В результате сервер из-за перегрузки становится недоступным для пользователей. За остановку атаки злоумышленники, как правило, требуют выкуп.

Сегодня многие компании работают только через Интернет, и для них недоступность серверов означает полную остановку бизнеса, что, естественно, приводит к финансовым потерям. Чтобы поскорее вернуть стабильность своим серверам, такие компании скорее выполнят требования шантажистов, чем обратятся в полицию за помощью. Именно на это и рассчитывают киберпреступники, поэтому DDoS-атак становится все больше.

DDoS-атаки могут использоваться и как средство политического воздействия. В этих случаях атакуются, как правило, серверы государственных учреждений или правительственных организаций. Опасность такого рода атак состоит еще и в том, что они могут носить провокационный характер: кибератака серверов одной страны может осуществляться с серверов другой, а управляться с территории третьего государства.

Анонимный доступ в Сеть. Злоумышленники могут обращаться к серверам в Сети, используя зомби-машины, и от имени зараженных машин совершать киберпреступления – например, взламывать веб-сайты или переводить украденные денежные средства.

Продажа и аренда ботнетов. Один из вариантов незаконного заработка при помощи ботнетов основывается на сдаче ботнета в аренду или продаже готовой сети. Создание ботнетов для продажи является отдельным направлением киберпреступного бизнеса.

Фишинг. Адреса фишинговых страниц могут довольно быстро попасть в черные списки. Ботнет дает возможность фишерам быстро менять адрес фишинговой страницы, используя зараженные компьютеры в роли прокси-серверов. Это позволяет скрыть реальный адрес веб-сервера фишера.

Кража конфиденциальных данных. Этот вид криминальной деятельности, пожалуй, никогда не перестанет привлекать киберпреступников, а с помощью ботнетов улов в виде различных паролей (для доступа к E-Mail, ICQ, FTP-ресурсам, веб-сервисам) и прочих конфиденциальных данных пользователей увеличивается в тысячи раз! Бот, которым заражены компьютеры в зомби-сети, может скачать другую вредоносную программу – например, троянца, ворующего пароли. В таком случае инфицированными троянской программой окажутся все компьютеры, входящие в эту зомби-сеть, и злоумышленники смогут заполучить пароли со всех зараженных машин. Украденные пароли перепродаются или используются, в частности, для массового заражения веб-страниц (например, пароли для всех найденных FTP-аккаунтов) с целью дальнейшего распространения вредоносной программы-бота и расширения зомби-сети.

Команды для ботов

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

Update: загрузить и выполнить указанный исполняемый файл или модуль с указанного сервера. Эта команда является базовой, поскольку именно она реализуется в первую очередь. Она позволяет обновлять исполняемый файл бота по приказу хозяина зомби-сети, в случае если хозяин хочет установить модернизированную версию бота. Эта же команда позволяет заражать компьютер другими вредоносными программами (вирусами, червями), а также устанавливать другие боты на компьютер. С помощью этой команды на все компьютеры одновременно могут быть установлены троянские программы, которые ищут все пароли, когда-либо введенные на данном компьютере и сохраненные в его памяти, и пересылают их на сервер в Интернете.

Flood: начать процесс создания потока ложных запросов на указанный сервер в Сети с целью вывода из строя сервера или перегрузки интернет-канала указанного сегмента глобальной Сети. Создание подобного потока может вызывать серьезные неполадки сервера, приводящие к его недоступности для обычных пользователей. Такой тип атаки с использованием ботнетов носит название DDoS-атаки. Типов различных вариантов создания ложных сетевых запросов существует очень много, поэтому мы не будем описывать их все и ограничимся лишь общим понятием.

Spam: загрузить шаблон спам-сообщения и начать рассылку спама на указанные адреса (для каждого бота выделяется своя порция адресов).

Proxy: использовать данный компьютер как прокси-сервер. Зачастую эта функция не выделяется в отдельную команду, а сразу включается в общий функционал бота. Это одна из прикладных функций, позволяющая использовать любой компьютер из ботнета как прокси-сервер с целью сокрытия реального адреса злоумышленника, управляющего ботнетом.

Существуют и другие команды, однако они не входят в число наиболее популярных и поэтому реализованы лишь в отдельных ботах. Эти дополнительные команды позволяют получать копии изображения с экрана пользователя, следить за вводом паролей с клавиатуры, запрашивать файл с протоколом сетевого общения пользователя (используется для кражи аккаунтов и конфиденциальных данных), пересылать указанный файл с компьютера пользователя, запрашивать серийные номера программного обеспечения, получать подробную информацию о системе пользователя и его окружении, запрашивать список компьютеров, входящих в ботнет, и т. п.

Типы ботнетов

Классификация ботнетов сегодня достаточна проста. Она основывается на архитектуре ботнетов и протоколах, используемых для управления ботами.

Классификация ботнетов. Архитектура

До сих пор были известны лишь два типа архитектуры ботнетов.

  1. Ботнеты с единым центром. В ботнетах с такой архитектурой все зомби-компьютеры соединяются с одним центром управления, или C&C (Command&Control Centre). C&C ожидает подключения новых ботов, регистрирует их в своей базе, следит за их состоянием и выдает им команды, выбранные владельцем ботнета из списка всех возможных команд для бота. Соответственно, в C&C видны все подключенные зомби-компьютеры, а для управления централизованной зомби-сетью хозяину сети необходим доступ к командному центру.
  1. Ботнеты с централизованным управлением являются самым распространенным типом зомби-сетей. Такие ботнеты легче создавать, ими легче управлять, и они быстрее реагируют на команды. Впрочем, бороться с ботнетами с централизованным управлением тоже легче: для нейтрализации всего ботнета достаточно закрыть C&C.
  2. Децентрализованные ботнеты, или P2P-ботнеты (от англ. “peer-to-peer”, что означает «соединение типа “точка-точка”»). В случае децентрализованного ботнета боты соединяются не с центром управления, а с несколькими зараженными машинами из зомби-сети. Команды передаются от бота к боту: у каждого бота есть список адресов нескольких «соседей», и при получении команды от кого-либо из них он передает ее остальным, тем самым распространяя команду дальше. В этом случае злоумышленнику, чтобы управлять всем ботнетом, достаточно иметь доступ хотя бы к одному компьютеру, входящему в зомби-сеть.

Рис. 2 Децентрализованная топология (P2P)

На практике построение децентрализованного ботнета не очень удобно, поскольку каждому новому зараженному компьютеру необходимо предоставить список тех ботов, с которыми он будет связываться в зомби-сети. Гораздо проще сначала направить бот на централизованный сервер, где он получит список ботов-«соседей», а затем уже переключить бот на взаимодействие через P2P-подключения. Такая смешанная топология также относится к типу P2P, хотя на отдельном этапе боты используют C&C. Бороться с децентрализованными ботнетами гораздо сложнее, поскольку в действующем ботнете центр управления отсутствует.

Классификация ботнетов. Используемые сетевые протоколы

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

По типу используемых сетевых протоколов ботнеты делятся на следующие группы.

  1. IRC-ориентированные. Это один из самых первых видов ботнетов, где управление ботами осуществлялось на основе IRC (Internet Relay Chat). Каждый зараженный компьютер соединялся с указанным в теле программы-бота IRC-сервером, заходил на определенный канал и ждал команды от своего хозяина.
  2. IM-oriented IM-ориентированные. Не очень популярный вид ботнетов. Отличается от своих IRC-ориентированных собратьев только тем, что для передачи данных используются каналы IM-служб (Instant Messaging), например AOL, MSN, ICQ и др. Невысокая популярность таких ботнетов обусловлена сложностями, возникающими при создании отдельного аккаунта IM-службы для каждого бота. Дело в том, что боты должны выходить в Сеть и постоянно присутствовать онлайн. Поскольку большинство IM-служб не позволяют входить в систему с разных компьютеров, используя один и тот же аккаунт, у каждого бота должен быть свой номер IM-службы. При этом владельцы IM-служб всячески препятствуют любой автоматической регистрации аккаунтов. В результате хозяева IM-ориентированных ботнетов сильно ограничены в числе имеющихся зарегистрированных аккаунтов, а значит и в числе ботов, одновременно присутствующих в Сети. Конечно, боты могут использовать один и тот же аккаунт, выходить в онлайн один раз в определенный промежуток времени, отсылать данные на номер хозяина и в течение короткого промежутка времени ожидать ответа, но это все весьма проблематично: такая сеть реагирует на команды очень медленно.
  3. Веб-ориентированные. Относительно новая и быстро развивающаяся ветвь ботнетов, ориентированная на управление через www. Бот соединяется с определенным веб-сервером, получает с него команды и передает в ответ данные. Такие ботнеты популярны в силу относительной легкости их разработки, большого числа веб-серверов в Интернете и простоты управления через веб-интерфейс.
  4. Другие. Кроме перечисленных выше существуют и другие виды ботнетов, которые соединяются на основе своего собственного протокола, базируясь лишь на стеке протоколов TCP/IP: используют лишь общие протоколы TCP, ICMP, UDP.

Эволюция ботнетов

История ботнетов началась в 1998-1999 годах, когда появились первые программы поведения Backdoor – небезызвестные NetBus и BackOrifice2000. Это были концепты, т.е. программы, в которых реализованы принципиально новые технологические решения. NetBus и BackOrifice2000 впервые несли полный набор функций удаленного управления зараженным компьютером, что позволяло злоумышленникам работать с файлами на удаленном компьютере, запускать новые программы, получать снимки экрана, открывать/закрывать CD-привод и т.д.

Изначально созданные как троянские программы, бэкдоры работали без разрешения или уведомления пользователя. Для управления зараженным компьютером злоумышленник должен был сам установить соединение с каждой инфицированной машиной. Первые бэкдоры работали в локальных сетях на основе стека протоколов TCP/IP и, по сути, являлись демонстрацией вариантов использования Windows API для удаленного управления компьютером.

Клиентские программы для удаленного управления компьютерами уже в начале 2000-х могли одновременно управлять сразу несколькими машинами. Однако, в отличие от современных бэкдоров, программы NetBus и BackOrifice2000 выступали в роли сетевого сервера: они открывали определенный порт и пассивно ждали подключений хозяина (Backdoor’ы, используемые для построения ботнетов сегодня, устанавливают соединения сами).

Затем кто-то из злоумышленников придумал сделать так, чтобы зараженные бэкдорами компьютеры сами выходили на связь и их всегда можно было видеть онлайн (при условии, что они включены и работают). Скорее всего, этот «кто-то» был хакером, потому что боты нового поколения использовали традиционный для хакеров канал связи – IRC (Internet Relay Chat). Вероятно, разработку новых ботов сильно упростило то, что в самой системе IRC изначально функционировали боты с открытым исходным кодом, но не направленные на удаленное управление системой, а с другим функционалом (эти программы отвечали на запросы пользователей, например, выдавали информацию о погоде или о времени последнего появления определенного пользователя в чате).

Компьютеры, зараженные новыми ботами, стали соединяться с IRC-серверами, в качестве посетителей выходить на связь через определенный IRC-канал и ждать указаний от хозяина ботнета. Хозяин мог в любое время появиться онлайн, увидеть список ботов, отослать команды сразу всем зараженным компьютерам или отправить отдельное сообщение одной машине. Это был первый механизм реализации ботнета с централизованным управлением, позже названный C&C (Command & Control Centre).

Разработка таких ботов была несложной благодаря простоте синтаксиса протокола IRC. Для того чтобы использовать IRC-сервер, необязательно нужна специализированная клиентская программа. Достаточно иметь универсальный сетевой клиент, такой как приложение Netcat или Telnet.

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

Следующим этапом развития ботнетов стало перемещение центров управления во всемирную паутину. Сначала хакеры разработали средства удаленного управления сервером, которые были основаны на таких популярных скрипт-движках, как Perl и PHP, в редких случаях – ASP, JSP и нескольких других. Затем кто-то создал такое соединение компьютера в локальной сети с сервером в Интернете, которое позволяло откуда угодно управлять компьютером. Схема удаленного управления компьютером в локальной сети в обход таких средств защиты, как прокси и NAT, была опубликована в Интернете и быстро стала популярной в определенных кругах. Удаленное управление было основано на установлении HTTP-соединения с управляющим сервером с использованием локальных настроек компьютера. Если пользователь устанавливал в настройках системы адрес, порт, логин и пароль для прокси-сервера, автоматически активизировался механизм авторизации библиотеки функций для поддержки протокола HTTP (Wininet.dll). С точки зрения программиста, это было простым и доступным решением.

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

Веб-ориентированные ботнеты оказались чрезвычайно удобным решением, которое популярно и сегодня. Множеством компьютеров можно управлять с любого устройства, имеющего доступ в Интернет, в том числе с мобильного телефона, поддерживающего WAP/GPRS, а с веб-интерфейсом способен справиться даже школьник. Дальнейшее развитие Интернета и совершенствование технологий веб-разработки также стимулировали использование веб-ботнетов.

Были попытки создать ботнеты, управляемые через каналы IM-служб. Но IM-ботнеты не получили широкого распространения, в частности потому, что они требуют регистрации номеров IM, а в условиях, когда системы защиты от автоматической регистрации аккаунтов постоянно меняются, зарегистрировать множество аккаунтов автоматически довольно сложно.

На этом эволюция ботнетов не закончилась: перебрав варианты использования протоколов, разработчики ботнетов переключились на архитектуру сети. Оказалось, что ботнет классической архитектуры (много ботов и один центр управления) чрезвычайно уязвим, так как зависит от критического узла – центра управления, при отключении которого сеть можно считать потерянной. Решения в виде одновременного заражения компьютеров разными ботами, ориентированными на разные центры управления, иногда срабатывают, но такие ботнеты гораздо сложнее поддерживать, поскольку нужно следить сразу за двумя-тремя центрами управления.

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

P2P-ботнеты

«Штормовой» ботнет

В 2007 году внимание исследователей информационной безопасности привлек P2P-ботнет, созданный на основе вредоносной программы, известной как Storm Worm. Авторы «штормового» червя распространяли свое детище весьма активно: по-видимому, они создали целую фабрику по созданию новых версий вредоносной программы. Начиная с января 2007 года мы ежедневно получаем 3-5 различных вариантов Storm Worm (по классификации «Лаборатории Касперского»- Email-Worm.Win32.Zhelatin).

Некоторые эксперты считают, что Storm Worm представляет собой вредоносную программу для построения зомби-сетей нового поколения. О том, что бот был разработан и распространяется профессионалами в своей области, а архитектура и защита зомби-сети хорошо продуманы, свидетельствуют следующие характеристики «штормового» ботнета:

  • Код бота мутирует, что напоминает полиморфные вирусы. Отличие Storm Worm состоит в том, что код, осуществляющий мутации, работает не внутри самой программы (как у полиморфиков), а на специальном компьютере в Сети. Этот механизм получил название «серверный полиморфизм» (server-side polymorphism).
  • Мутации происходят достаточно часто (были зафиксированы случаи мутаций раз в час) и – главное – на стороне сервера, так что обновления антивирусных баз для многих пользователей оказываются неэффективными.
  • Штормовой ботнет защищает свои ресурсы от слишком любопытных исследователей. Многие антивирусные компании периодически скачивают новые экземпляры червя с серверов, откуда происходит распространение вредоносной программы. Когда обнаруживаются частые обращения с одного и того же адреса, ботам дается команда начать DDoS-атаку этого адреса.
  • Вредоносная программа-бот старается как можно незаметнее функционировать в системе. Очевидно, что программа, которая постоянно атакует компьютер или проявляет большую сетевую активность, быстрее обращает на себя внимание и администраторов, и пользователей. Поэтому дозированная активность, которая не требует использования значительного числа компьютерных ресурсов, с точки зрения вредоносной программы наиболее безопасна.
  • Вместо коммуникации с центральным сервером штормовой червь связывается лишь с несколькими «соседними» компьютерами в зараженной сети, что делает задачу выявления всех зомби-машин в P2P-сети практически невыполнимой. Это принцип организации разведгруппы: каждый, кто входит в такую группу, знает только нескольких других членов группы, и провал одного агента разведки не означает, что вся группа раскрыта.
  • Авторы червя постоянно меняют способы его распространения. Изначально вредоносная программа распространялась как вложение в спамовые письма (в частности, под видом PDF-файлов); затем в спаме рассылались ссылки на зараженные файлы; были также попытки автоматического размещения в блогах комментариев, которые содержали ссылки на зараженные веб-страницы. И при любых способах распространения этой вредоносной программы использовались изощренные методы социальной инженерии.

Storm-ботнет принес немало проблем. Помимо массовой рассылки спама, его подозревают в участии в различных крупномасштабных DDoS-атаках по всему миру, и, по заявлениям некоторых исследователей, даже во время кибератаки на сайты эстонских правительственных учреждений в 2007 году не обошлось без участия «штормового» ботнета. То, на что потенциально способна такая сеть, вызывает неприятные ощущения у провайдеров и интернет-хостеров. Напряжения добавляет тот факт, что истинные размеры «штормового» ботнета так и остались тайной. Если другие зомби-сети, полностью или частично опирающиеся на C&C, можно увидеть целиком (в C&C виден каждый подключенный зомби-компьютер), то списка зараженных машин, входящих в «штормовой» ботнет, не видел никто из экспертов. По разным оценкам, размеры ботнета Storm Worm могли составлять от 50 тысяч до 10 миллионов зомби-машин.

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

Mayday

Еще одним интересным, на наш взгляд, ботнетом, который технологически несколько отличается от своих предшественников, является Mayday. Такое название бот (по классификации «Лаборатории Касперского – Backdoor.Win32.Mayday) и созданная на его основе сеть получили благодаря тому, что имя домена, к которому обращалась вредоносная программа в одной из своих модификаций, включало в себя слово «mayday».

Mayday – это очередной ботнет, построенный на архитектуре P2P. После запуска бот соединяется с указанным в теле программы веб-сервером, регистрируется в его базе данных и получает список всех ботов в зараженной сети (в случае Storm Worm это была лишь часть списка). Далее бот устанавливает соединения типа «компьютер-компьютер» с другими ботами, входящими в зомби-сеть.

Нами было зарегистрировано 6 различных серверов по всему миру (в Великобритании, США, Нидерландах, Германии), с которыми связывались боты на стадии построения ботнета. К началу марта в работоспособном состоянии остался лишь один из серверов, на котором было зарегистрировано около 3 тысяч ботов (напомним, что, по самым скромным оценкам, в «штормовой» ботнет входили десятки тысяч зараженных машин). Помимо размеров сети, Mayday явно уступает своему «старшему брату» Storm в нескольких важных позициях: в Mayday-ботнете используется примитивный нешифрованный протокол общения, код вредоносной программы не подвергся специальной обработке для усложнения его анализа антивирусным ПО, и, главное, новые варианты бота выпускаются совсем не с той периодичностью, какую мы видим в случае Storm Worm. Программа Backdoor.Win32.Mayday была впервые задетектирована «Лабораторией Касперского» еще в конце ноября 2007 года, и за четыре прошедших месяца в нашу коллекцию попало чуть больше 20 различных вариантов программы.

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

Во-первых, в сети Mayday коммуникация типа «компьютер-компьютер» (P2P) изначально основана на передаче ICMP-сообщений с 32-байтной полезной нагрузкой.

Большинству пользователей протокол ICMP (Internet Control Message Protocol - межсетевой протокол управляющих сообщений) знаком по прикладной утилите PING, использующей ICMP для проверки доступности сетевого хоста. Однако основные функции протокола значительно шире. Вот что сказано об ICMP в Wikipedia: «ICMP - сетевой протокол, входящий в стек протоколов TCP/IP. В основном ICMP используется для передачи сообщений об ошибках и в других исключительных ситуациях, возникших при передаче данных. Также на ICMP возлагаются некоторые сервисные функции».

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

Рис. 3. ICMP-пакеты, отправляемые ботом Mayday

С помощью ICMP осуществляется проверка доступности ботов в зараженной сети и их идентификация. Поскольку бот Mayday ориентирован на работу в Windows XP SP2, после запуска он изменяет правила сетевого экрана Windows, так чтобы получение ICMP-пакетов было разрешено.

Второй и, пожалуй, основной особенностью Mayday-ботнета является его центр управления.

Для работы центров управления веб-ориентированных ботнетов используется механизм, известный как CGI (Common Gateway Interface). Изначально технологией веб-серверов была предусмотрена возможность использования исполняемых файлов в качестве реализации CGI, позже появились различные скрипт-движки. CGI-приложение генерирует в реальном времени контент запрашиваемой пользователем веб-страницы, обеспечивая выполнение программы и вывод результатов ее работы вместо статических данных с сервера. CGI-скрипт работает по аналогичной схеме, но для вывода результатов своей работы ему требуется интерпретатор – скрипт-движок. Как правило, командные центры веб-ориентированных ботнетов разрабатываются злоумышленниками с использованием скрипт-движков.

В сотрудничестве с правоохранительными органами нам удалось получить копию программы, которая работает в командном центре ботнета Mayday. Серверное ПО Mayday представляет собой цельный (без модулей) 1,2-мегабайтный исполняемый ELF-файл (Linux-аналог исполняемых EXE-файлов Microsoft Windows), не требующий наличия скрипт-движка в системе. На первый взгляд, ничего удивительного в разработке авторами Mayday CGI-приложения вместо CGI-скрипта вроде бы нет. Тем не менее, такое решение вызывает ряд вопросов.

Разработка CGI-приложения на пару порядков сложнее разработки CGI-скрипта, поскольку требует особых усилий для реализации стабильного и надежного кода. В настоящее время 99% веб-разработок ведется на основе скрипт-движков, а монолитные исполняемые CGI-программы создаются лишь в случае жесткой необходимости оптимизировать все до мелочей. Как правило, такой подход используется крупными корпорациями при разработке проектов, которые должны работать в условиях огромных нагрузок. Монолитные исполняемые CGI-программы используются, например, в таких веб-системах, как e-Bay, Paypal, Yahoo и др.

Зачем же создавался безмодульный исполняемый файл в случае ботнета Mayday? Одной из возможных причин могло быть желание разработчиков усложнить «чужакам» задачу редактирования, перенастройки и перепродажи центра управления. В любом случае анализ структуры серверного ПО Mayday дает основание предполагать, что такая серьезная разработка (код аккуратно причесан, созданная система классов универсальна) требует хорошо организованной команды разработчиков. Более того, для создания ПО Mayday-ботнета злоумышленникам, скорее всего, пришлось вести работу над двумя разными проектами: разработкой программ для Windows и для Linux.

Весной 2008 года «Лабораторией Касперского» не было зафиксировано ни одного нового образца Mayday-бота. Возможно, авторы вредоносной программы взяли таймаут, и Mayday-ботнет еще проявит себя в недалеком будущем.

Ботнет-бизнес

Ответ на вопрос, почему ботнеты продолжают развиваться и становятся все более актуальной проблемой, можно получить, оценив нынешнее состояние рынка ботнетов. Сегодня киберпреступникам, которые хотят построить ботнет, не нужны ни специальные знания, ни крупные денежные суммы. Подпольная ботнет-индустрия по сходной цене предоставляет желающим обзавестись ботнетом все необходимое: ПО, готовые сети и услуги по анонимному хостингу.

Заглянем на интернет-форумы, специализирующиеся на продаже нелегального софта и услуг, посмотрим, как работает ботнет-индустрия, обслуживающая хозяев зомби-сетей.

Первое, что необходимо для построения ботнета, – это сам бот, программа, позволяющая удаленно выполнять на компьютере пользователя некоторые действия без ведома пользователя. ПО для создания ботнета можно легко купить в Сети, найдя соответствующее объявление и обратившись к тому, кто его разместил.

Рис. 4. Объявление о продаже бота и панели управления (перевод с русского)

Цены на боты варьируются от $5 до $1000, в зависимости от того, насколько распространен бот, детектируется ли он антивирусом, какие команды поддерживает и т.д.

Для построения простейшего веб-ориентированного ботнета необходимо иметь хостинговую площадку, где можно разместить центр управления. Любой желающий может купить такую площадку – вместе с услугами службы поддержки и возможностью анонимной работы с сервером (хостер, как правило, гарантирует недоступность файлов журнала для кого-либо, в том числе для «компетентных» органов). Объявлений, подобных приведенному ниже, на форумах в Интернете достаточно много.

Рис. 5. Предложение хостинг-услуг для построения ботнета

Когда площадка C&C построена, необходимы зараженные ботом машины. Желающие могут купить уже готовую сеть с «чужим» установленным ботом. Поскольку случаи кражи ботнетов в среде злоумышленников не редкость, покупатели, как правило, предпочитают заменить на собственные и вредоносную программу, и центр управления, получив гарантированный контроль над зомби-сетью. Для этого боту в купленной сети дают команду скачать и запустить новый бот (с новым адресом C&C) и самоудалиться. Тем самым «чужая» программа-бот заменяется на «свою», и ботнет начинает взаимодействовать с новым центром управления. Такая «перезагрузка» ботнетов является нелишней и с точки зрения их защищенности и анонимности: «старый» C&C и «старый» бот еще до продажи вполне могут попасть в поле зрения специалистов по компьютерной безопасности.

К сожалению, построить собственный ботнет также не составляет особого труда: для этого есть специальные средства. Самые популярные из них – программные пакеты, известные как MPack, IcePack и WebAttacker. Они позволяют заражать компьютерные системы посетителей вредоносной веб-страницы, используя уязвимости в программном обеспечении браузеров или в плагинах к ним. Такие программные пакеты называются веб-системами массового заражения или просто ExploitPack. После срабатывания эксплойта браузер покорно загружает из Сети на компьютер пользователя исполняемый файл и запускает его. Таким файлом как раз и является программа-бот, которая подключает новый зомби-компьютер в ботнет и передает управление им злоумышленнику.

К сожалению, эти средства настолько доступны, что даже подростки с легкостью их находят и пытаются заработать на перепродаже.

Рис. 6. Объявление о продаже MPack, вывешенное 16-летним подростком

Любопытно, что ExploitPack изначально были разработаны русскими хакерами, однако нашли своих клиентов и в других странах. Эти вредоносные программы были локализованы (что свидетельствует об их коммерческом успехе на черном рынке) и теперь активно используются, например, в Китае.

Рис. 7. Оригинальная русская версия IcePack

Рис. 8. Локализованная китайская версия IcePack

Любая система тем популярнее и тем успешнее на киберкриминальном рынке, чем проще ее использовать. Это понимают и разработчики таких систем, поэтому для повышения популярности своих детищ и соответственно увеличения спроса на них разрабатывают простые механизмы установки и конфигурирования систем – будь то система для C&C или просто ExploitPack.

Так, например, установка командного центра, как правило, состоит из копирования файлов на сторону веб-сервера и обращения с помощью браузера к скрипту install.php. Значительно облегчает задачу наличие веб-интерфейса инсталлятора: киберпреступникам достаточно правильно заполнить поля веб-формы, чтобы командный центр был правильно сконфигурирован и начал работать.

Рис. 9. Веб-инсталлятор C&C

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

THE BELL

Есть те, кто прочитали эту новость раньше вас.
Подпишитесь, чтобы получать статьи свежими.
Email
Имя
Фамилия
Как вы хотите читать The Bell
Без спама