DevSecOps: mga prinsipyo ng pagpapatakbo at paghahambing ng SCA. Unang bahagi

Ang kahalagahan ng pagsusuri ng mga bahagi ng software ng third-party (Software Composition Analysis - SCA) sa proseso ng pagbuo ay lumalaki sa paglabas ng mga taunang ulat sa mga kahinaan ng mga open source na library, na inilathala ng Synopsys, Sonatype, Snyk, at White Source . Ayon sa ulat Ang State of Open Source Security Vulnerabilities 2020 ang bilang ng mga natukoy na open source na kahinaan noong 2019 ay tumaas ng halos 1.5 beses kumpara sa nakaraang taon, habang ang mga bahagi ng open source ay ginagamit ng 60% hanggang 80% ng mga proyekto. Sa isang independiyenteng batayan, ang mga proseso ng SCA ay isang hiwalay na kasanayan ng OWASP SAMM at BSIMM bilang isang indicator ng maturity, at sa unang kalahati ng 2020, inilabas ng OWASP ang bagong OWASP Software Component Verification Standard (SCVS), na nagbibigay ng pinakamahuhusay na kagawian para sa pag-verify ng ikatlong- mga bahagi ng partido sa supply chain BY.

DevSecOps: mga prinsipyo ng pagpapatakbo at paghahambing ng SCA. Unang bahagi

Isa sa mga pinaka-nagpapakita na kaso nangyari sa Equifax noong Mayo 2017. Ang mga hindi kilalang umaatake ay nakakuha ng impormasyon tungkol sa 143 milyong Amerikano, kabilang ang mga buong pangalan, address, numero ng Social Security at mga lisensya sa pagmamaneho. Sa 209 kaso, kasama rin sa mga dokumento ang impormasyon tungkol sa mga bank card ng mga biktima. Ang pagtagas na ito ay nangyari bilang resulta ng pagsasamantala ng isang kritikal na kahinaan sa Apache Struts 000 (CVE-2-2017), habang ang pag-aayos ay inilabas noong Marso 5638. Ang kumpanya ay may dalawang buwan upang i-install ang pag-update, ngunit walang nag-abala dito.

Tatalakayin ng artikulong ito ang isyu ng pagpili ng tool para sa pagsasagawa ng SCA mula sa punto ng view ng kalidad ng mga resulta ng pagsusuri. Magbibigay din ng functional na paghahambing ng mga tool. Ang proseso ng pagsasama sa CI/CD at mga kakayahan sa pagsasama ay iiwan para sa mga susunod na publikasyon. Ang isang malawak na hanay ng mga tool ay ipinakita ng OWASP sa iyong website, ngunit sa kasalukuyang pagsusuri ay hahawakan lamang namin ang pinakasikat na open source tool na Dependency Check, ang bahagyang hindi gaanong kilalang open source na platform na Dependency Track at ang Enterprise solution na Sonatype Nexus IQ. Mauunawaan din namin kung paano gumagana ang mga solusyong ito at ihambing ang mga resultang nakuha para sa mga maling positibo.

DevSecOps: mga prinsipyo ng pagpapatakbo at paghahambing ng SCA. Unang bahagi

Prinsipyo ng operasyon

Pagsusuri ng Dependency ay isang utility (CLI, maven, jenkins module, ant) ​​​​na nagsusuri ng mga file ng proyekto, nangongolekta ng mga piraso ng impormasyon tungkol sa mga dependency (pangalan ng package, groupid, pamagat ng detalye, bersyon...), bumubuo ng linya ng CPE (Common Platform Enumeration) , Package URL ( PURL) at kinikilala ang mga kahinaan para sa CPE/PURL mula sa mga database (NVD, Sonatype OSS Index, NPM Audit API...), pagkatapos nito ay bubuo ito ng isang beses na ulat sa HTML, JSON, XML na format...

Tingnan natin kung ano ang hitsura ng CPE:

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

  • bahagi: Indikasyon na ang bahagi ay nauugnay sa application (a), operating system (o), hardware (h) (Kinakailangan)
  • Vendor: Pangalan ng Tagagawa ng Produkto (Kinakailangan)
  • produkto: Pangalan ng Produkto (Kinakailangan)
  • Bersyon: Component na bersyon (Obsolete item)
  • I-update: Pag-update ng package
  • Edition: Legacy na bersyon (Hindi na ginagamit na item)
  • Wika: Tinukoy ang wika sa RFC-5646
  • SW Edition: Bersyon ng software
  • Target SW: Software na kapaligiran kung saan gumagana ang produkto
  • Target na HW: Ang kapaligiran ng hardware kung saan gumagana ang produkto
  • Iba pa: Impormasyon ng Supplier o Produkto

Ang isang halimbawa ng CPE ay ganito ang hitsura:

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

Ang linya ay nangangahulugan na ang bersyon 2.3 ng CPE ay naglalarawan sa bahagi ng application mula sa tagagawa pivotal_software gamit ang pangalan spring_framework bersyon 3.0.0. Kung magbubukas tayo ng kahinaan CVE-2014-0225 sa NVD, makikita natin ang pagbanggit sa CPE na ito. Ang unang problema na dapat mong bigyang pansin kaagad ay ang CVE sa NVD, ayon sa CPE, ay nag-uulat ng problema sa balangkas, at hindi sa isang partikular na bahagi. Iyon ay, kung ang mga developer ay mahigpit na nakatali sa framework, at ang natukoy na kahinaan ay hindi makakaapekto sa mga module na iyon na ginagamit ng mga developer, ang isang espesyalista sa seguridad sa isang paraan o iba pa ay kailangang i-disassemble ang CVE na ito at mag-isip tungkol sa pag-update.

Ginagamit din ang URL ng mga tool ng SCA. Ang format ng URL ng package ay ang sumusunod:

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

  • Scheme: Palaging mayroong 'pkg' na nagsasaad na ito ay isang URL ng package (Kinakailangan)
  • Uri: Ang "uri" ng package o ang "protocol" ng package, tulad ng maven, npm, nuget, gem, pypi, atbp. (Kailangang item)
  • Namespace: Ilang prefix ng pangalan, gaya ng Maven group ID, may-ari ng Docker image, user ng GitHub, o organisasyon. Opsyonal at depende sa uri.
  • pangalan: Pangalan ng package (Kinakailangan)
  • Bersyon: Bersyon ng package
  • Qualifiers: Karagdagang data ng kwalipikasyon para sa package, gaya ng OS, arkitektura, pamamahagi, atbp. Opsyonal at partikular sa uri.
  • Subpath: Karagdagang landas sa package na nauugnay sa root ng package

Halimbawa:

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

Dependency Track — isang on-premise web platform na tumatanggap ng ready-made Bill of Materials (BOM) na nabuo CycloneDX и SPDX, iyon ay, mga yari na detalye tungkol sa mga umiiral nang dependency. Ito ay isang XML file na naglalarawan sa mga dependency - pangalan, hash, package url, publisher, lisensya. Susunod, pina-parse ng Dependency Track ang BOM, tinitingnan ang mga CVE na available sa mga natukoy na dependencies mula sa vulnerability database (NVD, Sonatype OSS Index...), pagkatapos nito ay bubuo ito ng mga graph, kinakalkula ang mga sukatan, regular na ina-update ang data sa status ng kahinaan ng mga bahagi .

Isang halimbawa ng kung ano ang maaaring hitsura ng isang BOM sa XML na format:

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

Maaaring gamitin ang BOM hindi lamang bilang mga parameter ng input para sa Dependency Track, kundi pati na rin para sa pag-imbentaryo ng mga bahagi ng software sa supply chain, halimbawa, para sa pagbibigay ng software sa isang customer. Noong 2014, isang batas ang iminungkahi sa Estados Unidos "Cyber ​​​​Supply Chain Management and Transparency Act of 2014", na nagsasaad na kapag bumibili ng software, anumang estado. Ang institusyon ay dapat humiling ng isang BOM upang pigilan ang paggamit ng mga bulnerable na bahagi, ngunit ang batas ay hindi pa naipapatupad.

Pagbabalik sa SCA, ang Dependency Track ay may mga nakahanda nang pagsasama sa Mga Platform ng Notification tulad ng Slack, mga sistema ng pamamahala ng kahinaan tulad ng Kenna Security. Nararapat ding sabihin na ang Dependency Track, bukod sa iba pang mga bagay, ay kinikilala ang mga lumang bersyon ng mga pakete at nagbibigay ng impormasyon tungkol sa mga lisensya (dahil sa suporta ng SPDX).

Kung partikular na pinag-uusapan natin ang kalidad ng SCA, mayroong pangunahing pagkakaiba.

Hindi tinatanggap ng Dependency Track ang proyekto bilang input, ngunit ang BOM. Nangangahulugan ito na kung gusto nating subukan ang proyekto, kailangan muna nating bumuo ng bom.xml, halimbawa gamit ang CycloneDX. Kaya, ang Dependency Track ay direktang umaasa sa CycloneDX. Kasabay nito, pinapayagan nito ang pagpapasadya. Ito ang isinulat ng pangkat ng OZON CycloneDX module para sa pag-assemble ng mga BOM file para sa mga proyekto ng Golang para sa karagdagang pag-scan sa pamamagitan ng Dependency Track.

Nexus IQ ay isang komersyal na solusyon sa SCA mula sa Sonatype, na bahagi ng Sonatype ecosystem, na kinabibilangan din ng Nexus Repository Manager. Maaaring tanggapin ng Nexus IQ bilang input ang parehong mga archive ng digmaan (para sa mga proyekto ng java) sa pamamagitan ng web interface o API, at BOM, kung hindi pa lumilipat ang iyong organisasyon mula sa CycloneDX patungo sa isang bagong solusyon. Hindi tulad ng mga open source na solusyon, ang IQ ay hindi lamang tumutukoy sa CP/PURL sa natukoy na bahagi at sa kaukulang kahinaan sa database, ngunit isinasaalang-alang din ang sarili nitong pananaliksik, halimbawa, ang pangalan ng bulnerable na function o klase. Ang mga mekanismo ng IQ ay tatalakayin mamaya sa pagsusuri ng mga resulta.

Ibuod natin ang ilan sa mga functional na tampok, at isaalang-alang din ang mga sinusuportahang wika para sa pagsusuri:

Wika
Nexus IQ
Pagsusuri ng Dependency
Dependency Track

Java
+
+
+

C / C ++
+
+
-

C#
+
+
-

.net
+
+
+

Erlang
-
-
+

JavaScript (NodeJS)
+
+
+

PHP
+
+
+

Sawa
+
+
+

Mapula
+
+
+

Perl
-
-
-

Scala
+
+
+

Layunin C
+
+
-

matulin
+
+
-

R
+
-
-

Go
+
+
+

Pag-andar

Pag-andar
Nexus IQ
Pagsusuri ng Dependency
Dependency Track

Ang kakayahang matiyak na ang mga bahagi na ginamit sa source code ay nasuri para sa lisensyadong kadalisayan
+
-
+

Kakayahang mag-scan at magsuri para sa mga kahinaan at kalinisan ng lisensya para sa mga larawan ng Docker
+ Pagsasama kay Clair
-
-

Kakayahang i-configure ang mga patakaran sa seguridad upang magamit ang mga open source na library
+
-
-

Kakayahang mag-scan ng mga open source na repository para sa mga vulnerable na bahagi
+ RubyGems, Maven, NPM, Nuget, Pypi, Conan, Bower, Conda, Go, p2, R, Yum, Helm, Docker, CocoaPods, Git LFS
-
+ Hex, RubyGems, Maven, NPM, Nuget, Pypi

Availability ng isang espesyal na pangkat ng pananaliksik
+
-
-

Saradong operasyon ng loop
+
+
+

Paggamit ng mga database ng third party
+ Sarado na database ng Sonatype
+ Sonatype OSS, NPM Public Advisors
+ Sonatype OSS, NPM Public Advisors, RetireJS, VulnDB, suporta para sa sarili nitong database ng kahinaan

Kakayahang mag-filter ng mga bahagi ng open source kapag sinusubukang mag-load sa development loop ayon sa mga naka-configure na patakaran
+
-
-

Mga rekomendasyon para sa pag-aayos ng mga kahinaan, pagkakaroon ng mga link sa mga pag-aayos
+
+- (depende sa paglalarawan sa mga pampublikong database)
+- (depende sa paglalarawan sa mga pampublikong database)

Pagraranggo ng mga nakitang kahinaan ayon sa kalubhaan
+
+
+

Nakabatay sa papel na modelo ng pag-access
+
-
+

suporta ng CLI
+
+
+- (para lang sa CycloneDX)

Pagsa-sample/pag-uuri ng mga kahinaan ayon sa tinukoy na pamantayan
+
-
+

Dashboard ayon sa status ng application
+
-
+

Pagbuo ng mga ulat sa format na PDF
+
-
-

Bumubuo ng mga ulat sa JSONCSV na format
+
+
-

Suporta sa wikang Ruso
-
-
-

Mga kakayahan sa pagsasama

Pagsasama
Nexus IQ
Pagsusuri ng Dependency
Dependency Track

Pagsasama ng LDAP/Aktibong Direktoryo
+
-
+

Pagsasama sa tuluy-tuloy na sistema ng pagsasama Bamboo
+
-
-

Pagsasama sa tuluy-tuloy na sistema ng pagsasama TeamCity
+
-
-

Pagsasama sa tuluy-tuloy na sistema ng pagsasama GitLab
+
+- (bilang isang plugin para sa GitLab)
+

Pagsasama sa tuluy-tuloy na sistema ng pagsasama Jenkins
+
+
+

Availability ng mga plugin para sa IDE
+ IntelliJ, Eclipse, Visual Studio
-
-

Suporta para sa custom na pagsasama sa pamamagitan ng mga web-service (API) ng tool
+
-
+

Pagsusuri ng Dependency

Unang pagsisimula

Patakbuhin natin ang Dependency Check sa isang sadyang mahina na application DVJA.

Para dito gagamitin namin Dependency Check Maven Plugin:

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

Bilang resulta, lilitaw ang dependency-check-report.html sa target na direktoryo.

DevSecOps: mga prinsipyo ng pagpapatakbo at paghahambing ng SCA. Unang bahagi

Buksan natin ang file. Pagkatapos ng buod ng impormasyon tungkol sa kabuuang bilang ng mga kahinaan, makikita natin ang impormasyon tungkol sa mga kahinaan na may mataas na antas ng Kalubhaan at Kumpiyansa, na nagsasaad ng package, CPE, at bilang ng mga CVE.

Susunod na dumating ang mas detalyadong impormasyon, lalo na ang batayan kung saan ginawa ang desisyon (ebidensya), iyon ay, isang tiyak na BOM.

DevSecOps: mga prinsipyo ng pagpapatakbo at paghahambing ng SCA. Unang bahagi

Susunod ay ang paglalarawan ng CPE, PURL at CVE. Sa pamamagitan ng paraan, ang mga rekomendasyon para sa pagwawasto ay hindi kasama dahil sa kanilang kawalan sa database ng NVD.

DevSecOps: mga prinsipyo ng pagpapatakbo at paghahambing ng SCA. Unang bahagi

Upang sistematikong tingnan ang mga resulta ng pag-scan, maaari mong i-configure ang Nginx na may kaunting mga setting, o ipadala ang mga nagresultang mga depekto sa isang defect management system na sumusuporta sa mga connector sa Dependency Check. Halimbawa, ang Defect Dojo.

Dependency Track

Instalasyon

Ang Dependency Track, sa turn, ay isang web-based na platform na may mga display graph, kaya't ang pagpindot sa isyu ng pag-iimbak ng mga depekto sa isang third-party na solusyon ay hindi lumabas dito.
Ang mga sinusuportahang script para sa pag-install ay: Docker, WAR, Executable WAR.

Unang pagsisimula

Pumunta kami sa URL ng tumatakbong serbisyo. Nag-log in kami sa pamamagitan ng admin/admin, palitan ang login at password, at pagkatapos ay pumunta sa Dashboard. Ang susunod na gagawin namin ay lumikha ng isang proyekto para sa isang pagsubok na aplikasyon sa Java sa Tahanan/Mga Proyekto → Gumawa ng Proyekto . Kunin natin ang DVJA bilang isang halimbawa.

DevSecOps: mga prinsipyo ng pagpapatakbo at paghahambing ng SCA. Unang bahagi

Dahil ang Dependency Track ay maaari lamang tumanggap ng BOM bilang input, ang BOM na ito ay dapat na makuha. Samantalahin natin CycloneDX Maven Plugin:

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

Kumuha kami ng bom.xml at i-load ang file sa ginawang proyekto DVJA → Dependeency → Mag-upload ng BOM.

Pumunta tayo sa Administration → Analyzers. Naiintindihan namin na Internal Analyzer lang ang pinagana namin, na kinabibilangan ng NVD. Ikonekta din natin ang Sonatype OSS Index.

DevSecOps: mga prinsipyo ng pagpapatakbo at paghahambing ng SCA. Unang bahagi

Kaya, nakukuha namin ang sumusunod na larawan para sa aming proyekto:

DevSecOps: mga prinsipyo ng pagpapatakbo at paghahambing ng SCA. Unang bahagi

Gayundin sa listahan makakahanap ka ng isang kahinaan na naaangkop sa Sonatype OSS:

DevSecOps: mga prinsipyo ng pagpapatakbo at paghahambing ng SCA. Unang bahagi

Ang pangunahing pagkabigo ay ang Dependency Track ay hindi na tumatanggap ng mga ulat ng Dependency Check xml. Ang pinakabagong mga suportadong bersyon ng integration ng Dependency Check ay 1.0.0 - 4.0.2, habang sinubukan ko ang 5.3.2.

Dito video (at dito) noong posible pa.

Nexus IQ

Unang pagsisimula

Ang pag-install ng Nexus IQ ay mula sa archive ng dokumentasyon, ngunit bumuo kami ng imahe ng Docker para sa mga layuning ito.

Pagkatapos mag-log in sa console, kailangan mong lumikha ng Organisasyon at Application.

DevSecOps: mga prinsipyo ng pagpapatakbo at paghahambing ng SCA. Unang bahagi

DevSecOps: mga prinsipyo ng pagpapatakbo at paghahambing ng SCA. Unang bahagi

DevSecOps: mga prinsipyo ng pagpapatakbo at paghahambing ng SCA. Unang bahagi

Tulad ng nakikita mo, ang pag-setup sa kaso ng IQ ay medyo mas kumplikado, dahil kailangan din naming gumawa ng mga patakaran na naaangkop para sa iba't ibang "yugto" (dev, build, stage, release). Ito ay kinakailangan upang harangan ang mga masusugatan na bahagi habang lumilipat sila sa pipeline na mas malapit sa produksyon, o upang harangan ang mga ito sa sandaling makapasok sila sa Nexus Repo kapag na-download ng mga developer.

Upang madama ang pagkakaiba sa pagitan ng open source at enterprise, gawin natin ang parehong pag-scan sa Nexus IQ sa parehong paraan Maven plugin, na nakalikha dati ng isang pansubok na application sa interface ng NexusIQ 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>

Sundin ang URL sa nabuong ulat sa IQ web interface:

DevSecOps: mga prinsipyo ng pagpapatakbo at paghahambing ng SCA. Unang bahagi

Dito makikita mo ang lahat ng paglabag sa patakaran na nagsasaad ng iba't ibang antas ng kahalagahan (mula sa Impormasyon hanggang sa Kritikal sa Seguridad). Ang letrang D sa tabi ng component ay nangangahulugan na ang component ay Direct Dependency, at ang letter T sa tabi ng component ay nangangahulugan na ang component ay Transitive Dependency, ibig sabihin, ito ay transitive.

Sa pamamagitan ng paraan, ang ulat State of Open Source Security Report 2020 mula sa Snyk ay nag-ulat na higit sa 70% ng mga kahinaan sa open source na natuklasan sa Node.js, Java at Ruby ay nasa transitive dependencies.

Kung bubuksan namin ang isa sa mga paglabag sa patakaran ng Nexus IQ, makakakita kami ng paglalarawan ng bahagi, pati na rin ang Graph ng Bersyon, na nagpapakita ng lokasyon ng kasalukuyang bersyon sa graph ng oras, gayundin sa kung saan humihinto ang kahinaan. maging mahina. Ang taas ng mga kandila sa graph ay nagpapakita ng katanyagan ng paggamit ng bahaging ito.

DevSecOps: mga prinsipyo ng pagpapatakbo at paghahambing ng SCA. Unang bahagi

Kung pupunta ka sa seksyon ng mga kahinaan at palawakin ang CVE, maaari mong basahin ang isang paglalarawan ng kahinaan na ito, mga rekomendasyon para sa pag-aalis, pati na rin ang dahilan kung bakit nilabag ang bahaging ito, iyon ay, ang presensya ng klase DiskFileitem.class.

DevSecOps: mga prinsipyo ng pagpapatakbo at paghahambing ng SCA. Unang bahagi

DevSecOps: mga prinsipyo ng pagpapatakbo at paghahambing ng SCA. Unang bahagi

Ibuod lang natin ang mga nauugnay sa mga third-party na bahagi ng Java, na inaalis ang mga bahagi ng js. Sa panaklong ipinapahiwatig namin ang bilang ng mga kahinaan na natagpuan sa labas ng NVD.

Kabuuang Nexus IQ:

  • Na-scan ang Dependencies: 62
  • Mga Mahihinang Dependencies: 16
  • Natagpuan ang mga kahinaan: 42 (8 sonatype db)

Kabuuang Pagsusuri ng Dependency:

  • Na-scan ang Dependencies: 47
  • Mga Mahihinang Dependencies: 13
  • Natagpuan ang mga kahinaan: 91 (14 sonatype oss)

Kabuuang Dependency Track:

  • Na-scan ang Dependencies: 59
  • Mga Mahihinang Dependencies: 10
  • Natagpuan ang mga kahinaan: 51 (1 sonatype oss)

Sa mga susunod na hakbang, susuriin namin ang mga resultang nakuha at malalaman kung alin sa mga kahinaang ito ang tunay na depekto at alin ang false positive.

Disclaimer

Ang pagsusuri na ito ay hindi isang hindi mapag-aalinlanganang katotohanan. Ang may-akda ay walang layunin na i-highlight ang isang hiwalay na instrumento laban sa background ng iba. Ang layunin ng pagsusuri ay upang ipakita ang mga mekanismo ng pagpapatakbo ng mga tool ng SCA at mga paraan upang suriin ang kanilang mga resulta.

Paghahambing ng mga resulta

Mga tuntunin at kundisyon:

Ang isang maling positibo para sa mga kahinaan ng bahagi ng third-party ay:

  • CVE mismatch sa natukoy na bahagi
  • Halimbawa, kung ang isang kahinaan ay natukoy sa struts2 framework, at ang tool ay tumuturo sa isang bahagi ng struts-tiles framework, kung saan ang vulnerability na ito ay hindi nalalapat, ito ay isang false positive.
  • CVE mismatch sa natukoy na bersyon ng component
  • Halimbawa, ang kahinaan ay nakatali sa bersyon ng python > 3.5 at minarkahan ng tool ang bersyon 2.7 bilang vulnerable - isa itong maling positibo, dahil sa katunayan ang kahinaan ay nalalapat lamang sa sangay ng produkto na 3.x
  • Duplicate na CVE
  • Halimbawa, kung ang SCA ay tumutukoy ng isang CVE na nagpapagana ng isang RCE, ang SCA ay tumutukoy ng isang CVE para sa parehong bahagi na nalalapat sa mga produkto ng Cisco na apektado ng RCE na iyon. Sa kasong ito, magiging false positive ito.
  • Halimbawa, natagpuan ang isang CVE sa isang bahagi ng spring-web, pagkatapos ay itinuro ng SCA ang parehong CVE sa iba pang mga bahagi ng Spring Framework, habang ang CVE ay walang kinalaman sa iba pang mga bahagi. Sa kasong ito, magiging false positive ito.

Ang layunin ng pag-aaral ay ang Open Source project na DVJA. Ang pag-aaral ay nagsasangkot lamang ng mga bahagi ng java (walang js).

Mga resulta ng buod

Dumiretso tayo sa mga resulta ng manu-manong pagsusuri ng mga natukoy na kahinaan. Ang buong ulat para sa bawat CVE ay matatagpuan sa Appendix.

Mga resulta ng buod para sa lahat ng mga kahinaan:

Parametro
Nexus IQ
Pagsusuri ng Dependency
Dependency Track

Natukoy ang kabuuang mga kahinaan
42
91
51

Maling natukoy na mga kahinaan (false positive)
2 (4.76%)
62 (68,13%)
29 (56.86%)

Walang nakitang nauugnay na mga kahinaan (false negative)
10
20
27

Mga resulta ng buod ayon sa bahagi:

Parametro
Nexus IQ
Pagsusuri ng Dependency
Dependency Track

Natukoy ang kabuuang mga bahagi
62
47
59

Kabuuang masusugatan na mga bahagi
16
13
10

Maling natukoy na mga vulnerable na bahagi (false positive)
1
5
0

Maling natukoy na mga vulnerable na bahagi (false positive)
0
6
6

Bumuo tayo ng mga visual na graph upang suriin ang ratio ng false positive at false negative sa kabuuang bilang ng mga kahinaan. Ang mga bahagi ay minarkahan nang pahalang, at ang mga kahinaan na natukoy sa mga ito ay minarkahan nang patayo.

DevSecOps: mga prinsipyo ng pagpapatakbo at paghahambing ng SCA. Unang bahagi

DevSecOps: mga prinsipyo ng pagpapatakbo at paghahambing ng SCA. Unang bahagi

DevSecOps: mga prinsipyo ng pagpapatakbo at paghahambing ng SCA. Unang bahagi

Para sa paghahambing, ang isang katulad na pag-aaral ay isinagawa ng koponan ng Sonatype na sumusubok sa isang proyekto ng 1531 mga bahagi gamit ang OWASP Dependency Check. Gaya ng nakikita natin, ang ratio ng ingay sa mga tamang tugon ay maihahambing sa aming mga resulta.

DevSecOps: mga prinsipyo ng pagpapatakbo at paghahambing ng SCA. Unang bahagi
Pinagmulan: www.sonatype.com/why-precision-matters-ebook

Tingnan natin ang ilang CVE mula sa aming mga resulta ng pag-scan upang maunawaan ang dahilan ng mga resultang ito.

pa

№ 1

Tingnan muna natin ang ilang mga kawili-wiling punto tungkol sa Sonatype Nexus IQ.

Itinuturo ng Nexus IQ ang isang isyu sa deserialization na may kakayahang magsagawa ng RCE sa Spring Framework nang maraming beses. CVE-2016-1000027 sa spring-web:3.0.5 sa unang pagkakataon, at CVE-2011-2894 sa spring-context:3.0.5 at spring-core:3.0.5. Sa una, lumilitaw na mayroong pagdoble ng kahinaan sa maraming CVE. Dahil, kung titingnan mo ang CVE-2016-1000027 at CVE-2011-2894 sa database ng NVD, tila lahat ay halata

Component
Kakayahang mangyari

spring-web:3.0.5
CVE-2016-1000027

spring-context:3.0.5
CVE-2011-2894

spring-core:3.0.5
CVE-2011-2894

Описание CVE-2011-2894 mula sa NVD:
DevSecOps: mga prinsipyo ng pagpapatakbo at paghahambing ng SCA. Unang bahagi

Описание CVE-2016-1000027 mula sa NVD:
DevSecOps: mga prinsipyo ng pagpapatakbo at paghahambing ng SCA. Unang bahagi

Ang CVE-2011-2894 mismo ay medyo sikat. Sa ulat White Source 2011 kinilala ang CVE na ito bilang isa sa pinakakaraniwan. Ang mga paglalarawan para sa CVE-2016-100027, sa prinsipyo, ay wala sa NVD, at tila naaangkop lang ito para sa Spring Framework 4.1.4. Tingnan natin sanggunian at dito nagiging mas malinaw ang lahat. Mula sa Mga artikulong maaaring pagtibayin Naiintindihan namin na bilang karagdagan sa kahinaan sa RemoteInvocationSerializingExporter sa CVE-2011-2894, ang kahinaan ay sinusunod sa HttpInvokerServiceExporter. Ito ang sinasabi sa atin ng Nexus IQ:

DevSecOps: mga prinsipyo ng pagpapatakbo at paghahambing ng SCA. Unang bahagi

Gayunpaman, walang katulad nito sa NVD, kaya naman ang Dependency Check at Dependency Track ang bawat isa ay tumatanggap ng maling negatibo.

Mula rin sa paglalarawan ng CVE-2011-2894 mauunawaan na ang kahinaan ay talagang naroroon sa parehong spring-context:3.0.5 at spring-core:3.0.5. Ang kumpirmasyon nito ay makikita sa isang artikulo mula sa taong nakahanap ng kahinaang ito.

№ 2

Component
Kakayahang mangyari
Resulta

struts2-core:2.3.30
CVE-2016-4003
FALSE

Kung pag-aaralan namin ang kahinaan na CVE-2016-4003, mauunawaan namin na naayos ito sa bersyon 2.3.28, gayunpaman, iniuulat ito sa amin ng Nexus IQ. Mayroong tala sa paglalarawan ng kahinaan:

DevSecOps: mga prinsipyo ng pagpapatakbo at paghahambing ng SCA. Unang bahagi

Iyon ay, ang kahinaan ay umiiral lamang kasabay ng isang lumang bersyon ng JRE, na nagpasya silang bigyan kami ng babala. Gayunpaman, itinuturing namin itong False Positive, bagama't hindi ang pinakamasama.

# 3

Component
Kakayahang mangyari
Resulta

xwork-core:2.3.30
CVE-2017-9804
TRUE

xwork-core:2.3.30
CVE-2017-7672
FALSE

Kung titingnan natin ang mga paglalarawan ng CVE-2017-9804 at CVE-2017-7672, mauunawaan natin na ang problema ay URLValidator class, na may CVE-2017-9804 na nagmumula sa CVE-2017-7672. Ang pagkakaroon ng pangalawang kahinaan ay hindi nagdadala ng anumang kapaki-pakinabang na pagkarga maliban sa katotohanan na ang kalubhaan nito ay tumaas sa Mataas, kaya maaari nating isaalang-alang ito na hindi kinakailangang ingay.

Sa pangkalahatan, walang ibang maling positibong nakita para sa Nexus IQ.

№ 4

Mayroong ilang mga bagay na nagpapatingkad sa IQ mula sa iba pang mga solusyon.

Component
Kakayahang mangyari
Resulta

spring-web:3.0.5
CVE-2020-5398
TRUE

Ang CVE sa NVD ay nagsasaad na nalalapat lamang ito sa mga bersyon 5.2.x bago ang 5.2.3, 5.1.x bago ang 5.1.13, at mga bersyon 5.0.x bago ang 5.0.16, gayunpaman, kung titingnan natin ang paglalarawan ng CVE sa Nexus IQ , pagkatapos ay makikita natin ang sumusunod:
Abiso sa Paglihis ng Advisory: Natuklasan ng koponan ng pananaliksik sa seguridad ng Sonatype na ang kahinaang ito ay ipinakilala sa bersyon 3.0.2.RELEASE at hindi 5.0.x gaya ng nakasaad sa advisory.

Sinusundan ito ng isang PoC para sa kahinaang ito, na nagsasaad na ito ay nasa bersyon 3.0.5.

Ang maling negatibo ay ipinadala sa Dependency Check at Dependency Track.

№ 5

Tingnan natin ang false positive para sa Dependency Check at Dependency Track.

Namumukod-tangi ang Dependency Check dahil ipinapakita nito ang mga CVE na nalalapat sa buong framework sa NVD sa mga bahaging iyon kung saan hindi nalalapat ang mga CVE na ito. May kinalaman ito sa CVE-2012-0394, CVE-2013-2115, CVE-2014-0114, CVE-2015-0899, CVE-2015-2992, CVE-2016-1181, CVE-2016-1182, kung saan ang Dependency Check ” sa struts-taglib:1.3.8 at struts-tiles-1.3.8. Ang mga bahaging ito ay walang kinalaman sa inilarawan sa CVE - pagpoproseso ng kahilingan, pagpapatunay ng pahina, at iba pa. Ito ay dahil sa katotohanan na ang pagkakatulad ng mga CVE at mga bahagi na ito ay ang balangkas lamang, kaya naman itinuturing itong kahinaan ng Dependency Check.

Ang parehong sitwasyon ay sa spring-tx:3.0.5, at isang katulad na sitwasyon sa struts-core:1.3.8. Para sa struts-core, ang Dependency Check at Dependency Track ay nakakita ng maraming mga kahinaan na aktwal na naaangkop sa struts2-core, na mahalagang isang hiwalay na framework. Sa kasong ito, wastong naunawaan ng Nexus IQ ang larawan at sa mga CVE na inilabas nito, ipinahiwatig nito na ang struts-core ay umabot na sa katapusan ng buhay at kinakailangang lumipat sa struts2-core.

№ 6

Sa ilang sitwasyon, hindi patas na bigyang-kahulugan ang isang malinaw na Dependency Check at Dependency Track error. Sa partikular na CVE-2013-4152, CVE-2013-6429, CVE-2013-6430, CVE-2013-7315, CVE-2014-0054, CVE-2014-0225, CVE-2014-0225, na Track Dependency Check at Dependency Check na nauugnay sa spring-core:3.0.5 ay talagang kabilang sa spring-web:3.0.5. Kasabay nito, ang ilan sa mga CVE na ito ay natagpuan din ng Nexus IQ, gayunpaman, tama ang pagkakakilala ng IQ sa mga ito sa isa pang bahagi. Dahil ang mga kahinaan na ito ay hindi natagpuan sa spring-core, hindi ito mapagtatalunan na ang mga ito ay wala sa balangkas sa prinsipyo at ang mga open source na tool ay wastong itinuro ang mga kahinaan na ito (sila ay napalampas lamang ng kaunti).

Natuklasan

Tulad ng nakikita natin, ang pagtukoy sa pagiging maaasahan ng mga natukoy na kahinaan sa pamamagitan ng manu-manong pagsusuri ay hindi nagbibigay ng hindi malabo na mga resulta, kaya naman lumitaw ang mga kontrobersyal na isyu. Ang mga resulta ay ang solusyon sa Nexus IQ ay may pinakamababang false positive rate at pinakamataas na katumpakan.

Una sa lahat, ito ay dahil sa katotohanan na pinalawak ng koponan ng Sonatype ang paglalarawan para sa bawat kahinaan ng CVE mula sa NVD sa mga database nito, na nagpapahiwatig ng mga kahinaan para sa isang partikular na bersyon ng mga bahagi hanggang sa klase o function, na nagsasagawa ng karagdagang pananaliksik (halimbawa , sinusuri ang mga kahinaan sa mga mas lumang bersyon ng software).

Ang isang mahalagang impluwensya sa mga resulta ay nilalaro din ng mga kahinaan na hindi kasama sa NVD, ngunit gayunpaman ay naroroon sa database ng Sonatype na may markang SONATYPE. Ayon sa ulat Ang State of Open Source Security Vulnerabilities 2020 45% ng mga natuklasang open source na kahinaan ay hindi iniuulat sa NVD. Ayon sa database ng WhiteSource, 29% lamang ng lahat ng mga kahinaan sa open source na iniulat sa labas ng NVD ang napu-publish doon, kaya naman mahalagang hanapin din ang mga kahinaan sa iba pang mga mapagkukunan.

Bilang resulta, ang Dependency Check ay gumagawa ng maraming ingay, nawawala ang ilang mga masusugatan na bahagi. Ang Dependency Track ay gumagawa ng mas kaunting ingay at nakakakita ng malaking bilang ng mga bahagi, na hindi nakikitang masakit sa mga mata sa web interface.

Gayunpaman, ipinapakita ng kasanayan na ang open source ay dapat na maging mga unang hakbang patungo sa mature na DevSecOps. Ang unang bagay na dapat mong isipin kapag isinasama ang SCA sa pag-unlad ay ang mga proseso, ibig sabihin, pag-iisip kasama ng pamamahala at mga kaugnay na departamento tungkol sa kung ano ang dapat na hitsura ng mga perpektong proseso sa iyong organisasyon. Maaaring lumabas na para sa iyong organisasyon, sa una, sasakupin ng Dependency Check o Dependency Track ang lahat ng pangangailangan ng negosyo, at ang mga solusyon sa Enterprise ay magiging isang lohikal na pagpapatuloy dahil sa lumalaking kumplikado ng mga application na binuo.

Appendix A: Mga Resulta ng Component
Simbolo:

  • Mataas—mataas at kritikal na antas ng mga kahinaan sa bahagi
  • Katamtaman — Mga kahinaan ng katamtamang antas ng pagiging kritikal sa bahagi
  • TOTOO — Totoong positibong isyu
  • MALI — Maling positibong isyu

Component
Nexus IQ
Pagsusuri ng Dependency
Dependency Track
Resulta

dom4j: 1.6.1
Mataas
Mataas
Mataas
TRUE

log4j-core: 2.3
Mataas
Mataas
Mataas
TRUE

log4j: 1.2.14
Mataas
Mataas
-
TRUE

commons-collections:3.1
Mataas
Mataas
Mataas
TRUE

commons-fileupload:1.3.2
Mataas
Mataas
Mataas
TRUE

commons-beanutils:1.7.0
Mataas
Mataas
Mataas
TRUE

commons-codec:1:10
Medium
-
-
TRUE

mysql-connector-java:5.1.42
Mataas
Mataas
Mataas
TRUE

spring-expression:3.0.5
Mataas
hindi natagpuan ang sangkap

TRUE

spring-web:3.0.5
Mataas
hindi natagpuan ang sangkap
Mataas
TRUE

spring-context:3.0.5
Medium
hindi natagpuan ang sangkap
-
TRUE

spring-core:3.0.5
Medium
Mataas
Mataas
TRUE

struts2-config-browser-plugin:2.3.30
Medium
-
-
TRUE

spring-tx:3.0.5
-
Mataas
-
FALSE

struts-core:1.3.8
Mataas
Mataas
Mataas
TRUE

xwork-core: 2.3.30
Mataas
-
-
TRUE

struts2-core: 2.3.30
Mataas
Mataas
Mataas
TRUE

struts-taglib:1.3.8
-
Mataas
-
FALSE

struts-tiles-1.3.8
-
Mataas
-
FALSE

Appendix B: Mga Resulta ng Pagkakabulnerabilidad
Simbolo:

  • Mataas—mataas at kritikal na antas ng mga kahinaan sa bahagi
  • Katamtaman — Mga kahinaan ng katamtamang antas ng pagiging kritikal sa bahagi
  • TOTOO — Totoong positibong isyu
  • MALI — Maling positibong isyu

Component
Nexus IQ
Pagsusuri ng Dependency
Dependency Track
Tindi
Resulta
Puna

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

CVE-2020-10683
CVE-2020-10683
CVE-2020-10683
Mataas
TRUE

log4j-core: 2.3
CVE-2017-5645
CVE-2017-5645
CVE-2017-5645
Mataas
TRUE

CVE-2020-9488
CVE-2020-9488
CVE-2020-9488
Mababa
TRUE

log4j: 1.2.14
CVE-2019-17571
CVE-2019-17571
-
Mataas
TRUE

-
CVE-2020-9488
-
Mababa
TRUE

SONATYPE-2010-0053
-
-
Mataas
TRUE

commons-collections:3.1
-
CVE-2015-6420
CVE-2015-6420
Mataas
FALSE
Mga Duplicate na RCE(OSSINDEX)

-
CVE-2017-15708
CVE-2017-15708
Mataas
FALSE
Mga Duplicate na RCE(OSSINDEX)

SONATYPE-2015-0002
RCE (OSSINDEX)
RCE(OSSINDEX)
Mataas
TRUE

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

SONATYPE-2014-0173
-
-
Medium
TRUE

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

-
CVE-2019-10086
CVE-2019-10086
Mataas
FALSE
Nalalapat lang ang kahinaan sa mga bersyon 1.9.2+

commons-codec:1:10
SONATYPE-2012-0050
-
-
Medium
TRUE

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

CVE-2019-2692
CVE-2019-2692
-
Medium
TRUE

-
CVE-2020-2875
-
Medium
FALSE
Ang parehong kahinaan gaya ng CVE-2019-2692, ngunit may tala na "maaaring makabuluhang makaapekto ang mga pag-atake sa mga karagdagang produkto"

-
CVE-2017-15945
-
Mataas
FALSE
Hindi nauugnay sa mysql-connector-java

-
CVE-2020-2933
-
Mababa
FALSE
Duplicate ng CVE-2020-2934

CVE-2020-2934
CVE-2020-2934
-
Medium
TRUE

spring-expression:3.0.5
CVE-2018-1270
hindi natagpuan ang sangkap
-
Mataas
TRUE

CVE-2018-1257
-
-
Medium
TRUE

spring-web:3.0.5
CVE-2016-1000027
hindi natagpuan ang sangkap
-
Mataas
TRUE

CVE-2014-0225
-
CVE-2014-0225
Mataas
TRUE

CVE-2011-2730
-
-
Mataas
TRUE

-
-
CVE-2013-4152
Medium
TRUE

CVE-2018-1272
-
-
Mataas
TRUE

CVE-2020-5398
-
-
Mataas
TRUE
Isang mapaglarawang halimbawa na pabor sa IQ: "Natuklasan ng Sonatype security research team na ang kahinaan na ito ay ipinakilala sa bersyon 3.0.2.RELEASE at hindi 5.0.x gaya ng nakasaad sa advisory."

CVE-2013-6429
-
-
Medium
TRUE

CVE-2014-0054
-
CVE-2014-0054
Medium
TRUE

CVE-2013-6430
-
-
Medium
TRUE

spring-context:3.0.5
CVE-2011-2894
hindi natagpuan ang sangkap
-
Medium
TRUE

spring-core:3.0.5
-
CVE-2011-2730
CVE-2011-2730
Mataas
TRUE

CVE-2011-2894
CVE-2011-2894
CVE-2011-2894
Medium
TRUE

-
-
CVE-2013-4152
Medium
FALSE
Duplicate ng parehong kahinaan sa spring-web

-
CVE-2013-4152
-
Medium
FALSE
Ang kahinaan ay nauugnay sa bahagi ng spring-web

-
CVE-2013-6429
CVE-2013-6429
Medium
FALSE
Ang kahinaan ay nauugnay sa bahagi ng spring-web

-
CVE-2013-6430
-
Medium
FALSE
Ang kahinaan ay nauugnay sa bahagi ng spring-web

-
CVE-2013-7315
CVE-2013-7315
Medium
FALSE
SPLIT mula sa CVE-2013-4152. + Ang kahinaan ay nauugnay sa bahagi ng spring-web

-
CVE-2014-0054
CVE-2014-0054
Medium
FALSE
Ang kahinaan ay nauugnay sa bahagi ng spring-web

-
CVE-2014-0225
-
Mataas
FALSE
Ang kahinaan ay nauugnay sa bahagi ng spring-web

-
-
CVE-2014-0225
Mataas
FALSE
Duplicate ng parehong kahinaan sa spring-web

-
CVE-2014-1904
CVE-2014-1904
Medium
FALSE
Ang kahinaan ay nauugnay sa bahagi ng spring-web-mvc

-
CVE-2014-3625
CVE-2014-3625
Medium
FALSE
Ang kahinaan ay nauugnay sa bahagi ng spring-web-mvc

-
CVE-2016-9878
CVE-2016-9878
Mataas
FALSE
Ang kahinaan ay nauugnay sa bahagi ng spring-web-mvc

-
CVE-2018-1270
CVE-2018-1270
Mataas
FALSE
Para sa spring-expression/spring-message

-
CVE-2018-1271
CVE-2018-1271
Medium
FALSE
Ang kahinaan ay nauugnay sa bahagi ng spring-web-mvc

-
CVE-2018-1272
CVE-2018-1272
Mataas
TRUE

CVE-2014-3578
CVE-2014-3578 (OSSINDEX)
CVE-2014-3578
Medium
TRUE

SONATYPE-2015-0327
-
-
Mababa
TRUE

struts2-config-browser-plugin:2.3.30
SONATYPE-2016-0104
-
-
Medium
TRUE

spring-tx:3.0.5
-
CVE-2011-2730
-
Mataas
FALSE
Ang kahinaan ay hindi partikular sa spring-tx

-
CVE-2011-2894
-
Mataas
FALSE
Ang kahinaan ay hindi partikular sa spring-tx

-
CVE-2013-4152
-
Medium
FALSE
Ang kahinaan ay hindi partikular sa spring-tx

-
CVE-2013-6429
-
Medium
FALSE
Ang kahinaan ay hindi partikular sa spring-tx

-
CVE-2013-6430
-
Medium
FALSE
Ang kahinaan ay hindi partikular sa spring-tx

-
CVE-2013-7315
-
Medium
FALSE
Ang kahinaan ay hindi partikular sa spring-tx

-
CVE-2014-0054
-
Medium
FALSE
Ang kahinaan ay hindi partikular sa spring-tx

-
CVE-2014-0225
-
Mataas
FALSE
Ang kahinaan ay hindi partikular sa spring-tx

-
CVE-2014-1904
-
Medium
FALSE
Ang kahinaan ay hindi partikular sa spring-tx

-
CVE-2014-3625
-
Medium
FALSE
Ang kahinaan ay hindi partikular sa spring-tx

-
CVE-2016-9878
-
Mataas
FALSE
Ang kahinaan ay hindi partikular sa spring-tx

-
CVE-2018-1270
-
Mataas
FALSE
Ang kahinaan ay hindi partikular sa spring-tx

-
CVE-2018-1271
-
Medium
FALSE
Ang kahinaan ay hindi partikular sa spring-tx

-
CVE-2018-1272
-
Medium
FALSE
Ang kahinaan ay hindi partikular sa spring-tx

struts-core:1.3.8
-
CVE-2011-5057 (OSSINDEX)

Medium
FASLE
Kahinaan sa Struts 2

-
CVE-2012-0391 (OSSINDEX)
CVE-2012-0391
Mataas
FALSE
Kahinaan sa Struts 2

-
CVE-2014-0094 (OSSINDEX)
CVE-2014-0094
Medium
FALSE
Kahinaan sa Struts 2

-
CVE-2014-0113 (OSSINDEX)
CVE-2014-0113
Mataas
FALSE
Kahinaan sa Struts 2

CVE-2016-1182
3VE-2016-1182
-
Mataas
TRUE

-
-
CVE-2011-5057
Medium
FALSE
Kahinaan sa Struts 2

-
CVE-2012-0392 (OSSINDEX)
CVE-2012-0392
Mataas
FALSE
Kahinaan sa Struts 2

-
CVE-2012-0393 (OSSINDEX)
CVE-2012-0393
Medium
FALSE
Kahinaan sa Struts 2

CVE-2015-0899
CVE-2015-0899
-
Mataas
TRUE

-
CVE-2012-0394
CVE-2012-0394
Medium
FALSE
Kahinaan sa Struts 2

-
CVE-2012-0838 (OSSINDEX)
CVE-2012-0838
Mataas
FALSE
Kahinaan sa Struts 2

-
CVE-2013-1965 (OSSINDEX)
CVE-2013-1965
Mataas
FALSE
Kahinaan sa Struts 2

-
CVE-2013-1966 (OSSINDEX)
CVE-2013-1966
Mataas
FASLE
Kahinaan sa Struts 2

-
CVE-2013-2115
CVE-2013-2115
Mataas
FASLE
Kahinaan sa Struts 2

-
CVE-2013-2134 (OSSINDEX)
CVE-2013-2134
Mataas
FASLE
Kahinaan sa Struts 2

-
CVE-2013-2135 (OSSINDEX)
CVE-2013-2135
Mataas
FASLE
Kahinaan sa Struts 2

CVE-2014-0114
CVE-2014-0114
-
Mataas
TRUE

-
CVE-2015-2992
CVE-2015-2992
Medium
FALSE
Kahinaan sa Struts 2

-
CVE-2016-0785 (OSSINDEX)
CVE-2016-0785
Mataas
FALSE
Kahinaan sa Struts 2

CVE-2016-1181
CVE-2016-1181
-
Mataas
TRUE

-
CVE-2016-4003 (OSSINDEX)
CVE-2016-4003
Mataas
FALSE
Kahinaan sa Struts 2

xwork-core:2.3.30
CVE-2017-9804
-
-
Mataas
TRUE

SONATYPE-2017-0173
-
-
Mataas
TRUE

CVE-2017-7672
-
-
Mataas
FALSE
Duplicate ng CVE-2017-9804

SONATYPE-2016-0127
-
-
Mataas
TRUE

struts2-core:2.3.30
-
CVE-2016-6795
CVE-2016-6795
Mataas
TRUE

-
CVE-2017-9787
CVE-2017-9787
Mataas
TRUE

-
CVE-2017-9791
CVE-2017-9791
Mataas
TRUE

-
CVE-2017-9793
-
Mataas
FALSE
Duplicate ng CVE-2018-1327

-
CVE-2017-9804
-
Mataas
TRUE

-
CVE-2017-9805
CVE-2017-9805
Mataas
TRUE

CVE-2016-4003
-
-
Medium
FALSE
Naaangkop sa Apache Struts 2.x hanggang 2.3.28, na bersyon 2.3.30. Gayunpaman, batay sa paglalarawan, ang CVE ay may bisa para sa anumang bersyon ng Struts 2 kung JRE 1.7 o mas mababa ang ginamit. Tila napagpasyahan nilang i-reinsure kami dito, ngunit mukhang MALI

-
CVE-2018-1327
CVE-2018-1327
Mataas
TRUE

CVE-2017-5638
CVE-2017-5638
CVE-2017-5638
Mataas
TRUE
Ang parehong kahinaan na pinagsamantalahan ng mga hacker ng Equifax noong 2017

CVE-2017-12611
CVE-2017-12611
-
Mataas
TRUE

CVE-2018-11776
CVE-2018-11776
CVE-2018-11776
Mataas
TRUE

struts-taglib:1.3.8
-
CVE-2012-0394
-
Medium
FALSE
Para sa struts2-core

-
CVE-2013-2115
-
Mataas
FALSE
Para sa struts2-core

-
CVE-2014-0114
-
Mataas
FALSE
Para sa commons-beanutils

-
CVE-2015-0899
-
Mataas
FALSE
Hindi naaangkop sa taglib

-
CVE-2015-2992
-
Medium
FALSE
Tumutukoy sa struts2-core

-
CVE-2016-1181
-
Mataas
FALSE
Hindi naaangkop sa taglib

-
CVE-2016-1182
-
Mataas
FALSE
Hindi naaangkop sa taglib

struts-tiles-1.3.8
-
CVE-2012-0394
-
Medium
FALSE
Para sa struts2-core

-
CVE-2013-2115
-
Mataas
FALSE
Para sa struts2-core

-
CVE-2014-0114
-
Mataas
FALSE
Sa ilalim ng commons-beanutils

-
CVE-2015-0899
-
Mataas
FALSE
Hindi nalalapat sa mga tile

-
CVE-2015-2992
-
Medium
FALSE
Para sa struts2-core

-
CVE-2016-1181
-
Mataas
FALSE
Hindi naaangkop sa taglib

-
CVE-2016-1182
-
Mataas
FALSE
Hindi naaangkop sa taglib

Pinagmulan: www.habr.com

Magdagdag ng komento