Přesnost detekce

Benchmark 135 balíčků, plně zveřejněný

Titulní stránka tvrdí 100% úplnost (recall) a 0 falešných poplachů na halucinovaných názvech balíčků. Zde je celá metodika, dataset a poctivá upozornění — abyste si číslo mohli ověřit, ne mu jen věřit.

Naposledy měřeno: 2026-07-03

Co tento benchmark měří — a co ne

Tento benchmark měří jednu úzkou věc: rozezná Graneth správně skutečný název balíčku od AI-halucinovaného, slopsquattingového nebo typosquattingového? Neměří kvalitu statické analýzy (SAST), detekci zranitelností ani žádnou jinou část skenovací pipeline — pouze ověření názvu balíčku proti živým registrům npm a PyPI.

Hlavní výsledky
100%
Úplnost (recall)
65 / 65 halucinovaných nebo špatných názvů zachyceno — 0 falešně negativních
0%
Míra falešných poplachů
0 / 70 skutečných balíčků chybně označeno
100%
Přesnost (precision)
Každý označený název v tomto vzorku byl skutečně špatný
Matice záměn (confusion matrix)
VýsledekPočetVýznam
TP65Halucinovaný/špatný název, správně označen
FN0Halucinovaný/špatný název, přehlédnut
TN66Skutečný balíček, správně propuštěn
FP0Skutečný balíček, chybně označen
Neověřeno4Skutečný balíček — dotaz na registr byl během běhu přechodně nedostupný, poctivě nahlášeno jako třetí stav
Složení datasetu — n = 135
PočetKategorieZdroj
35Známá výzkumná sada AI halucinacíLanyado et al., USENIX Security 2024/25; advizorie CSA
2Zveřejněné reálné halucinace, mimo výzkumnou saduPoC „huggingface-cli“ od Lasso Security; případ „react-codeshift“ od Socket.dev
3Historické případy zabavených typosquattingových balíčkůcrossenv, python3-dateutil, jeIlyfish — reporty Snyk / Check Point
25Názvy vymyšlené hodnotitelem — test generalizaceNapodobují vzor „populární knihovna + obecná přípona“; každý ověřen jako 404 před zařazením; detektor je nikdy předtím neviděl — všech 25 zachyceno
66Skutečné, populární balíčky — pravdivě negativníŽivé registry npm / PyPI
4Skutečné hraniční případy, 1 úprava od známého jménanapř. jsdoc vs. jsdom
Metodika

Tato čísla pocházejí ze spuštění skutečného produkčního detektoru Graneth — přesně té cesty kódu, kterou používá živý sken — proti tomuto označenému vzorku, ověřenému proti živým registrům npm a PyPI. Nic zde není mock ani syntetická náhrada detektoru.

Vzorek kombinuje známá výzkumná data o AI halucinacích, dva nezávisle zveřejněné případy reálných halucinací, tři historické případy zabavených typosquattingových balíčků a 25 názvů, které hodnotitel vymyslel speciálně pro test generalizace: názvy napodobující stejný vzor „populární knihovna + obecná přípona“, jaký halucinují AI agenti, každý potvrzen jako 404 na příslušném registru před zařazením, takže žádný nebyl náhodou skutečný.

Výsledek: všech 65 halucinovaných nebo špatných názvů bylo označeno (100% úplnost, 0 falešně negativních) — včetně všech 25 názvů, které detektor nikdy předtím neviděl, což je signál generalizace, který je důležitější než titulní číslo — a žádný ze 70 skutečných balíčků, včetně 4 skutečných hraničních případů, nebyl chybně označen (0% míra falešných poplachů).

Poctivá upozornění

Úzké tvrzení. Toto měří detekci AI-halucinovaných, slopsquattingových a typosquattingových názvů balíčků — zda závislost existuje, nebo je téměř shodná se skutečnou. Neříká nic o kvalitě SAST, detekci zranitelností ani jiné části skenovací pipeline Graneth.

Vzorek, ne vyčerpávající test. 135 označených balíčků je vzorek, ne vyčerpávající benchmark. 100% výsledek na tomto vzorku není zárukou proti každému halucinovanému názvu, který se kdy může objevit.

„Neověřeno“ je skutečný třetí stav. Při tomto běhu vrátily 4 skutečné hraniční balíčky stav „adopce neověřena“, protože endpoint registru pro stahování byl přechodně nedostupný — poctivě nahlášeno jako neověřeno, nikdy tiše započítáno jako falešný poplach nebo falešný průchod. Počet, který se vrátí jako neověřený, se běh od běhu liší podle přechodných síťových podmínek — není to pevná vlastnost detektoru.

Dnes nezávisle nereprodukovatelné. Testovací harness a dataset benchmarku žijí v soukromém repozitáři, takže se nejedná o otevřený benchmark, který si sami spustíte. Místo toho zveřejňujeme celou metodiku, přesná čísla a níže složení datasetu i zdroje, aby byl výsledek posouditelný, i když harness není veřejný.

Žádné záruky. „100% úplnost“ popisuje tento měřený vzorek k tomuto datu — ne slib, že Graneth zachytí každý halucinovaný název balíčku, v každém případě, navždy.

Zdroje
  • Lanyado, B. a kol. — výzkum halucinace AI balíčků, USENIX Security 2024/25
  • Cloud Security Alliance (CSA) — advizorie o AI-halucinovaných názvech balíčků
  • Lasso Security — proof-of-concept halucinovaného balíčku huggingface-cli
  • Socket.dev — případová studie halucinovaného balíčku react-codeshift
  • Snyk — reporty o typosquattingu (crossenv, python3-dateutil)
  • Check Point Research — report o typosquattingu (jeIlyfish)