Metodika benchmarku

Čo meriame, čo nemeriame a prečo

Benchmark existuje preto, aby bol preverený, nie obdivovaný. Táto stránka uvádza jeho presný perimeter: čo publikované čísla pokrývajú, čo zámerne vynechávajú a ktoré z našich schopností nemožno poctivo zredukovať na percento.

Čo benchmark meria

Jedna otázka, položená nad verzovaným korpusom ručne posúdených projektov: pri súbore, o ktorom sme už rozhodli, ohlási engine zraniteľnosť, ktorá tam je, na správnom riadku, bez toho, aby hlásil veci, ktoré tam nie sú?

Verzovaný korpus
Každý prípad je malý projekt obsahujúci najmenší kód, ktorý vykazuje alebo bezpečne vylučuje jednu zraniteľnosť. Každý nesie komentár opisujúci, čo je zle, čo sa očakáva a prečo. Korpus je verzovaný: zmena v ňom je zmenou publikovaných čísel.
Referenčná pravda písaná o kóde
Očakávaný výsledok je úsudok o kóde, rozhodnutý skôr, než engine beží, nikdy opis toho, čo engine vyprodukoval. Keď sa tie dve veci nezhodujú, skúmame najprv engine. Anotácia napísaná tak, aby zodpovedala výstupu enginu, nemeria nič, a museli sme opraviť anotácie, ktoré sa týmto smerom posunuli.
Pipeline, ktorá sa dodáva
Každý prípad sa analyzuje tak, ako beží zákaznícky sken: plný orchestrátor v maximálnej hĺbke, žiadne externé skenery, žiadny model v slučke. Čísla opisujú engine, ktorý sa všade dodáva identicky, nie laboratórnu konfiguráciu zostavenú pre túto príležitosť.
Správny kód, zámerne
Tretina korpusu je kód, ktorý nie je zraniteľný, väčšinou opravená podoba prípadu, ktorý zraniteľný je. Korpus zložený len zo zraniteľností nedokáže odhaliť falošne pozitívny nález, a práve falošne pozitívne nálezy spôsobujú, že sa bezpečnostný nástroj prestane čítať.

Čo benchmark nemeria

Cybseco ich dodáva. Žiadne číslo na stránke benchmarku ich neopisuje a každá z nich nesie svoj dôvod. Schopnosť mlčky vynechaná je schopnosť, o ktorej čitateľ predpokladá, že ju čísla pokryli.

  • Dependency vulnerabilities (SCA) — Produced by external scanners that read a live vulnerability database. Their output changes when the database changes, with no change to Cybseco, so a precision figure measured today would describe the database rather than the engine and would not reproduce tomorrow.
  • Standalone secret scanning — Gitleaks is an external binary and is not installed for this benchmark. Hardcoded credentials found by Cybseco's own analyzers are measured, inside the code and CI/CD layers, under CWE-798 and CWE-532.
  • Third-party SAST (Semgrep, Bandit) — An external ruleset Cybseco orchestrates but does not author. Measuring it would report Semgrep's accuracy, not Cybseco's.
  • Licence compliance policy — A policy decision about a project's licences, not a judgement about its code. The corpus labels vulnerabilities, so a licence finding has nothing to be right or wrong against here.
  • LLM-assisted analysis — Its output depends on a model and a prompt rather than on the engine, and it is not part of the deterministic result this benchmark measures.
  • Graph, attack paths, decision engine — A different kind of claim: these produce paths and plans, not findings, so precision and recall over labelled lines cannot express them. The methodology page explains what could be measured, and which of these cannot honestly be reduced to a percentage at all. Publishing a number before the method is settled is how a benchmark stops being evidence.

Prečo niektoré schopnosti nie sú percento

Detekcia má správnu odpoveď: zraniteľnosť na tom riadku je, alebo nie je. Časť toho, čo Cybseco robí, tvrdí niečo iné a presnosť ani úplnosť to vyjadriť nedokážu. Publikovať číslo napriek tomu by bolo to najľahšie na tejto stránke a najrýchlejší spôsob, ako prehrať spor s niekým, kto číta pozorne.

