Достижимост като доказателство

Докажете дали уязвимият код наистина се извиква

Трислоен анализ — статични графи на извикванията, съвпадение на бинарни символи, runtime eBPF сонди — произвежда подписани DSSE доказателства, които намаляват 70-90% от фалшивите позитиви.

Трислоен анализ

Всеки слой предоставя прогресивно по-силно доказателство, че уязвима функция е (или не е) достижима от вашия код.

Слой 1

Статичен анализ на граф на извикванията

Извличане на графи на извикванията от байт код, AST и изходен код. Проследяване на пътища от входни точки до уязвими символи.

  • • Езикова поддръжка: Go, Rust, C#, Java, Python, JavaScript, C/C++
  • • Обработва виртуален dispatch, интерфейсни извиквания, рефлексия с консервативна апроксимация
  • • Произвежда DAG със състояние на достижимост за всеки възел
Слой 2

Анализ на бинарни символи

Съвпадение на уязвими символи срещу експорти на компилирания бинарен файл. Потвърждава, че кодът реално е свързан.

  • • Извличане на таблица на символи от ELF, PE, Mach-O
  • • Кръстосано реферира DWARF/PDB debug информация, когато е налична
Слой 3

Runtime eBPF сонди

Опционално продукционно профилиране. Улавя реални извиквания на функции по време на изпълнение.

  • • Tetragon-базирана eBPF инструментация
  • • Записва symbol_id, code_id, hit_count, loader_base
  • • Запазваща поверителност: не се улавят стойности на аргументи

Резултат: 70-90% по-малко фалшиви позитиви. Фокусирайте се върху 12 достижими CVE вместо 487 теоретични.

Хеш съединения на възли

Доказателствата за достижимост са съдържателно-адресирани за дедупликация и проверка. Хешовете на възли позволяват ефективно сравняване между версии.

Хеш на възел

SHA256(normalize(purl) + ":" + normalize(symbol))

Хеш на път

SHA256(entryNodeHash + ":" + joinedIntermediateHashes + ":" + sinkNodeHash)

Top-K значими пътища се запазват в пакета с доказателства. Пътищата се ранкират по честота на изпълнение (от runtime) или дълбочина на извикване (от статичен).

Неизвестни като първокласно състояние

Когато анализът не може да определи достижимост, неопределеността се проследява явно — не се скрива или тихо приема за безопасна.

Кошница за достижимостТегло по подразбиране
Входна точка1.0
Директно извикване0.85
Потвърдено в изпълнение0.45
Неизвестно0.5
Недостижимо0.0

Крайна оценка = max(bucket_weights) по всички пътища. Неизвестните възли допринасят за оценката на риска, вместо да бъдат игнорирани.

DSSE подписани доказателства

Всеки анализ на достижимост произвежда криптографски подписано доказателство, съхранено в съдържателно-адресирано хранилище.

  • DSSE обвивка с формат на in-toto SLSA предикат
  • Проверимо от одитори без мрежов достъп
  • Детерминистичното възпроизвеждане произвежда бит-идентични резултати
  • Граф и следи архивирани за офлайн проверка

Пътища за съдържателно-адресирано съхранение

cas://reachability_graphs/<hh>/<sha>.tar.zst

cas://runtime_traces/<hh>/<sha>.tar.zst

eBPF runtime сонди

Опционална Tetragon-базирана инструментация улавя реални изпълнения на функции в продукция, предоставяйки доказателство за достижимост с най-висока сигурност.

Уловени данни от сонда

symbol_id: каноничен идентификатор на символ

code_id: идентификатор на секция от кода

hit_count: честота на изпълнение

loader_base: базов адрес в паметта

cas_uri: адресирана по съдържание референция

Сондите изпращат наблюдения към /api/v1/observations на партиди. Всяко наблюдение включва CAS URI за основния артефакт.

Готови ли сте да намалите фалшивите позитиви с 70-90%?

Инсталирайте Стела и започнете да произвеждате подписани доказателства за достижимост с трислоен анализ.