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

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

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

Какво означава това за вашия бизнес

Поправяйте само уязвимости, които вашето приложение реално може да достигне — пропуснете останалите. Пакет „Стела“ доказва кои CVE са достижими, за да може екипът ви да се фокусира върху реалните рискове, а не върху шума от скенерите. ReachabilityАнализ, доказващ дали уязвимият код реално се извиква от приложението ви — филтрира фалшиви положителни от шума на скенерите

30-секунден изпълнителен обзор

До 70-90%

Типично намаляване на шума

Наблюдаваният диапазон варира според стека и покритието.

3

Слоеве на анализа

Статични графи на извиквания, бинарни символи, eBPF сонди по време на изпълнение

100%

Подписано и възпроизводимо

Всеки вердикт за достижимост е доказателство, подписано с DSSE

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

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

Слой 1

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

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

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

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

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

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

eBPF сонди по време на изпълнение

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

  • • Tetragon-базирана eBPFExtended Berkeley Packet Filter — технология на ядрото на Linux, която изпълнява изолирани програми за високопроизводителен мониторинг и анализ по време на изпълнение без модули на ядрото инструментация
  • • Записва symbol_id, code_id, hit_count, loader_base
  • • Запазваща поверителност: не се улавят стойности на аргументи

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

Implementation: node hash joins

Доказателствата за достижимост са съдържателно-адресирани за дедупликация и проверка. Хешовете на възли позволяват ефективно сравняване между версии. Хеш на възел SHA256(normalize(purl) + ":" + normalize(symbol)) Хеш на път SHA256(entryNodeHash + ":" + joinedIntermediateHashes + ":" + sinkNodeHash) Топ-K значими пътища се запазват в пакета с доказателства. Пътищата се ранкират по честота на изпълнение (от средата по време на изпълнение) или дълбочина на извикване (от статичния анализ).
Read more

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

Хеш на възел

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

Хеш на път

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

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

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

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

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

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

Матрица на покритие на обхвата за стробиране на политики

Преди да активирате твърдо блокиране в производството, проверете покритието на вашия собствен кодов корпус. Матрицата по-долу описва как да се оцени всеки път на език/време на изпълнение и как трябва да се третират неизвестните.

Език/време на изпълнениеСтатичен път на повикванеДвоично/символно доказателствоДоказателство по време на работаПортал по подразбиране, когато е неизвестен
Напред, Rust, C/C++Валидирайте директното и преходно извличане на пътя на повикванеПроверете точността на съвпадението на символ/идентификатор на компилацияНезадължително eBPF потвърждение за услуги с висок рискПреглед или блокиране на критични констатации по правила
Java и JVM езициВалидирайте достижимостта на ниво метод и случаите на динамично изпращанеВалидирайте съпоставянето на байт код/jar символПрепоръчват се следи по време на изпълнение за отразяващи пътищаНеизвестен маршрут към лентата за ръчен преглед
.NETВалидирайте графиката на IL повикванията и родословието на пакетаВалидирайте разделителната способност на PDB/символ в компилациите на версиятаПотвърждение по време на изпълнение за съкратени/AOT сценарииПрегледайте неизвестните, преди да разрешите решение
Node, Python, Ruby, PHPВалидирайте входните точки на рамката и динамичните граници на импортиранеДоказателството за символи е частично по проект за динамично изпращанеПроследяванията по време на изпълнение силно се препоръчватСъхранявайте неизвестно като изрично състояние и изисквайте одобрение

Препоръка за правилата: третирайте unknown като първокласна присъда, задайте изрични прагове за сериозност и регистрирайте причините за преодоляване на рецензента в пакета с доказателства.

Implementation: signed proofs

Всеки анализ на достижимост произвежда криптографски подписано доказателство, съхранено в съдържателно-адресирано хранилище. DSSE?Dead Simple Signing Envelope – прост, гъвкав стандарт за подписване на произволни данни с криптографски подписи DSSEDead Simple Signing Envelope – прост, гъвкав стандарт за подписване на произволни данни с криптографски подписи обвивка с формат на in-totoРамка за защита на веригата за доставки на софтуер чрез проверка, че всяка стъпка е изпълнена по план и от упълномощени участници SLSASupply-chain Levels for Software Artifacts — рамка за осигуряване на целостта на софтуерните артефакти по цялата верига за доставки предикат Проверимо от одитори без мрежов достъп Детерминистичното възпроизвеждане произвежда бит-идентични резултати Граф и следи архивирани за офлайн проверка Пътища за съдържателно-адресирано съхранение cas://reachability_graphs/<hh>/<sha>.tar.zst cas://runtime_traces/<hh>/<sha>.tar.zst
Read more

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

  • DSSEDead Simple Signing Envelope – прост, гъвкав стандарт за подписване на произволни данни с криптографски подписи обвивка с формат на in-totoРамка за защита на веригата за доставки на софтуер чрез проверка, че всяка стъпка е изпълнена по план и от упълномощени участници SLSASupply-chain Levels for Software Artifacts — рамка за осигуряване на целостта на софтуерните артефакти по цялата верига за доставки предикат
  • Проверимо от одитори без мрежов достъп
  • Детерминистичното възпроизвеждане произвежда бит-идентични резултати
  • Граф и следи архивирани за офлайн проверка

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

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

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

Implementation: eBPF probes

Опционална Tetragon-базирана инструментация улавя реални изпълнения на функции в продукция, предоставяйки доказателство за достижимост с най-висока сигурност. Уловени данни от сонда symbol_id: каноничен идентификатор на символ code_id: идентификатор на секция от кода hit_count: честота на изпълнение loader_base: базов адрес в паметта cas_uri: адресирана по съдържание референция Сондите изпращат наблюдения към /api/v1/observations на партиди. Всяко наблюдение включва CAS URI за основния артефакт.
Read more

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

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

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

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

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

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

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

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

Готови ли сте да намалите значително фалшивите позитиви?

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