Võrdlusmõõtmise metoodika

Mida me mõõdame, mida mitte, ja miks

Võrdlusmõõtmine on olemas selleks, et seda kontrollitaks, mitte imetletaks. See leht sätestab selle täpse perimeetri: mida avaldatud arvud katavad, mida nad tahtlikult välja jätavad, ja millised meie võimekustest ei ole ausalt taandatavad protsendile.

Mida võrdlusmõõtmine mõõdab

Üks küsimus, esitatud versioonitud korpusele käsitsi hinnatud projektidest: kui fail on meil juba otsustatud, kas mootor raporteerib seal oleva haavatavuse, õigel real, raporteerimata asju, mida ei ole?

Versioonitud korpus
Iga juhtum on väike projekt, mis sisaldab vähimat koodi, mis ilmutab või ohutult väldib üht haavatavust. Igaühel on kommentaar, mis ütleb, mis on valesti, mida oodatakse ja miks. Korpus on versioonitud: selle muutmine on avaldatud arvude muutmine.
Alustõde, mis on kirjutatud koodi kohta
Oodatav tulemus on hinnang koodi kohta, otsustatud enne mootori käivitamist, mitte kunagi kirjeldus sellest, mida mootor tootis. Kui need kaks lahknevad, uurime kõigepealt mootorit. Märgend, mis on kirjutatud mootori väljundiga sobitumiseks, ei mõõda midagi, ja meil on tulnud parandada märgendeid, mis olid sinnapoole triivinud.
Tarnitav konveier
Iga juhtumit analüüsitakse nii, nagu kliendi skannimine käib: täielik orkestraator maksimaalsel sügavusel, ilma väliste skanneriteta, ilma mudelita ahelas. Arvud kirjeldavad mootorit, mis tarnitakse igal pool identsena, mitte puhuks kokku pandud laborikonfiguratsiooni.
Korrektne kood, tahtlikult
Kolmandik korpusest on kood, mis ei ole haavatav, enamasti mõne haavatava juhtumi parandatud kuju. Ainult haavatavustest koosnev korpus ei suuda valepositiivset tuvastada, ja just valepositiivsed on see, mis paneb turvatööriista lugemata jätma.

Mida võrdlusmõõtmine ei mõõda

Cybseco tarnib need. Ükski arv võrdlusmõõtmise lehel ei kirjelda neid, ja igaühel on oma põhjus. Vaikselt välja jäetud võimekus on võimekus, mille lugeja eeldab arvudega kaetud olevat.

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

Miks mõni võimekus ei ole protsent

Tuvastusel on õige vastus: haavatavus on sellel real või ei ole. Osa sellest, mida Cybseco teeb, esitab teistsuguse väite, ja täpsus ega saagis seda väljendada ei suuda. Arvu ikkagi avaldamine oleks kõige lihtsam asi sellel lehel ja kiireim viis kaotada vaidlus kellegagi, kes loeb tähelepanelikult.

Arhitektuurigraaf
Faktiline väide: need varad on olemas ja need seosed kehtivad nende vahel. Mõõdetav, ja esimene asi, mida kavatseme mõõta. See vajab korpust täielikest käsitsi annoteeritud hoidlatest, kaht sõltumatut ülevaatajat ja nendevahelise kooskõla avaldamist skoori kõrval. Midagi vähemat mõõdab annoteerimisprotsessi, mitte ekstraktorit.
Ründeteed
Faktilised, kuid alles siis, kui keegi ütleb, millest ründaja alustab. „Ründaja saab andmebaasini jõuda“ ei ole tõene ega väär enne, kui ütlete, kas ta alustab anonüümse külastajana, autenditud kasutajana või kompromiteeritud ehitusjooksjana. Sama mootor on ühe eelduse korral õige ja teise korral vale, seega arv ilma selle eelduseta kõrval ei ole korratav.
Kontekstipõhine prioriseerimine
Väide selle kohta, mis on olulisem, ja eesmärgist sõltumatut tõsiasja siin ei ole. Tuluta idufirma ja reguleeritud pank loevad sama hoidlat ja mõlemal on õigus järjestada see erinevalt. Iga õige järjestus, mille me avaldaksime, oleks meie enda tootearvamus, valideeritud alustõe vastu, mille me ka ise kirjutasime.
Otsustusmootor
Tegutse kohe, planeeri, kontrolli: soovitus poliitika vastu, ja poliitika on tooteotsus. Me saame testida, et see järgib omaenda poliitikat, et ükski leid ei kao vaikselt ja et iga soovitus viitab tõendusele, mis on olemas. See on vastavustest. Selle nimetamine täpsuseks kutsuks esile just selle vääriti lugemise, mille ärahoidmiseks see leht on kirjutatud.

Kuidas arve lugeda

Neli asja, mida tasub teada enne, kui teete järelduse mõnest üksikust arvust võrdlusmõõtmise lehel.

Valimi suurus enne protsenti
Iga kiht näitab, mitmest leiust selle täpsus arvutati. Väikese valimiga kihid on hiljuti lisatud ja nende arvud liiguvad, kui nende korpus kasvab. See räägib meelitavate ridade vastu sama palju kui ebamugava vastu: täiuslik tulemus üheksast leiust on nõrk väide, mitte tugev.
Iga valepositiivne avaldatakse
Leiud, mida mootor toodab koodil, mis ei ole haavatav, on loetletud koos süüdioleva analüsaatoriga ja põhjusega, miks leid on vale. Need arvestatakse täpsuse vastu, mitte kunagi ei jäeta sellest välja. Kolm neist vallanduvad just sellel leevendusel, mida reegel ise soovitab, ja see on täpselt selline defekt, mille esiletoomiseks, mitte neelamiseks, võrdlusmõõtmine olemas on.
LLM-kiht analüüsib teie koodi
See loeb rakenduse enda integratsioonikoodi LLM-i ja agendi vigade suhtes: mudeli väljund, mis jõuab käsutõlgini, mandaat, mis on pandud viipa, agenditööriist, mis suudab käivitada mida tahes. See ei mõõda tehisintellekti Cybsecoi sees. See võrdlusmõõtmine käivitab deterministliku mootori ilma mudelita ahelas.
Teadaolevad lüngad on nimetatud
Haavatavus, mis on tõeline ja väljaspool mootori praegust ulatust, salvestatakse aktsepteeritud lünkana, jäetakse saagisest välja ja loetletakse. Piiri talletamine on viis, kuidas tulevane parandus ilmneb mõõdetud võiduna selle asemel, et seda täna väita.

Reeglid, mida me endale kehtestame

Need on piirangud meile, mitte väited toote kohta. Just need teevad arvud lugemisväärseks.

  • Kõik, mida Cybseco teatab, on kas mõõdetud või sellel lehel nimetatud ulatusest välja jäävaks. Kolmandat olekut ei ole, ja automaatne värav laseb ehitusel läbi kukkuda, kui analüsaator tarnitakse ilma ühe või teiseta.
  • Alustõde kirjeldab koodi ja otsustatakse enne mootori käivitamist. Märgend, mis on kirjutatud mootori väljundiga sobitumiseks, ei ole tõendus.
  • Arv avaldatakse koos valimiga, millest see arvutati.
  • Defekt, mida me teame, avaldatakse, mitte ei jäeta mõõdikust välja. Värav kukub läbi ka siis, kui avaldatud defekt lakkab vaikselt taastekkimast, nii et nimekiri saab kahaneda ainult ausalt.
  • Mitte mingit võrdlust teise tootega võimekustel, kus meie valiksime nende konfiguratsiooni, nende korpuse ja stsenaariumi. Sellist võrdlust ei peaks uskuma keegi, ka meie mitte.
  • Mitte ühtki arvu enne, kui selle metoodika on avalik ja selle alustõde kontrollitav.

Vaata, kuidas Cybseco reaalse süsteemi üle arutleb

Vaata interaktiivset demo ja seejärel taotle oma meeskonnale juhendatud prooviperioodi.