Skupina UNC5221 zneužila několika zero-day zranitelností v produktech Ivanti

Dne 10. ledna 2024 společnost Ivanti zveřejnila dvě zranitelnosti – CVE-2023-46805 a CVE-2024-21887 – které mají dopad na zařízení Ivanti Connect Secure VPN („ICS“, dříve známé jako Pulse Connect Secure) a Ivanti Policy Secure („IPS“). Objevené zranitelnosti se týkají všech podporovaných verzí a údajně i některých nepodporovaných. Úspěšné zneužití těchto zranitelností může vést k obejití ověřování a k vložení příkazů, jež mohou následně kompromitovat síť oběti.

Za zneužitím zero-day zranitelností s velkou pravděpodobností stojí čínská kyberšpionážní skupina, kterou Mandiant pojmenoval UNC5221, a společnost Veloxity ji sleduje jako UTA0178. Veloxity učinila atribuci Číně již při prvotní analýze. Mandiant se geografické atribuci původně vyhnul, ale v nejnovější analýze se připojil k označení UNC5221 jako čínské skupiny.

Jak byla zranitelnost objevena?

Kyberbezpečnostní firma Volexity během druhého prosincového týdne zaznamenala v síti jednoho ze svých zákazníků laterální pohyb (lateral movement). Po bližším prozkoumání bylo zjištěno, že útočník umisťoval webshelly na několika interních a externích webových serverech. Vyšetřování napříč různými systémy přivedlo Volexity k zařízení VPN Ivanti Connect Secure. Při analýze se zjistilo, že historické logy na zařízení byly vymazány a logování bylo vypnuto. Následná kontrola historického síťového provozu z IP adresy napadeného zařízení odhalila podezřelý odchozí a příchozí provoz.

Na základě analýzy jednoho ze získaných vzorků paměti došlo k odhalení dvou zero-day exploitů, díky kterým – když se na sebe navážou (vulnerability chaining) – je pro útočníky velmi triviální spouštět libovolné příkazy v systému. V tomto případě byly exploity využity ke krádeži konfiguračních dat a úpravě existujících souborů.

Volexity měla možnost pozorovat změny, jež byly prováděny na legitimních komponentách ICS, které mají na starosti kontrolu integrity. Útočník vložil backdoor do legitimního souboru CGI (pozn. jedná se o skript Common Gateway Interface, který je používán webovým serverem ke spuštění externího programu ke zpracování uživatelských požadavků; zpravidla napsán v jazyce C nebo Perl), konkrétně se jednalo o compcheckresult.cgi.

Zároveň došlo k upravení JavaScriptu, který je využíván komponentou Web SSL-VPN za účelem zaznamenávání klíčů a exfiltraci přihlašovacích údajů uživatelů, kteří se do ní přihlašují. Takto získané přihlašovací údaje útočníkům umožnily získat přístup k několika interním systémům v síti. Bylo také zpozorováno, že UNC5221 využívá tunelovací modul PySoxy a soubor linuxových nástrojů BusyBox k opětovnému připojení po exploitaci.

Vzhledem k tomu, že některé části zařízení jsou pouze pro čtení, využila UNC5221 skript Perl (sessionserver.pl) k opětovnému připojení souborového systému pro čtení i zápis a umožnila nasazení nástroje THINSPOOL – dropperu, který zapisuje webshell LIGHTWIRE do legitimního souboru ICS – a dalších navazujících nástrojů.

THINSPOOL funguje jako klíčový nástroj pro persistenci, jeho účelem je vyhnout se detekci a je prvním dropperem pro webshell LIGHTWIRE používaný UNC5221 pro aktivity po exploitaci. Webshelly LIGHTWIRE a WIREFIRE umožňují další nepřetržitý přístup k zařízením ICS. To naznačuje, že se nejedná o oportunistické útoky a skupina UNC5221 si zamýšlela zachovat svou přítomnost na podmnožině cílů s vysokou prioritou. Kromě toho může krádež přihlašovacích údajů prostřednictvím Javascriptu WARPWIRE umožnit další přístup k účtům pro laterální pohyb nebo špionáž.

Při útocích byl zároveň použit pasivní backdoor s názvem ZIPLINE, který dokáže stahovat a odesílat soubory, vytvořit reverzní shell, proxy server a nastavit tunelovací server pro přenos dat mezi více koncovými body.

V rámci následného šetření identifikovala společnost Mandiant další malwary, které jsou skupinou využívány v rámci post-exploitačních aktivit. Ty zahrnují webshelly jako je CHAINLINE, BUSHWALK, FRAMESTING, ZIPLINE a novou variantu LIGHTWIRE.

CHAINLINE je webshell backdoor napsaný v Pythonu, který je vložený v balíčku Ivanti Connect Secure Python a umožňuje útočníkovi provádět libovolné příkazy v systému. Dále došlo k detekování několika doposud nepozorovaných verzí WARPWIRE, jež se zaměřují na krádeže přihlašovacích údajů založených na JavaScriptu.

Nástroj BUSHWALK, napsaný v jazyce Perl, je využíván za účelem obcházení mitigací vydaných společností Ivanti při vysoce cílených útocích. Je vložen do legitimního souboru Connect Secure s názvem „querymanifest.cgi“ a nabízí možnost čtení nebo zápisu do serverových souborů.

Program FRAMESTING je naopak webshell Pythonu vložený do balíčku Ivanti Connect Secure Python (umístěný v následující cestě „/home/venv3/lib/python3.6/site-packages/cav-0.1-py3.6.egg/cav/api/resources/category.py“), který umožňuje spouštění libovolných příkazů.

Analýza pasivního backdooru ZIPLINE také odhalila, že využívá rozsáhlé funkce k zajištění autentizace vlastního protokolu ke komunikaci s C2 serverem.

Šetření Mandiantu byly doplněny analýzou společnosti SYNACKTIV k malwaru KRUSTYLOADER – RUST MALWARE.

Kromě vlastních nástrojů útočníka, které jsou zmíněny výše, byla zaznamenána i řada open source utilit jako je Impacket, CrackMapExec, iodine a Enum4linux, které slouží k podpoře poexploitačních aktivit na zařízeních Ivanti, včetně fáze reconnaissance, lateral movement a exfiltrace dat oběti.

Proč je útok na Ivanti tak velký problém?

VPN (SSL-VPN) představují pro útočníky atraktivní cíl, neboť jim mohou potenciálně poskytnout počáteční přístup a následně přejít do jiných instancí v síti a získat přístup k datům, která by měla být přístupná pouze oprávněným uživatelům.

Ivanti CS VPN je široce rozšířené řešení SSL-VPN používané mnoha vládami a soukromými společnostmi v Severní Americe a v Evropě.

Zranitelnosti umožňují neautentizované spouštění příkazů na zařízení ICS VPN. Při společném zneužití těchto zranitelností tak není vyžadováno ověření a útočníkům je umožněno spustit v napadeném systému libovolné příkazy.

Více než 1 700 zařízení ICS VPN v různých regionech a odvětvích bylo údajně kompromitováno pomocí nainstalovaného webshellu WIREFIRE.

Globální distribuce zařízení Ivanti Connect Secure, 9. leden 2024 (PaloAlto)

Na tyto zranitelnosti reagovalo mnoho vládních institucí, konkrétně německý Spolkový úřad pro bezpečnost informací (BSI) a americký úřad CISA, řadou veřejných prohlášení a doporučení.

Co víme o GIFTEDVISITORU?
Podle Volexity:

GIFTEDVISITOR je webshell v jazyce Python, který útočníci vkládají do komponenty ICS pod názvem visits.py a je vyvolán vždy, když uživatelé přistupují k /api/v1/cav/client/visits.

Pozdější šetření společnosti Volexity odhalilo poněkud odlišnou variantu GIFTEDVISITOR, kdy útočník použil totožný webshell jako ten, který byl pozorován dříve, ale nahradil použitý klíč AES zkráceným řetězcem UUID. Tento formát klíče AES se lišil od toho původně objeveného, který měl hodnotu 1234567812345678. V upraveném GIFTEDVISITORU byl (pravděpodobně) použit jedinečný klíč AES na každém systému oběti jako součást širší kampaně.

Dne 15. ledna 2024 společnost Volexity odhalila více než 1 700 Ivanti Connect Secure VPN zařízení, které byly kompromitované webshellem GIFTEDVISITOR.

Dne 18. ledna 2024 sken odhalil dalších 386 kompromitovaných zařízení ICS. Konečný počet zařízení kompromitovaných GIFTIDVISITOREM je odhadován na více než 2100.

Podle Mandiantu:

Mandiant nazývá GIFTEDVISITOR WIREFIRE. WIREFIRE umožňuje stahování souborů do napadeného zařízení a provádění libovolných příkazů. Obsahuje logiku vloženou před autentizaci, která odpovídá na konkrétní HTTP POST požadavky na /api/v1/cav/client/visits. Pokud položka formdata „file“ existuje, webshell uloží obsah do zařízení se zadaným názvem souboru; pokud ne, webshell se pokusí dekódovat a dešifrovat a zlib se pokusí dekomprimovat všechna nezpracovaná data existující po hlavičce GIF a spustit je jako podproces. Výstup provedeného procesu bude komprimován zlib, zašifrován AES stejným klíčem a zakódován Base64, než bude odeslán zpět jako JSON s polem „message“ přes HTTP 200 OK.

