Přeskočit na obsah
Magazín Chatujme.cz
Bezpečnost · aktualizováno 31. 7. 2026 · čtení na 3 min

Arch vypnul přebírání balíčků v AUR. Vložený program podle rozboru krade hesla a klíče

Arch Linux ve čtvrtek vypnul možnost přebírat opuštěné balíčky v AUR. Útočníci si přes ně přisvojovali cizí recepty a doplňovali do nich spustitelný soubor, který podle rozboru sbírá hesla, klíče a peněženky a přijímá příkazy přes Tor. Je to druhá taková vlna za dva měsíce.

Aktualizace systému Arch Linux v terminálu notebooku
Aktualizace Archu přes pacman. Balíčky z AUR se ale sestavují až na počítači uživatele, a to z receptu, který napsal kdokoli. Foto: Solijon Solayev, Wikimedia Commons (CC BY-SA 4.0)

Oznámení přišlo do konference

Zpráva AUR packages adoption disabled dorazila do konference aur-general ve čtvrtek 30. července v 16:22 UTC. Podepsal ji Robin Candau za tým DevOps: kvůli přílivu škodlivých adopcí balíčků a navazujících commitů je přebírání balíčků zatím vypnuté. Uživatele v ní žádá, aby hlásili podezřelé adopce a commity, které ještě nikdo nevyřídil.

Co je AUR a proč se dá zneužít

Arch User Repository není sklad hotových balíčků. Jsou v něm recepty – soubory PKGBUILD, které říkají, odkud se stáhne zdrojový kód a jak se z něj balíček sestaví. Sestavení pak běží na počítači uživatele. K 31. červenci je v AUR 117 176 balíčků a Arch u jejich výpisu otevřeně píše, že jde o obsah od uživatelů a použití je na vlastní riziko.

Balíček, o který se přestal starat správce, se označí jako osiřelý a převzít si ho smí kdokoli. Přesně tam útok míří: útočník si osiřelý balíček přisvojí a v dalším commitu nahradí pole source spustitelným souborem. Jméno toho souboru zní neškodně. V seznamu, který 30. července večer sestavil uživatel Saren, se binárky jmenují validator, linter, hasher, converter, optimizer, minifier, indexer nebo packer – jako pomocný nástroj, který k sestavení patří.

Do téže konference napsal CUI Hao, že Saren z komunity Arch Linux CN našel stovky podezřelých aktualizací pomocí agenta nad jazykovým modelem a že v mnoha případech jde o spustitelný soubor ELF o velikosti kolem 50 kB. Sám dodává, že všechna ta hlášení ověřit nedokáže; šest jich uvádí jako ručně ověřená.

Co ten soubor dělá

Rozbor druhého stupně zveřejnil výzkumník vystupující jako ysf. Podle něj jde o program pro x86-64 psaný v Rustu o velikosti 3,7 MB, který spojuje tři věci: kradení údajů, vzdálené ovládání a šíření přes SSH.

Než se rozběhne, zjišťuje, jestli ho někdo nepozoruje. Čte /proc/self/status kvůli hodnotě TracePid, porovnává jméno počítače se seznamem jako vmware, cuckoo, anyrun nebo remnux, hledá proměnné GITHUB_ACTIONS a GITLAB_CI a čte identifikaci základní desky, aby poznal stroj v AWS, Google Cloudu, Azure nebo u Alibaby.

Pak sbírá. Cookies a uložená hesla z prohlížečů včetně položky Safe Storage v klíčence, kterou se dešifrují novější cookies Chromia a prohlížečů z něj odvozených. Peněženky Electrum, Ledger, Trezor a Monero; u peněženky Exodus podle rozboru upraví soubor app.asar a vloží do aplikace kód, který vynese obnovovací frázi. Správce hesel 1Password, Bitwarden a LastPass. Data Telegramu, token Discordu, přihlášení do Slacku. Přístupy ke cloudu z adresářů .aws, .kube a gcloud, soubory .npmrc, .netrc, .git-credentials a .env, tokeny GitHubu a GitLabu, klíče k API jazykových modelů, token Vaultu. A klíče SSH – ty použije rovnou: přečte known_hosts a zkusí se přes scp a ssh rozšířit na další stroje.

