Definicja CWE
Common Weakness Enumeration (CWE) to ogólnodostępny słownik słabości bezpieczeństwa w oprogramowaniu, tworzony i utrzymywany przez MITRE. Każdy rekord opisuje typowy błąd konstrukcyjny, który może prowadzić do podatności (CVE) lub naruszenia bezpieczeństwa. CWE stanowi fundament dla oceny jakości kodu i dojrzałości procesów SDLC (Software Development Life Cycle).
Cel i zastosowania CWE
- Klasyfikacja słabości – identyfikacja przyczyn typowych błędów w aplikacjach i systemach.
- Benchmarking narzędzi – używany w programach takich jak CWE Top 25 czy OWASP Benchmark.
- Audyt i zgodność – umożliwia mapowanie słabości do wymagań NIST, ISO 27001 i standardów branżowych.
- Rozwój bezpiecznego kodu – dostarcza wiedzy dla programistów i DevSecOps.
Przykładowe klasy CWE
ID | Nazwa słabości | Opis |
---|---|---|
CWE-79 | Cross-site Scripting (XSS) | Niewłaściwa walidacja danych wejściowych w aplikacjach webowych. |
CWE-89 | SQL Injection | Dynamiczne składanie zapytań SQL bez separacji danych i kodu. |
CWE-787 | Out-of-bounds Write | Nadpisanie pamięci poza przydzielonym buforem. |
CWE-22 | Path Traversal | Dostęp do plików spoza zamierzonej ścieżki katalogów. |
Struktura taksonomii
CWE zawiera:
- Słabości pierwotne – błędy konstrukcyjne w kodzie.
- Słabości pośrednie – klasy pojęciowe grupujące pokrewne słabości.
- Mechanizmy powiązań – mapowania do CVE, CAPEC i CWE-1000 (view).
Relacja z CVE i CVSS
- CWE wskazuje dlaczego błąd powstał.
- CVE identyfikuje gdzie występuje konkretna podatność.
- CVSS ocenia jak poważny jest incydent.
Wspólnie tworzą spójny ekosystem zarządzania ryzykiem i podatnościami.
Zastosowania praktyczne
- Pentesty i code review – identyfikacja znanych klas błędów.
- Systemy SAST/DAST – raportowanie wyników z mapowaniem do CWE ID.
- Zarządzanie łańcuchem dostaw – SBOM zawiera komponenty z przypisanymi słabościami CWE.
- Szkolenia i rozwój – standard w programach certyfikacyjnych (np. CSSLP, OSWE).
Wyzwania i ograniczenia
- Duplikacja i nadmiarowość rekordów – niektóre klasy są pokrewne lub pokrywają się funkcjonalnie.
- Złożoność taksonomii – wymaga doświadczenia przy właściwym przypisywaniu błędów.
- Brak automatycznego scoringu – w przeciwieństwie do CVSS, nie zawiera natywnej oceny krytyczności.
- Niskie pokrycie niektórych technologii – nowe języki i paradygmaty (np. serverless, blockchain) mają ograniczoną reprezentację.
Trendy i rozwój CWE
- CWE Top 25 – coroczna lista najgroźniejszych klas błędów publikowana przez MITRE i DHS.
- Integracja z SBOM – standaryzowane opisy błędów w cyklu dostaw oprogramowania.
- Mapowanie do ATT&CK i CAPEC – zwiększenie kontekstowej użyteczności w analizach TTP.
- Standaryzacja w ramach norm ISO/IEC 5055 i NIST SSDF.