Każdy skaner kontenerów wypluwa listy CVE wystarczająco długie, żeby zabić cały sprint. Docker i Black Duck twierdzą, że mają rozwiązanie: niech wydawca obrazu powie Twojemu skanerowi, które podatności naprawdę nie mają znaczenia.
Przeczytałem notatki wydaniowe BDBA z 14 kwietnia. Gdy BDBA skanuje kontener, ustala odcisk palca warstwy bazowej. Jeśli to Docker Hardened Image (DHI), BDBA pobiera dołączoną deklarację VEX i automatycznie ukrywa każdą podatność oznaczoną jako not_affected. Bez ręcznego tagowania, bez edycji polityk. Black Duck może potem wymusić politykę globalną: ignoruj wszystko, co wydawca obrazu już sprawdził.
Co właściwie robi VEX
VEX (Vulnerability Exploitability eXchange) to specyfikacja CISA sformalizowana w kwietniu 2022. Dokument VEX przypisuje CVE jeden z czterech statusów w konkretnym kontekście oprogramowania: not_affected, under_investigation, affected lub fixed. Docker DHI używa podzbioru. Nigdy nie ustawia fixed, bo skaner porównujący same numery wersji pominąłby łatkę backportowaną. Zamiast tego DHI oznacza załatane problemy jako not_affected z uzasadnieniem inline_mitigations_already_exist. Czytelne dla maszyny, przyjazne dla audytu, kompatybilne z CycloneDX i OpenVEX.
Efekt: skaner, który rozumie VEX, widzi CVE, sprawdza deklarację, znajduje not_affected + inline_mitigations_already_exist i odrzuca alert. Z listy 200 CVE zostaje garstka pozycji wymagających faktycznej uwagi.
Otwarta alternatywa
Otwarta alternatywa istnieje. Nie potrzebujesz Black Ducka. Trivy przyjmuje dokumenty OpenVEX bezpośrednio: trivy image --vex=openvex.json myimage:tag filtruje znane nieistotne podatności w czasie skanowania. Grype obsługuje ten sam przepływ. CLI vexctl generuje i zarządza dokumentami OpenVEX za darmo.
Luka to automatyzacja. Trivy i Grype przyjmą dane VEX, ale nie rozpoznają automatycznie, że Twoja warstwa bazowa to obraz DHI, i nie pobiorą odpowiedniej deklaracji. Plik VEX utrzymujesz samodzielnie. Black Duck dostarcza też advisory BDSA, czyli własne alerty, które według dostawcy pojawiają się "dni przed NVD", ale żaden niezależny benchmark tego tempa nie potwierdza.
Gwoli pełnej uczciwości: rozwijam LogStrip, który podchodzi do tego samego szumu od drugiej strony. Nie decyduje, które CVE ma znaczenie, tylko kompresuje raport z Trivy albo Snyka i przycina go do budżetu --max-tokens, zanim przeczyta go agent AI. Opiszę go szerzej w osobnym artykule.
Kąt komercyjny
Bazowe obrazy DHI są darmowe na licencji Apache 2.0. Ponad 1000 utwardzonych obrazów obejmuje popularne runtime'y; są otwarte od grudnia 2025. Same dane VEX są publiczne i niezależne od skanera. Wiz i Mend.io wdrażają w tym roku własne integracje DHI+VEX.
Ale warstwa automatyzacji Black Ducka jest komercyjna. Licencje BDBA nie są publiczne. Integracja SCA jest tylko na roadmapie. Potok wygląda tak: darmowy hardened base image, darmowe dane VEX, płatne narzędzie analizy, płatna polityka auto-tłumienia. Propozycja wartości to wygoda, nie możliwości. Ten sam stos złożysz z Trivy + OpenVEX, jeśli masz ochotę napisać klej.
Docker twierdzi, że zbiorcza polityka czyści "tysiące nieistotnych alertów bez ręcznego wysiłku." To blog dostawcy bez niezależnego audytu. Twój wynik zależy od tego, ile warstw DHI faktycznie uruchamiasz i jak głośny jest Twój obecny skaner.
Comparison data
| Automatyczne wykrywanie DHI | Filtrowanie VEX | Własne advisory | Darmowy tier | |
|---|---|---|---|---|
| Black Duck BDBA | Yes | Yes | Yes | No |
| Trivy + OpenVEX | No | Yes | No | Yes |
| Grype + OpenVEX | No | Yes | No | Yes |
| Docker Scout (natywny) | Yes | Yes | No | - |
Ważniejsze od duetu Docker+Black Duck jest to, że VEX przechodzi ze specyfikacji do integracji produktowych. CISA zdefiniowała go w 2022. Microsoft od października 2025 dostarcza czytelny dla maszyny VEX dla każdego CVE.
Unijny Cyber Resilience Act będzie wymagał przejrzystości podatności, na którą odpowiada VEX. Standard wygrywa. Pytanie, czy zapłacisz za warstwę wygody, czy zbudujesz własną.