DevSecOps: prensip operasyon ak konparezon SCA. Premye pati

Enpòtans analiz konpozan lojisyèl twazyèm pati yo (Software Composition Analysis - SCA) nan pwosesis devlopman an ap grandi ak lage rapò anyèl sou frajilite bibliyotèk sous louvri, ki pibliye pa Synopsys, Sonatype, Snyk ak White Source. . Dapre rapò a Eta a nan vilnerabilite sekirite sous louvri 2020 kantite frajilite ki idantifye sous louvri nan 2019 ogmante prèske 1.5 fwa konpare ak ane anvan an, pandan y ap eleman sous louvri yo itilize pa 60% a 80% nan pwojè yo. Sou yon baz endepandan, pwosesis SCA yo se yon pratik separe nan OWASP SAMM ak BSIMM kòm yon endikatè matirite, ak nan premye mwatye nan 2020, OWASP pibliye nouvo OWASP Software Component Verification Standard (SCVS), ki bay pi bon pratik pou verifye twazyèm- pati konpozan nan chèn ekipman pou BY.

DevSecOps: prensip operasyon ak konparezon SCA. Premye pati

Youn nan ka ki pi ilistrasyon yo rive ak Equifax nan mwa me 2017. Atakè enkoni yo te jwenn enfòmasyon sou 143 milyon Ameriken, tankou non konplè, adrès, nimewo Sekirite Sosyal ak lisans chofè. Nan 209 ka, dokiman yo te gen ladan tou enfòmasyon sou kat bank viktim yo. Fuit sa a te fèt kòm rezilta eksplwatasyon yon vilnerabilite kritik nan Apache Struts 000 (CVE-2-2017), pandan y ap ranje a te lage tounen nan mwa mas 5638. Konpayi an te gen de mwa pou enstale aktyalizasyon a, men pesonn pa t anmède ak li.

Atik sa a pral diskite sou pwoblèm nan nan chwazi yon zouti pou fè SCA soti nan pwen de vi nan bon jan kalite a nan rezilta analiz yo. Yo pral bay yon konparezon fonksyonèl zouti yo tou. Pwosesis entegre nan CI/CD ak kapasite entegrasyon yo pral kite pou piblikasyon ki vin apre yo. OWASP te prezante yon pakèt zouti sou sit entènèt ou a, men nan revizyon aktyèl la nou pral sèlman manyen sou zouti ki pi popilè sous ouvè Depandans Tcheke, yon ti kras mwens byen li te ye platfòm ouvè Depandans Track la ak solisyon Enterprise Sonatype Nexus IQ. Nou pral konprann tou ki jan solisyon sa yo travay epi konpare rezilta yo jwenn pou fo pozitif.

DevSecOps: prensip operasyon ak konparezon SCA. Premye pati

Prensip de operasyon

Tcheke Depandans se yon sèvis piblik (CLI, maven, jenkins modil, foumi) ki analize dosye pwojè, kolekte enfòmasyon sou depandans (non pake, groupid, tit spesifikasyon, vèsyon ...), bati yon liy CPE (Common Platform Enumeration) , Pake URL (PURL) epi idantifye vilnerabilite pou CPE/PURL nan baz done (NVD, Sonatype OSS Index, NPM Audit API...), apre sa li bati yon rapò yon sèl fwa nan fòma HTML, JSON, XML...

Ann gade kisa CPE sanble:

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

  • pati: Endikasyon ke eleman an gen rapò ak aplikasyon an (a), sistèm operasyon (o), pyès ki nan konpitè (h) (Oblije)
  • Machann: Non manifakti pwodwi (obligatwa)
  • Pwodwi: Non pwodwi (obligatwa)
  • Version: Vèsyon eleman (atik demode)
  • Mete ajou: Pake aktyalizasyon
  • edisyon: Vèsyon eritaj (atik demode)
  • Lang: Lang defini nan RFC-5646
  • SW edisyon: Vèsyon lojisyèl
  • Sib SW: Anviwònman lojisyèl kote pwodwi a opere
  • Sib HW: Anviwònman pyès ki nan konpitè kote pwodwi a opere
  • Lòt: Founisè oswa Enfòmasyon sou pwodwi

Yon egzanp CPE sanble sa a:

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

Liy la vle di ke vèsyon CPE 2.3 dekri eleman aplikasyon manifakti a pivotal_software ak tit la spring_framework vèsyon 3.0.0. Si nou louvri yon vilnerabilite CVE-2014-0225 nan NVD, nou ka wè yon mansyone nan CPE sa a. Pwoblèm nan premye ke ou ta dwe imedyatman peye atansyon a se ke CVE nan NVD, dapre CPE, rapòte yon pwoblèm nan fondasyon an, epi yo pa nan yon eleman espesifik. Sa vle di, si devlopè yo byen mare nan fondasyon an, epi vilnerabilite idantifye a pa afekte modil sa yo ke devlopè yo itilize, yon espesyalis sekirite pral yon fason oswa yon lòt gen pou demonte CVE sa a epi reflechi sou mete ajou.

URL la itilize tou pa zouti SCA. Fòma URL pake a se jan sa a:

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

  • Scheme: Ap toujou gen 'pkg' ki endike ke sa a se yon URL pake (obligatwa)
  • Tip de Anons: "kalite" pake a oswa "pwotokòl" pake a, tankou maven, npm, nuget, gem, pypi, elatriye. (Atik obligatwa)
  • Espas non: Gen kèk prefiks non, tankou yon ID gwoup Maven, pwopriyetè imaj Docker, itilizatè GitHub, oswa òganizasyon. Si ou vle epi depann sou kalite a.
  • Non: Non pake (obligatwa)
  • Version: Pake vèsyon
  • Kalifye: Lòt done kalifikasyon pou pake a, tankou eksplwatasyon, achitekti, distribisyon, elatriye Si ou vle ak kalite espesifik.
  • Sou-chemen: Lòt chemen nan pakè a parapò ak rasin pakè a

Pou egzanp:

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

Track Depandans — yon platfòm entènèt sou lokal ki aksepte Bill of Materials (BOM) ki te pwodwi CycloneDX и SPDX, se sa ki, spesifikasyon pare-fè sou depandans ki egziste deja. Sa a se yon fichye XML ki dekri depandans yo - non, hashes, package url, Piblikatè, lisans. Apre sa, Dependency Track analize BOM la, gade CVE ki disponib pou depandans yo idantifye nan baz done vilnerabilite (NVD, Sonatype OSS Index...), apre sa li bati graf, kalkile metrik, regilyèman mete ajou done sou estati vilnerabilite eleman yo. .

Yon egzanp sou sa yon BOM ta ka sanble nan fòma XML:

<?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 ka itilize pa sèlman kòm paramèt opinyon pou Dependency Track, men tou pou envantè konpozan lojisyèl nan chèn ekipman pou, pou egzanp, pou bay lojisyèl yon kliyan. An 2014, yo te menm pwopoze yon lwa Ozetazini "Cyber ​​​​Supply Chain Management and Transparans Act 2014", ki te deklare ke lè achte lojisyèl, nenpòt eta. Enstitisyon an dwe mande yon BOM pou anpeche itilizasyon konpozan vilnerab yo, men zak la poko antre an vigè.

Pou retounen nan SCA, Dependency Track gen entegrasyon pare yo ak Platfòm Notifikasyon tankou Slack, sistèm jesyon vilnerabilite tankou Kenna Security. Li vo tou di ke Dependency Track, pami lòt bagay, idantifye vèsyon demode nan pakè epi li bay enfòmasyon sou lisans (akòz sipò SPDX).

Si nou pale espesyalman sou bon jan kalite a nan SCA, Lè sa a, gen yon diferans fondamantal.

Dependency Track pa aksepte pwojè a kòm opinyon, men pito BOM la. Sa vle di ke si nou vle teste pwojè a, nou premye bezwen jenere bom.xml, pou egzanp lè l sèvi avèk CycloneDX. Kidonk, Track Dependency depann dirèkteman sou CycloneDX. An menm tan an, li pèmèt pou personnalisation. Se sa ekip OZON la te ekri CycloneDX modil pou rasanble fichye BOM pou pwojè Golang pou plis analiz atravè Dependency Track.

Nexus IQ se yon solisyon SCA komèsyal ki soti nan Sonatype, ki se yon pati nan ekosistèm Sonatype, ki gen ladan tou Manadjè Repository Nexus. Nexus IQ ka aksepte kòm opinyon tou de achiv lagè (pou pwojè java) atravè koòdone entènèt la oswa API, ak BOM, si òganizasyon w lan poko chanje soti nan CycloneDX nan yon nouvo solisyon. Kontrèman ak solisyon sous louvri, IQ refere pa sèlman nan CP / PURL nan eleman nan idantifye ak vilnerabilite ki koresponn lan nan baz done a, men tou, pran an kont rechèch pwòp li yo, pou egzanp, non an nan fonksyon an vilnerab oswa klas. Mekanis yo nan IQ yo pral diskite pita nan analiz la nan rezilta yo.

Ann rezime kèk nan karakteristik fonksyonèl yo, epi tou konsidere lang yo sipòte pou analiz:

Lang
Nexus IQ
Tcheke Depandans
Track Depandans

Java
+
+
+

C / C ++
+
+
-

C#
+
+
-

.Net
+
+
+

erlang
-
-
+

JavaScript (NodeJS)
+
+
+

PHP
+
+
+

Piton
+
+
+

Ruby
+
+
+

Pèrl
-
-
-

Echèl
+
+
+

Objektif C
+
+
-

Swift
+
+
-

R
+
-
-

Go
+
+
+

Fonksyonalite

Fonksyonalite
Nexus IQ
Tcheke Depandans
Track Depandans

Kapasite pou asire ke eleman yo itilize nan kòd sous la tcheke pou pite lisansye
+
-
+

Kapasite pou eskane ak analize pou frajilite ak pwòpte lisans pou imaj Docker
+ Entegrasyon ak Clair
-
-

Kapasite pou konfigirasyon politik sekirite pou itilize bibliyotèk sous louvri
+
-
-

Abilite pou eskane depo sous louvri pou konpozan vilnerab
+ RubyGems, Maven, NPM, Nuget, Pypi, Conan, Bower, Conda, Go, p2, R, Yum, Helm, Docker, CocoaPods, Git LFS
-
+ Hex, RubyGems, Maven, NPM, Nuget, Pypi

Disponibilite yon gwoup rechèch espesyalize
+
-
-

Operasyon bouk fèmen
+
+
+

Sèvi ak baz done twazyèm pati
+ Fèmen baz done Sonatype
+ Sonatype OSS, Konseye Piblik NPM
+ Sonatype OSS, NPM Public Advisors, RetireJS, VulnDB, sipò pou pwòp baz done vilnerabilite li yo

Kapasite pou filtre konpozan sous louvri lè w ap eseye chaje nan bouk devlopman dapre règleman configuré
+
-
-

Rekòmandasyon pou repare frajilite yo, disponiblite lyen ki mennen nan ranje yo
+
+- (depann sou deskripsyon an nan baz done piblik)
+- (depann sou deskripsyon an nan baz done piblik)

Klasman vilnerabilite detekte pa severite
+
+
+

Modèl aksè ki baze sou wòl
+
-
+

CLI sipò
+
+
+- (sèlman pou CycloneDX)

Echantiyon/triye vilnerabilite selon kritè defini yo
+
-
+

Dach pa estati aplikasyon an
+
-
+

Jenere rapò nan fòma PDF
+
-
-

Jenere rapò nan fòma JSONCSV
+
+
-

Sipò pou lang Ris
-
-
-

Kapasite entegrasyon

Entegrasyon
Nexus IQ
Tcheke Depandans
Track Depandans

Entegrasyon LDAP/Active Directory
+
-
+

Entegrasyon ak sistèm entegrasyon kontinyèl Banbou
+
-
-

Entegrasyon ak sistèm entegrasyon kontinyèl TeamCity
+
-
-

Entegrasyon ak sistèm entegrasyon kontinyèl GitLab
+
+- (kòm yon plugin pou GitLab)
+

Entegrasyon ak sistèm entegrasyon kontinyèl Jenkins
+
+
+

Disponibilite grefon pou IDE
+ IntelliJ, Eclipse, Visual Studio
-
-

Sipò pou entegrasyon koutim atravè sèvis entènèt (API) nan zouti a
+
-
+

Tcheke Depandans

Premye kòmanse

Ann kouri Tcheke Depandans sou yon aplikasyon ki fè espre vilnerab DVJA.

Pou sa nou pral itilize Depandans tcheke Maven Plugin:

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

Kòm yon rezilta, dependency-check-report.html ap parèt nan anyè sib la.

DevSecOps: prensip operasyon ak konparezon SCA. Premye pati

Ann louvri dosye a. Apre enfòmasyon rezime sou kantite total vilnerabilite yo, nou ka wè enfòmasyon sou frajilite ak yon wo nivo gravite ak konfyans, ki endike pake a, CPE, ak kantite CVE.

Apre sa, vini plis enfòmasyon detaye, an patikilye baz sou ki te pran desizyon an (prèv), se sa ki, yon BOM sèten.

DevSecOps: prensip operasyon ak konparezon SCA. Premye pati

Apre sa ap vini deskripsyon CPE, PURL ak CVE. By wout la, rekòmandasyon pou koreksyon yo pa enkli akòz absans yo nan baz done NVD la.

DevSecOps: prensip operasyon ak konparezon SCA. Premye pati

Pou wè sistematik rezilta eskanè, ou ka konfigirasyon Nginx ak paramèt minimòm, oswa voye defo ki lakòz yo nan yon sistèm jesyon defo ki sipòte konektè nan Tcheke Depandans. Pou egzanp, Defect Dojo.

Track Depandans

Enstalasyon

Dependency Track, nan vire, se yon platfòm ki baze sou entènèt ak graf ekspozisyon, kidonk pwoblèm nan peze nan estoke domaj nan yon solisyon twazyèm pati pa leve isit la.
Scripts yo sipòte pou enstalasyon yo se: Docker, WAR, Executable WAR.

Premye kòmanse

Nou ale nan URL la nan sèvis la kouri. Nou konekte via admin/admin, chanje login ak modpas, epi ale nan Dashboard la. Pwochen bagay nou pral fè se kreye yon pwojè pou yon aplikasyon tès nan Java nan Kay/Pwojè → Kreye Pwojè . Ann pran DVJA kòm egzanp.

DevSecOps: prensip operasyon ak konparezon SCA. Premye pati

Depi Dependency Track ka sèlman aksepte BOM kòm opinyon, yo dwe rekipere BOM sa a. Ann pwofite CycloneDX Maven Plugin:

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

Nou jwenn bom.xml epi chaje fichye a nan pwojè a kreye DVJA → Depandans → Telechaje BOM.

Ann ale nan Administrasyon → Analizè. Nou konprann ke nou sèlman gen Internal Analyzer aktive, ki gen ladan NVD. Ann konekte tou Sonatype OSS Index.

DevSecOps: prensip operasyon ak konparezon SCA. Premye pati

Kidonk, nou jwenn foto sa a pou pwojè nou an:

DevSecOps: prensip operasyon ak konparezon SCA. Premye pati

Epitou nan lis la ou ka jwenn yon vilnerabilite ki aplikab a Sonatype OSS:

DevSecOps: prensip operasyon ak konparezon SCA. Premye pati

Desepsyon prensipal la te ke Track Depandans pa aksepte rapò xml Tcheke Depandans ankò. Dènye vèsyon ki sipòte entegrasyon Tcheke Depandans yo te 1.0.0 - 4.0.2, pandan mwen te teste 5.3.2.

Isit la videyo (ak isit la) lè li te toujou posib.

Nexus IQ

Premye kòmanse

Enstalasyon Nexus IQ soti nan achiv yo nan dokiman, men nou bati yon imaj Docker pou rezon sa yo.

Apre ou fin konekte nan konsole a, ou bezwen kreye yon Òganizasyon ak Aplikasyon.

DevSecOps: prensip operasyon ak konparezon SCA. Premye pati

DevSecOps: prensip operasyon ak konparezon SCA. Premye pati

DevSecOps: prensip operasyon ak konparezon SCA. Premye pati

Kòm ou ka wè, konfigirasyon an nan ka a nan IQ se yon ti jan pi konplike, paske nou menm tou nou bezwen kreye règleman ki aplikab pou diferan "etap" (dev, bati, etap, lage). Sa nesesè pou bloke eleman vilnerab yo pandan y ap deplase nan tiyo a pi pre pwodiksyon an, oswa pou bloke yo le pli vit ke yo antre nan Nexus Repo lè devlopè yo telechaje yo.

Pou santi diferans ki genyen ant sous louvri ak antrepriz, ann fè menm eskanè a atravè Nexus IQ nan menm fason an nan Plugin Maven, li te deja kreye yon aplikasyon tès nan koòdone NexusIQ la 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>

Swiv adrès entènèt la nan rapò pwodwi a nan koòdone entènèt la IQ:

DevSecOps: prensip operasyon ak konparezon SCA. Premye pati

Isit la ou ka wè tout vyolasyon politik ki endike diferan nivo siyifikasyon (soti nan Enfòmasyon pou Sekirite Kritik). Lèt D akote eleman an vle di ke eleman an se Depandans Dirèk, epi lèt T akote eleman an vle di ke eleman an se Depandans Tranzitif, sa vle di li se tranzitif.

By wout la, rapò a Rapò sou Eta Open Source Sekirite 2020 soti nan Snyk rapòte ke plis pase 70% nan vilnerabilite sous louvri dekouvri nan Node.js, Java ak Ruby yo nan depandans tranzitif.

Si nou louvri youn nan vyolasyon politik Nexus IQ yo, nou ka wè yon deskripsyon eleman an, osi byen ke yon graf vèsyon, ki montre kote vèsyon aktyèl la nan graf tan an, osi byen ke nan ki pwen vilnerabilite a sispann. dwe vilnerab. Wotè bouji yo sou graf la montre popilarite lè l sèvi avèk eleman sa a.

DevSecOps: prensip operasyon ak konparezon SCA. Premye pati

Si ou ale nan seksyon frajilite a epi elaji CVE a, ou ka li yon deskripsyon vilnerabilite sa a, rekòmandasyon pou eliminasyon, ak rezon ki fè yo te vyole eleman sa a, se sa ki, prezans nan klas la. DiskFileitem.class.

DevSecOps: prensip operasyon ak konparezon SCA. Premye pati

DevSecOps: prensip operasyon ak konparezon SCA. Premye pati

Ann rezime sèlman sa ki gen rapò ak konpozan Java twazyèm pati yo, retire eleman js yo. Nan parantèz nou endike kantite frajilite yo te jwenn deyò NVD.

Total Nexus IQ:

  • Depandans analize: 62
  • Depandans vilnerab: 16
  • Vilnerabilite yo te jwenn: 42 (8 sonatype db)

Tcheke Depandans Total:

  • Depandans analize: 47
  • Depandans vilnerab: 13
  • Vilnerabilite yo te jwenn: 91 (14 sonatype oss)

Total Depandans Track:

  • Depandans analize: 59
  • Depandans vilnerab: 10
  • Vilnerabilite yo te jwenn: 51 (1 sonatype oss)

Nan pwochen etap yo, nou pral analize rezilta yo jwenn ak konnen kilès nan frajilite sa yo se yon defo reyèl ak ki se yon fo pozitif.

Limit responsabilite nou

Revizyon sa a se pa yon verite enkontournabl. Otè a pa t 'gen yon objektif mete aksan sou yon enstriman separe kont background nan nan lòt moun. Objektif revizyon an se te montre mekanis operasyon zouti SCA ak fason yo tcheke rezilta yo.

Konparezon rezilta yo

Tèm ak Kondisyon yo:

Yon fo pozitif pou frajilite konpozan twazyèm pati yo se:

  • Dezakò CVE ak eleman idantifye
  • Pou egzanp, si yo idantifye yon vilnerabilite nan kad struts2, epi zouti a lonje dwèt sou yon eleman nan kad struts-mosay, pou ki vilnerabilite sa a pa aplike, Lè sa a, sa a se yon fo pozitif.
  • CVE dezakò nan vèsyon an idantifye nan eleman an
  • Pou egzanp, vilnerabilite a mare nan vèsyon python> 3.5 ak zouti a make vèsyon 2.7 kòm vilnerab - sa a se yon fo pozitif, paske an reyalite vilnerabilite a aplike sèlman nan branch nan pwodwi 3.x.
  • Kopi CVE
  • Pa egzanp, si SCA a presize yon CVE ki pèmèt yon RCE, Lè sa a, SCA a presize yon CVE pou menm eleman sa a ki aplike a pwodwi Cisco ki afekte nan RCE sa a. Nan ka sa a li pral fo pozitif.
  • Pa egzanp, yo te jwenn yon CVE nan yon eleman Spring-web, apre sa SCA lonje dwèt sou menm CVE a nan lòt eleman nan Spring Framework, alòske CVE a pa gen anyen fè ak lòt eleman. Nan ka sa a li pral fo pozitif.

Objè etid la se te pwojè Open Source DVJA. Etid la enplike sèlman konpozan java (san js).

Rezime rezilta yo

Ann ale tou dwat nan rezilta yo nan yon revizyon manyèl nan frajilite idantifye. Ou ka jwenn rapò konplè pou chak CVE nan Anèks la.

Rezime rezilta pou tout frajilite yo:

Paramèt
Nexus IQ
Tcheke Depandans
Track Depandans

Total vilnerabilite yo idantifye
42
91
51

Mal idantifye vilnerabilite (fo pozitif)
2 (4.76)
62 (68,13)
29 (56.86)

Pa gen frajilite ki enpòtan yo jwenn (fo negatif)
10
20
27

Rezime rezilta pa eleman:

Paramèt
Nexus IQ
Tcheke Depandans
Track Depandans

Konpozan total idantifye
62
47
59

Total konpozan vilnerab
16
13
10

Konpozan vilnerab yo mal idantifye (fo pozitif)
1
5
0

Konpozan vilnerab yo mal idantifye (fo pozitif)
0
6
6

Ann konstwi graf vizyèl pou evalye rapò fo pozitif ak fo negatif ak kantite total vilnerabilite yo. Konpozan yo make orizontal, epi frajilite yo idantifye nan yo make vètikal.

DevSecOps: prensip operasyon ak konparezon SCA. Premye pati

DevSecOps: prensip operasyon ak konparezon SCA. Premye pati

DevSecOps: prensip operasyon ak konparezon SCA. Premye pati

Pou konparezon, ekip Sonatype te fè yon etid menm jan an pou teste yon pwojè 1531 konpozan lè l sèvi avèk OWASP Dependency Check. Kòm nou ka wè, rapò a nan bri ak repons kòrèk yo konparab ak rezilta nou yo.

DevSecOps: prensip operasyon ak konparezon SCA. Premye pati
Sous: www.sonatype.com/why-precision-matters-ebook

Ann gade kèk CVE nan rezilta eskanè nou yo pou w konprann rezon ki fè rezilta sa yo.

plis

№ 1

Ann premye gade nan kèk pwen enteresan sou Sonatype Nexus IQ la.

Nexus IQ montre yon pwoblèm ak deserializasyon ak kapasite pou fè RCE nan Spring Framework plizyè fwa. CVE-2016-1000027 nan spring-web:3.0.5 premye fwa, ak CVE-2011-2894 nan spring-context:3.0.5 ak spring-core:3.0.5. Okòmansman, li parèt ke gen repetisyon nan vilnerabilite atravè plizyè CVE. Paske, si ou gade nan CVE-2016-1000027 ak CVE-2011-2894 nan baz done NVD la, li sanble ke tout bagay se evidan.

Konpozan
Vulnerabilite

prentan-web:3.0.5
CVE-2016-1000027

prentan-kontèks:3.0.5
CVE-2011-2894

prentan-nwayo: 3.0.5
CVE-2011-2894

Deskripsyon CVE-2011-2894 soti nan NVD:
DevSecOps: prensip operasyon ak konparezon SCA. Premye pati

Deskripsyon CVE-2016-1000027 soti nan NVD:
DevSecOps: prensip operasyon ak konparezon SCA. Premye pati

CVE-2011-2894 tèt li se byen popilè. Nan rapò a Sous Blan 2011 CVE sa a te rekonèt kòm youn nan pi komen. Deskripsyon pou CVE-2016-100027, nan prensip, se kèk nan NVD, epi li sanble yo dwe aplikab sèlman pou Spring Framework 4.1.4. Ann pran yon gade nan referans ak isit la tout bagay vin plis oswa mwens klè. Soti nan Atik tenable Nou konprann ke anplis vilnerabilite nan RemoteInvocationSerializingExporter nan CVE-2011-2894, vilnerabilite a obsève nan HttpInvokerServiceExporter. Men sa Nexus IQ di nou:

DevSecOps: prensip operasyon ak konparezon SCA. Premye pati

Sepandan, pa gen anyen tankou sa a nan NVD, se poutèt sa Dependency Check ak Dependency Track chak resevwa fo negatif.

Epitou nan deskripsyon CVE-2011-2894 li ka konprann ke vilnerabilite a se tout bon prezan nan tou de spring-context:3.0.5 ak spring-core:3.0.5. Ou ka jwenn konfimasyon sa a nan yon atik ki soti nan moun ki te jwenn vilnerabilite sa a.

№ 2

Konpozan
Vulnerabilite
Rezilta

struts2-nwayo:2.3.30
CVE-2016-4003
FO

Si nou etidye vilnerabilite CVE-2016-4003 a, nou pral konprann ke li te fiks nan vèsyon 2.3.28, sepandan, Nexus IQ rapòte li ba nou. Gen yon nòt nan deskripsyon vilnerabilite a:

DevSecOps: prensip operasyon ak konparezon SCA. Premye pati

Sa vle di, vilnerabilite a egziste sèlman nan konjonksyon avèk yon vèsyon demode nan JRE a, ki yo te deside avèti nou sou. Men, nou konsidere sa a Fo Pozitif, byenke pa pi move a.

Nimewo 3

Konpozan
Vulnerabilite
Rezilta

xwork-core:2.3.30
CVE-2017-9804
VERITE

xwork-core:2.3.30
CVE-2017-7672
FO

Si nou gade deskripsyon CVE-2017-9804 ak CVE-2017-7672, nou pral konprann ke pwoblèm nan se URLValidator class, ak CVE-2017-9804 ki soti nan CVE-2017-7672. Prezans nan dezyèm vilnerabilite a pa pote okenn chaj itil lòt pase lefèt ke severite li yo te ogmante a Segondè, pou nou ka konsidere li nesesè bri.

An jeneral, pa gen okenn lòt fo pozitif yo te jwenn pou Nexus IQ.

№ 4

Gen plizyè bagay ki fè IQ kanpe soti nan lòt solisyon yo.

Konpozan
Vulnerabilite
Rezilta

prentan-web:3.0.5
CVE-2020-5398
VERITE

CVE nan NVD a di ke li sèlman aplike nan vèsyon 5.2.x anvan 5.2.3, 5.1.x anvan 5.1.13, ak vèsyon 5.0.x anvan 5.0.16, sepandan, si nou gade nan deskripsyon CVE nan Nexus IQ. , Lè sa a, nou pral wè sa ki annapre yo:
Avi Devyasyon Konsiltatif: Ekip rechèch sekirite Sonatype te dekouvri ke vilnerabilite sa a te prezante nan vèsyon 3.0.2.RELEASE epi li pa 5.0.x jan sa endike nan konsèy la.

Sa a se swiv pa yon PoC pou vilnerabilite sa a, ki deklare ke li prezan nan vèsyon 3.0.5.

Yo voye fo negatif nan Dependency Check ak Dependency Track.

№ 5

Ann gade fo pozitif pou Dependency Check ak Dependency Track.

Tèks Depandans yo montre ke li reflete CVE sa yo ki aplike nan tout kad nan NVD ak eleman CVE sa yo pa aplike. Sa a konsène CVE-2012-0394, CVE-2013-2115, CVE-2014-0114, CVE-2015-0899, CVE-2015-2992, CVE-2016-1181, CVE-2016-1182, ki depann de chèk la. ” to struts-taglib:1.3.8 ak struts-mozayik-1.3.8. Eleman sa yo pa gen anyen pou wè ak sa ki dekri nan CVE a - pwosesis demann, validation paj, elatriye. Sa a se akòz lefèt ke sa CVE sa yo ak eleman yo genyen an komen se sèlman kad la, ki se poukisa Dependency Check konsidere li kòm yon vilnerabilite.

Menm sitiyasyon an se ak prentan-tx:3.0.5, ak yon sitiyasyon ki sanble ak struts-core:1.3.8. Pou struts-core, Dependency Check ak Dependency Track te jwenn yon anpil nan frajilite ki aktyèlman aplikab a struts2-core, ki se esansyèlman yon fondasyon separe. Nan ka sa a, Nexus IQ kòrèkteman konprann foto a ak nan CVE yo li te bay, li endike ke struts-core te rive nan fen lavi a epi li te nesesè pou avanse pou pi nan struts2-core.

№ 6

Nan kèk sitiyasyon, li enjis pou entèprete yon erè evidan Tcheke Depandans ak Track Depandans. An patikilye CVE-2013-4152, CVE-2013-6429, CVE-2013-6430, CVE-2013-7315, CVE-2014-0054, CVE-2014-0225, CVE-2014-0225, ki Depandans Track Check atribiye a spring-core:3.0.5 aktyèlman fè pati spring-web:3.0.5. An menm tan an, kèk nan CVE sa yo te jwenn tou pa Nexus IQ, sepandan, IQ kòrèkteman idantifye yo nan yon lòt eleman. Paske vilnerabilite sa yo pa te jwenn nan prentan-nwayo, li pa ka diskite ke yo pa nan fondasyon an nan prensip ak zouti sous louvri rezon fè remake frajilite sa yo (yo jis rate yon ti kras).

Jwenn

Kòm nou ka wè, detèmine fyab nan vilnerabilite idantifye pa revizyon manyèl pa bay rezilta klè, ki se poukisa pwoblèm kontwovèsyal leve. Rezilta yo se ke solisyon an Nexus IQ gen to ki pi ba fo pozitif ak presizyon ki pi wo a.

Premye a tout, sa a se akòz lefèt ke ekip la Sonatype elaji deskripsyon an pou chak vilnerabilite CVE soti nan NVD nan baz done li yo, ki endike frajilite yo pou yon vèsyon patikilye nan eleman yo desann nan klas la oswa fonksyon, fè rechèch adisyonèl (pa egzanp. , tcheke vilnerabilite sou ansyen vèsyon lojisyèl).

Yon enfliyans enpòtan sou rezilta yo jwe tou pa frajilite sa yo ki pa te enkli nan NVD, men ki alòske prezan nan baz done Sonatype ak mak SONATYPE la. Dapre rapò a Eta a nan vilnerabilite sekirite sous louvri 2020 NVD pa rapòte 45% nan vilnerabilite sous louvri yo dekouvri. Dapre baz done WhiteSource a, sèlman 29% nan tout vilnerabilite sous louvri rapòte deyò NVD fini pibliye la, se poutèt sa li enpòtan pou chèche frajilite nan lòt sous tou.

Kòm yon rezilta, Dependency Check pwodui yon anpil nan bri, manke kèk eleman vilnerab. Dependency Track pwodui mwens bri ak detekte yon gwo kantite konpozan, ki pa vizyèlman fè mal je yo nan koòdone entènèt la.

Sepandan, pratik montre ke sous louvri yo ta dwe vin premye etap yo nan direksyon pou DevSecOps ki gen matirite. Premye bagay ou ta dwe reflechi sou lè w entegre SCA nan devlopman se pwosesis, sètadi, panse ansanm ak jesyon ak depatman ki gen rapò sou ki pwosesis ideyal yo ta dwe sanble nan òganizasyon w lan. Li ka vire soti ke pou òganizasyon w, nan premye, Tcheke Depandans oswa Track Depandans pral kouvri tout bezwen biznis yo, ak solisyon Enterprise yo pral yon kontinyasyon lojik akòz konpleksite a ap grandi nan aplikasyon yo ap devlope.

Anèks A: Rezilta eleman yo
Lejand:

  • Segondè-wo ak kritik nivo vilnerabilite nan eleman an
  • Mwayen — Vulnerabilite nan nivo kritik mwayen nan eleman an
  • VRE — Vrè pwoblèm pozitif
  • FALSE — Pwoblèm fo pozitif

Konpozan
Nexus IQ
Tcheke Depandans
Track Depandans
Rezilta

dom4j: 1.6.1
segondè
segondè
segondè
VERITE

log4j-nwayo: 2.3
segondè
segondè
segondè
VERITE

log4j: 1.2.14
segondè
segondè
-
VERITE

komen-koleksyon:3.1
segondè
segondè
segondè
VERITE

commons-fileupload:1.3.2
segondè
segondè
segondè
VERITE

commons-beanutils:1.7.0
segondè
segondè
segondè
VERITE

commons-codec:1:10
mwayen
-
-
VERITE

mysql-connector-java:5.1.42
segondè
segondè
segondè
VERITE

prentan-ekspresyon:3.0.5
segondè
eleman pa jwenn

VERITE

prentan-web:3.0.5
segondè
eleman pa jwenn
segondè
VERITE

prentan-kontèks:3.0.5
mwayen
eleman pa jwenn
-
VERITE

prentan-nwayo: 3.0.5
mwayen
segondè
segondè
VERITE

struts2-config-browser-plugin:2.3.30
mwayen
-
-
VERITE

prentan-tx:3.0.5
-
segondè
-
FO

Struts-nwayo: 1.3.8
segondè
segondè
segondè
VERITE

xwork-nwayo: 2.3.30
segondè
-
-
VERITE

struts2-nwayo: 2.3.30
segondè
segondè
segondè
VERITE

struts-taglib:1.3.8
-
segondè
-
FO

janb-mozayik-1.3.8
-
segondè
-
FO

Anèks B: Rezilta vilnerabilite
Lejand:

  • Segondè-wo ak kritik nivo vilnerabilite nan eleman an
  • Mwayen — Vulnerabilite nan nivo kritik mwayen nan eleman an
  • VRE — Vrè pwoblèm pozitif
  • FALSE — Pwoblèm fo pozitif

Konpozan
Nexus IQ
Tcheke Depandans
Track Depandans
Severite
Rezilta
Kòmantè

dom4j: 1.6.1
CVE-2018-1000632
CVE-2018-1000632
CVE-2018-1000632
segondè
VERITE

CVE-2020-10683
CVE-2020-10683
CVE-2020-10683
segondè
VERITE

log4j-nwayo: 2.3
CVE-2017-5645
CVE-2017-5645
CVE-2017-5645
segondè
VERITE

CVE-2020-9488
CVE-2020-9488
CVE-2020-9488
ba
VERITE

log4j: 1.2.14
CVE-2019-17571
CVE-2019-17571
-
segondè
VERITE

-
CVE-2020-9488
-
ba
VERITE

SONATYPE-2010-0053
-
-
segondè
VERITE

komen-koleksyon:3.1
-
CVE-2015-6420
CVE-2015-6420
segondè
FO
Kopi RCE(OSSINDEX)

-
CVE-2017-15708
CVE-2017-15708
segondè
FO
Kopi RCE(OSSINDEX)

SONATYPE-2015-0002
RCE (OSSINDEX)
RCE(OSSINDEX)
segondè
VERITE

commons-fileupload:1.3.2
CVE-2016-1000031
CVE-2016-1000031
CVE-2016-1000031
segondè
VERITE

SONATYPE-2014-0173
-
-
mwayen
VERITE

commons-beanutils:1.7.0
CVE-2014-0114
CVE-2014-0114
CVE-2014-0114
segondè
VERITE

-
CVE-2019-10086
CVE-2019-10086
segondè
FO
Vilnerabilite a aplike sèlman nan vèsyon 1.9.2+

commons-codec:1:10
SONATYPE-2012-0050
-
-
mwayen
VERITE

mysql-connector-java:5.1.42
CVE-2018-3258
CVE-2018-3258
CVE-2018-3258
segondè
VERITE

CVE-2019-2692
CVE-2019-2692
-
mwayen
VERITE

-
CVE-2020-2875
-
mwayen
FO
Menm vilnerabilite ak CVE-2019-2692, men ak nòt la "atak yo ka gen yon enpak siyifikativ sou pwodwi adisyonèl"

-
CVE-2017-15945
-
segondè
FO
Pa gen rapò ak mysql-connector-java

-
CVE-2020-2933
-
ba
FO
Kopi CVE-2020-2934

CVE-2020-2934
CVE-2020-2934
-
mwayen
VERITE

prentan-ekspresyon:3.0.5
CVE-2018-1270
eleman pa jwenn
-
segondè
VERITE

CVE-2018-1257
-
-
mwayen
VERITE

prentan-web:3.0.5
CVE-2016-1000027
eleman pa jwenn
-
segondè
VERITE

CVE-2014-0225
-
CVE-2014-0225
segondè
VERITE

CVE-2011-2730
-
-
segondè
VERITE

-
-
CVE-2013-4152
mwayen
VERITE

CVE-2018-1272
-
-
segondè
VERITE

CVE-2020-5398
-
-
segondè
VERITE
Yon egzanp ilistrasyon an favè IQ: "Ekip rechèch sekirite Sonatype te dekouvri ke vilnerabilite sa a te prezante nan vèsyon 3.0.2.RELEASE epi yo pa 5.0.x jan sa endike nan konsèy la."

CVE-2013-6429
-
-
mwayen
VERITE

CVE-2014-0054
-
CVE-2014-0054
mwayen
VERITE

CVE-2013-6430
-
-
mwayen
VERITE

prentan-kontèks:3.0.5
CVE-2011-2894
eleman pa jwenn
-
mwayen
VERITE

prentan-nwayo: 3.0.5
-
CVE-2011-2730
CVE-2011-2730
segondè
VERITE

CVE-2011-2894
CVE-2011-2894
CVE-2011-2894
mwayen
VERITE

-
-
CVE-2013-4152
mwayen
FO
Kopi nan vilnerabilite a menm nan prentan-web

-
CVE-2013-4152
-
mwayen
FO
Vilnerabilite a gen rapò ak eleman prentan-web la

-
CVE-2013-6429
CVE-2013-6429
mwayen
FO
Vilnerabilite a gen rapò ak eleman prentan-web la

-
CVE-2013-6430
-
mwayen
FO
Vilnerabilite a gen rapò ak eleman prentan-web la

-
CVE-2013-7315
CVE-2013-7315
mwayen
FO
SPLIT soti nan CVE-2013-4152. + Vilnerabilite a gen rapò ak eleman prentan-web la

-
CVE-2014-0054
CVE-2014-0054
mwayen
FO
Vilnerabilite a gen rapò ak eleman prentan-web la

-
CVE-2014-0225
-
segondè
FO
Vilnerabilite a gen rapò ak eleman prentan-web la

-
-
CVE-2014-0225
segondè
FO
Kopi nan vilnerabilite a menm nan prentan-web

-
CVE-2014-1904
CVE-2014-1904
mwayen
FO
Vilnerabilite a gen rapò ak eleman spring-web-mvc

-
CVE-2014-3625
CVE-2014-3625
mwayen
FO
Vilnerabilite a gen rapò ak eleman spring-web-mvc

-
CVE-2016-9878
CVE-2016-9878
segondè
FO
Vilnerabilite a gen rapò ak eleman spring-web-mvc

-
CVE-2018-1270
CVE-2018-1270
segondè
FO
Pou prentan-espresyon/prentan-mesaj

-
CVE-2018-1271
CVE-2018-1271
mwayen
FO
Vilnerabilite a gen rapò ak eleman spring-web-mvc

-
CVE-2018-1272
CVE-2018-1272
segondè
VERITE

CVE-2014-3578
CVE-2014-3578 (OSSINDEX)
CVE-2014-3578
mwayen
VERITE

SONATYPE-2015-0327
-
-
ba
VERITE

struts2-config-browser-plugin:2.3.30
SONATYPE-2016-0104
-
-
mwayen
VERITE

prentan-tx:3.0.5
-
CVE-2011-2730
-
segondè
FO
Vilnerabilite a pa espesifik nan spring-tx

-
CVE-2011-2894
-
segondè
FO
Vilnerabilite a pa espesifik nan spring-tx

-
CVE-2013-4152
-
mwayen
FO
Vilnerabilite a pa espesifik nan spring-tx

-
CVE-2013-6429
-
mwayen
FO
Vilnerabilite a pa espesifik nan spring-tx

-
CVE-2013-6430
-
mwayen
FO
Vilnerabilite a pa espesifik nan spring-tx

-
CVE-2013-7315
-
mwayen
FO
Vilnerabilite a pa espesifik nan spring-tx

-
CVE-2014-0054
-
mwayen
FO
Vilnerabilite a pa espesifik nan spring-tx

-
CVE-2014-0225
-
segondè
FO
Vilnerabilite a pa espesifik nan spring-tx

-
CVE-2014-1904
-
mwayen
FO
Vilnerabilite a pa espesifik nan spring-tx

-
CVE-2014-3625
-
mwayen
FO
Vilnerabilite a pa espesifik nan spring-tx

-
CVE-2016-9878
-
segondè
FO
Vilnerabilite a pa espesifik nan spring-tx

-
CVE-2018-1270
-
segondè
FO
Vilnerabilite a pa espesifik nan spring-tx

-
CVE-2018-1271
-
mwayen
FO
Vilnerabilite a pa espesifik nan spring-tx

-
CVE-2018-1272
-
mwayen
FO
Vilnerabilite a pa espesifik nan spring-tx

Struts-nwayo: 1.3.8
-
CVE-2011-5057 (OSSINDEX)

mwayen
FASLE
Vilnerabilite nan Struts 2

-
CVE-2012-0391 (OSSINDEX)
CVE-2012-0391
segondè
FO
Vilnerabilite nan Struts 2

-
CVE-2014-0094 (OSSINDEX)
CVE-2014-0094
mwayen
FO
Vilnerabilite nan Struts 2

-
CVE-2014-0113 (OSSINDEX)
CVE-2014-0113
segondè
FO
Vilnerabilite nan Struts 2

CVE-2016-1182
3VE-2016-1182
-
segondè
VERITE

-
-
CVE-2011-5057
mwayen
FO
Vilnerabilite nan Struts 2

-
CVE-2012-0392 (OSSINDEX)
CVE-2012-0392
segondè
FO
Vilnerabilite nan Struts 2

-
CVE-2012-0393 (OSSINDEX)
CVE-2012-0393
mwayen
FO
Vilnerabilite nan Struts 2

CVE-2015-0899
CVE-2015-0899
-
segondè
VERITE

-
CVE-2012-0394
CVE-2012-0394
mwayen
FO
Vilnerabilite nan Struts 2

-
CVE-2012-0838 (OSSINDEX)
CVE-2012-0838
segondè
FO
Vilnerabilite nan Struts 2

-
CVE-2013-1965 (OSSINDEX)
CVE-2013-1965
segondè
FO
Vilnerabilite nan Struts 2

-
CVE-2013-1966 (OSSINDEX)
CVE-2013-1966
segondè
FASLE
Vilnerabilite nan Struts 2

-
CVE-2013-2115
CVE-2013-2115
segondè
FASLE
Vilnerabilite nan Struts 2

-
CVE-2013-2134 (OSSINDEX)
CVE-2013-2134
segondè
FASLE
Vilnerabilite nan Struts 2

-
CVE-2013-2135 (OSSINDEX)
CVE-2013-2135
segondè
FASLE
Vilnerabilite nan Struts 2

CVE-2014-0114
CVE-2014-0114
-
segondè
VERITE

-
CVE-2015-2992
CVE-2015-2992
mwayen
FO
Vilnerabilite nan Struts 2

-
CVE-2016-0785 (OSSINDEX)
CVE-2016-0785
segondè
FO
Vilnerabilite nan Struts 2

CVE-2016-1181
CVE-2016-1181
-
segondè
VERITE

-
CVE-2016-4003 (OSSINDEX)
CVE-2016-4003
segondè
FO
Vilnerabilite nan Struts 2

xwork-core:2.3.30
CVE-2017-9804
-
-
segondè
VERITE

SONATYPE-2017-0173
-
-
segondè
VERITE

CVE-2017-7672
-
-
segondè
FO
Kopi CVE-2017-9804

SONATYPE-2016-0127
-
-
segondè
VERITE

struts2-nwayo:2.3.30
-
CVE-2016-6795
CVE-2016-6795
segondè
VERITE

-
CVE-2017-9787
CVE-2017-9787
segondè
VERITE

-
CVE-2017-9791
CVE-2017-9791
segondè
VERITE

-
CVE-2017-9793
-
segondè
FO
Kopi CVE-2018-1327

-
CVE-2017-9804
-
segondè
VERITE

-
CVE-2017-9805
CVE-2017-9805
segondè
VERITE

CVE-2016-4003
-
-
mwayen
FO
Aplikab pou Apache Struts 2.x jiska 2.3.28, ki se vèsyon 2.3.30. Sepandan, dapre deskripsyon an, CVE a valab pou nenpòt vèsyon Struts 2 si yo itilize JRE 1.7 oswa mwens. Aparamman yo deside re-asire nou isit la, men li sanble plis tankou FALSE

-
CVE-2018-1327
CVE-2018-1327
segondè
VERITE

CVE-2017-5638
CVE-2017-5638
CVE-2017-5638
segondè
VERITE
Menm vilnerabilite ke entru Equifax te eksplwate an 2017

CVE-2017-12611
CVE-2017-12611
-
segondè
VERITE

CVE-2018-11776
CVE-2018-11776
CVE-2018-11776
segondè
VERITE

struts-taglib:1.3.8
-
CVE-2012-0394
-
mwayen
FO
Pou struts2-core

-
CVE-2013-2115
-
segondè
FO
Pou struts2-core

-
CVE-2014-0114
-
segondè
FO
Pou commons-beanutils

-
CVE-2015-0899
-
segondè
FO
Pa aplike pou taglib

-
CVE-2015-2992
-
mwayen
FO
Li refere a struts2-core

-
CVE-2016-1181
-
segondè
FO
Pa aplike pou taglib

-
CVE-2016-1182
-
segondè
FO
Pa aplike pou taglib

janb-mozayik-1.3.8
-
CVE-2012-0394
-
mwayen
FO
Pou struts2-core

-
CVE-2013-2115
-
segondè
FO
Pou struts2-core

-
CVE-2014-0114
-
segondè
FO
Anba commons-beanutils

-
CVE-2015-0899
-
segondè
FO
Pa aplike nan mozayik

-
CVE-2015-2992
-
mwayen
FO
Pou struts2-core

-
CVE-2016-1181
-
segondè
FO
Pa aplike pou taglib

-
CVE-2016-1182
-
segondè
FO
Pa aplike pou taglib

Sous: www.habr.com

Add nouvo kòmantè