Smart-Diff - Дельта семантичного ризику
Що змінилося в експлуатації, а не в CVE
Семантична дельта щодо досяжності та стану VEX між двома релізами.
Дельта рахунку показує, скільки ідентифікаторів прибуло і пішло. Smart-Diff порівнює два дайджести як стани ризику: які знахідки отримали або втратили спостережуваний шлях виконання, які VEX стани були переміщені, і які з цих змін оцінює ваша політика.
Це змінює те, що рецензент читає першим, а не знахідки нижче.
Місце в магістралі збереження доказів
- Джерело
- Будівництво
- Сканування
- Вердикт
- Рішення
- Розгортання
- Дивіться
Дельта обчислюється, коли кандидатський дайдест переглядається для просування: вердикт містить те, що змінилося щодо дайджесту, який він замінює, і рішення закріплює його як докази.
Два читання одного й того ж релізу
Ілюстративний приклад — демо-фразування, а не виміряний результат.
Інструмент на основі підрахунку звітує
+3 CVEs
Три ідентифікатори прийшли з оновленням базового образу та підвищенням залежності. Підрахунок показує, що ризик зріс. Вона не може сказати, чи зможе хтось із трьох виконати.
Smart-Diff звіти
+3 CVE с, зменшена поверхня, придатна для експлуатації
Три додані результати не належать до жодного спостережуваного шляху виконання. Один результат, який був досяжним і невиправленим у попередньому дайджесті, зник. Суттєва зміна — видалення.
«+3 CVEs, зменшена поверхня, яку можна використати» — це речення, яке інструмент на основі підрахунку не може створити. Потрібно знати, які знахідки можна реалізувати, а не скільки їх існує.
Що він насправді порівнює
Smart-Diff — це стан різного ризику, пов'язаний із двома дайджестами зображень: релізом, який ви запускаєте, і релізом, який ви пропонуєте. ReachabilityАналіз, що доводить, чи дійсно вразливий код викликається вашим застосунком — фільтрація хибних спрацьовувань з шуму сканерів
Зміни досяжного шляху
Які знахідки отримали або втратили спостережуваний шлях виконання між базовим дайджестом і цільовим дайджестом. Знахідка, яка перестає бути доступною, — це інша подія, ніж знахідка, що зникає.
VEX переходи станів
Переміщення заяви, такі як вплив на not_affected, записані з логікою за ними — рецензент бачить, чому стан змінився, а не просто те, що він змінився.
Дельти, релевантні для політики
Зміни, які переходять межу, оцінює ваш політика: зміни ступеня серйозності, доступність фіксації, клас досяжності. Зміни політики ігнорують залишатися в дельті, ранжувати нижче.
Прив'язаний до двох дайджестів, які можна відтворювати, як будь-який вердикт
Дельта записується як атестація з підписом DSSE, що містить дайджести базового й цільового образів. Її корисне навантаження містить додані, видалені та змінені результати, результат шлюзу досяжності й перелік суттєвих змін. Повторне виконання для тих самих двох дайджестів і тих самих доказів дає ту саму дельту. DSSEDead Simple Signing Envelope – простий гнучкий стандарт для підпису довільних даних криптографічними підписами
Чому граф вводить в оману
Реліз може додати десять CVE ідентифікаторів у коді, який ніколи не завантажується, і видалити одну знахідка, яка була доступна і не виправлена. перевірка на основі підрахунку блокує, які звільняють — безпечніший. Виявлення змін ризику матеріалу ранжує дельту, тому рецензент спочатку читає, що рухає експлуатувану поверхню. Довгий хвіст знаходиться в одному фільтрі.
Контекст щодо базової популяції знахідок, а не щодо дельта: ~85% критичних вразливостей контейнерів знаходяться в неактивному коді (Sysdig 2024 Container Security Report). Дельта, яка рахує лише ідентифікатори, успадковує цей шум з обох боків порівняння.
Де приземляється дельта
Огляд релізу перед просуванням.
- Кандидатський дайджест доходить до перегляду. Його вердикт визначає дельту проти дайджесту, який наразі затверджений у цільовому середовищі.
- Рецензент спочатку читає суттєві зміни: що стало доступним, що перестало доступним, які VEX стани переїхали і чому.
- Під час просування дельта закріплюється у доказах рішення. Коли хтось пізніше запитує, чому дозволили цей реліз, відповідь відповідає, що змінилося з минулого разу — а не просто знімок.
Межа
Якість дельти відстежує покриття досяжності. Аналіз досяжності охоплює Java, C#, Go, JavaScript, TypeScript та Python. Поза цими мовами Smart-Diff все ще фіксує додані, видалені та змінені знахідки між двома дайджестами, але не може стверджувати, що експлуатованість змінилася, і прямо про це повідомляє, замість звіту про відсутність змін.
