Rizika AI-generovaného kódu - slopsquatting a halucinované balíčky
AI asistenti pro psaní kódu (GitHub Copilot, ChatGPT, Claude a podobné nástroje) výrazně zrychlují programování - ale mají specifickou slabinu, která otevírá nový typ útoku na softwarové dodavatelské řetězce: halucinaci názvů balíčků, které ve skutečnosti neexistují.
Co je slopsquatting
Slopsquatting je technika, kdy útočník zaregistruje v balíčkovém repozitáři (npm, PyPI) balíček pod jménem, které si AI model často "vymýšlí", když generuje kód a doporučuje import neexistující knihovny. Když si vývojář neověřenou radu AI zkopíruje a balíček nainstaluje, ve skutečnosti si stáhne útočníkův škodlivý kód pod důvěryhodně vypadajícím názvem.
Jak rozsáhlý je problém
Rozsáhlá akademická studie (prezentovaná na konferenci USENIX Security 2025) vygenerovala přes půl milionu ukázek kódu v Pythonu a JavaScriptu pomocí 16 různých jazykových modelů a zkontrolovala navržené balíčky proti skutečným repozitářům npm a PyPI. Zhruba jedna z pěti generovaných ukázek (necelých 20 %) odkazovala na balíček, který neexistuje. Otevřené/volně dostupné modely si vymýšlely názvy podstatně častěji (přes 21 % případů) než komerční modely (kolem 5 %).
Proč je to zneužitelné - opakovatelnost halucinací
Klíčové zjištění studie je, že když výzkumníci opakovali stejný požadavek na model desetkrát, přes polovinu vymyšlených jmen se objevilo opakovaně a přes čtyři z deseti se objevilo při všech deseti opakováních. To znamená, že vymyšlené názvy nejsou náhodné - útočníci je mohou systematicky katalogizovat a předvídat, který neexistující balíček si AI model "vymyslí" nejčastěji, a ten si pod daným jménem zaregistrovat dopředu.
Dokumentovaný reálný případ
V lednu 2026 bezpečnostní výzkumník Charlie Eriksen z firmy Aikido Security objevil npm balíček s názvem připomínajícím kombinaci dvou skutečných, zavedených balíčků - šlo o přesně tento typ halucinovaného jména. Podle dostupných zpráv se rozšířil do stovek repozitářů, než byl odhalen a bezpečnostně zablokován správou npm registru - přesto zůstával v rané fázi roku 2026 ještě částečně dostupný ke stažení.
Proč je riziko vyšší u agentických nástrojů
Klasický scénář předpokládal, že vývojář si návrh AI přečte a zkopíruje příkaz k instalaci - tedy existuje alespoň jeden moment lidské kontroly. U nových "agentických" nástrojů, které umí samy navrhnout, stáhnout a nainstalovat balíček bez mezikroku s člověkem, tato kontrolní pojistka mizí - agent může automaticky nainstalovat škodlivý balíček dřív, než si toho kdokoliv všimne.
Jak se chránit
Před instalací jakéhokoli balíčku navrženého AI ho ověřte přímo v registru (npm, PyPI) - zkontrolujte počet stažení, historii verzí a datum poslední aktualizace. Ve firemním prostředí používejte allowlist nebo privátní registr obsahující jen prověřené závislosti. U agentických nástrojů nastavte, aby instalace nových balíčků vždy vyžadovala explicitní potvrzení člověka. Při psaní kódu v týmu zvažte automatizovanou kontrolu závislostí (dependency scanning) jako součást CI/CD procesu.
Doporučení pro firmy a vývojářské týmy
Firmy využívající AI asistenty pro psaní kódu by měly zavést formální proces kontroly nových závislostí - automatizované nástroje pro skenování závislostí (dependency scanning) dokážou označit balíček s podezřele nízkým počtem stažení nebo krátkou historií ještě před tím, než se dostane do produkčního kódu. Součástí firemní politiky by mělo být i omezení, odkud smí agentické nástroje balíčky instalovat (např. jen z interního zrcadla prověřených balíčků).
Vzdělávání vývojářů jako klíčová obrana
Technická opatření nenahradí základní návyk - i při použití AI asistenta zůstává na vývojáři, aby si návrh kriticky ověřil, než ho spustí. Slopsquatting je účinný právě proto, že spoléhá na důvěru vývojáře v AI nástroj a na rutinní, nekritické kopírování instalačních příkazů.
Často kladené otázky
Platí slopsquatting jen pro Python a JavaScript?
Hlavní zdokumentovaná studie se zaměřila na tyto dva ekosystémy (npm a PyPI), princip - AI model si vymyslí neexistující název - ale teoreticky hrozí u jakéhokoli balíčkového manažeru a jazyka.
Je bezpečnější použít komerční AI model než open-source?
Podle zmíněné studie komerční modely halucinovaly podstatně méně často než volně dostupné/open-source modely, ale ani komerční modely nejsou vůči tomuto problému imunní.
Jak poznám halucinovaný balíček od reálného?
Žádný jednoduchý vizuální příznak neexistuje - jediná spolehlivá cesta je ověření v samotném registru (historie, počet stažení, autor), ne spoléhání na to, že "zní to důvěryhodně".
Byl zaznamenán masový útok tímto způsobem?
Podle dostupných analýz z poloviny roku 2026 nebyla zatím veřejně potvrzena rozsáhlá masová exploitační kampaň, ale jednotlivé případy (jako objevený balíček z ledna 2026) už nastaly.
Mění se tím doporučení pro code review?
Ano - kontrola nových závislostí navržených AI by měla být standardní součást code review, ne jen kontrola logiky samotného kódu.
