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

RĂ«ndĂ«sia e analizĂ«s sĂ« komponenteve tĂ« jashtme tĂ« softuerit (angl. Software Composition Analysis — SCA) gjatĂ« procesit tĂ« zhvillimit po rritet me kalimin e raportit vjetor mbi dobĂ«sitĂ« e bibliotekave 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Ă« zbuluara nĂ« open source nĂ« 2019 u rrit pothuajse 1.5 herĂ« nĂ« krahasim me vitin e kaluar, ndonĂ«se komponentet me kod tĂ« hapur janĂ« pĂ«rdorur nĂ« 60% deri nĂ« 80% tĂ« projekteve. NĂ«se shikojmĂ« mendimin e pavarur, proceset SCA janĂ« njĂ« praktikĂ« e veçantĂ« e OWASP SAMM dhe BSIMM si njĂ« tregues i pjekurisĂ«, dhe nĂ« gjysmĂ«n e parĂ« tĂ« vitit 2020, OWASP publikoi standardin e ri OWASP Software Component Verification Standard (SCVS), qĂ« 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 është rasti me kompaninë Equifax në maj 2017. Hakerë të panjohur morën informacionin e 143 milion amerikanëve, duke përfshirë emrat e plotë, adresat, numrat e sigurimeve shoqërore dhe patentat. Në 209,000 raste, dokumentet gjithashtu përmbanin informacion mbi kartat e bankave të të prekurve. Kjo rrjedhje ndodhi si pasojë e shfrytëzimit të një dobësie kritike në Apache Struts 2 (CVE-2017-5638), ndërsa një rregullim ishte lëshuar që në mars 2017. Kompania pati dy muaj për të instaluar azhurnimin, por askush nuk e mori parasysh këtë.

Në këtë artikull do të diskutohet zgjedhja e një instrumenti për kryerjen e SCA nga këndvështrimi i cilësisë së rezultateve të analizës. Gjithashtu do të ofrohen krahasime funksionale të instrumenteve. Procesi i integrimit në CI/CD dhe mundësitë e integrimit do t'i lëmë për publikuar më vonë. Një listë e gjerë instrumentesh u paraqit nga OWASP në faqen e saj, por në kuadër të këtij rishikimi do të prekim vetëm instrumentin më të popullarizuar open source Dependency Check, platformën open source pak më pak të njohur Dependency Track dhe zgjidhjen Enterprise Sonatype Nexus IQ. Gjithashtu do të shqyrtojmë se si funksionojnë këto zgjidhje dhe do të krahasojmë rezultatet e marra për rastet e rreme.

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

Parimi i funksionimit

Dependency Check ËshtĂ« njĂ« utilit tĂ« linjĂ«s komandĂ«s (CLI, maven, moduli jenkins, ant), i cili analizon skedarĂ«t e projektit, mbledh fragmente informacioni mbi varĂ«sitĂ« (emri i paketĂ«s, groupid, titulli i specifikimit, versioni
), ndryn njĂ« varg CPE — (Common Platform Enumeration), URL e PaketĂ«s (PURL) dhe identifikon pĂ«r CPE/PURL vulnerabilitete nga databazat (NVD, Sonatype OSS Index, NPM Audit API
), pas sĂ« cilĂ«s ndryn njĂ« raport njĂ«herĂ«sh nĂ« formatin HTML, JSON, XML


Le të shohim se si duket CPE:

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

  • Pjesa: TĂ« dhĂ«na qĂ« tregon se komponenti i pĂ«rket aplikacionit (a), sistemit operativ (o), harduerit (h) (Pika e detyrueshme)
  • Prodhuesi: Emri i prodhuesit tĂ« produktit (Pika e detyrueshme)
  • Produkti: Emri i produktit (Pika e detyrueshme)
  • Versioni: Versioni i komponentĂ«s (Pika e vjetruar)
  • PĂ«rditĂ«sim: PĂ«rditĂ«simi i paketĂ«s
  • Edisioni: Versioni i trashĂ«guar (Pika e vjetruar)
  • Gjuha: Gjuha e pĂ«rcaktuar nĂ« RFC-5646
  • Edisioni SW: Versioni i softuerit
  • SW i Destinuar: Mjedisi programor nĂ« tĂ« cilin operon produkti
  • HW i Destinuar: Mjedisi hardueror nĂ« tĂ« cilin operon produkti
  • TjetĂ«r: Informacion mbi ofruesin ose produktin

Një shembull CPE duket si më poshtë:

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

Vargu 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 vulnerabilitetin CVE-2014-0225 në NVD, mund të shohim përmendjen e këtij CPE. Problemi i parë, në të cilin duhet të përqendrohemi, është se CVE në NVD, sipas CPE, njofton për një problém në framework, e jo në një komponent të caktuar. Domethënë, nëse zhvilluesit janë të lidhur ngushtë me framework-un dhe vulnerabiliteti i zbuluar nuk ndikon në modulat që përdorin zhvilluesit, një specialist i sigurisë do të duhet përfundimisht të hetojë këtë CVE dhe të mendojë për përditësimin.

URL-ja është gjithashtu e përdorur nga mjetet SCA. Formati i URL-së së paketës është si në vijim:

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

  • Schemi: Do tĂ« jetĂ« gjithmonĂ« ‘pkg’, qĂ« tregon se kjo Ă«shtĂ« URL e paketĂ«s (Pika e detyrueshme)
  • Tipi: ‘Tipi’ i paketĂ«s ose ‘protokolli’ i paketĂ«s, si p.sh. maven, npm, nuget, gem, pypi, etj. (Pika e detyrueshme)
  • Namespace: NjĂ« prefiks i caktuar emri, siç Ă«shtĂ« identifikuesi i grupit Maven, pronari i imazhit Docker, pĂ«rdoruesi ose organizata GitHub. TĂ« opcional dhe varet nga tipi.
  • Emri: Emri i paketĂ«s (Pika e detyrueshme)
  • Versioni: Versioni i paketĂ«s
  • Kualifikuesit: TĂ« dhĂ«nat e tjera kualifikuese pĂ«r paketĂ«n, siç janĂ« OS, arkitektura, shpĂ«rndarja, etj. JanĂ« opsionale dhe varen nga lloji i elementit.
  • Subpika: Rruge 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 — 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, hashes, URL e paketĂ«s, botuesi, licenca. MĂ« pas, Dependency Track analizon BOM, shqyrton varĂ«sitĂ« pĂ«r CVE-tĂ« ekzistuese nga baza e tĂ« dhĂ«nave tĂ« dobĂ«sive (NVD, Sonatype OSS Index ...), pas çka ndĂ«rtuon grafika, llogarit metrika, duke pĂ«rditĂ«suar rregullisht tĂ« dhĂ«nat pĂ«r statusin e dobĂ«sive tĂ« komponentĂ«ve.

Shembuj se si 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 parametra hyrës për Dependency Track, por edhe për inventarizimin e komponentëve të softuerit në zinxhirin e furnizimit, për shembull, për t'i ofruar klientit të softuerit. Në 2014, në SHBA u propozua madje një ligj «Cyber Supply Chain Management and Transparency Act of 2014», i cili tha se gjatë blerjes së softuerit, çdo institucion shtetëror duhet të kërkonte BOM për të parandaluar përdorimin e komponentëve të dëmtuar, por ligji asnjëherë nuk u miratua.

Kthehu te SCA, Dependency Track ka integrime tĂ« gatshme me Platforma Njoftimi si Slack, sisteme menaxhimi tĂ« dobĂ«sive si Kenna Security. ËshtĂ« gjithashtu e rĂ«ndĂ«sishme tĂ« theksohet se Dependency Track identifikon versionet e vjetra tĂ« paketave dhe ofron informacion mbi licencat (pĂ«rmes mbĂ«shtetjes SPDX).

Kur flasim për cilësinë e SCA, ka një ndryshim thelbësor.

Dependency Track nuk pranon projektin si input, por pranon pikërisht BOM. Kjo do të thotë se nëse duam të kontrollojmë projektin, fillimisht duhet të gjenerojmë bom.xml, për shembull, me CycloneDX. Kështu që, Dependency Track varet drejtpërdrejt nga CycloneDX. Në të njëjtën kohë, kjo ofron mundësi për personalizim. Kështu, ekipi i OZON shkroi modulin CycloneDX për ndërtimin e skedave BOM për projekte në Golang me qëllim skanimin e mëpasshëm përmes Dependency Track.

Nexus IQ është një zgjidhje komerciale SCA nga kompania 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 projekte java) përmes ndërfaqes web ose API, ashtu si dhe BOM, nëse organizata juaj nuk arriti të kalojë nga CycloneDX në zgjidhjen e re. Ndryshe nga zgjidhjet open source, IQ i referohet jo vetëm CP/PURL për komponentin e zbuluar dhe përkatësisht dobësisë në bazën e të dhënave, por gjithashtu merr parasysh studimet e veta, për shembull, emri i funksionit ose klasës së dobësuar. Mekanizmat IQ do të shqyrtohen më vonë gjatë analizës së rezultateve.

Le të përmbledhim disa përfundime mbi veçoritë funksionale dhe gjithashtu 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
+
+
+

Veçoritë funksionale

Veçoritë funksionale
Nexus IQ
Dependency Check
Dependency Track

Mundësia për të siguruar kontrollimin e komponentëve të përdorur në kodin burimor për pastërtinë e licencës
+
—
+

Mundësia për skanimin dhe analizën e dobësive dhe pastërtinë e licencës 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
+
—
—

Mundësia për skanimin e depozitave me kod burimor për komponentë të dobësuar
+ 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ërkuesish të specializuar
+
—
—

Puna në një rreth të mbyllur
+
+
+

Përdorimi i bazave të dhënash të palëve të treta
+ Baza e të dhënave e mbyllur Sonatype
+ Sonatype OSS, NPM Public Advisors
+ Sonatype OSS, NPM Public Advisors, RetireJS, VulnDB, mbështetje për bazën e të dhënave të dobësive

Mundësia për të filtruar komponentët me kod burimor gjatë përpjekjes për t'i ngarkuar në rrethin e zhvillimit sipas politikave të konfiguruara
+
—
—

Rekomandime për riparimin e dobësive, prania e lidhjeve për riparim
+
+- (varet nga përshkrimi në bazat publike)
+- (varet nga përshkrimi në bazat publike)

Rangimi i dobësive të zbuluara sipas kriticitetit
+
+
+

Modeli i rolit të aksesit
+
—
+

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

Selekcioni / renditja e dobësive sipas kritereve të përcaktuara
+
—
+

Dashboard për gjendjen e aplikacioneve
+
—
+

Gjenerimi i raporteve në formatin PDF
+
—
—

Gjenerimi 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 vazhdueshëm të integrimit (continuous integration) Bamboo
+
—
—

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

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

Integrimi me sistemin e vazhdueshëm të integrimit (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

Çelja e parĂ«

Do të ekzekutojmë Dependency Check në një aplikacion të dizajnuar që të ketë dobësi të qëllimshme DVJA.

Për këtë do të shfrytëzojmë 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 total të dobësive, mund të shohim informacion mbi dobësitë me nivel të lartë të Rrezikshmërisë dhe Besueshmërisë, duke treguar paketën, CPE, numrin CVE.

Më pas vjen informacioni më i detajuar, veçanërisht se mbi çfarë baze është marrë vendimi (evidence), domethënë një BOM.

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

Pastaj vjen CPE, PURL dhe përshkrimi i CVE. Sidoqoftë, rekomandimet për rregullimin nuk jepen për shkak të mungesës së tyre në bazën NVD.

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

Për një shikim sistematik të rezultateve të skanimit, mund të konfigurohet Nginx me konfigurimet minimale, ose të dërgohen defektet e marra në sistemin e menaxhimit 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 të paraqitura, prandaj problemi i ruajtjes së defekteve në një zgjidhje të jashtme këtu nuk është i pranishëm.
Për instalimin ka skenarët e mëposhtëm të mbështetur: Docker, WAR, Executable WAR.

Çelja e parĂ«

KalojmĂ« nĂ« URL-nĂ« e shĂ«rbimit tĂ« nisur. HyjmĂ« pĂ«rmes admin/admin, ndryshojmĂ« emrin e pĂ«rdoruesit dhe fjalĂ«kalimin, pas sĂ« cilĂ«s shkojmĂ« nĂ« Dashboard. E ardhshme qĂ« do tĂ« bĂ«jmĂ« – do tĂ« krijojmĂ« njĂ« projekt pĂ«r njĂ« aplikacion provues nĂ« Java nĂ« Home/Projects → Create Project . Si njĂ« shembull do tĂ« marrĂ«im DVJA.

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

Duke qenë se Dependency Track mund të pranojë si të dhëna hyrëse vetëm BOM, ky BOM duhet të merret. Do të shfrytëzojmë CycloneDX Maven Plugin:

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

MarrimĂ« bom.xml dhe ngarkojmĂ« skedarin nĂ« projektin e krijuar DVJA → VarĂ«sitĂ« → Ngarko BOM.

Tani do tĂ« shkojmĂ« nĂ« Administrim → Analizuesit. KuptojmĂ« se kemi aktivizuar vetĂ«m Analizuesin e BrendshĂ«m, i cili pĂ«rfshin NVD. Po ashtu do tĂ« lidhim Sonatype OSS Index.

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

Në këtë mënyrë do të marrim pamjen e mëposhtme për projektin tonë:

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

Gjithashtu në listë mund të gjeni një dobësi që i përket Sonatype OSS:

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

ZhgĂ«njimi kryesor ishte se Dependency Track nuk pranon mĂ« raporte xml tĂ« Dependency Check. Versionet e fundit tĂ« mbĂ«shtetura tĂ« integrimit me Dependency Check ishin 1.0.0 — 4.0.2, ndĂ«rsa unĂ« testova 5.3.2.

Ja video (dhe ja), kur ishte ende e mundur.

Nexus IQ

Çelja e parĂ«

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

Pas hyrjes në konsolë, duhet të krijojmë 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 është pak më i komplikuar, pasi gjithashtu duhet të krijojmë politika që janë të aplikueshme për "stet" të ndryshme (dev, build, stage, release). Kjo është e nevojshme për të bllokuar komponentët e dobët ndërsa përparojmë në pipeline drejt produkteve, ose për të bllokuar sa herë që ato hyjnë në Nexus Repo gjatë shkarkimit nga zhvilluesit.

Për të ndjerë diferencën mes open source dhe enterprise, do të ekzekutojmë një skanim të njëjtë përmes Nexus IQ ngjashëm si për plugin Maven, duke krijuar më parë një aplikacion testues 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 në URL për raportin e gjeneruar në ndërfaqen web të IQ:

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

Këtu mund të shihni të gjithë shkeljet e politikës me tregues të nivelit të ndryshëm të rëndësisë (nga Info deri të Kritikuar për Sigurinë). Maka D pranë komponentit tregon se komponenti është Varësi Direkte, ndërsa letra T pranë komponentit tregon se komponenti është Varësi Transitive, domethënë është transitive.

Për më tepër, raporti State of Open Source Security Report 2020 nga Snyk tregon se më shumë se 70% e dobësive open source që janë zbuluar në Node.js, Java dhe Ruby ndodhen në varësitë transitives.

Nëse hapim një nga shkeljet e politikës Nexus IQ, mund të shohim përshkrimin e komponentit, si dhe Grafikun e Versioneve, i cili tregon vendndodhjen e versionit aktual në grafin temporal, si dhe në çfarë momenti dobësia ndalon së qeni e tillë. Lartësia e qirinjve në grafik tregon popullaritetin e përdorimit të këtij komponenti.

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

Nëse kaloni në seksionin e dobësive dhe zgjidhni CVE, mund të lexoni përshkrimin e kësaj dobësie, rekomandimet për ndreqje dhe gjithashtu arsyen pse ky komponent ka rënë nën shkelje, domethënë praninë 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ë ndërlidhen me komponentët e jashtëm Java, duke hequr komponentët js. Në kllapa do të shfaqim numrin e dobësive që janë gjetur jashtë NVD.

SĂ« bashku Nexus IQ:

  • KomponentĂ« tĂ« skanuar: 62
  • KomponentĂ« tĂ« dobĂ«suar: 16
  • DobĂ«si tĂ« gjetura: 42 (8 nĂ« bazĂ«n e tĂ« dhĂ«nave sonatype)

Së bashku Kontrolli i Varësive:

  • KomponentĂ« tĂ« skanuar: 47
  • KomponentĂ« tĂ« dobĂ«suar: 13
  • DobĂ«si tĂ« gjetura: 91 (14 nĂ« sonatype oss)

Së bashku Ndjekja e Varësive:

  • KomponentĂ« tĂ« skanuar: 59
  • KomponentĂ« tĂ« dobĂ«suar: 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 false.

Kërcënimi

Ky rishikim nuk është një të vërtetë të padiskutueshme. Para autorit nuk ishte synimi për të veçuar një mjet në mes të të tjerëve. Qëllimi i rishikimit ishte të tregonte mekanizmat e punës së mjeteve SCA dhe mënyrat e verifikimit të rezultateve të tyre.

Krahasimi i rezultateve

Kushtet:

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

  • MospĂ«rputhja e CVE-sĂ« me komponentin e zbuluar
  • PĂ«r shembull, nĂ«se dobĂ«sia Ă«shtĂ« zbuluar nĂ« strukturĂ«n struts2 dhe mjeti tregon nĂ« komponentin e strukturĂ«s struts-tiles, tĂ« cilit kjo dobĂ«si nuk i pĂ«rket, atĂ«herĂ« kjo Ă«shtĂ« njĂ« alarme false.
  • MospĂ«rputhja e CVE-sĂ« me versionin e zbuluar tĂ« komponentit
  • PĂ«r shembull, nĂ«se dobĂ«sia Ă«shtĂ« e lidhur me versionin python > 3.5 dhe mjeti e shĂ«non si tĂ« dobĂ«suar versionin 2.7 — kjo Ă«shtĂ« njĂ« alarme false, pasi nĂ« tĂ« vĂ«rtetĂ« dobĂ«sia i pĂ«rket vetĂ«m degĂ«s sĂ« produktit 3.x.
  • Duplicimi i CVE-sĂ«
  • PĂ«r shembull, nĂ«se SCA ka treguar njĂ« CVE qĂ« lejon realizimin e RCE-sĂ«, dhe mĂ« pas SCA tregon pĂ«r kĂ«tĂ« CVE pĂ«r tĂ« njĂ«jtin komponent, CVE qĂ« Ă«shtĂ« e aplikueshme pĂ«r produktet Cisco tĂ« prekura nga kjo RCE, atĂ«herĂ« kjo do tĂ« jetĂ« njĂ« alarme false.
  • PĂ«r shembull, nĂ«se CVE u gjet nĂ« komponentin spring-web, dhe mĂ« pas SCA tregon pĂ«r tĂ« njĂ«jtin CVE nĂ« komponentĂ« tĂ« tjerĂ« tĂ« strukturĂ«s Spring Framework, kurse CVE nuk ka lidhje me komponentĂ« tĂ« tjerĂ«. NĂ« kĂ«tĂ« rast do tĂ« jetĂ« njĂ« alarme false.

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

Përmbledhja e rezultateve

Të kalojmë menjëherë në rezultatet e rishikimit manual të dobësive të identifikuara. Me raportin e plotë për çdo CVE mund të njihemi në Shtesë.

Përmbledhje e rezultateve për të gjitha dobësitë:

Parametri
Nexus IQ
Dependency Check
Dependency Track

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

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

Nuk janë gjetur dobësi relevante (false negative)
10
20
27

Përmbledhje e rezultateve 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

Komponentë të dobët të identifikuar gabimisht (false positive)
1
5
0

Komponentë të dobët të identifikuar gabimisht (false positive)
0
6
6

Do të ndërtojmë grafikë vizuale për të vlerësuar raportin e false positive dhe false negative ndaj numrit total të dobësive. Komponentët janë shënuar horizontalisht, ndërsa dobësitë e identifikuara janë shënuar vertikalisht.

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 mbi testimin e një projekti me 1531 komponentë duke përdorur OWASP Dependency Check. Siç mund ta shohim, raporti i zhurmës ndaj goditjeve të sakta është në përputhje 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 arsyen e këtyre rezultateve.

Më shumë

№1

Së pari do të shqyrtojmë disa pika interesante nga Sonatype Nexus IQ.

Nexus IQ tregon një problem me deserealizimin me mundësinë për të kryer RCE në Spring Framework disa herë. CVE-2016-1000027 në spring-web:3.0.5 herën e parë 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ësisë për disa CVE. Nëse shikojmë 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 është mjaft e njohur. Në raportin White Source për vitin 2011 kjo CVE u pranuar si një nga më të zakonshmet. Përshkrimet për CVE-2016-100027 në përgjithësi janë të pakta në NVD, dhe duket se është e aplikueshme vetëm për Spring Framework 4.1.4. Le të shohim referencë dhe këtu bëhet gjithçka më e qartë. Nga artikulli Tenable kuptojmë se përveç dobësisë në RemoteInvocationSerializingExporter në CVE-2011-2894, dobësia vërehet në HttpInvokerServiceExporter. Këtë na e thotë Nexus IQ:

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

Megjithatë, nuk ka asgjë të ngjashme në NVD, për këtë arsye, Dependency Check dhe Dependency Track marrin false negative.

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

№2

Komponenti
Vulnerabiliteti
Rezultati

struts2-core:2.3.30
CVE-2016-4003
FALSE

Nëse e studiojmë dobësinë CVE-2016-4003, do të kuptojmë se është rregulluar që në versionin 2.3.28, megjithatë Nexus IQ na informon për të. Në përshkrimin e dobësisë ka një vërejtje:

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

Pra të thënë se dobësia ekziston vetëm në lidhje me versionin e vjetëruar të JRE, për të cilin na informuan. Megjithatë, ne e konsiderojmë këtë si një False Positive, ndonëse nuk është ndonjë gjë e rëndë.

№ 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 e CVE-2017-9804 dhe CVE-2017-7672, do ta kuptojmë se problemi qëndron në klasën URLValidator, meqë CVE-2017-9804 buron nga CVE-2017-7672. Prania e dobësisë së dytë nuk ofron asnjë vlerë të dobishme përveç rritjes së severitetit në High, ndaj mund ta konsiderojmë këtë si zhurmë të tepërt.

Në përgjithësi, nuk u gjetën false positive të tjera për Nexus IQ.

№4

Ka disa aspekte që e veçojnë IQ nga zgjidhjet e tjera.

Komponenti
Vulnerabiliteti
Rezultati

spring-web:3.0.5
CVE-2020-5398
TRUE

CVE në NVD raporton se është e aplikueshme vetëm për versionet 5.2.x deri në 5.2.3, 5.1.x deri në 5.1.13, dhe versionet 5.0.x deri në 5.0.16, megjithatë, nëse shikojmë përshkrimin e CVE në Nexus IQ, do të shohim se:
Njoftimi për devijimin nga këshilla: Ekipi i kërkimeve për sigurinë në Sonatype zbuloi se kjo dobësi u fut në versionin 3.0.2.RELEASE dhe jo 5.0.x siç u tha në njoftim.

Pas kësaj vjen PoC për këtë dobësi, e cila raportonn se ajo është e pranishme në versionin 3.0.5.

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

№5

Të shohim për false positive për Dependency Check dhe Dependency Track.

Dependency Check veçohet pĂ«r faktin se pasqyron ato CVE qĂ« i pĂ«rkasin tĂ« gjithĂ« frameworkut nĂ« NVD, nĂ« ato komponentĂ« pĂ«r tĂ« cilat kĂ«to CVE nuk janĂ« tĂ« aplikueshme. Kjo ka tĂ« bĂ«jĂ« me CVE-2012-0394, CVE-2013-2115, CVE-2014-0114, CVE-2015-0899, CVE-2015-2992, CVE-2016-1181, CVE-2016-1182, tĂ« cilat Dependency Check "ka lidhur" me struts-taglib:1.3.8 dhe struts-tiles-1.3.8. KĂ«to komponentĂ« nuk kanĂ« asgjĂ« tĂ« pĂ«rbashkĂ«t me atĂ« qĂ« pĂ«rshkruhet nĂ« CVE — pĂ«rpunimi i kĂ«rkesave, validimi i faqeve dhe kĂ«shtu me radhĂ«. Kjo Ă«shtĂ« pĂ«r shkak se ajo qĂ« kanĂ« tĂ« pĂ«rbashkĂ«t kĂ«to CVE dhe komponentĂ«t Ă«shtĂ« vetĂ«m frameworku, pĂ«r shkak tĂ« sĂ« cilĂ«s Dependency Check e konsideroi kĂ«tĂ« si njĂ« dobĂ«si.

E njëjta situatë është 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ë dobësi, të cilat në të vërtetë janë të aplikueshme për struts2-core, që në thelb është një framework i veçantë. Në këtë rast, Nexus IQ e kuptoi saktësisht situatën dhe në ato CVE që lëshoi, tregoi se struts-core kishte kaluar në fund të jetës dhe duhej të kalonte te struts2-core.

№6

Në disa raste, interpretimi i një gabimi të qartë nga Dependency Check dhe Dependency Track është i padrejtë. Në veçanti, 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 kanë lidhur me spring-core:3.0.5, në të vërtetë i përkasin spring-web:3.0.5. Disa nga këto CVE janë identifikuar gjithashtu nga Nexus IQ, megjithatë IQ i ka identifikuar ato saktësisht me një komponent tjetër. Fakti që këto cenueshmëri nuk janë gjetur në spring-core, nuk do të thotë se ato nuk ekzistojnë në kuadër të framework-ut në përgjithësi dhe mjetet open source me vendosmëri e kanë theksuar ekzistencën e këtyre cenueshmërive (thjesht kanë bërë një gabim të vogël).

Përfundimet

Siç mund ta shohim, përcaktimi i saktësisë së cenueshmërive të zbuluara me një rishikim manual nuk jep rezultate të qarta, duke krijuar kështu momente të kontestueshme. Rezultatet tregojnë se zgjidhja Nexus IQ ka nivelin më të ulët të goditjeve false dhe saktësinë më të lartë.

Në radhë të parë, kjo lidhet me faktin se ekipi i Sonatype ka zgjeruar përshkrimin për çdo cenueshmëri CVE nga NVD në bazat e tyre, duke treguar me saktësi deri në klasë ose funksion të cenueshmërisë për versionet e caktuara të komponentëve, duke kryer studime shtesë (p.sh., duke kontrolluar cenueshmëritë në versionet më të vjetra të softuerit).

Një ndikim të rëndësishëm në rezultatet ka edhe ato cenueshmëri që nuk kanë arritur 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 rreth 45% e cenueshmërive me burim të hapur nuk raportohen në NVD. Sipas bazës së të dhënave WhiteSource, vetëm 29% e të gjitha cenueshmërive me burim të hapur, të regjistruara jashtë NVD, përfundojnë në atë, prandaj kaq e rëndësishme është të kërkohen cenueshmëritë gjithashtu në burime të tjera.

Si rezultat, Dependency Check jep një sasi të madhe zhurmash, duke humbur një pjesë të komponentëve të cenueshëm. Dependency Track jep më pak zhurma dhe identifikon një numër të madh komponentësh, çka nuk dëmton syrit në ndërfaqen e uebit.

MegjithatĂ«, praktika tregon se open source duhet tĂ« jetĂ« hapi i parĂ« drejt njĂ« DevSecOps tĂ« zhvilluar. E para qĂ« duhet tĂ« mendohet pĂ«r integrimin e SCA nĂ« zhvillim — janĂ« proceset, pra diskutimet me menaxhimin dhe departamentet e tjera mbi 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 do tĂ« pĂ«rmbushin tĂ« gjitha nevojat e biznesit, ndĂ«rsa zgjidhjet Enterprise do tĂ« jenĂ« njĂ« vazhdim logjik pĂ«r shkak tĂ« rritjes sĂ« kompleksitetit tĂ« aplikacioneve qĂ« zhvillohen.

Aplikimi A. Rezultatet për komponentët
Simbolet:

  • High — vulnerabilitete nĂ« nivel tĂ« lartĂ« dhe kritik nĂ« komponent
  • Medium — vulnerabilitete me mesatare rĂ«ndĂ«si nĂ« komponent
  • TRUE — Vulnerabilitet i identifikuar saktĂ« (issue True positive)
  • FALSE — Alarm i rremĂ« (issue False positive)

Komponenti
Nexus IQ
Dependency Check
Dependency Track
Rezultati

dom4j: 1.6.1
I Lartë
I Lartë
I Lartë
TRUE

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

log4j: 1.2.14
I Lartë
I Lartë
—
TRUE

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

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

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

commons-codec:1:10
Mesatar
—
—
TRUE

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

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

TRUE

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

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

spring-core:3.0.5
Mesatar
I Lartë
I Lartë
TRUE

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

spring-tx:3.0.5
—
I Lartë
—
FALSE

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

xwork-core: 2.3.30
I Lartë
—
—
TRUE

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

struts-taglib:1.3.8
—
I Lartë
—
FALSE

struts-tiles-1.3.8
—
I Lartë
—
FALSE

Aplikimi B. Rezultatet për vulnerabilitetet
Simbolet:

  • High — vulnerabilitete nĂ« nivel tĂ« lartĂ« dhe kritik nĂ« komponent
  • Medium — vulnerabilitete me mesatare rĂ«ndĂ«si nĂ« komponent
  • TRUE — Vulnerabilitet i identifikuar saktĂ« (issue True positive)
  • FALSE — Alarm i rremĂ« (issue False positive)

Komponenti
Nexus IQ
Dependency Check
Dependency Track
Severity
Rezultati
Koment

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

CVE-2020-10683
CVE-2020-10683
CVE-2020-10683
I Lartë
TRUE

log4j-core: 2.3
CVE-2017-5645
CVE-2017-5645
CVE-2017-5645
I 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
—
I Lartë
TRUE

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

SONATYPE-2010-0053
—
—
I Lartë
TRUE

commons-collections:3.1
—
CVE-2015-6420
CVE-2015-6420
I Lartë
FALSE
Duplicon RCE(OSSINDEX)

—
CVE-2017-15708
CVE-2017-15708
I Lartë
FALSE
Duplicon RCE(OSSINDEX)

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

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

SONATYPE-2014-0173
—
—
Mesatar
TRUE

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

—
CVE-2019-10086
CVE-2019-10086
I Lartë
FALSE
Vulnerabiliteti është i zbatueshëm vetëm për versionet 1.9.2+

commons-codec:1:10
SONATYPE-2012-0050
—
—
Mesatar
TRUE

mysql-connector-java:5.1.42
CVE-2018-3258
CVE-2018-3258
CVE-2018-3258
I Lartë
TRUE

CVE-2019-2692
CVE-2019-2692
—
Mesatar
TRUE

—
CVE-2020-2875
—
Mesatar
FALSE
Të njëjtin vulnerabilitet si CVE-2019-2692, por me shënimin "sulmet mund të ndikojnë ndjeshëm në produkte të tjera"

—
CVE-2017-15945
—
I Lartë
FALSE
Nuk përfshihet në mysql-connector-java

—
CVE-2020-2933
—
I Ulët
FALSE
Duplicon në CVE-2020-2934

CVE-2020-2934
CVE-2020-2934
—
Mesatar
TRUE

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

CVE-2018-1257
—
—
Mesatar
TRUE

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

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

CVE-2011-2730
—
—
I Lartë
TRUE

—
—
CVE-2013-4152
Mesatar
TRUE

CVE-2018-1272
—
—
I Lartë
TRUE

CVE-2020-5398
—
—
I Lartë
TRUE
Një shembull i qartë në favor të IQ: "Ekipi i kërkimeve në siguri të Sonatype zbuloi se ky vulnerabilitet u prezantua në versionin 3.0.2.RELEASE dhe jo 5.0.x siç thuhet në paralajmërim."

CVE-2013-6429
—
—
Mesatar
TRUE

CVE-2014-0054
—
CVE-2014-0054
Mesatar
TRUE

CVE-2013-6430
—
—
Mesatar
TRUE

spring-context:3.0.5
CVE-2011-2894
komponenti nuk u gjet
—
Mesatar
TRUE

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

CVE-2011-2894
CVE-2011-2894
CVE-2011-2894
Mesatar
TRUE

—
—
CVE-2013-4152
Mesatar
FALSE
Duplicon këtë vulnerabilitet në spring-web

—
CVE-2013-4152
—
Mesatar
FALSE
Vulnerabiliteti i përket komponentit spring-web

—
CVE-2013-6429
CVE-2013-6429
Mesatar
FALSE
Vulnerabiliteti i përket komponentit spring-web

—
CVE-2013-6430
—
Mesatar
FALSE
Vulnerabiliteti i përket komponentit spring-web

—
CVE-2013-7315
CVE-2013-7315
Mesatar
FALSE
SPLIT nga CVE-2013-4152. + Vulnerabiliteti i përket komponentit spring-web

—
CVE-2014-0054
CVE-2014-0054
Mesatar
FALSE
Vulnerabiliteti i përket komponentit spring-web

—
CVE-2014-0225
—
I Lartë
FALSE
Vulnerabiliteti i përket komponentit spring-web

—
—
CVE-2014-0225
I Lartë
FALSE
Duplicon këtë vulnerabilitet në spring-web

—
CVE-2014-1904
CVE-2014-1904
Mesatar
FALSE
Vulnerabiliteti i përket komponentit spring-web-mvc

—
CVE-2014-3625
CVE-2014-3625
Mesatar
FALSE
Vulnerabiliteti i përket komponentit spring-web-mvc

—
CVE-2016-9878
CVE-2016-9878
I Lartë
FALSE
Vulnerabiliteti i përket komponentit spring-web-mvc

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

—
CVE-2018-1271
CVE-2018-1271
Mesatar
FALSE
Vulnerabiliteti i përket komponentit spring-web-mvc

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

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

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

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

spring-tx:3.0.5
—
CVE-2011-2730
—
I Lartë
FALSE
Vulnerabiliteti nuk përfshihet në spring-tx

—
CVE-2011-2894
—
I Lartë
FALSE
Vulnerabiliteti nuk përfshihet në spring-tx

—
CVE-2013-4152
—
Mesatar
FALSE
Vulnerabiliteti nuk përfshihet në spring-tx

—
CVE-2013-6429
—
Mesatar
FALSE
Vulnerabiliteti nuk përfshihet në spring-tx

—
CVE-2013-6430
—
Mesatar
FALSE
Vulnerabiliteti nuk përfshihet në spring-tx

—
CVE-2013-7315
—
Mesatar
FALSE
Vulnerabiliteti nuk përfshihet në spring-tx

—
CVE-2014-0054
—
Mesatar
FALSE
Vulnerabiliteti nuk përfshihet në spring-tx

—
CVE-2014-0225
—
I Lartë
FALSE
Vulnerabiliteti nuk përfshihet në spring-tx

—
CVE-2014-1904
—
Mesatar
FALSE
Vulnerabiliteti nuk përfshihet në spring-tx

—
CVE-2014-3625
—
Mesatar
FALSE
Vulnerabiliteti nuk përfshihet në spring-tx

—
CVE-2016-9878
—
I Lartë
FALSE
Vulnerabiliteti nuk përfshihet në spring-tx

—
CVE-2018-1270
—
I Lartë
FALSE
Vulnerabiliteti nuk përfshihet në spring-tx

—
CVE-2018-1271
—
Mesatar
FALSE
Vulnerabiliteti nuk përfshihet në spring-tx

—
CVE-2018-1272
—
Mesatar
FALSE
Vulnerabiliteti nuk përfshihet në spring-tx

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

Mesatar
FASLE
Vulnerabilitet në Struts 2

—
CVE-2012-0391 (OSSINDEX)
CVE-2012-0391
I Lartë
FALSE
Vulnerabilitet në Struts 2

—
CVE-2014-0094 (OSSINDEX)
CVE-2014-0094
Mesatar
FALSE
Vulnerabilitet në Struts 2

—
CVE-2014-0113 (OSSINDEX)
CVE-2014-0113
I Lartë
FALSE
Vulnerabilitet në Struts 2

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

—
—
CVE-2011-5057
Mesatar
FALSE
Vulnerabilitet në Struts 2

—
CVE-2012-0392 (OSSINDEX)
CVE-2012-0392
I Lartë
FALSE
Vulnerabilitet në Struts 2

—
CVE-2012-0393 (OSSINDEX)
CVE-2012-0393
Mesatar
FALSE
Vulnerabilitet në Struts 2

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

—
CVE-2012-0394
CVE-2012-0394
Mesatar
FALSE
Vulnerabilitet në Struts 2

—
CVE-2012-0838 (OSSINDEX)
CVE-2012-0838
I Lartë
FALSE
Vulnerabilitet në Struts 2

—
CVE-2013-1965 (OSSINDEX)
CVE-2013-1965
I Lartë
FALSE
Vulnerabilitet në Struts 2

—
CVE-2013-1966 (OSSINDEX)
CVE-2013-1966
I Lartë
FASLE
Vulnerabilitet në Struts 2

—
CVE-2013-2115
CVE-2013-2115
I Lartë
FASLE
Vulnerabilitet në Struts 2

—
CVE-2013-2134 (OSSINDEX)
CVE-2013-2134
I Lartë
FASLE
Vulnerabilitet në Struts 2

—
CVE-2013-2135 (OSSINDEX)
CVE-2013-2135
I Lartë
FASLE
Vulnerabilitet në Struts 2

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

—
CVE-2015-2992
CVE-2015-2992
Mesatar
FALSE
Vulnerabilitet në Struts 2

—
CVE-2016-0785 (OSSINDEX)
CVE-2016-0785
I Lartë
FALSE
Vulnerabilitet në Struts 2

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

—
CVE-2016-4003 (OSSINDEX)
CVE-2016-4003
I Lartë
FALSE
Vulnerabilitet në Struts 2

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

SONATYPE-2017-0173
—
—
I Lartë
TRUE

CVE-2017-7672
—
—
I Lartë
FALSE
Dublim për CVE-2017-9804

SONATYPE-2016-0127
—
—
I Lartë
TRUE

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

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

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

—
CVE-2017-9793
—
I Lartë
FALSE
Dublim për CVE-2018-1327

—
CVE-2017-9804
—
I Lartë
TRUE

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

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

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

CVE-2017-5638
CVE-2017-5638
CVE-2017-5638
I Lartë
TRUE
Ajo vulnerabilitet, të cilin e shfrytëzuan hackerët në Equifax në vitin 2017

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

CVE-2018-11776
CVE-2018-11776
CVE-2018-11776
I Lartë
TRUE

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Burimi: habr.com

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster