Тхреат Датабасе Руткитови ЛинкПро Линукс руткит

ЛинкПро Линукс руткит

Недавно компромитовање окружења Amazon Web Services (AWS) открило је раније недокументовани GNU/Linux руткит, праћен као LinkPro. Овај задњи улаз је познат по својој двострукој употреби eBPF модула: један сет за скривање артефаката, а други који делује као прикривени окидач — „куцање“ које буди функционалност даљинске команде тек након што се види посебно креиран TCP пакет. Ланац напада и механизми руткита илуструју софистицираног оператера који комбинује злоупотребу контејнера, скривање на нивоу језгра и флексибилну активацију мреже како би онемогућио откривање и форензичку корелацију.

Вектор инфекције и почетно распоређивање

Упад је почео експлоатацијом изложене Jenkins инстанце рањиве на CVE‑2024‑23897 (CVSS 9.8). Са тог упоришта, нападачи су убацили злонамерну Docker слику (kvlnt/vv, која је касније уклоњена из Docker Hub-а) у више Kubernetes кластера. Слика је користила Kali Linux базу и садржала је малу фасциклу апликације намењену за успостављање перзистентности, удаљеног приступа и постепеног преузимања преко задњих врата.

Унутар злонамерне Docker слике

Фолдер апликације слике садржао је три кључне датотеке са различитим улогама:

start.sh — shell скрипта која покреће SSH сервис и извршава друге две компоненте.

линк — програм отвореног кода (vnt) компајлиран/упакован да делује као VPN/прокси клијент, који се повезује ка vnt.wherewego[.]top:29872. Ово омогућава нападачу да досегне угрожени хост са било ког места и да се преко њега усмери ка другим циљевима.

апликација — програм за преузимање базиран на Rust-у (који се назива vGet) који преузима шифровани vShell корисни терет из S3 корпе, а затим успоставља WebSocket везу са својим командним и контролним (C2) сервером на 56.155.98[.]37.

Додатни корисни терет испоручени на Kubernetes чворове

Уз злонамерну слику, оператери су такође поставили још две компоненте на чворове: дропер који инсталира још један vShell бекдор и LinkPro, руткит написан на Golang-у. LinkPro је дизајниран да ради у једном од два режима — пасивном (обрнуто) или активном (напред) — у зависности од његове конфигурације. У пасивном режиму, чека да га активира посебан мрежни пакет; у активном режиму, покреће контакт са самим C2. Режим напред подржава пет транспортних протокола (HTTP, WebSocket, UDP, TCP, DNS), док обрнути режим ограничава комуникацију на HTTP.

Како ЛинкПро опстаје

Укупно извршавање и постојаност злонамерног софтвера прате јасан редослед:

  • Инсталирајте модул Hide eBPF. Овај модул укључује програме Tracepoint и Kretprobe eBPF који се користе за прикривање процеса и мрежне активности компаније LinkPro.
  • Ако инсталирање модула Hide eBPF не успе — или ако је онемогућен — инсталирајте дељену библиотеку на /etc/libld.so и додајте ту путању до /etc/ld.so.preload као резервни механизам сакривања.
  • За обрнути (пасивни) рад, инсталирајте Knock eBPF модул. Knock садржи XDP програм и TC програм, тако да C2 канал постаје активан тек након пријема одређеног „магичног пакета“.
  • Успоставите перзистентност креирањем системске услуге.
  • Извршите команде примљене од C2.
  • Приликом гашења система или када се то сигнализира (SIGHUP, SIGINT, SIGTERM), деинсталирајте eBPF модуле и уклоните/вратите модификацију /etc/libld.so прелоад-а како би се систем вратио у претходно стање.

Магични пакет и механизам за активирање куцањем

Пасивна активација ЛинкПро-а зависи од прецизног ТЦП пакета: сваки ТЦП пакет чија је величина прозора једнака 54321 третира се као „магични пакет“. Када Knock детектује тај пакет, чува изворну ИП адресу и означава је роком трајања од једног сата. Накнадни ТЦП пакети из тог извора се прате и, када је то прикладно, Knock преписује заглавља тако да се саобраћај оператера преусмерава на ЛинкПро-ов порт за слушање (2333). Одлазни пакети се подешавају тако да се оригинални порт враћа мрежи (изворни порт преписан на 2233). Намера је једноставна, али ефикасна: омогућити нападачу да дође до ЛинкПро-а преко било ког порта који дозвољава фронт-енд заштитни зид, а истовремено отежати повезивање логова екстерног заштитног зида са активностима интерне мреже хоста.

