Дуку је злонамерна матрјошка

Увод

Дана 1. септембра 2011, датотека под називом ~ДН1.тмп је послата на веб локацију ВирусТотал из Мађарске. У то време, само два антивирусна механизма – БитДефендер и АВИРА – открила су датотеку као злонамерну. Тако је почела прича о Дућу. Гледајући унапред, мора се рећи да је породица малвера Дуку добила име по имену ове датотеке. Међутим, ова датотека је потпуно независан модул шпијунског софтвера са функцијама кеилоггер-а, инсталиран, вероватно, помоћу злонамерног довнлоадер-дроппер-а, и може се сматрати само „корисним оптерећењем“ који је учитао Дуку малвер током свог рада, а не као компонента ( модул) од Дуку . Једна од компоненти Дуку послата је сервису Вирустотал тек 9. септембра. Његова карактеристична карактеристика је драјвер дигитално потписан од стране Ц-Медиа. Неки стручњаци су одмах почели да праве аналогије са још једним познатим примером малвера – Стукнет, који је такође користио потписане драјвере. Укупан број рачунара заражених Дуку-ом које су откриле различите антивирусне компаније широм света је на десетине. Многе компаније тврде да је Иран поново главна мета, али судећи по географској дистрибуцији зараза, то се не може са сигурношћу рећи.
Дуку је злонамерна матрјошка
У овом случају, требало би самоуверено да говорите само о другој компанији новом речју APT (напредна трајна претња).

Поступак имплементације система

Истрага коју су спровели стручњаци мађарске организације ЦриСиС (Мађарска лабораторија за криптографију и безбедност система на Универзитету за технологију и економију у Будимпешти) довела је до открића инсталатера (дроппер) преко којег је систем заражен. То је био Мицрософт Ворд фајл са експлоатацијом за рањивост драјвера вин32к.сис (МС11-087, описао је Мицрософт 13. новембра 2011), која је одговорна за механизам за приказивање ТТФ фонтова. Шел код експлоатације користи фонт под називом 'Дектер Регулар' који је уграђен у документ, а Сховтиме Инц. је наведен као креатор фонта. Као што видите, творцима Дукуа смисао за хумор није странац: Дектер је серијски убица, јунак истоимене телевизијске серије у продукцији Сховтимеа. Декстер убија само (ако је могуће) криминалце, односно крши закон у име законитости. Вероватно су на овај начин програмери Дукуа иронични да се баве незаконитим активностима у добре сврхе. Слање мејлова је урађено намерно. Пошиљка је највероватније користила компромитоване (хаковане) рачунаре као посредника да отежа праћење.
Ворд документ је стога садржао следеће компоненте:

  • садржај текста;
  • уграђени фонт;
  • екплоит схеллцоде;
  • возач;
  • инсталатер (ДЛЛ библиотека).

Ако је успешан, експлоатациони схеллцоде је извршио следеће операције (у режиму кернела):

  • извршена је провера за поновну инфекцију; за то је проверено присуство кључа „ЦФ4Д“ у регистру на адреси „ХКЕИ_ЛОЦАЛ_МАЦХИНЕСОФТВАРЕМицрософтВиндовсЦуррентВерсионИнтернет СеттингсЗонес1“; ако је то било тачно, схеллцоде је завршио своје извршавање;
  • дешифроване су две датотеке - драјвер (сис) и инсталатер (длл);
  • драјвер је убачен у процес сервицес.еке и покренут је инсталатер;
  • Коначно, схеллцоде се избрисао са нулама у меморији.

Због чињенице да се вин32к.сис извршава у име привилегованог корисника „Систем“, Дуку програмери су елегантно решили проблем како неовлашћеног покретања тако и ескалације права (покреће се под корисничким налогом са ограниченим правима).
Након што је добио контролу, инсталатер је дешифровао три блока података који се налазе у њему у меморији, а који садрже:

  • потписани драјвер (сис);
  • главни модул (длл);
  • конфигурациони подаци инсталатера (пнф).

Опсег датума је наведен у подацима о конфигурацији инсталатера (у облику две временске ознаке - почетак и крај). Инсталатер је проверио да ли је тренутни датум укључен у њега, а ако није, завршио је његово извршење. Такође у конфигурационим подацима инсталатера била су имена под којима су сачувани драјвер и главни модул. У овом случају, главни модул је сачуван на диску у шифрованом облику.

Дуку је злонамерна матрјошка

За аутоматско покретање Дуку-а, креирана је услуга помоћу датотеке драјвера која је дешифровала главни модул у ходу користећи кључеве ускладиштене у регистру. Главни модул садржи сопствени блок података о конфигурацији. Приликом првог покретања, дешифрован је, у њега је унет датум инсталације, након чега је поново шифрован и сачуван од стране главног модула. Тако су у погођеном систему, након успешне инсталације, сачуване три датотеке - драјвер, главни модул и датотека са његовим конфигурационим подацима, док су последња два фајла сачувана на диску у шифрованом облику. Све процедуре декодирања су спроведене само у меморији. Ова сложена процедура инсталације је коришћена да би се смањила могућност откривања од стране антивирусног софтвера.

Главни модул

Главни модул (ресурс 302), према информације компаније Касперски Лаб, написан користећи МСВЦ 2008 на чистом Ц-у, али користећи објектно оријентисани приступ. Овај приступ није карактеристичан за развој злонамерног кода. По правилу, такав код је написан у Ц-у како би се смањила величина и ослободили имплицитних позива својствених Ц++-у. Овде постоји одређена симбиоза. Плус, коришћена је архитектура вођена догађајима. Запослени у Касперски Лаб-у су склони теорији да је главни модул написан помоћу додатка за претпроцесор који вам омогућава да пишете Ц код у објектном стилу.
Главни модул је одговоран за процедуру пријема команди од оператера. Дуку пружа неколико метода интеракције: коришћење ХТТП и ХТТПС протокола, као и коришћење именованих цеви. За ХТТП(С) наведена су имена домена командних центара, а обезбеђена је и могућност рада преко прокси сервера – за њих је одређено корисничко име и лозинка. ИП адреса и њено име су специфицирани за канал. Наведени подаци се чувају у блоку података о конфигурацији главног модула (у шифрованом облику).
Да бисмо користили именоване цеви, покренули смо сопствену имплементацију РПЦ сервера. Подржао је следећих седам функција:

  • вратите инсталирану верзију;
  • убаците длл у наведени процес и позовите наведену функцију;
  • лоад длл;
  • покренути процес позивањем ЦреатеПроцесс();
  • прочитати садржај дате датотеке;
  • уписати податке у наведену датотеку;
  • избришите наведену датотеку.

Именоване цеви се могу користити унутар локалне мреже за дистрибуцију ажурираних модула и података о конфигурацији између Дуку-инфицираних рачунара. Поред тога, Дуку би могао да делује као проки сервер за друге заражене рачунаре (који нису имали приступ Интернету због подешавања заштитног зида на мрежном пролазу). Неке верзије Дуку-а нису имале РПЦ функционалност.

Познати "корисни терет"

Симантец је открио најмање четири типа корисних терета преузетих под командом из контролног центра Дуку.
Штавише, само један од њих је био резидентан и компајлиран као извршни фајл (еке), који је сачуван на диску. Преостале три су имплементиране као длл библиотеке. Учитавали су се динамички и извршавали у меморији без чувања на диску.

Стални "корисни терет" био је шпијунски модул (инфостеалер) са функцијама кеилоггера. Послањем ВирусТотал-у почео је рад на Дуку истраживању. Главна шпијунска функционалност била је у ресурсу, чијих првих 8 килобајта је садржало део фотографије галаксије НГЦ 6745 (за камуфлажу). Овде треба подсетити да су у априлу 2012. поједини медији објавили информацију (хттп://ввв.мехрневс.цом/ен/невсдетаил.аспк?НевсИД=1297506) да је Иран био изложен неком злонамерном софтверу „Старс“, док су детаљи о инцидент није обелодањен. Можда је управо такав узорак Дуку "корисног терета" откривен тада у Ирану, па отуда и назив "Звезде".
Шпијунски модул је прикупио следеће информације:

  • списак покренутих процеса, информације о тренутном кориснику и домену;
  • листа логичких диск јединица, укључујући мрежне диск јединице;
  • сцреенсхотс;
  • адресе мрежног интерфејса, табеле рутирања;
  • лог фајл притиска на тастатуру;
  • називи отворених прозора апликација;
  • листа доступних мрежних ресурса (ресурси за дељење);
  • комплетна листа датотека на свим дисковима, укључујући и оне које се могу уклонити;
  • списак рачунара у „мрежном окружењу“.

Још један шпијунски модул (инфостеалер) је била варијација онога што је већ описано, али састављено као длл библиотека; функције кеилоггер-а, састављање листе датотека и листање рачунара укључених у домен су уклоњене из њега.
Следећи модул (извиђање) прикупљене системске информације:

  • да ли је рачунар део домена;
  • путање до Виндовс системских директоријума;
  • верзија оперативног система;
  • тренутно корисничко име;
  • листа мрежних адаптера;
  • систем и локално време, као и временска зона.

Последњи модул (продужетак животног века) имплементирао функцију за повећање вредности (чуване у главној датотеци конфигурационих података модула) броја дана преосталих до завршетка посла. Подразумевано, ова вредност је постављена на 30 или 36 дана у зависности од Дуку модификације и смањивана за један сваки дан.

Командни центри

Дана 20. октобра 2011. године (три дана након објављивања информација о открићу), Дуку оператери су спровели процедуру уништавања трагова функционисања командних центара. Командни центри су се налазили на хакованим серверима широм света – у Вијетнаму, Индији, Немачкој, Сингапуру, Швајцарској, Великој Британији, Холандији, Јужној Кореји. Занимљиво је да су сви идентификовани сервери покретали ЦентОС верзије 5.2, 5.4 или 5.5. Оперативни системи су били и 32-битни и 64-битни. Упркос чињеници да су све датотеке које се односе на рад командних центара избрисане, стручњаци Касперски Лаб-а су успели да поврате неке од информација из ЛОГ датотека из слободног простора. Најзанимљивија чињеница је да су нападачи на серверима увек мењали подразумевани ОпенССХ 4.3 пакет верзијом 5.8. Ово може указивати на то да је непозната рањивост у ОпенССХ 4.3 коришћена за хаковање сервера. Нису сви системи коришћени као командни центри. Неки су, судећи по грешкама у ссхд логовима при покушају преусмеравања саобраћаја за портове 80 и 443, коришћени као прокси сервер за повезивање са крајњим командним центрима.

Датуми и модули

Ворд документ дистрибуиран у априлу 2011, који је прегледала Касперски Лаб, садржао је драјвер за преузимање инсталационог програма са датумом компилације 31. августа 2007. Сличан драјвер (величина - 20608 бајтова, МД5 - ЕЕДЦА45БД613Е0Д9А9Е5Ц69122007Ф17) у документу пронађеном у ЦриСис лабораторијама имао је датум компилације 21. фебруара 2008. Поред тога, стручњаци Касперски Лаб-а су пронашли управљачки програм за аутоматско покретање рндисмпц.сис (величина - 19968 бајтова, МД5 - 9АЕЦ6Е10Ц5ЕЕ9Ц05БЕД93221544Ц783Е) са датумом 20. јануар 2008. Нису пронађене компоненте са ознаком 2009. На основу временских ознака компилације појединих делова Дуку-а, његов развој би могао да датира још од почетка 2007. године. Његова најранија манифестација повезана је са откривањем привремених датотека типа ~ДО (вероватно креираних од стране једног од шпијунских модула), чији је датум креирања 28. новембар 2008 (чланак „Дуку & Стукнет: Хронологија занимљивих догађаја“). Најновији датум повезан са Дуку-ом био је 23. фебруар 2012, садржан у драјверу за преузимање инсталационог програма који је открио Симантец у марту 2012.

Коришћени извори информација:

серија чланака о Дуку-у из Касперски Лаб-а;
Симантец аналитички извештај "В32.Дуку Претеча следећег Стукнета", верзија 1.4, новембар 2011. (пдф).

Извор: ввв.хабр.цом

Додај коментар