Postřehy z bezpečnosti: závislostí k nakažení dodavatelského řetězce

15. 6. 2026
Doba čtení: 9 minut

Sdílet

Shai-hulud npm
Autor: Root.cz s využitím Duck.ai
V dnešních Postřezích se podíváme, co se to zase děje s NPM a Node.js a jak na to GitHub zareagoval, jak to souvisí s napadením AUR, projdeme neobvyklý útok na správce hesel, a ryze francouzský únik dat.

Hrubou silou k trezorům

Co se dozvíte v článku
  1. Hrubou silou k trezorům
  2. Supply-chain útoky (nejen) na NPM
  3. Kompromitace balíčků v Arch User Repository
  4. Francouzský komunikátor Tchap cílem útoku
  5. Krátce
  6. Pro zasmání

Firma Dashlane, provozovatel cloudového správce hesel, nedávno oznámila, že útočníci získali přístup k šifrovaným trezorům méně než 20 uživatelů služby. Samo o sobě to nevypadá jako vysoké číslo; významný je ale popsaný vektor útoku – brute forcing, který se zaměřil na proces přidání nového zařízení.

Z reportu firmy Dashlane vyplývá, že pokud chcete k účtu přidat nové zařízení, musíte nejdříve poskytnout e-mailovou adresu uživatele. K ověření identity se následně odešle šestimístný kód e-mailem a uživatel je následně vyzván, aby jej zadal. V případě, že má účet zapnuté ověření druhým faktorem (2FA), je uživatel požádán, aby zadal kód ze svého autentizátoru. V obou případech platí, že pokud je zadaný kód správný, Dashlane nové zařízení přidá k danému uživatelskému účtu a kopie šifrovaného trezoru se stáhne do zařízení.

Právě tento proces útočníci využili; začali automatizovaně zkoušet kódy pro velké množství účtů – řádově sta tisíce až miliony, – a nakonec se útočníkům podařilo uhádnout správný kód a získat přístup k trezoru u „méně než 20 osobních účtů“. Firma majitele napadených účtů na incident upozornila, načež slíbila své zabezpečení dále posílit.

Asi nejvýznamnějším případem, kdy se útočníkům podařilo data exfiltrovat, byl dosud útok na LastPass, kde se útočníkům podařilo stáhnout trezory ze zálohovacího úložiště umístěného na AWS S3, a posléze také dešifrovali obsah některých trezorů.

Destruktivní účinek těchto incidentů je omezen zásadní vrstvou ochrany – trezory jsou šifrovány klíčem, který se odvozuje z hlavního hesla, které si určí sám uživatel trezoru. Odvození klíče je v dnešní době často realizováno funkcemi typu Argon2 či yescrypt, které spotřebovávají netriviální množství výpočetních zdrojů, takže i pokud se útočník dostane k hashi hesla či danému trezoru, stále potřebuje řádově více času, aby heslo úspěšně prolomil. To platí i v případě Dashlane, kde dle své vlastní dokumentace je šifrovací klíč k trezoru odvozen použitím funkce Argon2; někde se ale také ještě používá (mnohem slabší) PBKDF2 pro zajištění zpětné kompatibility se staršími zařízeními.

Stále tedy platí – více, než kdy jindy, – že si svůj trezor musíte chránit dlouhým a silným heslem.

Supply-chain útoky (nejen) na NPM

Není tomu tak dávno, co se Bitwarden a Red Hat, ale také samotný GitHub stali oběťmi útoků na „dodavatelský řetězec“. Do některých balíčků v registru npm byly přidány škodlivé skripty, které se aktivují přímo po spuštění příkazu npm install, a to před, při, či po instalaci balíčku. Tyto skripty, mimo jiného, spustí řetězec akcí – nebo rovnou spustitelnou binárku, – kterými exfiltrují různé druhy přihlašovacích údajů z počítače uživatele na server ovládaný útočníkem.

Skripty se spustí také v případě, kdy daný balíček je závislostí jiného balíčku. Běžná aplikace používá desítky závislostí a další desítky tranzitivně; útočníkovi tak stačí napadnout právě jednu z nich. Dá se předpokládat, že útoky byly cíleny právě na vývojáře, kteří s nástroji typu npm pracují nejčastěji a mají na svých strojích často přístupové klíče k různým systémům. Ušetřeny nezůstanou ani systémy CI/CD pro automatické sestavování a nasazení programů, kde útočníci opět mohou získat cenné přístupové klíče, kupříkladu v proměnných prostředí. Útoky se ale samozřejmě neomezují pouze na ekosystém Node.js, tam jsou jen nejvíce vidět; podobné probíhají i na PyPi a dalších.

Notoricky známou se stala zvláště skupina TeamPCP, o které napsali např. na Wired. Funguje v tomto vlastně poměrně cyklickým způsobem: vyhlédne si kus softwaru, u kterého bylo pravděpodobné, že je používá jiná organizace, pokusí se je napadnout, pomocí infostealeru pojmenovaného Mini Shai-hulud (podle písečného červa pojmenovaného Shai-hulud z knihy Duna), a prostřednictvím těchto údajů se dostat do dalších repozitářů a infiltrovat se do dalších řetězů závislostí, k dalším organizacím. A podobně v dalších krocích.

