Smart-Diff - Дельта семантичного ризику

Що змінилося в експлуатації, а не в CVE

Семантична дельта щодо досяжності та стану VEX між двома релізами.

Дельта рахунку показує, скільки ідентифікаторів прибуло і пішло. Smart-Diff порівнює два дайджести як стани ризику: які знахідки отримали або втратили спостережуваний шлях виконання, які VEX стани були переміщені, і які з цих змін оцінює ваша політика.

Це змінює те, що рецензент читає першим, а не знахідки нижче.

Місце в магістралі збереження доказів

  1. Джерело
  2. Будівництво
  3. Сканування
  4. Вердикт
  5. Рішення
  6. Розгортання
  7. Дивіться

Дельта обчислюється, коли кандидатський дайдест переглядається для просування: вердикт містить те, що змінилося щодо дайджесту, який він замінює, і рішення закріплює його як докази.

Два читання одного й того ж релізу

Ілюстративний приклад — демо-фразування, а не виміряний результат.

Інструмент на основі підрахунку звітує

+3 CVEs

Три ідентифікатори прийшли з оновленням базового образу та підвищенням залежності. Підрахунок показує, що ризик зріс. Вона не може сказати, чи зможе хтось із трьох виконати.

Smart-Diff звіти

+3 CVE с, зменшена поверхня, придатна для експлуатації

Три додані результати не належать до жодного спостережуваного шляху виконання. Один результат, який був досяжним і невиправленим у попередньому дайджесті, зник. Суттєва зміна — видалення.

«+3 CVEs, зменшена поверхня, яку можна використати» — це речення, яке інструмент на основі підрахунку не може створити. Потрібно знати, які знахідки можна реалізувати, а не скільки їх існує.

Що він насправді порівнює

Smart-Diff — це стан різного ризику, пов'язаний із двома дайджестами зображень: релізом, який ви запускаєте, і релізом, який ви пропонуєте. ReachabilityАналіз, що доводить, чи дійсно вразливий код викликається вашим застосунком — фільтрація хибних спрацьовувань з шуму сканерів

Зміни досяжного шляху

Які знахідки отримали або втратили спостережуваний шлях виконання між базовим дайджестом і цільовим дайджестом. Знахідка, яка перестає бути доступною, — це інша подія, ніж знахідка, що зникає.

VEX переходи станів

Переміщення заяви, такі як вплив на not_affected, записані з логікою за ними — рецензент бачить, чому стан змінився, а не просто те, що він змінився.

Як Stella Ops справляється з SBOM і VEX →

Дельти, релевантні для політики

Зміни, які переходять межу, оцінює ваш політика: зміни ступеня серйозності, доступність фіксації, клас досяжності. Зміни політики ігнорують залишатися в дельті, ранжувати нижче.

Прив'язаний до двох дайджестів, які можна відтворювати, як будь-який вердикт

Дельта записується як атестація з підписом DSSE, що містить дайджести базового й цільового образів. Її корисне навантаження містить додані, видалені та змінені результати, результат шлюзу досяжності й перелік суттєвих змін. Повторне виконання для тих самих двох дайджестів і тих самих доказів дає ту саму дельту. DSSEDead Simple Signing Envelope – простий гнучкий стандарт для підпису довільних даних криптографічними підписами

Smart-Diff посилання на предикат →

Чому граф вводить в оману

Реліз може додати десять CVE ідентифікаторів у коді, який ніколи не завантажується, і видалити одну знахідка, яка була доступна і не виправлена. перевірка на основі підрахунку блокує, які звільняють — безпечніший. Виявлення змін ризику матеріалу ранжує дельту, тому рецензент спочатку читає, що рухає експлуатувану поверхню. Довгий хвіст знаходиться в одному фільтрі.

Контекст щодо базової популяції знахідок, а не щодо дельта: ~85% критичних вразливостей контейнерів знаходяться в неактивному коді (Sysdig 2024 Container Security Report). Дельта, яка рахує лише ідентифікатори, успадковує цей шум з обох боків порівняння.

Де приземляється дельта

Огляд релізу перед просуванням.

  1. Кандидатський дайджест доходить до перегляду. Його вердикт визначає дельту проти дайджесту, який наразі затверджений у цільовому середовищі.
  2. Рецензент спочатку читає суттєві зміни: що стало доступним, що перестало доступним, які VEX стани переїхали і чому.
  3. Під час просування дельта закріплюється у доказах рішення. Коли хтось пізніше запитує, чому дозволили цей реліз, відповідь відповідає, що змінилося з минулого разу — а не просто знімок.

Як рішення містять докази →

Межа

Якість дельти відстежує покриття досяжності. Аналіз досяжності охоплює Java, C#, Go, JavaScript, TypeScript та Python. Поза цими мовами Smart-Diff все ще фіксує додані, видалені та змінені знахідки між двома дайджестами, але не може стверджувати, що експлуатованість змінилася, і прямо про це повідомляє, замість звіту про відсутність змін.

Що охоплюють докази досяжності →