Zainspirowany wspisem dot. CERT’u na Sekuraku dodałem dziś komentarz na temat baz CVE, które są dostępne w sieci. Skoro komentarz i próba znalezienia paru odpowiedzi, to może pogłębiony research, dokładniejssze zgłębienie tematu i jednak artykuł? No to jedziemy.
Cały czas poszukuję jednego fajnego rozwiązania, które zoptymalizowałoby badaczom, programistom, administratorom poszukiwania i dokumentowania luk w oprogramowaniu. Jeśli jeszcze jakieś znacie, dopiszcie w komentarzu 😉
Temat CVE już wielu bezpieczników opisywało, toteż nie będziemy się nad tym skrupulatnie rozwodzić – poniżej źródła, ciekawe linki 😉 Natomiast dla mniej technicznych, parę słów wstępniaka lub krótkie przypomnnienie o co chodzi.
W skrócie, co to jest CVE?
Common Vulnerabilities and Exposures to lista unikalnych podatności oraz luk, które są kategoryzowane ustalonym oraz globalnym schematem. Każda wykryta podatność posiada unikalną numerację – tzw. CVE ID.
Co zawierają bazy CVE?
Po ludzku takie bazy to swoiste katalogi błędów w oprogramowaniu – publicznie, ogólnie dostępnym (bazy CVE nie zawierają systemów dedykowanych napisanych dla kogoś). Bazy zawierają szczegółowe (mniej lub bardziej) wpisy o lukach w oprogramowaniu, na które składa się
- Identyfikator CVE np. „CVE-1999-0067”, „CVE-2014-12345”, „CVE-2014-7654321”
- Krótki opis podatności lub zagrożenia (język programowania, system, oprogramowania, typ CVE, poziom narażenia – ile organizacji zostało dotkniętych, zweryfikowane sugerowane poprawki, dodatkowe informacje ułatwiające podejmowanie świadomych decyzji dotyczących środków zaradczych)
- Odniesienia, takie jak identyfikatory w innych systemach standaryzacyjnych, i istotne źródła do zewnętrznych stron
- niektóre z baz wskazują też klasyfikację CVSS
Jaka jest klasyfikacja CVSS?
Common Vulnerability Scoring System (CVSS) jest otwartym systemem oceny podatności oprogramowania na zagrożenia. CVSS składa się z trzech grup metryk: Bazowej, Czasowej i Środowiskowej. Metryki bazowe dają wynik w zakresie od 0 do 10, który może być modyfikowany przez metryki czasowe i środowiskowe. Do obliczania ważności problemów bezpieczeństwa oprogramowania służy udostępniony kalkulator.
Top bazy CVE
Na tę chwilę udało mi się zebrać całkiem sporo ciekawych baz, wyszukiwarek CVE, na które warto zwrócić uwagę i oszczędzić sobie czas w poszukiwaniu informacji o nowo odkrywanych zagrożeniach i podatnościach w oprogramowaniu. Dzięki szczegółowemu opisaniu każdego błędu pozwala on na pogłębianie wiedzy o wykrytych lukach.
Najbardziej znane wyszukiwarki CVE:
- NIST NVD – amerykańska krajowa baza danych o lukach w zabezpieczeniach prowadzona przez Amerykański instytut NIST (National Institute of Standards and Technology), zajmujący się między innymi badaniem podatności systemów teleinformatycznych
- MITRE CVE – projekt zapoczątkowany w 1999 roki, ma obecnie 208 530 rekordów dot. luk w zabezpieczeniach cybernetycznych. Do bazy nowe znaleziska zgłasza 308 oficjalnych partnerów, którym zgłaszają indywidualni badacze oraz firmy.
Największe wyszukiwarki CVE:
- Vulners.com – baza posiada 254 114 rekordów
- VulDB – baza posiada 236 038 rekordów
- security-database.com– ciekawa baza, choć UI nieco przestarzałe, niemniej pokaźna baza, bo 221 554 rekordów CVE
- hackerone.com– na mojej liście nie mogłoby zabraknąć też rozwiązanie od hackerone, 221 518 rekordów 😉
- opencve.io – baza CVE, posiadająca na tę chwilę ok 221 475 rekordów
- cve.circl.lu – z Luxemburga, 211 143 rekordów
- VulnIQ – kolejna ciekawa baza CVE, posiadająca ok 178 584 rekordów
- CVEDetails – ma obecnie ok 154 792 rekordów, (IMHO ładny UI, sporo updatów, mam wrażenie, że najbardziej zadbana, np. dziś na tę chwilę dodane już 24 rekordy lub poczynione updaty, podczas gdy u innych parę dni opóźnienia)
- cybersecurity-help.cz – czeska baza CVE, posiada ok 70 200 rekordów
- osv.dev – Luki w zabezpieczeniach oprogramowania Open Source, posiada 50 027 rekordów w bazie
- Exploit Database jest utrzymywana przez OffSec, firmę szkoleniową z zakresu bezpieczeństwa informacji, która zapewnia różne certyfikaty bezpieczeństwa informacji , a także wysokiej klasy usługi testów penetracyjnych . Exploit Database to projekt non-profit, który jest świadczony jako usługa publiczna przez OffSec. Zawiera 48 420 rekordów. Można znaleźć podatności zgłoszone przez polskich badaczy, np. Kacpra
- wordfence.com (11 308 rekordów, głownie podatności w systemie CMS WordPress i jego tysiącach wtyczek i szablonach)
- GitHub Advisory Database – baza danych luk w zabezpieczeniach, zawierająca CVE i poradniki bezpieczeństwa pochodzące z GitHub, wskazuje metryki CVSS oraz wpływ na poufność, integralność, dostępność
- Global Security Database (GSD) – Global Security Database, to ciekawa idea któa buduje społeczność przy użyciu modelu open source, tak by każdy z programistów, firm i ekosystemów współpracował, aby znaleźć skuteczne rozwiązania w eliminowaniu luk w oprogramowaniu.
- cloudvulndb.org – baza danych luk w zabezpieczeniach i problemów związanych z bezpieczeństwem w usługach chmurowych, pozwalająca na zarządzania lukami w chmurze
- security.snyk.io – posiadająca na tę chwilę 3180 rekordów
- talosintelligence.com/vulnerability_reports – posiadająca na tę chwilę 1653 rekordów
- Mend.io – największa baza danych luk w zabezpieczeniach typu open source
- Rapid7 – DB – Vulnerability & Exploit Database od Rapid7
- cisa.gov (ostatnio 1 wpis z 31 lipca, po 1-2 dziennie)
- SynapsInt – Synapsint to usługa w 100% bezpłatna, dane prezentowane przy każdym wyszukiwaniu są wynikiem konsultacji z różnymi służbami wywiadowczymi, wyszukiwarkami, zbiorami danych itp. Wszystkie źródła Synapsint i relacje są pokazane na wykresie
- Aqua Vulnerability Database – Luki i słabości w aplikacjach open source i infrastrukturze natywnej w chmurze
- Vulmon – Vulmon ma być zarówno prostym, jak i wszechstronnym narzędziem dla badaczy bezpieczeństwa cybernetycznego. Badacze mogą przeszukiwać wszystko za pomocą łatwego w użyciu interfejsu i uzyskiwać szczegółowe informacje o lukach w zabezpieczeniach i powiązanych exploitach.
- ScanFactory – monitorowanie bezpieczeństwa w czasie rzeczywistym
- Trend Micro Zero Day Initiative – publicznie ujawnione luki w zabezpieczeniach wykryte przez badaczy z inicjatywy Zero Day Initiative
- Google Project Zero – Luki w zabezpieczeniach, w tym Zero Days
- Trickest CVE Repository – kolejna ciekawa baza na GitHubie od dostawcy rozwiązań Sec: trickest.com
- cnvd.org.cn – chińska krajowa baza danych o lukach w zabezpieczeniach
- tenable.com – kolejna wyszukiwania CVE
- InTheWild.io – kolejna wyszukiwania CVE
- Vulnerability Lab – wyszukiwanie podatności i bug bounty
- Red Hat Security Advisories – informacje o lukach w zabezpieczeniach, które mają wpływ na produkty i usługi firmy Red Hat
- Cisco Security Advisories – porady bezpieczeństwa i informacje o lukach w zabezpieczeniach produktów Cisco, w tym sprzętu sieciowego i oprogramowania
- Microsoft Security Response Center – raporty o lukach w zabezpieczeniach mających wpływ na produkty i usługi firmy Microsoft
Formularze do zgłaszania podatności
- CERT.pl – działa od 1 sierpnia, zgłoszenia podatności po polsku odbywają się wyłącznie poprzez dedykowany formularz.
- Bugcrowd – publiczna lista programów BugBounty (wymaga rejestracji)
- Openbugbounty – otwarty program BugBounty zrzeszający ponad 37 tysięcy badaczy i 1,211,590 podatności (wymaga rejestracji)
- CVE.org – formularz zgłaszania podatności
Problemy, rozwiązania?
Chaos? Różna wielkość baz? Można mieć takie odczucie.
No cóż, nie ma rozwiązań idealnych, choć fajnie by było takie mieć pod ręką i sprawnie działać. Jak w każdym systemie pojawiają się kwestie takie jak unifikacja, rzetelność, aktualność informacji, wymiana informacji między bazami, czytelne oznaczanie i ocenianie luk…
Pojawia się kwestia dodatkowych weryfikacji przez innych badaczy danego znaleziska i jeśli w jednej bazie jest już dana luka opisana, np. CVE-2023-3162
https://www.wordfence.com/threat-intel/vulnerabilities/wordpress-plugins/payment-gateway-stripe-and-woocommerce-integration/stripe-payment-plugin-for-woocommerce-377-authentication-bypass (i oceniona, b. wysoko: CVSS 9.8)
Tak w bazie Mitre ma status “reserved” (i już nadany numer)
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-3162, natomiast w innych bazach może być kompletnie niedostępna i niewyszukiwalna:
https://www.cvedetails.com/cve/CVE-2023-3162/?q=CVE-2023-3162 (tu jej nie ma)
https://cve.circl.lu/cve/CVE-2023-3162 (tu jej nie ma)
https://www.opencve.io/cve/CVE-2023-3162 (tu jej nie ma)
Pozostaje użyć kilku wyszukiwarek, choć liczę że w dobie AI ktoś za jakiś czas wpadnie na fajne OSINT-owe rozwiązanie integrujące różne bazy.
Ciekawe źródła i dodatkowe materiały:
- Arun Kl (Indie), redaktor thesecmaster.com: https://thesecmaster.com/6-powerful-vulnerability-databases-to-search-publicly-disclosed-security-vulnerabilities/
- Wojciech Ciemski: https://securitybeztabu.pl/vulnerability-management
- Michał Mamica: https://flesz.news/cve-z-czym-zwiazane
- Aleksandra Dobroń: https://whitehats.pwr.edu.pl/research/podatnosci-wstep
- Damian Naprawa: https://wkontenerach.pl/top-3-narzedzia-open-source-do-wykrywania-podatnosci-w-dockerze
- Zespół CSIRT MON: https://csirt-mon.wp.mil.pl/pl/articles/6-aktualnosci/2-proces-zycia-podatnosci
- Redakcja Testerzy.pl: https://testerzy.pl/baza-wiedzy/artykuly/poziomy-waznosci-problemow-bezpieczenstwa
- Mateusz Chrobok: CVE, czyli jak rozmawiać o podatnościach?
https://www.youtube.com/watch?v=5V-zZzOph6Q - Redakcja Kapitan Hack: https://kapitanhack.pl/2022/05/13/nieskategoryzowane/odkryles-luke-podatnosc-na-co-nalezy-uwazac-i-co-dalej-z-tym-zrobic/
- Patryk Solecki: https://kapitanhack.pl/2022/05/13/nieskategoryzowane/odkryles-luke-podatnosc-na-co-nalezy-uwazac-i-co-dalej-z-tym-zrobic/