github-advisory-database
github-advisory-database (w skrócie GAD) jest publicznie dostępną, społecznościowo zarządzaną bazą danych zawierającą porady bezpieczeństwa (ang. security advisories) dotyczące oprogramowania open‑source. Projekt jest utrzymywany przez GitHub i służy jako centralny repozytorium informacji o podatnościach, które mogą być wykorzystywane przez narzędzia automatyzujące analizę zależności, takie jak Dependabot czy GitHub Advanced Security.
Historia
Baza została uruchomiona w 2020 roku w odpowiedzi na rosnącą potrzebę ujednoliconego i otwartego źródła danych o podatnościach, które mogłyby być łatwo integrowane z platformą GitHub. Wcześniej informacje o podatnościach były rozproszone pomiędzy różnymi rejestrami, takimi jak NVD (National Vulnerability Database) czy CVE. Dzięki współpracy z Open Source Security Foundation (OSSF) i innymi organizacjami, GAD stała się częścią szerszego ekosystemu bezpieczeństwa oprogramowania.
Struktura i format danych
Repozytorium github/advisory-database jest hostowane w serwisie GitHub jako publiczny git. Każda porada bezpieczeństwa jest przechowywana jako odrębny plik w formacie JSON lub YAML i spełnia schemat JSON, który definiuje następujące pola:
id– unikalny identyfikator porady, np.GHSA-xxxx-xxxx-xxxx.summary– krótki opis luki.description– szczegółowy opis, w tym wektory ataku i potencjalny wpływ.severity– poziom zagrożenia określony przy użyciu klasyfikacji CVSS.references– lista odnośników do dodatkowych źródeł (np. zgłoszenia issues, artykuły).affected– sekcja opisująca dotknięte pakiety, wersje oraz zakres poprawek.
Integracja z ekosystemem GitHub
GAD jest ściśle zintegrowana z kilkoma kluczowymi usługami platformy:
- Dependabot – automatycznie generuje pull requesty aktualizujące zależności po wykryciu podatności opisanej w bazie.
- GitHub Advanced Security – wyświetla porady bezpośrednio w interfejsie repozytorium oraz w raporcie grafu zależności.
- GitHub Actions – umożliwiają uruchamianie skanów bezpieczeństwa opartych na danych z GAD w ramach CI/CD.
- GitHub GraphQL API – pozwala na programowy dostęp do porad bezpieczeństwa oraz ich filtrowanie wg. pakietu, wersji, czy poziomu zagrożenia.
Jak zgłaszać i aktualizować porady
Każda nowa porada musi przejść proces weryfikacji:
- Autor (np. deweloper, zespół bezpieczeństwa) zgłasza pull request z plikiem porady w wymaganym formacie.
- Automatyczne testy CI sprawdzają zgodność schematu, poprawność wersji semver oraz dostępność odniesień.
- Recenzenci z GitHub lub członkowie OpenSSF akceptują lub odrzucają zmianę.
- Po scaleniu, porada staje się natychmiast dostępna w całym ekosystemie GitHub.
Licencja i dostępność
Repozytorium jest publikowane na licencji MIT, co umożliwia swobodne pobieranie, modyfikowanie i rozpowszechnianie danych. Publiczny dostęp zapewnia przejrzystość i zachęca do udziału społeczności w utrzymaniu wysokiej jakości informacji.
Znaczenie w dziedzinie bezpieczeństwa oprogramowania
GAD przyczyniła się do zmniejszenia czasu reakcji na nowe podatności w projektach open‑source. Dzięki automatycznej integracji z narzędziami takimi jak Dependabot, wiele organizacji może natychmiast podjąć działania naprawcze, co redukuje ryzyko eksploatacji. Dodatkowo, otwartość bazy umożliwia badaczom i firmom bezpieczeństwa tworzenie własnych analiz i raportów, wspierając inicjatywy takie jak OWASP czy NIST.