Mērījuma metodika

Ko mēs mērām, ko nemērām un kāpēc

Mērījums pastāv, lai to pārbaudītu, nevis apbrīnotu. Šī lapa norāda tā precīzo perimetru: ko publicētie skaitļi aptver, ko tie apzināti izlaiž un kuras no mūsu spējām nav godīgi reducējamas uz procentiem.

Ko mērījums mēra

Viens jautājums, uzdots versionētam ar roku izvērtētu projektu korpusam: ja fails ir tāds, par kuru mēs jau esam izlēmuši, vai dzinējs ziņo par tur esošo ievainojamību pareizajā rindā, neziņojot par lietām, kuru tur nav?

Versionēts korpuss
Katrs gadījums ir neliels projekts ar vismazāko kodu, kas uzrāda vai droši novērš vienu ievainojamību. Katram ir komentārs, kas norāda, kas ir nepareizi, kas tiek gaidīts un kāpēc. Korpuss ir versionēts: izmaiņas tajā ir izmaiņas publicētajos skaitļos.
Atsauces patiesība, rakstīta par kodu
Gaidāmais rezultāts ir spriedums par kodu, pieņemts pirms dzinēja palaišanas, nekad apraksts tam, ko dzinējs radīja. Kad abi nesakrīt, mēs vispirms pārbaudām dzinēju. Marķējums, kas rakstīts tā, lai atbilstu dzinēja izvadei, nemēra neko, un mums ir nācies labot marķējumus, kas bija novirzījušies šajā virzienā.
Konveijers, kas tiek piegādāts
Katrs gadījums tiek analizēts tāpat, kā notiek klienta skenēšana: pilns orķestrators maksimālā dziļumā, bez ārējiem skeneriem, bez modeļa ciklā. Skaitļi apraksta dzinēju, kas visur tiek piegādāts identisks, nevis laboratorijas konfigurāciju, saliktu šim gadījumam.
Pareizs kods, apzināti
Trešdaļa korpusa ir kods, kas nav ievainojams, lielākoties izlabotā forma gadījumam, kas ir. Korpuss, ko veido tikai ievainojamības, nespēj atklāt kļūdaini pozitīvu atradumu, un tieši kļūdaini pozitīvie liek pārstāt lasīt drošības rīku.

Ko mērījums nemēra

Cybseco tos piegādā. Neviens skaitlis mērījuma lapā tos neapraksta, un katram ir savs pamatojums. Klusi izlaista spēja ir spēja, par kuru lasītājs pieņem, ka skaitļi to aptvēra.

  • 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.

Kāpēc dažas spējas nav procenti

Atklāšanai ir pareiza atbilde: ievainojamība tajā rindā ir vai nav. Daļa no tā, ko Cybseco dara, izsaka cita veida apgalvojumu, un precizitāte un pārklājums to izteikt nespēj. Tomēr publicēt skaitli būtu vieglākais, ko šajā lapā izdarīt, un ātrākais veids, kā zaudēt strīdu ar kādu, kurš lasa uzmanīgi.

Arhitektūras grafs
Faktisks apgalvojums: šie aktīvi pastāv un starp tiem pastāv šīs attiecības. Izmērāms, un pirmais, ko plānojam izmērīt. Tam nepieciešams pilnu, ar roku anotētu repozitoriju korpuss, divi neatkarīgi vērtētāji un viņu savstarpējā saskaņa, publicēta blakus rezultātam. Jebkas mazāks mēra anotēšanas procesu, nevis ekstraktoru.
Uzbrukuma ceļi
Faktiski, bet tikai tad, kad kāds norāda, ar ko uzbrucējs sāk. „Uzbrucējs var sasniegt datubāzi” nav ne patiess, ne aplams, kamēr nepasakāt, vai viņš sāk kā anonīms apmeklētājs, autentificēts lietotājs vai kompromitēts būvēšanas izpildītājs. Tas pats dzinējs vienā pieņēmumā ir pareizs un citā kļūdains, tāpēc skaitlis bez šī pieņēmuma, kas drukāts blakus, nav atkārtojams.
Kontekstuāla prioritizācija
Apgalvojums par to, kas ir svarīgāk, un no mērķa neatkarīga fakta šeit nav. Jaunuzņēmums pirms ieņēmumiem un regulēta banka lasa vienu un to pašu repozitoriju, un abiem ir taisnība to sarindot atšķirīgi. Jebkura pareizā secība, ko publicētu, būtu mūsu pašu produkta viedoklis, validēts pret atsauces patiesību, ko arī uzrakstījām mēs paši.
Lēmumu dzinējs
Rīkojies tagad, plāno, pārbaudi: ieteikums attiecībā pret politiku, un politika ir produkta lēmums. Mēs varam pārbaudīt, ka tas ievēro savu politiku, ka neviens atradums klusi nepazūd un ka katrs ieteikums atsaucas uz pierādījumu, kas pastāv. Tā ir atbilstības pārbaude. Nosaukt to par precizitāti nozīmētu uzaicināt tieši to nepareizo lasījumu, kura novēršanai šī lapa ir rakstīta.

Kā lasīt skaitļus

Četras lietas, ko vērts zināt, pirms izdarāt secinājumu no jebkura atsevišķa skaitļa mērījuma lapā.

Izlases lielums pirms procentiem
Katrs slānis rāda, no cik atradumiem aprēķināta tā precizitāte. Slāņi ar mazām izlasēm ir nesen pievienotie, un to skaitļi mainīsies, korpusam augot. Tas runā pret glaimojošām rindām tikpat lielā mērā kā pret neērto: nevainojams rezultāts no deviņiem atradumiem ir vājš apgalvojums, nevis spēcīgs.
Katrs kļūdaini pozitīvais tiek publicēts
Atradumi, ko dzinējs rada kodā, kas nav ievainojams, ir uzskaitīti kopā ar kļūdījušos analizatoru un iemeslu, kāpēc atradums ir nepareizs. Tie tiek skaitīti pret precizitāti, nekad netiek no tās izslēgti. Trīs no tiem nostrādā tieši uz to risinājumu, ko iesaka pats noteikums, un tieši tāda veida defekta izcelšanai, nevis noslēpšanai, mērījums pastāv.
LLM slānis analizē jūsu kodu
Tas lasa pašas lietotnes integrācijas kodu, meklējot LLM un aģentu kļūdas: modeļa izvadi, kas nonāk čaulā, akreditācijas datus, kas ievietoti uzvednē, aģenta rīku, kas var palaist jebko. Tas nav mērs mākslīgajam intelektam Cybseco iekšienē. Šis mērījums izpilda deterministisko dzinēju bez modeļa ciklā.
Zināmās nepilnības tiek nosauktas
Ievainojamība, kas ir reāla un ārpus dzinēja pašreizējā tvēruma, tiek fiksēta kā pieņemta nepilnība, izslēgta no pārklājuma un uzskaitīta. Ierobežojuma fiksēšana ir veids, kā nākotnes uzlabojums parādās kā izmērīts ieguvums, nevis tiek apgalvots jau šodien.

Noteikumi, ko uzliekam paši sev

Tie ir ierobežojumi mums, nevis apgalvojumi par produktu. Tieši tie padara skaitļus lasīšanas vērtus.

  • Viss, ko Cybseco paziņo, ir vai nu izmērīts, vai šajā lapā nosaukts kā ārpus tvēruma. Trešā stāvokļa nav, un automātisks vārts neizlaiž būvējumu, kad analizators tiek piegādāts bez viena vai otra.
  • Atsauces patiesība apraksta kodu un tiek noteikta pirms dzinēja palaišanas. Marķējums, kas rakstīts tā, lai atbilstu dzinēja izvadei, nav pierādījums.
  • Skaitlis tiek publicēts kopā ar izlasi, no kuras tas aprēķināts.
  • Defekts, par ko zinām, tiek publicēts, nevis izslēgts no rādītāja. Vārts neizlaiž arī tad, kad publicēts defekts klusi pārstāj atkārtoties, tādēļ saraksts var sarukt tikai godīgi.
  • Nekādu salīdzinājumu ar citu produktu tajās spējās, kur mēs izvēlētos viņu konfigurāciju, viņu korpusu un scenāriju. Šādam salīdzinājumam nevajadzētu ticēt nevienam, arī mums.
  • Nekāda skaitļa, pirms tā metodika ir publiska un tā atsauces patiesība pārbaudāma.

Redziet, kā Cybseco spriež par reālu sistēmu

Noskatieties interaktīvo demonstrāciju, pēc tam pieprasiet vadītu izmēģinājumu savai komandai.