Sprawdzanie CVE z Yocto Kirkstone i Scarthgap

·

cve-check i zarządzanie CVE w Yocto Kirkstone Scarthgap

W świetle nadchodzących zmian związanych z wchodzącym Cyber Resilience Act organizacje kładą coraz większy nacisk na sprawdzanie i rozwiązywanie CVE (Common Vulnerability and Exposures). Jeśli budujesz swoje obrazy Linuxa korzystając z Yocto to możesz skorzystać z wbudowanych mechanizmów pozwalających na sprawdzenie bazy NIST (National Institute of Standards and Technology) i wykrycie które CVE dotyczą aplikacji w twojej dystrybucji.

Włączenie cve-check w Yocto

Samo włączenie sprawdzania CVE w Yocto jest bardzo proste. Wystarczy, że do swojego pliku local.conf dodasz następującą linię:

INHERIT+="cve-check"

a następnie zbudujesz paczkę lub obraz komendą bitbake. Poza standardową procedurą budowania dodany zostanie jeden task- do_cve_check, który pobierze bazę danych o CVE ze strony NIST, a następnie sprawdzi wersje twoich aplikacji w bazie.
Efektem tego będzie plik z listą CVE. W Yocto 3.1 (Dunfell) był to zwykły plik tekstowy, a w Yocto 4.0 (Kirkstone) dodano również odpowiednik tego raportu w formacie JSON.

Jak łatać CVE w Yocto?

Opcja 1: Aktualizowanie meta warstw

Najprostszym sposobem naprawy luk jest aktualizacja meta warstw (np. meta-openembedded, meta-oe, poky). W wielu przypadkach nowe wersje warstw zawierają poprawki na CVE i ich aktualizacja może rozwiązać problem. Jednak aktualizacja całej warstwy może wprowadzić zmiany w innych pakietach, co wymaga testów kompatybilności.

Opcja 2: korzystanie z patchy

Gdy aktualizacja meta warstw nie jest możliwa lub pożądana, można ręcznie dodawać patche naprawiające konkretne podatności. W Yocto można to zrobić poprzez dodanie patchy do katalogu files/ w warstwie BSP i modyfikację SRC_URI w pliku recipe.

Opcja 3: allowlisting

Jeśli dany CVE nie stanowi realnego zagrożenia w kontekście projektu, można go dodać do allowlisty, aby uniknąć fałszywych alarmów. Aby to zrobić w Dunfell, można dodać numer CVE do pliku cve-check-exclude.txt.

W Kirkstone…

TODO

Minusy korzystania z bazy NIST

Baza NIST zawiera wiele wpisów, ale nie zawsze odzwierciedla rzeczywisty poziom ryzyka dla konkretnego projektu. Może też zawierać opóźnione aktualizacje, co powoduje, że niektóre podatności mogą być zgłaszane jako aktywne, mimo że są już załatane w upstreamie.

W lutym 2024 rozwiązywanie CVE przez NIST znacznie zwolniło i taki stan utrzymał się przez około 3 miesiące. Instytut nie wytłumaczył co było powodem tej zmiany zachowania.

Z kolei w grudniu 2024 znacznie zwolniła prędkość pobierania bazy NIST przy użyciu API- pobranie jednej bazy trwało czasem nawet ponad 24h.

Dlatego też warto pamiętać, że NIST i jego NVD (National Vulnerability Database) nie jest jedynym miejscem, gdzie mamy do czynienia z listą vulnerabilities. Alternatywą może być baza MITRE, wewnętrzna baza BluckDuck i inne.

Co dalej z tymi CVE?

Korzystanie z BlackDuck

TODO

Nowsze rozwiązania – yocto-vex-check

Yocto-vex-check

Komentarze

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *