DevSecOps: SCA:n toimintaperiaatteet ja vertailu. Osa yksi

Kolmannen osapuolen ohjelmistokomponenttien (Software Composition Analysis - SCA) analyysin merkitys kehitysprosessissa kasvaa, kun synopsys, Sonatype, Snyk ja White Source julkaisevat avoimen lähdekoodin kirjastojen haavoittuvuuksia käsittelevät vuosiraportit. . Raportin mukaan Avoimen lähdekoodin tietoturvahaavoittuvuuksien tila 2020 tunnistettujen avoimen lähdekoodin haavoittuvuuksien määrä vuonna 2019 kasvoi lähes 1.5-kertaiseksi edelliseen vuoteen verrattuna, kun taas avoimen lähdekoodin komponentteja käyttää 60–80 % projekteista. Riippumattomalta pohjalta SCA-prosessit ovat OWASP SAMM:n ja BSIMM:n erillinen käytäntö kypsyysindikaattorina, ja vuoden 2020 ensimmäisellä puoliskolla OWASP julkaisi uuden OWASP Software Component Verification Standard (SCVS) -standardin, joka tarjoaa parhaat käytännöt kolmansien osapuolten todentamiseen. osapuolen komponentit toimitusketjussa BY.

DevSecOps: SCA:n toimintaperiaatteet ja vertailu. Osa yksi

Yksi havainnollistavimmista tapauksista tapahtui Equifaxin kanssa toukokuussa 2017. Tuntemattomat hyökkääjät saivat tietoja 143 miljoonasta amerikkalaisesta, mukaan lukien täydelliset nimet, osoitteet, sosiaaliturvatunnukset ja ajokortit. Asiakirjoissa oli 209 000 tapauksessa myös tietoja uhrien pankkikorteista. Tämä vuoto johtui Apache Struts 2:n (CVE-2017-5638) kriittisen haavoittuvuuden hyödyntämisestä, kun korjaus julkaistiin maaliskuussa 2017. Yrityksellä oli kaksi kuukautta aikaa asentaa päivitys, mutta kukaan ei välittänyt siitä.

Tässä artikkelissa käsitellään SCA:n suorittamiseen käytettävän työkalun valintaa analyysitulosten laadun kannalta. Lisäksi tarjotaan työkalujen toiminnallinen vertailu. CI/CD:hen integrointi ja integrointiominaisuudet jätetään seuraaviin julkaisuihin. OWASP esitteli laajan valikoiman työkaluja sivustollasi, mutta tässä katsauksessa käsittelemme vain suosituinta avoimen lähdekoodin työkalu Dependency Check, hieman vähemmän tunnettu avoimen lähdekoodin alusta Dependency Track ja Enterprise-ratkaisu Sonatype Nexus IQ. Ymmärrämme myös, kuinka nämä ratkaisut toimivat, ja vertaamme vääriä positiivisia tuloksia.

DevSecOps: SCA:n toimintaperiaatteet ja vertailu. Osa yksi

Toimintaperiaate

Riippuvuuden tarkistus on apuohjelma (CLI, maven, jenkins-moduuli, muurahainen), joka analysoi projektitiedostoja, kerää tietoja riippuvuuksista (paketin nimi, ryhmätunnus, määrittelyn otsikko, versio...), rakentaa CPE (Common Platform Enumeration) -rivin. , Package URL ( PURL) ja tunnistaa tietokannoista (NVD, Sonatype OSS Index, NPM Audit API...) olevat CPE/PURL-haavoittuvuudet, minkä jälkeen se rakentaa kertaluonteisen raportin HTML-, JSON-, XML-muodossa...

Katsotaanpa miltä CPE näyttää:

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

  • Osa: Ilmoitus siitä, että komponentti liittyy sovellukseen (a), käyttöjärjestelmään (o), laitteistoon (h) (pakollinen)
  • Myyjä: Tuotteen valmistajan nimi (pakollinen)
  • Tuote: Tuotteen nimi (pakollinen)
  • Versio: Komponentin versio (vanhentunut kohde)
  • Päivitys: Paketin päivitys
  • Painos: Vanha versio (vanhentunut kohde)
  • Kieli: RFC-5646:ssa määritetty kieli
  • SW-versio: Ohjelmisto versio
  • Kohde SW: Ohjelmistoympäristö, jossa tuote toimii
  • Kohde HW: Laitteistoympäristö, jossa tuote toimii
  • muu: Toimittaja tai tuotetiedot

Esimerkki CPE:stä näyttää tältä:

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

Rivi tarkoittaa, että CPE-versio 2.3 kuvaa valmistajan sovelluskomponentin pivotal_software nimellä spring_framework versio 3.0.0. Jos avaamme haavoittuvuuden CVE-2014-0225 NVD:ssä voimme nähdä maininnan tästä CPE:stä. Ensimmäinen ongelma, johon sinun tulee välittömästi kiinnittää huomiota, on se, että CVE NVD:ssä ilmoittaa CPE:n mukaan ongelmasta kehyksessä, ei tietyssä komponentissa. Eli jos kehittäjät ovat tiukasti sidoksissa kehykseen ja tunnistettu haavoittuvuus ei vaikuta kehittäjien käyttämiin moduuleihin, tietoturvaasiantuntijan on tavalla tai toisella purettava tämä CVE ja harkittava päivitystä.

URL-osoitetta käyttävät myös SCA-työkalut. Paketin URL-muoto on seuraava:

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

  • Kaava: Siellä on aina "pkg", joka osoittaa, että tämä on paketin URL-osoite (pakollinen)
  • Tyyppi: Paketin "tyyppi" tai paketin "protokolla", kuten maven, npm, nuget, gem, pypi jne. (Pakollinen kohde)
  • nimiavaruus Jotkut nimen etuliite, kuten Maven-ryhmätunnus, Docker-kuvan omistaja, GitHub-käyttäjä tai organisaatio. Valinnainen ja riippuu tyypistä.
  • Nimi: Paketin nimi (pakollinen)
  • Versio: Pakettiversio
  • Karsinnat: Paketin lisäkelpoisuustiedot, kuten käyttöjärjestelmä, arkkitehtuuri, jakelu jne. Valinnainen ja tyyppikohtainen.
  • Alapolku: Lisäpolku paketissa suhteessa paketin juureen

Esimerkiksi:

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

Riippuvuusrata — paikan päällä oleva verkkoalusta, joka hyväksyy luodut valmiit materiaaliluettelot (BOM). CycloneDX и SPDX, eli valmiita määrityksiä olemassa olevista riippuvuuksista. Tämä on XML-tiedosto, joka kuvaa riippuvuudet - nimi, tiivisteet, paketin URL-osoite, julkaisija, lisenssi. Seuraavaksi Dependency Track jäsentää materiaaliluettelon, tarkastelee tunnistetuille riippuvuuksille saatavilla olevia CVE:itä haavoittuvuustietokannasta (NVD, Sonatype OSS Index...), minkä jälkeen se rakentaa kaavioita, laskee mittareita ja päivittää säännöllisesti tietoja komponenttien haavoittuvuustilasta. .

Esimerkki siitä, miltä tuoteluettelo voi näyttää XML-muodossa:

<?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>

Tuoteluetteloa voidaan käyttää paitsi Dependency Trackin syöttöparametreina myös toimitusketjun ohjelmistokomponenttien inventointiin, esimerkiksi ohjelmistojen toimittamiseen asiakkaalle. Vuonna 2014 jopa Yhdysvalloissa ehdotettiin lakia "Cyber ​​​​Supply Chain Management and Transparency Act 2014", jossa todettiin, että ohjelmistoa ostettaessa mikä tahansa valtio. Toimielimen on pyydettävä tuoteluettelo estääkseen haavoittuvien komponenttien käytön, mutta laki ei ole vielä tullut voimaan.

Palaten SCA:han Dependency Trackissa on valmiita integraatioita ilmoitusalustojen, kuten Slackin, ja haavoittuvuuden hallintajärjestelmien, kuten Kenna Securityn, kanssa. On myös syytä sanoa, että Dependency Track tunnistaa muun muassa pakettien vanhentuneet versiot ja antaa tietoja lisensseistä (SPDX-tuen ansiosta).

Jos puhumme nimenomaan SCA:n laadusta, siinä on perustavanlaatuinen ero.

Dependency Track ei hyväksy projektia syötteeksi, vaan pikemminkin materiaaliluetteloa. Tämä tarkoittaa, että jos haluamme testata projektia, meidän on ensin luotava bom.xml, esimerkiksi CycloneDX:n avulla. Siten Dependency Track on suoraan riippuvainen CycloneDX:stä. Samalla se mahdollistaa mukauttamisen. Näin OZON-tiimi kirjoitti CycloneDX-moduuli Bom-tiedostojen kokoamiseen Golang-projekteihin jatkoskannausta varten Dependency Trackin kautta.

Nexus IQ on Sonatypen kaupallinen SCA-ratkaisu, joka on osa Sonatype-ekosysteemiä, joka sisältää myös Nexus Repository Managerin. Nexus IQ voi hyväksyä syötteeksi sekä sota-arkistot (Java-projekteille) verkkokäyttöliittymän tai API:n kautta sekä tuoteluettelon, jos organisaatiosi ei ole vielä siirtynyt CycloneDX:stä uuteen ratkaisuun. Toisin kuin avoimen lähdekoodin ratkaisut, IQ ei viittaa vain CP/PURL:iin tunnistettuun komponenttiin ja vastaavaan tietokannan haavoittuvuuteen, vaan ottaa huomioon myös oman tutkimuksensa, esimerkiksi haavoittuvan toiminnon tai luokan nimen. IQ:n mekanismeja käsitellään myöhemmin tulosten analysoinnissa.

Tehdään yhteenveto joistakin toiminnallisista ominaisuuksista ja tarkastellaan myös tuettuja kieliä analysoitavaksi:

Kieli
Nexus IQ
Riippuvuuden tarkistus
Riippuvuusrata

Jaava
+
+
+

C / C ++
+
+
-

C#
+
+
-

. Net
+
+
+

Erlang
-
-
+

JavaScript (NodeJS)
+
+
+

PHP
+
+
+

Python
+
+
+

Rubiini
+
+
+

Perl
-
-
-

Scala
+
+
+

Tavoite C
+
+
-

Nopea
+
+
-

R
+
-
-

Go
+
+
+

toiminnallisuus

toiminnallisuus
Nexus IQ
Riippuvuuden tarkistus
Riippuvuusrata

Kyky varmistaa, että lähdekoodissa käytettyjen komponenttien lisensoitu puhtaus tarkistetaan
+
-
+

Kyky skannata ja analysoida haavoittuvuuksia ja lisensoida Docker-kuvien puhtaus
+ Integrointi Clairin kanssa
-
-

Mahdollisuus määrittää suojauskäytännöt avoimen lähdekoodin kirjastojen käyttöä varten
+
-
-

Mahdollisuus tarkistaa avoimen lähdekoodin tietovarastot haavoittuvien komponenttien varalta
+ RubyGems, Maven, NPM, Nuget, Pypi, Conan, Bower, Conda, Go, p2, R, Yum, Helm, Docker, CocoaPods, Git LFS
-
+ Hex, RubyGems, Maven, NPM, Nuget, Pypi

Erikoistuneen tutkimusryhmän saatavuus
+
-
-

Suljetun silmukan toiminta
+
+
+

Kolmannen osapuolen tietokantojen käyttö
+ Suljettu Sonatype-tietokanta
+ Sonatype OSS, NPM Public Advisors
+ Sonatype OSS, NPM Public Advisors, RetireJS, VulnDB, tuki omalle haavoittuvuustietokantalleen

Mahdollisuus suodattaa avoimen lähdekoodin komponentteja yritettäessä ladata kehityssilmukkaan määritettyjen käytäntöjen mukaisesti
+
-
-

Suosituksia haavoittuvuuksien korjaamiseen, linkkien saatavuus korjauksiin
+
+- (riippuu julkisissa tietokannoissa olevasta kuvauksesta)
+- (riippuu julkisissa tietokannoissa olevasta kuvauksesta)

Havaittujen haavoittuvuuksien järjestys vakavuuden mukaan
+
+
+

Rooliin perustuva pääsymalli
+
-
+

CLI-tuki
+
+
+- (vain CycloneDX)

Haavoittuvuuksien näytteenotto/lajittelu määriteltyjen kriteerien mukaan
+
-
+

Kojelauta sovelluksen tilan mukaan
+
-
+

Raporttien luominen PDF-muodossa
+
-
-

Raporttien luominen JSONCSV-muodossa
+
+
-

Venäjän kielen tuki
-
-
-

Integrointiominaisuudet

integraatio
Nexus IQ
Riippuvuuden tarkistus
Riippuvuusrata

LDAP/Active Directory -integrointi
+
-
+

Integrointi jatkuvaan integrointijärjestelmään Bamboo
+
-
-

Integrointi jatkuvaan integrointijärjestelmään TeamCity
+
-
-

Integrointi jatkuvaan integrointijärjestelmään GitLab
+
+- (laajennuksena GitLabille)
+

Integrointi jatkuvaan integrointijärjestelmään Jenkins
+
+
+

IDE-laajennusten saatavuus
+ IntelliJ, Eclipse, Visual Studio
-
-

Tuki työkalun mukautettuun integrointiin verkkopalveluiden (API) kautta
+
-
+

Riippuvuuden tarkistus

Ensimmäinen alku

Suoritetaan riippuvuustarkistus tarkoituksellisesti haavoittuvassa sovelluksessa DVJA.

Tätä varten käytämme Riippuvuustarkistus Maven Plugin:

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

Tämän seurauksena dependency-check-report.html näkyy kohdehakemistossa.

DevSecOps: SCA:n toimintaperiaatteet ja vertailu. Osa yksi

Avataan tiedosto. Yhteenvetotietojen jälkeen haavoittuvuuksien kokonaismäärästä voimme nähdä tietoja haavoittuvuuksista, joiden vakavuus ja luotettavuus on korkea, ja jotka osoittavat paketin, CPE:n ja CVE:iden määrän.

Seuraavaksi tulee tarkempia tietoja, erityisesti päätöksentekoperusteita (todisteita), eli tietty tuoteluettelo.

DevSecOps: SCA:n toimintaperiaatteet ja vertailu. Osa yksi

Seuraavaksi tulee CPE-, PURL- ja CVE-kuvaus. Muuten, korjaussuosituksia ei sisällytetä, koska niitä ei ole NVD-tietokannassa.

DevSecOps: SCA:n toimintaperiaatteet ja vertailu. Osa yksi

Tarkastellaksesi tarkistuksen tuloksia järjestelmällisesti, voit määrittää Nginxin minimaalisilla asetuksilla tai lähettää syntyneet viat vianhallintajärjestelmään, joka tukee liittimiä riippuvuustarkistukseen. Esimerkiksi Defect Dojo.

Riippuvuusrata

Asennus

Dependency Track puolestaan ​​on web-pohjainen alusta, jossa on näyttökaavioita, joten kiireellinen ongelma virheiden tallentamisesta kolmannen osapuolen ratkaisuun ei esiinny tässä.
Asennuksen tuetut komentosarjat ovat: Docker, WAR, Executable WAR.

Ensimmäinen alku

Siirrymme käynnissä olevan palvelun URL-osoitteeseen. Kirjaudumme sisään järjestelmänvalvojan/adminin kautta, vaihdamme käyttäjätunnuksen ja salasanan ja pääsemme sitten kojelautaan. Seuraavaksi teemme projektin Java-testisovellukselle Etusivu/Projektit → Luo projekti . Otetaan DVJA esimerkkinä.

DevSecOps: SCA:n toimintaperiaatteet ja vertailu. Osa yksi

Koska Dependency Track voi hyväksyä vain materiaaliluettelon syötteenä, tämä materiaaliluettelo on haettava. Hyödynnetään CycloneDX Maven Plugin:

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

Saamme bom.xml:n ja lataamme tiedoston luotuun projektiin DVJA → Riippuvuudet → Lataa materiaalitiedosto.

Siirrytään kohtaan Hallinta → Analysaattorit. Ymmärrämme, että meillä on käytössä vain Internal Analyzer, joka sisältää NVD:n. Yhdistetään myös Sonatype OSS Index.

DevSecOps: SCA:n toimintaperiaatteet ja vertailu. Osa yksi

Näin saamme seuraavan kuvan projektillemme:

DevSecOps: SCA:n toimintaperiaatteet ja vertailu. Osa yksi

Listasta löydät myös yhden Sonatype OSS:ään sovellettavan haavoittuvuuden:

DevSecOps: SCA:n toimintaperiaatteet ja vertailu. Osa yksi

Suurin pettymys oli, että Dependency Track ei enää hyväksy Dependency Check xml -raportteja. Viimeisimmät tuetut versiot Dependency Check -integraatiosta olivat 1.0.0 - 4.0.2, kun minä testasin versiota 5.3.2.

Täällä video (ja täällä), kun se oli vielä mahdollista.

Nexus IQ

Ensimmäinen alku

Nexus IQ:n asennus tulee arkistosta dokumentointi, mutta loimme Docker-kuvan näihin tarkoituksiin.

Kun olet kirjautunut konsoliin, sinun on luotava organisaatio ja sovellus.

DevSecOps: SCA:n toimintaperiaatteet ja vertailu. Osa yksi

DevSecOps: SCA:n toimintaperiaatteet ja vertailu. Osa yksi

DevSecOps: SCA:n toimintaperiaatteet ja vertailu. Osa yksi

Kuten näette, asetukset IQ:n tapauksessa ovat hieman monimutkaisempia, koska meidän on myös luotava käytäntöjä, jotka soveltuvat eri "vaiheisiin" (kehittäjä, rakennus, vaihe, julkaisu). Tämä on tarpeen haavoittuvien komponenttien estämiseksi niiden siirtyessä tuotantoprosessin läpi tai estää ne heti, kun ne pääsevät Nexus Repoon kehittäjien lataamana.

Jos haluat tuntea eron avoimen lähdekoodin ja yrityksen välillä, suorita sama skannaus Nexus IQ:n kautta samalla tavalla Maven-laajennus, joka on aiemmin luonut testisovelluksen NexusIQ-käyttöliittymässä 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>

Seuraa luodun raportin URL-osoitetta IQ-verkkoliittymässä:

DevSecOps: SCA:n toimintaperiaatteet ja vertailu. Osa yksi

Täältä näet kaikki käytäntörikkomukset, jotka osoittavat eri merkitystasoja (Tiedoista tietoturvakriittisiin). Komponentin vieressä oleva kirjain D tarkoittaa, että komponentti on suora riippuvuus, ja T-kirjain komponentin vieressä tarkoittaa, että komponentti on Transitive Dependency, eli se on transitiivinen.

Muuten, raportti Avoimen lähdekoodin tietoturvaraportti 2020 Snyk raportoi, että yli 70 % Node.js:ssä, Javassa ja Rubyssa löydetyistä avoimen lähdekoodin haavoittuvuuksista on transitiivisissa riippuvuuksissa.

Jos avaamme jonkin Nexus IQ -käytäntörikkomuksista, näemme komponentin kuvauksen sekä versiokaavion, joka näyttää nykyisen version sijainnin aikakaaviossa sekä missä vaiheessa haavoittuvuus lakkaa. olla haavoittuvainen. Kynttilöiden korkeus kaaviossa osoittaa tämän komponentin käytön suosion.

DevSecOps: SCA:n toimintaperiaatteet ja vertailu. Osa yksi

Jos siirryt haavoittuvuudet-osioon ja laajennat CVE:tä, voit lukea kuvauksen tästä haavoittuvuudesta, poistamissuositukset sekä syyn, miksi tätä komponenttia rikottiin, eli luokan olemassaolon. DiskFileitem.class.

DevSecOps: SCA:n toimintaperiaatteet ja vertailu. Osa yksi

DevSecOps: SCA:n toimintaperiaatteet ja vertailu. Osa yksi

Tehdään yhteenveto vain kolmannen osapuolen Java-komponenteista ja poistetaan js-komponentit. Suluissa ilmoitamme NVD:n ulkopuolelta löydettyjen haavoittuvuuksien lukumäärän.

Yhteensä Nexus IQ:

  • Skannatut riippuvuudet: 62
  • Haavoittuvat riippuvuudet: 16
  • Haavoittuvuuksia löydetty: 42 (8 sonatype db)

Kokonaisriippuvuustarkistus:

  • Skannatut riippuvuudet: 47
  • Haavoittuvat riippuvuudet: 13
  • Haavoittuvuuksia löydetty: 91 (14 sonatype oss)

Kokonaisriippuvuusrata:

  • Skannatut riippuvuudet: 59
  • Haavoittuvat riippuvuudet: 10
  • Haavoittuvuuksia löydetty: 51 (1 sonatype oss)

Seuraavissa vaiheissa analysoimme saatuja tuloksia ja selvitämme, mikä näistä haavoittuvuuksista on todellinen vika ja mikä väärä positiivinen.

Vastuuvapauslauseke

Tämä arvostelu ei ole kiistaton totuus. Tekijällä ei ollut tavoitetta korostaa erillistä instrumenttia muiden taustaa vasten. Katsauksen tarkoituksena oli esitellä SCA-työkalujen toimintamekanismeja ja tapoja tarkistaa niiden tulokset.

Tulosten vertailu

Ehdoin:

Väärä positiivinen tulos kolmannen osapuolen komponenttien haavoittuvuuksista on:

  • CVE-virhe tunnistetun komponentin kanssa
  • Jos esimerkiksi struts2-kehyksessä tunnistetaan haavoittuvuus ja työkalu viittaa struts-tiles -kehyksen osaan, jota tämä haavoittuvuus ei koske, tämä on väärä positiivinen.
  • CVE ei vastaa komponentin tunnistettua versiota
  • Esimerkiksi haavoittuvuus on sidottu python-versioon > 3.5 ja työkalu merkitsee version 2.7 haavoittuvaksi - tämä on väärä positiivinen, koska itse asiassa haavoittuvuus koskee vain 3.x-tuotehaaraa.
  • Kopio CVE
  • Jos SCA esimerkiksi määrittää CVE:n, joka mahdollistaa RCE:n, SCA määrittää CVE:n samalle komponentille, joka koskee Ciscon tuotteita, joihin tämä RCE vaikuttaa. Tässä tapauksessa se on väärä positiivinen.
  • Esimerkiksi jousiverkkokomponentista löydettiin CVE, jonka jälkeen SCA osoittaa samaan CVE:hen muissa Spring Frameworkin komponenteissa, kun taas CVE:llä ei ole mitään tekemistä muiden komponenttien kanssa. Tässä tapauksessa se on väärä positiivinen.

Tutkimuksen kohteena oli Open Source -projekti DVJA. Tutkimus sisälsi vain java-komponentteja (ilman js:ää).

Yhteenveto tulokset

Siirrytään suoraan tunnistettujen haavoittuvuuksien manuaalisen tarkistuksen tuloksiin. Jokaisen CVE:n täydellinen raportti löytyy liitteestä.

Yhteenvetotulokset kaikista haavoittuvuuksista:

Parametri
Nexus IQ
Riippuvuuden tarkistus
Riippuvuusrata

Kaikki haavoittuvuudet tunnistettu
42
91
51

Väärin tunnistetut haavoittuvuudet (väärä positiivinen)
2 (4.76%)
62 (68,13%)
29 (56.86%)

Asiaankuuluvia haavoittuvuuksia ei löytynyt (väärä negatiivinen)
10
20
27

Yhteenveto tuloksista komponenteittain:

Parametri
Nexus IQ
Riippuvuuden tarkistus
Riippuvuusrata

Tunnistetut komponentit yhteensä
62
47
59

Kaikki haavoittuvat komponentit
16
13
10

Väärin tunnistetut haavoittuvat komponentit (väärä positiivinen)
1
5
0

Väärin tunnistetut haavoittuvat komponentit (väärä positiivinen)
0
6
6

Rakennetaan visuaalisia kaavioita arvioimaan väärien positiivisten ja väärien negatiivisten suhdetta haavoittuvuuksien kokonaismäärään. Komponentit on merkitty vaakasuunnassa ja niissä tunnistetut haavoittuvuudet pystysuoraan.

DevSecOps: SCA:n toimintaperiaatteet ja vertailu. Osa yksi

DevSecOps: SCA:n toimintaperiaatteet ja vertailu. Osa yksi

DevSecOps: SCA:n toimintaperiaatteet ja vertailu. Osa yksi

Vertailun vuoksi Sonatype-tiimi suoritti samanlaisen tutkimuksen, joka testasi 1531 komponentin projektia OWASP-riippuvuustarkistuksen avulla. Kuten näemme, kohinan suhde oikeisiin reaktioihin on verrattavissa tuloksiimme.

DevSecOps: SCA:n toimintaperiaatteet ja vertailu. Osa yksi
Lähde: www.sonatype.com/why-precision-matters-ebook

Katsotaanpa joitain CVE:itä skannaustuloksistamme ymmärtääksemme syyn näihin tuloksiin.

lisää

№ 1

Katsotaanpa ensin joitain mielenkiintoisia kohtia Sonatype Nexus IQ:sta.

Nexus IQ huomauttaa deserialisointiin liittyvästä ongelmasta, joka liittyy kykyyn suorittaa RCE Spring Frameworkissa useita kertoja. CVE-2016-1000027 spring-webissä: 3.0.5 ensimmäistä kertaa ja CVE-2011-2894 kevään kontekstissa: 3.0.5 ja spring-core: 3.0.5. Aluksi näyttää siltä, ​​että useiden CVE:iden haavoittuvuudet ovat päällekkäisiä. Koska jos katsot CVE-2016-1000027 ja CVE-2011-2894 NVD-tietokannassa, näyttää siltä, ​​että kaikki on ilmeistä

komponentti
Haavoittuvuus

kevätverkko: 3.0.5
CVE-2016-1000027

kevät-konteksti: 3.0.5
CVE-2011-2894

jousisydän: 3.0.5
CVE-2011-2894

Kuvaus CVE-2011-2894 NVD:ltä:
DevSecOps: SCA:n toimintaperiaatteet ja vertailu. Osa yksi

Kuvaus CVE-2016-1000027 NVD:ltä:
DevSecOps: SCA:n toimintaperiaatteet ja vertailu. Osa yksi

CVE-2011-2894 itsessään on melko kuuluisa. Raportissa Valkoinen lähde 2011 tämä CVE tunnustettiin yhdeksi yleisimmistä. CVE-2016-100027:n kuvaukset ovat periaatteessa vähän NVD:ssä, ja se näyttää soveltuvan vain Spring Framework 4.1.4:ään. Katsotaanpa viite ja tässä kaikki tulee enemmän tai vähemmän selväksi. From Kestäviä artikkeleita Ymmärrämme, että haavoittuvuuden lisäksi RemoteInvocationSerializingExporter CVE-2011-2894:ssä haavoittuvuus havaitaan HttpInvokerServiceExporter. Tämän Nexus IQ kertoo meille:

DevSecOps: SCA:n toimintaperiaatteet ja vertailu. Osa yksi

NVD:ssä ei kuitenkaan ole mitään tällaista, minkä vuoksi riippuvuustarkistus ja riippuvuusrata saavat kumpikin väärän negatiivisen.

Myös CVE-2011-2894 kuvauksesta voidaan ymmärtää, että haavoittuvuus on todellakin olemassa sekä spring-context:3.0.5 että spring-core:3.0.5. Vahvistus tästä löytyy tämän haavoittuvuuden löytäneen henkilön artikkelista.

№ 2

komponentti
Haavoittuvuus
Tulos

tuet 2-ydin: 2.3.30
CVE-2016-4003
VÄÄRÄ

Jos tutkimme haavoittuvuutta CVE-2016-4003, ymmärrämme, että se korjattiin versiossa 2.3.28, mutta Nexus IQ ilmoittaa siitä meille. Haavoittuvuuden kuvauksessa on huomautus:

DevSecOps: SCA:n toimintaperiaatteet ja vertailu. Osa yksi

Toisin sanoen haavoittuvuus on olemassa vain yhdessä JRE:n vanhentuneen version kanssa, josta he päättivät varoittaa meitä. Siitä huolimatta pidämme tätä vääränä positiivisena, vaikkakaan ei pahimpana.

# 3

komponentti
Haavoittuvuus
Tulos

xwork-core: 2.3.30
CVE-2017-9804
TOSI

xwork-core: 2.3.30
CVE-2017-7672
VÄÄRÄ

Jos katsomme CVE-2017-9804 ja CVE-2017-7672 kuvauksia, ymmärrämme, että ongelma on URLValidator class, jossa CVE-2017-9804 on peräisin CVE-2017-7672:sta. Toisen haavoittuvuuden olemassaolo ei kanna muuta hyödyllistä kuormaa kuin se, että sen vakavuus on noussut High-tasoon, joten voimme pitää sitä tarpeettomana meluna.

Kaiken kaikkiaan Nexus IQ:lle ei löytynyt muita vääriä positiivisia tuloksia.

№ 4

On useita asioita, jotka erottavat älykkyysosamäärän muista ratkaisuista.

komponentti
Haavoittuvuus
Tulos

kevätverkko: 3.0.5
CVE-2020-5398
TOSI

NVD:n CVE:ssä todetaan, että se koskee vain versioita 5.2.x ennen 5.2.3, 5.1.x ennen 5.1.13 ja versioita 5.0.x ennen 5.0.16, jos katsomme kuitenkin Nexus IQ:n CVE-kuvausta , niin näemme seuraavaa:
Ilmoitus poikkeamisesta: Sonatypen tietoturvatutkimusryhmä havaitsi, että tämä haavoittuvuus otettiin käyttöön versiossa 3.0.2.RELEASE eikä versiossa 5.0.x, kuten neuvolassa todetaan.

Tätä seuraa tämän haavoittuvuuden PoC, joka ilmoittaa, että se on olemassa versiossa 3.0.5.

Väärä negatiivinen tulos lähetetään riippuvuustarkistukseen ja riippuvuusjäljitykseen.

№ 5

Katsotaanpa vääriä positiivisia tuloksia Dependency Check- ja Dependency Trackille.

Dependency Check erottuu siitä, että se heijastaa ne CVE:t, jotka koskevat koko NVD-kehystä, niihin komponentteihin, joihin nämä CVE:t eivät koske. Tämä koskee CVE-2012-0394, CVE-2013-2115, CVE-2014-0114, CVE-2015-0899, CVE-2015-2992, CVE-2016-1181, CVE-2016-1182 riippuvaisia ​​tarkistuksia. ” kohtaan struts-taglib:1.3.8 ja struts-tiles-1.3.8. Näillä komponenteilla ei ole mitään tekemistä sen kanssa, mitä on kuvattu CVE:ssä - pyyntöjen käsittely, sivun validointi ja niin edelleen. Tämä johtuu siitä, että näillä CVE:illä ja komponenteilla on yhteistä vain kehys, minkä vuoksi Dependency Check piti sitä haavoittuvuudeksi.

Sama tilanne on jousi-tx:3.0.5:n kanssa ja vastaava tilanne stuts-core:1.3.8 kanssa. struts-corelle Dependency Check ja Dependency Track ovat löytäneet paljon haavoittuvuuksia, jotka itse asiassa koskevat struts2-corea, joka on pohjimmiltaan erillinen kehys. Tässä tapauksessa Nexus IQ ymmärsi kuvan oikein ja antamissaan CVE:issä se osoitti, että struts-core oli saavuttanut käyttöiän lopun ja oli tarpeen siirtyä struts2-core-tilaan.

№ 6

Joissakin tilanteissa on epäreilua tulkita ilmeistä riippuvuustarkistus- ja riippuvuusseurantavirhettä. Erityisesti CVE-2013-4152, CVE-2013-6429, CVE-2013-6430, CVE-2013-7315, CVE-2014-0054, CVE-2014-0225, CVE-2014-0225, riippuvuustarkistus ja riippuvuustarkistus jousen ytimeen:3.0.5 johtuen kuuluu itse asiassa jousiverkkoon:3.0.5. Samaan aikaan Nexus IQ löysi myös osan näistä CVE:istä, mutta IQ tunnisti ne oikein toiselle komponentille. Koska näitä haavoittuvuuksia ei löytynyt spring-coresta, ei voida väittää, etteivätkö ne periaatteessa olisi kehyksen sisällä ja avoimen lähdekoodin työkalut osoittivat oikeutetusti nämä haavoittuvuudet (niiltä jäi vain vähän ohi).

Tulokset

Kuten näemme, tunnistettujen haavoittuvuuksien luotettavuuden määrittäminen manuaalisella tarkistuksella ei anna yksiselitteisiä tuloksia, minkä vuoksi kiistanalaisia ​​kysymyksiä syntyy. Tuloksena on, että Nexus IQ -ratkaisulla on alhaisin väärien positiivisten tulosten määrä ja suurin tarkkuus.

Ensinnäkin tämä johtuu siitä, että Sonatype-tiimi laajensi tietokantojensa NVD:n jokaisen CVE-haavoittuvuuden kuvausta, joka osoitti komponenttien tietyn version haavoittuvuudet luokkaan tai toimintoon saakka, ja suoritti lisätutkimuksia (esim. , tarkistamalla vanhempien ohjelmistoversioiden haavoittuvuudet).

Tärkeää vaikutusta tuloksiin ovat myös ne haavoittuvuudet, jotka eivät sisältyneet NVD:hen, mutta ovat kuitenkin Sonatype-tietokannassa SONATYPE-merkillä. Raportin mukaan Avoimen lähdekoodin tietoturvahaavoittuvuuksien tila 2020 45 % löydetyistä avoimen lähdekoodin haavoittuvuuksista ei ilmoiteta NVD:lle. WhiteSource-tietokannan mukaan vain 29 % kaikista avoimen lähdekoodin haavoittuvuuksista, jotka on raportoitu NVD:n ulkopuolella, päätyvät sinne, minkä vuoksi on tärkeää etsiä haavoittuvuuksia myös muista lähteistä.

Tämän seurauksena riippuvuustarkistus tuottaa paljon kohinaa, josta puuttuu joitain haavoittuvia komponentteja. Dependency Track tuottaa vähemmän kohinaa ja havaitsee suuren määrän komponentteja, mikä ei vahingoita visuaalisesti verkkokäyttöliittymän silmiä.

Käytäntö osoittaa kuitenkin, että avoimen lähdekoodin pitäisi olla ensimmäiset askeleet kohti kypsiä DevSecOpsia. Ensimmäinen asia, jota sinun tulee ajatella integroitaessa SCA:ta kehittämiseen, ovat prosessit, eli yhdessä johdon ja siihen liittyvien osastojen kanssa pohdittava, miltä ihanteellisten prosessien tulisi näyttää organisaatiossasi. Voi käydä niin, että organisaatiollesi Dependency Check tai Dependency Track kattaa aluksi kaikki liiketoiminnan tarpeet ja Enterprise-ratkaisut ovat looginen jatko kehitettävien sovellusten monimutkaisuuden vuoksi.

Liite A: Komponenttien tulokset
Symbolit:

  • Korkea – korkea ja kriittisen tason haavoittuvuudet komponentissa
  • Medium — Keskitason kriittisyystason haavoittuvuudet komponentissa
  • TOSI – Todella positiivinen ongelma
  • EPÄTOSI – Väärä positiivinen ongelma

komponentti
Nexus IQ
Riippuvuuden tarkistus
Riippuvuusrata
Tulos

dom4j: 1.6.1
Korkea
Korkea
Korkea
TOSI

log4j-ydin: 2.3
Korkea
Korkea
Korkea
TOSI

log4j: 1.2.14
Korkea
Korkea
-
TOSI

yhteiset kokoelmat: 3.1
Korkea
Korkea
Korkea
TOSI

commons-fileupload:1.3.2
Korkea
Korkea
Korkea
TOSI

commons-beanutils:1.7.0
Korkea
Korkea
Korkea
TOSI

commons-koodekki: 1:10
Keskikokoinen
-
-
TOSI

mysql-liitin-java: 5.1.42
Korkea
Korkea
Korkea
TOSI

jousi-ilmaisu: 3.0.5
Korkea
komponenttia ei löydy

TOSI

kevätverkko: 3.0.5
Korkea
komponenttia ei löydy
Korkea
TOSI

kevät-konteksti: 3.0.5
Keskikokoinen
komponenttia ei löydy
-
TOSI

jousisydän: 3.0.5
Keskikokoinen
Korkea
Korkea
TOSI

struts2-config-browser-plugin: 2.3.30
Keskikokoinen
-
-
TOSI

jousi-tx: 3.0.5
-
Korkea
-
VÄÄRÄ

tuet-ydin: 1.3.8
Korkea
Korkea
Korkea
TOSI

xwork-core: 2.3.30
Korkea
-
-
TOSI

struts2-core: 2.3.30
Korkea
Korkea
Korkea
TOSI

struts-taglib:1.3.8
-
Korkea
-
VÄÄRÄ

tuet-laatat-1.3.8
-
Korkea
-
VÄÄRÄ

Liite B: Haavoittuvuuden tulokset
Symbolit:

  • Korkea – korkea ja kriittisen tason haavoittuvuudet komponentissa
  • Medium — Keskitason kriittisyystason haavoittuvuudet komponentissa
  • TOSI – Todella positiivinen ongelma
  • EPÄTOSI – Väärä positiivinen ongelma

komponentti
Nexus IQ
Riippuvuuden tarkistus
Riippuvuusrata
Vakavuus
Tulos
Kommentti

dom4j: 1.6.1
CVE-2018-1000632
CVE-2018-1000632
CVE-2018-1000632
Korkea
TOSI

CVE-2020-10683
CVE-2020-10683
CVE-2020-10683
Korkea
TOSI

log4j-ydin: 2.3
CVE-2017-5645
CVE-2017-5645
CVE-2017-5645
Korkea
TOSI

CVE-2020-9488
CVE-2020-9488
CVE-2020-9488
Matala
TOSI

log4j: 1.2.14
CVE-2019-17571
CVE-2019-17571
-
Korkea
TOSI

-
CVE-2020-9488
-
Matala
TOSI

SONATYYPPI-2010-0053
-
-
Korkea
TOSI

yhteiset kokoelmat: 3.1
-
CVE-2015-6420
CVE-2015-6420
Korkea
VÄÄRÄ
RCE-kopiot (OSSINDEX)

-
CVE-2017-15708
CVE-2017-15708
Korkea
VÄÄRÄ
RCE-kopiot (OSSINDEX)

SONATYYPPI-2015-0002
RCE (OSSINDEX)
RCE (OSSINDEX)
Korkea
TOSI

commons-fileupload:1.3.2
CVE-2016-1000031
CVE-2016-1000031
CVE-2016-1000031
Korkea
TOSI

SONATYYPPI-2014-0173
-
-
Keskikokoinen
TOSI

commons-beanutils:1.7.0
CVE-2014-0114
CVE-2014-0114
CVE-2014-0114
Korkea
TOSI

-
CVE-2019-10086
CVE-2019-10086
Korkea
VÄÄRÄ
Haavoittuvuus koskee vain versioita 1.9.2+

commons-koodekki: 1:10
SONATYYPPI-2012-0050
-
-
Keskikokoinen
TOSI

mysql-liitin-java: 5.1.42
CVE-2018-3258
CVE-2018-3258
CVE-2018-3258
Korkea
TOSI

CVE-2019-2692
CVE-2019-2692
-
Keskikokoinen
TOSI

-
CVE-2020-2875
-
Keskikokoinen
VÄÄRÄ
Sama haavoittuvuus kuin CVE-2019-2692, mutta huomautus "hyökkäykset voivat vaikuttaa merkittävästi muihin tuotteisiin"

-
CVE-2017-15945
-
Korkea
VÄÄRÄ
Ei liity mysql-connector-javaan

-
CVE-2020-2933
-
Matala
VÄÄRÄ
Kopio tiedostosta CVE-2020-2934

CVE-2020-2934
CVE-2020-2934
-
Keskikokoinen
TOSI

jousi-ilmaisu: 3.0.5
CVE-2018-1270
komponenttia ei löydy
-
Korkea
TOSI

CVE-2018-1257
-
-
Keskikokoinen
TOSI

kevätverkko: 3.0.5
CVE-2016-1000027
komponenttia ei löydy
-
Korkea
TOSI

CVE-2014-0225
-
CVE-2014-0225
Korkea
TOSI

CVE-2011-2730
-
-
Korkea
TOSI

-
-
CVE-2013-4152
Keskikokoinen
TOSI

CVE-2018-1272
-
-
Korkea
TOSI

CVE-2020-5398
-
-
Korkea
TOSI
Havainnollistava esimerkki IQ:n puolesta: "Sonatype-tietoturvatutkimusryhmä havaitsi, että tämä haavoittuvuus otettiin käyttöön versiossa 3.0.2.RELEASE eikä versiossa 5.0.x, kuten neuvolassa todetaan."

CVE-2013-6429
-
-
Keskikokoinen
TOSI

CVE-2014-0054
-
CVE-2014-0054
Keskikokoinen
TOSI

CVE-2013-6430
-
-
Keskikokoinen
TOSI

kevät-konteksti: 3.0.5
CVE-2011-2894
komponenttia ei löydy
-
Keskikokoinen
TOSI

jousisydän: 3.0.5
-
CVE-2011-2730
CVE-2011-2730
Korkea
TOSI

CVE-2011-2894
CVE-2011-2894
CVE-2011-2894
Keskikokoinen
TOSI

-
-
CVE-2013-4152
Keskikokoinen
VÄÄRÄ
Saman haavoittuvuuden kopio kevätverkossa

-
CVE-2013-4152
-
Keskikokoinen
VÄÄRÄ
Haavoittuvuus liittyy jousiverkkokomponenttiin

-
CVE-2013-6429
CVE-2013-6429
Keskikokoinen
VÄÄRÄ
Haavoittuvuus liittyy jousiverkkokomponenttiin

-
CVE-2013-6430
-
Keskikokoinen
VÄÄRÄ
Haavoittuvuus liittyy jousiverkkokomponenttiin

-
CVE-2013-7315
CVE-2013-7315
Keskikokoinen
VÄÄRÄ
SPLIT CVE-2013-4152:sta. + Haavoittuvuus liittyy jousiverkkokomponenttiin

-
CVE-2014-0054
CVE-2014-0054
Keskikokoinen
VÄÄRÄ
Haavoittuvuus liittyy jousiverkkokomponenttiin

-
CVE-2014-0225
-
Korkea
VÄÄRÄ
Haavoittuvuus liittyy jousiverkkokomponenttiin

-
-
CVE-2014-0225
Korkea
VÄÄRÄ
Saman haavoittuvuuden kopio kevätverkossa

-
CVE-2014-1904
CVE-2014-1904
Keskikokoinen
VÄÄRÄ
Haavoittuvuus liittyy spring-web-mvc-komponenttiin

-
CVE-2014-3625
CVE-2014-3625
Keskikokoinen
VÄÄRÄ
Haavoittuvuus liittyy spring-web-mvc-komponenttiin

-
CVE-2016-9878
CVE-2016-9878
Korkea
VÄÄRÄ
Haavoittuvuus liittyy spring-web-mvc-komponenttiin

-
CVE-2018-1270
CVE-2018-1270
Korkea
VÄÄRÄ
Kevät-ilmaisu/kevät-viestit

-
CVE-2018-1271
CVE-2018-1271
Keskikokoinen
VÄÄRÄ
Haavoittuvuus liittyy spring-web-mvc-komponenttiin

-
CVE-2018-1272
CVE-2018-1272
Korkea
TOSI

CVE-2014-3578
CVE-2014-3578 (OSSINDEX)
CVE-2014-3578
Keskikokoinen
TOSI

SONATYYPPI-2015-0327
-
-
Matala
TOSI

struts2-config-browser-plugin: 2.3.30
SONATYYPPI-2016-0104
-
-
Keskikokoinen
TOSI

jousi-tx: 3.0.5
-
CVE-2011-2730
-
Korkea
VÄÄRÄ
Haavoittuvuus ei liity Spring-tx:ään

-
CVE-2011-2894
-
Korkea
VÄÄRÄ
Haavoittuvuus ei liity Spring-tx:ään

-
CVE-2013-4152
-
Keskikokoinen
VÄÄRÄ
Haavoittuvuus ei liity Spring-tx:ään

-
CVE-2013-6429
-
Keskikokoinen
VÄÄRÄ
Haavoittuvuus ei liity Spring-tx:ään

-
CVE-2013-6430
-
Keskikokoinen
VÄÄRÄ
Haavoittuvuus ei liity Spring-tx:ään

-
CVE-2013-7315
-
Keskikokoinen
VÄÄRÄ
Haavoittuvuus ei liity Spring-tx:ään

-
CVE-2014-0054
-
Keskikokoinen
VÄÄRÄ
Haavoittuvuus ei liity Spring-tx:ään

-
CVE-2014-0225
-
Korkea
VÄÄRÄ
Haavoittuvuus ei liity Spring-tx:ään

-
CVE-2014-1904
-
Keskikokoinen
VÄÄRÄ
Haavoittuvuus ei liity Spring-tx:ään

-
CVE-2014-3625
-
Keskikokoinen
VÄÄRÄ
Haavoittuvuus ei liity Spring-tx:ään

-
CVE-2016-9878
-
Korkea
VÄÄRÄ
Haavoittuvuus ei liity Spring-tx:ään

-
CVE-2018-1270
-
Korkea
VÄÄRÄ
Haavoittuvuus ei liity Spring-tx:ään

-
CVE-2018-1271
-
Keskikokoinen
VÄÄRÄ
Haavoittuvuus ei liity Spring-tx:ään

-
CVE-2018-1272
-
Keskikokoinen
VÄÄRÄ
Haavoittuvuus ei liity Spring-tx:ään

tuet-ydin: 1.3.8
-
CVE-2011-5057 (OSSINDEX)

Keskikokoinen
FASLE
Struts 2 -haavoittuvuus

-
CVE-2012-0391 (OSSINDEX)
CVE-2012-0391
Korkea
VÄÄRÄ
Struts 2 -haavoittuvuus

-
CVE-2014-0094 (OSSINDEX)
CVE-2014-0094
Keskikokoinen
VÄÄRÄ
Struts 2 -haavoittuvuus

-
CVE-2014-0113 (OSSINDEX)
CVE-2014-0113
Korkea
VÄÄRÄ
Struts 2 -haavoittuvuus

CVE-2016-1182
3VE-2016-1182
-
Korkea
TOSI

-
-
CVE-2011-5057
Keskikokoinen
VÄÄRÄ
Struts 2 -haavoittuvuus

-
CVE-2012-0392 (OSSINDEX)
CVE-2012-0392
Korkea
VÄÄRÄ
Struts 2 -haavoittuvuus

-
CVE-2012-0393 (OSSINDEX)
CVE-2012-0393
Keskikokoinen
VÄÄRÄ
Struts 2 -haavoittuvuus

CVE-2015-0899
CVE-2015-0899
-
Korkea
TOSI

-
CVE-2012-0394
CVE-2012-0394
Keskikokoinen
VÄÄRÄ
Struts 2 -haavoittuvuus

-
CVE-2012-0838 (OSSINDEX)
CVE-2012-0838
Korkea
VÄÄRÄ
Struts 2 -haavoittuvuus

-
CVE-2013-1965 (OSSINDEX)
CVE-2013-1965
Korkea
VÄÄRÄ
Struts 2 -haavoittuvuus

-
CVE-2013-1966 (OSSINDEX)
CVE-2013-1966
Korkea
FASLE
Struts 2 -haavoittuvuus

-
CVE-2013-2115
CVE-2013-2115
Korkea
FASLE
Struts 2 -haavoittuvuus

-
CVE-2013-2134 (OSSINDEX)
CVE-2013-2134
Korkea
FASLE
Struts 2 -haavoittuvuus

-
CVE-2013-2135 (OSSINDEX)
CVE-2013-2135
Korkea
FASLE
Struts 2 -haavoittuvuus

CVE-2014-0114
CVE-2014-0114
-
Korkea
TOSI

-
CVE-2015-2992
CVE-2015-2992
Keskikokoinen
VÄÄRÄ
Struts 2 -haavoittuvuus

-
CVE-2016-0785 (OSSINDEX)
CVE-2016-0785
Korkea
VÄÄRÄ
Struts 2 -haavoittuvuus

CVE-2016-1181
CVE-2016-1181
-
Korkea
TOSI

-
CVE-2016-4003 (OSSINDEX)
CVE-2016-4003
Korkea
VÄÄRÄ
Struts 2 -haavoittuvuus

xwork-core: 2.3.30
CVE-2017-9804
-
-
Korkea
TOSI

SONATYYPPI-2017-0173
-
-
Korkea
TOSI

CVE-2017-7672
-
-
Korkea
VÄÄRÄ
CVE-2017-9804:n kopio

SONATYYPPI-2016-0127
-
-
Korkea
TOSI

tuet 2-ydin: 2.3.30
-
CVE-2016-6795
CVE-2016-6795
Korkea
TOSI

-
CVE-2017-9787
CVE-2017-9787
Korkea
TOSI

-
CVE-2017-9791
CVE-2017-9791
Korkea
TOSI

-
CVE-2017-9793
-
Korkea
VÄÄRÄ
Kopio tiedostosta CVE-2018-1327

-
CVE-2017-9804
-
Korkea
TOSI

-
CVE-2017-9805
CVE-2017-9805
Korkea
TOSI

CVE-2016-4003
-
-
Keskikokoinen
VÄÄRÄ
Koskee Apache Struts 2.x -versiota 2.3.28 asti, joka on versio 2.3.30. Kuvauksen perusteella CVE on kuitenkin voimassa kaikissa Struts 2 -versioissa, jos käytössä on JRE 1.7 tai vanhempi. Ilmeisesti he päättivät jälleenvakuttaa meidät täällä, mutta se näyttää enemmän EPÄTOSI

-
CVE-2018-1327
CVE-2018-1327
Korkea
TOSI

CVE-2017-5638
CVE-2017-5638
CVE-2017-5638
Korkea
TOSI
Sama haavoittuvuus, jota Equifaxin hakkerit käyttivät hyväkseen vuonna 2017

CVE-2017-12611
CVE-2017-12611
-
Korkea
TOSI

CVE-2018-11776
CVE-2018-11776
CVE-2018-11776
Korkea
TOSI

struts-taglib:1.3.8
-
CVE-2012-0394
-
Keskikokoinen
VÄÄRÄ
Jousille 2-ytiminen

-
CVE-2013-2115
-
Korkea
VÄÄRÄ
Jousille 2-ytiminen

-
CVE-2014-0114
-
Korkea
VÄÄRÄ
Commons-beanutilleille

-
CVE-2015-0899
-
Korkea
VÄÄRÄ
Ei koske taglibiä

-
CVE-2015-2992
-
Keskikokoinen
VÄÄRÄ
Viittaa struts2-core

-
CVE-2016-1181
-
Korkea
VÄÄRÄ
Ei koske taglibiä

-
CVE-2016-1182
-
Korkea
VÄÄRÄ
Ei koske taglibiä

tuet-laatat-1.3.8
-
CVE-2012-0394
-
Keskikokoinen
VÄÄRÄ
Jousille 2-ytiminen

-
CVE-2013-2115
-
Korkea
VÄÄRÄ
Jousille 2-ytiminen

-
CVE-2014-0114
-
Korkea
VÄÄRÄ
Commons-beanutils alla

-
CVE-2015-0899
-
Korkea
VÄÄRÄ
Ei koske laattoja

-
CVE-2015-2992
-
Keskikokoinen
VÄÄRÄ
Jousille 2-ytiminen

-
CVE-2016-1181
-
Korkea
VÄÄRÄ
Ei koske taglibiä

-
CVE-2016-1182
-
Korkea
VÄÄRÄ
Ei koske taglibiä

Lähde: will.com

Lisää kommentti