Die belangrikheid van derdeparty-sagtewarekomponent-analise (English Software Composition Analysis - SCA) in die ontwikkelingsproses neem toe met die vrystelling van jaarverslae oor die kwesbaarhede van oopbronbiblioteke, wat deur Synopsys, Sonatype, Snyk, White Source gepubliseer word. Volgens die verslag
Een van die mees illustratiewe gevalle
Hierdie artikel sal die kwessie van die keuse van 'n instrument vir die uitvoer van SCA bespreek in terme van die kwaliteit van die ontledingsresultate. 'n Funksionele vergelyking van die instrumente sal ook gegee word. Ons sal die proses van inbedding in CI / CD en integrasiegeleenthede vir daaropvolgende publikasies laat. 'n Wye reeks gereedskap is deur OWASP bekendgestel
Beginsel van werking
Oorweeg hoe CPE lyk:
cpe:2.3:part:vendor:product:version:update:edition:language:sw_edition:target_sw:target_hw:other
- Deel: 'n Aanduiding dat die komponent aan die toepassing (a), bedryfstelsel (o), hardeware (h) (Vereiste item) behoort)
- Verskaffer: Naam van die vervaardiger van die produk (Vereiste item)
- produk: Produknaam (vereis)
- Weergawe: Komponentweergawe (Verouderde item)
- Update: Pakketopdatering
- Edition: Oorgeërfde weergawe (Verouderde item)
- Taal: Taal gedefinieer in RFC-5646
- SW Uitgawe: Sagteware weergawe
- Teiken SW: Die sagteware-omgewing waarin die produk loop
- Teiken HW: Hardeware-omgewing waar die produk loop
- Ander: Verskaffer of produk inligting
'n Voorbeeld CPE lyk soos volg:
cpe:2.3:a:pivotal_software:spring_framework:3.0.0:*:*:*:*:*:*:*
Die string beteken dat CPE weergawe 2.3 'n toepassingskomponent van die vervaardiger beskryf pivotal_software
met die titel spring_framework
weergawe 3.0.0. As ons 'n kwesbaarheid oopmaak
Die URL word ook deur die SCA-nutsgoed gebruik. Die pakket-URL-formaat is soos volg:
scheme:type/namespace/name@version?qualifiers#subpath
- Skema: Daar sal altyd 'pkg' wees wat aandui dat dit 'n pakket-URL is (vereis)
- tipe: Die "tipe" van die pakket, of die "protokol" van die pakket, soos maven, npm, nuget, gem, pypi, ens. (vereiste item)
- naamruimte: Sommige naamvoorvoegsels, soos 'n Maven-groep-ID, Docker-beeldeienaar, GitHub-gebruiker of organisasie. Opsioneel en hang af van die tipe.
- Naam: Pakketnaam (vereis)
- Weergawe: Pakket weergawe
- Kwalifiseerders: Bykomende kwalifikasiedata vir die pakket, soos OS, argitektuur, verspreiding, ens. Opsionele en tipe-spesifieke item.
- subpad: Bykomende pad in die pakket relatief tot die wortel van die pakket
Byvoorbeeld:
pkg:golang/google.golang.org/genproto#googleapis/api/annotations
pkg:maven/org.apache.commons/[email protected]
pkg:pypi/[email protected]
'n Voorbeeld van hoe 'n BOM in XML-formaat kan lyk:
<?xml version="1.0" encoding="UTF-8"?>
<bom xmlns="http://cyclonedx.org/schema/bom/1.2" serialNumber="urn:uuid:3e671687-395b-41f5-a30f-a58921a69b79" version="1">
<components>
<component type="library">
<publisher>Apache</publisher>
<group>org.apache.tomcat</group>
<name>tomcat-catalina</name>
<version>9.0.14</version>
<hashes>
<hash alg="MD5">3942447fac867ae5cdb3229b658f4d48</hash>
<hash alg="SHA-1">e6b1000b94e835ffd37f4c6dcbdad43f4b48a02a</hash>
<hash alg="SHA-256">f498a8ff2dd007e29c2074f5e4b01a9a01775c3ff3aeaf6906ea503bc5791b7b</hash>
<hash alg="SHA-512">e8f33e424f3f4ed6db76a482fde1a5298970e442c531729119e37991884bdffab4f9426b7ee11fccd074eeda0634d71697d6f88a460dce0ac8d627a29f7d1282</hash>
</hashes>
<licenses>
<license>
<id>Apache-2.0</id>
</license>
</licenses>
<purl>pkg:maven/org.apache.tomcat/[email protected]</purl>
</component>
<!-- More components here -->
</components>
</bom>
BOM kan nie net as insetparameters vir Dependency Track gebruik word nie, maar ook vir die inventaris van sagtewarekomponente in die voorsieningsketting, byvoorbeeld vir die verskaffing van sagteware aan 'n kliënt. In 2014 is 'n wet selfs in die Verenigde State vir oorweging voorgestel
Terug na SCA, Dependency Track het out-of-the-box integrasies met kennisgewingsplatforms soos Slack, kwesbaarheidbestuurstelsels soos Kenna Security. Dit is ook die moeite werd om te noem dat Dependency Track ook verouderde weergawes van pakkette opspoor en inligting oor lisensies verskaf (as gevolg van SPDX-ondersteuning).
As ons spesifiek praat oor die kwaliteit van SCA, dan is daar 'n fundamentele verskil.
Dependency Track aanvaar nie 'n projek as 'n inset nie, maar eerder 'n BOM. Dit beteken dat as ons die projek wil toets, ons eers bom.xml moet genereer, byvoorbeeld met CycloneDX. Dus, Dependency Track is direk afhanklik van CycloneDX. Terselfdertyd maak dit voorsiening vir aanpassing. So het die OZON-span geskryf
Kom ons som sommige van die funksionele kenmerke op, en oorweeg ook die ondersteunde tale vir ontleding:
Taal
Nexus IK
Afhanklikheidskontrole
Afhanklikheid Track
Java
+
+
+
C / C ++
+
+
-
C#
+
+
-
Net.
+
+
+
erlang
-
-
+
JavaScript (NodeJS)
+
+
+
PHP
+
+
+
Python
+
+
+
Ruby
+
+
+
Perl
-
-
-
Skaal
+
+
+
Doelwit C
+
+
-
Swift
+
+
-
R
+
-
-
Go
+
+
+
funksie
funksie
Nexus IK
Afhanklikheidskontrole
Afhanklikheid Track
Die vermoë om te verseker dat die komponente wat in die bronkode gebruik word, nagegaan word vir lisensiesuiwerheid
+
-
+
Vermoë om te skandeer en te ontleed vir kwesbaarhede en lisensie-netheid vir Docker-beelde
+ Integrasie met Clair
-
-
Vermoë om sekuriteitsbeleid op te stel om oopbronbiblioteke te gebruik
+
-
-
Vermoë om oopbronbewaarplekke te skandeer vir kwesbare komponente
+ RubyGems, Maven, NPM, Nuget, Pypi, Conan, Bower, Conda, Go, p2, R, Yum, Helm, Docker, CocoaPods, Git LFS
-
+ Hex, RubyGems, Maven, NPM, Nuget, Pypi
Beskikbaarheid van 'n toegewyde navorsingspan
+
-
-
Werking in 'n geslote kring
+
+
+
Gebruik derdeparty-databasisse
+ Geslote databasis Sonatype
+ Sonatype OSS, NPM Openbare Adviseurs
+ Sonatype OSS, NPM Public Advisors, RetireJS, VulnDB, eie kwesbaarheid databasis ondersteuning
Vermoë om oopbronkomponente te filtreer wanneer u probeer oplaai na ontwikkelingslus volgens gekonfigureerde beleide
+
-
-
Aanbevelings vir die regstelling van kwesbaarhede, beskikbaarheid van skakels na die oplossing
+
+- (hang af van beskrywing in publieke databasisse)
+- (hang af van beskrywing in publieke databasisse)
Rangorde van ontdekte kwesbaarhede volgens kritiek
+
+
+
Roltoegangsmodel
+
-
+
CLI ondersteuning
+
+
+- (slegs CycloneDX)
Seleksie / sortering van kwesbaarhede volgens gedefinieerde kriteria
+
-
+
Dashboard volgens aansoekstatus
+
-
+
Verslaggenerering in PDF-formaat
+
-
-
Verslaggenerering in JSONCSV-formaat
+
+
-
Russiese taal ondersteuning
-
-
-
Integrasie geleenthede
integrasie
Nexus IK
Afhanklikheidskontrole
Afhanklikheid Track
Integrasie met LDAP/Active Directory
+
-
+
Bamboes deurlopende integrasie integrasie
+
-
-
Integrasie met deurlopende integrasiestelsel (deurlopende integrasie) TeamCity
+
-
-
Integrasie met die deurlopende integrasiestelsel (deurlopende integrasie) GitLab
+
+- (as 'n inprop vir GitLab)
+
Integrasie met deurlopende integrasiestelsel (deurlopende integrasie) Jenkins
+
+
+
Beskikbaarheid van IDE-inproppe
+ IntelliJ, Eclipse, Visual Studio
-
-
Ondersteuning vir pasgemaakte integrasie via webdienste (API) van die instrument
+
-
+
Afhanklikheidskontrole
Eerste begin
Voer afhanklikheidkontrole uit op 'n doelbewus kwesbare toepassing
Hiervoor gebruik ons
mvn org.owasp:dependency-check-maven:check
As gevolg hiervan sal dependency-check-report.html in die teikengids verskyn.
Kom ons maak die lêer oop. Na 'n opsomming van die totale aantal kwesbaarhede, kan ons inligting oor kwesbaarhede sien met 'n hoë vlak van erns en vertroue, wat die pakket, CPE, aantal CVE's aandui.
Meer gedetailleerde inligting volg veral op grond waarvan die besluit geneem is (bewyse), dit wil sê 'n sekere BOM.
Volgende kom CPE, PURL en 'n beskrywing van CVE. Terloops, aanbevelings vir regstelling word nie aangeheg nie weens hul afwesigheid in die NVD-databasis.
Om skanderingsresultate sistematies te bekyk, kan jy Nginx met minimale instellings instel, of die ontvangde defekte stuur na 'n defekbestuurstelsel wat Afhanklikheidstoets-verbindings ondersteun. Byvoorbeeld, Defect Dojo.
Afhanklikheid Track
installasie
Dependency Track is op sy beurt 'n webgebaseerde platform met vertoongrafieke, so daar is geen akute kwessie van die stoor van defekte in 'n derdeparty-oplossing nie.
Daar is die volgende ondersteunde scenario's vir installasie: Docker, WAR, Executable WAR.
Eerste begin
Gaan na die URL van die lopende diens. Ons gaan deur admin / admin, verander die login en wagwoord, waarna ons by die Dashboard kom. Die volgende ding wat ons sal doen is om 'n projek te skep vir 'n Java-toetstoepassing in Tuis/Projekte → Skep projek . Kom ons neem DVJA as 'n voorbeeld.
Aangesien Afhanklikheidspoor slegs BOM as invoer kan neem, moet hierdie BOM herwin word. Kom ons gebruik
mvn org.cyclonedx:cyclonedx-maven-plugin:makeAggregateBom
Ons kry bom.xml en laai die lêer in die geskepte projek DVJA → Afhanklikhede → Laai BOM op.
Kom ons gaan na Administrasie → Ontleders. Ons verstaan dat ons slegs die interne ontleder geaktiveer het, wat NVD insluit. Kom ons koppel ook Sonatype OSS Index.
Ons kry dus die volgende prentjie vir ons projek:
Ook in die lys kan jy een kwesbaarheid vind wat van toepassing is op Sonatype OSS:
Die grootste teleurstelling was dat Dependency Track nie meer Dependency Check xml-verslae aanvaar nie. Die jongste ondersteunde weergawes van Dependency Check-integrasie was 1.0.0 - 4.0.2 terwyl ek 5.3.2 getoets het.
Hier
Nexus IK
Eerste begin
Die Nexus IQ-installasie kom uit die sagteware-argiewe
Nadat u by die konsole aangemeld het, moet u 'n organisasie en 'n toepassing skep.
Soos u kan sien, is die konfigurasie in die geval van IK ietwat meer ingewikkeld, want ons moet ook beleide skep wat van toepassing is op verskillende "stadia" (dev, bou, stadium, vrystelling). Dit is nodig om kwesbare komponente te blokkeer soos hulle nader aan die produksiepyplyn beweeg, of blokkeer sodra hulle in die Nexus Repo kom wanneer dit deur ontwikkelaars afgelaai word.
Om die verskil tussen oopbron en onderneming te voel, kom ons doen dieselfde skandering deur Nexus IQ op dieselfde manier deur dvja-test-and-compare
:
mvn com.sonatype.clm:clm-maven-plugin:evaluate -Dclm.applicationId=dvja-test-and-compare -Dclm.serverUrl=<NEXUSIQIP> -Dclm.username=<USERNAME> -Dclm.password=<PASSWORD>
Volg die URL na die gegenereerde verslag in die IK-webkoppelvlak:
Hier kan jy alle beleidsoortredings met verskillende ernsvlakke sien (van Info tot Sekuriteitskritiese). Die letter D langs die komponent beteken dat die komponent Direkte Afhanklikheid is, en die letter T langs die komponent beteken dat die komponent Transitiewe Afhanklikheid is, dit wil sê dit is oorganklik.
Terloops, die verslag
As ons een van die Nexus IQ-beleidsoortredings oopmaak, kan ons die beskrywing van die komponent sien, sowel as die Weergawegrafiek, wat die ligging van die huidige weergawe op die tydgrafiek wys, asook wanneer die kwesbaarheid ophou om kwesbaar wees. Die hoogte van die kerse op die grafiek toon die gewildheid van die gebruik van hierdie komponent.
As jy na die kwesbaarhede-afdeling gaan en die CVE oopmaak, kan jy die beskrywing van hierdie kwesbaarheid lees, aanbevelings vir remediëring, sowel as die rede waarom hierdie komponent geskend is, dit wil sê die teenwoordigheid van die klas DiskFileitem.class
.
Kom ons som slegs die derdeparty Java-komponente op deur die js-komponente te verwyder. Tussen hakies dui ons die aantal kwesbaarhede aan wat buite NVD gevind is.
Totale Nexus IQ:
- Afhanklikhede geskandeer: 62
- Kwesbare afhanklikhede: 16
- Kwesbaarhede gevind: 42 (8 sonatipe db)
Totale afhanklikheidkontrole:
- Afhanklikhede geskandeer: 47
- Kwesbare afhanklikhede: 13
- Kwesbaarhede gevind: 91 (14 sonatipe oss)
Totale afhanklikheidspoor:
- Afhanklikhede geskandeer: 59
- Kwesbare afhanklikhede: 10
- Kwesbaarhede gevind: 51 (1 sonatipe oss)
Die volgende stap is om die resultate te ontleed en uit te vind watter van hierdie kwesbaarhede 'n werklike gebrek is en watter 'n vals positief is.
Vrywaring
Hierdie resensie is nie 'n onbetwisbare waarheid nie. Die skrywer het nie 'n doel gehad om 'n aparte instrument teen die agtergrond van ander uit te sonder nie. Die doel van die hersiening was om te wys hoe die SCA-instrumente werk en hoe om hul resultate na te gaan.
Vergelyking van resultate
Terme en voorwaardes:
Vals positiewe vir derdeparty-komponent kwesbaarhede is:
- CVE wanverhouding met geïdentifiseerde komponent
- Byvoorbeeld, as 'n kwesbaarheid in die struts2-raamwerk gevind word, en die instrument wys na 'n komponent van die stutte-teëls-raamwerk wat nie deur hierdie kwesbaarheid geraak word nie, dan is dit 'n vals positief
- CVE pas nie by bespeurde komponentweergawe nie
- Byvoorbeeld, die kwesbaarheid is gekoppel aan python-weergawe > 3.5 en die instrument merk weergawe 2.7 as kwesbaar - dit is vals positief, aangesien die kwesbaarheid in werklikheid net van toepassing is op die 3.x-produkvertakking
- Duplisering van CVE's
- Byvoorbeeld, as die SCA na 'n CVE wys wat toelaat dat 'n RCE geïmplementeer word, dan wys die SCA na dieselfde CVE wat van toepassing is op Cisco-produkte wat onderhewig is aan daardie RCE. In hierdie geval sal dit vals positief wees.
- Byvoorbeeld, 'n CVE is in die spring-web komponent gevind, waarna SCA na dieselfde CVE in ander komponente van die Spring Framework wys, terwyl die CVE niks met ander komponente te doen het nie. In hierdie geval sal dit vals positief wees.
Die doel van navorsing is die Oopbronprojek DVJA. Die studie het slegs Java-komponente (sonder js) behels.
Opsomming resultate
Kom ons gaan aan na die resultaat van 'n handmatige hersiening van die geïdentifiseerde kwesbaarhede. 'n Volledige verslag vir elke CVE kan in die Bylaag gevind word.
Opsomming resultate vir alle kwesbaarhede:
Parameter
Nexus IK
Afhanklikheidskontrole
Afhanklikheid Track
Totale kwesbaarhede geïdentifiseer
42
91
51
Verkeerd geïdentifiseerde kwesbaarhede (vals positief)
2 (4.76%)
62 (68,13%)
29 (56.86%)
Geen relevante kwesbaarhede gevind nie (vals negatief)
10
20
27
Opsomming resultate volgens komponente:
Parameter
Nexus IK
Afhanklikheidskontrole
Afhanklikheid Track
Totale komponente onthul
62
47
59
Totale kwesbare komponente
16
13
10
Kwesbare komponente is verkeerd geïdentifiseer (vals positief)
1
5
0
Kwesbare komponente is verkeerd geïdentifiseer (vals positief)
0
6
6
Kom ons bou visuele grafieke om die verhouding van vals positief en vals negatief tot die totale aantal kwesbaarhede te skat. Komponente word horisontaal gemerk, en kwesbaarhede wat daarin geïdentifiseer word, word vertikaal gemerk.
In vergelyking is 'n soortgelyke studie uitgevoer deur die Sonatype-span wat 'n projek van 1531 komponente getoets het deur die OWASP-afhanklikheidstoets te gebruik. Soos ons kan sien, stem die verhouding van geraas tot korrekte antwoorde ooreen met ons resultate.
Bron:
Kom ons kyk na sommige van die CVE's uit ons skanderingsresultate om die rede vir sulke resultate te verstaan.
meer
№1
Kom ons ontleed eers 'n paar interessante punte van die Sonatype Nexus IQ.
Nexus IQ wys op 'n deserialiseringsprobleem met die vermoë om verskeie kere in Spring Framework te RCE. CVE-2016-1000027 vir die eerste keer in spring-web:3.0.5, en CVE-2011-2894 in lente-konteks:3.0.5 en lente-kern:3.0.5. Aanvanklik blyk dit dat daar 'n duplisering van die kwesbaarheid oor verskeie CVE's is. Want as jy na CVE-2016-1000027 en CVE-2011-2894 in die NVD-databasis kyk, blyk dit dat alles voor die hand liggend is
komponent
Kwesbaarheid
lenteweb:3.0.5
CVE-2016-1000027
lente-konteks:3.0.5
CVE-2011-2894
veerkern: 3.0.5
CVE-2011-2894
Beskrywing
Beskrywing
CVE-2011-2894 is op sigself redelik bekend. In die verslag RemoteInvocationSerializingExporter
in CVE-2011-2894 word die kwesbaarheid gesien in HttpInvokerServiceExporter
. Dit is wat Nexus IQ vir ons sê:
Daar is egter niks soos hierdie in NVD nie, en daarom ontvang Afhanklikheidkontrole en Afhanklikheidspoor vals negatiewe.
Dit kan ook uit die beskrywing van CVE-2011-2894 verstaan word dat die kwesbaarheid wel in beide lente-konteks:3.0.5 en veerkern:3.0.5 teenwoordig is. Bevestiging hiervan kan gevind word in die artikel van die een wat hierdie kwesbaarheid gevind het.
№2
komponent
Kwesbaarheid
Gevolg
stutte2-kern:2.3.30
CVE-2016-4003
ONWAAR
As ons die CVE-2016-4003-kwesbaarheid bestudeer, sal ons verstaan dat dit in weergawe 2.3.28 reggestel is, nietemin lig Nexus IQ ons daaroor in. Daar is 'n nota in die beskrywing van die kwesbaarheid:
Dit wil sê, die kwesbaarheid bestaan slegs in samewerking met 'n verouderde weergawe van die JRE, waaroor hulle besluit het om ons te waarsku. Nietemin beskou ons dit as Vals Positief, hoewel nie die verskriklikste nie.
# 3
komponent
Kwesbaarheid
Gevolg
xwerkkern:2.3.30
CVE-2017-9804
WAAR
xwerkkern:2.3.30
CVE-2017-7672
ONWAAR
As ons na die beskrywing vir CVE-2017-9804 en CVE-2017-7672 kyk, sal ons verstaan dat die probleem in URLValidator class
, met CVE-2017-9804 wat voortspruit uit CVE-2017-7672. Die teenwoordigheid van die tweede kwesbaarheid dra geen loonvrag nie, behalwe dat die erns daarvan tot Hoog gegroei het, so dit kan as onnodige geraas beskou word.
In die algemeen is geen ander vals positiewes vir die Nexus IQ gevind nie.
№4
Daar is 'n paar dinge wat IK laat uitstaan bo ander oplossings.
komponent
Kwesbaarheid
Gevolg
lenteweb:3.0.5
CVE-2020-5398
WAAR
Die CVE in NVD meld dat dit slegs van toepassing is op weergawes 5.2.x tot 5.2.3, 5.1.x tot 5.1.13, en weergawes 5.0.x tot 5.0.16, as ons egter na die CVE-beskrywing in Nexus IQ kyk, dan sal ons die volgende sien:
Adviserende afwykingskennisgewing: Die Sonatype-sekuriteitnavorsingspan het ontdek dat hierdie kwesbaarheid in weergawe 3.0.2.RELEASE bekendgestel is en nie 5.0.x soos in die advies genoem nie.
Dit word gevolg deur 'n PoC vir hierdie kwesbaarheid, wat sê dat dit teenwoordig is in weergawe 3.0.5.
Vals negatief word na Afhanklikheidkontrole en Afhanklikheidspoor gestuur.
№5
Kom ons kyk na vals positief vir Afhanklikheidkontrole en Afhanklikheidspoor.
Afhanklikheidstoets staan uit omdat dit daardie CVE's weerspieël wat op die hele raamwerk in NVD van toepassing is op daardie komponente waarop hierdie CVE's nie van toepassing is nie. Dit is van toepassing op CVE-2012-0394, CVE-2013-2115, CVE-2014-0114, CVE-2015-0899, CVE-2015-2992, CVE-2016-1181, CVE-2016-1182, watter afhanklikheidskontrole ” na stutte-taglib:1.3.8 en stutte-teëls-1.3.8. Hierdie komponente het niks te doen met wat in CVE beskryf word nie - versoekverwerking, bladsyvalidering, ensovoorts. Dit is te wyte aan die feit dat slegs die raamwerk algemeen is tussen hierdie CVE's en komponente, en daarom het Dependency Check dit as 'n kwesbaarheid beskou.
Dieselfde situasie met spring-tx:3.0.5, en soortgelyke situasie met stutte-kern:1.3.8. Vir stutte-kern het Dependency Check en Dependency Track baie kwesbaarhede gevind wat eintlik van toepassing is op struts2-core, wat in wese 'n aparte raamwerk is. In hierdie geval het Nexus IQ die prentjie reg verstaan en in daardie CVE's wat dit uitgereik het, aangedui dat stutte-kern einde van die lewe gekom het en dat dit nodig was om na stutte2-kern oor te skakel.
№6
In sommige situasies is die behandeling van 'n eksplisiete afhanklikheidkontrole en afhanklikheidspoorfout onregverdig. In die besonder CVE-2013-4152, CVE-2013-6429, CVE-2013-6430, CVE-2013-7315, CVE-2014-0054, CVE-2014-0225, CVE-2014-0225 wat afhanklikheidskontrole en afhanklikheid is verwys na spring-core:3.0.5 verwys eintlik na spring-web:3.0.5. Terselfdertyd is sommige van hierdie CVE's deur Nexus IQ gevind, maar IK het hulle korrek na 'n ander komponent geïdentifiseer. Vanuit die feit dat hierdie kwesbaarhede nie in spring-core gevind is nie, kan daar nie geargumenteer word dat hulle nie in beginsel in die raamwerk is nie, en oopbronhulpmiddels het tereg hierdie kwesbaarhede uitgewys (hulle het net 'n bietjie gemis).
Bevindinge
Soos ons kan sien, gee die bepaling van die betroubaarheid van geïdentifiseerde kwesbaarhede deur handmatige hersiening nie ondubbelsinnige resultate nie, wat kontroversiële kwessies veroorsaak. Die resultate is dat die Nexus IQ-oplossing die laagste vals positiewe koers en die hoogste akkuraatheid het.
In die eerste plek is dit te wyte aan die feit dat die Sonatype-span die beskrywing vir elke CVE-kwesbaarheid vanaf NVD in hul databasisse uitgebrei het, wat aandui, tot by die klas of funksie van die kwesbaarheid vir 'n spesifieke weergawe van die komponent, nadat hulle bykomende uitgevoer het navorsing (byvoorbeeld deur kwesbaarhede op ouer sagteware weergawes na te gaan).
'n Belangrike invloed op die resultate word ook gespeel deur die kwesbaarhede wat nie in NVD ingesluit is nie, maar nietemin teenwoordig is in die Sonatype-databasis gemerk SONATYPE. Volgens die verslag
As gevolg hiervan genereer Dependency Check baie geraas, wat sommige van die kwesbare komponente ontbreek. Dependency Track produseer minder geraas en bespeur 'n groot aantal komponente, wat nie die oë in die webkoppelvlak visueel seermaak nie.
Die praktyk toon nietemin dat dit oopbron is wat die eerste stappe in die rigting van 'n volwasse DevSecOps moet word. Die eerste ding om na te dink vir die inbedding van SCA in ontwikkeling is prosesse, naamlik om saam met bestuur en verwante departemente te dink oor hoe ideale prosesse in jou organisasie moet lyk. Dit kan blyk dat vir jou organisasie aanvanklik, Afhanklikheidkontrole of Afhanklikheidspoor alle besigheidsbehoeftes sal dek, en Ondernemingsoplossings sal 'n logiese voortsetting wees as gevolg van die groeiende kompleksiteit van toepassings wat ontwikkel word.
Bylaag A. Resultate vir komponente
Simbole:
- Hoë - hoë en kritieke vlak kwesbaarhede in die komponent
- Medium - Medium erns kwesbaarhede in die komponent
- WAAR - Ware positiewe kwessie
- ONWAAR - Vals positiewe kwessie
komponent
Nexus IK
Afhanklikheidskontrole
Afhanklikheid Track
Gevolg
dom4j:1.6.1
Hoogte
Hoogte
Hoogte
WAAR
log4j-kern: 2.3
Hoogte
Hoogte
Hoogte
WAAR
log4j: 1.2.14
Hoogte
Hoogte
-
WAAR
gemeenskaplike versamelings:3.1
Hoogte
Hoogte
Hoogte
WAAR
commons-lêeroplaai:1.3.2
Hoogte
Hoogte
Hoogte
WAAR
commons-beanutils:1.7.0
Hoogte
Hoogte
Hoogte
WAAR
commons-kodek:1:10
Medium
-
-
WAAR
mysql-connector-java: 5.1.42
Hoogte
Hoogte
Hoogte
WAAR
lente-uitdrukking:3.0.5
Hoogte
komponent nie gevind nie
WAAR
lenteweb:3.0.5
Hoogte
komponent nie gevind nie
Hoogte
WAAR
lente-konteks:3.0.5
Medium
komponent nie gevind nie
-
WAAR
veerkern: 3.0.5
Medium
Hoogte
Hoogte
WAAR
struts2-config-browser-plugin:2.3.30
Medium
-
-
WAAR
spring-tx:3.0.5
-
Hoogte
-
ONWAAR
stutte-kern:1.3.8
Hoogte
Hoogte
Hoogte
WAAR
xwork-kern: 2.3.30
Hoogte
-
-
WAAR
stutte2-kern: 2.3.30
Hoogte
Hoogte
Hoogte
WAAR
stutte-taglib:1.3.8
-
Hoogte
-
ONWAAR
stutte-teëls-1.3.8
-
Hoogte
-
ONWAAR
Bylaag B. Kwesbaarheidsresultate
Simbole:
- Hoë - hoë en kritieke vlak kwesbaarhede in die komponent
- Medium - Medium erns kwesbaarhede in die komponent
- WAAR - Ware positiewe kwessie
- ONWAAR - Vals positiewe kwessie
komponent
Nexus IK
Afhanklikheidskontrole
Afhanklikheid Track
Erns
Gevolg
Lewer kommentaar
dom4j:1.6.1
CVE-2018-1000632
CVE-2018-1000632
CVE-2018-1000632
Hoogte
WAAR
CVE-2020-10683
CVE-2020-10683
CVE-2020-10683
Hoogte
WAAR
log4j-kern: 2.3
CVE-2017-5645
CVE-2017-5645
CVE-2017-5645
Hoogte
WAAR
CVE-2020-9488
CVE-2020-9488
CVE-2020-9488
Laagte
WAAR
log4j: 1.2.14
CVE-2019-17571
CVE-2019-17571
-
Hoogte
WAAR
-
CVE-2020-9488
-
Laagte
WAAR
SONATIPE-2010-0053
-
-
Hoogte
WAAR
gemeenskaplike versamelings:3.1
-
CVE-2015-6420
CVE-2015-6420
Hoogte
ONWAAR
Duplikate RCE(OSSINDEX)
-
CVE-2017-15708
CVE-2017-15708
Hoogte
ONWAAR
Duplikate RCE(OSSINDEX)
SONATIPE-2015-0002
RCE (OSSINDEX)
RCE(OSSINDEX)
Hoogte
WAAR
commons-lêeroplaai:1.3.2
CVE-2016-1000031
CVE-2016-1000031
CVE-2016-1000031
Hoogte
WAAR
SONATIPE-2014-0173
-
-
Medium
WAAR
commons-beanutils:1.7.0
CVE-2014-0114
CVE-2014-0114
CVE-2014-0114
Hoogte
WAAR
-
CVE-2019-10086
CVE-2019-10086
Hoogte
ONWAAR
Kwesbaarheid is slegs van toepassing op weergawes 1.9.2+
commons-kodek:1:10
SONATIPE-2012-0050
-
-
Medium
WAAR
mysql-connector-java: 5.1.42
CVE-2018-3258
CVE-2018-3258
CVE-2018-3258
Hoogte
WAAR
CVE-2019-2692
CVE-2019-2692
-
Medium
WAAR
-
CVE-2020-2875
-
Medium
ONWAAR
Dieselfde kwesbaarheid as CVE-2019-2692, maar met die toevoeging "kan aanvalle aansienlike impak op bykomende produkte hê"
-
CVE-2017-15945
-
Hoogte
ONWAAR
Is nie van toepassing op mysql-connector-java nie
-
CVE-2020-2933
-
Laagte
ONWAAR
Duplikaat na CVE-2020-2934
CVE-2020-2934
CVE-2020-2934
-
Medium
WAAR
lente-uitdrukking:3.0.5
CVE-2018-1270
komponent nie gevind nie
-
Hoogte
WAAR
CVE-2018-1257
-
-
Medium
WAAR
lenteweb:3.0.5
CVE-2016-1000027
komponent nie gevind nie
-
Hoogte
WAAR
CVE-2014-0225
-
CVE-2014-0225
Hoogte
WAAR
CVE-2011-2730
-
-
Hoogte
WAAR
-
-
CVE-2013-4152
Medium
WAAR
CVE-2018-1272
-
-
Hoogte
WAAR
CVE-2020-5398
-
-
Hoogte
WAAR
Geval ten gunste van IK: "Die Sonatype-sekuriteitnavorsingspan het ontdek dat hierdie kwesbaarheid in weergawe 3.0.2.RELEASE bekendgestel is en nie 5.0.x soos in die advies genoem nie."
CVE-2013-6429
-
-
Medium
WAAR
CVE-2014-0054
-
CVE-2014-0054
Medium
WAAR
CVE-2013-6430
-
-
Medium
WAAR
lente-konteks:3.0.5
CVE-2011-2894
komponent nie gevind nie
-
Medium
WAAR
veerkern: 3.0.5
-
CVE-2011-2730
CVE-2011-2730
Hoogte
WAAR
CVE-2011-2894
CVE-2011-2894
CVE-2011-2894
Medium
WAAR
-
-
CVE-2013-4152
Medium
ONWAAR
Duplikaat van dieselfde kwesbaarheid in spring-web
-
CVE-2013-4152
-
Medium
ONWAAR
Die kwesbaarheid hou verband met die spring-web-komponent
-
CVE-2013-6429
CVE-2013-6429
Medium
ONWAAR
Die kwesbaarheid hou verband met die spring-web-komponent
-
CVE-2013-6430
-
Medium
ONWAAR
Die kwesbaarheid hou verband met die spring-web-komponent
-
CVE-2013-7315
CVE-2013-7315
Medium
ONWAAR
SPLIT vanaf CVE-2013-4152. + Die kwesbaarheid hou verband met die veerwebkomponent
-
CVE-2014-0054
CVE-2014-0054
Medium
ONWAAR
Die kwesbaarheid hou verband met die spring-web-komponent
-
CVE-2014-0225
-
Hoogte
ONWAAR
Die kwesbaarheid hou verband met die spring-web-komponent
-
-
CVE-2014-0225
Hoogte
ONWAAR
Duplikaat van dieselfde kwesbaarheid in spring-web
-
CVE-2014-1904
CVE-2014-1904
Medium
ONWAAR
Die kwesbaarheid hou verband met die spring-web-mvc-komponent
-
CVE-2014-3625
CVE-2014-3625
Medium
ONWAAR
Die kwesbaarheid hou verband met die spring-web-mvc-komponent
-
CVE-2016-9878
CVE-2016-9878
Hoogte
ONWAAR
Die kwesbaarheid hou verband met die spring-web-mvc-komponent
-
CVE-2018-1270
CVE-2018-1270
Hoogte
ONWAAR
Vir lente-uitdrukking / lente-boodskappe
-
CVE-2018-1271
CVE-2018-1271
Medium
ONWAAR
Die kwesbaarheid hou verband met die spring-web-mvc-komponent
-
CVE-2018-1272
CVE-2018-1272
Hoogte
WAAR
CVE-2014-3578
CVE-2014-3578(OSSINDEX)
CVE-2014-3578
Medium
WAAR
SONATIPE-2015-0327
-
-
Laagte
WAAR
struts2-config-browser-plugin:2.3.30
SONATIPE-2016-0104
-
-
Medium
WAAR
spring-tx:3.0.5
-
CVE-2011-2730
-
Hoogte
ONWAAR
Die kwesbaarheid is nie van toepassing op spring-tx nie
-
CVE-2011-2894
-
Hoogte
ONWAAR
Die kwesbaarheid is nie van toepassing op spring-tx nie
-
CVE-2013-4152
-
Medium
ONWAAR
Die kwesbaarheid is nie van toepassing op spring-tx nie
-
CVE-2013-6429
-
Medium
ONWAAR
Die kwesbaarheid is nie van toepassing op spring-tx nie
-
CVE-2013-6430
-
Medium
ONWAAR
Die kwesbaarheid is nie van toepassing op spring-tx nie
-
CVE-2013-7315
-
Medium
ONWAAR
Die kwesbaarheid is nie van toepassing op spring-tx nie
-
CVE-2014-0054
-
Medium
ONWAAR
Die kwesbaarheid is nie van toepassing op spring-tx nie
-
CVE-2014-0225
-
Hoogte
ONWAAR
Die kwesbaarheid is nie van toepassing op spring-tx nie
-
CVE-2014-1904
-
Medium
ONWAAR
Die kwesbaarheid is nie van toepassing op spring-tx nie
-
CVE-2014-3625
-
Medium
ONWAAR
Die kwesbaarheid is nie van toepassing op spring-tx nie
-
CVE-2016-9878
-
Hoogte
ONWAAR
Die kwesbaarheid is nie van toepassing op spring-tx nie
-
CVE-2018-1270
-
Hoogte
ONWAAR
Die kwesbaarheid is nie van toepassing op spring-tx nie
-
CVE-2018-1271
-
Medium
ONWAAR
Die kwesbaarheid is nie van toepassing op spring-tx nie
-
CVE-2018-1272
-
Medium
ONWAAR
Die kwesbaarheid is nie van toepassing op spring-tx nie
stutte-kern:1.3.8
-
CVE-2011-5057(OSSINDEX)
Medium
FASLE
Kwesbaarheid vir stutte 2
-
CVE-2012-0391(OSSINDEX)
CVE-2012-0391
Hoogte
ONWAAR
Kwesbaarheid vir stutte 2
-
CVE-2014-0094(OSSINDEX)
CVE-2014-0094
Medium
ONWAAR
Kwesbaarheid vir stutte 2
-
CVE-2014-0113(OSSINDEX)
CVE-2014-0113
Hoogte
ONWAAR
Kwesbaarheid vir stutte 2
CVE-2016-1182
3VE-2016-1182
-
Hoogte
WAAR
-
-
CVE-2011-5057
Medium
ONWAAR
Kwesbaarheid vir stutte 2
-
CVE-2012-0392(OSSINDEX)
CVE-2012-0392
Hoogte
ONWAAR
Kwesbaarheid vir stutte 2
-
CVE-2012-0393(OSSINDEX)
CVE-2012-0393
Medium
ONWAAR
Kwesbaarheid vir stutte 2
CVE-2015-0899
CVE-2015-0899
-
Hoogte
WAAR
-
CVE-2012-0394
CVE-2012-0394
Medium
ONWAAR
Kwesbaarheid vir stutte 2
-
CVE-2012-0838(OSSINDEX)
CVE-2012-0838
Hoogte
ONWAAR
Kwesbaarheid vir stutte 2
-
CVE-2013-1965(OSSINDEX)
CVE-2013-1965
Hoogte
ONWAAR
Kwesbaarheid vir stutte 2
-
CVE-2013-1966(OSSINDEX)
CVE-2013-1966
Hoogte
FASLE
Kwesbaarheid vir stutte 2
-
CVE-2013-2115
CVE-2013-2115
Hoogte
FASLE
Kwesbaarheid vir stutte 2
-
CVE-2013-2134(OSSINDEX)
CVE-2013-2134
Hoogte
FASLE
Kwesbaarheid vir stutte 2
-
CVE-2013-2135(OSSINDEX)
CVE-2013-2135
Hoogte
FASLE
Kwesbaarheid vir stutte 2
CVE-2014-0114
CVE-2014-0114
-
Hoogte
WAAR
-
CVE-2015-2992
CVE-2015-2992
Medium
ONWAAR
Kwesbaarheid vir stutte 2
-
CVE-2016-0785(OSSINDEX)
CVE-2016-0785
Hoogte
ONWAAR
Kwesbaarheid vir stutte 2
CVE-2016-1181
CVE-2016-1181
-
Hoogte
WAAR
-
CVE-2016-4003(OSSINDEX)
CVE-2016-4003
Hoogte
ONWAAR
Kwesbaarheid vir stutte 2
xwerkkern:2.3.30
CVE-2017-9804
-
-
Hoogte
WAAR
SONATIPE-2017-0173
-
-
Hoogte
WAAR
CVE-2017-7672
-
-
Hoogte
ONWAAR
Verdubbel na CVE-2017-9804
SONATIPE-2016-0127
-
-
Hoogte
WAAR
stutte2-kern:2.3.30
-
CVE-2016-6795
CVE-2016-6795
Hoogte
WAAR
-
CVE-2017-9787
CVE-2017-9787
Hoogte
WAAR
-
CVE-2017-9791
CVE-2017-9791
Hoogte
WAAR
-
CVE-2017-9793
-
Hoogte
ONWAAR
Duplikaat na CVE-2018-1327
-
CVE-2017-9804
-
Hoogte
WAAR
-
CVE-2017-9805
CVE-2017-9805
Hoogte
WAAR
CVE-2016-4003
-
-
Medium
ONWAAR
Van toepassing op Apache Struts 2.x tot 2.3.28, wat weergawe 2.3.30 is. Op grond van die beskrywing werk CVE egter op alle weergawes van Struts 2 solank JRE 1.7 en onder gebruik word. Hulle het glo besluit om ons hier te herverseker, maar dit lyk meer na ONWAAR
-
CVE-2018-1327
CVE-2018-1327
Hoogte
WAAR
CVE-2017-5638
CVE-2017-5638
CVE-2017-5638
Hoogte
WAAR
Dieselfde kwesbaarheid wat in 2017 deur aanvallers in Equifax uitgebuit is
CVE-2017-12611
CVE-2017-12611
-
Hoogte
WAAR
CVE-2018-11776
CVE-2018-11776
CVE-2018-11776
Hoogte
WAAR
stutte-taglib:1.3.8
-
CVE-2012-0394
-
Medium
ONWAAR
Vir stutte 2-kern
-
CVE-2013-2115
-
Hoogte
ONWAAR
Vir stutte 2-kern
-
CVE-2014-0114
-
Hoogte
ONWAAR
Vir commons-beanutils
-
CVE-2015-0899
-
Hoogte
ONWAAR
Nie verwant aan taglib nie
-
CVE-2015-2992
-
Medium
ONWAAR
Verwant aan stutte2-kern
-
CVE-2016-1181
-
Hoogte
ONWAAR
Nie verwant aan taglib nie
-
CVE-2016-1182
-
Hoogte
ONWAAR
Nie verwant aan taglib nie
stutte-teëls-1.3.8
-
CVE-2012-0394
-
Medium
ONWAAR
Vir stutte 2-kern
-
CVE-2013-2115
-
Hoogte
ONWAAR
Vir stutte 2-kern
-
CVE-2014-0114
-
Hoogte
ONWAAR
Onder commons-beanutils
-
CVE-2015-0899
-
Hoogte
ONWAAR
Is nie van toepassing op teëls nie
-
CVE-2015-2992
-
Medium
ONWAAR
Vir stutte 2-kern
-
CVE-2016-1181
-
Hoogte
ONWAAR
Nie verwant aan taglib nie
-
CVE-2016-1182
-
Hoogte
ONWAAR
Nie verwant aan taglib nie
Bron: will.com