Podatności
CSAF: Common Security Advisory Framework dla biuletynów do odczytu maszynowego
Biuletyny bezpieczeństwa były kiedyś stronami internetowymi i plikami PDF, które ktoś musiał przeczytać, produkt po produkcie. Common Security Advisory Framework (CSAF) to standard OASIS, który zamienia je w dokumenty JSON, które narzędzie może pobrać, zwalidować i dopasować do używanych przez Państwa produktów.
Zaktualizowano
Czym jest CSAF?
Common Security Advisory Framework (CSAF) to standard OASIS CSAF Technical Committee służący do zapisywania biuletynów bezpieczeństwa jako ustrukturyzowanego JSON i rozpowszechniania ich tak, aby można je było automatycznie odnajdywać i przetwarzać. Dokument CSAF mówi, których produktów i wersji dotyczy podatność, których nie dotyczy, które są już naprawione i co powinni zrobić użytkownicy.
Aktualna wersja to CSAF 2.0, zatwierdzona jako OASIS Standard 18 listopada 2022. CSAF 2.1 jest w drodze: jego trzeci Committee Specification Draft przeszedł publiczny przegląd we wrześniu 2026, a według stanu na październik 2026 nie jest jeszcze zatwierdzonym standardem.
Biuletyny piszą dostawcy, zwykle ich zespół reagowania na incydenty bezpieczeństwa produktu (PSIRT), oraz koordynatorzy, tacy jak krajowe zespoły CERT. Czym różnią się te dwa rodzaje zespołów, wyjaśnia strona PSIRT a CSIRT.
Od CVRF do CSAF
CSAF wyrósł z Common Vulnerability Reporting Framework (CVRF), formatu XML. ICASI opublikował CVRF 1.1 w maju 2012, a OASIS opublikował CVRF 1.2 we wrześniu 2017. CSAF 2.0 zastąpił go formatem JSON, schematem JSON do walidacji, profilami dla różnych rodzajów dokumentów oraz zasadami rozpowszechniania i odnajdywania biuletynów. Specyfikacja nadal określa, jak konwertować dokumenty CVRF do CSAF.
Struktura dokumentu CSAF
Dokument CSAF ma trzy części najwyższego poziomu:
-
document: metadane. Pięć właściwości jest obowiązkowych: kategoria (profil, któremu podlega dokument), wersja CSAF, wydawca, tytuł i dane śledzenia. Dane śledzenia obejmują identyfikator biuletynu, jego status, wersję, daty pierwszego i bieżącego wydania oraz historię zmian. -
product_tree: wszystkie produkty wymienione w dokumencie, zwykle jako gałęzie od dostawcy przez nazwę produktu do wersji, z identyfikatorami produktów, do których odwołuje się reszta dokumentu. Produkty można też identyfikować za pomocą package URL (purl), CPE lub skrótów. -
vulnerabilities: jeden wpis na podatność, z jej identyfikatorem CVE lub innymi, notatkami, ocenami i statusem produktu, który rozdziela identyfikatory produktów na listy:known_affected,known_not_affected,fixed,first_affected,last_affected,first_fixed,recommendediunder_investigation. Sposoby usunięcia problemu mają kategorievendor_fix,workaround,mitigation,no_fix_plannedlubnone_available.
Pięć profili CSAF
W CSAF jako całości obowiązkowych pól jest niewiele. Profile określają, które z nich musi mieć dany rodzaj dokumentu,
a wartość /document/category mówi, któremu profilowi podlega dokument:
| Profil | Wartość kategorii | Zastosowanie |
|---|---|---|
| CSAF Base | csaf_base |
Minimum, które spełnia każdy dokument CSAF; kategoria zbiorcza dla dokumentów niepasujących do innego profilu |
| Reagowanie na incydent bezpieczeństwa | csaf_security_incident_response |
Reakcja na naruszenie lub incydent bezpieczeństwa, także w innej organizacji |
| Biuletyn informacyjny | csaf_informational_advisory |
Problemy niebędące podatnościami, takie jak niebezpieczna błędna konfiguracja |
| Biuletyn bezpieczeństwa | csaf_security_advisory |
Podatności i sposoby ich usunięcia; klasyczny biuletyn dostawcy |
| VEX | csaf_vex |
Informacja, czy i dlaczego dana podatność dotyczy danego produktu lub go nie dotyczy |
Biuletyn bezpieczeństwa musi mieć drzewo produktów, podatności, notatki do każdej podatności i status produktu. Profil
VEX idzie dalej: każdy produkt wymieniony jako known_not_affected wymaga oświadczenia o wpływie, w postaci
flagi do odczytu maszynowego lub tekstu, a każdy produkt known_affected wymaga opisu sposobu usunięcia
problemu, który mówi użytkownikom, co mają zrobić.
CSAF VEX
VEX (Vulnerability Exploitability eXchange) mówi użytkownikom, które podatności w komponentach
produktu faktycznie dotyczą produktu. CSAF VEX to jeden z trzech popularnych formatów VEX, obok OpenVEX i CycloneDX
VEX. Jego flagi używają tych samych pięciu uzasadnień braku podatności co wymagania VEX organizacji CISA, takich jak
component_not_present i vulnerable_code_not_in_execute_path. Trivy i Grype odczytują CSAF VEX
i pomijają znaleziska, które oznacza on jako niepodatne. Red Hat, na przykład, publikuje swoje dokumenty CSAF VEX
w osobnym katalogu obok biuletynów CSAF.
Jak rozpowszechniane są biuletyny CSAF
Standardowy format pomaga tylko wtedy, gdy narzędzia mogą znaleźć dokumenty. Sposób opisuje sekcja 7 CSAF 2.0:
-
provider-metadata.jsonopisuje wydawcę i miejsce, w którym są jego biuletyny. Narzędzia znajdują go co najmniej jedną z trzech dróg: przez poleCSAFw pliku security.txt domeny, przez adres well-known/.well-known/csaf/provider-metadata.jsonlub przez nazwę DNScsaf.data.security.przed domeną. -
Biuletyny są wymienione w folderach rocznych z plikami
index.txtichanges.csvalbo w kanałach ROLIE, serwowanych przez TLS bez przekierowań. - Każdy plik nosi nazwę od swojego identyfikatora śledzenia. Biuletyny TLP:WHITE muszą być swobodnie dostępne, a TLP:AMBER lub TLP:RED muszą znajdować się za kontrolą dostępu.
- Integralność: zaufani dostawcy dodają do każdego dokumentu skrót i podpis OpenPGP oraz publikują swój klucz publiczny.
Standard określa pięć ról, które może deklarować strona rozpowszechniająca biuletyny:
| Rola | Co robi |
|---|---|
| Wydawca CSAF | Publikuje poprawne dokumenty CSAF, wyłącznie we własnym imieniu, przez TLS |
| Dostawca CSAF | Wydawca, który oferuje też provider-metadata.json, drogę odnalezienia oraz katalog lub kanał ROLIE |
| Zaufany dostawca CSAF | Dostawca, który publikuje też skróty, podpisy OpenPGP i swój klucz publiczny |
| Lister CSAF | Prowadzi listę miejsc, w których można znaleźć dokumenty CSAF innych stron, bez ich kopiowania |
| Agregator CSAF | Utrzymuje w jednym miejscu kopie lustrzane dokumentów co najmniej dwóch niezależnych wystawców, ze skrótami i podpisami |
Odbiorcy jednorazowo konfigurują program pobierający, a potem ściągają nowe biuletyny od wszystkich dostawców, od których zależą ich produkty, zamiast śledzić dziesiątki stron dostawców.
Kto publikuje CSAF
CSAF jest najpopularniejszy wśród dostawców przemysłowych, korporacyjnych i infrastrukturalnych oraz krajowych zespołów CERT:
- Cisco udostępnia
provider-metadata.jsonpod swoim adresem well-known CSAF. - Siemens ProductCERT publikuje swoje biuletyny jako kanał CSAF ROLIE.
- Red Hat publikuje biuletyny CSAF, a osobno dokumenty CSAF VEX.
- CERT-Bund z BSI, krajowy CERT Niemiec, publikuje kanały CSAF ze swoimi biuletynami.
- CISA ogłosiła we wrześniu 2023, że jej biuletyny ICS są opatrzone dokumentami CSAF, począwszy od 2017 roku, i wezwała dostawców do przyjęcia standardu.
Dostawcy przemysłowi pracujący zgodnie z IEC 62443-4-1 potrzebują procesu informowania użytkowników o problemach bezpieczeństwa w swoich produktach, a biuletyny do odczytu maszynowego to częsty sposób spełnienia oczekiwań klientów.
Narzędzia CSAF
- Secvisogram to webowy edytor dokumentów CSAF od BSI, z edytorem formularzowym, edytorem JSON, podglądem HTML i walidacją.
-
Narzędzia
csafod BSI i Intevation (gocsaf/csaf, często nazywane csaf_distribution) implementują zaufanego dostawcę, program sprawdzający, agregator i program pobierający, a wersja dla CSAF 2.1 jest w przygotowaniu. - Skanery takie jak Trivy i Grype korzystają z dokumentów CSAF VEX.
Jak napisać dobry biuletyn bezpieczeństwa
Z CSAF czy bez, użyteczny biuletyn odpowiada na te same pytania. Oto szablon, do którego dochodzi większość zespołów PSIRT, wraz z polem CSAF zawierającym każdą odpowiedź:
| Element biuletynu | Co napisać | W CSAF |
|---|---|---|
| Identyfikator i tytuł | Stały identyfikator biuletynu i tytuł wskazujący produkt oraz rodzaj problemu | tracking/id, title |
| Daty i rewizje | Data pierwszej publikacji, data ostatniej aktualizacji i co zmieniło się w każdej rewizji | Daty w tracking oraz revision_history |
| Produkty, których dotyczy problem | Dokładne produkty i zakresy wersji, a nie „starsze wersje” | product_tree, known_affected |
| Niepodatne i naprawione | Które produkty i wersje nie są podatne i które wersje zawierają poprawkę | known_not_affected, fixed, first_fixed |
| Podatność | Identyfikatory CVE, prosty opis, wpływ i sposób wykorzystania, bez przepisu dla napastników | cve, ids, notes |
| Dotkliwość | Ocena CVSS z wektorem, aby czytelnik mógł ją sprawdzić | scores |
| Usunięcie problemu | Naprawiona wersja, obejście lub środek łagodzący albo jasna informacja, że poprawka nie jest planowana | remediations |
| Podziękowania i odnośniki | Kto zgłosił problem, linki do powiązanych biuletynów i poprawek | acknowledgments, references |
| Kontakt | Gdzie zgłaszać problemy i zadawać pytania | publisher/contact_details |
Kilka nawyków decyduje o tym, czy ludzie zareagują na biuletyn, czy go zignorują:
- Dokładnie podawać wersje. To na podstawie zakresu wersji klienci podejmują działania. Dla każdej linii produktów należy wskazać pierwszą podatną i pierwszą naprawioną wersję.
- Mówić, czego problem nie dotyczy. Klienci korzystający z produktów, które Państwo wykluczyli, przestają pytać, a ich skanery przestają je oznaczać, jeśli publikują Państwo również VEX.
- Aktualizować, a nie zastępować. Należy prowadzić jeden biuletyn na problem i dodawać rewizje w miarę dostarczania poprawek.
- Publikować w uzgodnionym terminie. Biuletyny to punkt końcowy skoordynowanego ujawniania podatności, wydawane, gdy poprawka jest dostępna, a zgłaszający został poinformowany.
Kroki poprzedzające biuletyn, od przyjęcia zgłoszenia i triażu po poprawkę, opisuje cykl życia zarządzania podatnościami, a osoby wykonujące tę pracę strona rola PSIRT.
Najtrudniej ustalić, czego to dotyczy
Każdy biuletyn, w CSAF czy w dowolnym innym formacie, zależy od jednej odpowiedzi: które produkty i wersje zawierają podatny komponent. W przypadku oprogramowania budowanego z pakietów open source oznacza to wiedzę o tym, które dokładnie wersje zależności trafiły do każdego wydania, łącznie z przechodnimi.
CRACI uruchamia buildy GitHub Actions na własnych runnerach i rejestruje pakiety faktycznie pobrane przez każde zadanie, łącznie z zależnościami przechodnimi, pakietami przywróconymi z cache i zależnościami, których nie wymienia żaden lockfile. Gdy zostanie opublikowana nowa podatność, monitorowane SBOM-y są ponownie oceniane, a historia buildów pokazuje, które wcześniejsze buildy i wydania zawierały podatną zależność, bezpośrednio lub przechodnio, dzięki czemu znają Państwo okres narażenia. Widok inwentarza pokazuje, które wersje są wdrożone w których produktach, a triaż kieruje każde znalezisko do zespołu odpowiedzialnego za poprawkę. SBOM-y można eksportować w formacie CycloneDX lub SPDX, a CRACI obsługuje VEX. Zob. śledzenie podatności.
CSAF: najczęściej zadawane pytania
Co oznacza skrót CSAF?
W bezpieczeństwie CSAF oznacza Common Security Advisory Framework, standard OASIS służący do zapisywania biuletynów bezpieczeństwa jako dokumentów JSON do odczytu maszynowego i rozpowszechniania ich tak, aby narzędzia mogły je automatycznie odnajdywać i przetwarzać.
Jaka jest aktualna wersja CSAF?
CSAF 2.0, zatwierdzony jako OASIS Standard 18 listopada 2022. CSAF 2.1 jest w przygotowaniu: publiczny przegląd jego trzeciego Committee Specification Draft zakończył się 29 września 2026, a według stanu na październik 2026 nie jest on jeszcze zatwierdzonym OASIS Standard.
Jaka jest różnica między CSAF a CVE?
Rekord CVE identyfikuje jedną podatność i opisuje ją w ogólny sposób. Biuletyn CSAF, publikowany przez dostawcę lub koordynatora, mówi, jak ta podatność, a często także kilka innych, wpływa na konkretne produkty i wersje oraz co należy z tym zrobić. Biuletyny CSAF odwołują się do identyfikatorów CVE.
Czym jest CSAF VEX?
CSAF VEX to profil csaf_vex standardu CSAF. Zawiera oświadczenia VEX: dla każdego produktu informację, czy jest podatny, niepodatny, naprawiony, czy w trakcie analizy, wraz z oświadczeniem o wpływie dla produktów niepodatnych i sposobem usunięcia problemu dla produktów podatnych. Trivy i Grype potrafią go odczytać, aby wyciszać znaleziska.
Czym jest dostawca CSAF?
Dostawca CSAF to organizacja, która publikuje własne dokumenty CSAF w sposób umożliwiający narzędziom ich odnalezienie: plik provider-metadata.json, możliwy do znalezienia przez security.txt, adres well-known lub nazwę DNS, oraz katalog albo kanał ROLIE z biuletynami. Zaufany dostawca dodaje skróty, podpisy OpenPGP i opublikowany klucz publiczny.
Co zastąpił CSAF?
Common Vulnerability Reporting Framework (CVRF), format XML. CVRF 1.1 opublikował ICASI w 2012 roku, a CVRF 1.2 OASIS w 2017 roku. CSAF 2.0 przeszedł na JSON i dodał profile, drzewa produktów oraz zasady dystrybucji.
Jak napisać biuletyn CSAF?
Większość zespołów zaczyna od edytora, takiego jak Secvisogram, webowy edytor CSAF od BSI, lub generuje JSON z własnego systemu śledzenia podatności. Należy wybrać profil, zwykle csaf_security_advisory, uzupełnić wydawcę, dane śledzenia, drzewo produktów i podatności, zwalidować dokument względem schematu i opublikować go przez dostawcę.
Których Państwa wydań dotyczy biuletyn?
Biuletyn zaczyna się od wiedzy o tym, które buildy zawierają podatny komponent. Proszę umówić demo i zobaczyć to w historii Państwa buildów GitHub Actions.
Umów demo