Агенцтва нацыянальнай бяспекі і Федэральнае бюро расследаванняў ЗША
Кіруючы цэнтр «Драваруба» аргументам каманднага радка атрымлівае шлях да канфігурацыйнага файла ў фармаце 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) асацыюецца з групай
Крыніца: opennet.ru