Smart-Diff — семантична промяна на риска
Какво се промени във възможността за експлоатация, а не в броя CVE
Семантична промяна на достижимостта и състоянието на VEX между две издания.
Промяната в броя показва колко идентификатора са добавени и премахнати. Smart-Diff сравнява двата хеша като състояния на риска: кои находки са получили или загубили наблюдаван път за изпълнение, кои състояния на VEX са се променили и кои от тези промени се оценяват от политиката ви.
Променя какво проверяващият чете първо, но никога самите находки.
Къде се намира във веригата за проследимост
- Източник
- Компилиране
- Сканиране
- Оценка
- Решение
- Внедряване
- Наблюдение
Промяната се изчислява при преглед на кандидат-хеша за повишаване: оценката носи промените спрямо хеша, който се заменя, а решението ги запечатва в доказателствата.
Два прочита на едно и също издание
Илюстративен пример — демонстрационна формулировка, а не измерен резултат.
Инструмент, основан на брой, докладва
+3 CVE
Три идентификатора са добавени с актуализация на базовия образ и повишаване на зависимост. Броят показва увеличение на риска, но не може да покаже дали някой от трите може да се изпълни.
Smart-Diff докладва
+3 CVE, използваемата за атака повърхност е намаляла
Трите добавени находки не се намират в наблюдаван път за изпълнение. Една находка, която е била REACHABLE и некоригирана в предишния хеш, е премахната. Съществената промяна е премахването.
„+3 CVE, използваемата за атака повърхност е намаляла“ е изречение, което инструмент, основан на брой, не може да създаде. То изисква да се знае кои находки могат да се изпълнят, а не колко съществуват.
Какво сравнява в действителност
Smart-Diff е разлика в състоянието на риска, обвързана с два хеша на образи: изданието, което изпълнявате, и предложеното издание. ReachabilityАнализ, доказващ дали уязвимият код реално се извиква от приложението ви — филтрира фалшиви положителни от шума на скенерите
Промени в достижимите пътища
Кои находки са получили или загубили наблюдаван път за изпълнение между базовия и целевия хеш. Находка, която престава да бъде REACHABLE, е различно събитие от находка, която изчезва.
Преходи на състоянието на VEX
Промени на декларации, например от affected към not_affected, записани с обосновката зад тях — проверяващият вижда защо състоянието се е променило, а не само че се е променило.
Промени, свързани с политиката
Промени, които преминават контролна точка, оценявана от политиката ви: промени в сериозността, наличност на корекция и клас на достижимост. Промените, които политиката ви пренебрегва, остават в разликата, но с по-нисък приоритет.
Обвързана с два хеша и възпроизводима като всяка оценка
Промяната се записва като удостоверение, подписано с DSSE, което посочва базовия и целевия хеш на образите. Полезният му товар съдържа добавените, премахнатите и променените находки, резултата от контролната точка за достижимост и списъка със съществени промени. Изпълнете го повторно със същите два хеша и същите доказателства и ще получите същата промяна. DSSEDead Simple Signing Envelope – прост, гъвкав стандарт за подписване на произволни данни с криптографски подписи
Защо броят подвежда
Едно издание може да добави десет CVE идентификатора в код, който никога не се зарежда, и да премахне една находка, която е била REACHABLE и некоригирана. Контролна точка, основана на брой, блокира това издание — по-безопасното. Откриването на съществени промени в риска подрежда разликата така, че проверяващият първо да прочете какво е променило използваемата за атака повърхност. Останалите находки са достъпни с един филтър.
Контекст за основната съвкупност от находки, а не за промените: ~85% от критичните уязвимости в контейнери са в неактивен код (Sysdig 2024 Container Security Report). Промяна, която само брои идентификатори, наследява този шум и от двете страни на сравнението.
Къде се използва промяната
При прегледа на изданието преди повишаване.
- Кандидат-хешът достига до преглед. Оценката му съдържа промяната спрямо хеша, който в момента е одобрен в целевата среда.
- Проверяващият първо чете съществените промени: какво е станало REACHABLE, какво е престанало да бъде REACHABLE, кои състояния на VEX са се променили и защо.
- При повишаването промяната се запечатва в доказателствата за решението. Когато по-късно някой попита защо това издание е било допуснато, отговорът включва какво се е променило от предишния път, а не само моментна снимка.
Границата
Качеството на промяната следва покритието на достижимостта. Анализът на достижимостта обхваща Java, C#, Go, JavaScript, TypeScript и Python. Извън тези езици Smart-Diff продължава да записва добавените, премахнатите и променените находки между двата хеша, но не може да твърди, че възможността за експлоатация се е променила, и го заявява, вместо да отчете липса на промяна.
