Header Ads

Seo Services

Bug-uri care ne sunt ascunse. Alegerea celui mai bun site pentru găsirea vulnerabilităților

 


Conținutul articolului

1. Motor de căutare nativ NVD
2. Detalii CVE
Există doar câteva site-uri care pot fi utilizate pentru a căuta vulnerabilități. În acest articol, voi verifica cât de bine își fac treaba și vor găsi vulnerabilități care au primit un CVE. Pe baza rezultatelor, vom decide care sau ce motoare de căutare sunt mai bine să utilizeze mai întâi.
Mă ocup în principal de sisteme de operare integrate auto-construite bazate pe Linux. Căutarea vulnerabilităților în componentele acestor sisteme de operare este o sarcină urgentă pentru mine. În fretul său de andocare de pe PHDays 10, am spus că este timpul să vă creați propriul instrument pentru a găsi vulnerabilități, deoarece fiecare dintre soluțiile gratuite îmi oferă orice, dar nu sunt mulțumit. Dar am această idee de mult timp și, când îmi pregăteam raportul, am decis să verific cum merg lucrurile. Așa s-a născut acest articol.

De obicei rezolv problema identificării pachetelor instalate pe sistem manual sau cu scripturi simple. Așa că voi omite această latură a întrebării. Să presupunem că avem deja o listă cu toate software-urile - numele produselor și versiunile lor.

Care sunt opțiunile de căutare pentru vulnerabilități pentru aceste componente? Vom lua în considerare doar soluții gratuite - bugetul, ca întotdeauna, este limitat:
motor de căutare regulat NVD ;
Detalii CVE  - aproape mai populare decât CVE în sine;
Vulneratorii  sunt un motor specializat de căutare a vulnerabilităților, ai cărui dezvoltatori pretind că adaugă continuu surse noi și chiar folosesc AI pentru a determina severitatea unei vulnerabilități.

MOTOR DE CĂUTARE NATIV NVD
Căutarea pe site-ul web NVD pare o opțiune bună: cine știe mai bine cum să caute în baza de date NVD dacă nu în compilatoare? Cu toate acestea, merită să căutați vulnerabilități în nucleul Linux și se dovedește că nu totul este atât de roz.

Să presupunem că folosim vechiul nucleu 4.14, nu uitați și corelați-l la cea mai recentă versiune 4.14.230 de astăzi (11 aprilie). Folosim opțiunea de căutare avansată (Tip de căutare: Avansat). Nu veți putea verifica această versiune într-un motor de căutare. Nici versiunea 4.14.200 nu este familiară pentru NVD, iar cea mai recentă disponibilă este 4.14.194 (21 august 2020). NVD raportează sincer acest lucru într-o notă.


Faptul este că interfața web a motorului de căutare permite utilizarea numai a versiunilor produselor din dicționarul CPE (Common Platform Enumeration). Dacă ignorăm acest avertisment și introducem versiunea necesară 4.14.230, atunci apăsând butonul de căutare, vom obține mai mult de patru mii de vulnerabilități ale tuturor versiunilor kernel-ului Linux.

Este în regulă, hai versiunea 4.14.194.

Motorul de căutare a returnat 460 de rezultate, ceea ce este destul de bun pentru un produs atât de mare.

Dar să încercăm să ocolim căutarea numai pentru CPE-uri cunoscute, deoarece NVD oferă și un API REST (consultați documentația în PDF ).

Formăm următoarea interogare de căutare:

https://services.nvd.nist.gov/rest/json/cves/1.0?cpeMatchString=cpe:2.3:o:linux:linux_kernel:4.14.194.&startIndex=0

Rezultatele sunt afișate ca un fișier JSON, implicit 20 de bucăți pe pagină, dacă nu doriți să combinați toate acestea, puteți adăuga următoarea linie la interogarea de căutare:

&resultsPerPage=1400
Dar aici trebuie să vă bazați pe noroc, serverul NVD pentru protecția DDoS uneori nu răspunde la astfel de solicitări lacome. În cea mai mare parte, am avut noroc și am reușit să obțin până la 2000 de rezultate pe pagină.

Drept urmare, obținem un rezultat destul de ciudat - 1315 vulnerabilități. Încă aproape o mie!


Să încercăm să ne dăm seama. Salvăm toate paginile cu rezultatul căutării. Apoi, chiar în Notepad ++, căutăm toți identificatorii CVE în HTML și JSON, le sortăm și le comparăm.

 

Chiar dacă scanați selectiv vulnerabilitățile care nu se regăsesc în rezultatele căutării pe web, puteți vedea imediat caracteristicile lor caracteristice.

Versiunea web nu afișează vulnerabilități în cazul în care produsul căutat este marcat ca Running on / with, adică funcționează pur și simplu împreună cu cel vulnerabil. Versiunea web ne oferă doar vulnerabilități kernel Linux, iar API-ul REST ne oferă și vulnerabilități în toate software-urile care rulează pe Linux. Aici, poate, avantajul căutării pe web este evident. Să ducem rezultatele căutării web ale NVD mai departe ca punct de referință și să vedem ce arată celelalte două site-uri.

DETALII CVE
Acesta este un site popular, statisticile sale pot fi văzute în multe articole și rapoarte. Dar poate fi folosit ca motor de căutare pentru vulnerabilități? Sigur! Și la început am fost încântat de site-ul inteligent, care a lăsat mai puțin de o sută dintr-o mie și jumătate de CVE-uri din nucleul Linux. Abia mai târziu s-a dovedit că aici nu totul este atât de simplu.

Încercăm să căutăm vulnerabilități, să folosim o căutare a versiunilor și să introducem numele nucleului conform CPE ( ) și versiunea acestuia.linux:linux_kernel
Rezultatul este Fără meciuri. După cum am înțeles, nici site-ul nu cunoaște versiunea noastră. Folosind metoda secvențială de retrogradare, am reușit să aflăm că cea mai veche versiune acceptată a ramurii care ne interesează este 4.14.141. Ne uităm la rezultat: puțin peste 50 de vulnerabilități.

Aceasta este mult mai mică decât ieșirea NVD (470 pentru versiunea 4.14.141). Să comparăm listele cu vulnerabilitățile găsite. Voi demonstra diferențele în rezultatele căutării folosind două exemple: CVE-2019-17351 și CVE-2019-17133.


Din anumite motive, vulnerabilitățile aceleiași descrieri sunt tratate diferit. Căutarea web a NVD găsește ambele vulnerabilități, în timp ce CVE Details găsește doar CVE-2019-17351. CVE-2019-17133 nu este listat în rezultatele căutării, iar versiunea 4.14.141 nu este listată în lista versiunilor vulnerabile din descrierea din Detaliile CVE. Mai mult, pe site-ul web NVD, versiunile vulnerabile pentru aceste două CVE sunt afișate la fel de corect.


Motivul acestui comportament Detaliile CVE pot fi găsite pe  Stra-Nice cu o descriere a principiilor de funcționare a site-ului. Se pare că site-ul preia date dintr-un flux RSS despre modificările descrierii XML a vulnerabilităților. NVD a oprit oficial actualizarea descrierilor XML pe 9 octombrie 2019 și a trecut exclusiv la JSON. Dar omiterea vulnerabilităților nu este legată de acest lucru. Să aruncăm o privire mai profundă și să găsim un fișier în arhivele internetului  - aceasta este exact descrierea tuturor CVE-urilor din 2019 în format XML. Apropo, câmpul conține o valoare , adică, de fapt, NIST a continuat să actualizeze XML pentru o perioadă de timp după termenul limită.nvdcve-2.0-2019.xmlpub_date2019-10-15T03:00:00

Deci, semnificația câmpurilor este în vulnerable-software-listmod izbitor pe deplin compatibilă cu ceea ce vedem pe cvedetail.com.
Faptul este că dezvoltatorii NVD obișnuiau să experimenteze și pentru unele dintre intrări au încercat să indice toate versiunile vulnerabile, iar pentru unii au indicat pur și simplu gama de versiuni (ultima versiune vulnerabilă). CVE Details pur și simplu nu știe cum să analizeze aceste game de versiuni.

Pentru CVE-2019-17133, gama de versiuni este într-adevăr specificată inițial. Dacă descărcați un alt fișier - (aceeași descriere, dar folosind formatul câmpului versiunea 1.2, nu 2.0), atunci puteți vedea următoarele.nvdcve-2019.xml
Semnalizatorul prevînseamnă doar că toate versiunile anterioare sunt vulnerabile, dar din anumite motive, în timpul tranziției de la versiunea 1.2 la 2.0, acest semnal a fost pierdut, iar în descrierea versiunii 2.0 nu mai era posibil să se facă distincția în care sunt indicate versiunile individuale. , și unde este gama lor. NIST a actualizat ambele versiuni ale descrierii, dar cine dorește să folosească versiunea 1.2 atunci când există 2.0? Deci, este greu să dai vina pe detaliile CVE aici.

Tranziția NVD la JSON a avut un efect negativ asupra detaliilor CVE, statisticile vulnerabilităților de pe site sunt elocvente.















Un comentariu:

  1. Iată o altă resursă gratuită bună: https://us-cert.cisa.gov/ncas/bulletins , deși problemele sunt publicate cu câteva săptămâni târziu.

    RăspundețiȘtergere

Un produs Blogger.