Како се ЛинкПро скрива

ЛинкПро користи двослојну стратегију прикривања:

Сакривање језгра/eBPF-а : Модул Hide eBPF инсталира програме Tracepoint и Kretprobe који пресрећу системске позиве као што су getdents (за сакривање датотека/директоријума) и sys_bpf (за сакривање сопствених BPF програма). Овај приступ захтева језгро изграђено са омогућеном опцијом CONFIG_BPF_KPROBE_OVERRIDE.

Резервна опција LD_PRELOAD у корисничком простору : Ако могућност језгра није присутна, LinkPro пише дељену библиотеку (libld.so) и смешта њену путању у /etc/ld.so.preload. Пошто /etc/ld.so.preload узрокује да се наведена библиотека учита у сваки динамички повезани процес (оне који користе /lib/ld-linux.so и glibc), имплантирана libld.so рано качује libc функције (пре сопственог понашања glibc-а) и мења повратне вредности из libc позива како би сакрила артефакте који би иначе открили њено присуство.

Могућности руткита и скуп команди

LinkPro подржава и интерактивне и аутоматизоване даљинске акције. Његове имплементиране функције укључују:

  • Покретање псеудо-терминала /bin/bash и покретање интерактивних сесија шелла.
  • Извршавање произвољних команди шкољке.
  • Набрајање датотека и директоријума и извршавање операција са датотекама.
  • Преузимање и писање датотека на диск.
  • Успостављање SOCKS5 прокси тунела за пивотинг и проксирање ван мреже.

Подршка за мрежни протокол и понашање C2

У активном (напредном) режиму, LinkPro је флексибилан: може да комуницира користећи HTTP, WebSocket, UDP, TCP или DNS транспорте. У пасивном (обрнутом) режиму, његова комуникација је ограничена на HTTP, али има користи од прикривености јер слуша тек након што је Knock magic пакет отворио привремени једносатни командни прозор.

Понашање при чишћењу и деинсталацији

Ако процес прими сигнале за завршетак, LinkPro има за циљ да уклони трагове: деинсталира инсталиране eBPF модуле и брише или враћа /etc/libld, групишући га у претходно стање тако да систем изгледа непромењено. Ова намерна рутина чишћења указује на оператера који је забринут због избегавања и минимизирања дугорочних форензичких трагова.

Оперативни контекст и атрибуција

Кампања је користила експлоит Џенкинс-а високог степена озбиљности, злонамерне слике контејнера, вишеструке варијанте задњих врата и прикривени приступ на нивоу језгра — комбинација која указује на мотивисаног, способног оператера. Дефинитивна атрибуција није објављена; међутим, скуп алата и очигледна употреба компромита за проксирање и трајни даљински приступ снажно указују на финансијски мотивисану активност (окретање, проксирање за додатне упаде или препродаја приступа).

Зависност од језгра и резервно понашање

Пошто се ЛинкПро ослања на функције заостављања BPF kprobe-а за своје прикривено пресретање језгра, он примењује технику скривања на нивоу језгра само када језгро домаћина открије CONFIG_BPF_KPROBE_OVERRIDE. Тамо где та могућност језгра недостаје, ЛинкПро се намерно враћа на метод дељене библиотеке LD_PRELOAD да би се сакрио у корисничком простору, осигуравајући прикривеност у широком спектру окружења.

Завршна напомена

ЛинкПро показује како модерни упади могу да комбинују компромитовање контејнера, постепено учитаване програме, инструментацију језгра (eBPF) и паметне мрежне трикове (активација магичних пакета и преписивање портова) како би се одржала прикривеност и флексибилност. Детекција и санација захтевају пажљиву инспекцију неовлашћених eBPF програма, неочекиваних уноса у /etc/ld.so.preload, необичних системских сервиса и мрежних веза са назначеном инфраструктуром (форензички индикатори укључују IP адресу 56.155.98[.]37, портове 29872, 2333, 2233 и уклоњено име Docker слике kvlnt/vv).

У тренду

Најгледанији

Учитавање...