DevSecOps: parimet e funksionimit dhe krahasimi i SCA. Pjesa e parë

RĂ«ndĂ«sia e analizĂ«s sĂ« komponentĂ«ve tĂ« jashtĂ«m tĂ« softuerit (angl. Software Composition Analysis — SCA) nĂ« procesin e zhvillimit po rritet me daljen e raporteve vjetore mbi dobĂ«sitĂ« e biblioteka open source, tĂ« cilat publikohen nga kompanitĂ« Synopsys, Sonatype, Snyk, White Source. Sipas raportit Gjendja e DobĂ«sive tĂ« SigurisĂ« nĂ« Open Source 2020 numri i dobĂ«sive tĂ« identifikuara nĂ« open source nĂ« 2019 u rrit pothuajse 1.5 herĂ« krahasuar me vitin e kaluar, ndĂ«rsa komponentĂ«t me kod tĂ« hapur pĂ«rdoren nga 60% deri nĂ« 80% tĂ« projekteve. NĂ«se i referohemi mendimeve tĂ« pavarura, proceset SCA janĂ« njĂ« praktikĂ« tĂ« veçantĂ« tĂ« OWASP SAMM dhe BSIMM si njĂ« tregues i pjekurisĂ«, ndĂ«rsa nĂ« gjysmĂ«n e parĂ« tĂ« vitit 2020 OWASP publikoi njĂ« standard tĂ« ri OWASP Software Component Verification Standard (SCVS), i cili ofron praktikat mĂ« tĂ« mira pĂ«r verifikimin e komponentĂ«ve tĂ« jashtĂ«m nĂ« zinxhirin e furnizimit tĂ« softuerit.

DevSecOps: parimet e funksionimit dhe krahasimi i SCA. Pjesa e parë

Një nga rastet më treguese ndodhi me kompaninë Equifax në maj 2017. Hakerë të panjohur morën informacionin e 143 milion amerikanëve, përfshirë emrat e plotë, adresat, numrat e sigurimit shoqëror dhe licencat e drejtimit. Në 209,000 raste, dokumentet përfshin gjithashtu informacionin mbi kartat e bankave të të prekurve. Kjo rrjedhje ndodhi si rezultat i shfrytëzimit të një dobësie kritike në Apache Struts 2 (CVE-2017-5638), ndonëse një rregullim ishte lëshuar që në mars 2017. Kompania kishte dy muaj për të instaluar përditësimin, por askush nuk u shqetësua për këtë.

Në këtë artikull do të diskutohet çështja e zgjedhjes së një instrumenti për kryerjen e SCA nga pikëpamja e cilësisë së rezultateve të analizës. Do të bëhet gjithashtu një krahasim funksional i instrumenteve. Procesi i integrimit në CI/CD dhe mundësitë e integrimit do t'i lëmë për publikime të tjera. Një listë e gjerë e instrumenteve është paraqitur nga OWASP në faqen e saj, por në këtë shkrim, do të trajtojmë vetëm mjetin më të njohur open source, Dependency Check, platformën pak më pak të njohur open source Dependency Track dhe zgjidhjen Enterprise Sonatype Nexus IQ. Gjithashtu, do të shqyrtojmë se si funksionojnë këto zgjidhje dhe do të krahasojmë rezultatet për përjashtime të gabuara.

DevSecOps: parimet e funksionimit dhe krahasimi i SCA. Pjesa e parë

Parimi i funksionimit

Dependency Check Ă«shtĂ« njĂ« mjet (CLI, maven, modul jenkins, ant) qĂ« analizon skedarĂ«t e projektit, mbledh fragmente informacioni pĂ«r varĂ«sitĂ« (emri i paketĂ«s, groupid, titulli i specifikimit, versioni...), ndĂ«rton njĂ« varg CPE — (Common Platform Enumeration), Package URL (PURL) dhe identifikon pĂ«r CPE/PURL vulnerabilitete nga bazat e tĂ« dhĂ«nave (NVD, Sonatype OSS Index, NPM Audit API...), pas sĂ« cilĂ«s ndalon njĂ« raport tĂ« pĂ«r njĂ« herĂ« nĂ« formatin HTML, JSON, XML...

Le të shohim si duket CPE:

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

  • Pjesa: ShĂ«nimi qĂ« komponenti i pĂ«rket aplikacionit (a), sistemit operativ (o), harduerit (h) (Pika e Detyrueshme)
  • Furnizuesi: Emri i prodhuesit tĂ« produktit (Pika e Detyrueshme)
  • Produkti: Emri i produktit (Pika e Detyrueshme)
  • Versioni: Versioni i komponentit (Pika e TjetĂ«r)
  • PĂ«rditĂ«sim: PĂ«rditĂ«simi i paketĂ«s
  • Edisioni: Versioni trashĂ«guar (Pika e TjetĂ«r)
  • Gjuha: Gjuha e pĂ«rcaktuar nĂ« RFC-5646
  • Edisioni SW: Versioni i SW
  • Target SW: Mjedisi programor nĂ« tĂ« cilin funksionon produkti
  • HW Caku: Mjedisi hardueror nĂ« tĂ« cilin funksionon produkti
  • TĂ« tjera: Informacion mbi ofruesin ose produktin

Shembulli CPE duket si më poshtë:

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

Kjo varg tregon se CPE versioni 2.3 pĂ«rshkruan njĂ« komponent aplikacioni nga prodhuesi pivotal_software me emrin spring_framework versioni 3.0.0. NĂ«se hapim dobĂ«sinĂ« CVE-2014-0225 nĂ« NVD, mund tĂ« shohim pĂ«rmendjen e kĂ«saj CPE. Problemi i parĂ« qĂ« duhet tĂ« vĂ«mĂ« re menjĂ«herĂ« Ă«shtĂ« — CVE nĂ« NVD, sipas CPE, raporton pĂ«r njĂ« problem nĂ« framework, dhe jo nĂ« njĂ« komponent specifik. Pra, nĂ«se zhvilluesit janĂ« ngushtĂ«sisht tĂ« lidhur me framework-un, dhe dobĂ«sia e identifikuar nuk ndikon nĂ« modulĂ«t qĂ« pĂ«rdorin zhvilluesit, specialisti i sigurisĂ« ndryshe do tĂ« duhet tĂ« analizojĂ« kĂ«tĂ« CVE dhe tĂ« mendojĂ« pĂ«r pĂ«rditĂ«simin.

URL adresa gjithashtu përdoret nga mjetet SCA. Formati i URL adresës së paketës është si më poshtë:

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

  • Sсheme: Do tĂ« jetĂ« gjithmonĂ« ‘pkg’, duke treguar se ky Ă«shtĂ« URL adresa e paketĂ«s (Pika e detyrueshme)
  • Tipi: ‘Tipi’ i paketĂ«s ose ‘protokolli’ i paketĂ«s, pĂ«r shembull maven, npm, nuget, gem, pypi etj. (Pika e detyrueshme)
  • Emri hapĂ«sirĂ«s: NjĂ« prefix i caktuar emri, si identifikuesi i grupit Maven, pronari i imazhit Docker, pĂ«rdoruesi apo organizata nĂ« GitHub. Opcional dhe varet nga lloji.
  • Emri: Emri i paketĂ«s (Element i detyrueshĂ«m)
  • Versioni: Versioni i paketĂ«s
  • Kualifikuesit: TĂ« dhĂ«na shtesĂ« kualifikuese pĂ«r paketĂ«n, si OS, arkitektura, shpĂ«rndarja etj. Opcional dhe varet nga lloji.
  • NĂ«nrruga: NjĂ« rrugĂ« shtesĂ« nĂ« paketĂ« nĂ« lidhje me rrĂ«njĂ«n e paketĂ«s

Për shembull:

pkg:golang/google.golang.org/genproto#googleapis/api/annotations
pkg:maven/org.apache.commons/io@1.3.4
pkg:pypi/django-package@1.11.1.dev1

Dependency Track — njĂ« platformĂ« web on-premise qĂ« pranon Bill of Materials (BOM) tĂ« gatshme tĂ« formuara CycloneDX dhe SPDX, pra specifikime tĂ« gatshme pĂ«r varĂ«sitĂ« ekzistuese. Ky Ă«shtĂ« njĂ« skedar XML qĂ« pĂ«rshkruan varĂ«sitĂ« — emri, hash, url e paketĂ«s, botuesi, licenca. MĂ« pas, Dependency Track analizon BOM, shqyrton varĂ«sitĂ« e zbuluara pĂ«r CVE nga databaza e vulnerabiliteteve (NVD, Sonatype OSS Index 
), dhe pastaj ndĂ«rtan grafiket, llogarit metrikat, duke pĂ«rditĂ«suar rregullisht tĂ« dhĂ«nat mbi statusin e vulnerabilitetit tĂ« komponenteve.

Shembulli i asaj që mund të duket BOM në formatin XML:

Apache
      org.apache.tomcat
      tomcat-catalina
      9.0.14
      
        3942447fac867ae5cdb3229b658f4d48
        e6b1000b94e835ffd37f4c6dcbdad43f4b48a02a
        f498a8ff2dd007e29c2074f5e4b01a9a01775c3ff3aeaf6906ea503bc5791b7b
        e8f33e424f3f4ed6db76a482fde1a5298970e442c531729119e37991884bdffab4f9426b7ee11fccd074eeda0634d71697d6f88a460dce0ac8d627a29f7d1282
      
      
        
          Apache-2.0
        
      
      pkg:maven/org.apache.tomcat/tomcat-catalina@9.0.14
    
      

BOM mund të përdoret jo vetëm si input për Dependency Track, por edhe për inventarizimin e komponenteve të softuerit në zinxhirin e furnizimit, për shembull, për t'u siguruar klientëve të softuerit. Në vitin 2014, madje u propozua një ligj në SHBA. «Aktin për menaxhimin dhe transparencën e zinxhirit të furnizimit kibernetik të vitit 2014», i cili thoshte se kur blihen softuerë, çdo institucion shtetëror duhet të kërkojë BOM për të parandaluar përdorimin e komponentëve të cenueshëm, megjithatë, ligji nuk hyri kurrë në fuqi.

Duke u kthyer te SCA, Dependency Track ka integrime të gatshme me platforma njoftimi si Slack dhe sisteme menaxhimi të cenueshmërive si Kenna Security. Duhet gjithashtu të themi se Dependency Track gjithashtu identifikon versionet e vjetra të paketave dhe ofron informacione rreth licencave (falë mbështetjes së SPDX).

Nëse flasim pikërisht për cilësinë e SCA, atëherë ka një ndryshim thelbësor.

Dependency Track nuk pranon projektin si të dhëna hyrëse, por pranon pikërisht BOM. Kjo do të thotë se nëse duam të verifikojmë një projekt, së pari duhet të gjenerojmë bom.xml, për shembull, me CycloneDX. Kështu, Dependency Track varet drejtpërdrejt nga CycloneDX. Në të njëjtën kohë, kjo ofron mundësi për personalizim. Kështu, ekipi OZON shkroi modulin CycloneDX për krijimin e skedarëve BOM për projektet në Golang me qëllim skanimin e mëtejshëm përmes Dependency Track.

Nexus IQ — zgjidhje komerciale SCA nga Sonatype, e cila Ă«shtĂ« pjesĂ« e ekosistemit Sonatype, ku pĂ«rfshihet gjithashtu Nexus Repository Manager. Nexus IQ mund tĂ« pranojĂ« si input arkiva war (pĂ«r projektet java) pĂ«rmes ndĂ«rfaqes web ose API-sĂ«, si dhe BOM, nĂ«se organizata juaj nuk ka arritur tĂ« kalojĂ« nga CycloneDX nĂ« zgjidhjen e re. Ndryshe nga zgjidhjet open source, IQ nuk i referohet vetĂ«m CP/PURL pĂ«r komponentin e identifikuar dhe dobĂ«sinĂ« pĂ«rkatĂ«se nĂ« bazĂ«n e tĂ« dhĂ«nave, por merr parasysh gjithashtu studimet e veta, siç Ă«shtĂ« emri i funksionit ose klasĂ«s qĂ« Ă«shtĂ« e prekshme. Mekanizmat e IQ do tĂ« shqyrtohen mĂ« vonĂ« gjatĂ« analizĂ«s sĂ« rezultateve.

Të përmbledhim disa përfundime mbi karakteristikat funksionale, si dhe të shqyrtojmë gjuhët e mbështetura për analizë:

Gjuha
Nexus IQ
Dependency Check
Dependency Track

Java
+
+
+

C/C++
+
+
—

C#
+
+
—

.Net
+
+
+

Erlang
—
—
+

JavaScript (NodeJS)
+
+
+

PHP
+
+
+

Python
+
+
+

Ruby
+
+
+

Perl
—
—
—

Scala
+
+
+

Objective C
+
+
—

Swift
+
+
—

R
+
—
—

Go
+
+
+

Kapacitetet funksionale

Kapacitetet funksionale
Nexus IQ
Dependency Check
Dependency Track

Mundësia për të siguruar kontrollin e komponentëve të përdorur në kodin burimor për pastërtinë e licencave
+
—
+

Mundësia për skanimin dhe analizën për dobësi dhe pastërtinë e licencave për imazhet Docker
+ Integrimi me Clair
—
—

Mundësia për të konfiguruar politikën e sigurisë për përdorimin e bibliotekave me kod burimor të hapur
+
—
—

Mundësia për të skanuar repo me burim të hapur për komponentë të prekshëm
+ RubyGems, Maven, NPM, Nuget, Pypi, Conan, Bower, Conda, Go, p2, R, Yum, Helm, Docker, CocoaPods, Git LFS
—
+ Hex, RubyGems, Maven, NPM, Nuget, Pypi

Prania e një grupi kërkimor të specializuar
+
—
—

Puna në një kontur të mbyllur
+
+
+

Përdorimi i bazave të dhënash të jashtme
+ Baza e të dhënave të mbyllura Sonatype
+ Sonatype OSS, NPM Public Advisors
+ Sonatype OSS, NPM Public Advisors, RetireJS, VulnDB, mbështetje për bazën e dhënash të prekshmërive

Mundësia për të filtruar komponentët me burim të hapur gjatë përpjekjes për t'i ngarkuar në konturin e zhvillimit sipas politikave të konfigurueshme
+
—
—

Rekomandime për rregullimin e prekshmërive, pranimi i lidhjeve për rregullim
+
+- (varet nga përshkrimi në bazat publike)
+- (varet nga përshkrimi në bazat publike)

Renditja e prekshmërive të zbuluara sipas rëndësisë
+
+
+

Modeli i qasjes së rolit
+
—
+

Mbështetje për ndërfaqen e komandave CLI
+
+
+- (vetëm për CycloneDX)

Ekstraktimi / renditja e prekshmërive sipas kritereve të caktuara
+
—
+

Dashboard për gjendjen e aplikacioneve
+
—
+

Generimi i raporteve në formatin PDF
+
—
—

Generimi i raporteve në formatin JSONCSV
+
+
—

Mbështetje për gjuhën ruse
—
—
—

Mundësitë e integrimit

Integrimi
Nexus IQ
Dependency Check
Dependency Track

Integrimi me LDAP/Active Directory
+
—
+

Integrimi me sistemin e integrimit të vazhdueshëm (continuous integration) Bamboo
+
—
—

Integrimi me sistemin e integrimit të vazhdueshëm (continuous integration) TeamCity
+
—
—

Integrimi me sistemin e integrimit të vazhdueshëm (continuous integration) GitLab
+
+- (në formën e një plugini për GitLab)
+

Integrimi me sistemin e integrimit të vazhdueshëm (continuous integration) Jenkins
+
+
+

Prania e plugineve për IDE
+ IntelliJ, Eclipse, Visual Studio
—
—

Mbështetje për integrimin e personalizuar përmes shërbimeve web (API) të mjetit
+
—
+

Dependency Check

Ngritja e parë

Do të ekzekutojmë Dependency Check për një aplikacion që ka për qëllim të jetë vulnerabël DVJA.

Për këtë do të përdorim Dependency Check Maven Plugin:

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

Si rezultat, në direktorinë target do të shfaqet dependency-check-report.html.

DevSecOps: parimet e funksionimit dhe krahasimi i SCA. Pjesa e parë

Do ta hapim skedarin. Pas informacionit të përmbledhur mbi numrin e përgjithshëm të vulnerabiliteteve, mund të shohim informacion mbi vulnerabilitetet me nivel të lartë Severity dhe Confidence me treguesin për paketën, CPE, numrin e CVE.

Më pas ndodhet një informacion më i detajuar, në veçanti ajo mbi bazën e të cilës është marrë vendimi (evidence), pra një BOM.

DevSecOps: parimet e funksionimit dhe krahasimi i SCA. Pjesa e parë

Më pas vijnë CPE, PURL dhe përshkrimi i CVE. Rekomandimet për rregullimin, për habi, nuk janë të bashkangjitura për shkak të mungesës së tyre në bazën e të dhënave NVD.

DevSecOps: parimet e funksionimit dhe krahasimi i SCA. Pjesa e parë

Për të pasur një pamje sistematike të rezultateve të skanimit, mund të konfiguroni Nginx me cilësime minime, ose të dërgoni defektet e fituara në një sistem menaxhimi të defekteve që mbështesin lidhjet me Dependency Check. Për shembull, Defect Dojo.

Dependency Track

Instalimi

Dependency Track, nga ana e tij, është një platformë web me grafika vizuale, prandaj çështja e ruajtjes së defekteve në një zgjidhje të jashtme këtu nuk ndodhet.
Për instalimin, ka skenarët e mbështetur si: Docker, WAR, Executable WAR.

Ngritja e parë

Shkoni nĂ« URL-nĂ« e shĂ«rbimit tĂ« nisur. Hyni me admin/admin, ndryshoni emrin e pĂ«rdoruesit dhe fjalĂ«kalimin, pas tĂ« cilave do tĂ« kaloni nĂ« Dashboard. GjĂ«ja tjetĂ«r qĂ« do tĂ« bĂ«jmĂ« Ă«shtĂ« tĂ« krijojmĂ« njĂ« projekt pĂ«r njĂ« aplikacion testues nĂ« Java nĂ« Home/Projects → Create Project . Si njĂ« shembull, do tĂ« marrim DVJA.

DevSecOps: parimet e funksionimit dhe krahasimi i SCA. Pjesa e parë

Pasi Dependency Track mund të pranojë si të dhëna hyrëse vetëm BOM, ky BOM duhet të merret. Do të përdorim CycloneDX Maven Plugin:

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

Marrim bom.xml dhe ngarkojmĂ« skedarin nĂ« projektin e krijuar DVJA → Dependeencies → Upload BOM.

Do tĂ« hyjmĂ« nĂ« Administration → Analyzers. KuptojmĂ« se kemi aktivizuar vetĂ«m Internal Analyzer, qĂ« pĂ«rfshin NVD. Do tĂ« lidhim gjithashtu Sonatype OSS Index.

DevSecOps: parimet e funksionimit dhe krahasimi i SCA. Pjesa e parë

Kështu, do të kemi këtë pamje për projektin tonë:

DevSecOps: parimet e funksionimit dhe krahasimi i SCA. Pjesa e parë

Po ashtu, në listë mund të gjeni një dobësi që i nipet Sonatype OSS:

DevSecOps: parimet e funksionimit dhe krahasimi i SCA. Pjesa e parë

KĂ«naqĂ«sia kryesore ishte se Dependency Track nuk pranon mĂ« raportet xml tĂ« Dependency Check. Versionet e fundit tĂ« mbĂ«shtetur pĂ«r integrim me Dependency Check ishin 1.0.0 — 4.0.2, ndĂ«rsa unĂ« testoja 5.3.2.

Këtu është video (dhe këtu), kur kjo ishte ende e mundur.

Nexus IQ

Ngritja e parë

Instalimi i Nexus IQ bëhet nga arkivat në dokumentacion, por ne për këto qëllime kemi mbledhur një imazh Docker.

Pas hyrjes në konsolë, është e nevojshme të krijoni një Organizatë dhe një Aplikacion.

DevSecOps: parimet e funksionimit dhe krahasimi i SCA. Pjesa e parë

DevSecOps: parimet e funksionimit dhe krahasimi i SCA. Pjesa e parë

DevSecOps: parimet e funksionimit dhe krahasimi i SCA. Pjesa e parë

Siç mund të shihet, konfigurimi në rastin e IQ ndodh pak më komplikuar, pasi na nevojitet gjithashtu të krijojmë politika që zbatohen për faza të ndryshme (dev, build, stage, release). Kjo është e nevojshme për të bllokuar komponentët e prekshëm teksa avancojmë në pipeline drejt prodhimit, ose për të bllokuar sapo ata arrijnë në Nexus Repo gjatë shkarkimeve nga zhvilluesit.

Për të ndjerë diferencën midis open source dhe enterprise, do të kryejmë një skanimin të njëjtë përmes Nexus IQ, ashtu si për Maven plugin, duke krijuar së pari një aplikacion testimi në ndërfaqen e NexusIQ dvja-test-and-compare:

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

Shkoni te URL-i për raportin e gjeneruar në ndërfaqen e web-it IQ:

DevSecOps: parimet e funksionimit dhe krahasimi i SCA. Pjesa e parë

Këtu mund të shihni të gjitha shkeljet e politikës me shenjat e ndryshme të rëndësisë (nga Info deri në Critical Security). Letra D përballet me komponentin që tregon se komponenti është Direct Dependency, ndërsa letra T përballet me komponentin që tregon se është Transitive Dependency, domethënë është një varësi e kaluar.

Aq më tepër, raporti Raporti mbi Sigurinë e Burimeve të Hapura 2020 nga Snyk tregon se më shumë se 70% e vulnerabiliteteve të burimeve të hapura të gjetura në Node.js, Java dhe Ruby janë në varësi të kaluara.

Nëse hapim një prej shkeljeve të politikës në Nexus IQ, mund të shohim përshkrimin e komponentit, si dhe Version Graph, i cili tregon vendndodhjen e versionit aktual në grafikun temporal, si dhe në çfarë pike vulnerabiliteti nuk është më i rrezikshëm. Lartësia e qiriut në graf gjithashtu tregon popullaritetin e përdorimit të këtij komponenti.

DevSecOps: parimet e funksionimit dhe krahasimi i SCA. Pjesa e parë

Nëse kaloni në sektorin e dobësive dhe zgjidhni CVE, mund të lexoni përshkrimin e kësaj dobësie, rekomandimet për zgjidhje, si dhe arsyen pse ky komponent ka rënë nën shkelje, pra prania e klasës. DiskFileitem.class.

DevSecOps: parimet e funksionimit dhe krahasimi i SCA. Pjesa e parë

DevSecOps: parimet e funksionimit dhe krahasimi i SCA. Pjesa e parë

Të përmbledhim vetëm ato që lidhen me komponentët e jashtëm Java, duke hequr komponentët js. Në paranteza do të shënojmë numrin e dobësive që janë gjetur jashtë NVD.

Total Nexus IQ:

  • PĂ«rfundimet e skanuara: 62
  • DobĂ«si tĂ« prekura: 16
  • DobĂ«si tĂ« gjetura: 42 (8 nĂ« databazĂ«n sonatype)

Total Kontrolli i Varësive:

  • PĂ«rfundimet e skanuara: 47
  • DobĂ«si tĂ« prekura: 13
  • DobĂ«si tĂ« gjetura: 91 (14 nĂ« sonatype oss)

Total Ndjekja e Varësive:

  • PĂ«rfundimet e skanuara: 59
  • DobĂ«si tĂ« prekura: 10
  • DobĂ«si tĂ« gjetura: 51 (1 nĂ« sonatype oss)

Hapi tjetër është të analizojmë rezultatet e marra dhe të kuptojmë se cilat nga këto dobësi janë defekte reale dhe cilat janë alarme të rreme.

Kufizimi

Kjo rishikim nuk është një e vërtetë e padiskutueshme. Autorit nuk i ishte vënë në plan të veçonte një mjet në mesin e të tjerëve. Qëllimi i rishikimit ishte të tregonte mekanizmat e funksionimit të mjeteve SCA dhe mënyrat e verifikimit të rezultateve të tyre.

Krahasimi i rezultateve

Kushtet:

Një alarm i rremë në lidhje me dobësitë e komponentëve të jashtëm është:

  • MungesĂ« e CVE ndaj komponentit tĂ« identifikuar
  • PĂ«r shembull, nĂ«se njĂ« dobĂ«si identifikohet nĂ« framework-un struts2, dhe mjeti tregon pĂ«r njĂ« komponent tĂ« framework-ut struts-tiles, pĂ«r tĂ« cilin kjo dobĂ«si nuk i pĂ«rket, atĂ«herĂ« kjo Ă«shtĂ« njĂ« false positive.
  • MungesĂ« e CVE ndaj versionit tĂ« identifikuar tĂ« komponentit
  • PĂ«r shembull, nĂ«se dobĂ«sia Ă«shtĂ« e lidhur me versionin python > 3.5 dhe mjeti shĂ«non versionin 2.7 si tĂ« dobĂ«t — kjo Ă«shtĂ« njĂ« false positive, sepse nĂ« tĂ« vĂ«rtetĂ« dobĂ«sia i pĂ«rket vetĂ«m degĂ«s sĂ« produktit 3.x.
  • Dublim i CVE
  • PĂ«r shembull, nĂ«se SCA ka identifikuar njĂ« CVE qĂ« lejon realizimin e RCE, e mĂ« pas SCA tregon pĂ«r kĂ«tĂ« CVE pĂ«r tĂ« njĂ«jtin komponent, e cila pĂ«rket produkteve Cisco tĂ« prekura nga kjo RCE. NĂ« kĂ«tĂ« rast do tĂ« jetĂ« njĂ« false positive.
  • PĂ«r shembull, njĂ« CVE u gjet nĂ« komponentin spring-web, dhe mĂ« pas SCA tregon pĂ«r tĂ« njĂ«jtin CVE nĂ« komponentĂ«t e tjerĂ« tĂ« framework-ut Spring Framework, ndonĂ«se CVE nuk ka lidhje me komponentĂ«t e tjerĂ«. NĂ« kĂ«tĂ« rast do tĂ« jetĂ« njĂ« false positive.

Objekti i studimit është zgjedhur projekti Open Source DVJA. Në studim morën pjesë vetëm komponentë java (pa js).

Rezultatet përmbledhëse

Le të kalojmë menjëherë në rezultatet e rishikimit manual të dobësive të identifikuara. Mund të njihemi me raportin e plotë për secilën CVE në Shtesë.

Rezultatet përmbledhëse për të gjitha dobësitë:

Parametri
Nexus IQ
Dependency Check
Dependency Track

Numri total i dobësive të identifikuara
42
91
51

Gabimisht të identifikuara dobësi (false positive)
2(4.76%)
62(68,13%)
29(56.86%)

Nuk janë gjetur dobësi të rëndësishme (false negative)
10
20
27

Rezultatet përmbledhëse për komponentët:

Parametri
Nexus IQ
Dependency Check
Dependency Track

Numri total i komponentëve të identifikuar
62
47
59

Numri total i komponentëve të dobët
16
13
10

Gabimisht të identifikuar komponentë të dobët (false positive)
1
5
0

Gabimisht të identifikuar komponentë të dobët (false positive)
0
6
6

Do të ndërtosh grafikat vizuale për të vlerësuar raportin e false positive dhe false negative në numrin total të dobësive. Në horizont janë shënuar komponentët dhe në vertikalen janë dobësitë e identifikuara në to.

DevSecOps: parimet e funksionimit dhe krahasimi i SCA. Pjesa e parë

DevSecOps: parimet e funksionimit dhe krahasimi i SCA. Pjesa e parë

DevSecOps: parimet e funksionimit dhe krahasimi i SCA. Pjesa e parë

Për krahasim, një studim i ngjashëm është kryer nga ekipi i Sonatype duke testuar një projekt prej 1531 komponentësh duke përdorur OWASP Dependency Check. Siç mund ta shohim, raporti i zhurmës ndaj sinjaleve të sakta është i ngjashëm me rezultatet tona.

DevSecOps: parimet e funksionimit dhe krahasimi i SCA. Pjesa e parë
Burimi: www.sonatype.com/why-precision-matters-ebook

Le të shqyrtojmë disa CVE nga rezultatet e skanimit tonë për të kuptuar arsyet për këto rezultate.

Më shumë informacion

№1

Fillimisht, do të shqyrtojmë disa pikë interesante nga Sonatype Nexus IQ.

Nexus IQ tregon për një problem me deserializimin që mund të shkaktojë RCE në Spring Framework disa herë. CVE-2016-1000027 në spring-web:3.0.5 fillimisht, dhe CVE-2011-2894 në spring-context:3.0.5 dhe spring-core:3.0.5. Në dukje duket se ka një përsëritje të dobësive për disa CVE. Sepse, nëse shikoni CVE-2016-1000027 dhe CVE-2011-2894 në bazën e të dhënave NVD, duket se gjithçka është e qartë.

Komponenti
Vulnerabiliteti

spring-web:3.0.5
CVE-2016-1000027

spring-context:3.0.5
CVE-2011-2894

spring-core:3.0.5
CVE-2011-2894

Përshkrimi CVE-2011-2894 nga NVD:
DevSecOps: parimet e funksionimit dhe krahasimi i SCA. Pjesa e parë

Përshkrimi CVE-2016-1000027 nga NVD:
DevSecOps: parimet e funksionimit dhe krahasimi i SCA. Pjesa e parë

CVE-2011-2894 vetë është mjaft e njohur. Në raportin White Source për vitin 2011 kjo CVE u njoh si një nga më të zakonshmet. Përshkrimet për CVE-2016-100027 në tërësi janë pak në NVD, dhe duket se zbatohet vetëm për Spring Framework 4.1.4. Le të shohim në reference dhe këtu bëhet gjithnjë e më e qartë. Nga artikulli Tenable kuptojmë se përveç dobësive në RemoteInvocationSerializingExporter në CVE-2011-2894, dobësia vërehet gjithashtu në HttpInvokerServiceExporter. Këtë na thotë Nexus IQ:

DevSecOps: parimet e funksionimit dhe krahasimi i SCA. Pjesa e parë

Megjithatë, asgjë e tillë nuk gjendet në NVD, çka bën që Dependency Check dhe Dependency Track të marrin false negative.

Po ashtu, nga përshkrimi i CVE-2011-2894 mund të kuptohet se dobësia ndodhet vërtetë si në spring-context:3.0.5 ashtu edhe në spring-core:3.0.5. Një konfirmim për këtë mund të gjendet në artikullin nga ai që e zgjodhi këtë dobësi.

№2

Komponenti
Vulnerabiliteti
Rezultati

struts2-core:2.3.30
CVE-2016-4003
FALSE

Nëse studiojmë dobësinë CVE-2016-4003, do të kuptojmë se ajo u rregullua që në versionin 2.3.28, megjithatë Nexus IQ na informon për të. Në përshkrimin e dobësisë ka një shënim:

DevSecOps: parimet e funksionimit dhe krahasimi i SCA. Pjesa e parë

Pra, dobësia ekziston vetëm në lidhje me versionin e ndarë të JRE, për të cilin vendosën të na paralajmërojnë. Megjithatë, e konsiderojmë këtë si një False Positive, ndonëse jo më të frikshme.

№ 3

Komponenti
Vulnerabiliteti
Rezultati

xwork-core:2.3.30
CVE-2017-9804
TRUE

xwork-core:2.3.30
CVE-2017-7672
FALSE

Nëse shikojmë përshkrimin për CVE-2017-9804 dhe CVE-2017-7672, do të kuptojmë se problemi qëndron në klasën URLValidator, dhe CVE-2017-9804 ka rrjedhur nga CVE-2017-7672. Prania e dobësisë së dytë nuk sjell asnjë informacion të dobishëm përveç faktit që serioziteti i saj u rrit në High, prandaj mund ta konsiderojmë këtë si zhurmë të tepërt.

Më përgjithësi, nuk ka pasur false positive të tjera për Nexus IQ.

№4

Ka disa pika që e veçojnë IQ-në nga zgjidhjet e tjera.

Komponenti
Vulnerabiliteti
Rezultati

spring-web:3.0.5
CVE-2020-5398
TRUE

CVE në NVD njofton se ajo është e zbatueshme vetëm për versionet 5.2.x deri 5.2.3, 5.1.x deri 5.1.13, dhe versionet 5.0.x deri 5.0.16, megjithatë, nëse e shohim përshkrimin e CVE në Nexus IQ, do të shohim se:
Njoftimi për Deviacionin e Këshillave: Ekipi i kërkimeve të sigurisë Sonatype zbuloi se kjo dobësi u prezantua në versionin 3.0.2.RELEASE dhe jo në 5.0.x siç thuhet në njoftim.

Pas kësaj vjen PoC për këtë vulnerabilitet, i cili njofton se ai është prezent në versionin 3.0.5.

False negative dërgohet te Dependency Check dhe Dependency Track.

Nr. 5

Le të shohim false positive për Dependency Check dhe Dependency Track.

Dependency Check veçohet veçmas pĂ«r faktin se reflekton ato CVE qĂ« i pĂ«rkasin tĂ« gjithĂ« strukturĂ«s nĂ« NVD nĂ« ato komponente ku kĂ«to CVE nuk janĂ« tĂ« aplikueshme. Ky Ă«shtĂ« rasti i CVE-2012-0394, CVE-2013-2115, CVE-2014-0114, CVE-2015-0899, CVE-2015-2992, CVE-2016-1181, CVE-2016-1182, qĂ« Dependency Check 'i lidh' me struts-taglib:1.3.8 dhe struts-tiles-1.3.8. KĂ«to komponente nuk kanĂ« asgjĂ« tĂ« pĂ«rbashkĂ«t me atĂ« qĂ« Ă«shtĂ« pĂ«rshkruar nĂ« CVE — pĂ«rpunimi i kĂ«rkesave, validimi i faqeve dhe kĂ«shtu me radhĂ«. Kjo Ă«shtĂ« pĂ«r shkak se ajo qĂ« Ă«shtĂ« e pĂ«rbashkĂ«t midis kĂ«tyre CVE-ve dhe komponenteve Ă«shtĂ« vetĂ«m framework-u, pĂ«r shkak tĂ« cili Dependency Check e konsideroi kĂ«tĂ« si njĂ« vulnerabilitet.

Situata është e njëjtë me spring-tx:3.0.5, dhe një situatë e ngjashme me struts-core:1.3.8. Për struts-core, Dependency Check dhe Dependency Track gjetën shumë vulnerabilitete që në të vërtetë janë të aplikueshme në struts2-core, i cili në esencë është një framework i veçantë. Në këtë rast, Nexus IQ e kuptoi saktë situatën dhe në ato CVE që publikoi, e theksoi se struts-core kishte përfunduar jetën dhe ishte e nevojshme të kalonte në struts2-core.

Nr. 6

Në disa situata, është e padrejtë të interpretohet gabimi i qartë nga Dependency Check dhe Dependency Track. Veçanërisht CVE-2013-4152, CVE-2013-6429, CVE-2013-6430, CVE-2013-7315, CVE-2014-0054, CVE-2014-0225, CVE-2014-0225, të cilat Dependency Check dhe Dependency Track i renditën në spring-core:3.0.5, në të vërtetë i përkasin spring-web:3.0.5. Megjithatë, disa nga këto CVE janë gjetur edhe në Nexus IQ, përkundër kësaj IQ i identifikoi saktë ato në një komponent tjetër. Faktin që këto vulnerabilitete nuk u gjetën në spring-core, nuk do të thotë se ato nuk ekzistojnë në mënyrë të përgjithshme në framework, dhe mjetet open source treguan korrektësisht këto vulnerabilitete (thjesht gabuan pak).

Përfundimet

Siç mund ta shohim, përcaktimi i besueshmërisë së vulnerabiliteteve të identifikuara nga rishikimi manual nuk jep rezultate të qarta, për shkak të momenteve të diskutueshme që lindin. Rezultatet tregojnë se zgjidhja Nexus IQ ka nivelin më të ulët të alarmeve false dhe saktësinë më të madhe.

Në radhë të parë, ky është një rezultat i ekipit të Sonatype që ka zgjeruar përshkrimin për secilën dobësi CVE nga NVD në bazat e të dhënave të tij, duke saktësuar deri në klasën apo funksionin e dobësisë për secilën version të komponentëve, duke kryer hulumtime shtesë (p.sh., duke verifikuar dobësitë në versionet më të vjetra të softuerit).

Një ndikim i rëndësishëm në rezultate kanë edhe ato dobësi që nuk janë përfshirë në NVD, por megjithatë janë të pranishme në bazën e të dhënave të Sonatype me shënimin SONATYPE. Sipas raportit, Gjendja e Dobësive të Sigurisë në Open Source 2020 45% e dobësive të zbuluara me burim të hapur nuk raportohen në NVD. Sipas bazës së të dhënave WhiteSource, vetëm 29% e të gjitha dobësive me burim të hapur, të regjistruara jashtë NVD, përfundojë publikohen atje, prandaj është kaq e rëndësishme të kërkoni dobësi gjithashtu në burime të tjera.

Si rezultat, Dependency Check jep një sasi të madhe zhurmë, duke humbur një pjesë të komponentëve të dobësishëm. Dependency Track jep më pak zhurmë dhe identifikon një numër më të madh komponentësh, që vizualisht nuk dëmton syrin në ndërfaqen e internetit.

Megjithatë, praktika tregon se open source duhet të bëhet hapi i parë drejt një DevSecOps të pjekur. E para që duhet të mendohet për integrimin e SCA në zhvillim janë proceset, konkretisht mendimi së bashku me menaxhimin dhe departamentet përkatëse se si duhet të duken proceset ideale në organizatën tuaj. Mund të ndodhë që për organizatën tuaj, në fillim, Dependency Check ose Dependency Track të plotësojnë të gjitha nevojat e biznesit, dhe zgjidhjet Enterprise të jenë një vazhdim logjik për shkak të rritjes së kompleksitetit të aplikacioneve që zhvillohen.

Aplikacioni A. Rezultatet përkatëse ndaj komponenteve
Shkurtimisht:

  • High — vulnerabilitete tĂ« nivelit tĂ« lartĂ« dhe kritik nĂ« komponent
  • Medium — Vulnerabilitete tĂ« nivelit tĂ« mesĂ«m tĂ« kritikĂ«s nĂ« komponent
  • TRUE — Vulnerabilitet i identifikuar saktĂ« (True positive issue)
  • FALSE — Alarm i rremĂ« (False positive issue)

Komponenti
Nexus IQ
Dependency Check
Dependency Track
Rezultati

dom4j: 1.6.1
E Lartë
E Lartë
E Lartë
TRUE

log4j-core: 2.3
E Lartë
E Lartë
E Lartë
TRUE

log4j: 1.2.14
E Lartë
E Lartë
—
TRUE

commons-collections:3.1
E Lartë
E Lartë
E Lartë
TRUE

commons-fileupload:1.3.2
E Lartë
E Lartë
E Lartë
TRUE

commons-beanutils:1.7.0
E Lartë
E Lartë
E Lartë
TRUE

commons-codec:1:10
Medium
—
—
TRUE

mysql-connector-java:5.1.42
E Lartë
E Lartë
E Lartë
TRUE

spring-expression:3.0.5
E Lartë
komponenti nuk u gjet

TRUE

spring-web:3.0.5
E Lartë
komponenti nuk u gjet
E Lartë
TRUE

spring-context:3.0.5
Medium
komponenti nuk u gjet
—
TRUE

spring-core:3.0.5
Medium
E Lartë
E Lartë
TRUE

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

spring-tx:3.0.5
—
E Lartë
—
FALSE

struts-core:1.3.8
E Lartë
E Lartë
E Lartë
TRUE

xwork-core: 2.3.30
E Lartë
—
—
TRUE

struts2-core: 2.3.30
E Lartë
E Lartë
E Lartë
TRUE

struts-taglib:1.3.8
—
E Lartë
—
FALSE

struts-tiles-1.3.8
—
E Lartë
—
FALSE

Shtesa B. Rezultatet në lidhje me dobësitë
Shkurtimisht:

  • High — vulnerabilitete tĂ« nivelit tĂ« lartĂ« dhe kritik nĂ« komponent
  • Medium — Vulnerabilitete tĂ« nivelit tĂ« mesĂ«m tĂ« kritikĂ«s nĂ« komponent
  • TRUE — Vulnerabilitet i identifikuar saktĂ« (True positive issue)
  • FALSE — Alarm i rremĂ« (False positive issue)

Komponenti
Nexus IQ
Dependency Check
Dependency Track
Serioziteti
Rezultati
Komentari

dom4j: 1.6.1
CVE-2018-1000632
CVE-2018-1000632
CVE-2018-1000632
E Lartë
TRUE

CVE-2020-10683
CVE-2020-10683
CVE-2020-10683
E Lartë
TRUE

log4j-core: 2.3
CVE-2017-5645
CVE-2017-5645
CVE-2017-5645
E Lartë
TRUE

CVE-2020-9488
CVE-2020-9488
CVE-2020-9488
I ulët
TRUE

log4j: 1.2.14
CVE-2019-17571
CVE-2019-17571
—
E Lartë
TRUE

—
CVE-2020-9488
—
I ulët
TRUE

SONATYPE-2010-0053
—
—
E Lartë
TRUE

commons-collections:3.1
—
CVE-2015-6420
CVE-2015-6420
E Lartë
FALSE
Përsërit RCE(OSSINDEX)

—
CVE-2017-15708
CVE-2017-15708
E Lartë
FALSE
Përsërit RCE(OSSINDEX)

SONATYPE-2015-0002
RCE (OSSINDEX)
RCE(OSSINDEX)
E Lartë
TRUE

commons-fileupload:1.3.2
CVE-2016-1000031
CVE-2016-1000031
CVE-2016-1000031
E Lartë
TRUE

SONATYPE-2014-0173
—
—
Medium
TRUE

commons-beanutils:1.7.0
CVE-2014-0114
CVE-2014-0114
CVE-2014-0114
E Lartë
TRUE

—
CVE-2019-10086
CVE-2019-10086
E Lartë
FALSE
Dobësia është e aplikueshme vetëm për versionet 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
E Lartë
TRUE

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

—
CVE-2020-2875
—
Medium
FALSE
E njëjta dobësi si CVE-2019-2692, por me shtesën 'sulmet mund të ndikojnë ndjeshëm në produkte të tjera'

—
CVE-2017-15945
—
E Lartë
FALSE
Nuk është e lidhur me mysql-connector-java

—
CVE-2020-2933
—
I ulët
FALSE
Dublikat për CVE-2020-2934

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

spring-expression:3.0.5
CVE-2018-1270
komponenti nuk u gjet
—
E Lartë
TRUE

CVE-2018-1257
—
—
Medium
TRUE

spring-web:3.0.5
CVE-2016-1000027
komponenti nuk u gjet
—
E Lartë
TRUE

CVE-2014-0225
—
CVE-2014-0225
E Lartë
TRUE

CVE-2011-2730
—
—
E Lartë
TRUE

—
—
CVE-2013-4152
Medium
TRUE

CVE-2018-1272
—
—
E Lartë
TRUE

CVE-2020-5398
—
—
E Lartë
TRUE
Shembulli shqetësues në mbështetje të IQ: 'Ekipa e kërkimit të sigurisë së Sonatype zbuloi se kjo dobësi ishte futur në versionin 3.0.2.RELEASE dhe jo 5.0.x siç është deklaruar në njoftim.'

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
komponenti nuk u gjet
—
Medium
TRUE

spring-core:3.0.5
—
CVE-2011-2730
CVE-2011-2730
E Lartë
TRUE

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

—
—
CVE-2013-4152
Medium
FALSE
Dublikat e kësaj dobësie në spring-web

—
CVE-2013-4152
—
Medium
FALSE
Dobësia është e lidhur me komponentin spring-web

—
CVE-2013-6429
CVE-2013-6429
Medium
FALSE
Dobësia është e lidhur me komponentin spring-web

—
CVE-2013-6430
—
Medium
FALSE
Dobësia është e lidhur me komponentin spring-web

—
CVE-2013-7315
CVE-2013-7315
Medium
FALSE
SPLIT nga CVE-2013-4152. + Dobësia është e lidhur me komponentin spring-web

—
CVE-2014-0054
CVE-2014-0054
Medium
FALSE
Dobësia është e lidhur me komponentin spring-web

—
CVE-2014-0225
—
E Lartë
FALSE
Dobësia është e lidhur me komponentin spring-web

—
—
CVE-2014-0225
E Lartë
FALSE
Dublikat e kësaj dobësie në spring-web

—
CVE-2014-1904
CVE-2014-1904
Medium
FALSE
Dobësia është e lidhur me komponentin spring-web-mvc

—
CVE-2014-3625
CVE-2014-3625
Medium
FALSE
Dobësia është e lidhur me komponentin spring-web-mvc

—
CVE-2016-9878
CVE-2016-9878
E Lartë
FALSE
Dobësia është e lidhur me komponentin spring-web-mvc

—
CVE-2018-1270
CVE-2018-1270
E Lartë
FALSE
Për spring-expression / spring-messages

—
CVE-2018-1271
CVE-2018-1271
Medium
FALSE
Dobësia është e lidhur me komponentin spring-web-mvc

—
CVE-2018-1272
CVE-2018-1272
E Lartë
TRUE

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

SONATYPE-2015-0327
—
—
I ulët
TRUE

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

spring-tx:3.0.5
—
CVE-2011-2730
—
E Lartë
FALSE
Dobësia nuk është e lidhur me spring-tx

—
CVE-2011-2894
—
E Lartë
FALSE
Dobësia nuk është e lidhur me spring-tx

—
CVE-2013-4152
—
Medium
FALSE
Dobësia nuk është e lidhur me spring-tx

—
CVE-2013-6429
—
Medium
FALSE
Dobësia nuk është e lidhur me spring-tx

—
CVE-2013-6430
—
Medium
FALSE
Dobësia nuk është e lidhur me spring-tx

—
CVE-2013-7315
—
Medium
FALSE
Dobësia nuk është e lidhur me spring-tx

—
CVE-2014-0054
—
Medium
FALSE
Dobësia nuk është e lidhur me spring-tx

—
CVE-2014-0225
—
E Lartë
FALSE
Dobësia nuk është e lidhur me spring-tx

—
CVE-2014-1904
—
Medium
FALSE
Dobësia nuk është e lidhur me spring-tx

—
CVE-2014-3625
—
Medium
FALSE
Dobësia nuk është e lidhur me spring-tx

—
CVE-2016-9878
—
E Lartë
FALSE
Dobësia nuk është e lidhur me spring-tx

—
CVE-2018-1270
—
E Lartë
FALSE
Dobësia nuk është e lidhur me spring-tx

—
CVE-2018-1271
—
Medium
FALSE
Dobësia nuk është e lidhur me spring-tx

—
CVE-2018-1272
—
Medium
FALSE
Dobësia nuk është e lidhur me spring-tx

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

Medium
FALËS
Dobësia e Struts 2

—
CVE-2012-0391 (OSSINDEX)
CVE-2012-0391
E Lartë
FALSE
Dobësia e Struts 2

—
CVE-2014-0094 (OSSINDEX)
CVE-2014-0094
Medium
FALSE
Dobësia e Struts 2

—
CVE-2014-0113 (OSSINDEX)
CVE-2014-0113
E Lartë
FALSE
Dobësia e Struts 2

CVE-2016-1182
3VE-2016-1182
—
E Lartë
TRUE

—
—
CVE-2011-5057
Medium
FALSE
Dobësia e Struts 2

—
CVE-2012-0392 (OSSINDEX)
CVE-2012-0392
E Lartë
FALSE
Dobësia e Struts 2

—
CVE-2012-0393 (OSSINDEX)
CVE-2012-0393
Medium
FALSE
Dobësia e Struts 2

CVE-2015-0899
CVE-2015-0899
—
E Lartë
TRUE

—
CVE-2012-0394
CVE-2012-0394
Medium
FALSE
Dobësia e Struts 2

—
CVE-2012-0838 (OSSINDEX)
CVE-2012-0838
E Lartë
FALSE
Dobësia e Struts 2

—
CVE-2013-1965 (OSSINDEX)
CVE-2013-1965
E Lartë
FALSE
Dobësia e Struts 2

—
CVE-2013-1966 (OSSINDEX)
CVE-2013-1966
E Lartë
FALËS
Dobësia e Struts 2

—
CVE-2013-2115
CVE-2013-2115
E Lartë
FALËS
Dobësia e Struts 2

—
CVE-2013-2134 (OSSINDEX)
CVE-2013-2134
E Lartë
FALËS
Dobësia e Struts 2

—
CVE-2013-2135 (OSSINDEX)
CVE-2013-2135
E Lartë
FALËS
Dobësia e Struts 2

CVE-2014-0114
CVE-2014-0114
—
E Lartë
TRUE

—
CVE-2015-2992
CVE-2015-2992
Medium
FALSE
Dobësia e Struts 2

—
CVE-2016-0785 (OSSINDEX)
CVE-2016-0785
E Lartë
FALSE
Dobësia e Struts 2

CVE-2016-1181
CVE-2016-1181
—
E Lartë
TRUE

—
CVE-2016-4003 (OSSINDEX)
CVE-2016-4003
E Lartë
FALSE
Dobësia e Struts 2

xwork-core:2.3.30
CVE-2017-9804
—
—
E Lartë
TRUE

SONATYPE-2017-0173
—
—
E Lartë
TRUE

CVE-2017-7672
—
—
E Lartë
FALSE
Dublimi për CVE-2017-9804

SONATYPE-2016-0127
—
—
E Lartë
TRUE

struts2-core:2.3.30
—
CVE-2016-6795
CVE-2016-6795
E Lartë
TRUE

—
CVE-2017-9787
CVE-2017-9787
E Lartë
TRUE

—
CVE-2017-9791
CVE-2017-9791
E Lartë
TRUE

—
CVE-2017-9793
—
E Lartë
FALSE
Dublikati për CVE-2018-1327

—
CVE-2017-9804
—
E Lartë
TRUE

—
CVE-2017-9805
CVE-2017-9805
E Lartë
TRUE

CVE-2016-4003
—
—
Medium
FALSE
I aplikueshëm për Apache Struts 2.x deri në 2.3.28, ndryshe nga kjo versioni 2.3.30. Megjithatë, sipas përshkrimit, CVE vepron në çdo version të Struts 2, nëse përdoret JRE 1.7 dhe më pak. Duket se na kanë mbrojtur, por duket më shumë si FALSE

—
CVE-2018-1327
CVE-2018-1327
E Lartë
TRUE

CVE-2017-5638
CVE-2017-5638
CVE-2017-5638
E Lartë
TRUE
Ajo është pikërisht dobësia që përdorën hakerët në Equifax në vitin 2017

CVE-2017-12611
CVE-2017-12611
—
E Lartë
TRUE

CVE-2018-11776
CVE-2018-11776
CVE-2018-11776
E Lartë
TRUE

struts-taglib:1.3.8
—
CVE-2012-0394
—
Medium
FALSE
Për struts2-core

—
CVE-2013-2115
—
E Lartë
FALSE
Për struts2-core

—
CVE-2014-0114
—
E Lartë
FALSE
Për commons-beanutils

—
CVE-2015-0899
—
E Lartë
FALSE
Nuk i përket taglib

—
CVE-2015-2992
—
Medium
FALSE
I përket struts2-core

—
CVE-2016-1181
—
E Lartë
FALSE
Nuk i përket taglib

—
CVE-2016-1182
—
E Lartë
FALSE
Nuk i përket taglib

struts-tiles-1.3.8
—
CVE-2012-0394
—
Medium
FALSE
Për struts2-core

—
CVE-2013-2115
—
E Lartë
FALSE
Për struts2-core

—
CVE-2014-0114
—
E Lartë
FALSE
Nën commons-beanutils

—
CVE-2015-0899
—
E Lartë
FALSE
Nuk i përket tiles

—
CVE-2015-2992
—
Medium
FALSE
Për struts2-core

—
CVE-2016-1181
—
E Lartë
FALSE
Nuk i përket taglib

—
CVE-2016-1182
—
E Lartë
FALSE
Nuk i përket taglib

Burimi: habr.com

Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« đŸ”„ Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« | ProHoster