При рас­сле­дова­нии киберин­циден­тов час­то при­ходит­ся вскры­вать вре­донос­ные прог­раммы, изу­чать их вза­имо­дей­ствие с сетью и фай­ловой сис­темой. Резуль­татом иссле­дова­ния обыч­но ста­новят­ся сиг­натуры вре­доно­са и инди­като­ры ком­про­мета­ции (IOCs), а сам ана­лиз про­водит­ся в изо­лиро­ван­ной сре­де при помощи спе­циаль­ного инс­тру­мен­тария. О том, как устро­ена такая лабора­тория, мы сегод­ня и погово­рим.

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

warning

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

 

Необходимое программное обеспечение

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

  1. VMware Workstation Pro — это гипер­визор для нас­толь­ных компь­юте­ров, отрасле­вой стан­дарт для работы с вир­туаль­ными машина­ми.
  2. Kali Linux или любая дру­гая опе­раци­онная сис­тема на базе ядра Linux. Я исполь­зую Kali, так как в ней по умол­чанию уста­нов­лены необ­ходимые инс­тру­мен­ты.
  3. Windows 10 или дру­гая акту­аль­ная вер­сия Windows. Наиболь­шее количес­тво вре­донос­ных фай­лов раз­работа­но под Windows, поэто­му ана­лизи­ровать их луч­ше имен­но в этой опе­раци­онной сис­теме.
  4. Inetsim — прог­рам­мный про­дукт, пред­назна­чен­ный для модели­рова­ния интернет‑сер­висов в лабора­тор­ных усло­виях, нап­ример для ана­лиза сетево­го поведе­ния неиз­вес­тных образцов вре­донос­ных прог­рамм.
  5. FLARE VM — пол­ностью нас­тра­иваемый набор инс­тру­мен­тов на базе Windows для ана­лиза вре­донос­ных прог­рамм, реаги­рова­ния на инци­ден­ты, тес­тирова­ния на про­ник­новение и так далее.
  6. Burp Suite исполь­зует­ся в качес­тве проз­рачно­го прок­си‑сер­вера с целью ана­лиза вза­имо­дей­ствия вре­донос­ного фай­ла по про­токо­лу HTTPS.
  7. IDA Pro — инте­рак­тивный дизас­сем­блер, исполь­зуемый для реверс‑инжи­нирин­га. Одно из пре­иму­ществ IDA — встро­енный пла­гин Hex Rays, а так­же под­дер­жка отладки уда­лен­ных при­ложе­ний, которая необ­ходима при ана­лизе вре­донос­ных фай­лов под Linux.
 

Создание лаборатории

На­ша лабора­тория будет работать на двух вир­туаль­ных машинах c IP-адре­сами 10.10.10.1 (Kali Linux с уста­нов­ленным Inetsim) и 10.10.10.2 (Windows 10 с уста­нов­ленным прог­рам­мным обес­печени­ем для реверс‑инжи­нирин­га), находя­щих­ся в изо­лиро­ван­ной сети. На вир­туаль­ной машине Kali Linux будут работать раз­личные интернет‑служ­бы, а на вир­туаль­ной машине Windows мы будем иссле­довать вре­донос­ные прог­раммы.

Схема виртуальной лаборатории для анализа вредоносного кода
Схе­ма вир­туаль­ной лабора­тории для ана­лиза вре­донос­ного кода

Со­бирать лабора­торию будем в шесть эта­пов:
1. Уста­нов­ка VMware Workstation Pro, соз­дание вир­туаль­ной машины из обра­за Kali Linux и Windows (я исполь­зую Kali Linux 2019 и Windows 10).
2. Уста­нов­ка необ­ходимо­го ПО на вир­туаль­ную машину Kali Linux.
3. Уста­нов­ка необ­ходимо­го ПО на вир­туаль­ную машину Windows 10.
4. Нас­трой­ка изо­лиро­ван­ной вир­туаль­ной сети.
5. Нас­трой­ка ПО Inetsim.
6. Тес­тирова­ние работос­пособ­ности нашей лабора­тории.

 

Установка Inetsim

По умол­чанию в Kali Linux уже уста­нов­лен Inetsim, но, если ты исполь­зуешь дру­гую опе­раци­онную сис­тему на базе ядра Linux, про­цесс уста­нов­ки очень прост и опи­сан в до­кумен­тации. Дос­таточ­но про­читать инс­трук­цию для заг­рузки па­кета Inetsim при помощи ути­литы apt либо dpkg.

 

Установка необходимого ПО на виртуальную машину Windows

При иссле­дова­нии вре­донос­ных фай­лов необ­ходимо иметь под­ходящий инс­тру­мен­тарий. Я исполь­зую FLARE VM — набор инс­тру­мен­тов для ста­тичес­кого и динами­чес­кого ана­лиза вре­донос­ных прог­рамм.

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

  1. Заг­ружа­ем фай­лы из репози­тория flare-vm: git clone https://github.com/mandiant/flare-vm.git.
  2. От­кры­ваем PowerShell от име­ни адми­нис­тра­тора.
  3. Раз­бло­киру­ем уста­новоч­ный файл, выпол­нив коман­ду Unblock-File .\install.ps1.
  4. Вклю­чаем выпол­нение скрип­та с помощью коман­ды Set-ExecutionPolicy Unrestricted.
  5. Вы­пол­няем сце­нарий уста­нов­щика: .\install.ps1.

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

Так, в пап­ке Debuggers лежит набор отладчи­ков, в катало­ге PE — инс­тру­мен­ты для ана­лиза PE-фай­лов, поз­воля­ющие выяв­лять ком­пилято­ры, упа­ков­щики или крип­торы, в дирек­тории Disassemblers, соот­ветс­твен­но, хра­нят­ся инс­тру­мен­ты для дизас­сем­бли­рова­ния. В ком­плек­те пос­тавки име­ется бес­плат­ная вер­сия IDA, но я советую при­обрести лицен­зион­ный про­дукт. Так­же для раз­работ­ки YARA-пра­вил рекомен­дую уста­новить YARA Editor.

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

 

Настройка изолированной виртуальной сети

Пос­ле нас­трой­ки вир­туаль­ных машин необ­ходимо соз­дать изо­лиро­ван­ную сеть, которая будет свя­зывать две наши вир­туал­ки. Откры­ваем вклад­ку каж­дой вир­туаль­ной машины, перехо­дим к раз­делу VM → Settings → Network Adapter и соз­даем LAN Segment.

Создание LAN-сегмента
Соз­дание LAN-сег­мента

Нас­тра­иваем интерфейс на Kali Linux, уста­нав­лива­ем IP-адрес 10.10.10.1, мас­ка сети 24.

Настройка сетевого интерфейса Kali Linux
Нас­трой­ка сетево­го интерфей­са Kali Linux

Нас­тра­иваем интерфейс для Windows 10: IP-адрес 10.10.10.2, мас­ка 255.255.255.0, основной шлюз 10.10.10.1, пред­почита­емый DNS-сер­вер 10.10.10.1.

Настройка интерфейса для Windows 10
Нас­трой­ка интерфей­са для Windows 10

Про­веря­ем дос­тупность вто­рой машины в нашей вир­туаль­ной сети:

ping 10.10.10.1
Проверка работоспособности изолированной сети
Про­вер­ка работос­пособ­ности изо­лиро­ван­ной сети
 

Настройка ПО Inetsim

Файл кон­фигура­ции Inetsim рас­положен по пути /etc/inetsim/inetsim.conf. Откро­ем его, что­бы нас­тро­ить прог­рамму.

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Вариант 2. Открой один материал

Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.


  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    5 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии