DevSecOps: SCA veikimo principai ir palyginimas. Pirma dalis

Trečiųjų šalių programinės įrangos komponentų analizės (angl. Software Composition Analysis – SCA) svarba kūrimo procese auga, kai išleidžiamos kasmetinės ataskaitos apie atvirojo kodo bibliotekų pažeidžiamumą, kurias skelbia Synopsys, Sonatype, Snyk, White Source. Anot pranešimo Atvirojo kodo saugos pažeidžiamumo būsena 2020 m nustatytų atvirojo kodo pažeidžiamumų skaičius 2019 m. išaugo beveik 1.5 karto, palyginti su praėjusiais metais, o atvirojo kodo komponentus naudoja nuo 60% iki 80% projektų. Nepriklausoma nuomone, SCA procesai yra atskira praktika nuo OWASP SAMM ir BSIMM kaip brandos rodiklio, o 2020 m. pirmąjį pusmetį OWASP išleido naują OWASP programinės įrangos komponentų tikrinimo standartą (SCVS), kuriame pateikiama geriausia trečiųjų šalių tikrinimo praktika. tiekimo grandinės komponentai BY.

DevSecOps: SCA veikimo principai ir palyginimas. Pirma dalis

Vienas iliustratyviausių atvejų įvyko su „Equifax“ 2017 m. gegužės mėn. Nežinomi užpuolikai gavo informacijos apie 143 milijonus amerikiečių, įskaitant vardus, adresus, socialinio draudimo numerius ir vairuotojo pažymėjimus. 209 000 atvejų dokumentuose buvo ir informacija apie nukentėjusiųjų banko korteles. Šis nutekėjimas įvyko dėl „Apache Struts 2“ (CVE-2017-5638) kritinio pažeidžiamumo išnaudojimo, o pataisymas buvo išleistas 2017 m. kovo mėn. Bendrovė turėjo du mėnesius įdiegti naujinimą, tačiau niekas dėl to nesuko galvos.

Šiame straipsnyje bus aptariamas SCA atlikimo įrankio pasirinkimo klausimas, atsižvelgiant į analizės rezultatų kokybę. Taip pat bus pateiktas funkcinis instrumentų palyginimas. Įdėjimo į CI / CD procesą ir integravimo galimybes paliksime tolesniems leidiniams. OWASP pristatė platų įrankių asortimentą savo svetainėje, tačiau dabartinės apžvalgos metu paliesime tik populiariausią atvirojo kodo priklausomybės tikrinimo įrankį, kiek mažiau žinomą atvirojo kodo Dependency Track platformą ir Sonatype Nexus IQ Enterprise sprendimą. Taip pat suprasime, kaip šie sprendimai veikia, ir palyginsime gautus klaidingai teigiamus rezultatus.

DevSecOps: SCA veikimo principai ir palyginimas. Pirma dalis

Veikimo principas

Priklausomybės patikrinimas yra programa (CLI, maven, jenkins modulis, ant), kuri analizuoja projekto failus, renka informacijos apie priklausomybes fragmentus (paketo pavadinimas, groupid, specifikacijos pavadinimas, versija ...), sukuria CPE eilutę - (Bendra platformos išvardijimas) ), paketo URL (PURL) ir aptinka CPE/PURL spragas iš duomenų bazių (NVD, Sonatype OSS Index, NPM Audit API…), po to sukuria vienkartinę ataskaitą HTML, JSON, XML formatu...

Apsvarstykite, kaip atrodo CPE:

cpe:2.3:part:vendor:product:version:update:edition:language:sw_edition:target_sw:target_hw:other

  • dalis: Nurodymas, kad komponentas priklauso programai (a), operacinei sistemai (o), aparatūrai (h) (būtinas elementas)
  • Pardavėjas: Prekės gamintojo pavadinimas (būtina prekė)
  • Prekės: Produkto pavadinimas (būtina)
  • Versija: Komponento versija (nenaudojamas elementas)
  • Paskutinis atnaujinimas: Paketo atnaujinimas
  • leidimas: Paveldėta versija (nebenaudojamas elementas)
  • Kalba: Kalba apibrėžta RFC-5646
  • SW leidimas: Programinės įrangos versija
  • Tikslinis SW: Programinės įrangos aplinka, kurioje veikia produktas
  • Tikslinis HW: Aparatinės įrangos aplinka, kurioje veikia produktas
  • Kita: Tiekėjo arba produkto informacija

CPE pavyzdys atrodo taip:

cpe:2.3:a:pivotal_software:spring_framework:3.0.0:*:*:*:*:*:*:*

Eilutė reiškia, kad CPE 2.3 versija aprašo gamintojo programos komponentą pivotal_software su pavadinimu spring_framework 3.0.0 versija. Jei atidarysime pažeidžiamumą CVE-2014-0225 NVD, matome šio CPE paminėjimą. Pirmoji problema, į kurią turėtumėte nedelsdami atkreipti dėmesį, yra ta, kad CVE NVD, pagal CPE, praneša apie sistemos, o ne konkrečiame komponente, problemą. Tai yra, jei kūrėjai yra tvirtai susieti su sistema, o nustatytas pažeidžiamumas netaikomas moduliams, kuriuos naudoja kūrėjai, saugos specialistas turės kažkaip išardyti šį CVE ir galvoti apie atnaujinimą.

URL taip pat naudoja SCA įrankiai. Paketo URL formatas yra toks:

scheme:type/namespace/name@version?qualifiers#subpath

  • Schema: Visada bus „pkg“, nurodantis, kad tai yra paketo URL (būtina)
  • Tipas: Paketo „tipas“ arba paketo „protokolas“, pvz., „maven“, „npm“, „nuget“, „gem“, „pypi“ ir kt. (būtina prekė)
  • Vardų sritis: Kai kurie vardo priešdėliai, pvz., „Maven“ grupės ID, „Docker“ vaizdo savininkas, „GitHub“ naudotojas arba organizacija. Neprivaloma ir priklauso nuo tipo.
  • Vardas: Paketo pavadinimas (būtina)
  • Versija: Paketo versija
  • Qualifiers: Papildomi kvalifikaciniai paketo duomenys, pvz., OS, architektūra, platinimas ir tt Neprivalomas ir konkretaus tipo elementas.
  • pokelis: Papildomas kelias pakete, palyginti su paketo šaknimi

Pavyzdžiui:

pkg:golang/google.golang.org/genproto#googleapis/api/annotations
pkg:maven/org.apache.commons/[email protected]
pkg:pypi/[email protected]

Priklausomybės takelis - vietinė žiniatinklio platforma, kuri priima sugeneruotą paruoštą medžiagų sąmatą (BOM). CycloneDX и SPDX, tai yra, paruoštos galimų priklausomybių specifikacijos. Tai XML failas su priklausomybių aprašymu – pavadinimas, maišos, paketo URL, leidėjas, licencija. Tada Dependency Track analizuoja KS, peržiūri CVE, pasiekiamus nustatytoms priklausomybėms iš pažeidžiamumo duomenų bazės (NVD, Sonatype OSS Index...), tada sukuria grafikus, apskaičiuoja metrikas, reguliariai atnaujindama duomenis apie komponentų pažeidžiamumo būseną. .

Pavyzdys, kaip gali atrodyti KS XML formatu:

<?xml version="1.0" encoding="UTF-8"?>
<bom xmlns="http://cyclonedx.org/schema/bom/1.2" serialNumber="urn:uuid:3e671687-395b-41f5-a30f-a58921a69b79" version="1">
  <components>
    <component type="library">
      <publisher>Apache</publisher>
      <group>org.apache.tomcat</group>
      <name>tomcat-catalina</name>
      <version>9.0.14</version>
      <hashes>
        <hash alg="MD5">3942447fac867ae5cdb3229b658f4d48</hash>
        <hash alg="SHA-1">e6b1000b94e835ffd37f4c6dcbdad43f4b48a02a</hash>
        <hash alg="SHA-256">f498a8ff2dd007e29c2074f5e4b01a9a01775c3ff3aeaf6906ea503bc5791b7b</hash>
        <hash alg="SHA-512">e8f33e424f3f4ed6db76a482fde1a5298970e442c531729119e37991884bdffab4f9426b7ee11fccd074eeda0634d71697d6f88a460dce0ac8d627a29f7d1282</hash>
      </hashes>
      <licenses>
        <license>
          <id>Apache-2.0</id>
        </license>
      </licenses>
      <purl>pkg:maven/org.apache.tomcat/[email protected]</purl>
    </component>
      <!-- More components here -->
  </components>
</bom>

BOM gali būti naudojama ne tik kaip priklausomybės stebėjimo įvesties parametrai, bet ir programinės įrangos komponentų inventorizacijai tiekimo grandinėje, pavyzdžiui, teikiant programinę įrangą klientui. 2014 metais JAV netgi buvo pasiūlytas svarstyti įstatymas „2014 m. kibernetinės tiekimo grandinės valdymo ir skaidrumo įstatymas“, kuriame buvo rašoma, kad perkant programinę įrangą, bet kuri valst. institucija turi paprašyti MK, kad būtų užkirstas kelias pažeidžiamų komponentų naudojimui, tačiau aktas neįsigaliojo.

Grįžtant prie SCA, Dependency Track yra integruota su pranešimų platformomis, tokiomis kaip „Slack“, pažeidžiamumo valdymo sistemomis, tokiomis kaip „Kenna Security“. Taip pat verta paminėti, kad Dependency Track taip pat aptinka pasenusias paketų versijas ir pateikia informaciją apie licencijas (dėl SPDX palaikymo).

Jei kalbėsime konkrečiai apie SCA kokybę, tai yra esminis skirtumas.

Dependency Track nepriima projekto kaip įvesties, o kaip MK. Tai reiškia, kad jei norime išbandyti projektą, pirmiausia turime sugeneruoti bom.xml, pavyzdžiui, su CycloneDX. Taigi, Dependency Track tiesiogiai priklauso nuo CycloneDX. Tuo pačiu metu tai leidžia pritaikyti. Taigi OZON komanda parašė CycloneDX modulis sukurti Golang projektų BOM failus, kad būtų galima toliau nuskaityti naudojant Priklausomybės stebėjimą.

Nexus IQ yra komercinis „Sonatype“ SCA sprendimas, kuris yra „Sonatype“ ekosistemos dalis, kuri taip pat apima „Nexus“ saugyklos tvarkyklę. „Nexus IQ“ gali priimti kaip įvestį ir karo archyvus („Java“ projektams) per žiniatinklio sąsają arba API, ir BOM, jei jūsų organizacija neturėjo laiko pereiti nuo „CycloneDX“ prie naujo sprendimo. Skirtingai nuo atvirojo kodo sprendimų, IQ ne tik nurodo identifikuoto komponento CP / PURL ir atitinkamą pažeidžiamumą duomenų bazėje, bet ir atsižvelgia į savo tyrimus, pavyzdžiui, pažeidžiamos funkcijos ar klasės pavadinimą. IQ mechanizmai bus aptarti vėliau rezultatų analizėje.

Apibendrinkime kai kurias funkcines savybes, taip pat apsvarstykite palaikomas kalbas analizei:

Kalba
Nexus IQ
Priklausomybės patikrinimas
Priklausomybės takelis

Java
+
+
+

C / C ++
+
+
-

C#
+
+
-

.Net
+
+
+

Erlangas
-
-
+

JavaScript (NodeJS)
+
+
+

PHP
+
+
+

Pitonas
+
+
+

rubinas
+
+
+

Perlas
-
-
-

Scala
+
+
+

C tikslas
+
+
-

greitai
+
+
-

R
+
-
-

Go
+
+
+

Funkcionalumas

Funkcionalumas
Nexus IQ
Priklausomybės patikrinimas
Priklausomybės takelis

Galimybė užtikrinti, kad šaltinio kode naudojami komponentai būtų patikrinti dėl licencijos grynumo
+
-
+

Galimybė nuskaityti ir analizuoti pažeidžiamumą bei licencijuoti Docker vaizdų švarumą
+ Integracija su Clair
-
-

Galimybė sukonfigūruoti saugos politiką naudoti atvirojo kodo bibliotekas
+
-
-

Galimybė nuskaityti atvirojo kodo saugyklas, ar nėra pažeidžiamų komponentų
+ RubyGems, Maven, NPM, Nuget, Pypi, Conan, Bower, Conda, Go, p2, R, Yum, Helm, Docker, CocoaPods, Git LFS
-
+ Hex, RubyGems, Maven, NPM, Nuget, Pypi

Specialios tyrimų grupės prieinamumas
+
-
-

Veikimas uždaroje grandinėje
+
+
+

Trečiųjų šalių duomenų bazių naudojimas
+ Uždara duomenų bazė Sonatype
+ Sonatype OSS, NPM viešieji patarėjai
+ Sonatype OSS, NPM Public Advisors, RetireJS, VulnDB, savo pažeidžiamumo duomenų bazės palaikymas

Galimybė filtruoti atvirojo kodo komponentus bandant įkelti į kūrimo ciklą pagal sukonfigūruotą politiką
+
-
-

Rekomendacijos dėl pažeidžiamumų taisymo, nuorodų į taisymą prieinamumas
+
+- (priklauso nuo aprašymo viešose duomenų bazėse)
+- (priklauso nuo aprašymo viešose duomenų bazėse)

Aptiktų pažeidžiamumų klasifikavimas pagal kritiškumą
+
+
+

Vaidmenų prieigos modelis
+
-
+

CLI palaikymas
+
+
+- (tik CycloneDX)

Pažeidžiamumų parinkimas/rūšiavimas pagal apibrėžtus kriterijus
+
-
+

Prietaisų skydelis pagal programos būseną
+
-
+

Ataskaitų generavimas PDF formatu
+
-
-

Ataskaitų generavimas JSONCSV formatu
+
+
-

rusų kalbos palaikymas
-
-
-

Integracijos galimybės

Integracija
Nexus IQ
Priklausomybės patikrinimas
Priklausomybės takelis

Integracija su LDAP/Active Directory
+
-
+

Bambuko nuolatinė integracijos integracija
+
-
-

Integracija su nuolatine integravimo sistema (nuolatinė integracija) TeamCity
+
-
-

Integracija su nuolatine integravimo sistema (nuolatinė integracija) GitLab
+
+- (kaip „GitLab“ papildinys)
+

Integracija su nuolatine integravimo sistema (nuolatinė integracija) Jenkins
+
+
+

IDE priedų prieinamumas
+ „IntelliJ“, „Eclipse“, „Visual Studio“.
-
-

Palaikymas tinkintam įrankio integravimui naudojant žiniatinklio paslaugas (API).
+
-
+

Priklausomybės patikrinimas

Pirmas startas

Vykdykite priklausomybės patikrinimą sąmoningai pažeidžiamoje programoje DVJA.

Tam mes naudojame Priklausomybės patikrinimo „Maven“ papildinys:

mvn org.owasp:dependency-check-maven:check

Dėl to dependency-check-report.html bus rodomas tiksliniame kataloge.

DevSecOps: SCA veikimo principai ir palyginimas. Pirma dalis

Atidarykime failą. Susumavus bendrą pažeidžiamumų skaičių, matome informaciją apie pažeidžiamumus, kurių sunkumo ir patikimumo lygis yra aukštas, nurodant paketą, CPE, CVE skaičių.

Toliau pateikiama išsamesnė informacija, visų pirma, kuo remiantis buvo priimtas sprendimas (įrodymai), tai yra tam tikra MK.

DevSecOps: SCA veikimo principai ir palyginimas. Pirma dalis

Toliau pateikiamas CPE, PURL ir CVE aprašymas. Beje, rekomendacijos dėl taisymo nėra pridedamos, nes jų nėra NVD duomenų bazėje.

DevSecOps: SCA veikimo principai ir palyginimas. Pirma dalis

Norėdami sistemingai peržiūrėti nuskaitymo rezultatus, galite sukonfigūruoti Nginx su minimaliais parametrais arba išsiųsti gautus defektus į defektų valdymo sistemą, kuri palaiko priklausomybės tikrinimo jungtis. Pavyzdžiui, „Defektas Dojo“.

Priklausomybės takelis

Montavimas

Dependency Track, savo ruožtu, yra žiniatinklio platforma su rodymo grafikais, todėl nėra opios problemos, susijusios su defektų saugojimu trečiosios šalies sprendime.
Yra šie palaikomi diegimo scenarijai: Docker, WAR, Vykdomasis WAR.

Pirmas startas

Eikite į veikiančios paslaugos URL. Įeiname per admin / admin, pakeičiame prisijungimo vardą ir slaptažodį, po to patenkame į prietaisų skydelį. Kitas dalykas, kurį padarysime, yra sukurti Java bandomosios programos projektą Pagrindinis puslapis/Projektai → Sukurti projektą . Kaip pavyzdį paimkime DVJA.

DevSecOps: SCA veikimo principai ir palyginimas. Pirma dalis

Kadangi priklausomybės stebėjimas gali priimti tik KS kaip įvestį, ši KS turi būti nuskaityta. Naudokimės CycloneDX Maven įskiepis:

mvn org.cyclonedx:cyclonedx-maven-plugin:makeAggregateBom

Gauname bom.xml ir įkeliame failą į sukurtą projektą DVJA → Priklausomybės → Įkelti MK.

Eikime į Administravimas → Analizatoriai. Suprantame, kad įjungtas tik vidinis analizatorius, kuris apima NVD. Taip pat prijungkime „Sonatype OSS Index“.

DevSecOps: SCA veikimo principai ir palyginimas. Pirma dalis

Taigi, mes gauname tokį mūsų projekto vaizdą:

DevSecOps: SCA veikimo principai ir palyginimas. Pirma dalis

Taip pat sąraše galite rasti vieną pažeidžiamumą, taikomą Sonatype OSS:

DevSecOps: SCA veikimo principai ir palyginimas. Pirma dalis

Didžiausias nusivylimas buvo tai, kad Dependency Track nebepriima Dependency Check xml ataskaitų. Naujausios palaikomos Priklausomybės patikros integravimo versijos buvo 1.0.0–4.0.2, o aš išbandžiau 5.3.2.

Čia видео (ir čia), kai tai dar buvo įmanoma.

Nexus IQ

Pirmas startas

„Nexus IQ“ įdiegta iš programinės įrangos archyvų dokumentacija, tačiau šiam tikslui sukūrėme „Docker“ vaizdą.

Prisijungę prie konsolės, turite sukurti organizaciją ir programą.

DevSecOps: SCA veikimo principai ir palyginimas. Pirma dalis

DevSecOps: SCA veikimo principai ir palyginimas. Pirma dalis

DevSecOps: SCA veikimo principai ir palyginimas. Pirma dalis

Kaip matote, IQ atveju konfigūracija yra šiek tiek sudėtingesnė, nes taip pat turime sukurti politiką, kuri būtų taikoma skirtingiems „etapams“ (kur, kūrimas, etapas, išleidimas). Tai būtina norint užblokuoti pažeidžiamus komponentus, kai jie artėja prie gamybos vamzdyno, arba užblokuoti, kai tik jie patenka į „Nexus Repo“, kai juos atsisiunčia kūrėjai.

Norėdami pajusti skirtumą tarp atvirojo kodo ir įmonės, atlikime tą patį nuskaitymą naudodami „Nexus IQ“ taip pat „Maven“ papildinys, prieš tai sukūręs bandomąją programą NexusIQ sąsajoje dvja-test-and-compare:

mvn com.sonatype.clm:clm-maven-plugin:evaluate -Dclm.applicationId=dvja-test-and-compare -Dclm.serverUrl=<NEXUSIQIP> -Dclm.username=<USERNAME> -Dclm.password=<PASSWORD>

Sekite sugeneruotos ataskaitos URL IQ žiniatinklio sąsajoje:

DevSecOps: SCA veikimo principai ir palyginimas. Pirma dalis

Čia galite pamatyti visus skirtingo sunkumo politikos pažeidimus (nuo informacijos iki kritinio saugumo). Raidė D šalia komponento reiškia, kad komponentas yra tiesioginė priklausomybė, o raidė T šalia komponento reiškia, kad komponentas yra Transitive Dependency, tai yra, jis yra pereinamasis.

Beje, ataskaita 2020 m. atvirojo kodo saugos būklės ataskaita iš Snyk praneša, kad daugiau nei 70 % atvirojo kodo pažeidžiamumų, aptiktų Node.js, Java ir Ruby, yra laikinosios priklausomybės.

Jei atidarysime vieną iš „Nexus IQ“ politikos pažeidimų, pamatysime komponento aprašą, taip pat versijos grafiką, kuriame rodoma dabartinės versijos vieta laiko grafike, taip pat, kada pažeidžiamumas nustoja veikti. būti pažeidžiamas. Žvakių aukštis grafike rodo šio komponento naudojimo populiarumą.

DevSecOps: SCA veikimo principai ir palyginimas. Pirma dalis

Jei einate į pažeidžiamumų skyrių ir atidarote CVE, galite perskaityti šio pažeidžiamumo aprašymą, rekomendacijas dėl ištaisymo, taip pat priežastį, kodėl šis komponentas buvo pažeistas, tai yra, klasės buvimas. DiskFileitem.class.

DevSecOps: SCA veikimo principai ir palyginimas. Pirma dalis

DevSecOps: SCA veikimo principai ir palyginimas. Pirma dalis

Apibendrinkime tik trečiųjų šalių „Java“ komponentus, pašalindami js komponentus. Skliausteliuose nurodome tų pažeidžiamumų, kurie buvo rasti ne NVD, skaičių.

Bendras „Nexus IQ“:

  • Nuskaitytos priklausomybės: 62
  • Pažeidžiamos priklausomybės: 16
  • Rasta pažeidžiamumų: 42 (8 sonatype db)

Viso priklausomybės patikrinimas:

  • Nuskaitytos priklausomybės: 47
  • Pažeidžiamos priklausomybės: 13
  • Rasta pažeidžiamumų: 91 (14 sonatype oss)

Bendra priklausomybės seka:

  • Nuskaitytos priklausomybės: 59
  • Pažeidžiamos priklausomybės: 10
  • Rasta pažeidžiamumų: 51 (1 sonatype oss)

Kitas žingsnis – išanalizuoti rezultatus ir išsiaiškinti, kuris iš šių pažeidžiamumų yra tikras defektas, o kuris klaidingai teigiamas.

Atsakomybės apribojimas

Ši apžvalga nėra neginčijama tiesa. Autorius neturėjo tikslo išskirti atskiro instrumento kitų fone. Apžvalgos tikslas buvo parodyti, kaip veikia SCA įrankiai ir kaip patikrinti jų rezultatus.

Rezultatų palyginimas

Terminai ir sąlygos:

Klaidingi teigiami trečiųjų šalių komponentų pažeidžiamumai yra šie:

  • CVE neatitikimas nustatytam komponentui
  • Pavyzdžiui, jei struts2 sistemoje randamas pažeidžiamumas, o įrankis nurodo struts-tiles sistemos komponentą, kuriam šis pažeidžiamumas įtakos neturi, tai yra klaidingas teigiamas rezultatas.
  • CVE neatitikimas aptiktai komponento versijai
  • Pavyzdžiui, pažeidžiamumas yra susietas su python versija > 3.5, o įrankis pažymi 2.7 versiją kaip pažeidžiamą – tai klaidingai teigiama, nes iš tikrųjų pažeidžiamumas taikomas tik 3.x produkto šakai
  • CVE dubliavimas
  • Pavyzdžiui, jei SCA nurodo CVE, leidžiančią įdiegti RCE, tada SCA nurodo tą patį CVE, kuris taikomas Cisco produktams, kuriems taikomas tas RCE. Tokiu atveju jis bus klaidingai teigiamas.
  • Pavyzdžiui, pavasario žiniatinklio komponente buvo rastas CVE, po kurio SCA nurodo tą patį CVE kituose „Spring Framework“ komponentuose, o CVE neturi nieko bendra su kitais komponentais. Tokiu atveju jis bus klaidingai teigiamas.

Tyrimo objektas – Atvirojo kodo projektas DVJA. Tyrime dalyvavo tik Java komponentai (be js).

Apibendrinti rezultatai

Pereikime prie neautomatinio nustatytų pažeidžiamumų peržiūros rezultatų. Išsamią kiekvieno CVE ataskaitą rasite priede.

Visų pažeidžiamumų rezultatų suvestinė:

Parametras
Nexus IQ
Priklausomybės patikrinimas
Priklausomybės takelis

Iš viso nustatytų pažeidžiamumų
42
91
51

Neteisingai nustatyti pažeidžiamumai (klaidingai teigiamas)
2 (4.76%)
62 (68,13%)
29 (56.86%)

Atitinkamų pažeidžiamumų nerasta (klaidingai neigiamas)
10
20
27

Rezultatų suvestinė pagal komponentus:

Parametras
Nexus IQ
Priklausomybės patikrinimas
Priklausomybės takelis

Iš viso atskleista sudedamųjų dalių
62
47
59

Iš viso pažeidžiamų komponentų
16
13
10

Pažeidžiami komponentai yra neteisingai identifikuoti (klaidingai teigiama)
1
5
0

Pažeidžiami komponentai yra neteisingai identifikuoti (klaidingai teigiama)
0
6
6

Sukurkime vaizdinius grafikus, kad įvertintume klaidingai teigiamų ir klaidingai neigiamų rezultatų santykį su bendru pažeidžiamumų skaičiumi. Komponentai pažymėti horizontaliai, o juose identifikuoti pažeidžiamumai – vertikaliai.

DevSecOps: SCA veikimo principai ir palyginimas. Pirma dalis

DevSecOps: SCA veikimo principai ir palyginimas. Pirma dalis

DevSecOps: SCA veikimo principai ir palyginimas. Pirma dalis

Palyginimui, panašų tyrimą atliko Sonatype komanda, išbandžiusi 1531 komponento projektą, naudodama OWASP priklausomybės patikrinimą. Kaip matome, triukšmo ir teisingų atsakymų santykis atitinka mūsų rezultatus.

