Pentingna analisa komponén parangkat lunak pihak katilu (Analisis Komposisi Perangkat Lunak - SCA) dina prosés pangwangunan ngembang kalayan sékrési laporan taunan ngeunaan kerentanan perpustakaan open source, anu diterbitkeun ku Synopsys, Sonatype, Snyk, sareng White Source. . Numutkeun laporan
Salah sahiji kasus paling illustrative
Tulisan ieu bakal ngabahas masalah milih alat pikeun ngalaksanakeun SCA tina sudut pandang kualitas hasil analisa. Perbandingan fungsional alat ogé bakal disayogikeun. Prosés ngahijikeun kana CI/CD sareng kamampuan integrasi bakal ditinggalkeun pikeun publikasi salajengna. A rupa-rupa parabot dibere ku OWASP
Kumaha karya
Hayu urang tingali kumaha rupa CPE:
cpe:2.3:part:vendor:product:version:update:edition:language:sw_edition:target_sw:target_hw:other
- bagian: Indikasi yén komponénna aya hubunganana sareng aplikasi (a), sistem operasi (o), hardware (h) (Diperlukeun)
- Ngajual: Ngaran Pabrikan Produk (Diperlukeun)
- produk: Ngaran produk (diperlukeun)
- Vérsi: Vérsi komponén (item leungit)
- update: Pembaruan pakét
- Edition: Vérsi warisan (item teu dipaké)
- basa: Basa didefinisikeun dina RFC-5646
- Edisi SW: Vérsi software
- Sasaran SW: Lingkungan parangkat lunak dimana produkna beroperasi
- Sasaran HW: Lingkungan hardware dimana produkna beroperasi
- sejenna: Supplier atanapi Émbaran Produk
Conto CPE sapertos kieu:
cpe:2.3:a:pivotal_software:spring_framework:3.0.0:*:*:*:*:*:*:*
Garis éta hartosna versi CPE 2.3 ngajelaskeun komponén aplikasi ti produsén pivotal_software
kalawan judul spring_framework
Vérsi 3.0.0. Lamun urang muka kerentanan a
URL ogé dipaké ku parabot SCA. Format URL pakét nyaéta kieu:
scheme:type/namespace/name@version?qualifiers#subpath
- Skéma: Bakal salawasna aya 'pkg' nunjukkeun yén ieu téh URL pakét (Diperlukeun)
- Type: "Tipe" pakét atanapi "protokol" pakét, sapertos maven, npm, nuget, gem, pypi, jsb. (Item diperlukeun)
- Ruang ngaran: Sababaraha awalan nami, sapertos ID grup Maven, Pamilik gambar Docker, pangguna GitHub, atanapi organisasi. Pilihan sareng gumantung kana jinisna.
- ngaran: Ngaran paket (diperlukeun)
- Vérsi: Vérsi pakét
- Kualifikasi: data kualifikasi tambahan pikeun pakét, kayaning OS, arsitéktur, distribusi, jsb Pilihan jeung tipe-spésifik.
- Subjalur: Jalur tambahan dina pakét relatif ka akar pakét
Contona:
pkg:golang/google.golang.org/genproto#googleapis/api/annotations
pkg:maven/org.apache.commons/[email protected]
pkg:pypi/[email protected]
Conto kumaha BOM tiasa katingali dina format XML:
<?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 bisa dipaké teu ukur salaku parameter input pikeun Depéndensi Track, tapi ogé pikeun inventorying komponén software dina ranté suplai, Contona, pikeun software nyadiakeun customer a. Dina 2014, undang-undang malah diusulkeun di Amérika Serikat
Balik deui ka SCA, Dependency Track gaduh integrasi anu siap-siap sareng Platform Bewara sapertos Slack, sistem manajemén kerentanan sapertos Kenna Security. Éta ogé patut nyarios yén Depéndensi Track, diantarana, ngidentipikasi versi bungkusan anu luntur sareng nyayogikeun inpormasi ngeunaan lisénsi (kusabab dukungan SPDX).
Lamun urang ngobrol husus ngeunaan kualitas SCA, aya bédana fundamental.
Dependency Track henteu nampi proyék salaku input, tapi BOM. Ieu ngandung harti yén lamun urang rék nguji proyék, urang mimitina kudu ngahasilkeun bom.xml, contona ngagunakeun CycloneDX. Ku kituna, Dependency Track langsung gumantung kana CycloneDX. Dina waktos anu sami, éta ngamungkinkeun pikeun kustomisasi. Ieu anu ditulis tim OZON
Hayu urang nyimpulkeun sababaraha fitur fungsional, sareng ogé mertimbangkeun basa anu dirojong pikeun dianalisis:
basa
Nexus IQ
Cék kagumantungan
Depéndensi Track
Jawa
+
+
+
C / C ++
+
+
-
C#
+
+
-
.Net
+
+
+
erlang
-
-
+
JavaScript (NodeJS)
+
+
+
PHP
+
+
+
Python
+
+
+
inten beureum
+
+
+
Perl
-
-
-
Scala
+
+
+
Tujuan C
+
+
-
Swift
+
+
-
R
+
-
-
Go
+
+
+
Pungsionalitasna
Pungsionalitasna
Nexus IQ
Cék kagumantungan
Depéndensi Track
Kamampuhan pikeun mastikeun yén komponén anu dianggo dina kode sumber dipariksa pikeun kamurnian anu dilisensikeun
+
-
+
Kamampuhan pikeun nyeken sareng nganalisa pikeun kerentanan sareng kabersihan lisénsi pikeun gambar Docker
+ Integrasi sareng Clair
-
-
Kamampuhan pikeun ngonpigurasikeun kawijakan kaamanan pikeun ngagunakeun perpustakaan open source
+
-
-
Kamampuhan pikeun nyeken repositori open source pikeun komponén anu rentan
+ RubyGems, Maven, NPM, Nuget, Pypi, Conan, Bower, Conda, Go, p2, R, Yum, Helm, Docker, CocoaPods, Git LFS
-
+ Hex, RubyGems, Maven, NPM, Nuget, Pypi
Kasadiaan grup panalungtikan husus
+
-
-
Operasi loop katutup
+
+
+
Ngagunakeun database pihak katilu
+ Ditutup database Sonatype
+ Sonatype OSS, NPM Public Advisors
+ Sonatype OSS, NPM Public Advisors, RetireJS, VulnDB, ngadukung database kerentanan sorangan
Kamampuhan pikeun nyaring komponén open source nalika nyobian ngamuat kana loop pamekaran numutkeun kawijakan anu dikonpigurasi
+
-
-
Rekomendasi pikeun ngalereskeun kerentanan, kasadiaan tautan pikeun ngalereskeun
+
+- (gumantung kana katerangan dina pangkalan data umum)
+- (gumantung kana katerangan dina pangkalan data umum)
Rengking kerentanan anu dideteksi ku parahna
+
+
+
Modél aksés dumasar-peran
+
-
+
rojongan CLI
+
+
+- (ngan pikeun CycloneDX)
Sampling / asihan kerentanan dumasar kana kriteria anu ditetepkeun
+
-
+
Dashboard ku status aplikasi
+
-
+
Ngahasilkeun laporan dina format PDF
+
-
-
Ngahasilkeun laporan dina format JSONCSV
+
+
-
rojongan basa Rusia
-
-
-
Kamampuhan integrasi
ngahiji
Nexus IQ
Cék kagumantungan
Depéndensi Track
LDAP / integrasi Diréktori aktip
+
-
+
Integrasi jeung sistem integrasi kontinyu Awi
+
-
-
Integrasi sareng sistem integrasi kontinyu TeamCity
+
-
-
Integrasi sareng sistem integrasi kontinyu GitLab
+
+- (salaku plugin pikeun GitLab)
+
Integrasi jeung sistem integrasi kontinyu Jenkins
+
+
+
Kasadiaan plugins pikeun IDE
+ IntelliJ, Eclipse, Visual Studio
-
-
Rojongan pikeun integrasi custom via web-services (API) alat
+
-
+
Cék kagumantungan
amprok heula
Hayu urang ngajalankeun Dependency Check dina aplikasi anu ngahaja rentan
Pikeun ieu kami bakal ngagunakeun
mvn org.owasp:dependency-check-maven:check
Hasilna, dependency-check-report.html bakal muncul dina diréktori target.
Hayu urang muka file. Saatos nyimpulkeun inpormasi ngeunaan jumlah total kerentanan, urang tiasa ningali inpormasi ngeunaan kerentanan kalayan tingkat Severity sareng Kapercayaan anu luhur, nunjukkeun pakét, CPE, sareng jumlah CVE.
Salajengna asalna inpormasi anu langkung rinci, khususna dasar kaputusan anu dilakukeun (bukti), nyaéta, BOM anu tangtu.
Salajengna asalna pedaran CPE, PURL na CVE. Ku jalan kitu, saran pikeun koréksi teu kaasup alatan henteuna maranéhanana dina database NVD.
Pikeun sacara sistematis ningali hasil scan, anjeun tiasa ngonpigurasikeun Nginx kalayan setélan minimal, atanapi ngirimkeun cacad anu hasilna ka sistem manajemén cacad anu ngadukung panyambungna kana Pamariksaan Depéndensi. Contona, Defect Dojo.
Depéndensi Track
setting
Depéndensi Track, kahareupna mangrupikeun platform basis wéb kalayan grafik tampilan, janten masalah anu penting pikeun nyimpen cacad dina solusi pihak katilu henteu timbul di dieu.
Skrip anu dirojong pikeun pamasangan nyaéta: Docker, WAR, Executable WAR.
amprok heula
Urang buka URL jasa ngajalankeun. Urang log in via admin/admin, ngarobah login sareng kecap akses, teras angkat ka Dashboard. Hal salajengna anu bakal urang laksanakeun nyaéta nyiptakeun proyék pikeun aplikasi tés dina Java Imah/Proyék → Jieun Proyék . Hayu urang nyandak DVJA salaku conto.
Kusabab Dependency Track ngan ukur tiasa nampi BOM salaku input, BOM ieu kedah dicandak. Hayu urang mangpaatkeun
mvn org.cyclonedx:cyclonedx-maven-plugin:makeAggregateBom
Simkuring meunang bom.xml sarta muka file dina proyék dijieun DVJA → Depéndensi → Unggah BOM.
Hayu urang buka Administrasi → Analyzers. Kami ngartos yén kami ngan ukur ngaktipkeun Internal Analyzer, anu kalebet NVD. Hayu urang ogé nyambungkeun Sonatype OSS Index.
Ku kituna, urang meunang gambar di handap pikeun proyék kami:
Ogé dina daptar anjeun tiasa mendakan hiji kerentanan anu tiasa dianggo pikeun Sonatype OSS:
Kuciwa utama nyaéta Dependency Track henteu deui nampi laporan Dependency Check xml. Versi anu dirojong panganyarna tina integrasi Dependency Check nyaéta 1.0.0 - 4.0.2, bari kuring nguji 5.3.2.
di dieu
Nexus IQ
amprok heula
Pamasangan Nexus IQ asalna tina arsip tina
Saatos log in kana konsol, anjeun kedah nyiptakeun Organisasi sareng Aplikasi.
Sakumaha anjeun tiasa tingali, setelan dina kasus IQ rada leuwih pajeulit, sabab urang ogé kudu nyieun kawijakan anu lumaku pikeun béda "tahap" (dev, ngawangun, panggung, release). Ieu diperlukeun pikeun meungpeuk komponén rentan nalika aranjeunna ngalir ngaliwatan pipa ngadeukeutan ka produksi, atawa pikeun meungpeuk aranjeunna pas aranjeunna meunang kana Nexus Repo nalika diundeur ku pamekar.
Pikeun ngaraos bédana antara open source sareng perusahaan, hayu urang laksanakeun scan anu sami ngalangkungan Nexus IQ dina cara anu sami 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>
Turutan URL kana laporan anu dihasilkeun dina panganteur wéb IQ:
Di dieu anjeun tiasa ningali sadaya pelanggaran kawijakan anu nunjukkeun tingkat pentingna anu béda (tina Info ka Kritis Kaamanan). Huruf D gigireun komponén ngandung harti yén komponén mangrupa Direct Dependency, sarta hurup T gigireun komponén hartina komponén Transitive Dependency, nyaeta transitif.
Ku jalan kitu, laporan
Upami urang muka salah sahiji palanggaran kawijakan Nexus IQ, urang tiasa ningali katerangan ngeunaan komponén, ogé Grafik Versi, anu nunjukkeun lokasi vérsi ayeuna dina grafik waktos, kitu ogé dina waktos naon kerentananna lirén. jadi rentan. Jangkungna lilin dina grafik nunjukkeun popularitas ngagunakeun komponén ieu.
Upami anjeun angkat ka bagian kerentanan sareng dilegakeun CVE, anjeun tiasa maca pedaran ngeunaan kerentanan ieu, saran pikeun ngaleungitkeun, ogé alesan naha komponén ieu dilanggar, nyaéta, ayana kelas. DiskFileitem.class
.
Hayu urang nyimpulkeun ngan ukur anu aya hubunganana sareng komponén Java pihak katilu, ngaleungitkeun komponén js. Dina kurung urang nunjukkeun jumlah kerentanan anu kapanggih di luar NVD.
Total Nexus IQ:
- Depéndénsi Di-scan: 62
- Dependensi anu rentan: 16
- Kerentanan Dipanggihan: 42 (8 sonatype db)
Cék Depéndensi Total:
- Depéndénsi Di-scan: 47
- Dependensi anu rentan: 13
- Kerentanan Dipanggihan: 91 (14 sonatype oss)
Total Depéndensi Track:
- Depéndénsi Di-scan: 59
- Dependensi anu rentan: 10
- Kerentanan Dipanggihan: 51 (1 sonatype oss)
Dina léngkah-léngkah salajengna, urang bakal nganalisis hasil anu dicandak sareng terangkeun mana tina kerentanan ieu anu cacad nyata sareng anu positip palsu.
Bantahan
Tinjauan ieu sanés bebeneran anu teu bisa dibantah. Panulis henteu ngagaduhan tujuan pikeun nyorot alat anu misah ngalawan latar tukang batur. Inti tina ulasan éta pikeun nunjukkeun mékanisme operasi alat SCA sareng cara mariksa hasilna.
Babandingan hasil
Условия:
Positip palsu pikeun kerentanan komponén pihak katilu nyaéta:
- CVE mismatch kana komponén dicirikeun
- Salaku conto, upami kerentanan diidentifikasi dina kerangka struts2, sareng alat nunjuk ka komponén kerangka struts-tiles, anu kerentanan ieu henteu berlaku, maka ieu mangrupikeun positip palsu.
- CVE teu cocog sareng versi komponén anu diidentifikasi
- Contona, kerentanan ieu dihijikeun ka versi python> 3.5 sarta alat nandaan versi 2.7 salaku rentan - ieu téh positif palsu, saprak kanyataanna kerentanan ngan manglaku ka cabang produk 3.x.
- Duplikat CVE
- Contona, upami SCA nangtukeun hiji CVE nu ngaktipkeun RCE, mangka SCA nangtukeun hiji CVE pikeun komponén sarua nu manglaku ka produk Cisco kapangaruhan ku RCE éta. Dina hal ieu, éta bakal positip palsu.
- Contona, hiji CVE kapanggih dina komponén cinyusu-web, nu satutasna SCA nunjuk ka CVE sarua dina komponén séjén tina Spring Framework, bari CVE euweuh hubunganana jeung komponén séjén. Dina hal ieu, éta bakal positip palsu.
Obyék ulikan nya éta proyék Open Source DVJA. Panalitian ngan ukur ngalibatkeun komponén java (tanpa js).
Hasil kasimpulan
Hayu urang langsung kana hasil tinjauan manual ngeunaan kerentanan anu diidentifikasi. Laporan lengkep pikeun unggal CVE tiasa dipendakan dina Appendix.
Ringkesan hasil pikeun sadaya kerentanan:
parameter
Nexus IQ
Cék kagumantungan
Depéndensi Track
Total vulnerabilities dicirikeun
42
91
51
Kerentanan anu salah diidentifikasi (positip palsu)
2 (4.76%)
62 (68,13%)
29 (56.86%)
Henteu aya kerentanan anu relevan (négatif palsu)
10
20
27
Ringkesan hasil dumasar komponén:
parameter
Nexus IQ
Cék kagumantungan
Depéndensi Track
Total komponén dicirikeun
62
47
59
Total komponén rentan
16
13
10
Komponén rentan anu salah diidentifikasi (positip palsu)
1
5
0
Komponén rentan anu salah diidentifikasi (positip palsu)
0
6
6
Hayu urang ngawangun grafik visual pikeun meunteun rasio positip palsu sareng négatip palsu kana jumlah kerentanan. Komponén ditandaan sacara horisontal, sareng kerentanan anu diidentifikasi dina éta ditandaan sacara vertikal.
Pikeun babandingan, ulikan anu sami dilakukeun ku tim Sonatype nguji proyék 1531 komponén nganggo OWASP Dependency Check. Sakumaha urang tiasa tingali, rasio noise pikeun ngabenerkeun réspon sabanding sareng hasil urang.
sumber:
Hayu urang tingali sababaraha CVE tina hasil scan pikeun ngartos alesan pikeun hasil ieu.
deui
No.1
Hayu urang nempo sababaraha titik metot ngeunaan Sonatype Nexus IQ.
Nexus IQ nunjuk kaluar masalah deserialization kalawan kamampuhan pikeun ngalakukeun RCE dina Spring Framework sababaraha kali. CVE-2016-1000027 di cinyusu-web: 3.0.5 munggaran waktu, sarta CVE-2011-2894 di cinyusu-konteks: 3.0.5 jeung cinyusu-inti: 3.0.5. Mimitina, katingalina aya duplikasi kerentanan dina sababaraha CVEs. Kusabab, upami anjeun ningali CVE-2016-1000027 sareng CVE-2011-2894 dina pangkalan data NVD, sigana sadayana écés.
Komponén
Kerentanan
cinyusu-web: 3.0.5
CVE-2016-1000027
spring-kontéks: 3.0.5
CVE-2011-2894
cinyusu-inti: 3.0.5
CVE-2011-2894
gambaran
gambaran
CVE-2011-2894 sorangan cukup kawentar. Dina laporan RemoteInvocationSerializingExporter
dina CVE-2011-2894, kerentanan dititénan dina HttpInvokerServiceExporter
. Ieu naon Nexus IQ ngabejaan urang:
Nanging, teu aya anu sapertos kieu dina NVD, naha éta Depéndency Check and Dependency Track unggal nampi négatip palsu.
Ogé tina pedaran CVE-2011-2894 bisa dipikaharti yén kerentanan memang hadir dina duanana spring-konteks: 3.0.5 jeung spring-inti: 3.0.5. Konfirmasi ieu tiasa dipendakan dina tulisan ti jalma anu mendakan kerentanan ieu.
No.2
Komponén
Kerentanan
hasil
struts2-inti: 2.3.30
CVE-2016-4003
PALSU
Upami urang diajar kerentanan CVE-2016-4003, urang bakal ngartos yén éta dibenerkeun dina versi 2.3.28, kumaha oge, Nexus IQ ngalaporkeun ka kami. Aya catetan dina katerangan kerentanan:
Nyaéta, kerentanan ngan ukur aya babarengan sareng versi JRE anu luntur, anu aranjeunna mutuskeun pikeun ngingetkeun urang. Nanging, urang nganggap Positip Palsu ieu, sanaos sanés anu paling awon.
Nomer 3
Komponén
Kerentanan
hasil
xwork-inti: 2.3.30
CVE-2017-9804
BENER
xwork-inti: 2.3.30
CVE-2017-7672
PALSU
Upami urang ningali katerangan ngeunaan CVE-2017-9804 sareng CVE-2017-7672, urang bakal ngartos yén masalahna nyaéta URLValidator class
, kalawan CVE-2017-9804 stemming ti CVE-2017-7672. Ayana kerentanan kadua henteu mawa beban anu mangpaat lian ti kanyataan yén parahna parantos ningkat ka Luhur, ku kituna urang tiasa nganggap éta sora anu teu perlu.
Gemblengna, teu aya positip palsu sanés anu kapanggih pikeun Nexus IQ.
No.4
Aya sababaraha hal anu ngajantenkeun IQ kaluar tina solusi anu sanés.
Komponén
Kerentanan
hasil
cinyusu-web: 3.0.5
CVE-2020-5398
BENER
CVE dina NVD nyatakeun yén éta ngan manglaku ka versi 5.2.x sateuacan 5.2.3, 5.1.x sateuacan 5.1.13, sareng versi 5.0.x sateuacan 5.0.16, kumaha oge, upami urang ningali katerangan CVE dina Nexus IQ. , teras urang bakal ningali ieu:
Bewara Panyimpangan Panaséhat: Tim panalungtikan kaamanan Sonatype mendakan yén kerentanan ieu diwanohkeun dina versi 3.0.2.RELEASE sareng sanés 5.0.x sakumaha anu dinyatakeun dina piwuruk.
Ieu dituturkeun ku PoC pikeun kerentanan ieu, anu nyatakeun yén éta hadir dina versi 3.0.5.
Negatif palsu dikirim ka Depéndensi Cék sareng Depéndensi Track.
No.5
Hayu urang tingali positip palsu pikeun Dependency Check and Dependency Track.
Depéndensi Cék nangtung kaluar yén éta ngagambarkeun CVEs anu lumaku pikeun sakabéh kerangka di NVD kana komponén-komponén nu CVEs ieu teu dilarapkeun. Ieu masalah CVE-2012-0394, CVE-2013-2115, CVE-2014-0114, CVE-2015-0899, CVE-2015-2992, CVE-2016-1181, CVE-2016-1182, anu Ketergantungan Cék ” pikeun struts-taglib: 1.3.8 sareng struts-tiles-1.3.8. Komponén ieu henteu aya hubunganana sareng anu dijelaskeun dina CVE - pamrosésan pamundut, validasi halaman, sareng anu sanésna. Ieu disababkeun ku kanyataan yén CVE sareng komponén ieu umumna ngan ukur kerangka, naha éta Depéndency Check nganggap éta kerentanan.
Kaayaan anu sami sareng spring-tx: 3.0.5, sareng kaayaan anu sami sareng struts-core: 1.3.8. Pikeun struts-core, Dependency Check and Dependency Track parantos mendakan seueur kerentanan anu saleresna tiasa dianggo pikeun struts2-core, anu dasarna mangrupikeun kerangka anu misah. Dina hal ieu, Nexus IQ leres ngartos gambar na dina CVEs dikaluarkeun, éta nunjukkeun yén struts-inti geus ngahontal tungtung hirup jeung ieu diperlukeun pikeun pindah ka struts2-inti.
No.6
Dina sababaraha kaayaan, teu adil pikeun napsirkeun kasalahan Dependency Check sareng Dependency Track anu jelas. Khususna CVE-2013-4152, CVE-2013-6429, CVE-2013-6430, CVE-2013-7315, CVE-2014-0054, CVE-2014-0225, CVE-2014-0225, nyaéta Depéndensi Depéndensi. Lagu attributed ka spring-core:3.0.5 sabenerna milik spring-web:3.0.5. Dina waktos anu sami, sababaraha CVE ieu ogé kapanggih ku Nexus IQ, tapi, IQ leres-leres ngaidentifikasi kana komponén anu sanés. Kusabab kerentanan ieu henteu dipendakan dina inti cinyusu, éta henteu tiasa dibantah yén aranjeunna henteu aya dina kerangka prinsipna sareng alat open source leres nunjukkeun kerentanan ieu (aranjeunna ngan ukur lasut sakedik).
papanggihan
Sakumaha urang tiasa tingali, nangtukeun reliabiliti kerentanan dicirikeun ku review manual teu masihan hasil unambiguous, naha nu mangrupa isu kontroversial timbul. Hasilna nyaéta yén solusi Nexus IQ ngagaduhan tingkat positip palsu panghandapna sareng akurasi pangluhurna.
Anu mimiti, ieu disababkeun ku kanyataan yén tim Sonatype ngalegaan déskripsi pikeun unggal kerentanan CVE ti NVD dina pangkalan datana, nunjukkeun kerentanan pikeun versi khusus komponén turun ka kelas atanapi fungsina, ngalaksanakeun panalungtikan tambahan (contona. , mariksa kerentanan dina versi software heubeul).
Pangaruh anu penting dina hasil ogé dimaénkeun ku kerentanan anu henteu kalebet dina NVD, tapi tetep aya dina database Sonatype sareng tanda SONATYPE. Numutkeun laporan
Hasilna, Dependency Check ngahasilkeun loba noise, leungit sababaraha komponén rentan. Depéndensi Track ngahasilkeun kirang noise sarta ngadeteksi angka nu gede ngarupakeun komponén, nu teu visually menyakiti panon dina panganteur web.
Nanging, prakték nunjukkeun yén open source kedah janten léngkah munggaran pikeun DevSecOps dewasa. Hal kahiji anu anjeun kedah pikirkeun nalika ngahijikeun SCA kana pamekaran nyaéta prosés, nyaéta, pamikiran babarengan sareng manajemén sareng departemén anu aya hubunganana ngeunaan kumaha prosés anu idéal dina organisasi anjeun. Bisa jadi tétéla yén pikeun organisasi anjeun, mimitina, Dependency Check atanapi Dependency Track bakal nutupan sadaya kabutuhan bisnis, sareng solusi Enterprise bakal janten tuluyan logis kusabab pajeulitna aplikasi anu dikembangkeun.
Lampiran A: Hasil komponén
Katerangan:
- Kerentanan tingkat luhur-luhur sareng kritis dina komponén
- Sedeng - Kerentanan tingkat kritisitas sedeng dina komponén
- BENER - Masalah positip leres
- PALSU - Masalah positip palsu
Komponén
Nexus IQ
Cék kagumantungan
Depéndensi Track
hasil
dom4j: 1.6.1
luhur
luhur
luhur
BENER
log4j-inti: 2.3
luhur
luhur
luhur
BENER
log4j: 1.2.14
luhur
luhur
-
BENER
commons-kumpulan:3.1
luhur
luhur
luhur
BENER
commons-fileupload: 1.3.2
luhur
luhur
luhur
BENER
commons-beanutils: 1.7.0
luhur
luhur
luhur
BENER
commons-codec: 1:10
medium
-
-
BENER
mysql-panyambung-java: 5.1.42
luhur
luhur
luhur
BENER
cinyusu-ekspresi: 3.0.5
luhur
komponén teu kapanggih
BENER
cinyusu-web: 3.0.5
luhur
komponén teu kapanggih
luhur
BENER
spring-kontéks: 3.0.5
medium
komponén teu kapanggih
-
BENER
cinyusu-inti: 3.0.5
medium
luhur
luhur
BENER
struts2-config-browser-plugin: 2.3.30
medium
-
-
BENER
cinyusu-tx: 3.0.5
-
luhur
-
PALSU
struts-inti: 1.3.8
luhur
luhur
luhur
BENER
xwork-inti: 2.3.30
luhur
-
-
BENER
struts2-inti: 2.3.30
luhur
luhur
luhur
BENER
struts-taglib: 1.3.8
-
luhur
-
PALSU
struts-ubin-1.3.8
-
luhur
-
PALSU
Lampiran B: Hasil Kerentanan
Katerangan:
- Kerentanan tingkat luhur-luhur sareng kritis dina komponén
- Sedeng - Kerentanan tingkat kritisitas sedeng dina komponén
- BENER - Masalah positip leres
- PALSU - Masalah positip palsu
Komponén
Nexus IQ
Cék kagumantungan
Depéndensi Track
severity
hasil
komentar
dom4j: 1.6.1
CVE-2018-1000632
CVE-2018-1000632
CVE-2018-1000632
luhur
BENER
CVE-2020-10683
CVE-2020-10683
CVE-2020-10683
luhur
BENER
log4j-inti: 2.3
CVE-2017-5645
CVE-2017-5645
CVE-2017-5645
luhur
BENER
CVE-2020-9488
CVE-2020-9488
CVE-2020-9488
saeutik
BENER
log4j: 1.2.14
CVE-2019-17571
CVE-2019-17571
-
luhur
BENER
-
CVE-2020-9488
-
saeutik
BENER
SONATYPE-2010-0053
-
-
luhur
BENER
commons-kumpulan:3.1
-
CVE-2015-6420
CVE-2015-6420
luhur
PALSU
Duplikat RCE (OSSINDEX)
-
CVE-2017-15708
CVE-2017-15708
luhur
PALSU
Duplikat RCE (OSSINDEX)
SONATYPE-2015-0002
RCE (OSSINDEX)
RCE (OSSINDEX)
luhur
BENER
commons-fileupload: 1.3.2
CVE-2016-1000031
CVE-2016-1000031
CVE-2016-1000031
luhur
BENER
SONATYPE-2014-0173
-
-
medium
BENER
commons-beanutils: 1.7.0
CVE-2014-0114
CVE-2014-0114
CVE-2014-0114
luhur
BENER
-
CVE-2019-10086
CVE-2019-10086
luhur
PALSU
Kerentanan ngan manglaku ka versi 1.9.2+
commons-codec: 1:10
SONATYPE-2012-0050
-
-
medium
BENER
mysql-panyambung-java: 5.1.42
CVE-2018-3258
CVE-2018-3258
CVE-2018-3258
luhur
BENER
CVE-2019-2692
CVE-2019-2692
-
medium
BENER
-
CVE-2020-2875
-
medium
PALSU
Kerentanan anu sami sareng CVE-2019-2692, tapi kalayan catetan "serangan tiasa sacara signifikan mangaruhan produk tambahan"
-
CVE-2017-15945
-
luhur
PALSU
Teu relevan pikeun mysql-konektor-java
-
CVE-2020-2933
-
saeutik
PALSU
Duplikat CVE-2020-2934
CVE-2020-2934
CVE-2020-2934
-
medium
BENER
cinyusu-ekspresi: 3.0.5
CVE-2018-1270
komponén teu kapanggih
-
luhur
BENER
CVE-2018-1257
-
-
medium
BENER
cinyusu-web: 3.0.5
CVE-2016-1000027
komponén teu kapanggih
-
luhur
BENER
CVE-2014-0225
-
CVE-2014-0225
luhur
BENER
CVE-2011-2730
-
-
luhur
BENER
-
-
CVE-2013-4152
medium
BENER
CVE-2018-1272
-
-
luhur
BENER
CVE-2020-5398
-
-
luhur
BENER
Conto ilustrasi pikeun IQ: "Tim riset kaamanan Sonatype mendakan yén kerentanan ieu diwanohkeun dina versi 3.0.2.RELEASE sareng sanés 5.0.x sakumaha anu dinyatakeun dina piwuruk."
CVE-2013-6429
-
-
medium
BENER
CVE-2014-0054
-
CVE-2014-0054
medium
BENER
CVE-2013-6430
-
-
medium
BENER
spring-kontéks: 3.0.5
CVE-2011-2894
komponén teu kapanggih
-
medium
BENER
cinyusu-inti: 3.0.5
-
CVE-2011-2730
CVE-2011-2730
luhur
BENER
CVE-2011-2894
CVE-2011-2894
CVE-2011-2894
medium
BENER
-
-
CVE-2013-4152
medium
PALSU
Duplikat kerentanan anu sami dina spring-web
-
CVE-2013-4152
-
medium
PALSU
Kerentanan aya hubunganana sareng komponén spring-web
-
CVE-2013-6429
CVE-2013-6429
medium
PALSU
Kerentanan aya hubunganana sareng komponén spring-web
-
CVE-2013-6430
-
medium
PALSU
Kerentanan aya hubunganana sareng komponén spring-web
-
CVE-2013-7315
CVE-2013-7315
medium
PALSU
SPLIT ti CVE-2013-4152. + Kerentanan aya hubunganana sareng komponén spring-web
-
CVE-2014-0054
CVE-2014-0054
medium
PALSU
Kerentanan aya hubunganana sareng komponén spring-web
-
CVE-2014-0225
-
luhur
PALSU
Kerentanan aya hubunganana sareng komponén spring-web
-
-
CVE-2014-0225
luhur
PALSU
Duplikat kerentanan anu sami dina spring-web
-
CVE-2014-1904
CVE-2014-1904
medium
PALSU
Kerentanan aya hubunganana sareng komponén spring-web-mvc
-
CVE-2014-3625
CVE-2014-3625
medium
PALSU
Kerentanan aya hubunganana sareng komponén spring-web-mvc
-
CVE-2016-9878
CVE-2016-9878
luhur
PALSU
Kerentanan aya hubunganana sareng komponén spring-web-mvc
-
CVE-2018-1270
CVE-2018-1270
luhur
PALSU
Pikeun spring-ekspresi / spring-pesen
-
CVE-2018-1271
CVE-2018-1271
medium
PALSU
Kerentanan aya hubunganana sareng komponén spring-web-mvc
-
CVE-2018-1272
CVE-2018-1272
luhur
BENER
CVE-2014-3578
CVE-2014-3578 (OSSINDEX)
CVE-2014-3578
medium
BENER
SONATYPE-2015-0327
-
-
saeutik
BENER
struts2-config-browser-plugin: 2.3.30
SONATYPE-2016-0104
-
-
medium
BENER
cinyusu-tx: 3.0.5
-
CVE-2011-2730
-
luhur
PALSU
Kerentanan henteu khusus pikeun spring-tx
-
CVE-2011-2894
-
luhur
PALSU
Kerentanan henteu khusus pikeun spring-tx
-
CVE-2013-4152
-
medium
PALSU
Kerentanan henteu khusus pikeun spring-tx
-
CVE-2013-6429
-
medium
PALSU
Kerentanan henteu khusus pikeun spring-tx
-
CVE-2013-6430
-
medium
PALSU
Kerentanan henteu khusus pikeun spring-tx
-
CVE-2013-7315
-
medium
PALSU
Kerentanan henteu khusus pikeun spring-tx
-
CVE-2014-0054
-
medium
PALSU
Kerentanan henteu khusus pikeun spring-tx
-
CVE-2014-0225
-
luhur
PALSU
Kerentanan henteu khusus pikeun spring-tx
-
CVE-2014-1904
-
medium
PALSU
Kerentanan henteu khusus pikeun spring-tx
-
CVE-2014-3625
-
medium
PALSU
Kerentanan henteu khusus pikeun spring-tx
-
CVE-2016-9878
-
luhur
PALSU
Kerentanan henteu khusus pikeun spring-tx
-
CVE-2018-1270
-
luhur
PALSU
Kerentanan henteu khusus pikeun spring-tx
-
CVE-2018-1271
-
medium
PALSU
Kerentanan henteu khusus pikeun spring-tx
-
CVE-2018-1272
-
medium
PALSU
Kerentanan henteu khusus pikeun spring-tx
struts-inti: 1.3.8
-
CVE-2011-5057 (OSSINDEX)
medium
FASLE
Kerentanan kana Struts 2
-
CVE-2012-0391 (OSSINDEX)
CVE-2012-0391
luhur
PALSU
Kerentanan kana Struts 2
-
CVE-2014-0094 (OSSINDEX)
CVE-2014-0094
medium
PALSU
Kerentanan kana Struts 2
-
CVE-2014-0113 (OSSINDEX)
CVE-2014-0113
luhur
PALSU
Kerentanan kana Struts 2
CVE-2016-1182
3VE-2016-1182
-
luhur
BENER
-
-
CVE-2011-5057
medium
PALSU
Kerentanan kana Struts 2
-
CVE-2012-0392 (OSSINDEX)
CVE-2012-0392
luhur
PALSU
Kerentanan kana Struts 2
-
CVE-2012-0393 (OSSINDEX)
CVE-2012-0393
medium
PALSU
Kerentanan kana Struts 2
CVE-2015-0899
CVE-2015-0899
-
luhur
BENER
-
CVE-2012-0394
CVE-2012-0394
medium
PALSU
Kerentanan kana Struts 2
-
CVE-2012-0838 (OSSINDEX)
CVE-2012-0838
luhur
PALSU
Kerentanan kana Struts 2
-
CVE-2013-1965 (OSSINDEX)
CVE-2013-1965
luhur
PALSU
Kerentanan kana Struts 2
-
CVE-2013-1966 (OSSINDEX)
CVE-2013-1966
luhur
FASLE
Kerentanan kana Struts 2
-
CVE-2013-2115
CVE-2013-2115
luhur
FASLE
Kerentanan kana Struts 2
-
CVE-2013-2134 (OSSINDEX)
CVE-2013-2134
luhur
FASLE
Kerentanan kana Struts 2
-
CVE-2013-2135 (OSSINDEX)
CVE-2013-2135
luhur
FASLE
Kerentanan kana Struts 2
CVE-2014-0114
CVE-2014-0114
-
luhur
BENER
-
CVE-2015-2992
CVE-2015-2992
medium
PALSU
Kerentanan kana Struts 2
-
CVE-2016-0785 (OSSINDEX)
CVE-2016-0785
luhur
PALSU
Kerentanan kana Struts 2
CVE-2016-1181
CVE-2016-1181
-
luhur
BENER
-
CVE-2016-4003 (OSSINDEX)
CVE-2016-4003
luhur
PALSU
Kerentanan kana Struts 2
xwork-inti: 2.3.30
CVE-2017-9804
-
-
luhur
BENER
SONATYPE-2017-0173
-
-
luhur
BENER
CVE-2017-7672
-
-
luhur
PALSU
Duplikat CVE-2017-9804
SONATYPE-2016-0127
-
-
luhur
BENER
struts2-inti: 2.3.30
-
CVE-2016-6795
CVE-2016-6795
luhur
BENER
-
CVE-2017-9787
CVE-2017-9787
luhur
BENER
-
CVE-2017-9791
CVE-2017-9791
luhur
BENER
-
CVE-2017-9793
-
luhur
PALSU
Duplikat CVE-2018-1327
-
CVE-2017-9804
-
luhur
BENER
-
CVE-2017-9805
CVE-2017-9805
luhur
BENER
CVE-2016-4003
-
-
medium
PALSU
Lumaku pikeun Apache Struts 2.x nepi ka 2.3.28, nu versi 2.3.30. Nanging, dumasar kana katerangan, CVE sah pikeun vérsi Struts 2 upami JRE 1.7 atanapi kirang dianggo. Tétéla aranjeunna mutuskeun pikeun ngajamin deui kami di dieu, tapi sigana langkung PALSU
-
CVE-2018-1327
CVE-2018-1327
luhur
BENER
CVE-2017-5638
CVE-2017-5638
CVE-2017-5638
luhur
BENER
Kerentanan anu sami anu dieksploitasi peretas Equifax di 2017
CVE-2017-12611
CVE-2017-12611
-
luhur
BENER
CVE-2018-11776
CVE-2018-11776
CVE-2018-11776
luhur
BENER
struts-taglib: 1.3.8
-
CVE-2012-0394
-
medium
PALSU
Pikeun struts2-core
-
CVE-2013-2115
-
luhur
PALSU
Pikeun struts2-core
-
CVE-2014-0114
-
luhur
PALSU
Pikeun commons-beanutils
-
CVE-2015-0899
-
luhur
PALSU
Teu dilarapkeun ka taglib
-
CVE-2015-2992
-
medium
PALSU
Nujul kana struts2-core
-
CVE-2016-1181
-
luhur
PALSU
Teu dilarapkeun ka taglib
-
CVE-2016-1182
-
luhur
PALSU
Teu dilarapkeun ka taglib
struts-ubin-1.3.8
-
CVE-2012-0394
-
medium
PALSU
Pikeun struts2-core
-
CVE-2013-2115
-
luhur
PALSU
Pikeun struts2-core
-
CVE-2014-0114
-
luhur
PALSU
Dina commons-beanutils
-
CVE-2015-0899
-
luhur
PALSU
Teu dilarapkeun ka ubin
-
CVE-2015-2992
-
medium
PALSU
Pikeun struts2-core
-
CVE-2016-1181
-
luhur
PALSU
Teu dilarapkeun ka taglib
-
CVE-2016-1182
-
luhur
PALSU
Teu dilarapkeun ka taglib
sumber: www.habr.com