Комплекс шкоднаснага ВА "Дроваруб" заражае АС Linux

Агенцтва нацыянальнай бяспекі і Федэральнае бюро расследаванняў ЗША апублікавалі справаздачу, паводле якога 85-м галоўным цэнтрам спецыяльнай службы ГУ ГШ ВС РФ (85 ГЦСС ГРУ) выкарыстоўваецца комплекс шкоднаснага ПА пад назвай «Дроваруб». У склад «Дроваруба» уваходзяць руткіт у выглядзе модуля ядра Linux, прылада для перасылкі файлаў і перанакіраванні сеткавых партоў і кіравальны сервер. Кліенцкая частка можа спампоўваць і выгружаць файлы, выконваць адвольныя каманды ад імя карыстальніка root і перанакіроўваць сеткавыя парты на іншыя вузлы сеткі.

Кіруючы цэнтр «Драваруба» аргументам каманднага радка атрымлівае шлях да канфігурацыйнага файла ў фармаце JSON:

{
db_host : »,
"db_port" : " »,
"db_db" : " »,
"db_user" : " »,
"db_password" : " »,

«lport» : « »,
«lhost» : « »,
«ping_sec» : « »,

«priv_key_file» : « »,
«phrase» : « »
}

У якасці бэкенда выкарыстоўваецца СКБД MySQL. Для падлучэння кліентаў выкарыстоўваецца пратакол WebSocket.

Кліент мае ўбудаваную канфігурацыю, у тым ліку URL сервера, яго публічны ключ RSA, імя карыстальніка і пароль. Пасля ўсталёўкі руткіта канфігурацыя захоўваецца ў выглядзе тэкставага файла ў фармаце JSON, які хаваецца ад сістэмы модулем ядра «Драваруба»:

{
«id» : «cbcf6abc-466b-11e9-853b-000c29cb9f6f»,
"key": "Y2xpZW50a2V5"
}

Тут "id" - унікальны ідэнтыфікатар, выдадзены серверам, у якім апошнія 48 біт адпавядаюць MAC-адрасу сеткавага інтэрфейсу сервера. Параметр "key" па змаўчанні - закадаваны ў фармаце base64 радок "clientkey", якая выкарыстоўваецца серверам пры першасным поціску рукі. Акрамя гэтага, канфігурацыйны файл можа ўтрымоўваць інфармацыю аб якія хаваюцца файлах, модулях і сеткавых партах:

{
«id» : «6fa41616-aff1-11ea-acd5-000c29283bbc»,
"key": "Y2xpZW50a2V5",
«monitor» : {
"file" : [
{
"active" : "true",
«id» : «d9dc492b-5a32-8e5f-0724-845aa13fff98»,
"mask" : "testfile1"
}
],
«module» : [
{
"active" : "true",
«id» : «48a5e9d0-74c7-cc17-2966-0ea17a1d997a»,
"mask" : "testmodule1"
}
],
"net" : [
{
"active" : "true",
«id» : «4f355d5d-9753-76c7-161e-7ef051654a2b»,
port : 12345,
"protocol" : "tcp"
}
]}
}

Яшчэ адзін кампанент "Драваруба" - агент, яго канфігурацыйны файл змяшчае інфармацыю для падлучэння да сервера:

{
"client_login" : "user123",
"client_pass" : "pass4567",
"clientid" : "e391847c-bae7-11ea-b4bc-000c29130b71",
«clientkey_base64» : «Y2xpZW50a2V5»,
"pub_key_file" :"public_key",
"server_host" : "192.168.57.100",
"server_port" :"45122",
"server_uri" :"/ws"
}

Палі "clientid" і "clientkey_base64" першапачаткова адсутнічаюць, яны дадаюцца пасля першаснай рэгістрацыі на серверы.

Пасля ўстаноўкі выконваюцца наступныя аперацыі:

  • загружаецца модуль ядра, які рэгіструе хукі для сістэмных выклікаў;
  • кліент выконвае рэгістрацыю ў модулі ядра;
  • модуль ядра хавае працавальны працэс кліента і яго выкананы файл на дыску.

Для ўзаемадзеяння кліента з модулем ядра выкарыстоўваецца псеўдабудаванне, напрыклад /dev/zero. Модуль ядра выконвае разбор усіх якія запісваюцца ў прыладу дадзеных, а для перадачы ў зваротным кірунку пасылае кліенту сігнал SIGUSR1, пасля чаго той счытвае дадзеныя з гэтай жа прылады.

Для выяўлення "Дроваруба" можна выкарыстоўваць аналіз сеткавага трафіку сродкамі NIDS (шкоднасную сеткавую актыўнасць у самай заражанай сістэме выявіць не атрымоўваецца, бо модуль ядра хавае выкарыстоўваныя ім сеткавыя сокеты, правілы netfilter і пакеты, якія маглі б перахапіцца raw-сокетамі). У сістэме, дзе ўсталяваны «Дроваруб», можна выявіць модуль ядра, адправіўшы яму каманду ўтойвання файла:

touch testfile
echo "ASDFZXCV:hf:testfile" > /dev/zero
ls

Створаны файл "testfile" пры гэтым становіцца нябачным.

Іншыя метады выяўлення ўключаюць аналіз памяці і змесціва кружэлкі. Для прадухілення заражэння рэкамендуецца выкарыстоўваць абавязковую праверку подпісу ядра і модуляў, даступную пачынальна з версіі ядра linux 3.7.

У справаздачы змяшчаюцца правілы Snort для выяўлення сеткавай актыўнасці «Драваруба» і правілы Yara для дэтэктавання яго кампанентаў.

Нагадаем, што 85 ГЦСС ГРУ (в/ч 26165) асацыюецца з групай APT28 (Fancy Bear), адказнай за шматлікія кібератакі.

Крыніца: opennet.ru