DevSecOps: SCA veikimo principai ir palyginimas. Pirma dalis
Šaltinis: www.sonatype.com/why-precision-matters-ebook

Pažvelkime į kai kuriuos CVE iš mūsų nuskaitymo rezultatų, kad suprastume tokių rezultatų priežastį.

Daugiau

№ 1

Pirmiausia išanalizuokime keletą įdomių „Sonatype Nexus IQ“ taškų.

„Nexus IQ“ atkreipia dėmesį į deserializacijos problemą, susijusią su galimybe atlikti RCE kelis kartus „Spring Framework“. CVE-2016-1000027 spring-web: 3.0.5 pirmą kartą ir CVE-2011-2894 pavasario kontekste: 3.0.5 ir spring-core: 3.0.5. Iš pradžių atrodo, kad pažeidžiamumas dubliuojasi keliuose CVE. Mat pažvelgus į CVE-2016-1000027 ir CVE-2011-2894 NVD duomenų bazėje, atrodo, kad viskas akivaizdu

Komponentas
Pažeidžiamumas

pavasario tinklas: 3.0.5
CVE-2016-1000027

pavasaris-kontekstas:3.0.5
CVE-2011-2894

spyruoklinė šerdis: 3.0.5
CVE-2011-2894

aprašymas CVE-2011-2894 iš nvd:
DevSecOps: SCA veikimo principai ir palyginimas. Pirma dalis

aprašymas CVE-2016-1000027 iš nvd:
DevSecOps: SCA veikimo principai ir palyginimas. Pirma dalis

CVE-2011-2894 yra gana gerai žinomas. Pranešime Baltasis šaltinis 2011 m šis CVE buvo pripažintas vienu iš labiausiai paplitusių. CVE-2016-100027 aprašymų NVD iš esmės yra nedaug, ir atrodo, kad jis taikomas tik pavasario pagrindų 4.1.4 versijoje. Pažiūrėkime nuoroda ir čia daugmaž aišku tampa. Iš Tvarkingi straipsniai Suprantame, kad be pažeidžiamumo RemoteInvocationSerializingExporter CVE-2011-2894 pažeidžiamumas matomas HttpInvokerServiceExporter. Štai ką mums sako Nexus IQ:

DevSecOps: SCA veikimo principai ir palyginimas. Pirma dalis

Tačiau NVD nieko panašaus nėra, todėl priklausomybės patikrinimas ir priklausomybės stebėjimas gauna klaidingus neigiamus rezultatus.

Iš CVE-2011-2894 aprašymo taip pat galima suprasti, kad pažeidžiamumas iš tikrųjų yra tiek pavasario kontekste: 3.0.5, tiek pavasario branduolyje: 3.0.5. Patvirtinimą tai galima rasti straipsnyje, kurį aptiko šis pažeidžiamumas.

№ 2

Komponentas
Pažeidžiamumas
Rezultatas

statramsčiai 2 šerdies: 2.3.30
CVE-2016-4003
FALSE

Jei išnagrinėsime CVE-2016-4003 pažeidžiamumą, suprasime, kad jis buvo ištaisytas 2.3.28 versijoje, nepaisant to, Nexus IQ mus apie tai informuoja. Pažeidžiamumo aprašyme yra pastaba:

DevSecOps: SCA veikimo principai ir palyginimas. Pirma dalis

Tai reiškia, kad pažeidžiamumas egzistuoja tik kartu su pasenusia JRE versija, apie kurią jie nusprendė mus įspėti. Nepaisant to, manome, kad tai klaidingai teigiama, nors ir ne pati baisiausia.

Nr. 3

Komponentas
Pažeidžiamumas
Rezultatas

xwork-core: 2.3.30
CVE-2017-9804
TIKROJI

xwork-core: 2.3.30
CVE-2017-7672
FALSE

Jei pažvelgsime į CVE-2017-9804 ir CVE-2017-7672 aprašymą, suprasime, kad problema yra URLValidator class, su CVE-2017-9804, kilusiu iš CVE-2017-7672. Antrojo pažeidžiamumo buvimas nekelia jokio naudingo krovinio, išskyrus tai, kad jo sunkumas išaugo iki didelio, todėl tai gali būti laikoma nereikalingu triukšmu.

Apskritai „Nexus IQ“ nerasta jokių kitų klaidingų teigiamų rezultatų.

№ 4

Yra keletas dalykų, dėl kurių IQ išsiskiria iš kitų sprendimų.

Komponentas
Pažeidžiamumas
Rezultatas

pavasario tinklas: 3.0.5
CVE-2020-5398
TIKROJI

NVD CVE sako, kad jis taikomas tik versijoms nuo 5.2.x iki 5.2.3, nuo 5.1.x iki 5.1.13 ir nuo 5.0.x iki 5.0.16, tačiau, jei pažvelgsime į CVE aprašą Nexus IQ, tada pamatysime:
Patariamasis nukrypimo pranešimas: „Sonatype“ saugos tyrimų komanda nustatė, kad šis pažeidžiamumas buvo įtrauktas į 3.0.2.RELEASE versiją, o ne 5.0.x, kaip nurodyta patarime.

Po to pateikiamas šio pažeidžiamumo PoC, kuriame teigiama, kad jis yra 3.0.5 versijoje.

Klaidingai neigiamas siunčiamas į Priklausomybės patikrinimą ir Priklausomybės stebėjimą.

№ 5

Pažiūrėkime į klaidingą teigiamą priklausomybės patikros ir priklausomybės stebėjimo rezultatą.

Priklausomybės patikra išsiskiria tuo, kad atspindi tuos CVE, kurie taikomi visai sistemai NVD, ir tiems komponentams, kuriems šie CVE netaikomi. Tai taikoma CVE-2012-0394, CVE-2013-2115, CVE-2014-0114, CVE-2015-0899, CVE-2015-2992, CVE-2016-1181, CVE-2016-1182, kurios priklauso nuo ” į statramsčius-taglib:1.3.8 ir statramsčius-tiles-1.3.8. Šie komponentai neturi nieko bendra su tuo, kas aprašyta CVE – užklausų apdorojimas, puslapio patvirtinimas ir pan. Taip yra dėl to, kad tarp šių CVE ir komponentų yra bendra tik sistema, todėl Priklausomybės patikra laikė tai pažeidžiamumu.

Ta pati situacija su spring-tx:3.0.5 ir panaši situacija su statramsčiais-core:1.3.8. Dėl struts-core, Dependency Check ir Dependency Track aptiko daug pažeidžiamumų, kurie iš tikrųjų taikomi struts2-core, kuri iš esmės yra atskira sistema. Šiuo atveju „Nexus IQ“ teisingai suprato paveikslėlį ir tuose CVE, kuriuos išleido, nurodė, kad struts-core pasibaigė ir reikėjo pereiti prie struts2-core.

№ 6

Kai kuriose situacijose aiškios priklausomybės patikros ir priklausomybės stebėjimo klaidos traktavimas yra nesąžiningas. Visų pirma CVE-2013-4152, CVE-2013-6429, CVE-2013-6430, CVE-2013-7315, CVE-2014-0054, CVE-2014-0225, CVE-2014-0225, kurie yra priklausomybės tikrinimas ir priklausomybės tikrinimas. nurodyta spring-core:3.0.5 iš tikrųjų reiškia spring-web:3.0.5. Tuo pačiu metu kai kuriuos iš šių CVE rado „Nexus IQ“, tačiau IQ teisingai juos atpažino su kitu komponentu. Atsižvelgiant į tai, kad šių pažeidžiamumų nebuvo rasta „spring-core“, negalima teigti, kad jie iš esmės nepatenka į sistemą, o atvirojo kodo įrankiai teisingai nurodė šiuos pažeidžiamumus (jie tiesiog šiek tiek praleido).

išvados

Kaip matome, nustatytų spragų patikimumo nustatymas rankiniu būdu neduoda vienareikšmių rezultatų, o tai sukelia prieštaringų problemų. Rezultatai rodo, kad „Nexus IQ“ sprendimas turi mažiausią klaidingų teigiamų rezultatų rodiklį ir didžiausią tikslumą.

Visų pirma, taip yra dėl to, kad Sonatype komanda savo duomenų bazėse išplėtė kiekvieno CVE pažeidžiamumo aprašymą iš NVD, nurodydama iki konkrečios komponento versijos pažeidžiamumo klasės ar funkcijos, atlikusi papildomą tyrimai (pavyzdžiui, tikrinant senesnių programinės įrangos versijų pažeidžiamumą).

Didelę įtaką rezultatams turi ir tie pažeidžiamumai, kurie nebuvo įtraukti į NVD, bet vis dėlto yra Sonatype duomenų bazėje, pažymėtoje SONATYPE. Anot pranešimo Atvirojo kodo saugos pažeidžiamumo būsena 2020 m Apie 45 % aptiktų atvirojo kodo pažeidžiamumų NVD nepranešama. Remiantis „WhiteSource“ duomenų baze, tik 29% visų atvirojo kodo pažeidžiamumų, užregistruotų ne NVD, ten paskelbiami, todėl labai svarbu pažeidžiamumų ieškoti ir kitur.

Dėl to priklausomybės patikra sukuria daug triukšmo, nes trūksta kai kurių pažeidžiamų komponentų. Dependency Track sukuria mažiau triukšmo ir aptinka daug komponentų, o tai vizualiai nekenkia akių žiniatinklio sąsajoje.

Nepaisant to, praktika rodo, kad būtent atvirasis kodas turėtų tapti pirmaisiais žingsniais link brandaus DevSecOps. Pirmiausia reikia pagalvoti apie SCA įtraukimą į plėtrą, tai procesai, ty mąstymas su vadovybe ir susijusiais padaliniais apie tai, kaip turėtų atrodyti idealūs procesai jūsų organizacijoje. Gali pasirodyti, kad jūsų organizacijai iš pradžių Dependency Check arba Dependency Track apims visus verslo poreikius, o Enterprise sprendimai bus logiškas tęsinys dėl vis sudėtingėjančių kuriamų programų.

A priedas. Komponentų rezultatai
Simboliai:

  • Aukšto – aukšto ir kritinio lygio komponento pažeidžiamumas
  • Vidutinis – vidutinio sunkumo komponento pažeidžiamumas
  • TRUE – tikra teigiama problema
  • FALSE – klaidingai teigiama problema

Komponentas
Nexus IQ
Priklausomybės patikrinimas
Priklausomybės takelis
Rezultatas

dom4j:1.6.1
aukštas
aukštas
aukštas
TIKROJI

log4j branduolys: 2.3
aukštas
aukštas
aukštas
TIKROJI

log4j: 1.2.14
aukštas
aukštas
-
TIKROJI

bendri daiktai-kolekcijos:3.1
aukštas
aukštas
aukštas
TIKROJI

„Commons“ failo įkėlimas: 1.3.2
aukštas
aukštas
aukštas
TIKROJI

commons-beanutils:1.7.0
aukštas
aukštas
aukštas
TIKROJI

Commons-codec: 1:10
vidutinis
-
-
TIKROJI

mysql-connector-java: 5.1.42
aukštas
aukštas
aukštas
TIKROJI

spyruoklinė išraiška:3.0.5
aukštas
komponentas nerastas

TIKROJI

pavasario tinklas: 3.0.5
aukštas
komponentas nerastas
aukštas
TIKROJI

pavasaris-kontekstas:3.0.5
vidutinis
komponentas nerastas
-
TIKROJI

spyruoklinė šerdis: 3.0.5
vidutinis
aukštas
aukštas
TIKROJI

struts2-config-browser-plugin:2.3.30
vidutinis
-
-
TIKROJI

spyruoklė-tx: 3.0.5
-
aukštas
-
FALSE

statramsčiai-šerdis:1.3.8
aukštas
aukštas
aukštas
TIKROJI

xwork-core: 2.3.30
aukštas
-
-
TIKROJI

statramsčiai 2 šerdies: 2.3.30
aukštas
aukštas
aukštas
TIKROJI

struts-taglib:1.3.8
-
aukštas
-
FALSE

statramsčiai-čerpės-1.3.8
-
aukštas
-
FALSE

B priedas. Pažeidžiamumo rezultatai
Simboliai:

  • Aukšto – aukšto ir kritinio lygio komponento pažeidžiamumas
  • Vidutinis – vidutinio sunkumo komponento pažeidžiamumas
  • TRUE – tikra teigiama problema
  • FALSE – klaidingai teigiama problema

Komponentas
Nexus IQ
Priklausomybės patikrinimas
Priklausomybės takelis
Sunkumas
Rezultatas
Komentuoti

dom4j:1.6.1
CVE-2018-1000632
CVE-2018-1000632
CVE-2018-1000632
aukštas
TIKROJI

CVE-2020-10683
CVE-2020-10683
CVE-2020-10683
aukštas
TIKROJI

log4j branduolys: 2.3
CVE-2017-5645
CVE-2017-5645
CVE-2017-5645
aukštas
TIKROJI

CVE-2020-9488
CVE-2020-9488
CVE-2020-9488
žemas
TIKROJI

log4j: 1.2.14
CVE-2019-17571
CVE-2019-17571
-
aukštas
TIKROJI

-
CVE-2020-9488
-
žemas
TIKROJI

SONATIPAS-2010-0053
-
-
aukštas
TIKROJI

bendri daiktai-kolekcijos:3.1
-
CVE-2015-6420
CVE-2015-6420
aukštas
FALSE
Pasikartojantys RCE (OSSINDEX)

-
CVE-2017-15708
CVE-2017-15708
aukštas
FALSE
Pasikartojantys RCE (OSSINDEX)

SONATIPAS-2015-0002
RCE (OSSINDEX)
RCE (OSSINDEX)
aukštas
TIKROJI

„Commons“ failo įkėlimas: 1.3.2
CVE-2016-1000031
CVE-2016-1000031
CVE-2016-1000031
aukštas
TIKROJI

SONATIPAS-2014-0173
-
-
vidutinis
TIKROJI

commons-beanutils:1.7.0
CVE-2014-0114
CVE-2014-0114
CVE-2014-0114
aukštas
TIKROJI

-
CVE-2019-10086
CVE-2019-10086
aukštas
FALSE
Pažeidžiamumas taikomas tik 1.9.2 ir naujesnėse versijose

Commons-codec: 1:10
SONATIPAS-2012-0050
-
-
vidutinis
TIKROJI

mysql-connector-java: 5.1.42
CVE-2018-3258
CVE-2018-3258
CVE-2018-3258
aukštas
TIKROJI

CVE-2019-2692
CVE-2019-2692
-
vidutinis
TIKROJI

-
CVE-2020-2875
-
vidutinis
FALSE
Tas pats pažeidžiamumas kaip CVE-2019-2692, bet su priedu „atakos gali reikšmingai paveikti papildomus produktus“

-
CVE-2017-15945
-
aukštas
FALSE
Netaikoma mysql-connector-java

-
CVE-2020-2933
-
žemas
FALSE
CVE-2020-2934 dublikatas

CVE-2020-2934
CVE-2020-2934
-
vidutinis
TIKROJI

spyruoklinė išraiška:3.0.5
CVE-2018-1270
komponentas nerastas
-
aukštas
TIKROJI

CVE-2018-1257
-
-
vidutinis
TIKROJI

pavasario tinklas: 3.0.5
CVE-2016-1000027
komponentas nerastas
-
aukštas
TIKROJI

CVE-2014-0225
-
CVE-2014-0225
aukštas
TIKROJI

CVE-2011-2730
-
-
aukštas
TIKROJI

-
-
CVE-2013-4152
vidutinis
TIKROJI

CVE-2018-1272
-
-
aukštas
TIKROJI

CVE-2020-5398
-
-
aukštas
TIKROJI
IQ naudai: „Sonatype saugumo tyrimų komanda nustatė, kad šis pažeidžiamumas buvo įtrauktas į 3.0.2.RELEASE versiją, o ne 5.0.x, kaip nurodyta patarime“.

CVE-2013-6429
-
-
vidutinis
TIKROJI

CVE-2014-0054
-
CVE-2014-0054
vidutinis
TIKROJI

CVE-2013-6430
-
-
vidutinis
TIKROJI

pavasaris-kontekstas:3.0.5
CVE-2011-2894
komponentas nerastas
-
vidutinis
TIKROJI

spyruoklinė šerdis: 3.0.5
-
CVE-2011-2730
CVE-2011-2730
aukštas
TIKROJI

CVE-2011-2894
CVE-2011-2894
CVE-2011-2894
vidutinis
TIKROJI

-
-
CVE-2013-4152
vidutinis
FALSE
To paties pažeidžiamumo dublikatas pavasario žiniatinklyje

-
CVE-2013-4152
-
vidutinis
FALSE
Pažeidžiamumas yra susijęs su spyruoklinio tinklo komponentu

-
CVE-2013-6429
CVE-2013-6429
vidutinis
FALSE
Pažeidžiamumas yra susijęs su spyruoklinio tinklo komponentu

-
CVE-2013-6430
-
vidutinis
FALSE
Pažeidžiamumas yra susijęs su spyruoklinio tinklo komponentu

-
CVE-2013-7315
CVE-2013-7315
vidutinis
FALSE
SKILTAS iš CVE-2013-4152. + Pažeidžiamumas yra susijęs su spyruoklinio tinklo komponentu

-
CVE-2014-0054
CVE-2014-0054
vidutinis
FALSE
Pažeidžiamumas yra susijęs su spyruoklinio tinklo komponentu

-
CVE-2014-0225
-
aukštas
FALSE
Pažeidžiamumas yra susijęs su spyruoklinio tinklo komponentu

-
-
CVE-2014-0225
aukštas
FALSE
To paties pažeidžiamumo dublikatas pavasario žiniatinklyje

-
CVE-2014-1904
CVE-2014-1904
vidutinis
FALSE
Pažeidžiamumas yra susijęs su pavasario-web-mvc komponentu

-
CVE-2014-3625
CVE-2014-3625
vidutinis
FALSE
Pažeidžiamumas yra susijęs su pavasario-web-mvc komponentu

-
CVE-2016-9878
CVE-2016-9878
aukštas
FALSE
Pažeidžiamumas yra susijęs su pavasario-web-mvc komponentu

-
CVE-2018-1270
CVE-2018-1270
aukštas
FALSE
Pavasario išraiškai / pavasario pranešimams

-
CVE-2018-1271
CVE-2018-1271
vidutinis
FALSE
Pažeidžiamumas yra susijęs su pavasario-web-mvc komponentu

-
CVE-2018-1272
CVE-2018-1272
aukštas
TIKROJI

CVE-2014-3578
CVE-2014-3578 (OSSINDEX)
CVE-2014-3578
vidutinis
TIKROJI

SONATIPAS-2015-0327
-
-
žemas
TIKROJI

struts2-config-browser-plugin:2.3.30
SONATIPAS-2016-0104
-
-
vidutinis
TIKROJI

spyruoklė-tx: 3.0.5
-
CVE-2011-2730
-
aukštas
FALSE
Pažeidžiamumas netaikomas spring-tx

-
CVE-2011-2894
-
aukštas
FALSE
Pažeidžiamumas netaikomas spring-tx

-
CVE-2013-4152
-
vidutinis
FALSE
Pažeidžiamumas netaikomas spring-tx

-
CVE-2013-6429
-
vidutinis
FALSE
Pažeidžiamumas netaikomas spring-tx

-
CVE-2013-6430
-
vidutinis
FALSE
Pažeidžiamumas netaikomas spring-tx

-
CVE-2013-7315
-
vidutinis
FALSE
Pažeidžiamumas netaikomas spring-tx

-
CVE-2014-0054
-
vidutinis
FALSE
Pažeidžiamumas netaikomas spring-tx

-
CVE-2014-0225
-
aukštas
FALSE
Pažeidžiamumas netaikomas spring-tx

-
CVE-2014-1904
-
vidutinis
FALSE
Pažeidžiamumas netaikomas spring-tx

-
CVE-2014-3625
-
vidutinis
FALSE
Pažeidžiamumas netaikomas spring-tx

-
CVE-2016-9878
-
aukštas
FALSE
Pažeidžiamumas netaikomas spring-tx

-
CVE-2018-1270
-
aukštas
FALSE
Pažeidžiamumas netaikomas spring-tx

-
CVE-2018-1271
-
vidutinis
FALSE
Pažeidžiamumas netaikomas spring-tx

-
CVE-2018-1272
-
vidutinis
FALSE
Pažeidžiamumas netaikomas spring-tx

statramsčiai-šerdis:1.3.8
-
CVE-2011-5057 (OSSINDEX)

vidutinis
FASLE
2 pažeidžiamumas

-
CVE-2012-0391 (OSSINDEX)
CVE-2012-0391
aukštas
FALSE
2 pažeidžiamumas

-
CVE-2014-0094 (OSSINDEX)
CVE-2014-0094
vidutinis
FALSE
2 pažeidžiamumas

-
CVE-2014-0113 (OSSINDEX)
CVE-2014-0113
aukštas
FALSE
2 pažeidžiamumas

CVE-2016-1182
3VE-2016-1182
-
aukštas
TIKROJI

-
-
CVE-2011-5057
vidutinis
FALSE
2 pažeidžiamumas

-
CVE-2012-0392 (OSSINDEX)
CVE-2012-0392
aukštas
FALSE
2 pažeidžiamumas

-
CVE-2012-0393 (OSSINDEX)
CVE-2012-0393
vidutinis
FALSE
2 pažeidžiamumas

CVE-2015-0899
CVE-2015-0899
-
aukštas
TIKROJI

-
CVE-2012-0394
CVE-2012-0394
vidutinis
FALSE
2 pažeidžiamumas

-
CVE-2012-0838 (OSSINDEX)
CVE-2012-0838
aukštas
FALSE
2 pažeidžiamumas

-
CVE-2013-1965 (OSSINDEX)
CVE-2013-1965
aukštas
FALSE
2 pažeidžiamumas

-
CVE-2013-1966 (OSSINDEX)
CVE-2013-1966
aukštas
FASLE
2 pažeidžiamumas

-
CVE-2013-2115
CVE-2013-2115
aukštas
FASLE
2 pažeidžiamumas

-
CVE-2013-2134 (OSSINDEX)
CVE-2013-2134
aukštas
FASLE
2 pažeidžiamumas

-
CVE-2013-2135 (OSSINDEX)
CVE-2013-2135
aukštas
FASLE
2 pažeidžiamumas

CVE-2014-0114
CVE-2014-0114
-
aukštas
TIKROJI

-
CVE-2015-2992
CVE-2015-2992
vidutinis
FALSE
2 pažeidžiamumas

-
CVE-2016-0785 (OSSINDEX)
CVE-2016-0785
aukštas
FALSE
2 pažeidžiamumas

CVE-2016-1181
CVE-2016-1181
-
aukštas
TIKROJI

-
CVE-2016-4003 (OSSINDEX)
CVE-2016-4003
aukštas
FALSE
2 pažeidžiamumas

xwork-core: 2.3.30
CVE-2017-9804
-
-
aukštas
TIKROJI

SONATIPAS-2017-0173
-
-
aukštas
TIKROJI

CVE-2017-7672
-
-
aukštas
FALSE
Dvigubai CVE-2017-9804

SONATIPAS-2016-0127
-
-
aukštas
TIKROJI

statramsčiai 2 šerdies: 2.3.30
-
CVE-2016-6795
CVE-2016-6795
aukštas
TIKROJI

-
CVE-2017-9787
CVE-2017-9787
aukštas
TIKROJI

-
CVE-2017-9791
CVE-2017-9791
aukštas
TIKROJI

-
CVE-2017-9793
-
aukštas
FALSE
CVE-2018-1327 dublikatas

-
CVE-2017-9804
-
aukštas
TIKROJI

-
CVE-2017-9805
CVE-2017-9805
aukštas
TIKROJI

CVE-2016-4003
-
-
vidutinis
FALSE
Taikoma Apache Struts 2.x iki 2.3.28, kuri yra 2.3.30 versija. Tačiau, remiantis aprašymu, CVE veikia visose Struts 2 versijose, kol naudojama JRE 1.7 ir senesnė versija. Matyt, jie nusprendė mus čia perdrausti, bet tai labiau atrodo NELAIDAS

-
CVE-2018-1327
CVE-2018-1327
aukštas
TIKROJI

CVE-2017-5638
CVE-2017-5638
CVE-2017-5638
aukštas
TIKROJI
Tas pats pažeidžiamumas, kurį 2017 m. išnaudojo „Equifax“ užpuolikai

CVE-2017-12611
CVE-2017-12611
-
aukštas
TIKROJI

CVE-2018-11776
CVE-2018-11776
CVE-2018-11776
aukštas
TIKROJI

struts-taglib:1.3.8
-
CVE-2012-0394
-
vidutinis
FALSE
Skirta 2 branduolių statramsčiams

-
CVE-2013-2115
-
aukštas
FALSE
Skirta 2 branduolių statramsčiams

-
CVE-2014-0114
-
aukštas
FALSE
Commons-beanutils

-
CVE-2015-0899
-
aukštas
FALSE
Nesusijęs su taglib

-
CVE-2015-2992
-
vidutinis
FALSE
Susijęs su 2 branduolių statramsčiais

-
CVE-2016-1181
-
aukštas
FALSE
Nesusijęs su taglib

-
CVE-2016-1182
-
aukštas
FALSE
Nesusijęs su taglib

statramsčiai-čerpės-1.3.8
-
CVE-2012-0394
-
vidutinis
FALSE
Skirta 2 branduolių statramsčiams

-
CVE-2013-2115
-
aukštas
FALSE
Skirta 2 branduolių statramsčiams

-
CVE-2014-0114
-
aukštas
FALSE
Pagal bendrus-beanutils

-
CVE-2015-0899
-
aukštas
FALSE
Netaikoma plytelėms

-
CVE-2015-2992
-
vidutinis
FALSE
Skirta 2 branduolių statramsčiams

-
CVE-2016-1181
-
aukštas
FALSE
Nesusijęs su taglib

-
CVE-2016-1182
-
aukštas
FALSE
Nesusijęs su taglib

Šaltinis: www.habr.com

Добавить комментарий