Методология на бенчмарка

Какво измерваме, какво не и защо

Бенчмаркът съществува, за да бъде проверен, а не да бъде възхваляван. Тази страница посочва точния му периметър: какво покриват публикуваните числа, какво умишлено пропускат и кои от нашите способности не могат честно да се сведат до процент.

Какво измерва бенчмаркът

Един въпрос, зададен върху версиониран корпус от ръчно преценени проекти: при файл, за който вече сме взели решение, докладва ли енджинът уязвимостта, която е там, на правилния ред, без да докладва неща, които ги няма?

Версиониран корпус
Всеки случай е малък проект, съдържащ най-малкия код, който проявява или безопасно избягва една уязвимост. Всеки носи коментар какво е сгрешено, какво се очаква и защо. Корпусът е версиониран: промяна в него е промяна в публикуваните числа.
Еталонна истина, написана за кода
Очакваният резултат е преценка за кода, решена преди енджинът да бъде изпълнен, никога описание на това, което енджинът е произвел. Когато двете се разминават, първо разследваме енджина. Етикет, написан така, че да съвпадне с изхода на енджина, не измерва нищо, и ни се е налагало да поправяме етикети, които бяха отишли в тази посока.
Конвейерът, който се доставя
Всеки случай се анализира така, както върви клиентско сканиране: пълният оркестратор на максимална дълбочина, без външни скенери, без модел в цикъла. Числата описват енджина, който се доставя идентично навсякъде, а не лабораторна конфигурация, сглобена за случая.
Коректен код, умишлено
Една трета от корпуса е код, който не е уязвим, в по-голямата си част поправената форма на случай, който е. Корпус само от уязвимости не може да открие фалшиво положителен резултат, а именно фалшиво положителните карат един инструмент за сигурност да спре да бъде четен.

Какво бенчмаркът не измерва

Cybseco ги доставя. Нито едно число на страницата на бенчмарка не ги описва и всяко носи своята причина. Способност, пропусната мълчаливо, е способност, за която читателят предполага, че числата са я покрили.

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

Защо някои способности не са процент

Откриването има верен отговор: уязвимостта е на този ред или не е. Част от това, което Cybseco прави, отправя друг вид твърдение и прецизността и пълнотата не могат да го изразят. Да публикуваме число въпреки това би било най-лесното нещо на тази страница и най-бързият начин да загубим спора с някого, който чете внимателно.

Графът на архитектурата
Фактическо твърдение: тези активи съществуват и тези отношения са налице между тях. Измеримо, и първото, което възнамеряваме да измерим. Изисква корпус от цели хранилища, анотирани ръчно, двама независими оценители и съгласието между тях, публикувано до оценката. Каквото и да е по-малко измерва процеса на анотиране, а не екстрактора.
Пътища за атака
Фактически, но едва след като някой посочи с какво започва нападателят. „Нападател може да достигне базата данни“ не е нито вярно, нито невярно, докато не кажете дали той започва като анонимен посетител, удостоверен потребител или компрометиран build runner. Същият енджин е прав при едно допускане и греши при друго, така че число без това допускане, отпечатано до него, не е възпроизводимо.
Контекстуално приоритизиране
Твърдение за това кое има по-голямо значение, а тук няма факт независимо от целта. Стартъп преди приходи и регулирана банка четат едно и също хранилище и двете са прави да го подредят различно. Всяка правилна подредба, която бихме публикували, би била нашето собствено продуктово мнение, валидирано спрямо еталонна истина, която също сме написали ние.
Енджинът за решения
Действай сега, планирай, провери: препоръка спрямо политика, а политиката е продуктово решение. Можем да тестваме, че тя следва собствената си политика, че нито една находка не отпада мълчаливо и че всяка препоръка цитира доказателство, което съществува. Това е тест за съответствие. Да го наречем точност би поканило точно онова погрешно четене, което тази страница е написана да предотврати.

Как да четете числата

Четири неща, които си струва да знаете, преди да извлечете извод от което и да е отделно число на страницата на бенчмарка.

Размер на извадката преди процента
Всеки слой показва от колко находки е изчислена неговата прецизност. Слоевете с малки извадки са наскоро добавените и техните числа ще се движат с растежа на корпуса им. Това важи срещу ласкателните редове толкова, колкото и срещу неудобния: перфектен резултат от девет находки е слабо твърдение, а не силно.
Всяко фалшиво положително се публикува
Находките, които енджинът произвежда върху код, който не е уязвим, са изброени с анализатора, който е сгрешил, и причината находката да е погрешна. Броят се срещу прецизността, никога не се изключват от нея. Три от тях се задействат точно върху мярката, която самото правило препоръчва, а това е точно онзи вид дефект, заради чието изваждане наяве, а не поглъщане, съществува бенчмарк.
Слоят за LLM анализира вашия код
Той чете собствения интеграционен код на приложението за грешки при LLM и агенти: изход на модел, който стига до шел, идентификационни данни, поставени в промпт, агентен инструмент, който може да изпълни каквото и да е. Не е мярка за изкуствен интелект вътре в Cybseco. Този бенчмарк изпълнява детерминистичния енджин без модел в цикъла.
Известните пропуски се назовават
Уязвимост, която е реална и извън текущия обхват на енджина, се записва като приет пропуск, изключва се от пълнотата и се изброява. Записването на граница е начинът, по който бъдещо подобрение се появява като измерена печалба, вместо да бъде твърдяно днес.

Правилата, които налагаме на себе си

Това са ограничения за нас, а не твърдения за продукта. Именно те правят числата достойни за четене.

  • Всичко, което Cybseco обявява, е или измерено, или назовано на тази страница като извън обхвата. Трето състояние няма, а автоматична проверка проваля билда, когато анализатор бъде доставен без едното или другото.
  • Еталонната истина описва кода и се решава преди енджинът да бъде изпълнен. Етикет, написан така, че да съвпадне с изхода на енджина, не е доказателство.
  • Числото се публикува заедно с извадката, от която е изчислено.
  • Дефект, за който знаем, се публикува, а не се изключва от метриката. Проверката се проваля и когато публикуван дефект тихо престане да се възпроизвежда, така че списъкът може да се съкращава само честно.
  • Никакво сравнение с друг продукт по способности, при които ние бихме избирали тяхната конфигурация, техния корпус и сценария. На такова сравнение не би трябвало да вярва никой, включително ние.
  • Никакво число, преди методологията му да е публична и еталонната му истина да подлежи на проверка.

Вижте как Cybseco разсъждава за реална система

Гледайте интерактивното демо, след което заявете насочен пробен период за вашия екип.