Zůstat se snaží několika cestami najednou: službou systemd s Restart=always, uživatelskou službou spolu s loginctl enable-linger, záznamem v /etc/cron.d, který ho spouští každých pět minut, a řádkem @reboot v uživatelském crontabu. Na macOS zakládá plist v LaunchAgents, na Windows naplánovanou úlohu.

Ven se dostává vlastním Torem. Stáhne si ho z archivu Tor Projectu, napíše si k němu torrc a spustí ho pod jménem dbus-daemon, aby ve výpisu procesů nepadl do oka. Přes ten kanál pak přijímá příkazy – umí spustit bash, Python i PowerShell – a odesílá, co našel.

Za dva měsíce podruhé

V červnu se totéž dělo v širším měřítku. Arch oznámil 12. června, že řeší velký objem škodlivých adopcí a aktualizací, a 15. června zakázal zakládání nových účtů. Podle LWN se registrace otevřely znovu 13. července poté, co tým doplnil při zakládání účtů drobná omezení; LWN je označuje za zjevně neúčinná. Server Phoronix počítá červnovou vlnu na víc než 1 500 zasažených balíčků.

Že ta omezení nestačila, ukazuje současná vlna. Jeden z účastníků konference při ní upozornil na detail, který s adopcemi nesouvisí: balíček python-aiofile prošel kontrolou na duplicitní jméno, přestože v oficiálním repozitáři existuje python-aiofiles. Podle něj je v AUR 32 balíčků, které se od jména balíčku v hlavních repozitářích liší jen jednotným a množným číslem.

Co s tím

Rada, kterou dává bezpečnostní analytik Michael Taggart v rozboru útoku, je nezvykle prostá: zakázat v síti odchozí spojení do Toru. Druhý stupeň se odtud stahuje, takže bez něj útok nedoběhne. Ve stejném textu doporučuje projít výsledky nástroje AUR Audit a porovnat je s tím, co má člověk nainstalované.

Zbytek platí pro AUR pořád stejně a Arch to opakuje sám: před každou aktualizací si přečíst, co se v receptu a instalačních skriptech změnilo. Recept, který nově stahuje binárku místo zdrojového kódu, je v takovém rozdílu vidět na první pohled.

Podle nás je slabina spíš v tom, jak se s osiřelými balíčky nakládá. Adopce je jednorázový úkon bez prodlevy a bez druhého páru očí, a hned po ní může nový správce poslat commit, který se dostane ke všem, kdo balíček používají. Vypnutí adopcí je proto obejití následku, ne příčiny – a Arch sám píše, že jde o dočasné opatření.

Diskuse

Zatím tu nikdo nediskutuje. Můžete být první.

Napsat příspěvek

Diskutovat můžete i bez účtu. S registrací se ale příspěvek zveřejní hned a nemusíte pokaždé vyplňovat jméno. Účet už máte? Přihlaste se.

Nezveřejňujeme ho, slouží jen redakci.

Podporuje zápis Texy: **tučně**, *kurzíva*, odrážky, odkazy.

Dál k tématu

Bezpečnost

GNOME zkracuje lhůtu na zveřejnění zranitelností na 30 dní a shání nástupce

Michael Catanzaro oznámil 20. července dvě změny v tom, jak se u GNOME zachází s hlášenými zranitelnostmi. Od 1. srpna se lhůta, po které se chyba zveřejní, zkracuje z devadesáti dnů na třicet. A k 1. listopadu přestane nová hlášení evidovat – dělá to sám od listopadu 2020 a nástupce zatím není. Část přetisků obě změny slila do jedné příčiny, jenže originál je odděluje.

Bezpečnost

npm 12 přestal spouštět instalační skripty, útočníci se přesunuli k importu

GitHub vydal 8. července npm 12. Instalace balíčku už sama od sebe nespustí žádný cizí skript, což zavírá nejčastěji zneužívanou cestu k počítači vývojáře. Dva útoky ze stejného týdne ale ukázaly, kam obrana nedosáhne: škodlivý kód se v obou případech spouštěl až ve chvíli, kdy program napadený balíček načetl.