Dňa 29. marca 2024 bol v populárnej knižnici pre kompresiu dát XZ Utils (známej tiež ako LZMA Utils, postihnuté verzie 5.6. a 5.6.1) objavený backdoor, ktorý umožňuje neoprávnený vzdialený prístup. Tejto zraniteľnosti bola priradená chyba CVE-2024-3094 s najvyšším možným skóre CVSS 10,0. XZ Utils je open-source softvérový balík, ktorý sa bežne používa v systémoch Linux na kompresiu dát, podobne ako program zip v systéme Windows. Ide o široko rozšírený nástroj, ktorý je často integrovaný do systémov na zostavovanie softvéru, a umožňuje efektívne komprimovať súbory programov počas procesu ich vytvárania. Tým sa nielen šetrí úložný priestor, ale môže sa zlepšiť aj efektivita distribúcie.
Vývojár softvéru v spoločnosti Microsoft, Andres Freund, narazil na zadné dvierka pri vykonávaní testov mikrovýkonu. Všimol si, že procesy SSH trvajú asi o pol sekundy dlhšie ako obvykle. Bol zvedavý, a tak sa pustil do ďalšieho skúmania, aby zistil príčinu. K tomuto šťastnému objavu došlo dostatočne skoro na to, aby mohli byť hlavné linuxové distribúcie v bezpečí. Potenciálne sú postihnuté iba skoré testovacie a vývojové verzie. Útočník to síce pravdepodobne plánoval niekoľko rokov, ale šťastná súhra okolností viedla k jeho včasnému odhaleniu, čím sa predišlo oveľa väčšiemu problému.
Obr. 1: Verejný repozitár XZ je v súčasnej dobe na GitHube vypnutý.
Náš tím Bitdefender Labs túto situáciu pozorne sleduje. Aktívne pátrame po akýchkoľvek známkach škodlivej aktivity a budeme vás informovať prostredníctvom aktualizácií tohto odporúčania. Pokiaľ vás nezaujímajú technické detaily zraniteľnosti, môžete preskočiť na časť s odporúčaniami na konci tohto článku.
Detaily zraniteľnosti
Na základe všetkých dostupných dôkazov sa zdá, že ide o niekoľkoročnú operáciu, za ktorú pravdepodobne stojí štátom organizovaný subjekt. Tu je rozpis časovej osi:
2021 : Je vytvorený účet útočníka s názvom JiaT75 .
2022 : JiaT75 začína prispievať do projektu XZ v systéme Git a buduje si dôveru vývojárskej komunity.
2023 : Prvý krok útočníka spočíval v úprave logiky fuzzingu. Pravdepodobne tak urobil preto, aby skryl (alebo zamaskoval) ďalšie škodlivé zmeny, ktoré plánoval vykonať neskôr.
16. februára 2024 : V súbore .gitignore bola vykonaná zdanlivo nevýznamná zmena, ktorá vylučuje konkrétne makro ( build-to-host.m4 ) z kontroly verzií. Ide o prvý konkrétny dôkaz škodlivej činnosti.
9. marca 2024 : Pridaná posledná časť: pridané obfuskované binárne backdoor súbory ( tests/files/bad-3-corrupt_lzma2.xz a tests/files/good-large_compressed.lzma ).
Existuje mnoho nedorozumení ohľadom toho, kde sa škodlivý kód nachádzal. Útočník síce nahral obfuskovaný škodlivý kód do úložiska Git, ale ten sám o sebe nebol funkčný. V tomto úložisku sa nachádzal zdanlivo neškodný zdrojový kód, ktorý si mohol ktokoľvek pozrieť a prispievať do neho
Na jeho fungovanie bol potrebný ďalší komponent, makro M4. Toto kľúčové makro bolo z repozitára Git zámerne vylúčené. Vývojári ho nevideli, ale počas balenia sa toto makro spúšťalo, čím sa do procesu konfigurácie vložil ďalší obfuskovaný skript.
Obr. 2: Injektovaný kód v makre build-to-host.m4
Tento injektovaný skript potom kontroluje konkrétny typ systému Linux ( x86-64 ) a konkrétny formát balíčkov (Debian alebo RPM). Pokiaľ sú podmienky splnené, upraví MakeFile pre knižnicu liblzma tak, aby sabotoval spôsob, akým za behu vyhľadáva funkcie (symboly). Konkrétne prinúti funkciu RSA_Public_Decrypt() , aby miesto na legitímnu funkciu ukazovala na útočníkov backdoor kód, čo má za následok možnosť vzdialeného spustenia kódu pre útočníka bez autentifikácie.
Odporúčanie
Tejto zraniteľnosti je venovaná veľká pozornosť, ale máme dobrú správu: stabilné verzie hlavných linuxových distribúcií (RHEL, SUSE Linux Enterprise, Debian) nie sú v súčasnej dobe postihnuté. Náš tím v Bitdefender Labs situáciu starostlivo sleduje a pokiaľ sa niečo zmení, budw toto odporúčanie aktualizovať.
Prvým krokom je identifikácia všetkých potenciálne zraniteľných systémov v sieti. Odporúčame použiť nástroj osquery (podporovaný platformou GravityZone), ktorý preverí vaše systémy na konkrétne verzie operačného systému aj XZ Utils. Hľadáte systémy s verziou 5.6.0 alebo 5.6.1. lib/x86_64-linux-gnu" and filename like 'liblzma.so.5.6.%');
Na základe našej analýzy dát (telemetrie) sme nezaznamenali žiadne prípady zneužitia tejto zraniteľnosti v systémoch chránených agentom Bitdefender Endpoint Security Toolkit (BEST). Okrem toho naša telemetria neidentifikovala žiadne systémy so zraniteľným zostavením XZ Utils. Zostávame však proaktívni. Náš antimalware je už vybavený na detekciu tohto backdooru pod názvom Trojan.Linux.XZBackdoor.* .
Aj keď sa zdá, že tieto zadné dvierka boli odhalené skôr, ako mohli spôsobiť rozsiahle škody, je vždy dôležité zostať ostražitý. Situáciu budeme naďalej sledovať a informovať vás o prípadnom novom vývoji.
AUTOR
Martin Zugec Martin je riaditeľom technických riešení v spoločnosti Bitdefender. Je vášnivým bloggerom a rečníkom, ktorý sa už viac ako dvadsať rokov venuje podnikovému IT. Miluje cestovanie, žil v Európe, na Blízkom východe a teraz sa zdržiava na Floride. |
Comments