Pokud se vám tedy zdálo, že jste o těchto útocích slyšeli v poslední době poněkud více: nezdálo se vám to. Cyklus pokračuje, a kde jeden Mini Shai-hulud končí, Miasma pokračuje – nyní již nepotřebuje dedikovanou infrastukturu vlastních C2 serverů, ale vystačí si s GitHubem. Stačí, aby měli útočníci přístup k dostatečnému množství Personal Access Tokens, které jim infostealery rády dodají, a mohou využívat infrastrukturu, které mnoho sítí implicitně důvěřuje.

Nicméně, určité reakce na neutichající útoky přišly poměrně brzy. Předminulý týden Microsoft vydal Visual Studio Code, verze 1.123 s podstatnou změnou, zřejmě částečně podnícenou napadením vlastních vývojářů: v případě zapnutých automatických aktualizací rozšíření Visual Studio počká alespoň dvě hodiny po aktualizaci, než nové verze rozšíření nainstaluje. To snad poskytne určitý čas k detekci a eliminaci hrozby pro širší populaci.

Tento týden GitHub oznámil, že plánuje do verze 12 nástroje npm změnu výchozího chování při spuštění npm install, aby se instalační skripty automaticky nespouštěly. Pokud tyto skripty k něčemu potřebujete, budete si je muset explicitně zapnout, nejlépe pro každou závislost zvlášť. Kromě této změny dochází ve verzi 12 také k zákazu stažení vzdálených závislostí z URL a k zákazu automatického stažení závislostí z Git repozitářů, jelikož zde může opět dojít ke spuštění kódu, tentokrát pomocí souboru .npmrc v repozitáři, kde lze přenastavit výchozí cestu k binárce git u. Vydání npm v12 se předpokládá v červenci.
Pokud nechcete čekat, lze si toto chování zapnout již nyní; potřebné volby jsou dostupné již v npm 11.16.0.

Zde je vhodné podotknout, že ačkoliv tyto změny povedou k uzavření v současnosti asi nejvíce zneužívaných vektorů útoku, rozhodně to neznamená, že nelze zneužít další balíčky či systémy k obdobným útokům, a preventivních kroků, jako skenování závislostí, se dlouho nezbavíme.

Jako zábavnou vložku doplníme, že zdrojový kód frameworku „Miasma“, který byl použit proti GitHubu a Red Hatu, byl na krátkou dobu také zveřejněn, a to právě na GitHubu nekolika napadených účtů. Kým, ptáte se? Velmi pravděpodobně přímo útočníky; stalo se tak již právě u Mini Shai-huludu.

Kompromitace balíčků v Arch User Repository

Máme zde neobvyklou návaznost na předchozí téma. Repozitář uživatelských balíčků pro systém Arch Linux (AUR) byl v pátek napaden útočníkem, který převzal vlastnictví u mnoha stovek neudržovaných uživatelských balíčků, načež k dotčeným definicím balíčků (soubor PKGBUILD) přidal závislost na balíčku npm či bun, a dále .install skript, který ve funkci post_install() spouští npm install atomic-lockfile (příp. další škodlivé balíčky), či bun add js-digest ... apod. V některých případech tito útočníci na sebe vzali identitu některého z důvěryhodných správců balíčků a publikovali změny pod jejich jménem. Pro úplnost dodejme, že oficiálních repozitářů systému Arch Linux se nic z tohoto nedotklo.

Právě balíček atomic-lockfile se často objevoval v pozměněných souborech PKGBUILD. Předběžnou analýzu k němu vydal Whanos. Do verze 1.4.2 byl přidán preinstall hook, který spouští binární ELF soubor v src/hooks/deps, který je infostealerem pro Linux. Kromě exfiltrace přístupových údajů a klíčů tento program do systému nainstaluje eBPF rootkit, kterým skryje svoji činnost (má-li práva roota). Krade, co se dá, včetně profilů webových prohlížečů, SSH klíčů, credentials pro Docker, npm, historie shellu, MS Teams, a dalších tajemství na počítači uživatele. V tomto ELFu je také staticky zakódován C2 server na hostitele „onion“ v síti Tor. Úplnější přehled včetně hashů binárního souboru je k dispozici v analýze.

Správci AUR zveřejnili seznam 1936 nakažených balíčků; určitě jej však nelze považovat za kompletní. V systému AUR mohou dále existovat zapomenuté balíčky, kde případnou infekci útočníci dobře obfuskovali. Arch Linux o aktivitě informoval i na svých webových stránkách a v mailing listu, kde se rozjela rozsáhlá pátrací akce. V této chvíli již byly známé postižené balíčky navráceny do původního stavu.

Jelikož k sestavení AUR balíčků dochází přímo na počítači uživatele, je vždy více než nutné pečlivě kontrolovat obsah skriptů, které se spouštějí, a to před každou instalací.