YARA pravidlo pro detekci webshellu WIREFIRE/GIFTEDVISITOR (Mandiant)

rule M_Hunting_Dropper_WIREFIRE_1 {
  meta:
    author = "Mandiant"
    description = "This rule detects WIREFIRE, a web shell written in Python that exists as trojanized logic to a component of the pulse secure appliance."
    md5 = "6de651357a15efd01db4e658249d4981"
  strings:
    $s1 = "zlib.decompress(aes.decrypt(base64.b64decode(" ascii
    $s2 = "aes.encrypt(t+('\\x00'*(16-len(t)%16))" ascii
    $s3 = "Handles DELETE request to delete an existing visits data." ascii
    $s4 = "request.data.decode().startswith('GIF'):" ascii
    $s5 = "Utils.api_log_admin" ascii
  condition:
    filesize < 10KB
    and all of them
}
Podle QuoIntelligence:

Dne 22. dubna 2023 společnost QuoIntelligence informovala, že objevila dříve neobjevenou variantu webshellu WIREFIRE. V originálním vzorku byl WIREFIRE umístěn v api/resources/visits.py a funkce POST byla přepsána útočníkem. Nové umístění webshellu se však nacházelo uvnitř /api/resources/category.py, přičemž byla přepsána stejná funkce POST.

Kdo za útokem stojí?

Útok byl připsán čínské skupině UNC5221 (Mandiant)/UTC0178 (Volexity), která není spojena s žádnou doposud zaznamenanou aktivitou – neboť cílení na zařízení, která jsou vystavena do internetu, a využívání zero-day zranitelností patří mezi konzistentní techniky čínských APT skupin. V případě UNC5221 byla kompromitována nepodporovaná SOHO (Small Office, Home Office) zařízení – Cyberoam, která byla útočníky využívána jako C2 server. Dle společnosti Mandiant se útočníci zaměřovali na širokou škálu cílů, které souvisejí se zájmy ČLR. Kromě toho řada nástrojů, které byly odhaleny při vyšetřování, využívají kód z čínského Githubu.

Když jsou dvě 0day zranitelnosti málo…

Ivanti dne 31. ledna 2024 upozornila na dvě nové vysoce závažné zranitelnosti ve svých produktech Connect Secure a Policy Secure.

Jedná se konkrétně o:

CVE-2024-21888 (CVSS skóre: 8,8) – chyba zabezpečení týkající se eskalace oprávnění ve webové komponentě Ivanti Connect Secure (9.x, 22.x) a Ivanti Policy Secure (9.x, 22.x), která umožňuje uživateli povýšit oprávnění na oprávnění správce.

CVE-2024-21893 (CVSS skóre: 8.2) – chyba zabezpečení proti padělání požadavku na straně serveru v komponentě SAML Ivanti Connect Secure (9.x, 22.x), Ivanti Policy Secure (9.x, 22.x) a Ivanti Neurons for ZTA umožňuje útočníkovi přístup k určitým omezeným zdrojům bez ověření.

Softwarová společnost se sídlem v Utahu uvedla, že zatím nenašla žádné důkazy o tom, že by zákazníci byli ovlivněni CVE-2024-21888, ale uznala, že „zneužití CVE-2024-21893 se zdá být cílené“ a že „si je vědoma omezeného počtu zákazníků, kterých se problém týká“. Americká CISA zařadila CVE-2024-21893 do katalogu aktivně zneužívaných zranitelností (KEV). Souvislost s kampaní skupiny UNC5221 nebyla v době zveřejnění obou nových zranitelností zřejmá.

Doporučení:

Dne 31. ledna 2024 společnost Ivanti vydala první kolo oprav pro verze Ivanti Conect Secure. Zbývající opravy budou vydávány podle plánu v následujících týdnech. Zákazníkům Ivanti se i nadále doporučuje, aby ve svých zařízeních zkontrolovali historické logy nástrojem Integrity Checker Tool (ICT) a zároveň aby sdíleli své výsledky s Ivanti. Cílem tohoto sdílení je další analýza, na jejímž základě Ivanti rozhodne, zda je zařízení kompromitované, a doporučí následné kroky. V této souvislosti je rovněž doporučováno resetování hesel uživatelů organizace, kteří se připojovali k zařízení v období, kdy byl malware aktivní.

Zdroje: Ivanti, Volexity, Mandiant, QuoIntelligence, PaloAlto

Přejít nahoru