Architektonický graf
Faktické tvrdenie: tieto aktíva existujú a tieto vzťahy medzi nimi platia. Merateľné, a prvá vec, ktorú mienime zmerať. Vyžaduje si to korpus kompletných repozitárov anotovaných ručne, dvoch nezávislých posudzovateľov a zhodu medzi nimi publikovanú vedľa skóre. Čokoľvek menšie meria skôr proces anotácie než extraktor.
Útočné cesty
Faktické, ale až vo chvíli, keď niekto uvedie, s čím útočník začína. „Útočník sa môže dostať k databáze“ nie je pravdivé ani nepravdivé, kým nepoviete, či začína ako anonymný návštevník, overený používateľ, alebo kompromitovaný build runner. Ten istý engine má pri jednom predpoklade pravdu a pri inom sa mýli, takže číslo bez tohto predpokladu vytlačeného vedľa nie je reprodukovateľné.
Kontextová prioritizácia
Tvrdenie o tom, čo je dôležitejšie, a nijaká skutočnosť tu neexistuje nezávisle od cieľa. Startup pred prvými tržbami a regulovaná banka čítajú ten istý repozitár a obaja majú pravdu, keď ho zoradia odlišne. Akékoľvek správne poradie, ktoré by sme publikovali, by bol náš vlastný produktový názor, validovaný proti referenčnej pravde, ktorú sme tiež napísali my.
Rozhodovací engine
Konať hneď, naplánovať, overiť: odporúčanie voči politike, a politika je produktové rozhodnutie. Môžeme testovať, že sa drží vlastnej politiky, že žiadny nález nie je ticho zahodený a že každé odporúčanie cituje dôkaz, ktorý existuje. To je test zhody. Nazvať to presnosťou by vyvolalo presne to nedorozumenie, ktorému má táto stránka predchádzať.

Ako čítať čísla

Štyri veci, ktoré sa oplatí vedieť, než z akéhokoľvek jednotlivého čísla na stránke benchmarku vyvodíte záver.

Veľkosť vzorky pred percentom
Každá vrstva ukazuje, z koľkých nálezov bola jej presnosť vypočítaná. Vrstvy s malými vzorkami sú tie nedávno pridané a ich čísla sa s rastom korpusu pohnú. Platí to proti lichotivým riadkom rovnako ako proti tomu nepríjemnému: perfektné skóre z deviatich nálezov je slabé tvrdenie, nie silné.
Každý falošne pozitívny nález je zverejnený
Nálezy, ktoré engine vytvorí na kóde, ktorý nie je zraniteľný, sú uvedené s chybujúcim analyzátorom a dôvodom, prečo je nález nesprávny. Počítajú sa proti presnosti, nikdy nie sú z nej vylúčené. Tri z nich sa spúšťajú práve na tom opatrení, ktoré samo pravidlo odporúča, čo je presne ten druh chyby, kvôli odhaleniu ktorej, nie pohlteniu, benchmark existuje.
Vrstva LLM analyzuje váš kód
Číta vlastný integračný kód aplikácie na chyby LLM a agentov: výstup modelu, ktorý sa dostane do shellu, prihlasovací údaj vložený do promptu, agentný nástroj, ktorý môže spustiť čokoľvek. Nie je mierou AI vo vnútri Cybsecou. Tento benchmark spúšťa deterministický engine bez modelu v slučke.
Známe medzery sú pomenované
Zraniteľnosť, ktorá je skutočná a mimo súčasného dosahu enginu, sa zaznamená ako akceptovaná medzera, vylúči sa z úplnosti a uvedie sa v zozname. Zaznamenanie limitu je spôsob, akým sa budúce zlepšenie prejaví ako zmeraný prínos namiesto toho, aby sa tvrdilo už dnes.

Pravidlá, ktorými sa sami viažeme

Sú to obmedzenia pre nás, nie tvrdenia o produkte. Práve ony robia čísla hodnými čítania.

  • Čokoľvek Cybseco ohlási, je buď zmerané, alebo na tejto stránke pomenované ako mimo rozsahu. Tretí stav neexistuje a automatická brána zhodí build, keď je analyzátor dodaný bez jedného či druhého.
  • Referenčná pravda opisuje kód a je rozhodnutá skôr, než engine beží. Anotácia napísaná tak, aby zodpovedala výstupu enginu, nie je dôkaz.
  • Číslo sa publikuje so vzorkou, z ktorej bolo vypočítané.
  • Chybu, o ktorej vieme, publikujeme, nevylučujeme ju z metriky. Brána zlyhá aj vtedy, keď publikovaná chyba ticho prestane byť reprodukovateľná, takže zoznam sa môže len poctivo skracovať.
  • Žiadne porovnanie s iným produktom pri schopnostiach, kde by sme vyberali ich konfiguráciu, ich korpus aj scenár. Takému porovnaniu by nemal veriť nikto, ani my.
  • Žiadne číslo skôr, než je jeho metodika verejná a jeho referenčná pravda preskúmateľná.

Pozrite sa, ako Cybseco uvažuje o reálnom systéme

Pozrite si interaktívne demo a potom si vyžiadajte riadenú skúšobnú verziu pre svoj tím.