V případě, že jste 11. června instalovali některý z balíčků z AUR, můžete být nakaženi. Může pomoci skript od l33tm4st3ra, který porovná instalované balíčky s výše zmíněným seznamem a provede kontrolu ve /var/lib/pacman/local/<balíček>/install. Skript také dokáže ověřit stažený AUR balíček ještě před sestavením na známé příznaky škodlivé činnosti.
Pokud zjistíte, že jste se nakazili, je nutné systém vyčistit a zrotovat všechny přístupové údaje umístěné na daném systému.

Preventivně – jelikož lidská mysl není neomylná – lze také použít utilitu aurscan, která PKGBUILDy analyzuje jednak staticky, druhak pomocí LLM (v cloudu či lokálně), a může tak pomoci zachytit příznaky škodlivého balíčku.

Francouzský komunikátor Tchap cílem útoku

V pondělí 8. června francouzské Mezirezortní ředitelství pro digitální záležitosti (DINUM) oznámilo, že o den dříve, tedy v neděli 7. června, získali útočníci neoprávněný přístup k jednomu uživatelskému účtu na státní komunikační platformě Tchap. Následně měli být tito schopni stáhnout ze sítě desítky tisíc šifrovaných i nešifrovaných zpráv, souborů a informací o skupinách a účtech na síti. Dle zprávy na serveru French Breaches se útočníci na dark webu pochlubili útokem již v neděli odpoledne; vektorem útoku se zdá být staré dobré sociální inženýrství. Ve spolupráci s tamní Národní agenturou pro bezpečnost informačních systémů (ANSSI) byl incident prověřen a přístupové údaje napadeného uživatele byly zablokovány, zatímco probíhá další šetření.

S pomocí vyhledávání uživatelů měli být útočníci, dle svých slov na dark webu, schopni získat přístup k informacím o 73 467 uživatelských účtech, včetně jejich celého jména, e-mailové adresy, příslušnosti k úřadu/organizaci a avataru. DINUM toto číslo v oficiálním vyjádření potvrdil.

Celkově je v síti registrováno přes 825 tisíc uživatelů. Francouzský stát využívá komunikátor Tchap pro komunikaci v rámci státní správy, ministerstev a obecně organizací veřejného sektoru. Je založen na protokolu Matrix; komunikační aplikace vycházejí z referenční implementace Element. Vývoj a provoz systému zajišťuje právě DINUM.

Zprávy a média mezi uživateli na Matrixu jsou běžně chráněny koncovým šifrováním; ve skupinovém chatu si jeho zakladatel ale může zvolit, zda budou zprávy ve skupině šifrovány, či nikoliv. Nově přihlášená zařízení ve výchozím stavu nemají přístup k šifrovaným zprávám, dokud je uživatel neověří pomocí jiného zařízení, či neposkytne záložní šifrovací klíče.

Dle informací útočníků bylo staženo přes 876 místností včetně historie zpráv, celkově 643 tisíc zpráv a téměř 60 tisíc mediálních souborů o celkové velikosti 13,5 GB. Tyto informace však nejsou potvrzeny a není ani jasné, kolik z nich mělo být šifrováno; DINUM v pondělním vyjádření uvedl, že stále prověřuje záznamy událostí a zjišťuje rozsah útoku. Zdůraznil však také, že privátní (šifrované) konverzace zůstávají v bezpečí.

Školení Zabbix

Dle vyjádření útočníků se však mezi uniklými informacemi, kromě kanálu plného memes, vyskytují také informace klasifikované jako „Diffusion Restreinte“ (citlivé, ale ne tajné), různé přístupové kódy k videokonferencím, dokumenty a informace o interních systémech, a také PowerShell skripty. Pro ilustraci, dle informací na serveru BleepingComputer, jeden z PowerShell skriptů sdílených na platformě obsahoval přístupové údaje k vnitřnímu LDAP serveru.

Krátce

Pro zasmání

Meme, který zobrazuje nikdy nekončící cyklus úniků dat.

Nebudete tomu věřit, ale měli jsme tady takový únik…

Autor: @metin@graphics.social

O seriálu

Tento seriál vychází střídavě za pomoci pracovníků Národního bezpečnostního týmu CSIRT.CZ provozovaného sdružením CZ.NIC a bezpečnostního týmu CESNET-CERTS sdružení CESNET, bezpečnostního týmu CDT-CERT provozovaného společností ČD - Telematika a bezpečnostních specialistů Jana Kopřivy ze společnosti Nettles Consulting a Moniky Kutějové ze sdružení TheCyberValkyries. Více o seriálu…

Neutrální ikona do widgetu na odběr článků ze seriálů

Zajímá vás toto téma? Chcete se o něm dozvědět víc?

Objednejte si upozornění na nově vydané články do vašeho mailu. Žádný článek vám tak neuteče.


Autor článku

CESNET-CERTS je oficiální jméno bezpečnostního týmu sdružení CESNET, z. s. p. o. od ledna roku 2004. Jeho součástí je také Forenzní laboratoř FLAB. Články tvoří společně jednotliví členové týmu.