Vigtigheden af analyse af tredjeparts softwarekomponenter (engelsk: Software Composition Analysis â SCA) i udviklingsprocessen vokser i takt med de Ă„rlige rapporter om sĂ„rbarheder i open source-biblioteker, som offentliggĂžres af virksomheder som Synopsys, Sonatype, Snyk og White Source. IfĂžlge rapporten er antallet af identificerede sĂ„rbarheder i open source steget med nĂŠsten 1,5 gange i 2019 sammenlignet med Ă„ret fĂžr, mens komponenter med Ă„ben kildekode anvendes i 60% til 80% af projekterne. IfĂžlge uafhĂŠngig vurdering er SCA-processer en separat praksis i OWASP SAMM og BSIMM som et mĂ„l for modenhed, og i fĂžrste halvdel af 2020 udgav OWASP den nye standard OWASP Software Component Verification Standard (SCVS), der giver bedste praksis til kontrol af tredjeparts komponenter i softwareforsyningskĂŠden.

Et af de mest illustrative tilfÊlde er med virksomheden Equifax i maj 2017. Ukendte angribere fik fat i oplysninger om 143 millioner amerikanere, herunder fulde navne, adresser, social sikringsnumre og kÞrekortsnumre. I 209.000 tilfÊlde var der ogsÄ oplysninger om ofrenes bankkort i dokumenterne. Denne lÊkage opstod som fÞlge af udnyttelse af en kritisk sÄrbarhed i Apache Struts 2 (CVE-2017-5638), mens en korrektiv lÞsningspakke blev offentliggjort allerede i marts 2017. Virksomheden havde to mÄneder til at installere opdateringen, men ingen tog sig af dette.
I denne artikel vil vi diskutere valget af vÊrktÞjer til at udfÞre SCA set fra analysekvaliteten. Vi vil ogsÄ give en funktionsmÊssig sammenligning af vÊrktÞjerne. Processen for integration i CI/CD og integrationsmuligheder vil blive efterladt til kommende publikationer. En omfattende liste over vÊrktÞjer blev prÊsenteret af OWASP , men i denne oversigt vil vi kun berÞre det mest populÊre open source-vÊrktÞj, Dependency Check, den lidt mindre kendte open source-platform, Dependency Track, og enterprise-lÞsningen Sonatype Nexus IQ. Vi vil ogsÄ undersÞge, hvordan disse lÞsninger fungerer og sammenligne de opnÄede resultater med hensyn til falske positiver.

Arbejdets princip
â er et vĂŠrktĂžj (CLI, maven, jenkins modul, ant), som analyserer projektfiler, indsamler fragmenter af information om afhĂŠngigheder (pakke navn, groupid, specifikation titel, versionâŠ), opbygger en CPE-streng â (Common Platform Enumeration), Package URL (PURL) og identificerer sĂ„rbarheder for CPE/PURL fra databaser (NVD, Sonatype OSS Index, NPM Audit APIâŠ), hvorefter det genererer en engangsrapport i formatet HTML, JSON, XMLâŠ
Lad os se pÄ, hvordan CPE ser ud:
cpe:2.3:part:vendor:product:version:update:edition:language:sw_edition:target_sw:target_hw:other- Part: Angiver, at komponenten tilhĂžrer en applikation (a), operativsystem (o), hardware (h) (Obligatorisk felt)
- Vendor: Navnet pÄ produktets producent (Obligatorisk felt)
- Product: Navnet pÄ produktet (Obligatorisk felt)
- Version: Version af komponenten (ForĂŠldet felt)
- Opdatering: Pakkens opdatering
- Edition: Arvet version (ForĂŠldet felt)
- Language: Sprog defineret i RFC-5646
- SW Edition: Version af software
- Target SW: Den softwaremiljĂž, hvor produktet kĂžrer
- Target HW: Den hardwaremiljĂž, hvor produktet kĂžrer
- Other: Information om leverandĂžren eller produktet
Et eksempel pÄ CPE ser sÄledes ud:
cpe:2.3:a:pivotal_software:spring_framework:3.0.0:*:*:*:*:*:*:* Strengen betyder, at CPE version 2.3 beskriver en komponent applikation fra producenten pivotal_software med navnet spring_framework version 3.0.0. Hvis vi Ă„bner sĂ„rbarheden i NVD, kan vi se henvisningen til denne CPE. Det fĂžrste problem, som straks skal bemĂŠrkes â CVE i NVD rapporterer ifĂžlge CPE om et problem i rammevĂŠrket og ikke i en specifik komponent. Det vil sige, hvis udviklerne er stĂŠrkt afhĂŠngige af rammevĂŠrket, og den identificerede sĂ„rbarhed vedrĂžrer ikke de moduler, som udviklerne bruger, mĂ„ sikkerhedsspecialisten sĂ„ eller sĂ„ mĂ„tte analysere denne CVE og overveje opdatering.
URL-adressen bruges ogsÄ af SCA-vÊrktÞjer. Formatet for URL-adressen pÄ pakken er som fÞlger:
scheme:type/namespace/name@version?qualifiers#subpath- Scheme: Vil altid vĂŠre âpkgâ, der angiver, at dette er URL-adressen pĂ„pakken (Obligatorisk felt)
- Type: »Type« af pakken eller »protokol« for pakken, som f.eks. maven, npm, nuget, gem, pypi osv. (Obligatorisk felt)
- Namespace: En form for prÊfiks af navnet, sÄsom Maven-gruppe-id, ejer af Docker-billede, bruger eller organisation pÄ GitHub. Valgfrit og afhÊnger af typen.
- Navn: Pakkenavn (Obligatorisk felt)
- Version: Version af pakken
- Qualifiers: Yderligere kvalifikationsoplysninger for pakken, sÄsom OS, arkitektur, distribution osv. Valgfrit og afhÊngigt af typen.
- Substi Yderligere sti i pakken relativt til roden af pakken.
For eksempel:
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â en on-premise webplatform, der modtager klare Bill of Materials (BOM) dannet og , altsĂ„ klare specifikationer af de tilgĂŠngelige afhĂŠngigheder. Dette er en XML-fil, der beskriver afhĂŠngigheder â navn, hashes, paket-URL, udgiver, licens. Derefter analyserer Dependency Track BOM, ser pĂ„ de eksisterende CVEâer for identificerede afhĂŠngigheder fra databasen med sĂ„rbarheder (NVD, Sonatype OSS Index âŠ), hvorefter den bygger grafer, beregner mĂ„linger og opdaterer oplysninger om komponenternes sĂ„rbarhedsstatus regelmĂŠssigt.
Et eksempel pÄ, hvordan en BOM i XML-format kan se ud:
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 kan bruges ikke kun som inputparametre til Dependency Track, men ogsÄ til at opgÞre softwarekomponenter i forsyningskÊden, for eksempel til at levere til kunden. I 2014 blev der endda foreslÄet en lov i USA, , som sagde, at ved indkÞb af software skulle enhver offentlig institution anmode om en BOM for at forhindre brugen af sÄrbare komponenter, men loven trÄdte aldrig i kraft.
NÄr vi vender tilbage til SCA, har Dependency Track klare integrationer med meddelelsesplatforme som Slack og systemer til sÄrbarhedsstyring som Kenna Security. Det skal ogsÄ nÊvnes, at Dependency Track desuden identificerer forÊldede versioner af pakker og giver oplysninger om licenser (takket vÊre understÞttelsen af SPDX).
NÄr det kommer til kvaliteten af SCA, er der en vÊsentlig forskel her.
Dependency Track modtager ikke projektet som input, men tager faktisk imod BOM. Det betyder, at hvis vi Þnsker at kontrollere projektet, skal vi fÞrst generere bom.xml, sÄsom ved at bruge CycloneDX. PÄ den mÄde afhÊnger Dependency Track direkte af CycloneDX. Samtidig giver det muligheder for tilpasning. SÄ teamet fra OZON skrev til opbygning af BOM-filer for projekter i Golang med henblik pÄ senere scanning gennem Dependency Track.
er en kommerciel SCA-lÞsning fra Sonatype, som er en del af Sonatype-Þkosystemet, der ogsÄ inkluderer Nexus Repository Manager. Nexus IQ kan tage bÄde war-arkiver (til java-projekter) som input via webgrÊnsefladen eller API, men ogsÄ BOM, hvis din organisation ikke har haft tid til at omlÊgge fra CycloneDX til den nye lÞsning. I modsÊtning til open source-lÞsninger tager IQ ikke kun hÞjde for CP/PURL til den identificerede komponent og den relevante sÄrbarhed i databasen, men overvejer ogsÄ egne undersÞgelser, for eksempel navnet pÄ den sÄrbare funktion eller klasse. Mekanismerne i IQ vil blive gennemgÄet senere, nÄr vi analyserer resultaterne.
Lad os opsummere nogle af de funktionelle egenskaber samt se pÄ understÞttede sprog til analyse:
Sprog
Nexus IQ
Dependency Check
Dependency Track
Java
+
+
+
C/C++
+
+
â
C#
+
+
â
.Net
+
+
+
Erlang
â
â
+
JavaScript (NodeJS)
+
+
+
PHP
+
+
+
Python
+
+
+
Ruby
+
+
+
Perl
â
â
â
Scala
+
+
+
Objective C
+
+
â
Swift
+
+
â
R
+
â
â
Go
+
+
+
Funktionelle muligheder
Funktionelle muligheder
Nexus IQ
Dependency Check
Dependency Track
Mulighed for at sikre verificering af komponenter brugt i kildekoden for licensmĂŠssig renhed
+
â
+
Mulighed for scanning og analyse af sÄrbarheder og licensmÊssig renhed for Docker-billeder
+ Integration med Clair
â
â
Mulighed for at tilpasse sikkerhedspolitikker for brug af open source-biblioteker
+
â
â
Mulighed for at scanne open source-repositorier for sÄrbare komponenter
+ RubyGems, Maven, NPM, Nuget, Pypi, Conan, Bower, Conda, Go, p2, R, Yum, Helm, Docker, CocoaPods, Git LFS
â
+ Hex, RubyGems, Maven, NPM, Nuget, Pypi
Eksistensen af en specialiseret forskningsgruppe
+
â
â
Arbejder i et lukket kontur
+
+
+
Brug af tredjeparts databaser
+ Lukket Sonatype DB
+ Sonatype OSS, NPM Public Advisors
+ Sonatype OSS, NPM Public Advisors, RetireJS, VulnDB, stÞtte til egen sÄrbarheds-DB
Mulighed for at filtrere open source-komponenter ved forsÞg pÄ at uploade i udviklingskonturen i henhold til konfigurerede politikker
+
â
â
Anbefalinger til afhjÊlpning af sÄrbarheder, med links til rettelser
+
+- (afhĂŠngigt af beskrivelsen i offentlige databaser)
+- (afhĂŠngigt af beskrivelsen i offentlige databaser)
Rangering af opdagede sÄrbarheder efter alvorlighedsgrad
+
+
+
Adgangsrollemodel
+
â
+
UnderstĂžttelse af kommandolinjegrĂŠnseflade (CLI)
+
+
+- (kun for CycloneDX)
UdvÊlgelse / sortering af sÄrbarheder efter bestemte kriterier
+
â
+
Dashboard over applikationernes tilstand
+
â
+
Generering af rapporter i PDF-format
+
â
â
Generering af rapporter i JSON og CSV-format
+
+
â
UnderstĂžttelse af dansk sprog
â
â
â
Integrationsmuligheder
Integration
Nexus IQ
Dependency Check
Dependency Track
Integration med LDAP / Active Directory
+
â
+
Integration med kontinuerlig integrationssystem (Continous Integration) Bamboo
+
â
â
Integration med kontinuerlig integrationssystem (Continous Integration) TeamCity
+
â
â
Integration med kontinuerlig integrationssystem (Continous Integration) GitLab
+
+- (som plugin til GitLab)
+
Integration med kontinuerlig integrationssystem (Continous Integration) Jenkins
+
+
+
TilgĂŠngelighed af plugins til IDE
+ IntelliJ, Eclipse, Visual Studio
â
â
UnderstĂžttelse af tilpasset integration gennem webservices (API) vĂŠrktĂžj
+
â
+
Dependency Check
FĂžrste opstart
Lad os kÞre Dependency Check pÄ en med vilje sÄrbar applikation .
For dette vil vi bruge :
mvn org.owasp:dependency-check-maven:checkSom resultat vil der i mappen target blive oprettet dependency-check-report.html.

Lad os Äbne filen. Efter den overordnede information om det samlede antal sÄrbarheder kan vi se information om sÄrbarheder med hÞj alvorlighedsgrad og tillid, angivet pÄ pakken, CPE, antal CVE.
Derefter fÞlger mere detaljeret information, herunder hvad beslutningen er baseret pÄ (evidence), altsÄ en slags BOM.

DernĂŠst kommer CPE, PURL og beskrivelse af CVE. Anbefalinger til rettelse fĂžlger faktisk ikke, da de mangler i NVD-databasen.

For systematisk gennemgang af scanningsresultater kan man konfigurere Nginx med minimal konfiguration, eller sende de indsamlede fejl til et fejlstyringssystem, som understĂžtter forbindelser til Dependency Check. For eksempel Defect Dojo.
Dependency Track
Installation
Dependency Track er i Þvrigt en webplatform med grafisk visualisering, sÄ problemet med opbevaring af fejl i en ekstern lÞsning er ikke relevant her.
Der er fĂžlgende understĂžttede installationsscenarier: Docker, WAR, Executable WAR.
FĂžrste opstart
Vi gĂ„r til URL'en for den kĂžrende tjeneste. Logger ind via admin/admin, ĂŠndrer brugernavn og kodeord, hvorefter vi kommer til Dashboard. NĂŠste skridt bliver at oprette et projekt for den testapplikation i Home / Projects â Opret Projekt . Som eksempel bruger vi DVJA.

Da Dependency Track kun kan modtage BOM som input, skal denne BOM opnÄs. Vi vil bruge :
mvn org.cyclonedx:cyclonedx-maven-plugin:makeAggregateBomVi fĂ„r bom.xml og uploader filen i det oprettede projekt DVJA â AfhĂŠngigheder â Upload BOM.
Lad os gĂ„ ind i Administration â Analyzers. Vi forstĂ„r, at vi kun har den interne analyser aktiveret, som inkluderer NVD. Vi tilslutter ogsĂ„ Sonatype OSS Index.

Dermed fÄr vi fÞlgende oversigt over vores projekt:

OgsÄ pÄ listen kan man finde en sÄrbarhed, der gÊlder for Sonatype OSS:

Den stĂžrste skuffelse var, at Dependency Track ikke lĂŠngere accepterer xml-rapporter fra Dependency Check. De seneste understĂžttede versioner til integration med Dependency Check var 1.0.0 â 4.0.2, mens jeg testede 5.3.2.
Her er (og ), da det stadig var muligt.
Nexus IQ
FĂžrste opstart
Installation af Nexus IQ sker fra arkiverne ved , men vi har oprettet et Docker-billede til disse formÄl.
Efter login til konsollen skal der oprettes en Organisation og en Applikation.



Som man kan se, er opsÊtningen i forhold til IQ noget mere kompleks, da vi ogsÄ skal oprette politikker, der gÊlder for forskellige "faser" (dev, build, stage, release). Dette er nÞdvendigt for at blokere sÄrbare komponenter, efterhÄnden som de bevÊger sig gennem pipeline tÊttere pÄ produktionen, eller blokere dem sÄ snart de kommer ind i Nexus Repo ved download af udviklerne.
For at mĂŠrke forskellen mellem open source og enterprise, lad os udfĂžre den samme scanning gennem Nexus IQ tilsvarende gennem , efter fĂžrst at have oprettet en testapplikation i NexusIQ-grĂŠnsefladen dvja-test-and-compare:
mvn com.sonatype.clm:clm-maven-plugin:evaluate -Dclm.applicationId=dvja-test-and-compare -Dclm.serverUrl= -Dclm.username= -Dclm.password=
Vi navigerer til URL'en til den genererede rapport i IQ webgrĂŠnsefladen:

Her kan man se alle politikovertrĂŠdelser med angivelse af forskellige niveauer af alvorlighed (fra Info til Security Critical). D-brevet ved komponenten betyder, at komponenten er en Direct Dependency, mens T-brevet ved komponenten betyder, at komponenten er en Transitive Dependency, det vil sige er transitive.
For resten rapporterer fra Snyk, at over 70% af de sÄrbarheder i open source, der findes i Node.js, Java og Ruby, ligger i transitive afhÊngigheder.
Hvis man Äbner en af politikovertrÊdelserne i Nexus IQ, kan vi se beskrivelsen af komponenten samt Version Graph, der viser placeringen af den nuvÊrende version i tidsgrafen, og hvornÄr sÄrbarheden ikke lÊngere er sÄrbar. HÞjden af sÞjlerne pÄ grafen viser populariteten af brugen af denne komponent.

Hvis du gÄr til sektionen for sÄrbarheder og Äbner CVE, kan du lÊse beskrivelsen af denne sÄrbarhed, anbefalinger til afhjÊlpning samt Ärsagen til, at denne komponent er blevet identificeret som en overtrÊdelse, nemlig tilstedevÊrelsen af en klasse DiskFileitem.class.


Lad os opsummere, men kun vedrÞrende tredjeparts Java-komponenter, uden at inkludere js-komponenter. I parentes angiver vi antallet af sÄrbarheder, der er fundet uden for NVD.
I alt Nexus IQ:
- Scannede afhĂŠngigheder: 62
- SÄrbare afhÊngigheder: 16
- Findede sÄrbarheder: 42 (8 sonatype db)
I alt Dependency Check:
- Scannede afhĂŠngigheder: 47
- SÄrbare afhÊngigheder: 13
- Findede sÄrbarheder: 91 (14 sonatype oss)
I alt Dependency Track:
- Scannede afhĂŠngigheder: 59
- SÄrbare afhÊngigheder: 10
- Findede sÄrbarheder: 51 (1 sonatype oss)
NÊste skridt vil vÊre at analysere de opnÄede resultater og finde ud af, hvilke af disse sÄrbarheder der er virkelige defekter, og hvilke der er falske positiver.
Fraskrivelse
Denne gennemgang er ikke en uomtvistelig sandhed. Forfatteren havde ikke til hensigt at fremhÊve et bestemt vÊrktÞj i forhold til andre. FormÄlet med gennemgangen var at vise, hvordan SCA-vÊrktÞjerne fungerer og mÄderne at verificere deres resultater pÄ.
Sammenligning af resultater
Betingelser:
Et falsk positivt resultat i forhold til sÄrbarheder i tredjeparts komponenter er:
- Ikke-overensstemmelse mellem CVE og den identificerede komponent
- For eksempel, hvis en sÄrbarhed er identificeret i struts2-rammen, men vÊrktÞjet angiver komponenten struts-tiles, som denne sÄrbarhed ikke vedrÞrer, sÄ er det en falsk positiv.
- Ikke-overensstemmelse mellem CVE og den identificerede version af komponenten
- For eksempel, hvis sÄrbarheden er knyttet til versionen python > 3.5, og vÊrktÞjet angiver version 2.7 som sÄrbar, sÄ er det en falsk positiv, da sÄrbarheden faktisk kun vedrÞrer 3.x produktlinjen.
- Dublering af CVE
- For eksempel, hvis SCA angivet en CVE, der muliggÞr RCE, hvorefter SCA angiver den samme CVE for denne komponent, der gÊlder for Cisco-produkter, som er sÄrbare overfor denne RCE. I sÄdanne tilfÊlde vil det vÊre en falsk positiv.
- For eksempel, hvis CVE blev fundet i komponenten spring-web, hvorefter SCA angiver denne samme CVE i andre komponenter i Spring Framework, mens CVE ikke vedrÞrer de andre komponenter. I sÄ fald vil det vÊre en falsk positiv.
UndersÞgelsen fokuserer pÄ det Open Source-projekt DVJA. UndersÞgelsen involverede kun Java-komponenter (uden js).
Sammenfattende resultater
Lad os straks gÄ til resultaterne af den manuelle gennemgang af de identificerede sÄrbarheder. Du kan finde den fulde rapport for hver CVE i Bilag.
Sammenfattende resultater for alle sÄrbarheder:
Parameter
Nexus IQ
Dependency Check
Dependency Track
I alt identificerede sÄrbarheder
42
91
51
Forkert identificerede sÄrbarheder (falsk positiv)
2(4.76%)
62(68,13%)
29(56.86%)
Ingen relevante sÄrbarheder identificeret (falsk negativ)
10
20
27
Sammenfattende resultater for komponenter:
Parameter
Nexus IQ
Dependency Check
Dependency Track
I alt identificerede komponenter
62
47
59
I alt sÄrbare komponenter
16
13
10
Forkert identificerede sÄrbare komponenter (falsk positiv)
1
5
0
Forkert identificerede sÄrbare komponenter (falsk positiv)
0
6
6
Vi vil bygge visuelle grafer for at vurdere forholdet mellem falske positive og falske negative i forhold til det samlede antal sÄrbarheder. Komponenterne er angivet vandret, og de identificerede sÄrbarheder er angivet lodret.



Til sammenligning blev en tilsvarende undersÞgelse udfÞrt af Sonatype-teamet ved testning af et projekt bestÄende af 1531 komponenter ved hjÊlp af OWASP Dependency Check. Som vi kan se, er forholdet mellem stÞj og korrekte udlÞser meget sammenligneligt med vores resultater.

Kilde:
Lad os se pÄ nogle CVE fra resultaterne af vores scanning for at forstÄ Ärsagen til sÄdanne resultater.
Mere information
Nr. 1
Lad os fÞrst gennemgÄ nogle interessante punkter fra Sonatype Nexus IQ.
Nexus IQ peger pÄ et problem med deserialisering, der potentielt kan udfÞre RCE i Spring Framework flere gange. CVE-2016-1000027 i spring-web:3.0.5 fÞrst, og CVE-2011-2894 i spring-context:3.0.5 og spring-core:3.0.5. I starten ser det ud til, at der er en gentagelse af sÄrbarheden pÄ tvÊrs af flere CVE. For hvis man ser pÄ CVE-2016-1000027 og CVE-2011-2894 i NVD-databasen, ser det hele ret indlysende ud.
Komponent
SÄrbarhed
spring-web:3.0.5
CVE-2016-1000027
spring-context:3.0.5
CVE-2011-2894
spring-core:3.0.5
CVE-2011-2894
Description fra NVD:

Description fra NVD:

CVE-2011-2894 er i sig selv ret kendt. I rapporten blev denne CVE anerkendt som en af de mest almindelige. Beskrivelserne for CVE-2016-100027 er generelt sparsomme i NVD, og den gÊlder Äbenbart kun for Spring Framework 4.1.4. Lad os se pÄ og her bliver det mere eller mindre klart. Fra forstÄr vi, at udover sÄrbarheden i RemoteInvocationSerializingExporter i CVE-2011-2894 er der ogsÄ en sÄrbarhed i HttpInvokerServiceExporter. Det fortÊller Nexus IQ os:

Alligevel findes der intet lignende i NVD, hvilket betyder, at Dependency Check og Dependency Track fÄr falske negative.
Fra beskrivelsen af CVE-2011-2894 kan man ogsÄ forstÄ, at sÄrbarheden faktisk er til stede bÄde i spring-context:3.0.5 og spring-core:3.0.5. Bevis for dette kan findes i artiklen fra den, der fandt denne sÄrbarhed.
Nr. 2
Komponent
SÄrbarhed
Resultat
struts2-core:2.3.30
CVE-2016-4003
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
Hvis vi undersÞger sÄrbarheden CVE-2016-4003, forstÄr vi, at den blev rettet i version 2.3.28, alligevel rapporterer Nexus IQ om den. I beskrivelsen af sÄrbarheden er der en note:

Det vil sige, at sÄrbarheden kun eksisterer i kombination med en forÊldet version af JRE, hvilket vi er blevet advaret om. Vi betragter dog dette som en falsk positiv, omend ikke den mest alvorlige.
Nr. 3
Komponent
SÄrbarhed
Resultat
xwork-core:2.3.30
CVE-2017-9804
FALSE
xwork-core:2.3.30
CVE-2017-7672
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
Hvis vi ser pÄ beskrivelsen for CVE-2017-9804 og CVE-2017-7672, vil vi forstÄ, at problemet ligger i URLValidator-klassen, idet CVE-2017-9804 udspringer fra CVE-2017-7672. TilstedevÊrelsen af den anden sÄrbarhed bidrager ikke med nogen nyttig information, udover at dens alvorlighed er steget til hÞj, sÄ det kan betragtes som unÞdvendig stÞj.
Generelt var der ikke fundet andre falske positiver for Nexus IQ.
Nr. 4
Der er flere punkter, der adskiller IQ fra andre lĂžsninger.
Komponent
SÄrbarhed
Resultat
spring-web:3.0.5
CVE-2020-5398
FALSE
CVE i NVD rapporterer, at den kun gÊlder for versioner 5.2.x op til 5.2.3, 5.1.x op til 5.1.13 og versioner 5.0.x op til 5.0.16, men hvis vi ser pÄ beskrivelsen af CVE i Nexus IQ, vil vi se fÞlgende:
Advisory Deviation Notice: Sonatype sikkerhedsforskningsteamet opdagede, at denne sÄrbarhed blev introduceret i version 3.0.2.RELEASE og ikke 5.0.x som angivet i adviseringen.
Efter dette fÞlger PoC for denne sÄrbarhed, som oplyser, at den findes i version 3.0.5.
Falsk negativ sendes til Dependency Check og Dependency Track.
Nr. 5
Lad os se pÄ falske positiver for Dependency Check og Dependency Track.
Dependency Check adskiller sig ved at afspejle de CVE, der relaterer til hele rammevĂŠrket i NVD, til de komponenter, som disse CVE ikke gĂŠlder for. Dette gĂŠlder CVE-2012-0394, CVE-2013-2115, CVE-2014-0114, CVE-2015-0899, CVE-2015-2992, CVE-2016-1181, CVE-2016-1182, som Dependency Check "har tilfĂžjet" til struts-taglib:1.3.8 og struts-tiles-1.3.8. Disse komponenter har ikke noget at gĂžre med det, der er beskrevet i CVE â behandling af forespĂžrgsler, validering af sider osv. Dette skyldes, at det eneste, der forbinder disse CVE og komponenter, er rammevĂŠrket, hvilket fik Dependency Check til at anse det som en sĂ„rbarhed.
Den samme situation gÊlder for spring-tx:3.0.5, og en lignende situation gÊlder for struts-core:1.3.8. For struts-core fandt Dependency Check og Dependency Track mange sÄrbarheder, der faktisk gÊlder for struts2-core, som i virkeligheden er et separat rammevÊrk. I dette tilfÊlde forstod Nexus IQ korrekt situationen, og i de CVE, der blev genereret, angav det, at struts-core var nÄet slutningen af livet og at man skulle skifte til struts2-core.
Nr. 6
I nogle situationer er det uretfÊrdigt at tolke Äbenlyse fejl i Dependency Check og Dependency Track. IsÊr CVE-2013-4152, CVE-2013-6429, CVE-2013-6430, CVE-2013-7315, CVE-2014-0054, CVE-2014-0225, som Dependency Check og Dependency Track henviste til spring-core:3.0.5, faktisk henviser til spring-web:3.0.5. Nogle af disse CVE blev ogsÄ fundet af Nexus IQ, dog korrekt identificeret til en anden komponent. At disse sÄrbarheder ikke blev fundet i spring-core, betyder ikke, at de ikke eksisterer i rammevÊrket generelt, og open source-vÊrktÞjer har korrekt peget pÄ disse sÄrbarheder (de traf blot lidt forkert).
Konklusioner
Som vi kan se, giver manuel gennemgang af pÄlideligheden af de identificerede sÄrbarheder ikke entydige resultater, hvorfor der opstÄr tvivl. Resultaterne viser, at Nexus IQ-lÞsningen har den laveste falske positive rate og den hÞjeste nÞjagtighed.
Dette skyldes primÊrt, at Sonatype-teamet udvidede beskrivelsen for hver CVE-sÄrbarhed fra NVD i deres databaser ved prÊcist at angive klasse eller funktion af sÄrbarheden for en given version af komponenten, efter at have gennemfÞrt yderligere undersÞgelser (f.eks. ved at kontrollere sÄrbarheder pÄ Êldre versioner af softwaren).
OgsÄ de sÄrbarheder, der ikke er kommet ind i NVD, men alligevel findes i Sonatype-databasen med mÊrkningen SONATYPE, har en betydelig indflydelse pÄ resultaterne. IfÞlge rapporten om 45% af de opdagede sÄrbarheder med open source bliver ikke rapporteret i NVD. IfÞlge WhiteSource-databasen offentliggÞres kun 29% af alle open source-sÄrbarheder, der er registreret uden for NVD, i sidste ende i den, sÄ det er vigtigt at sÞge efter sÄrbarheder ogsÄ i andre kilder.
Som et resultat giver Dependency Check et stort antal falske positiver og overser en del sÄrbare komponenter. Dependency Track giver mindre stÞj og identificerer et stÞrre antal komponenter, hvilket visuelt ikke skÊmmer webgrÊnsefladen.
Alligevel viser erfaring, at open source bĂžr vĂŠre det fĂžrste skridt mod et modent DevSecOps. Det fĂžrste, man bĂžr overveje for at integrere SCA i udviklingen, er processerne, isĂŠr overvejelser sammen med ledelsen og relevante afdelinger om, hvordan de ideelle processer bĂžr se ud i ens organisation. Det kan vise sig, at for din organisation vil Dependency Check eller Dependency Track i starten opfylde alle forretningsmĂŠssige behov, mens Enterprise-lĂžsninger vil vĂŠre et logisk skridt i takt med, at kompleksiteten af de udviklede applikationer vokser.
Applikation A. Resultater relateret til komponenter
Designations:
- HĂžj â sĂ„rbarheder af hĂžj eller kritisk grad i komponenten
- Middel â sĂ„rbarheder af mellemgrad i komponenten
- SANDT â korrekt identificeret sĂ„rbarhed (True positive issue)
- FALSK â falsk positivet (False positive issue)
Komponent
Nexus IQ
Dependency Check
Dependency Track
Resultat
dom4j: 1.6.1
HĂžj
HĂžj
HĂžj
FALSE
log4j-core: 2.3
HĂžj
HĂžj
HĂžj
FALSE
log4j: 1.2.14
HĂžj
HĂžj
â
FALSE
commons-collections:3.1
HĂžj
HĂžj
HĂžj
FALSE
commons-fileupload:1.3.2
HĂžj
HĂžj
HĂžj
FALSE
commons-beanutils:1.7.0
HĂžj
HĂžj
HĂžj
FALSE
commons-codec:1:10
Medium
â
â
FALSE
mysql-connector-java:5.1.42
HĂžj
HĂžj
HĂžj
FALSE
spring-expression:3.0.5
HĂžj
komponenten ikke fundet
FALSE
spring-web:3.0.5
HĂžj
komponenten ikke fundet
HĂžj
FALSE
spring-context:3.0.5
Medium
komponenten ikke fundet
â
FALSE
spring-core:3.0.5
Medium
HĂžj
HĂžj
FALSE
struts2-config-browser-plugin:2.3.30
Medium
â
â
FALSE
spring-tx:3.0.5
â
HĂžj
â
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
struts-core:1.3.8
HĂžj
HĂžj
HĂžj
FALSE
xwork-core: 2.3.30
HĂžj
â
â
FALSE
struts2-core: 2.3.30
HĂžj
HĂžj
HĂžj
FALSE
struts-taglib:1.3.8
â
HĂžj
â
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
struts-tiles-1.3.8
â
HĂžj
â
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
Applikation B. Resultater relateret til sÄrbarheder
Designations:
- HĂžj â sĂ„rbarheder af hĂžj eller kritisk grad i komponenten
- Middel â sĂ„rbarheder af mellemgrad i komponenten
- SANDT â korrekt identificeret sĂ„rbarhed (True positive issue)
- FALSK â falsk positivet (False positive issue)
Komponent
Nexus IQ
Dependency Check
Dependency Track
Alvorlighed
Resultat
Kommentar
dom4j: 1.6.1
CVE-2018-1000632
CVE-2018-1000632
CVE-2018-1000632
HĂžj
FALSE
CVE-2020-10683
CVE-2020-10683
CVE-2020-10683
HĂžj
FALSE
log4j-core: 2.3
CVE-2017-5645
CVE-2017-5645
CVE-2017-5645
HĂžj
FALSE
CVE-2020-9488
CVE-2020-9488
CVE-2020-9488
Lav
FALSE
log4j: 1.2.14
CVE-2019-17571
CVE-2019-17571
â
HĂžj
FALSE
â
CVE-2020-9488
â
Lav
FALSE
SONATYPE-2010-0053
â
â
HĂžj
FALSE
commons-collections:3.1
â
CVE-2015-6420
CVE-2015-6420
HĂžj
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
Duplikerer RCE(OSSINDEX)
â
CVE-2017-15708
CVE-2017-15708
HĂžj
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
Duplikerer RCE(OSSINDEX)
SONATYPE-2015-0002
RCE (OSSINDEX)
RCE(OSSINDEX)
HĂžj
FALSE
commons-fileupload:1.3.2
CVE-2016-1000031
CVE-2016-1000031
CVE-2016-1000031
HĂžj
FALSE
SONATYPE-2014-0173
â
â
Medium
FALSE
commons-beanutils:1.7.0
CVE-2014-0114
CVE-2014-0114
CVE-2014-0114
HĂžj
FALSE
â
CVE-2019-10086
CVE-2019-10086
HĂžj
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
SÄrbarheden gÊlder kun for versioner 1.9.2+
commons-codec:1:10
SONATYPE-2012-0050
â
â
Medium
FALSE
mysql-connector-java:5.1.42
CVE-2018-3258
CVE-2018-3258
CVE-2018-3258
HĂžj
FALSE
CVE-2019-2692
CVE-2019-2692
â
Medium
FALSE
â
CVE-2020-2875
â
Medium
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
Den samme sĂ„rbarhed som CVE-2019-2692, men med tilfĂžjelsen âangreb kan have en betydelig indvirkning pĂ„ yderligere produkterâ
â
CVE-2017-15945
â
HĂžj
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
Ikke relevant for mysql-connector-java
â
CVE-2020-2933
â
Lav
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
Duplikat til CVE-2020-2934
CVE-2020-2934
CVE-2020-2934
â
Medium
FALSE
spring-expression:3.0.5
CVE-2018-1270
komponenten ikke fundet
â
HĂžj
FALSE
CVE-2018-1257
â
â
Medium
FALSE
spring-web:3.0.5
CVE-2016-1000027
komponenten ikke fundet
â
HĂžj
FALSE
CVE-2014-0225
â
CVE-2014-0225
HĂžj
FALSE
CVE-2011-2730
â
â
HĂžj
FALSE
â
â
CVE-2013-4152
Medium
FALSE
CVE-2018-1272
â
â
HĂžj
FALSE
CVE-2020-5398
â
â
HĂžj
FALSE
Et eksempel til fordel for IQ: âSonatype sikkerhedsforskningsholdet opdagede, at denne sĂ„rbarhed blev introduceret i version 3.0.2.RELEASE og ikke 5.0.x som angivet i adviseringen.â
CVE-2013-6429
â
â
Medium
FALSE
CVE-2014-0054
â
CVE-2014-0054
Medium
FALSE
CVE-2013-6430
â
â
Medium
FALSE
spring-context:3.0.5
CVE-2011-2894
komponenten ikke fundet
â
Medium
FALSE
spring-core:3.0.5
â
CVE-2011-2730
CVE-2011-2730
HĂžj
FALSE
CVE-2011-2894
CVE-2011-2894
CVE-2011-2894
Medium
FALSE
â
â
CVE-2013-4152
Medium
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
Duplikat af den samme sÄrbarhed i spring-web
â
CVE-2013-4152
â
Medium
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
SÄrbarheden gÊlder komponenten spring-web
â
CVE-2013-6429
CVE-2013-6429
Medium
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
SÄrbarheden gÊlder komponenten spring-web
â
CVE-2013-6430
â
Medium
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
SÄrbarheden gÊlder komponenten spring-web
â
CVE-2013-7315
CVE-2013-7315
Medium
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
SPLIT fra CVE-2013-4152. + SÄrbarheden gÊlder komponenten spring-web
â
CVE-2014-0054
CVE-2014-0054
Medium
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
SÄrbarheden gÊlder komponenten spring-web
â
CVE-2014-0225
â
HĂžj
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
SÄrbarheden gÊlder komponenten spring-web
â
â
CVE-2014-0225
HĂžj
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
Duplikat af den samme sÄrbarhed i spring-web
â
CVE-2014-1904
CVE-2014-1904
Medium
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
SÄrbarheden gÊlder komponenten spring-web-mvc
â
CVE-2014-3625
CVE-2014-3625
Medium
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
SÄrbarheden gÊlder komponenten spring-web-mvc
â
CVE-2016-9878
CVE-2016-9878
HĂžj
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
SÄrbarheden gÊlder komponenten spring-web-mvc
â
CVE-2018-1270
CVE-2018-1270
HĂžj
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
For spring-expression / spring-messages
â
CVE-2018-1271
CVE-2018-1271
Medium
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
SÄrbarheden gÊlder komponenten spring-web-mvc
â
CVE-2018-1272
CVE-2018-1272
HĂžj
FALSE
CVE-2014-3578
CVE-2014-3578 (OSSINDEX)
CVE-2014-3578
Medium
FALSE
SONATYPE-2015-0327
â
â
Lav
FALSE
struts2-config-browser-plugin:2.3.30
SONATYPE-2016-0104
â
â
Medium
FALSE
spring-tx:3.0.5
â
CVE-2011-2730
â
HĂžj
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
SÄrbarheden gÊlder ikke for spring-tx
â
CVE-2011-2894
â
HĂžj
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
SÄrbarheden gÊlder ikke for spring-tx
â
CVE-2013-4152
â
Medium
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
SÄrbarheden gÊlder ikke for spring-tx
â
CVE-2013-6429
â
Medium
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
SÄrbarheden gÊlder ikke for spring-tx
â
CVE-2013-6430
â
Medium
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
SÄrbarheden gÊlder ikke for spring-tx
â
CVE-2013-7315
â
Medium
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
SÄrbarheden gÊlder ikke for spring-tx
â
CVE-2014-0054
â
Medium
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
SÄrbarheden gÊlder ikke for spring-tx
â
CVE-2014-0225
â
HĂžj
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
SÄrbarheden gÊlder ikke for spring-tx
â
CVE-2014-1904
â
Medium
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
SÄrbarheden gÊlder ikke for spring-tx
â
CVE-2014-3625
â
Medium
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
SÄrbarheden gÊlder ikke for spring-tx
â
CVE-2016-9878
â
HĂžj
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
SÄrbarheden gÊlder ikke for spring-tx
â
CVE-2018-1270
â
HĂžj
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
SÄrbarheden gÊlder ikke for spring-tx
â
CVE-2018-1271
â
Medium
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
SÄrbarheden gÊlder ikke for spring-tx
â
CVE-2018-1272
â
Medium
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
SÄrbarheden gÊlder ikke for spring-tx
struts-core:1.3.8
â
CVE-2011-5057 (OSSINDEX)
Medium
FALSK
SÄrbarheden relaterer til Struts 2
â
CVE-2012-0391 (OSSINDEX)
CVE-2012-0391
HĂžj
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
SÄrbarheden relaterer til Struts 2
â
CVE-2014-0094 (OSSINDEX)
CVE-2014-0094
Medium
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
SÄrbarheden relaterer til Struts 2
â
CVE-2014-0113 (OSSINDEX)
CVE-2014-0113
HĂžj
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
SÄrbarheden relaterer til Struts 2
CVE-2016-1182
3VE-2016-1182
â
HĂžj
FALSE
â
â
CVE-2011-5057
Medium
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
SÄrbarheden relaterer til Struts 2
â
CVE-2012-0392 (OSSINDEX)
CVE-2012-0392
HĂžj
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
SÄrbarheden relaterer til Struts 2
â
CVE-2012-0393 (OSSINDEX)
CVE-2012-0393
Medium
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
SÄrbarheden relaterer til Struts 2
CVE-2015-0899
CVE-2015-0899
â
HĂžj
FALSE
â
CVE-2012-0394
CVE-2012-0394
Medium
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
SÄrbarheden relaterer til Struts 2
â
CVE-2012-0838 (OSSINDEX)
CVE-2012-0838
HĂžj
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
SÄrbarheden relaterer til Struts 2
â
CVE-2013-1965 (OSSINDEX)
CVE-2013-1965
HĂžj
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
SÄrbarheden relaterer til Struts 2
â
CVE-2013-1966 (OSSINDEX)
CVE-2013-1966
HĂžj
FALSK
SÄrbarheden relaterer til Struts 2
â
CVE-2013-2115
CVE-2013-2115
HĂžj
FALSK
SÄrbarheden relaterer til Struts 2
â
CVE-2013-2134 (OSSINDEX)
CVE-2013-2134
HĂžj
FALSK
SÄrbarheden relaterer til Struts 2
â
CVE-2013-2135 (OSSINDEX)
CVE-2013-2135
HĂžj
FALSK
SÄrbarheden relaterer til Struts 2
CVE-2014-0114
CVE-2014-0114
â
HĂžj
FALSE
â
CVE-2015-2992
CVE-2015-2992
Medium
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
SÄrbarheden relaterer til Struts 2
â
CVE-2016-0785 (OSSINDEX)
CVE-2016-0785
HĂžj
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
SÄrbarheden relaterer til Struts 2
CVE-2016-1181
CVE-2016-1181
â
HĂžj
FALSE
â
CVE-2016-4003 (OSSINDEX)
CVE-2016-4003
HĂžj
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
SÄrbarheden relaterer til Struts 2
xwork-core:2.3.30
CVE-2017-9804
â
â
HĂžj
FALSE
SONATYPE-2017-0173
â
â
HĂžj
FALSE
CVE-2017-7672
â
â
HĂžj
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
Dublet til CVE-2017-9804
SONATYPE-2016-0127
â
â
HĂžj
FALSE
struts2-core:2.3.30
â
CVE-2016-6795
CVE-2016-6795
HĂžj
FALSE
â
CVE-2017-9787
CVE-2017-9787
HĂžj
FALSE
â
CVE-2017-9791
CVE-2017-9791
HĂžj
FALSE
â
CVE-2017-9793
â
HĂžj
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
Duplikat til CVE-2018-1327
â
CVE-2017-9804
â
HĂžj
FALSE
â
CVE-2017-9805
CVE-2017-9805
HĂžj
FALSE
CVE-2016-4003
â
â
Medium
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
Anvendelig til Apache Struts 2.x op til 2.3.28, hvilket er version 2.3.30. Dog, baseret pÄ beskrivelsen, gÊlder CVE for alle versioner af Struts 2, hvis der bruges JRE 1.7 og lavere. Det ser ud til, at vi her forsÞger at vÊre forsigtige, men det ligner mere en FALSE
â
CVE-2018-1327
CVE-2018-1327
HĂžj
FALSE
CVE-2017-5638
CVE-2017-5638
CVE-2017-5638
HĂžj
FALSE
Den sÄrbarhed, som angribere udnyttede i Equifax i 2017
CVE-2017-12611
CVE-2017-12611
â
HĂžj
FALSE
CVE-2018-11776
CVE-2018-11776
CVE-2018-11776
HĂžj
FALSE
struts-taglib:1.3.8
â
CVE-2012-0394
â
Medium
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
Til struts2-core
â
CVE-2013-2115
â
HĂžj
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
Til struts2-core
â
CVE-2014-0114
â
HĂžj
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
Til commons-beanutils
â
CVE-2015-0899
â
HĂžj
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
Relaterer ikke til taglib
â
CVE-2015-2992
â
Medium
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
Relaterer til struts2-core
â
CVE-2016-1181
â
HĂžj
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
Relaterer ikke til taglib
â
CVE-2016-1182
â
HĂžj
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
Relaterer ikke til taglib
struts-tiles-1.3.8
â
CVE-2012-0394
â
Medium
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
Til struts2-core
â
CVE-2013-2115
â
HĂžj
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
Til struts2-core
â
CVE-2014-0114
â
HĂžj
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
Under commons-beanutils
â
CVE-2015-0899
â
HĂžj
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
Relaterer ikke til tiles
â
CVE-2015-2992
â
Medium
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
Til struts2-core
â
CVE-2016-1181
â
HĂžj
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
Relaterer ikke til taglib
â
CVE-2016-1182
â
HĂžj
. I vores eksempel har vi skrevet en simpel funktion, der ved hjĂŠlp af den grundlĂŠggende funktion
Relaterer ikke til taglib
Kilde: habr.com
