DevSecOps: SCA darbības principi un salīdzinājums. Pirmā daļa

Trešo pušu programmatūras komponentu analīzes nozīme (Software Composition Analysis — SCA) izstrādes procesā pieaug līdz ar ikgadējo ziņojumu izlaišanu par atvērtā pirmkoda bibliotēku ievainojamībām, ko publicē Synopsys, Sonatype, Snyk un White Source. . Saskaņā ar ziņojumu Atvērtā koda drošības ievainojamību stāvoklis 2020 identificēto atvērtā koda ievainojamību skaits 2019. gadā, salīdzinot ar iepriekšējo gadu, palielinājās gandrīz 1.5 reizes, savukārt atvērtā pirmkoda komponentus izmanto 60% līdz 80% projektu. Neatkarīgi SCA procesi ir atsevišķa OWASP SAMM un BSIMM prakse kā brieduma rādītājs, un 2020. gada pirmajā pusē OWASP izlaida jauno OWASP programmatūras komponentu verifikācijas standartu (SCVS), nodrošinot labāko praksi, lai pārbaudītu trešo partijas sastāvdaļas piegādes ķēdē BY.

DevSecOps: SCA darbības principi un salīdzinājums. Pirmā daļa

Viens no ilustratīvākajiem gadījumiem noticis ar Equifax 2017. gada maijā. Nezināmi uzbrucēji ieguva informāciju par 143 miljoniem amerikāņu, tostarp pilnus vārdus, adreses, sociālās apdrošināšanas numurus un autovadītāja apliecības. 209 000 gadījumos dokumentos bija arī informācija par cietušo bankas kartēm. Šī noplūde radās Apache Struts 2 (CVE-2017-5638) kritiskās ievainojamības izmantošanas rezultātā, savukārt labojums tika izlaists 2017. gada martā. Uzņēmumam bija divi mēneši, lai instalētu atjauninājumu, taču neviens ar to neuztraucās.

Šajā rakstā tiks apspriests jautājums par SCA veikšanas rīka izvēli no analīzes rezultātu kvalitātes viedokļa. Tiks nodrošināts arī instrumentu funkcionāls salīdzinājums. Integrācijas process CI/CD un integrācijas iespējas tiks atstāts nākamajām publikācijām. OWASP prezentēja plašu rīku klāstu jūsu vietnē, taču pašreizējā apskatā pieskarsimies tikai populārākajam atvērtā pirmkoda rīkam Dependency Check, nedaudz mazāk zināmajai atvērtā pirmkoda platformai Dependency Track un Enterprise risinājumam Sonatype Nexus IQ. Mēs arī sapratīsim, kā šie risinājumi darbojas, un salīdzināsim iegūtos rezultātus viltus pozitīvajiem rezultātiem.

DevSecOps: SCA darbības principi un salīdzinājums. Pirmā daļa

Kā tas darbojas

Atkarības pārbaude ir utilīta (CLI, maven, jenkins modulis, ant), kas analizē projektu failus, apkopo informāciju par atkarībām (pakotnes nosaukums, grupas ID, specifikācijas nosaukums, versija...), veido CPE (Common Platform Enumeration) līniju. , pakotnes URL ( PURL) un identificē CPE/PURL ievainojamības no datu bāzēm (NVD, Sonatype OSS Index, NPM Audit API...), pēc tam izveido vienreizēju pārskatu HTML, JSON, XML formātā...

Apskatīsim, kā izskatās CPE:

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

  • daļa: Norāde, ka komponents ir saistīts ar lietojumprogrammu (a), operētājsistēmu (o), aparatūru (h) (obligāti)
  • Pārdevējs: Produkta ražotāja nosaukums (obligāts)
  • Produkts: Produkta nosaukums (obligāts)
  • Versija: Komponenta versija (novecojis vienums)
  • Update: Pakotnes atjauninājums
  • valodā: Mantotā versija (novecojis vienums)
  • Valoda: Valoda definēta RFC-5646
  • SW izdevums: Programmatūras versija
  • Mērķa SW: Programmatūras vide, kurā produkts darbojas
  • Mērķa HW: Aparatūras vide, kurā produkts darbojas
  • Cits: Informācija par piegādātāju vai produktu

CPE piemērs izskatās šādi:

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

Līnija nozīmē, ka CPE versija 2.3 apraksta lietojumprogrammas komponentu no ražotāja pivotal_software ar virsrakstu spring_framework versija 3.0.0. Ja mēs atveram ievainojamību CVE-2014-0225 NVD mēs varam redzēt, ka šis CPE ir minēts. Pirmā problēma, kurai nekavējoties jāpievērš uzmanība, ir tā, ka CVE NVD, saskaņā ar CPE, ziņo par problēmu sistēmā, nevis konkrētā komponentā. Tas ir, ja izstrādātāji ir cieši saistīti ar ietvaru un identificētā ievainojamība neietekmē tos moduļus, kurus izstrādātāji izmanto, drošības speciālistam tā vai citādi būs jāizjauc šis CVE un jādomā par atjaunināšanu.

URL izmanto arī SCA rīki. Pakotnes URL formāts ir šāds:

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

  • Shēma: Vienmēr būs “pkg”, kas norāda, ka šis ir pakotnes URL (obligāts)
  • Tips: Pakas "tips" vai iepakojuma "protokols", piemēram, maven, npm, nuget, gem, pypi utt. (obligāti)
  • Vārdtelpa: Daži nosaukuma prefiksi, piemēram, Maven grupas ID, Docker attēla īpašnieks, GitHub lietotājs vai organizācija. Pēc izvēles un atkarīgs no veida.
  • nosaukums: Pakotnes nosaukums (obligāts)
  • Versija: Pakas versija
  • Kvalificējušies: Papildu pakotnes kvalifikācijas dati, piemēram, OS, arhitektūra, izplatīšana utt. Pēc izvēles un tipam.
  • Apakšceļš: Papildu ceļš pakotnē attiecībā pret pakotnes sakni

Piemēram:

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

Atkarības trase — lokāla tīmekļa platforma, kas pieņem ģenerētu gatavu materiālu sarakstu (BOM). CycloneDX и SPDX, tas ir, gatavas specifikācijas par esošajām atkarībām. Šis ir XML fails, kurā aprakstītas atkarības — nosaukums, jaucējkodoli, pakotnes URL, izdevējs, licence. Pēc tam Dependency Track parsē MK, apskata identificētajām atkarībām pieejamos CVE no ievainojamību datu bāzes (NVD, Sonatype OSS Index...), pēc tam izveido grafikus, aprēķina metriku, regulāri atjauninot datus par komponentu ievainojamības statusu. .

Piemērs tam, kā varētu izskatīties MK XML formātā:

<?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 var izmantot ne tikai kā Dependency Track ievades parametrus, bet arī programmatūras komponentu inventarizāciju piegādes ķēdē, piemēram, programmatūras nodrošināšanai klientam. 2014. gadā ASV pat tika ierosināts likums "2014. gada kiberpiegādes ķēdes pārvaldības un pārredzamības likums", kurā bija teikts, ka, iegādājoties programmatūru, jebkura valsts. Iestādei ir jāpieprasa BOM, lai novērstu neaizsargātu komponentu izmantošanu, taču akts vēl nav stājies spēkā.

Atgriežoties pie SCA, Dependency Track ir gatavas integrācijas ar paziņojumu platformām, piemēram, Slack, un ievainojamības pārvaldības sistēmām, piemēram, Kenna Security. Ir arī vērts teikt, ka Dependency Track, cita starpā, identificē novecojušas pakotņu versijas un sniedz informāciju par licencēm (pateicoties SPDX atbalstam).

Ja mēs runājam tieši par SCA kvalitāti, tad ir būtiska atšķirība.

Dependency Track nepieņem projektu kā ievadi, bet gan MK. Tas nozīmē, ka, ja mēs vēlamies pārbaudīt projektu, mums vispirms ir jāģenerē bom.xml, piemēram, izmantojot CycloneDX. Tādējādi Dependency Track ir tieši atkarīgs no CycloneDX. Tajā pašā laikā tas ļauj pielāgot. Tā rakstīja OZON komanda CycloneDX modulis lai apkopotu MK failus Golang projektiem turpmākai skenēšanai, izmantojot Dependency Track.

Nexus IQ ir komerciāls SCA risinājums no Sonatype, kas ir daļa no Sonatype ekosistēmas, kurā ietilpst arī Nexus Repository Manager. Nexus IQ var pieņemt kā ievadi gan kara arhīvus (java projektiem), izmantojot tīmekļa saskarni vai API, gan MK, ja jūsu organizācija vēl nav pārgājusi no CycloneDX uz jaunu risinājumu. Atšķirībā no atvērtā pirmkoda risinājumiem IQ atsaucas ne tikai uz CP/PURL uz identificēto komponentu un atbilstošo ievainojamību datu bāzē, bet arī ņem vērā savu pētījumu, piemēram, ievainojamās funkcijas vai klases nosaukumu. IQ mehānismi tiks apspriesti vēlāk rezultātu analīzē.

Apkoposim dažas funkcionālās funkcijas, kā arī analizēsim atbalstītās valodas:

Valoda
Nexus IQ
Atkarības pārbaude
Atkarības trase

Java
+
+
+

C / C ++
+
+
Sākot no

C#
+
+
Sākot no

.Tīkls
+
+
+

Erlang
Sākot no
Sākot no
+

JavaScript (NodeJS)
+
+
+

PHP
+
+
+

Pitons
+
+
+

rubīns
+
+
+

Perl
Sākot no
Sākot no
Sākot no

Scala
+
+
+

Mērķis C
+
+
Sākot no

Swift kods
+
+
Sākot no

R
+
Sākot no
Sākot no

Go
+
+
+

Funkcionalitāte

Funkcionalitāte
Nexus IQ
Atkarības pārbaude
Atkarības trase

Iespēja nodrošināt, ka avota kodā izmantoto komponentu tīrība tiek pārbaudīta pēc licences
+
Sākot no
+

Iespēja skenēt un analizēt ievainojamības un licencēt Docker attēlu tīrību
+ Integrācija ar Clair
Sākot no
Sākot no

Spēja konfigurēt drošības politikas, lai izmantotu atvērtā pirmkoda bibliotēkas
+
Sākot no
Sākot no

Iespēja skenēt atvērtā pirmkoda repozitorijus, lai atrastu neaizsargātus komponentus
+ RubyGems, Maven, NPM, Nuget, Pypi, Conan, Bower, Conda, Go, p2, R, Yum, Helm, Docker, CocoaPods, Git LFS
Sākot no
+ Hex, RubyGems, Maven, NPM, Nuget, Pypi

Specializētas pētniecības grupas pieejamība
+
Sākot no
Sākot no

Slēgtā cikla darbība
+
+
+

Izmantojot trešās puses datu bāzes
+ Slēgta Sonatype datu bāze
+ Sonatype OSS, NPM Public Advisors
+ Sonatype OSS, NPM Public Advisors, RetireJS, VulnDB, atbalsts savai ievainojamību datubāzei

Iespēja filtrēt atvērtā pirmkoda komponentus, mēģinot ielādēt izstrādes ciklā saskaņā ar konfigurētām politikām
+
Sākot no
Sākot no

Ievainojamību novēršanas ieteikumi, labojumu saišu pieejamība
+
+- (atkarīgs no apraksta publiskajās datu bāzēs)
+- (atkarīgs no apraksta publiskajās datu bāzēs)

Atklāto ievainojamību sakārtošana pēc smaguma pakāpes
+
+
+

Uz lomu balstīts piekļuves modelis
+
Sākot no
+

CLI atbalsts
+
+
+- (tikai CycloneDX)

Ievainojamību paraugu ņemšana/šķirošana pēc noteiktiem kritērijiem
+
Sākot no
+

Informācijas panelis pēc lietojumprogrammas statusa
+
Sākot no
+

Pārskatu ģenerēšana PDF formātā
+
Sākot no
Sākot no

Pārskatu ģenerēšana JSONCSV formātā
+
+
Sākot no

Krievu valodas atbalsts
Sākot no
Sākot no
Sākot no

Integrācijas iespējas

Integrācija
Nexus IQ
Atkarības pārbaude
Atkarības trase

LDAP/Active Directory integrācija
+
Sākot no
+

Integrācija ar nepārtrauktas integrācijas sistēmu Bamboo
+
Sākot no
Sākot no

Integrācija ar nepārtrauktas integrācijas sistēmu TeamCity
+
Sākot no
Sākot no

Integrācija ar nepārtrauktas integrācijas sistēmu GitLab
+
+- (kā GitLab spraudnis)
+

Integrācija ar nepārtrauktas integrācijas sistēmu Jenkins
+
+
+

IDE spraudņu pieejamība
+ IntelliJ, Eclipse, Visual Studio
Sākot no
Sākot no

Atbalsts pielāgotai integrācijai, izmantojot rīka tīmekļa pakalpojumus (API).
+
Sākot no
+

Atkarības pārbaude

Pirmais sākums

Palaidīsim atkarības pārbaudi apzināti ievainojamai lietojumprogrammai DVJA.

Šim nolūkam mēs izmantosim Atkarības pārbaudes Maven spraudnis:

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

Rezultātā dependency-check-report.html tiks parādīts mērķa direktorijā.

DevSecOps: SCA darbības principi un salīdzinājums. Pirmā daļa

Atvērsim failu. Pēc kopsavilkuma informācijas par kopējo ievainojamību skaitu, mēs varam redzēt informāciju par ievainojamībām ar augstu smaguma un pārliecības līmeni, norādot paketi, CPE un CVE skaitu.

Tālāk ir sniegta sīkāka informācija, jo īpaši pamatojums, uz kura tika pieņemts lēmums (pierādījumi), tas ir, noteikta BOM.

DevSecOps: SCA darbības principi un salīdzinājums. Pirmā daļa

Tālāk seko CPE, PURL un CVE apraksts. Starp citu, ieteikumi labošanai nav iekļauti to trūkuma dēļ NVD datu bāzē.

DevSecOps: SCA darbības principi un salīdzinājums. Pirmā daļa

Lai sistemātiski skatītu skenēšanas rezultātus, varat konfigurēt Nginx ar minimāliem iestatījumiem vai nosūtīt radušos defektus uz defektu pārvaldības sistēmu, kas atbalsta savienotājus uz atkarības pārbaudi. Piemēram, Defect Dojo.

Atkarības trase

Uzstādīšana

Dependency Track savukārt ir tīmekļa platforma ar displeja grafikiem, tāpēc aktuāla problēma par defektu saglabāšanu trešās puses risinājumā šeit nerodas.
Instalēšanai atbalstītie skripti ir: Docker, WAR, Executable WAR.

Pirmais sākums

Mēs pārejam uz darbojošā pakalpojuma URL. Mēs piesakāmies, izmantojot admin/admin, mainām pieteikumvārdu un paroli un pēc tam nonākam informācijas panelī. Nākamā lieta, ko mēs darīsim, ir izveidot projektu Java testa lietojumprogrammai Sākums/Projekti → Izveidot projektu . Ņemsim par piemēru DVJA.

DevSecOps: SCA darbības principi un salīdzinājums. Pirmā daļa

Tā kā Dependency Track var pieņemt tikai MK kā ievadi, šī MK ir jāizgūst. Izmantosim priekšrocības CycloneDX Maven spraudnis:

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

Mēs iegūstam bom.xml un ielādējam failu izveidotajā projektā DVJA → Atkarības → Augšupielādēt MK.

Dosimies uz Administrēšana → Analizatori. Mēs saprotam, ka mums ir iespējots tikai iekšējais analizators, kas ietver NVD. Savienosim arī Sonatype OSS Index.

DevSecOps: SCA darbības principi un salīdzinājums. Pirmā daļa

Tādējādi mēs iegūstam šādu mūsu projekta attēlu:

DevSecOps: SCA darbības principi un salīdzinājums. Pirmā daļa

Sarakstā varat atrast arī vienu ievainojamību, kas attiecas uz Sonatype OSS:

DevSecOps: SCA darbības principi un salīdzinājums. Pirmā daļa

Galvenā vilšanās bija tā, ka Dependency Track vairs nepieņem Dependency Check xml pārskatus. Atkarības pārbaudes integrācijas jaunākās atbalstītās versijas bija 1.0.0–4.0.2, kamēr es testēju 5.3.2.

šeit ir Video (un šeit), kad tas vēl bija iespējams.

Nexus IQ

Pirmais sākums

Nexus IQ instalēšana nāk no arhīviem dokumentācija, taču šiem nolūkiem mēs izveidojām Docker attēlu.

Pēc pieteikšanās konsolē jums ir jāizveido organizācija un lietojumprogramma.

DevSecOps: SCA darbības principi un salīdzinājums. Pirmā daļa

DevSecOps: SCA darbības principi un salīdzinājums. Pirmā daļa

DevSecOps: SCA darbības principi un salīdzinājums. Pirmā daļa

Kā redzat, iestatīšana IQ gadījumā ir nedaudz sarežģītāka, jo mums ir arī jāizveido politikas, kas ir piemērojamas dažādiem “posmiem” (izstrādātājs, būve, stadija, izlaišana). Tas ir nepieciešams, lai bloķētu neaizsargātos komponentus, kad tie pārvietojas pa konveijeru tuvāk ražošanai, vai bloķētu tos, tiklīdz tie nonāk Nexus Repo, kad izstrādātāji tos lejupielādējuši.

Lai sajustu atšķirību starp atvērto avotu un uzņēmumu, veiksim to pašu skenēšanu, izmantojot Nexus IQ tādā pašā veidā Maven spraudnis, iepriekš izveidojot testa lietojumprogrammu NexusIQ saskarnē 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>

Sekojiet ģenerētā pārskata vietrādim URL IQ tīmekļa saskarnē:

DevSecOps: SCA darbības principi un salīdzinājums. Pirmā daļa

Šeit jūs varat redzēt visus politikas pārkāpumus, kas norāda uz dažādiem nozīmīguma līmeņiem (no informācijas līdz drošībai kritiski). Burts D blakus komponentam nozīmē, ka komponents ir tiešā atkarība, un burts T blakus komponentam nozīmē, ka komponents ir pārejas atkarība, tas ir, tas ir pārejošs.

Starp citu, ziņojums Atvērtā pirmkoda drošības stāvokļa ziņojums 2020. gadā Snyk ziņo, ka vairāk nekā 70% atvērtā pirmkoda ievainojamību, kas atklātas Node.js, Java un Ruby, ir pārejošas atkarībās.

Ja mēs atveram kādu no Nexus IQ politikas pārkāpumiem, mēs varam redzēt komponenta aprakstu, kā arī versiju diagrammu, kas parāda pašreizējās versijas atrašanās vietu laika grafikā, kā arī to, kurā brīdī ievainojamība beidz darboties. būt neaizsargātam. Sveču augstums grafikā parāda šī komponenta izmantošanas popularitāti.

DevSecOps: SCA darbības principi un salīdzinājums. Pirmā daļa

Ja dodaties uz ievainojamību sadaļu un izvēršat CVE, varat izlasīt šīs ievainojamības aprakstu, ieteikumus tās novēršanai, kā arī iemeslu, kāpēc šis komponents tika pārkāpts, tas ir, klases klātbūtne. DiskFileitem.class.

DevSecOps: SCA darbības principi un salīdzinājums. Pirmā daļa

DevSecOps: SCA darbības principi un salīdzinājums. Pirmā daļa

Apkoposim tikai tos, kas saistīti ar trešās puses Java komponentiem, noņemot js komponentus. Iekavās mēs norādām ievainojamību skaitu, kas tika atrastas ārpus NVD.

Kopējais Nexus IQ:

  • Skenētās atkarības: 62
  • Neaizsargātas atkarības: 16
  • Atrastās ievainojamības: 42 (8 sonatype db)

Kopējā atkarības pārbaude:

  • Skenētās atkarības: 47
  • Neaizsargātas atkarības: 13
  • Atrastās ievainojamības: 91 (14 sonatype oss)

Kopējā atkarības izsekošana:

  • Skenētās atkarības: 59
  • Neaizsargātas atkarības: 10
  • Atrastās ievainojamības: 51 (1 sonatype oss)

Nākamajās darbībās mēs analizēsim iegūtos rezultātus un noskaidrosim, kura no šīm ievainojamībām ir reāls defekts un kura ir kļūdaini pozitīva.

Atruna

Šis pārskats nav neapstrīdama patiesība. Autorei nebija mērķa izcelt atsevišķu instrumentu uz citu fona. Pārskata mērķis bija parādīt SCA rīku darbības mehānismus un veidus, kā pārbaudīt to rezultātus.

Rezultātu salīdzinājums

Noteikumi un nosacījumi:

Kļūdaini pozitīvs rezultāts trešās puses komponentu ievainojamībai ir:

  • CVE neatbilstība identificētajam komponentam
  • Piemēram, ja struts2 ietvarā ir identificēta ievainojamība un rīks norāda uz struts-tiles ietvara komponentu, uz kuru šī ievainojamība neattiecas, tas ir kļūdaini pozitīvs.
  • CVE neatbilstība identificētajai komponenta versijai
  • Piemēram, ievainojamība ir saistīta ar python versiju > 3.5, un rīks atzīmē versiju 2.7 kā ievainojamu — tas ir kļūdaini pozitīvs rādītājs, jo faktiski ievainojamība attiecas tikai uz 3.x produkta atzaru.
  • CVE dublikāts
  • Piemēram, ja SCA norāda CVE, kas iespējo RCE, tad SCA norāda CVE šim pašam komponentam, kas attiecas uz Cisco produktiem, kurus ietekmē šis RCE. Šajā gadījumā tas būs kļūdaini pozitīvs.
  • Piemēram, pavasara tīmekļa komponentā tika atrasts CVE, pēc kura SCA norāda uz to pašu CVE citos Spring Framework komponentos, savukārt CVE nav nekāda sakara ar citiem komponentiem. Šajā gadījumā tas būs kļūdaini pozitīvs.

Pētījuma objekts bija Open Source projekts DVJA. Pētījumā tika iesaistīti tikai java komponenti (bez js).

Rezultātu kopsavilkums

Pāriesim tieši uz identificēto ievainojamību manuālās pārskatīšanas rezultātiem. Pilnu pārskatu par katru CVE var atrast pielikumā.

Kopsavilkuma rezultāti par visām ievainojamībām:

Parametrs
Nexus IQ
Atkarības pārbaude
Atkarības trase

Kopējais identificēto ievainojamību skaits
42
91
51

Nepareizi identificētas ievainojamības (viltus pozitīva)
2 (4.76%)
62 (68,13%)
29 (56.86%)

Nav atrasta neviena atbilstoša ievainojamība (viltus negatīvs)
10
20
27

Rezultātu kopsavilkums pa komponentiem:

Parametrs
Nexus IQ
Atkarības pārbaude
Atkarības trase

Kopējais identificēto komponentu skaits
62
47
59

Kopējais neaizsargāto komponentu skaits
16
13
10

Nepareizi identificētas neaizsargātās sastāvdaļas (viltus pozitīvs)
1
5
0

Nepareizi identificētas neaizsargātās sastāvdaļas (viltus pozitīvs)
0
6
6

Izveidosim vizuālus grafikus, lai novērtētu viltus pozitīvo un viltus negatīvo attiecību pret kopējo ievainojamību skaitu. Komponenti ir atzīmēti horizontāli, un tajās identificētās ievainojamības ir atzīmētas vertikāli.

DevSecOps: SCA darbības principi un salīdzinājums. Pirmā daļa

DevSecOps: SCA darbības principi un salīdzinājums. Pirmā daļa

DevSecOps: SCA darbības principi un salīdzinājums. Pirmā daļa

Salīdzinājumam līdzīgu pētījumu veica Sonatype komanda, pārbaudot 1531 komponenta projektu, izmantojot OWASP atkarības pārbaudi. Kā redzam, trokšņa attiecība pret pareizajām atbildēm ir salīdzināma ar mūsu rezultātiem.

DevSecOps: SCA darbības principi un salīdzinājums. Pirmā daļa
Avots: www.sonatype.com/why-precision-matters-ebook

Apskatīsim dažus CVE no mūsu skenēšanas rezultātiem, lai saprastu šo rezultātu iemeslu.

vairāk

№ 1

Vispirms apskatīsim dažus interesantus punktus par Sonatype Nexus IQ.

Nexus IQ norāda uz problēmu, kas saistīta ar deserializāciju ar spēju vairākas reizes veikt RCE Spring Framework ietvaros. CVE-2016-1000027 pavasara tīmeklī: 3.0.5 pirmo reizi un CVE-2011-2894 pavasara kontekstā: 3.0.5 un spring-core: 3.0.5. Sākumā šķiet, ka vairākos CVE ir ievainojamība. Jo, paskatoties NVD datubāzē CVE-2016-1000027 un CVE-2011-2894, šķiet, ka viss ir acīmredzams

komponents
Neaizsargātība

pavasaris-tīmeklis:3.0.5
CVE-2016-1000027

pavasaris-konteksts:3.0.5
CVE-2011-2894

atsperes kodols: 3.0.5
CVE-2011-2894

Apraksts CVE-2011-2894 no NVD:
DevSecOps: SCA darbības principi un salīdzinājums. Pirmā daļa

Apraksts CVE-2016-1000027 no NVD:
DevSecOps: SCA darbības principi un salīdzinājums. Pirmā daļa

CVE-2011-2894 pati par sevi ir diezgan slavena. Ziņojumā Baltais avots 2011 šis CVE tika atzīts par vienu no visizplatītākajiem. CVE-2016-100027 aprakstu NVD principā ir maz, un šķiet, ka tas attiecas tikai uz Spring Framework 4.1.4. Apskatīsim atsauce un te viss kļūst vairāk vai mazāk skaidrs. No Izturīgi raksti Mēs saprotam, ka papildus ievainojamībai RemoteInvocationSerializingExporter CVE-2011-2894 ievainojamība ir novērota HttpInvokerServiceExporter. Lūk, ko Nexus IQ mums stāsta:

DevSecOps: SCA darbības principi un salīdzinājums. Pirmā daļa

Tomēr NVD nekas tamlīdzīgs nav, tāpēc atkarības pārbaude un atkarības izsekojums saņem kļūdaini negatīvu informāciju.

Arī no CVE-2011-2894 apraksta var saprast, ka ievainojamība patiešām ir gan pavasara kontekstā: 3.0.5, gan pavasara kodolā: 3.0.5. Apstiprinājumu tam var atrast rakstā no personas, kura atrada šo ievainojamību.

№ 2

komponents
Neaizsargātība
Piedzīvojiet efektīvu rezultātu spēku

statņi2-kodolu: 2.3.30
CVE-2016-4003
FALSE

Ja izpētīsim ievainojamību CVE-2016-4003, sapratīsim, ka tā tika novērsta 2.3.28 versijā, tomēr Nexus IQ mums par to ziņo. Ievainojamības aprakstā ir piezīme:

DevSecOps: SCA darbības principi un salīdzinājums. Pirmā daļa

Tas nozīmē, ka ievainojamība pastāv tikai kopā ar novecojušu JRE versiju, par kuru viņi nolēma mūs brīdināt. Tomēr mēs to uzskatām par viltus pozitīvu, lai gan ne par sliktāko.

№ 3

komponents
Neaizsargātība
Piedzīvojiet efektīvu rezultātu spēku

xwork-core: 2.3.30
CVE-2017-9804
TRUE

xwork-core: 2.3.30
CVE-2017-7672
FALSE

Ja aplūkosim CVE-2017-9804 un CVE-2017-7672 aprakstus, mēs sapratīsim, ka problēma ir URLValidator class, ar CVE-2017-9804, kas izriet no CVE-2017-7672. Otrās ievainojamības klātbūtnei nav nekādas lietderīgas slodzes, izņemot to, ka tās smagums ir palielinājies līdz High, tāpēc mēs to varam uzskatīt par nevajadzīgu troksni.

Kopumā Nexus IQ netika atrasti citi viltus pozitīvi rezultāti.

№ 4

Ir vairākas lietas, kas izceļ IQ no citiem risinājumiem.

komponents
Neaizsargātība
Piedzīvojiet efektīvu rezultātu spēku

pavasaris-tīmeklis:3.0.5
CVE-2020-5398
TRUE

CVE NVD norāda, ka tas attiecas tikai uz versijām 5.2.x pirms 5.2.3, 5.1.x līdz 5.1.13 un versijām 5.0.x pirms 5.0.16, tomēr, ja skatāmies uz CVE aprakstu Nexus IQ , tad mēs redzēsim sekojošo:
Konsultatīvas novirzes paziņojums: Sonatype drošības izpētes grupa atklāja, ka šī ievainojamība tika ieviesta versijā 3.0.2.RELEASE, nevis 5.0.x, kā norādīts ieteikumā.

Tam seko šīs ievainojamības PoC, kas norāda, ka tā ir 3.0.5 versijā.

Viltus negatīvs tiek nosūtīts uz atkarības pārbaudi un atkarības izsekošanu.

№ 5

Apskatīsim atkarības pārbaudes un atkarības izsekošanas kļūdaini pozitīvu rezultātu.

Atkarības pārbaude izceļas ar to, ka tā atspoguļo tos CVE, kas attiecas uz visu ietvaru NVD, tiem komponentiem, uz kuriem šie CVE neattiecas. Tas attiecas uz CVE-2012-0394, CVE-2013-2115, CVE-2014-0114, CVE-2015-0899, CVE-2015-2992, CVE-2016-1181, CVE-2016-1182, kas ir atkarīgas no pārbaudes. ” uz struts-taglib:1.3.8 un struts-tiles-1.3.8. Šiem komponentiem nav nekāda sakara ar CVE aprakstīto – pieprasījumu apstrāde, lapas validācija utt. Tas ir saistīts ar faktu, ka šiem CVE un komponentiem kopīgs ir tikai ietvars, tāpēc atkarības pārbaude to uzskatīja par ievainojamību.

Tāda pati situācija ir ar spring-tx:3.0.5, un līdzīga situācija ar statņiem-core:1.3.8. Attiecībā uz struts-core, Dependency Check un Dependency Track ir atrastas daudzas ievainojamības, kas faktiski ir piemērojamas struts2-core, kas būtībā ir atsevišķs ietvars. Šajā gadījumā Nexus IQ pareizi saprata attēlu un tā izdotajos CVE norādīja, ka struts-core ir sasniedzis mūža beigas un nepieciešams pāriet uz struts2-core.

№ 6

Dažās situācijās ir negodīgi interpretēt acīmredzamu atkarības pārbaudes un atkarības izsekošanas kļūdu. Jo īpaši CVE-2013-4152, CVE-2013-6429, CVE-2013-6430, CVE-2013-7315, CVE-2014-0054, CVE-2014-0225, CVE-2014-0225, kuru atkarības pārbaude un atkarība attiecināts uz spring-core:3.0.5 faktiski pieder spring-web:3.0.5. Tajā pašā laikā dažus no šiem CVE atrada arī Nexus IQ, taču IQ tos pareizi identificēja ar citu komponentu. Tā kā šīs ievainojamības netika atrastas Spring-core, nevar apgalvot, ka tās principā neietilpst sistēmā, un atvērtā pirmkoda rīki pareizi norādīja uz šīm ievainojamībām (tās tikai nedaudz palaida garām).

Atzinumi

Kā redzam, identificēto ievainojamību uzticamības noteikšana manuāli pārskatot nedod viennozīmīgus rezultātus, tāpēc rodas strīdīgi jautājumi. Rezultātā Nexus IQ risinājumam ir viszemākais viltus pozitīvo rezultātu līmenis un visaugstākā precizitāte.

Pirmkārt, tas ir saistīts ar faktu, ka Sonatype komanda paplašināja katras CVE ievainojamības aprakstu no NVD savās datubāzēs, norādot ievainojamības konkrētai komponentu versijai līdz pat klasei vai funkcijai, veicot papildu pētījumus (piemēram, , pārbaudot vecāku programmatūras versiju ievainojamības).

Būtisku ietekmi uz rezultātiem spēlē arī tās ievainojamības, kuras nebija iekļautas NVD, bet tomēr atrodas Sonatype datubāzē ar SONATYPE zīmi. Saskaņā ar ziņojumu Atvērtā koda drošības ievainojamību stāvoklis 2020 Par 45% atklāto atvērtā koda ievainojamību netiek ziņots NVD. Saskaņā ar WhiteSource datubāzi, tikai 29% no visām atklātā pirmkoda ievainojamībām, par kurām ziņots ārpus NVD, tiek publicētas tur, tāpēc ir svarīgi meklēt ievainojamības arī citos avotos.

Rezultātā atkarības pārbaude rada daudz trokšņu, un tajā trūkst dažu neaizsargātu komponentu. Dependency Track rada mazāk trokšņa un nosaka lielu skaitu komponentu, kas tīmekļa saskarnē vizuāli nekaitē acīm.

Tomēr prakse rāda, ka atvērtajam pirmkodam vajadzētu kļūt par pirmajiem soļiem ceļā uz nobriedušu DevSecOps. Pirmā lieta, par ko vajadzētu padomāt, integrējot SCA attīstībā, ir procesi, proti, kopā ar vadību un saistītajām nodaļām domāt par to, kādiem vajadzētu izskatīties ideāliem procesiem jūsu organizācijā. Var izrādīties, ka jūsu organizācijai sākotnēji Dependency Check vai Dependency Track aptvers visas biznesa vajadzības, un uzņēmuma risinājumi būs loģisks turpinājums, jo tiek izstrādātas arvien sarežģītākas lietojumprogrammas.

A pielikums: komponentu rezultāti
leģenda:

  • Augsta — augsta un kritiska līmeņa ievainojamība komponentā
  • Vidējs — vidēja kritiskuma līmeņa ievainojamības komponentā
  • TRUE — patiesi pozitīva problēma
  • FALSE — kļūdaini pozitīva problēma

komponents
Nexus IQ
Atkarības pārbaude
Atkarības trase
Piedzīvojiet efektīvu rezultātu spēku

dom4j: 1.6.1
augsts
augsts
augsts
TRUE

log4j kodols: 2.3
augsts
augsts
augsts
TRUE

log4j: 1.2.14
augsts
augsts
Sākot no
TRUE

kopīgās kolekcijas:3.1
augsts
augsts
augsts
TRUE

commons-fileupload:1.3.2
augsts
augsts
augsts
TRUE

commons-beanutils:1.7.0
augsts
augsts
augsts
TRUE

commons-kodeks: 1:10
vidējs
Sākot no
Sākot no
TRUE

mysql-connector-java: 5.1.42
augsts
augsts
augsts
TRUE

atsperes izteiksme:3.0.5
augsts
komponents nav atrasts

TRUE

pavasaris-tīmeklis:3.0.5
augsts
komponents nav atrasts
augsts
TRUE

pavasaris-konteksts:3.0.5
vidējs
komponents nav atrasts
Sākot no
TRUE

atsperes kodols: 3.0.5
vidējs
augsts
augsts
TRUE

struts2-config-browser-plugin:2.3.30
vidējs
Sākot no
Sākot no
TRUE

atspere-tx: 3.0.5
Sākot no
augsts
Sākot no
FALSE

statņi-kodols:1.3.8
augsts
augsts
augsts
TRUE

xwork-core: 2.3.30
augsts
Sākot no
Sākot no
TRUE

statņi 2 kodolu: 2.3.30
augsts
augsts
augsts
TRUE

struts-taglib:1.3.8
Sākot no
augsts
Sākot no
FALSE

statņi-flīzes-1.3.8
Sākot no
augsts
Sākot no
FALSE

B pielikums: Ievainojamības rezultāti
leģenda:

  • Augsta — augsta un kritiska līmeņa ievainojamība komponentā
  • Vidējs — vidēja kritiskuma līmeņa ievainojamības komponentā
  • TRUE — patiesi pozitīva problēma
  • FALSE — kļūdaini pozitīva problēma

komponents
Nexus IQ
Atkarības pārbaude
Atkarības trase
Smagums
Piedzīvojiet efektīvu rezultātu spēku
Komentēt

dom4j: 1.6.1
CVE-2018-1000632
CVE-2018-1000632
CVE-2018-1000632
augsts
TRUE

CVE-2020-10683
CVE-2020-10683
CVE-2020-10683
augsts
TRUE

log4j kodols: 2.3
CVE-2017-5645
CVE-2017-5645
CVE-2017-5645
augsts
TRUE

CVE-2020-9488
CVE-2020-9488
CVE-2020-9488
Zems
TRUE

log4j: 1.2.14
CVE-2019-17571
CVE-2019-17571
Sākot no
augsts
TRUE

Sākot no
CVE-2020-9488
Sākot no
Zems
TRUE

SONATĪPS-2010-0053
Sākot no
Sākot no
augsts
TRUE

kopīgās kolekcijas:3.1
Sākot no
CVE-2015-6420
CVE-2015-6420
augsts
FALSE
RCE dublikāti (OSSINDEX)

Sākot no
CVE-2017-15708
CVE-2017-15708
augsts
FALSE
RCE dublikāti (OSSINDEX)

SONATĪPS-2015-0002
RCE (OSSINDEX)
RCE (OSSINDEX)
augsts
TRUE

commons-fileupload:1.3.2
CVE-2016-1000031
CVE-2016-1000031
CVE-2016-1000031
augsts
TRUE

SONATĪPS-2014-0173
Sākot no
Sākot no
vidējs
TRUE

commons-beanutils:1.7.0
CVE-2014-0114
CVE-2014-0114
CVE-2014-0114
augsts
TRUE

Sākot no
CVE-2019-10086
CVE-2019-10086
augsts
FALSE
Ievainojamība attiecas tikai uz versijām 1.9.2+

commons-kodeks: 1:10
SONATĪPS-2012-0050
Sākot no
Sākot no
vidējs
TRUE

mysql-connector-java: 5.1.42
CVE-2018-3258
CVE-2018-3258
CVE-2018-3258
augsts
TRUE

CVE-2019-2692
CVE-2019-2692
Sākot no
vidējs
TRUE

Sākot no
CVE-2020-2875
Sākot no
vidējs
FALSE
Tāda pati ievainojamība kā CVE-2019-2692, taču ar piezīmi “uzbrukumi var būtiski ietekmēt papildu produktus”

Sākot no
CVE-2017-15945
Sākot no
augsts
FALSE
Neattiecas uz mysql-connector-java

Sākot no
CVE-2020-2933
Sākot no
Zems
FALSE
CVE-2020-2934 dublikāts

CVE-2020-2934
CVE-2020-2934
Sākot no
vidējs
TRUE

atsperes izteiksme:3.0.5
CVE-2018-1270
komponents nav atrasts
Sākot no
augsts
TRUE

CVE-2018-1257
Sākot no
Sākot no
vidējs
TRUE

pavasaris-tīmeklis:3.0.5
CVE-2016-1000027
komponents nav atrasts
Sākot no
augsts
TRUE

CVE-2014-0225
Sākot no
CVE-2014-0225
augsts
TRUE

CVE-2011-2730
Sākot no
Sākot no
augsts
TRUE

Sākot no
Sākot no
CVE-2013-4152
vidējs
TRUE

CVE-2018-1272
Sākot no
Sākot no
augsts
TRUE

CVE-2020-5398
Sākot no
Sākot no
augsts
TRUE
Ilustratīvs piemērs par labu IQ: “Sonatype drošības izpētes komanda atklāja, ka šī ievainojamība tika ieviesta versijā 3.0.2.RELEASE, nevis 5.0.x, kā norādīts ieteikumā.”

CVE-2013-6429
Sākot no
Sākot no
vidējs
TRUE

CVE-2014-0054
Sākot no
CVE-2014-0054
vidējs
TRUE

CVE-2013-6430
Sākot no
Sākot no
vidējs
TRUE

pavasaris-konteksts:3.0.5
CVE-2011-2894
komponents nav atrasts
Sākot no
vidējs
TRUE

atsperes kodols: 3.0.5
Sākot no
CVE-2011-2730
CVE-2011-2730
augsts
TRUE

CVE-2011-2894
CVE-2011-2894
CVE-2011-2894
vidējs
TRUE

Sākot no
Sākot no
CVE-2013-4152
vidējs
FALSE
Tās pašas ievainojamības dublikāts pavasara tīmeklī

Sākot no
CVE-2013-4152
Sākot no
vidējs
FALSE
Ievainojamība ir saistīta ar atsperes tīmekļa komponentu

Sākot no
CVE-2013-6429
CVE-2013-6429
vidējs
FALSE
Ievainojamība ir saistīta ar atsperes tīmekļa komponentu

Sākot no
CVE-2013-6430
Sākot no
vidējs
FALSE
Ievainojamība ir saistīta ar atsperes tīmekļa komponentu

Sākot no
CVE-2013-7315
CVE-2013-7315
vidējs
FALSE
SPLIT no CVE-2013-4152. + Ievainojamība ir saistīta ar pavasara tīmekļa komponentu

Sākot no
CVE-2014-0054
CVE-2014-0054
vidējs
FALSE
Ievainojamība ir saistīta ar atsperes tīmekļa komponentu

Sākot no
CVE-2014-0225
Sākot no
augsts
FALSE
Ievainojamība ir saistīta ar atsperes tīmekļa komponentu

Sākot no
Sākot no
CVE-2014-0225
augsts
FALSE
Tās pašas ievainojamības dublikāts pavasara tīmeklī

Sākot no
CVE-2014-1904
CVE-2014-1904
vidējs
FALSE
Ievainojamība ir saistīta ar komponentu spring-web-mvc

Sākot no
CVE-2014-3625
CVE-2014-3625
vidējs
FALSE
Ievainojamība ir saistīta ar komponentu spring-web-mvc

Sākot no
CVE-2016-9878
CVE-2016-9878
augsts
FALSE
Ievainojamība ir saistīta ar komponentu spring-web-mvc

Sākot no
CVE-2018-1270
CVE-2018-1270
augsts
FALSE
Pavasara izteiksmei/pavasara vēstījumiem

Sākot no
CVE-2018-1271
CVE-2018-1271
vidējs
FALSE
Ievainojamība ir saistīta ar komponentu spring-web-mvc

Sākot no
CVE-2018-1272
CVE-2018-1272
augsts
TRUE

CVE-2014-3578
CVE-2014-3578 (OSSINDEX)
CVE-2014-3578
vidējs
TRUE

SONATĪPS-2015-0327
Sākot no
Sākot no
Zems
TRUE

struts2-config-browser-plugin:2.3.30
SONATĪPS-2016-0104
Sākot no
Sākot no
vidējs
TRUE

atspere-tx: 3.0.5
Sākot no
CVE-2011-2730
Sākot no
augsts
FALSE
Ievainojamība nav raksturīga Spring-tx

Sākot no
CVE-2011-2894
Sākot no
augsts
FALSE
Ievainojamība nav raksturīga Spring-tx

Sākot no
CVE-2013-4152
Sākot no
vidējs
FALSE
Ievainojamība nav raksturīga Spring-tx

Sākot no
CVE-2013-6429
Sākot no
vidējs
FALSE
Ievainojamība nav raksturīga Spring-tx

Sākot no
CVE-2013-6430
Sākot no
vidējs
FALSE
Ievainojamība nav raksturīga Spring-tx

Sākot no
CVE-2013-7315
Sākot no
vidējs
FALSE
Ievainojamība nav raksturīga Spring-tx

Sākot no
CVE-2014-0054
Sākot no
vidējs
FALSE
Ievainojamība nav raksturīga Spring-tx

Sākot no
CVE-2014-0225
Sākot no
augsts
FALSE
Ievainojamība nav raksturīga Spring-tx

Sākot no
CVE-2014-1904
Sākot no
vidējs
FALSE
Ievainojamība nav raksturīga Spring-tx

Sākot no
CVE-2014-3625
Sākot no
vidējs
FALSE
Ievainojamība nav raksturīga Spring-tx

Sākot no
CVE-2016-9878
Sākot no
augsts
FALSE
Ievainojamība nav raksturīga Spring-tx

Sākot no
CVE-2018-1270
Sākot no
augsts
FALSE
Ievainojamība nav raksturīga Spring-tx

Sākot no
CVE-2018-1271
Sākot no
vidējs
FALSE
Ievainojamība nav raksturīga Spring-tx

Sākot no
CVE-2018-1272
Sākot no
vidējs
FALSE
Ievainojamība nav raksturīga Spring-tx

statņi-kodols:1.3.8
Sākot no
CVE-2011-5057 (OSSINDEX)

vidējs
FASLE
Neaizsargātība pret Struts 2

Sākot no
CVE-2012-0391 (OSSINDEX)
CVE-2012-0391
augsts
FALSE
Neaizsargātība pret Struts 2

Sākot no
CVE-2014-0094 (OSSINDEX)
CVE-2014-0094
vidējs
FALSE
Neaizsargātība pret Struts 2

Sākot no
CVE-2014-0113 (OSSINDEX)
CVE-2014-0113
augsts
FALSE
Neaizsargātība pret Struts 2

CVE-2016-1182
3VE-2016-1182
Sākot no
augsts
TRUE

Sākot no
Sākot no
CVE-2011-5057
vidējs
FALSE
Neaizsargātība pret Struts 2

Sākot no
CVE-2012-0392 (OSSINDEX)
CVE-2012-0392
augsts
FALSE
Neaizsargātība pret Struts 2

Sākot no
CVE-2012-0393 (OSSINDEX)
CVE-2012-0393
vidējs
FALSE
Neaizsargātība pret Struts 2

CVE-2015-0899
CVE-2015-0899
Sākot no
augsts
TRUE

Sākot no
CVE-2012-0394
CVE-2012-0394
vidējs
FALSE
Neaizsargātība pret Struts 2

Sākot no
CVE-2012-0838 (OSSINDEX)
CVE-2012-0838
augsts
FALSE
Neaizsargātība pret Struts 2

Sākot no
CVE-2013-1965 (OSSINDEX)
CVE-2013-1965
augsts
FALSE
Neaizsargātība pret Struts 2

Sākot no
CVE-2013-1966 (OSSINDEX)
CVE-2013-1966
augsts
FASLE
Neaizsargātība pret Struts 2

Sākot no
CVE-2013-2115
CVE-2013-2115
augsts
FASLE
Neaizsargātība pret Struts 2

Sākot no
CVE-2013-2134 (OSSINDEX)
CVE-2013-2134
augsts
FASLE
Neaizsargātība pret Struts 2

Sākot no
CVE-2013-2135 (OSSINDEX)
CVE-2013-2135
augsts
FASLE
Neaizsargātība pret Struts 2

CVE-2014-0114
CVE-2014-0114
Sākot no
augsts
TRUE

Sākot no
CVE-2015-2992
CVE-2015-2992
vidējs
FALSE
Neaizsargātība pret Struts 2

Sākot no
CVE-2016-0785 (OSSINDEX)
CVE-2016-0785
augsts
FALSE
Neaizsargātība pret Struts 2

CVE-2016-1181
CVE-2016-1181
Sākot no
augsts
TRUE

Sākot no
CVE-2016-4003 (OSSINDEX)
CVE-2016-4003
augsts
FALSE
Neaizsargātība pret Struts 2

xwork-core: 2.3.30
CVE-2017-9804
Sākot no
Sākot no
augsts
TRUE

SONATĪPS-2017-0173
Sākot no
Sākot no
augsts
TRUE

CVE-2017-7672
Sākot no
Sākot no
augsts
FALSE
CVE-2017-9804 dublikāts

SONATĪPS-2016-0127
Sākot no
Sākot no
augsts
TRUE

statņi2-kodolu: 2.3.30
Sākot no
CVE-2016-6795
CVE-2016-6795
augsts
TRUE

Sākot no
CVE-2017-9787
CVE-2017-9787
augsts
TRUE

Sākot no
CVE-2017-9791
CVE-2017-9791
augsts
TRUE

Sākot no
CVE-2017-9793
Sākot no
augsts
FALSE
CVE-2018-1327 dublikāts

Sākot no
CVE-2017-9804
Sākot no
augsts
TRUE

Sākot no
CVE-2017-9805
CVE-2017-9805
augsts
TRUE

CVE-2016-4003
Sākot no
Sākot no
vidējs
FALSE
Attiecas uz Apache Struts 2.x līdz 2.3.28, kas ir versija 2.3.30. Tomēr, pamatojoties uz aprakstu, CVE ir derīga jebkurai Struts 2 versijai, ja tiek izmantota JRE 1.7 vai jaunāka versija. Acīmredzot viņi nolēma mūs šeit pārapdrošināt, bet tas vairāk izskatās pēc FALSE

Sākot no
CVE-2018-1327
CVE-2018-1327
augsts
TRUE

CVE-2017-5638
CVE-2017-5638
CVE-2017-5638
augsts
TRUE
Tā pati ievainojamība, ko Equifax hakeri izmantoja 2017. gadā

CVE-2017-12611
CVE-2017-12611
Sākot no
augsts
TRUE

CVE-2018-11776
CVE-2018-11776
CVE-2018-11776
augsts
TRUE

struts-taglib:1.3.8
Sākot no
CVE-2012-0394
Sākot no
vidējs
FALSE
2-kodolu statņiem

Sākot no
CVE-2013-2115
Sākot no
augsts
FALSE
2-kodolu statņiem

Sākot no
CVE-2014-0114
Sākot no
augsts
FALSE
Par Commons-beanutils

Sākot no
CVE-2015-0899
Sākot no
augsts
FALSE
Neattiecas uz taglib

Sākot no
CVE-2015-2992
Sākot no
vidējs
FALSE
Attiecas uz struts2-core

Sākot no
CVE-2016-1181
Sākot no
augsts
FALSE
Neattiecas uz taglib

Sākot no
CVE-2016-1182
Sākot no
augsts
FALSE
Neattiecas uz taglib

statņi-flīzes-1.3.8
Sākot no
CVE-2012-0394
Sākot no
vidējs
FALSE
2-kodolu statņiem

Sākot no
CVE-2013-2115
Sākot no
augsts
FALSE
2-kodolu statņiem

Sākot no
CVE-2014-0114
Sākot no
augsts
FALSE
Zem commons-beanutils

Sākot no
CVE-2015-0899
Sākot no
augsts
FALSE
Neattiecas uz flīzēm

Sākot no
CVE-2015-2992
Sākot no
vidējs
FALSE
2-kodolu statņiem

Sākot no
CVE-2016-1181
Sākot no
augsts
FALSE
Neattiecas uz taglib

Sākot no
CVE-2016-1182
Sākot no
augsts
FALSE
Neattiecas uz taglib

Avots: www.habr.com

Pievieno komentāru