Активность вирусов в сети
а.ч. ыЕЧЮХЛ, у.ч. вХТЮХ
рПУМЕ РПСЧМЕОЙС РЕТЧПЗП РЕТУПОБМШОПЗП ЛПНРШАФЕТБ Й РПМЕЪОПЗП РТПЗТБННОПЗП ПВЕУРЕЮЕОЙС (ПРЕТБГЙПООЩЕ УЙУФЕНЩ, ПЖЖЙУОЩЕ РТЙМПЦЕОЙС Й ДТ.) РПСЧЙМПУШ Й ЧТЕДПОПУОПЕ - ФБЛ ОБЪЩЧБЕНЩЕ "ЧЙТХУЩ". уМПЧП "ЧЙТХУЩ" ДБЧОП Й ИПТПЫП ЪОБЛПНП РПМШЪПЧБФЕМСН ЛПНРШАФЕТПЧ. пОП ДБЧОП РЕТЕТПУМП УЧПЕ РЕТЧПОБЮБМШОПЕ ЪОБЮЕОЙЕ Й ФЕРЕТШ ЮБУФП ХРПФТЕВМСЕФУС ДМС ПВПЪОБЮЕОЙС МАВЩИ ЧТЕДПОПУОЩИ РТПЗТБНН, УРПУПВОЩИ "ТБЪНОПЦБФШУС", ТБУРТПУФТБОССУШ У ЛПНРШАФЕТБ ОБ ЛПНРШАФЕТ Й ЪБТБЦБС РПДЮБУ ГЕМЩЕ ЛПНРШАФЕТОЩЕ УЕФЙ - ЧРМПФШ ДП ЗМПВБМШОЩИ ЬРЙДЕНЙК Ч йОФЕТОЕФЕ.
ьФП "ЛМБУУЙЮЕУЛЙЕ" ЧЙТХУЩ, УЕФЕЧЩЕ Й РПЮФПЧЩЕ ЮЕТЧЙ, "ФТПСОУЛЙЕ ЛПОЙ", backdoor-РТПЗТБННЩ Й ДТ.
ч ДБООПК УФБФШЕ ТЕЮШ РПКДЕФ П НЕФПДБИ ПВОБТХЦЕОЙС ЧЙТХУОПК БЛФЙЧОПУФЙ, ФБЛ ОБЪЩЧБЕНЩИ "ЮЕТЧЕК", - ЧЙТХУПЧ, ЛПФПТЩЕ УБНПТБУРТПУФТБОСАФУС РП УЕФЙ йОФЕТОЕФ, ЙУРПМШЪХС ЛБЛЙЕ-МЙВП ХСЪЧЙНПУФЙ Ч РТПЗТБННОПН ПВЕУРЕЮЕОЙЙ, МЙВП РПМШЪХСУШ ДПЧЕТЮЙЧПУФША Й МАВПРЩФУФЧПН ОЕПРЩФОЩИ РПМШЪПЧБФЕМЕК.
рТЕЦДЕ ЮЕН ЗПЧПТЙФШ П НЕФПДБИ ПВОБТХЦЕОЙС, УМЕДХЕФ РПУФБЧЙФШ УЕВС ОБ НЕУФП ЧЙТХУПРЙУБФЕМС Й РПРТПВПЧБФШ РТЕДУФБЧЙФШ УЕВЕ ЧУЕ ДЕКУФЧЙС, ЛПФПТЩЕ НПЦЕФ ЙУРПМШЪПЧБФШ ЧЙТХУ ДМС УБНПТБУРТПУФТБОЕОЙС.
пВЩЮОП ДПУФБФПЮОП ОБКФЙ ОЕДБЧОАА ОБКДЕООХА ЛЕН-МЙВП ХСЪЧЙНПУФШ Ч РПРХМСТОПН РТПЗТБННОПН ПВЕУРЕЮЕОЙЙ Й РПУФБТБФШУС ЙУРПМШЪПЧБФШ ЕЕ РПРХМСТОПУФШ ДМС ТБУРТПУФТБОЕОЙС ЧЙТХУБ. рТЕДУФБЧЙЧ УЕВЕ ФБЛПЕ ХУМПЧЙЕ, НЩ ПРТЕДЕМСЕН ЛТХЗ ОЕЛПФПТЩИ ЪБДБЮ, ЛПФПТЩЕ ОЕПВИПДЙНП ЧЩРПМОЙФШ "ЧЙТХУХ": УЛБОЙТПЧБОЙЕ МЙВП РПРЩФЛБ УПЕДЙОЕОЙС У ЛБЛЙН-МЙВП БДТЕУПН Ч УЕФЙ йОФЕТОЕФ ОБ РПТФ РПРХМСТОПЗП РТПЗТБННОПЗП РТПДХЛФБ, Ч УМХЮБЕ ХУРЕЫОПЗП УПЕДЙОЕОЙС РТПЙУИПДЙФ РПРЩФЛБ ЙУРПМШЪПЧБОЙС ХСЪЧЙНПУФЙ РТПЗТБННОПЗП РТПДХЛФБ ДМС УБНПЛПРЙТПЧБОЙС Й ДБМШОЕКЫЕЗП ТБУРТПУФТБОЕОЙС "ЮЕТЧС".
бМЗПТЙФН УМЕЗЛБ ПФМЙЮБЕФУС ДМС, ФБЛ ОБЪЩЧБЕНЩИ "РПЮФПЧЩИ ЮЕТЧЕК". пУОПЧОЩЕ ПФМЙЮЙС Ч ФПН, ЮФП "ХСЪЧЙНЩН" РТПЗТБННОЩН РТПДХЛФПН СЧМСЕФУС SMTP УЕТЧЕТ - РТПЗТБННОЩК РТПДХЛФ, ПФЧЕЮБАЭЙК ЪБ ДПУФБЧЛХ ЬМЕЛФТПООПК РПЮФЩ. хСЪЧЙНПУФША Ч ПВПЙИ УМХЮБСИ НПЦЕФ УЮЙФБФШУС, ЛБЛ ПЫЙВЛБ Ч ЛПДЕ РТПЗТБННЩ, ФБЛ Й ПЫЙВЛБ ДПРХЭЕООБС РТЙ ЕЕ ЛПОЖЙЗХТБГЙЙ.
уХЭЕУФЧХЕФ ОЕУЛПМШЛП ЧЙДПЧ ПВОБТХЦЕОЙС РПДПВОПК БЛФЙЧОПУФЙ:
- чПЪТПУЫБС УЕФЕЧБС БЛФЙЧОПУФШ.
- цБМПВЩ РПМШЪПЧБФЕМЕК-ЦЕТФЧ.
- ч УМХЮБЕ ХЦЕ ЙЪЧЕУФОЩИ ЧЙТХУПЧ ПВОБТХЦЕОЙЕ ЧПЪНПЦОП ВМБЗПДБТС БОФЙЧЙТХУОЩН ЖЙМШФТБН, ЛБЛ ОБ РПЮФПЧЩИ(Sнфт) УЕТЧЕТБИ, ФБЛ Й ХУФБОПЧМЕООЩИ РПМШЪПЧБФЕМЕН.
еУМЙ УП ЧФПТЩН УМХЮБЕН УДЕМБФШ ЮФП-ФП ДПЧПМШОП ФТХДОП, ФП Ч РЕТЧПН Й ФТЕФШЕН УМХЮБСИ БДНЙОЙУФТБФПТХ УЕФЙ РТЕДПУФБЧМСЕФУС ДПЧПМШОП ЫЙТПЛЙК ЧЩВПТ ХЦЕ УХЭЕУФЧХАЭЙИ НЕФПДПЧ ВПТШВЩ У "ЧЙТХУОПК ЬРЙДЕНЙЕК", ОБЮЙОБС ПФ ХУФБОПЧЛЙ БОФЙЧЙТХУОЩИ РТПЗТБНН ОБ УЕТЧЕТБ, Й ЛПОЮБС ПВЩЛОПЧЕООПК ВМПЛЙТПЧЛПК ФТБЖЙЛБ РТЙ РПНПЭЙ УЕФЕЧПЗП ЬЛТБОБ (firewall). бОФЙЧЙТХУЩ ПВЩЮОП РТЕДОБЪОБЮЕОЩ ДМС ЛБЛПЗП-МЙВП ЛПОЛТЕФОПЗП УЕТЧЙУБ, ЮЕТЕЪ ЛПФПТЩК НПЗХФ ТБУРТПУФТБОЙФШУС ЧЙТХУЩ: РПЮФБ, УЛБЮБООЩЕ ЙЪ УЕФЙ ЖБКМЩ (http, ftp РТПФПЛПМЩ). рТЙНЕОЙФШ БОФЙЧЙТХУ ДМС ЖЙМШФТБГЙЙ ЧУЕЗП ФТБЖЙЛБ ДПУФБФПЮОП ФТХДОПТЕБМЙЪХЕНП, ТЕУХТУПЕНЛП Й ОЕ ЗБТБОФЙТХЕФ РПМОПК ЙДЕОФЙЖЙЛБГЙЙ ЙЪ-ЪБ ЧПЪНПЦОПУФЙ ЫЙЖТПЧБОЙС ФТБЖЙЛБ. фБЛ ЦЕ УХЭЕУФЧХАФ ФБЛ ОБЪЩЧБЕНЩЕ "УЙУФЕНЩ ПВОБТХЦЕОЙС ЧФПТЦЕОЙС". йИ ПУПВЕООПУФША СЧМСЕФУС ФП, ЮФП ПОЙ, ЙУРПМШЪХС МЙВП ЧПЪНПЦОПУФЙ УЕФЕЧПЗП ЬЛТБОБ МЙВП ФБЛ ОБЪЩЧБЕНЩЕ "МПЧХЫЛЙ"(honeypot) ДМС ПВОБТХЦЕОЙС ЧФПТЦЕОЙС (ЧЙТХУ ФПЦЕ ЧФПТЦЕОЙЕ!). йНЕООП ОБ ЬФЙИ УЙУФЕНБИ НЩ Й ПУФБОПЧЙНУС РПДТПВОЕЕ.
бЧФПТЩ ДБООПК УФБФШЙ РТЙДХНБМЙ УЧПК НЕФПД ПВОБТХЦЕОЙС ЧЙТХУОПК БЛФЙЧОПУФЙ. пУОПЧПК ЕЗП СЧМСЕФУС ПРЙУБОЙЕ ТБВПФЩ ПВЩЮОПЗП TCP-УПЕДЙОЕОЙС.
пВЩЮОП ХУФБОПЧЛБ TCP-УПЕДЙОЕОЙС РТПЙУИПДЙФ Ч ФТЙ УФБДЙЙ (3-way handshake): ЛМЙЕОФ ЧЩВЙТБЕФ Й РЕТЕДБЕФ УЕТЧЕТХ РПТСДЛПЧЩК ОПНЕТ (sequence number, ОБЪПЧЕН ЕЗП C-SYN), Ч ПФЧЕФ ОБ ЬФП УЕТЧЕТ ЧЩУЩМБЕФ ЛМЙЕОФХ РБЛЕФ ДБООЩИ, УПДЕТЦБЭЙК РПДФЧЕТЦДЕОЙЕ (у-бул) Й УПВУФЧЕООЩК РПТСДЛПЧЩК ОПНЕТ УЕТЧЕТБ (S-SYN). фЕРЕТШ ХЦЕ ЛМЙЕОФ ДПМЦЕО ЧЩУМБФШ РПДФЧЕТЦДЕОЙЕ (S-ACK). рПУМЕ ЬФПЗП УПЕДЙОЕОЙЕ УЮЙФБЕФУС ХУФБОПЧМЕООЩН Й ОБЮЙОБЕФУС ПВНЕО ДБООЩНЙ. рТЙ ЬФПН ЛБЦДЩК РБЛЕФ ЙНЕЕФ Ч ЪБЗПМПЧЛЕ РПМЕ ДМС РПТСДЛПЧПЗП ОПНЕТБ Й РПДФЧЕТЦДЕОЙС. дБООЩЕ ЮЙУМБ ХЧЕМЙЮЙЧБАФУС РТЙ ПВНЕОЕ ДБООЩНЙ Й РПЪЧПМСАФ ЛПОФТПМЙТПЧБФШ ЛПТТЕЛФОПУФШ РЕТЕДБЮЙ. ч УМХЮБЕ ЧЙТХУПЧ, ДПЧПМШОП ЮБУФП TCP-УПЕДЙОЕОЙЕ РТПУФП ОЕ ДПИПДЙФ ДП ПВНЕОБ ДБООЩНЙ, ПЗТБОЙЮЙЧБСУШ ОБЮБМШОЩН C-SYN Й ОЕ РПМХЮБС ПВТБФОПЗП. фБЛЙН ПВТБЪПН, УЮЙФБС ЛПМЙЮЕУФЧП SYN РБЛЕФПЧ Ч ПВЕ УФПТПОЩ (ЧИПДСЭЙЕ Й ЙУИПДСЭЙЕ) Й ЙНЕС УХЭЕУФЧЕООХА ТБЪОЙГХ (3, 5, 10 ТБЪ-ХУФБОБЧМЙЧБЕФУС ЬЛУРЕТЙНЕОФБМШОП) Ч ЛПМЙЮЕУФЧЕ, НЩ НПЦЕН РТЕДРПМПЦЙФШ ОЕОПТНБМШОХА УЕФЕЧХА БЛФЙЧОПУФШ Й, МЙВП ВМПЛЙТПЧБФШ ФТБЖЙЛ, МЙВП РТЕДРТЙОЙНБФШ ДБМШОЕКЫЙЕ НЕТЩ ПВОБТХЦЕОЙС Ч ГЕМСИ ДЕФБМШОПК ЙДЕОФЙЖЙЛБГЙЙ РТЙЮЙО ЧПЪОЙЛОПЧЕОЙС РПДПВОПК БЛФЙЧОПУФЙ.
оБ ПУОПЧЕ ЧЩЫЕПРЙУБООПЗП НЕФПДБ БЧФПТБНЙ РТЕДРПМБЗБЕФУС УПЪДБФШ УЙУФЕНХ ПВОБТХЦЕОЙС ЧЙТХУОПК УЕФЕЧПК БЛФЙЧОПУФЙ Ч ГЕМСИ РТЕДПФЧТБЭЕОЙС ЧЙТХУОЩИ ЬРЙДЕНЙК Ч МПЛБМШОПК УЕФЙ уф "вПФЙЛ", сТПУМБЧУЛБС ПВМБУФШ, З. рЕТЕУМБЧМШ-ъБМЕУУЛЙК. рЕТЧБС ФЕУФПЧБС ЧЕТУЙС ХЦЕ УПЪДБОБ Й РТПИПДЙФ ТЕЦЙН ФЕУФЙТПЧБОЙС.
Проблема эпидемии сетевых червей актуальна для любой локальной сети. Рано или поздно может возникнуть ситуация, когда в ЛВС проникает сетевой или почтовый червь, который не детектируется применяемым антивирусом. Сетевой вирус распространяется по ЛВС через не закрытые на момент заражения уязвимости операционной системы или через доступные для записи общие ресурсы. Почтовый вирус, как следует из названия, распространяется по электронной почте при условии, что он не блокируется клиентским антивирусом и антивирусом на почтовом сервере. Кроме того, эпидемия в ЛВС может быть организована изнутри в результате деятельности инсайдера. В данной статье мы рассмотрим практические методики оперативного анализа компьютеров ЛВС с применением различных средств, в частности с помощью авторской утилиты AVZ.
Постановка задачи
В случае обнаружения эпидемии или некой нештатной активности в сети администратор должен оперативно решить минимум три задачи:
- обнаружить зараженные ПК в сети;
- найти образцы вредоносной программы для отправки в антивирусную лабораторию и выработки стратегии противодействия;
- принять меры для блокирования распространения вируса в ЛВС и его уничтожения на зараженных компьютерах.
В случае деятельности инсайдера основные шаги анализа идентичны и чаще всего сводятся к необходимости обнаружения установленного инсайдером постороннего ПО на компьютерах ЛВС. В качестве примера такого ПО можно назвать утилиты удаленного администрирования, клавиатурные шпионы и различные троянские закладки.
Рассмотрим более подробно решение каждой из поставленных задач.
Поиск зараженных ПК
Для поиска зараженных ПК в сети можно применять как минимум три методики:
- автоматический удаленный анализ ПК — получение информации о запущенных процессах, загруженных библиотеках и драйверах, поиск характерных закономерностей — например процессов или файлов с заданными именами;
- исследование трафика ПК с помощью сниффера — данный метод очень эффективен для отлова спам-ботов, почтовых и сетевых червей, однако основная сложность в применении сниффера связана с тем, что современная ЛВС строится на базе коммутаторов и, как следствие, администратор не может осуществлять мониторинг трафика всей сети. Проблема решается двумя путями: запуском сниффера на маршрутизаторе (что позволяет осуществлять мониторинг обмена данными ПК с Интернетом) и применением мониторинговых функций коммутаторов (многие современные коммутаторы позволяют назначить порт мониторинга, на который дублируется трафик одного или нескольких портов коммутатора, указанных администратором);
- исследование нагрузки на сеть — в данном случае очень удобно применять интеллектуальные коммутаторы, которые позволяют не только оценивать нагрузку, но и удаленно отключать указанные администратором порты. Данная операция существенно упрощается при наличии у администратора карты сети, на которой имеются данные о том, какие ПК подключены к соответствующим портам коммутатора и где они расположены;
- применение ловушек (honeypot) — в локальной сети настоятельно рекомендуется создать несколько ловушек, которые позволят администратору своевременно обнаружить эпидемию.
Автоматический анализ ПК можно свести к трем основным этапам:
- проведение полного исследования ПК — запущенные процессы, загруженные библиотеки и драйверы, автозапуск;
- проведение оперативного обследования — например поиск характерных процессов или файлов;
- карантин объектов по определенным критериям.
Все перечисленные задачи можно решить при помощи авторской утилиты AVZ, которая рассчитана на запуск из сетевой папки на сервере и поддерживает скриптовый язык для автоматического обследования ПК. Для запуска AVZ на компьютерах пользователей необходимо:
- Поместить AVZ в открытую для чтения сетевую папку на сервере.
- Создать в этой папке подкаталоги LOG и Qurantine и разрешить пользователям запись в них.
- Запустить AVZ на компьютерах ЛВС при помощи утилиты rexec или логон-скрипта.
Запуск AVZ на шаге 3 должен производиться при таких параметрах:
\\my_server\AVZ\avz.exe Priority=-1 nw=Y nq=Y HiddenMode=2 Script=\\my_server\AVZ\my_script.txt
Рис. 1. Редактор скриптов AVZ
Рассмотрим три типовых скрипта, которые могут пригодиться в ходе борьбы с эпидемией. Во-первых, нам потребуется скрипт для исследования ПК. Задача скрипта — произвести исследование системы и создать протокол с результатами в заданной сетевой папке. Скрипт имеет следующий вид:
// Включение сторожевого таймера на 10 минут
// Запуск сканирования и анализа
//Завершение работы AVZ
В ходе выполнения данного скрипта в папке LOG (предполагается, что она создана в каталоге AVZ на сервере и доступна пользователям для записи) будут создаваться HTML-файлы с результатами исследования компьютеров сети, причем для обеспечения уникальности в имя протокола включается имя исследуемого компьютера. В начале скрипта располагается команда включения сторожевого таймера, который принудительно завершит процеcc AVZ через 10 минут в случае, если в ходе выполнения скрипта возникнут сбои.
Протокол AVZ удобен для изучения вручную, однако для автоматизированного анализа он мало пригоден. Кроме того, администратору часто известно имя файла вредоносной программы и требуется только проверить наличие или отсутствие данного файла, а при наличии — поместить в карантин для анализа. В этом случае можно применить скрипт следующего вида:
// Включение сторожевого таймера на 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;
if Result then begin
case CheckFile(FName) of
-1 : S := ‘, доступ к файлу блокируется’;
1 : S := ‘, опознан как Malware (‘+GetLastCheckTxt+’)’;
2 : S := ‘, подозревается файловым сканером (‘+GetLastCheckTxt+’)’;
3 : exit; // Безопасные файлы игнорируем
AddToLog(‘Файл ‘+NormalFileName(FName)+’ имеет подозрительное имя’+S);
//Добавление указанного файла в карантин
SuspNames : TStringList; // Список имен подозрительных файлов
// Проверка файлов по обновляемой базе данных
if FileExists(GetAVZDirectory + ‘files.db’) then begin
AddToLog(‘База имен загружена - количество записей = ‘+inttostr(SuspNames.Count));
for i := 0 to SuspNames.Count - 1 do
AddToLog(‘Ошибка загрузки списка имен файлов’);
Для работы данного скрипта необходимо создать в папке AVZ доступные пользователям для записи каталоги Quarantine и LOG, а также текстовый файл files.db — каждая строка данного файла будет содержать имя подозрительного файла. Имена файлов могут включать макросы, наиболее полезные из которых — %WinDir% (путь к папке Windows) и %SystemRoot% (путь к папке System32). Другим направлением анализа может стать автоматическое исследование списка процессов, запущенных на компьютерах пользователей. Информация о запущенных процессах есть в протоколе исследования системы, но для автоматического анализа удобнее применять следующий фрагмент скрипта:
// Обновление списка процессов
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)+’,’;
AddLineToTxtFile(GetAVZDirectory+’\LOG\_alarm.txt’, DateTimeToStr(Now)+’ ‘+GetComputerName+’ : ‘+S);
AddLineToTxtFile(GetAVZDirectory+’\LOG\_all_process.txt’, DateTimeToStr(Now)+’ ‘+GetComputerName+’ : ‘+S1);
В завершение рассмотрим последний из полезных скриптов анализа — скрипт автоматического карантина всех файлов, которые не опознаются по базе безопасных AVZ и по базе ЭЦП Microsoft:
Автоматический карантин изучает запущенные процессы и загруженные библиотеки, службы и драйверы, около 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) можно использовать устаревший компьютер, производительность которого не позволяет применять его для решения производственных задач. Например, в сети автора в качестве ловушки успешно применяется 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.
Рис. 2. Создание и настройка предупреждения о сетевой активности
В качестве предупреждения удобнее всего использовать сообщения электронной почты, отправляемые на почтовый ящик администратора, — в этом случае можно получать оперативные оповещения от всех ловушек в сети. Кроме того, если сниффер позволяет создавать несколько предупреждений, есть смысл дифференцировать сетевую активность, выделив работу с электронной почтой, FTP/HTTP, TFTP, Telnet, MS Net, повышенный трафик более 20-30 пакетов в секунду по любому протоколу (рис. 3).
Рис. 3. Письмо-оповещение, высылаемое
в случае обнаружения пакетов, соответствующих заданным критериям
При организации ловушки неплохо разместить на ней несколько применяемых в сети уязвимых сетевых служб или установить их эмулятор. Простейшим (и бесплатным) является авторская утилита APS, работающая без инсталляции. Принцип работы APS сводится к прослушиванию множества описанных в ее базе портов TCP и UDP и выдаче в момент подключения заранее заданного или случайно генерируемого отклика (рис. 4).
Рис. 4. Главное окно утилиты APS
Дистанционное удаление вредоносных программ
В идеальном случае после обнаружения образцов вредоносных программ администратор отправляет их в антивирусную лабораторию, где они оперативно изучаются аналитиками и в базы антивируса вносятся соответствующие сигнатуры. Эти сигнатуры через автоматическое обновление попадают на ПК пользователей, и антивирус производит автоматическое удаление вредоносных программ без вмешательства администратора. Однако эта цепочка не всегда работает как положено, в частности возможны следующие причины сбоя:
- по ряду независимых от администратора сети причин образы могут не дойти до антивирусной лаборатории;
- недостаточная оперативность антивирусной лаборатории — в идеале на изучение образцов и их внесение в базы уходит не более 1-2 часов, то есть в пределах рабочего дня можно получить обновленные сигнатурные базы. Однако не все антивирусные лаборатории работают столь оперативно, и обновления можно ждать несколько дней (в редких случаях — даже недель);
- высокая работоспособность антивируса — ряд вредоносных программ после активации уничтожают антивирусы или всячески нарушают их работу. Классические примеры — внесение в файл hosts записей, блокирующих нормальную работу системы автообновления антивируса, удаление процессов, службы и драйверов антивирусов, повреждение их настроек и т.п.
Следовательно, в перечисленных ситуациях придется бороться с вредоносными программами вручную. В большинстве случаев это несложно, так как по результатам исследования компьютеров известны зараженные ПК, а также полные имена файлов вредоносных программ. Остается только произвести их дистанционное удаление. Если вредоносная программа не защищается от удаления, то уничтожить ее можно скриптом AVZ следующего вида:
// Эвристическая чистка системы
Данный скрипт удаляет один заданный файл (или несколько файлов, так как команд DeleteFile в скрипте может быть неограниченное количество) и затем производит автоматическую чистку реестра. В более сложном случае вредоносная программа может защищаться от удаления (например, пересоздавая свои файлы и ключи реестра) или маскироваться по руткит-технологии. В этом случае скрипт усложняется и будет иметь следующий вид:
// Включение протоколирования BootCleaner
// Импорт в задание BootCleaner списка файлов, удаленных скриптом
Вредоносные программы могут проявляться не только в виде подозрительных процессов или файлов автозапуска, но и в виде сетевой активности. Черви используют сеть для распространения, троянские программы - для загрузки дополнительных компонентов и отсылки информации злоумышленнику.
Некоторые типы троянских программ специально предназначены для обеспечения удаленного управления зараженным компьютером. Для обеспечения доступа к компьютеру по сети со стороны злоумышленника они открывают определенный порт.
Что такое порт? Как известно, каждый компьютер обладает IP-адресом, на который этому компьютеру можно передавать данные. Но если на компьютере имеется несколько программ, работающих с сетью, например, почтовый сервер и веб-сервер, как определить, какие данные какой программе предназначены? Для этого и используются порты. За каждой программой, ожидающей данные из сети закрепляется определенное число - номер порта, а данные, пересылаемые на компьютер, кроме адреса компьютера содержат также и номер порта, чтобы было понятно, какая программа должна получить эти данные.
Как правило, похожие по назначению программы используют одни и те же порты для приема соединений. Почтовый сервер использует порт 25 для приема исходящих писем от почтовых клиентов. Веб-сервер использует порт 80 для приема соединений от браузеров. Впрочем, никаких принципиальных ограничений на использование портов нет, кроме того, что две программы не могут использовать один и тот же порт.
Аналогично почтовому серверу, вредоносные программы для приема команд или данных от злоумышленника используют определенный порт, постоянно ожидая сигналов на этот порт. В таких случаях принято говорить, что программа слушает порт.
Определить, какие порты слушаются на компьютере можно при помощи команды netstat -n. Для ее выполнения сперва нужно запустить командную оболочку. В случае Windows NT, 2000, XP и 2003 она запускается командой cmd.exe, а в Windows 98 и Me - command.com. Для запуска используются команды Выполнить в меню Пуск.
После выполнения в командной оболочке команды netstat -a в том же окне отображаются данные об установленных соединениях и открытых портах (тех, которые слушаются). Выглядит это как на рисунке 4.7.
Рис. 4.7. Команда netstat -a
Результатом выполнения команды является список активных подключений, в который входят установленные соединения и открытые порты. Открытые TCP-порты 2) обозначаются строкой LISTENING в колонке состояние. Часть портов связана с системными службами Windows и отображается не по номеру, а по названию - epmap, microsoft-ds, netbios-ssn. Порты, не относящиеся к стандартным службам, отображаются по номерам.
UDP-порты обозначаются строкой UDP в колонке Имя. Они не могут находиться в разных состояниях, поэтому специальная пометка LISTENING в их отношении не используется. Как и TCP-порты они могут отображаться по именам или по номерам.
Порты, используемые вредоносными программами, чаще всего являются нестандартными и поэтому отображаются согласно их номерам. Впрочем, могут встречаться троянские программы, использующие для маскировки стандартные для других приложений порты, например 80, 21, 443 - порты, используемые на файловых и веб-серверах.
Просто обнаружить неизвестные системе (и пользователю) порты мало. Нужно еще узнать, какие программы используют эти порты. Команда netstat не позволяет этого сделать, поэтому потребуется воспользоваться сторонними утилитами, например, утилитой tcpview.exe 3) . Эта утилита отображает более полную информацию о подключениях, включая данные о процессах, слушающих порты. Характерный вид окна утилиты представлен на рисунке 4.8.
Рис. 4.8. Утилита tcpview.exe
Как несложно заметить, утилита TCPView отображает те же данные, что и команда netstat -a, но дополняет их информацией о процессах.
Что делать с результатами поиска
Итак, по результатам анализа процессов, параметров автозагрузки и соединений получен список подозрительных с точки зрения пользователя процессов (имен файлов). Для неопытного пользователя неизвестных, а значит подозрительных имен файлов может оказаться слишком много, поэтому имеет смысл выделить наиболее подозрительные из них - те, которые были обнаружены в двух и более источниках. Например, файлы, которые присутствуют в списке процессов и в списке автозагрузки. Еще более подозрительными являются процессы, обнаруженные в автозагрузке и слушающие порты.
После того, как список подозрительных процессов максимально сужен и в нем остались только те, о которых нет исчерпывающей и достоверной информации, остается последний шаг, найти эти файлы на диске и отправить на исследование в одну из антивирусных компаний для анализа.
Преступность постепенно уходит в интернет – такой вывод можно сделать из августовского доклада Генпрокуратуры РФ. Если общее число преступлений в стране за последний год выросло на 1,9%, то в Сети злоумышленники стали активнее на 46,8%.
Компьютерные вирусы появились одновременно с самими компьютерами. На роль первого зловреда претендует Elk Cloner, созданный в 1981 году 15‑летним американским школьником Ричардом Скрентой. То был невинный розыгрыш: программа попадала на магнитную дискету, и при считывании с нее информации на дисплей ПК выводился стишок-дразнилка.
Попав на устройство, вирус может проделать один из нескольких трюков – в зависимости от того, как злоумышленник решил заработать на жертве. Первый вариант – показать как можно больше рекламы, получив доход от рекламодателей. За это отвечают adware-вирусы, запускающие рекламу почти при каждом действии пользователя, – тот ни в состоянии ни определить источник спама, ни избавиться от него. Неприятно, но еще не худший вариант.
Второй вариант – украсть пользовательские данные с целью продажи в Darknet. Так работают вирусы-трекеры, фиксирующие активность пользователя в браузере – вплоть до списка контактов, паролей, местонахождения. Банковские трояны отслеживают финансовые операции и крадут номера банковских карт.
Четвертый способ монетизации вируса – захват вычислительных ресурсов компьютера. Например, для запуска DDoS-атак на организации: такие атаки требуют много ресурсов, поэтому злоумышленник захватывает сотни устройств, формируя из них зараженную сеть – ботнет.
Одна из главных задач ботнетов в последние годы – скрытая добыча криптовалюты (криптоджекинг), также ресурсоемкая и требующая слаженной работы множества девайсов. В 2017 году, когда биткоин дорожал с каждым месяцем, количество атак с целью криптоджекинга показало феноменальный рост: +8500% за год (данные Symantec). В прошлом году биткоин стабилизировался, что немного успокоило и хакеров. И все же по итогам года криптомайнеры, по данным Check Point, стали самым распространенным типом вирусов (37% атак), обогнав и банковские трояны (13%), и шифровальщиков (4%). Сейчас топ‑3 самых распространенных вирусов в России также составляют криптомайнеры: Cryptoloot, XMRig и Jsecoin (в июне атаковали 11%, 9% и 7% организаций соответственно; данные Check Point).
Вообще, развитие криптовалют привело к всплеску киберпреступности по многим направлениям. Сюда входит и хищение криптокошельков, и организация мошеннических ICO, и использование криптовалют в качестве анонимного способа получить от жертвы выкуп. В общем, что скорее принесет миру эта технология – пользу или вред, еще предстоит разобраться.
От киберугроз сегодня не скроешься, ведь даже для смартфонов, которые мы повсюду носим с собой, создаются миллионы вредоносных программ
Отдельный класс кибератак заточен под мобильные устройства. Их тоже становится все больше: в 2012‑м насчитывалось 214 тыс. известных вредоносов, в 2014‑м – 1,55 млн, в 2018‑м – свыше 4 млн (данные GData). Самый распространенный механизм проникновения – тот же фишинг, только вместо зараженных сайтов носителем вируса выступают фальшивые приложения (fake applications). Они маскируются под обычный софт, вплоть до полного копирования интерфейса и функций.
Дети – самая уязвимая категория пользователей
Впрочем, вредоносы хранятся и в официальном Android-маркете, хотя их доля составляет менее 1% от общего количества программ. Как выяснили специалисты Сиднейского университета, проанализировав более миллиона приложений из GooglePlay, около двух тысяч оказались поддельными. Топ‑3 мобильных вирусов на сегодняшний день по версии Check Point – Lotoor, Triada и Ztorg – также разработаны под ОС Android.
Прежде всего Ильин советует обзавестись на устройстве новой версией антивируса и следить за его обновлениями. Звучит банально, но на практике исполняется не всегда. Более того, проблема своевременного обновления ПО касается не только антивирусов. Согласно исследованию Avast’s PC Trends Report 2019, более половины программ, установленных на компьютерах по всему миру, не имеют критических обновлений.
А многие пользователи отказываются переходить на новые версии Windows, не желая привыкать к интерфейсу. Скоро им придется принимать трудное решение: в январе 2020‑го Microsoft перестанет выпускать обновления безопасности для популярной Windows 7.
Если заражение все-таки произошло, нельзя соглашаться на условия злоумышленника – например, перечислять выкуп за разблокировку устройства. Ведь сам вирус останется в системе, а значит, киберзлодей может повторить тот же трюк. Лучше сделать снимок экрана и обратиться к специалистам: поскольку проблема массовая, с ней научились разбираться. Идеальный вариант – иметь на внешнем винчестере резервную копию важных данных. Тогда шифровальщики нипочем: достаточно отформатировать зараженный компьютер, установить новую ОС, и как будто ничего не было.
А вот сохранность персональных данных, увы, несколькими простыми шагами не обеспечить.
Рынок кибербезопасности растет как вширь, по объемам выручки, так и вглубь, по степени сложности защитных инструментов. Но идеальный антивирус пока не появился и вряд ли когда-либо будет изобретен
По мнению специалистов, виртуальное пространство постепенно удастся превратить из Шервудского леса в культурный городской парк, вот только до этого момента придется набить еще немало шишек. Возможно, наведение порядка ускорится благодаря активности национальных регуляторов, обращающих все более пристальное внимание на сферу киберпреступности.
Lotoor – вирус, использующий уязвимости в ОС Android для получения root-доступа к устройству.
AndroidBauts – вирус, засоряющий смартфон агрессивным рекламным спамом и собирающий данные о местоположении.
Piom – рекламное ПО, отслеживающее активность пользователя в браузере и показывающее таргетированные объявления.
Источник: Check Point Global Threat Index, июль 2019 года.
XMRig – программа для майнинга криптовалюты Монеро, впервые обнаруженная в мае 2017 года.
Jsecoin – вирус для криптоджекинга, встраиваемый в веб-сайты. Добыча криптовалюты начинается прямо в браузере.
Dorkbot – червь, запускающий удаленное исполнение кода и загрузку на компьютер рекламного ПО.
Emotet – троян, поражающий банковские приложения. Распространяется в виде ссылок в письмах, использует различные техники, чтобы остаться незамеченным для антивируса.
Nanocore – многофункциональный троян, делающий снимки экрана, захватывающий контроль над ПК и веб-камерой, а также добывающий криптовалюту.
Agentesla – вирус, крадущий пароли. Перехватывает ввод с клавиатуры, делает снимки экрана, собирает пользовательскую информацию в браузере.
Trickbot – мощный банковский троян, регулярно совершенствуемый для обхода антивирусных систем.
Ramnit – троян, крадущий данные банковских карт, пароли,и личные данные из браузера.
вирус, крадущий пароли, делающий скриншоты, перехватывающий ввод с клавиатуры. Может устанавливать на ПК другие вирусы.
Cryptoloot – программа для криптоджекинга и блокчейн-операций.
Источник: Check Point Global Threat Index, июль 2019 года.
Читайте также: