Kolmandate osapoolte tarkvarakomponentide (Software Composition Analysis – SCA) analüüsi tähtsus arendusprotsessis kasvab koos avatud lähtekoodiga teekide haavatavuste aastaaruannete avaldamisega, mida avaldavad Synopsys, Sonatype, Snyk ja White Source. . Aruande kohaselt
Üks illustreerivamaid juhtumeid
Selles artiklis käsitletakse SCA läbiviimise tööriista valimise küsimust analüüsitulemuste kvaliteedi seisukohast. Samuti esitatakse tööriistade funktsionaalne võrdlus. CI/CD-sse integreerimise protsess ja integreerimisvõimalused jäetakse järgmistele väljaannetele. OWASP esitles laia valikut tööriistu
Tööpõhimõte
Vaatame, kuidas CPE välja näeb:
cpe:2.3:part:vendor:product:version:update:edition:language:sw_edition:target_sw:target_hw:other
- osa: Märge, et komponent on seotud rakendusega (a), operatsioonisüsteemiga (o), riistvaraga (h) (nõutav)
- Müüja: Toote tootja nimi (nõutav)
- toode: Toote nimi (nõutav)
- Versioon: Komponendi versioon (vananenud üksus)
- Värskenda: Paketi värskendus
- väljaanne: Pärandversioon (aegunud üksus)
- Keel: RFC-5646 määratletud keel
- SW väljaanne: Tarkvara versioon
- Siht-SW: Tarkvarakeskkond, milles toode töötab
- Siht-HW: Riistvarakeskkond, milles toode töötab
- Muud: Tarnija või tooteteave
CPE näide näeb välja selline:
cpe:2.3:a:pivotal_software:spring_framework:3.0.0:*:*:*:*:*:*:*
Rida tähendab, et CPE versioon 2.3 kirjeldab rakenduse komponenti tootjalt pivotal_software
pealkirjaga spring_framework
versioon 3.0.0. Kui avame haavatavuse
URL-i kasutavad ka SCA tööriistad. Paketi URL-i vorming on järgmine:
scheme:type/namespace/name@version?qualifiers#subpath
- Skeem: Alati on 'pkg', mis näitab, et see on paketi URL (nõutav)
- Type: Pakendi "tüüp" või paki "protokoll", nt maven, npm, nuget, gem, pypi jne. (Nõutav üksus)
- Nimeruum: Mõni nime eesliide, näiteks Maveni rühma ID, Dockeri pildi omanik, GitHubi kasutaja või organisatsioon. Valikuline ja oleneb tüübist.
- Nimi: Paketi nimi (nõutav)
- Versioon: Paketi versioon
- Qualifiers: Paketi täiendavad kvalifikatsiooniandmed, nagu OS, arhitektuur, levitamine jne. Valikuline ja tüübispetsiifiline.
- Alamtee: Täiendav tee paketis paketi juure suhtes
Näiteks:
pkg:golang/google.golang.org/genproto#googleapis/api/annotations
pkg:maven/org.apache.commons/[email protected]
pkg:pypi/[email protected]
Näide selle kohta, kuidas BOM XML-vormingus välja näeb:
<?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-i saab kasutada mitte ainult Dependency Tracki sisendparameetritena, vaid ka tarneahelas tarkvarakomponentide inventeerimiseks, näiteks kliendile tarkvara pakkumiseks. 2014. aastal tehti USA-s isegi seadus ettepanek
Naastes SCA juurde, on Dependency Trackil valmis integratsioonid teavitusplatvormidega, nagu Slack, ja haavatavuse haldussüsteemidega, nagu Kenna Security. Samuti tasub öelda, et Dependency Track tuvastab muuhulgas pakettide aegunud versioonid ja annab teavet litsentside kohta (tänu SPDX-i toele).
Kui me räägime konkreetselt SCA kvaliteedist, siis siin on põhimõtteline erinevus.
Dependency Track ei aktsepteeri projekti sisendina, vaid pigem BOM-i. See tähendab, et kui tahame projekti testida, peame esmalt genereerima bom.xml, näiteks kasutades CycloneDX. Seega sõltub Dependency Track otseselt CycloneDX-ist. Samal ajal võimaldab see kohandamist. Nii kirjutas OZONi meeskond
Võtame kokku mõned funktsionaalsed funktsioonid ja kaalume analüüsimiseks ka toetatud keeli:
Keel
Nexuse IQ
Sõltuvuskontroll
Sõltuvusrada
Java
+
+
+
C / C ++
+
+
-
C#
+
+
-
.Net
+
+
+
erlang
-
-
+
JavaScript (NodeJS)
+
+
+
PHP
+
+
+
Python
+
+
+
rubiin
+
+
+
Perl
-
-
-
Scala
+
+
+
Eesmärk C
+
+
-
Kiire
+
+
-
R
+
-
-
Go
+
+
+
Funktsionaalsus
Funktsionaalsus
Nexuse IQ
Sõltuvuskontroll
Sõltuvusrada
Võimalus tagada lähtekoodis kasutatud komponentide litsentsitud puhtuse kontrollimine
+
-
+
Võimalus skannida ja analüüsida haavatavusi ning litsentsida Dockeri piltide puhtust
+ Integratsioon Clairiga
-
-
Võimalus konfigureerida turvapoliitikat avatud lähtekoodiga teekide kasutamiseks
+
-
-
Võimalus skannida avatud lähtekoodiga hoidlaid haavatavate komponentide leidmiseks
+ RubyGems, Maven, NPM, Nuget, Pypi, Conan, Bower, Conda, Go, p2, R, Yum, Helm, Docker, CocoaPods, Git LFS
-
+ Hex, RubyGems, Maven, NPM, Nuget, Pypi
Spetsialiseerunud uurimisrühma olemasolu
+
-
-
Suletud ahelaga töö
+
+
+
Kolmandate osapoolte andmebaaside kasutamine
+ Suletud Sonatype andmebaas
+ Sonatype OSS, NPM avalikud nõustajad
+ Sonatype OSS, NPM Public Advisors, RetireJS, VulnDB, tugi oma haavatavuse andmebaasile
Võimalus filtreerida avatud lähtekoodiga komponente, kui proovite laadida arendusahelasse vastavalt konfigureeritud poliitikatele
+
-
-
Soovitused haavatavuste parandamiseks, paranduste linkide kättesaadavus
+
+- (sõltub avalikes andmebaasides olevast kirjeldusest)
+- (sõltub avalikes andmebaasides olevast kirjeldusest)
Avastatud haavatavuste järjestamine raskusastme järgi
+
+
+
Rollipõhine juurdepääsumudel
+
-
+
CLI tugi
+
+
+- (ainult CycloneDX jaoks)
Haavatavustest valimi võtmine/sorteerimine vastavalt määratletud kriteeriumidele
+
-
+
Armatuurlaud rakenduse oleku järgi
+
-
+
Aruannete genereerimine PDF-vormingus
+
-
-
Aruannete genereerimine JSONCSV-vormingus
+
+
-
vene keele tugi
-
-
-
Integreerimisvõimalused
Integratsioon
Nexuse IQ
Sõltuvuskontroll
Sõltuvusrada
LDAP/Active Directory integreerimine
+
-
+
Integratsioon pideva integratsioonisüsteemiga Bamboo
+
-
-
Integratsioon pideva integratsioonisüsteemiga TeamCity
+
-
-
Integratsioon pideva integratsioonisüsteemiga GitLab
+
+- (GitLabi pistikprogrammina)
+
Integratsioon pideva integratsioonisüsteemiga Jenkins
+
+
+
IDE pistikprogrammide saadavus
+ IntelliJ, Eclipse, Visual Studio
-
-
Tööriista kohandatud integreerimise tugi veebiteenuste (API) kaudu
+
-
+
Sõltuvuskontroll
Esimene algus
Käivitame tahtlikult haavatavas rakenduses sõltuvuskontrolli
Selleks kasutame
mvn org.owasp:dependency-check-maven:check
Selle tulemusena kuvatakse sihtkataloogis dependency-check-report.html.
Avame faili. Pärast kokkuvõtlikku teavet haavatavuste koguarvu kohta näeme teavet kõrge raskusastme ja usaldusväärsusega turvaaukude kohta, mis näitab paketti, CPE-d ja CVE-de arvu.
Edasi tuleb üksikasjalikum teave, eelkõige otsuse tegemise alus (tõendid), see tähendab teatud BOM.
Järgmisena tuleb CPE, PURL ja CVE kirjeldus. Muide, parandussoovitusi pole lisatud nende puudumise tõttu NVD andmebaasis.
Skannimistulemuste süstemaatiliseks vaatamiseks saate konfigureerida Nginxi minimaalsete sätetega või saata tekkinud vead veahaldussüsteemi, mis toetab konnektoreid sõltuvuse kontrollimiseks. Näiteks Defect Dojo.
Sõltuvusrada
Paigaldamine
Dependency Track on omakorda veebipõhine kuvagraafikutega platvorm, mistõttu ei teki siinkohal teravat probleemi, mis puudutab defektide talletamist kolmanda osapoole lahenduses.
Installimiseks toetatavad skriptid on: Docker, WAR, Executable WAR.
Esimene algus
Me läheme töötava teenuse URL-ile. Logime sisse admin/admin kaudu, muudame sisselogimise ja parooli ning jõuame seejärel armatuurlauale. Järgmisena loome Java testrakenduse projekti Avaleht/Projektid → Loo projekt . Võtame näiteks DVJA.
Kuna Dependency Track saab sisendina aktsepteerida ainult BOM-i, tuleb see BOM tuua. Kasutame ära
mvn org.cyclonedx:cyclonedx-maven-plugin:makeAggregateBom
Saame bom.xml ja laadime faili loodud projekti DVJA → Sõltuvused → Laadi BOM üles.
Läheme jaotisse Administreerimine → Analüsaatorid. Mõistame, et meil on lubatud ainult sisemine analüsaator, mis hõlmab ka NVD-d. Ühendame ka Sonatype OSS Indexi.
Seega saame oma projekti kohta järgmise pildi:
Loendist leiate ka ühe Sonatype OSS-i jaoks kohaldatava haavatavuse:
Peamine pettumus oli see, et Dependency Track ei aktsepteeri enam Dependency Check xml aruandeid. Sõltuvuskontrolli integratsiooni uusimad toetatud versioonid olid 1.0.0–4.0.2, samas kui ma testisin versiooni 5.3.2.
siin on
Nexuse IQ
Esimene algus
Nexus IQ installimine pärineb arhiivist
Pärast konsooli sisselogimist peate looma organisatsiooni ja rakenduse.
Nagu näha, on seadistamine IQ puhul mõnevõrra keerulisem, kuna peame looma ka erinevatele “etappidele” (dev, build, stage, release) rakendatavad poliitikad. See on vajalik haavatavate komponentide blokeerimiseks, kui need liiguvad läbi torujuhtme tootmisele lähemale, või blokeerimiseks niipea, kui arendajad on need alla laadinud Nexus Reposse.
Et tunda erinevust avatud lähtekoodiga ja ettevõtte vahel, tehkem sama skannimist Nexus IQ kaudu samal viisil 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>
Järgige IQ veebiliideses loodud aruande URL-i:
Siin näete kõiki eeskirjade rikkumisi, mis viitavad erinevatele olulisuse tasemetele (alates teabest kuni turvalisuse kriitiliseni). Komponendi kõrval olev täht D tähendab, et komponent on Otsesõltuvus ja T-täht komponendi kõrval, et komponent on Transitive Dependency ehk see on transitiivne.
Muide, aruanne
Kui avame mõne Nexus IQ eeskirjade rikkumise, näeme komponendi kirjeldust ja versioonigraafikut, mis näitab praeguse versiooni asukohta ajagraafikul ja seda, millal haavatavus lakkab. olla haavatav. Küünalde kõrgus graafikul näitab selle komponendi kasutamise populaarsust.
Kui lähete turvaaukude jaotisse ja laiendate CVE-d, saate lugeda selle haavatavuse kirjeldust, soovitusi selle kõrvaldamiseks, samuti põhjust, miks seda komponenti rikuti, st klassi olemasolu. DiskFileitem.class
.
Võtame kokku ainult need, mis on seotud kolmanda osapoole Java komponentidega, eemaldades js komponendid. Sulgudes märgime väljaspool NVD-d leitud haavatavuste arvu.
Nexuse IQ kokku:
- Skaneeritud sõltuvused: 62
- Haavatavad sõltuvused: 16
- Leitud haavatavused: 42 (8 sonatype db)
Kogu sõltuvuskontroll:
- Skaneeritud sõltuvused: 47
- Haavatavad sõltuvused: 13
- Leitud haavatavused: 91 (14 sonatype oss)
Kogu sõltuvusrada:
- Skaneeritud sõltuvused: 59
- Haavatavad sõltuvused: 10
- Leitud haavatavused: 51 (1 sonatype oss)
Järgmiste sammude käigus analüüsime saadud tulemusi ja selgitame välja, milline neist haavatavustest on tõeline defekt ja milline valepositiivne.
Vastutusest loobumine
See ülevaade ei ole vaieldamatu tõde. Autoril ei olnud eesmärki teiste taustal eraldi pilli esile tõsta. Ülevaate eesmärk oli näidata SCA tööriistade töömehhanisme ja võimalusi nende tulemuste kontrollimiseks.
Tulemuste võrdlus
Tingimused:
Kolmanda osapoole komponentide haavatavuste valepositiivne tulemus on:
- CVE mittevastavus tuvastatud komponendiga
- Näiteks kui raamistikus struts2 tuvastatakse haavatavus ja tööriist osutab tugipostide raamistiku komponendile, mille puhul see haavatavus ei kehti, on see valepositiivne.
- CVE mittevastavus komponendi tuvastatud versiooniga
- Näiteks on haavatavus seotud Pythoni versiooniga > 3.5 ja tööriist märgib haavatavaks versiooni 2.7 – see on valepositiivne, kuna tegelikult puudutab haavatavus ainult 3.x tooteharu
- CVE duplikaat
- Näiteks kui SCA määrab CVE, mis võimaldab RCE-d, siis SCA määrab sama komponendi jaoks CVE, mis kehtib Cisco toodetele, mida see RCE mõjutab. Sel juhul on see valepositiivne.
- Näiteks leiti vedruveebi komponendist CVE, mille järel SCA osutab samale CVE-le Spring Frameworki teistes komponentides, samas kui CVE-l pole teiste komponentidega midagi pistmist. Sel juhul on see valepositiivne.
Uuringu objektiks oli avatud lähtekoodiga projekt DVJA. Uuring hõlmas ainult Java komponente (ilma js-ita).
Kokkuvõtlikud tulemused
Liigume otse tuvastatud haavatavuste käsitsi ülevaatamise tulemuste juurde. Iga CVE täieliku aruande leiate lisast.
Kokkuvõtlikud tulemused kõigi haavatavuste kohta:
Parameeter
Nexuse IQ
Sõltuvuskontroll
Sõltuvusrada
Tuvastatud haavatavused kokku
42
91
51
Valesti tuvastatud haavatavused (valepositiivne)
2 (4.76%)
62 (68,13%)
29 (56.86%)
Asjakohaseid turvaauke ei leitud (valenegatiivne)
10
20
27
Tulemuste kokkuvõte komponentide kaupa:
Parameeter
Nexuse IQ
Sõltuvuskontroll
Sõltuvusrada
Tuvastatud komponendid kokku
62
47
59
Kokku haavatavad komponendid
16
13
10
Valesti tuvastatud haavatavad komponendid (valepositiivne)
1
5
0
Valesti tuvastatud haavatavad komponendid (valepositiivne)
0
6
6
Koostame visuaalsed graafikud, et hinnata valepositiivsete ja valenegatiivsete suhet turvaaukude koguarvusse. Komponendid on tähistatud horisontaalselt ja neis tuvastatud haavatavused vertikaalselt.
Võrdluseks, Sonatype'i meeskond viis läbi sarnase uuringu, testides OWASP-i sõltuvuskontrolli abil 1531 komponendist koosnevat projekti. Nagu näeme, on müra ja õigete vastuste suhe võrreldav meie tulemustega.
Allikas:
Vaatame mõningaid meie skannimistulemuste CVE-sid, et mõista nende tulemuste põhjust.
Rohkem
№ 1
Vaatame kõigepealt mõnda huvitavat punkti Sonatype Nexus IQ kohta.
Nexus IQ juhib tähelepanu deserialiseerimise probleemile, mis on seotud võimalusega teha kevadraamistikus mitu korda RCE-d. CVE-2016-1000027 kevadel-veebis: 3.0.5 esimest korda ja CVE-2011-2894 kevadkontekstis: 3.0.5 ja vedrutuum: 3.0.5. Esialgu näib, et haavatavus on mitme CVE vahel dubleeritud. Sest kui vaadata NVD andmebaasis CVE-2016-1000027 ja CVE-2011-2894, tundub, et kõik on ilmne
Komponent
Haavatavus
kevad-veeb:3.0.5
CVE-2016-1000027
kevad-kontekst:3.0.5
CVE-2011-2894
vedru südamik: 3.0.5
CVE-2011-2894
Kirjeldus
Kirjeldus
CVE-2011-2894 ise on üsna kuulus. Aruandes RemoteInvocationSerializingExporter
CVE-2011-2894-s on haavatavust täheldatud HttpInvokerServiceExporter
. Seda ütleb meile Nexus IQ:
NVD-s aga midagi sellist pole, mistõttu saavad sõltuvuskontrolli ja sõltuvusjälgi mõlemad valenegatiivsed tulemused.
Ka CVE-2011-2894 kirjeldusest võib aru saada, et haavatavus on tõepoolest olemas nii vedrukontekstis:3.0.5 kui ka vedrutuum:3.0.5. Kinnituse selle kohta leiate selle haavatavuse avastaja artiklist.
№ 2
Komponent
Haavatavus
Tulemus
toed2-tuumalised: 2.3.30
CVE-2016-4003
FALSE
Kui uurime haavatavust CVE-2016-4003, saame aru, et see parandati versioonis 2.3.28, kuid Nexus IQ teatab sellest meile. Haavatavuse kirjelduses on märge:
See tähendab, et haavatavus eksisteerib ainult koos JRE vananenud versiooniga, mille eest nad otsustasid meid hoiatada. Sellegipoolest peame seda valepositiivseks, kuigi mitte kõige halvemaks.
№ 3
Komponent
Haavatavus
Tulemus
xwork-core: 2.3.30
CVE-2017-9804
TRUE
xwork-core: 2.3.30
CVE-2017-7672
FALSE
Kui vaatame CVE-2017-9804 ja CVE-2017-7672 kirjeldusi, saame aru, et probleem on URLValidator class
, mille CVE-2017-9804 tuleneb CVE-2017-7672. Teise haavatavuse olemasolu ei kanna muud kasulikku koormust peale selle, et selle raskusaste on kõrge, seega võime seda pidada tarbetuks müraks.
Üldiselt ei leitud Nexus IQ puhul muid valepositiivseid tulemusi.
№ 4
On mitmeid asju, mis tõstavad IQ teiste lahenduste seast esile.
Komponent
Haavatavus
Tulemus
kevad-veeb:3.0.5
CVE-2020-5398
TRUE
NVD-s sisalduv CVE väidab, et see kehtib ainult versioonide 5.2.x enne 5.2.3, 5.1.x enne 5.1.13 ja versioonide 5.0.x enne 5.0.16 kohta, kui vaatame Nexus IQ CVE kirjeldust , siis näeme järgmist:
Nõuandev kõrvalekaldeteade: Sonatype'i turbeuuringute meeskond avastas, et see haavatavus lisati versioonis 3.0.2.RELEASE, mitte versioonis 5.0.x, nagu on märgitud nõuandes.
Sellele järgneb selle haavatavuse PoC, mis väidab, et see on versioonis 3.0.5 olemas.
Dependency Check ja Dependency Track saadetakse valenegatiivne.
№ 5
Vaatame sõltuvuskontrolli ja sõltuvusraja valepositiivseid tulemusi.
Sõltuvuskontroll paistab silma selle poolest, et see kajastab neid CVE-sid, mis kehtivad kogu raamistiku kohta NVD-s, nende komponentidega, millele need CVE-d ei kehti. See puudutab CVE-2012-0394, CVE-2013-2115, CVE-2014-0114, CVE-2015-0899, CVE-2015-2992, CVE-2016-1181, CVE-2016-1182, mis sõltuvad kontrollist ” to struts-taglib:1.3.8 ja struts-tiles-1.3.8. Nendel komponentidel pole midagi pistmist CVE-s kirjeldatuga – päringu töötlemine, lehe valideerimine jne. See on tingitud asjaolust, et nende CVE-de ja komponentide ühisosa on ainult raamistik, mistõttu Dependency Check pidas seda haavatavaks.
Sama olukord on vedru-tx:3.0.5 ja sarnane olukord struts-core:1.3.8. Struts-core jaoks on Dependency Check ja Dependency Track leidnud palju turvaauke, mis on tegelikult rakendatavad struts2-core puhul, mis on sisuliselt eraldi raamistik. Antud juhul sai Nexus IQ pildist õigesti aru ja tema väljastatud CVE-des näitas, et struts-core on jõudnud eluea lõppu ja vaja üle minna struts2-core peale.
№ 6
Mõnes olukorras on ebaõiglane tõlgendada ilmset sõltuvuskontrolli ja sõltuvusjälgi viga. Eelkõige CVE-2013-4152, CVE-2013-6429, CVE-2013-6430, CVE-2013-7315, CVE-2014-0054, CVE-2014-0225, CVE-2014-0225, mis sõltuvad kontrollist ja sõltuvusest omistatud spring-core:3.0.5 kuulub tegelikult vedru-veebi:3.0.5. Samal ajal leidis osa neist CVE-dest ka Nexus IQ, kuid IQ tuvastas need õigesti mõne teise komponendiga. Kuna Spring-core'is neid turvaauke ei leitud, ei saa väita, et need ei ole põhimõtteliselt raamistikus ja avatud lähtekoodiga tööriistad juhtisid neile haavatavustele õigustatult tähelepanu (nad jätsid lihtsalt natuke puudu).
Järeldused
Nagu näeme, ei anna tuvastatud turvaaukude usaldusväärsuse määramine käsitsi ülevaatuse teel üheseid tulemusi, mistõttu tekivad vastuolulised probleemid. Tulemused näitavad, et Nexus IQ lahendusel on madalaim valepositiivsete tulemuste määr ja suurim täpsus.
Esiteks on see tingitud asjaolust, et Sonatype'i meeskond laiendas oma andmebaasides NVD iga CVE haavatavuse kirjeldust, märkides komponentide konkreetse versiooni haavatavused kuni klassi või funktsioonini välja, viies läbi täiendavaid uuringuid (näiteks , kontrollides haavatavusi vanematel tarkvaraversioonidel).
Olulist mõju tulemustele mängivad ka need haavatavused, mida NVD-s ei olnud, kuid mis on siiski olemas Sonatype andmebaasis SONATYPE märgiga. Aruande kohaselt
Selle tulemusena tekitab sõltuvuskontroll palju müra, jättes puudu mõned haavatavad komponendid. Dependency Track tekitab vähem müra ja tuvastab suure hulga komponente, mis ei kahjusta veebiliideses visuaalselt silmi.
Praktika näitab aga, et avatud lähtekoodiga peaks saama esimene samm küpse DevSecOpsi poole. Esimene asi, millele SCA arendusse integreerimisel mõelda, on protsessid, nimelt mõelda koos juhtkonna ja sellega seotud osakondadega, millised peaksid välja nägema ideaalsed protsessid sinu organisatsioonis. Võib selguda, et teie organisatsiooni jaoks katab Dependency Check või Dependency Track algul kõik ärivajadused ning ettevõtte lahendused on arendatavate rakenduste keerukuse tõttu loogiline jätk.
Lisa A: Komponentide tulemused
Sümbolid:
- Kõrge – kõrge ja kriitilise taseme haavatavused komponendis
- Keskmine — komponendi keskmise kriitilisuse taseme haavatavused
- TRUE – tõeline positiivne probleem
- VÄÄR – valepositiivne probleem
Komponent
Nexuse IQ
Sõltuvuskontroll
Sõltuvusrada
Tulemus
dom4j: 1.6.1
Suur
Suur
Suur
TRUE
log4j-tuum: 2.3
Suur
Suur
Suur
TRUE
log4j: 1.2.14
Suur
Suur
-
TRUE
ühisvarad-kogud:3.1
Suur
Suur
Suur
TRUE
commons-faili üleslaadimine:1.3.2
Suur
Suur
Suur
TRUE
commons-beanutils:1.7.0
Suur
Suur
Suur
TRUE
commons-codec: 1:10
Keskmine
-
-
TRUE
mysql-connector-java: 5.1.42
Suur
Suur
Suur
TRUE
vedru-väljendus:3.0.5
Suur
komponenti ei leitud
TRUE
kevad-veeb:3.0.5
Suur
komponenti ei leitud
Suur
TRUE
kevad-kontekst:3.0.5
Keskmine
komponenti ei leitud
-
TRUE
vedru südamik: 3.0.5
Keskmine
Suur
Suur
TRUE
struts2-config-browser-plugin:2.3.30
Keskmine
-
-
TRUE
vedru-tx: 3.0.5
-
Suur
-
FALSE
tugipostid: 1.3.8
Suur
Suur
Suur
TRUE
xwork-core: 2.3.30
Suur
-
-
TRUE
struts2-core: 2.3.30
Suur
Suur
Suur
TRUE
struts-taglib:1.3.8
-
Suur
-
FALSE
toed-plaadid-1.3.8
-
Suur
-
FALSE
Lisa B: haavatavuse tulemused
Sümbolid:
- Kõrge – kõrge ja kriitilise taseme haavatavused komponendis
- Keskmine — komponendi keskmise kriitilisuse taseme haavatavused
- TRUE – tõeline positiivne probleem
- VÄÄR – valepositiivne probleem
Komponent
Nexuse IQ
Sõltuvuskontroll
Sõltuvusrada
Tõsidus
Tulemus
Kommentaar
dom4j: 1.6.1
CVE-2018-1000632
CVE-2018-1000632
CVE-2018-1000632
Suur
TRUE
CVE-2020-10683
CVE-2020-10683
CVE-2020-10683
Suur
TRUE
log4j-tuum: 2.3
CVE-2017-5645
CVE-2017-5645
CVE-2017-5645
Suur
TRUE
CVE-2020-9488
CVE-2020-9488
CVE-2020-9488
Madal
TRUE
log4j: 1.2.14
CVE-2019-17571
CVE-2019-17571
-
Suur
TRUE
-
CVE-2020-9488
-
Madal
TRUE
SONATÜÜP-2010-0053
-
-
Suur
TRUE
ühisvarad-kogud:3.1
-
CVE-2015-6420
CVE-2015-6420
Suur
FALSE
RCE duplikaadid (OSSINDEX)
-
CVE-2017-15708
CVE-2017-15708
Suur
FALSE
RCE duplikaadid (OSSINDEX)
SONATÜÜP-2015-0002
RCE (OSSINDEX)
RCE (OSSINDEX)
Suur
TRUE
commons-faili üleslaadimine:1.3.2
CVE-2016-1000031
CVE-2016-1000031
CVE-2016-1000031
Suur
TRUE
SONATÜÜP-2014-0173
-
-
Keskmine
TRUE
commons-beanutils:1.7.0
CVE-2014-0114
CVE-2014-0114
CVE-2014-0114
Suur
TRUE
-
CVE-2019-10086
CVE-2019-10086
Suur
FALSE
Haavatavus kehtib ainult versioonide 1.9.2+ puhul
commons-codec: 1:10
SONATÜÜP-2012-0050
-
-
Keskmine
TRUE
mysql-connector-java: 5.1.42
CVE-2018-3258
CVE-2018-3258
CVE-2018-3258
Suur
TRUE
CVE-2019-2692
CVE-2019-2692
-
Keskmine
TRUE
-
CVE-2020-2875
-
Keskmine
FALSE
Sama haavatavus nagu CVE-2019-2692, kuid märkusega "ründed võivad märkimisväärselt mõjutada täiendavaid tooteid"
-
CVE-2017-15945
-
Suur
FALSE
Pole asjakohane mysql-connector-java puhul
-
CVE-2020-2933
-
Madal
FALSE
CVE-2020-2934 duplikaat
CVE-2020-2934
CVE-2020-2934
-
Keskmine
TRUE
vedru-väljendus:3.0.5
CVE-2018-1270
komponenti ei leitud
-
Suur
TRUE
CVE-2018-1257
-
-
Keskmine
TRUE
kevad-veeb:3.0.5
CVE-2016-1000027
komponenti ei leitud
-
Suur
TRUE
CVE-2014-0225
-
CVE-2014-0225
Suur
TRUE
CVE-2011-2730
-
-
Suur
TRUE
-
-
CVE-2013-4152
Keskmine
TRUE
CVE-2018-1272
-
-
Suur
TRUE
CVE-2020-5398
-
-
Suur
TRUE
Illustreeriv näide IQ kasuks: "Sonatype'i turbeuuringute meeskond avastas, et see haavatavus võeti kasutusele versioonis 3.0.2.RELEASE, mitte versioonis 5.0.x, nagu nõuandes öeldud."
CVE-2013-6429
-
-
Keskmine
TRUE
CVE-2014-0054
-
CVE-2014-0054
Keskmine
TRUE
CVE-2013-6430
-
-
Keskmine
TRUE
kevad-kontekst:3.0.5
CVE-2011-2894
komponenti ei leitud
-
Keskmine
TRUE
vedru südamik: 3.0.5
-
CVE-2011-2730
CVE-2011-2730
Suur
TRUE
CVE-2011-2894
CVE-2011-2894
CVE-2011-2894
Keskmine
TRUE
-
-
CVE-2013-4152
Keskmine
FALSE
Sama haavatavuse duplikaat kevadveebis
-
CVE-2013-4152
-
Keskmine
FALSE
See haavatavus on seotud vedruveebi komponendiga
-
CVE-2013-6429
CVE-2013-6429
Keskmine
FALSE
See haavatavus on seotud vedruveebi komponendiga
-
CVE-2013-6430
-
Keskmine
FALSE
See haavatavus on seotud vedruveebi komponendiga
-
CVE-2013-7315
CVE-2013-7315
Keskmine
FALSE
LÕHENDATUD CVE-2013-4152-st. + Haavatavus on seotud vedruveebi komponendiga
-
CVE-2014-0054
CVE-2014-0054
Keskmine
FALSE
See haavatavus on seotud vedruveebi komponendiga
-
CVE-2014-0225
-
Suur
FALSE
See haavatavus on seotud vedruveebi komponendiga
-
-
CVE-2014-0225
Suur
FALSE
Sama haavatavuse duplikaat kevadveebis
-
CVE-2014-1904
CVE-2014-1904
Keskmine
FALSE
See haavatavus on seotud komponendiga spring-web-mvc
-
CVE-2014-3625
CVE-2014-3625
Keskmine
FALSE
See haavatavus on seotud komponendiga spring-web-mvc
-
CVE-2016-9878
CVE-2016-9878
Suur
FALSE
See haavatavus on seotud komponendiga spring-web-mvc
-
CVE-2018-1270
CVE-2018-1270
Suur
FALSE
Kevadekspressimiseks/kevad-sõnumiteks
-
CVE-2018-1271
CVE-2018-1271
Keskmine
FALSE
See haavatavus on seotud komponendiga spring-web-mvc
-
CVE-2018-1272
CVE-2018-1272
Suur
TRUE
CVE-2014-3578
CVE-2014-3578 (OSSINDEX)
CVE-2014-3578
Keskmine
TRUE
SONATÜÜP-2015-0327
-
-
Madal
TRUE
struts2-config-browser-plugin:2.3.30
SONATÜÜP-2016-0104
-
-
Keskmine
TRUE
vedru-tx: 3.0.5
-
CVE-2011-2730
-
Suur
FALSE
Haavatavus ei ole kevad-tx-i spetsiifiline
-
CVE-2011-2894
-
Suur
FALSE
Haavatavus ei ole kevad-tx-i spetsiifiline
-
CVE-2013-4152
-
Keskmine
FALSE
Haavatavus ei ole kevad-tx-i spetsiifiline
-
CVE-2013-6429
-
Keskmine
FALSE
Haavatavus ei ole kevad-tx-i spetsiifiline
-
CVE-2013-6430
-
Keskmine
FALSE
Haavatavus ei ole kevad-tx-i spetsiifiline
-
CVE-2013-7315
-
Keskmine
FALSE
Haavatavus ei ole kevad-tx-i spetsiifiline
-
CVE-2014-0054
-
Keskmine
FALSE
Haavatavus ei ole kevad-tx-i spetsiifiline
-
CVE-2014-0225
-
Suur
FALSE
Haavatavus ei ole kevad-tx-i spetsiifiline
-
CVE-2014-1904
-
Keskmine
FALSE
Haavatavus ei ole kevad-tx-i spetsiifiline
-
CVE-2014-3625
-
Keskmine
FALSE
Haavatavus ei ole kevad-tx-i spetsiifiline
-
CVE-2016-9878
-
Suur
FALSE
Haavatavus ei ole kevad-tx-i spetsiifiline
-
CVE-2018-1270
-
Suur
FALSE
Haavatavus ei ole kevad-tx-i spetsiifiline
-
CVE-2018-1271
-
Keskmine
FALSE
Haavatavus ei ole kevad-tx-i spetsiifiline
-
CVE-2018-1272
-
Keskmine
FALSE
Haavatavus ei ole kevad-tx-i spetsiifiline
tugipostid: 1.3.8
-
CVE-2011-5057 (OSSINDEX)
Keskmine
FASLE
Haavatavus Struts 2 suhtes
-
CVE-2012-0391 (OSSINDEX)
CVE-2012-0391
Suur
FALSE
Haavatavus Struts 2 suhtes
-
CVE-2014-0094 (OSSINDEX)
CVE-2014-0094
Keskmine
FALSE
Haavatavus Struts 2 suhtes
-
CVE-2014-0113 (OSSINDEX)
CVE-2014-0113
Suur
FALSE
Haavatavus Struts 2 suhtes
CVE-2016-1182
3VE-2016-1182
-
Suur
TRUE
-
-
CVE-2011-5057
Keskmine
FALSE
Haavatavus Struts 2 suhtes
-
CVE-2012-0392 (OSSINDEX)
CVE-2012-0392
Suur
FALSE
Haavatavus Struts 2 suhtes
-
CVE-2012-0393 (OSSINDEX)
CVE-2012-0393
Keskmine
FALSE
Haavatavus Struts 2 suhtes
CVE-2015-0899
CVE-2015-0899
-
Suur
TRUE
-
CVE-2012-0394
CVE-2012-0394
Keskmine
FALSE
Haavatavus Struts 2 suhtes
-
CVE-2012-0838 (OSSINDEX)
CVE-2012-0838
Suur
FALSE
Haavatavus Struts 2 suhtes
-
CVE-2013-1965 (OSSINDEX)
CVE-2013-1965
Suur
FALSE
Haavatavus Struts 2 suhtes
-
CVE-2013-1966 (OSSINDEX)
CVE-2013-1966
Suur
FASLE
Haavatavus Struts 2 suhtes
-
CVE-2013-2115
CVE-2013-2115
Suur
FASLE
Haavatavus Struts 2 suhtes
-
CVE-2013-2134 (OSSINDEX)
CVE-2013-2134
Suur
FASLE
Haavatavus Struts 2 suhtes
-
CVE-2013-2135 (OSSINDEX)
CVE-2013-2135
Suur
FASLE
Haavatavus Struts 2 suhtes
CVE-2014-0114
CVE-2014-0114
-
Suur
TRUE
-
CVE-2015-2992
CVE-2015-2992
Keskmine
FALSE
Haavatavus Struts 2 suhtes
-
CVE-2016-0785 (OSSINDEX)
CVE-2016-0785
Suur
FALSE
Haavatavus Struts 2 suhtes
CVE-2016-1181
CVE-2016-1181
-
Suur
TRUE
-
CVE-2016-4003 (OSSINDEX)
CVE-2016-4003
Suur
FALSE
Haavatavus Struts 2 suhtes
xwork-core: 2.3.30
CVE-2017-9804
-
-
Suur
TRUE
SONATÜÜP-2017-0173
-
-
Suur
TRUE
CVE-2017-7672
-
-
Suur
FALSE
CVE-2017-9804 duplikaat
SONATÜÜP-2016-0127
-
-
Suur
TRUE
toed2-tuumalised: 2.3.30
-
CVE-2016-6795
CVE-2016-6795
Suur
TRUE
-
CVE-2017-9787
CVE-2017-9787
Suur
TRUE
-
CVE-2017-9791
CVE-2017-9791
Suur
TRUE
-
CVE-2017-9793
-
Suur
FALSE
CVE-2018-1327 duplikaat
-
CVE-2017-9804
-
Suur
TRUE
-
CVE-2017-9805
CVE-2017-9805
Suur
TRUE
CVE-2016-4003
-
-
Keskmine
FALSE
Kehtib versioonile Apache Struts 2.x kuni 2.3.28, mis on versioon 2.3.30. Kuid kirjelduse põhjal kehtib CVE mis tahes Struts 2 versiooni puhul, kui kasutatakse JRE 1.7 või uuemat versiooni. Ilmselt otsustasid nad meid siin edasi kindlustada, kuid see tundub pigem VALE
-
CVE-2018-1327
CVE-2018-1327
Suur
TRUE
CVE-2017-5638
CVE-2017-5638
CVE-2017-5638
Suur
TRUE
Sama haavatavus, mida Equifaxi häkkerid 2017. aastal ära kasutasid
CVE-2017-12611
CVE-2017-12611
-
Suur
TRUE
CVE-2018-11776
CVE-2018-11776
CVE-2018-11776
Suur
TRUE
struts-taglib:1.3.8
-
CVE-2012-0394
-
Keskmine
FALSE
2-tuumaliste tugipostide jaoks
-
CVE-2013-2115
-
Suur
FALSE
2-tuumaliste tugipostide jaoks
-
CVE-2014-0114
-
Suur
FALSE
Commons-beanutils jaoks
-
CVE-2015-0899
-
Suur
FALSE
Ei kehti taglibi kohta
-
CVE-2015-2992
-
Keskmine
FALSE
Viitab struts2-core
-
CVE-2016-1181
-
Suur
FALSE
Ei kehti taglibi kohta
-
CVE-2016-1182
-
Suur
FALSE
Ei kehti taglibi kohta
toed-plaadid-1.3.8
-
CVE-2012-0394
-
Keskmine
FALSE
2-tuumaliste tugipostide jaoks
-
CVE-2013-2115
-
Suur
FALSE
2-tuumaliste tugipostide jaoks
-
CVE-2014-0114
-
Suur
FALSE
Commons-beanutils all
-
CVE-2015-0899
-
Suur
FALSE
Ei kehti plaatide kohta
-
CVE-2015-2992
-
Keskmine
FALSE
2-tuumaliste tugipostide jaoks
-
CVE-2016-1181
-
Suur
FALSE
Ei kehti taglibi kohta
-
CVE-2016-1182
-
Suur
FALSE
Ei kehti taglibi kohta
Allikas: www.habr.com