DevSecOps: prinsip operasi dan perbandingan SCA. Bahagian satu

Kepentingan analisis komponen perisian pihak ketiga (Analisis Komposisi Perisian - SCA) dalam proses pembangunan semakin berkembang dengan pengeluaran laporan tahunan tentang kelemahan perpustakaan sumber terbuka, yang diterbitkan oleh Synopsys, Sonatype, Snyk, dan White Source . Menurut laporan itu Keadaan Kerentanan Keselamatan Sumber Terbuka 2020 bilangan kelemahan sumber terbuka yang dikenal pasti pada 2019 meningkat hampir 1.5 kali ganda berbanding tahun sebelumnya, manakala komponen sumber terbuka digunakan sebanyak 60% hingga 80% daripada projek. Pada pendapat bebas, proses SCA ialah amalan berasingan OWASP SAMM dan BSIMM sebagai penunjuk kematangan, dan pada separuh pertama 2020, OWASP mengeluarkan Piawaian Pengesahan Komponen Perisian (SCVS) OWASP baharu, menyediakan amalan terbaik untuk mengesahkan ketiga- komponen parti dalam rantaian bekalan BY.

DevSecOps: prinsip operasi dan perbandingan SCA. Bahagian satu

Salah satu kes yang paling menggambarkan berlaku dengan Equifax pada Mei 2017. Penyerang tidak diketahui memperoleh maklumat tentang 143 juta rakyat Amerika, termasuk nama penuh, alamat, nombor Keselamatan Sosial dan lesen memandu. Dalam 209 kes, dokumen itu juga termasuk maklumat tentang kad bank mangsa. Kebocoran ini berlaku akibat eksploitasi kerentanan kritikal dalam Apache Struts 000 (CVE-2-2017), manakala pembaikan telah dikeluarkan pada Mac 5638. Syarikat itu mempunyai dua bulan untuk memasang kemas kini, tetapi tiada siapa yang peduli dengannya.

Artikel ini akan membincangkan isu memilih alat untuk menjalankan SCA dari sudut kualiti keputusan analisis. Perbandingan fungsi alat juga akan disediakan. Proses penyepaduan ke dalam CI/CD dan keupayaan penyepaduan akan ditinggalkan untuk penerbitan seterusnya. Pelbagai alat telah dibentangkan oleh OWASP di tapak anda, tetapi dalam semakan semasa, kami hanya akan menyentuh pada Alat sumber terbuka yang paling popular, Semakan Ketergantungan, platform sumber terbuka yang kurang terkenal, Track Ketergantungan dan penyelesaian Perusahaan Sonatype Nexus IQ. Kami juga akan memahami cara penyelesaian ini berfungsi dan membandingkan keputusan yang diperoleh untuk positif palsu.

DevSecOps: prinsip operasi dan perbandingan SCA. Bahagian satu

Prinsip operasi

Semakan Ketergantungan ialah utiliti (CLI, maven, jenkins module, ant) ​​​​yang menganalisis fail projek, mengumpul cebisan maklumat tentang kebergantungan (nama pakej, kumpulan, tajuk spesifikasi, versi...), membina baris CPE (Common Platform Enumeration) , URL Pakej ( PURL) dan mengenal pasti kelemahan untuk CPE/PURL daripada pangkalan data (NVD, Sonatype OSS Index, NPM Audit API...), selepas itu ia membina laporan sekali dalam format HTML, JSON, XML...

Mari lihat rupa CPE:

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

  • bahagian Petunjuk bahawa komponen berkaitan dengan aplikasi (a), sistem pengendalian (o), perkakasan (h) (Diperlukan)
  • Vendor: Nama Pengilang Produk (Diperlukan)
  • produk: Nama Produk (Diperlukan)
  • Versi: Versi komponen (Item usang)
  • Kini: Kemas kini pakej
  • Edisi: Versi lama (Item ditamatkan)
  • bahasa: Bahasa yang ditakrifkan dalam RFC-5646
  • Edisi SW: Versi perisian
  • Sasaran SW: Persekitaran perisian di mana produk beroperasi
  • Sasaran HW: Persekitaran perkakasan di mana produk beroperasi
  • lain-lain: Maklumat Pembekal atau Produk

Contoh CPE kelihatan seperti ini:

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

Baris tersebut bermaksud bahawa CPE versi 2.3 menerangkan komponen aplikasi daripada pengilang pivotal_software dengan tajuk spring_framework versi 3.0.0. Jika kita membuka kelemahan CVE-2014 0225- dalam NVD, kita boleh melihat sebutan tentang CPE ini. Masalah pertama yang perlu anda perhatikan dengan segera ialah CVE dalam NVD, menurut CPE, melaporkan masalah dalam rangka kerja, dan bukan dalam komponen tertentu. Iaitu, jika pembangun terikat rapat dengan rangka kerja, dan kerentanan yang dikenal pasti tidak menjejaskan modul yang digunakan oleh pembangun, pakar keselamatan dalam satu cara atau yang lain perlu membuka CVE ini dan berfikir tentang mengemas kini.

URL juga digunakan oleh alat SCA. Format URL pakej adalah seperti berikut:

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

  • Skim: Akan sentiasa ada 'pkg' yang menunjukkan bahawa ini adalah URL pakej (Diperlukan)
  • Jenis: "Jenis" pakej atau "protokol" pakej, seperti maven, npm, nuget, permata, pypi, dll. (Item yang diperlukan)
  • Ruang nama: Beberapa awalan nama, seperti ID kumpulan Maven, pemilik imej Docker, pengguna GitHub atau organisasi. Pilihan dan bergantung pada jenis.
  • Nama: Nama pakej (Diperlukan)
  • Versi: Versi pakej
  • Qualifiers: Data kelayakan tambahan untuk pakej, seperti OS, seni bina, pengedaran, dll. Pilihan dan khusus jenis.
  • Laluan kecil: Laluan tambahan dalam pakej berbanding akar pakej

Sebagai contoh:

pkg:golang/google.golang.org/genproto#googleapis/api/annotations
pkg:maven/org.apache.commons/[email protected]
pkg:pypi/[email protected]

Trek Ketergantungan β€” platform web di premis yang menerima Bill of Materials (BOM) siap pakai yang dijana CycloneDX ΠΈ SPDX, iaitu spesifikasi sedia ada tentang kebergantungan sedia ada. Ini ialah fail XML yang menerangkan kebergantungan - nama, cincang, url pakej, penerbit, lesen. Seterusnya, Tapak Ketergantungan menghuraikan BOM, melihat CVE yang tersedia untuk kebergantungan yang dikenal pasti daripada pangkalan data kerentanan (NVD, Indeks OSS Sonatype...), selepas itu ia membina graf, mengira metrik, mengemas kini data secara kerap tentang status kerentanan komponen .

Contoh rupa BOM dalam 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 boleh digunakan bukan sahaja sebagai parameter input untuk Track Ketergantungan, tetapi juga untuk menginventori komponen perisian dalam rantaian bekalan, contohnya, untuk menyediakan perisian kepada pelanggan. Pada tahun 2014, undang-undang telah dicadangkan di Amerika Syarikat "Akta Pengurusan dan Ketelusan Rantaian Siber 2014", yang menyatakan bahawa apabila membeli perisian, mana-mana negeri. Institusi itu mesti meminta BOM untuk menghalang penggunaan komponen yang terdedah, tetapi akta itu masih belum berkuat kuasa.

Kembali ke SCA, Dependency Track mempunyai integrasi sedia dibuat dengan Platform Pemberitahuan seperti Slack, sistem pengurusan kerentanan seperti Kenna Security. Perlu juga dikatakan bahawa Tapak Ketergantungan, antara lain, mengenal pasti versi pakej yang sudah lapuk dan menyediakan maklumat tentang lesen (disebabkan sokongan SPDX).

Jika kita bercakap secara khusus mengenai kualiti SCA, maka terdapat perbezaan asas.

Ketergantungan Track tidak menerima projek sebagai input, sebaliknya BOM. Ini bermakna jika kita ingin menguji projek, kita perlu menjana bom.xml dahulu, contohnya menggunakan CycloneDX. Oleh itu, Trek Ketergantungan bergantung secara langsung pada CycloneDX. Pada masa yang sama, ia membenarkan penyesuaian. Inilah yang ditulis oleh pasukan OZON Modul CycloneDX untuk memasang fail BOM untuk projek Golang untuk pengimbasan selanjutnya melalui Dependency Track.

Nexus IQ ialah penyelesaian SCA komersial daripada Sonatype, yang merupakan sebahagian daripada ekosistem Sonatype, yang turut merangkumi Pengurus Repositori Nexus. Nexus IQ boleh menerima sebagai input kedua-dua arkib perang (untuk projek java) melalui antara muka web atau API, dan BOM, jika organisasi anda masih belum beralih daripada CycloneDX kepada penyelesaian baharu. Tidak seperti penyelesaian sumber terbuka, IQ bukan sahaja merujuk kepada CP/PURL kepada komponen yang dikenal pasti dan kerentanan yang sepadan dalam pangkalan data, tetapi juga mengambil kira penyelidikannya sendiri, contohnya, nama fungsi atau kelas yang terdedah. Mekanisme IQ akan dibincangkan kemudian dalam analisis keputusan.

Mari ringkaskan beberapa ciri berfungsi, dan juga pertimbangkan bahasa yang disokong untuk analisis:

Bahasa
Nexus IQ
Semakan Ketergantungan
Trek Ketergantungan

Java
+
+
+

C / C ++
+
+
-

C#
+
+
-

. Bersih
+
+
+

erlang
-
-
+

JavaScript (NodeJS)
+
+
+

PHP
+
+
+

Python
+
+
+

Ruby
+
+
+

Perl
-
-
-

Scala
+
+
+

Objektif C
+
+
-

Swift
+
+
-

R
+
-
-

Go
+
+
+

Fungsi

Fungsi
Nexus IQ
Semakan Ketergantungan
Trek Ketergantungan

Keupayaan untuk memastikan bahawa komponen yang digunakan dalam kod sumber disemak untuk ketulenan berlesen
+
-
+

Keupayaan untuk mengimbas dan menganalisis kelemahan dan melesenkan kebersihan untuk imej Docker
+ Integrasi dengan Clair
-
-

Keupayaan untuk mengkonfigurasi dasar keselamatan untuk menggunakan perpustakaan sumber terbuka
+
-
-

Keupayaan untuk mengimbas repositori sumber terbuka untuk komponen yang terdedah
+ RubyGems, Maven, NPM, Nuget, Pypi, Conan, Bower, Conda, Go, p2, R, Yum, Helm, Docker, CocoaPods, Git LFS
-
+ Hex, RubyGems, Maven, NPM, Nuget, Pypi

Ketersediaan kumpulan penyelidikan khusus
+
-
-

Operasi gelung tertutup
+
+
+

Menggunakan pangkalan data pihak ketiga
+ Pangkalan data Sonatype tertutup
+ Sonatype OSS, Penasihat Awam NPM
+ Sonatype OSS, Penasihat Awam NPM, RetireJS, VulnDB, sokongan untuk pangkalan data kelemahannya sendiri

Keupayaan untuk menapis komponen sumber terbuka apabila cuba memuatkan ke dalam gelung pembangunan mengikut dasar yang dikonfigurasikan
+
-
-

Pengesyoran untuk membetulkan kelemahan, ketersediaan pautan ke pembaikan
+
+- (bergantung pada penerangan dalam pangkalan data awam)
+- (bergantung pada penerangan dalam pangkalan data awam)

Kedudukan kelemahan yang dikesan mengikut tahap keterukan
+
+
+

Model capaian berasaskan peranan
+
-
+

sokongan CLI
+
+
+- (hanya untuk CycloneDX)

Persampelan/isihan kelemahan mengikut kriteria yang ditetapkan
+
-
+

Papan pemuka mengikut status aplikasi
+
-
+

Menjana laporan dalam format PDF
+
-
-

Menjana laporan dalam format JSONCSV
+
+
-

Sokongan bahasa Rusia
-
-
-

Keupayaan integrasi

Integrasi
Nexus IQ
Semakan Ketergantungan
Trek Ketergantungan

Penyepaduan LDAP/Direktori Aktif
+
-
+

Integrasi dengan sistem integrasi berterusan Buluh
+
-
-

Integrasi dengan sistem integrasi berterusan TeamCity
+
-
-

Penyepaduan dengan sistem penyepaduan berterusan GitLab
+
+- (sebagai pemalam untuk GitLab)
+

Penyepaduan dengan sistem penyepaduan berterusan Jenkins
+
+
+

Ketersediaan pemalam untuk IDE
+ IntelliJ, Eclipse, Visual Studio
-
-

Sokongan untuk penyepaduan tersuai melalui perkhidmatan web (API) alat
+
-
+

Semakan Ketergantungan

Mula pertama

Mari jalankan Pemeriksaan Ketergantungan pada aplikasi yang sengaja terdedah DVJA.

Untuk ini kami akan gunakan Pemalam Maven Semak Ketergantungan:

mvn org.owasp:dependency-check-maven:check

Akibatnya, dependency-check-report.html akan muncul dalam direktori sasaran.

DevSecOps: prinsip operasi dan perbandingan SCA. Bahagian satu

Mari buka fail. Selepas maklumat ringkasan tentang jumlah kelemahan, kita boleh melihat maklumat tentang kelemahan dengan tahap Keterukan dan Keyakinan yang tinggi, yang menunjukkan pakej, CPE dan bilangan CVE.

Seterusnya datang maklumat yang lebih terperinci, khususnya asas keputusan dibuat (bukti), iaitu BOM tertentu.

DevSecOps: prinsip operasi dan perbandingan SCA. Bahagian satu

Seterusnya ialah penerangan CPE, PURL dan CVE. Dengan cara ini, cadangan untuk pembetulan tidak disertakan kerana ketiadaannya dalam pangkalan data NVD.

DevSecOps: prinsip operasi dan perbandingan SCA. Bahagian satu

Untuk melihat hasil imbasan secara sistematik, anda boleh mengkonfigurasi Nginx dengan tetapan minimum, atau menghantar kecacatan yang terhasil kepada sistem pengurusan kecacatan yang menyokong penyambung kepada Pemeriksaan Ketergantungan. Contohnya, Defect Dojo.

Trek Ketergantungan

Pemasangan

Ketergantungan Track pula ialah platform berasaskan web dengan graf paparan, jadi isu mendesak untuk menyimpan kecacatan dalam penyelesaian pihak ketiga tidak timbul di sini.
Skrip yang disokong untuk pemasangan ialah: Docker, WAR, Executable WAR.

Mula pertama

Kami pergi ke URL perkhidmatan yang sedang berjalan. Kami log masuk melalui admin/admin, menukar log masuk dan kata laluan, dan kemudian pergi ke Papan Pemuka. Perkara seterusnya yang akan kami lakukan ialah mencipta projek untuk aplikasi ujian di Java dalam Laman Utama/Projek β†’ Cipta Projek . Mari kita ambil DVJA sebagai contoh.

DevSecOps: prinsip operasi dan perbandingan SCA. Bahagian satu

Memandangkan Track Ketergantungan hanya boleh menerima BOM sebagai input, BOM ini mesti diambil semula. Jom ambil kesempatan Pemalam CycloneDX Maven:

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

Kami mendapatkan bom.xml dan memuatkan fail dalam projek yang dibuat DVJA β†’ Ketergantungan β†’ Muat naik BOM.

Mari pergi ke Pentadbiran β†’ Penganalisis. Kami faham bahawa kami hanya mendayakan Penganalisis Dalaman, yang termasuk NVD. Mari juga sambungkan Indeks OSS Sonatype.

DevSecOps: prinsip operasi dan perbandingan SCA. Bahagian satu

Oleh itu, kami mendapat gambar berikut untuk projek kami:

DevSecOps: prinsip operasi dan perbandingan SCA. Bahagian satu

Juga dalam senarai anda boleh menemui satu kerentanan yang boleh digunakan untuk Sonatype OSS:

DevSecOps: prinsip operasi dan perbandingan SCA. Bahagian satu

Kekecewaan utama ialah Track Ketergantungan tidak lagi menerima laporan xml Semak Ketergantungan. Versi integrasi Cek Ketergantungan yang disokong terkini ialah 1.0.0 - 4.0.2, sementara saya menguji 5.3.2.

di sini ialah video (dan di sini) apabila masih boleh.

Nexus IQ

Mula pertama

Pemasangan Nexus IQ datang daripada arkib dokumentasi, tetapi kami membina imej Docker untuk tujuan ini.

Selepas log masuk ke konsol, anda perlu membuat Organisasi dan Aplikasi.

DevSecOps: prinsip operasi dan perbandingan SCA. Bahagian satu

DevSecOps: prinsip operasi dan perbandingan SCA. Bahagian satu

DevSecOps: prinsip operasi dan perbandingan SCA. Bahagian satu

Seperti yang anda lihat, persediaan dalam kes IQ agak lebih rumit, kerana kami juga perlu membuat dasar yang boleh digunakan untuk "peringkat" yang berbeza (dev, build, stage, release). Ini adalah perlu untuk menyekat komponen yang terdedah semasa mereka bergerak melalui saluran paip yang lebih dekat dengan pengeluaran, atau untuk menyekatnya sebaik sahaja ia masuk ke Repo Nexus apabila dimuat turun oleh pembangun.

Untuk merasai perbezaan antara sumber terbuka dan perusahaan, mari lakukan imbasan yang sama melalui Nexus IQ dengan cara yang sama Pemalam Maven, setelah mencipta aplikasi ujian dalam antara muka NexusIQ sebelum ini 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>

Ikut URL ke laporan yang dijana dalam antara muka web IQ:

DevSecOps: prinsip operasi dan perbandingan SCA. Bahagian satu

Di sini anda boleh melihat semua pelanggaran dasar yang menunjukkan tahap kepentingan yang berbeza (daripada Maklumat kepada Kritikal Keselamatan). Huruf D di sebelah komponen bermakna komponen tersebut adalah Ketergantungan Langsung, dan huruf T di sebelah komponen bermaksud komponen tersebut adalah Ketergantungan Transitif, iaitu ia adalah transitif.

By the way, laporan itu Laporan Keselamatan Sumber Terbuka Negeri 2020 daripada Snyk melaporkan bahawa lebih daripada 70% kelemahan sumber terbuka yang ditemui dalam Node.js, Java dan Ruby berada dalam kebergantungan transitif.

Jika kami membuka salah satu pelanggaran dasar Nexus IQ, kami dapat melihat perihalan komponen serta Graf Versi, yang menunjukkan lokasi versi semasa dalam graf masa, serta pada titik mana kelemahan itu berhenti menjadi terdedah. Ketinggian lilin pada graf menunjukkan populariti penggunaan komponen ini.

DevSecOps: prinsip operasi dan perbandingan SCA. Bahagian satu

Jika anda pergi ke bahagian kelemahan dan mengembangkan CVE, anda boleh membaca penerangan tentang kelemahan ini, cadangan untuk penghapusan, serta sebab mengapa komponen ini dilanggar, iaitu, kehadiran kelas DiskFileitem.class.

DevSecOps: prinsip operasi dan perbandingan SCA. Bahagian satu

DevSecOps: prinsip operasi dan perbandingan SCA. Bahagian satu

Mari ringkaskan hanya yang berkaitan dengan komponen Java pihak ketiga, mengalih keluar komponen js. Dalam kurungan kami menunjukkan bilangan kelemahan yang ditemui di luar NVD.

Jumlah IQ Nexus:

  • Ketergantungan Diimbas: 62
  • Tanggungan Terdedah: 16
  • Kerentanan Ditemui: 42 (8 sonatype db)

Semakan Kebergantungan Jumlah:

  • Ketergantungan Diimbas: 47
  • Tanggungan Terdedah: 13
  • Kerentanan Ditemui: 91 (14 sonatype oss)

Jumlah Jejak Kebergantungan:

  • Ketergantungan Diimbas: 59
  • Tanggungan Terdedah: 10
  • Kerentanan Ditemui: 51 (1 sonatype oss)

Dalam langkah seterusnya, kami akan menganalisis keputusan yang diperoleh dan mengetahui yang mana antara kelemahan ini adalah kecacatan sebenar dan yang mana adalah positif palsu.

Penafian

Ulasan ini bukanlah kebenaran yang tidak dapat dipertikaikan. Penulis tidak mempunyai matlamat untuk menonjolkan instrumen yang berasingan dengan latar belakang orang lain. Tujuan semakan adalah untuk menunjukkan mekanisme operasi alat SCA dan cara untuk menyemak keputusannya.

Perbandingan keputusan

Terma dan syarat:

Positif palsu untuk kelemahan komponen pihak ketiga ialah:

  • CVE tidak padan dengan komponen yang dikenal pasti
  • Sebagai contoh, jika kerentanan dikenal pasti dalam rangka kerja struts2 dan alat itu menunjukkan kepada komponen rangka kerja jubin tupang, yang kelemahan ini tidak digunakan, maka ini adalah positif palsu
  • CVE tidak padan dengan versi komponen yang dikenal pasti
  • Sebagai contoh, kelemahan terikat pada versi python > 3.5 dan alat menandakan versi 2.7 sebagai terdedah - ini adalah positif palsu, kerana sebenarnya kelemahan hanya terpakai pada cawangan produk 3.x
  • CVE pendua
  • Sebagai contoh, jika SCA menentukan CVE yang mendayakan RCE, maka SCA menentukan CVE untuk komponen yang sama yang digunakan untuk produk Cisco yang terjejas oleh RCE tersebut. Dalam kes ini ia akan menjadi positif palsu.
  • Sebagai contoh, CVE ditemui dalam komponen spring-web, selepas itu SCA menunjuk ke CVE yang sama dalam komponen lain Rangka Kerja Spring, manakala CVE tiada kaitan dengan komponen lain. Dalam kes ini ia akan menjadi positif palsu.

Objek kajian adalah projek Sumber Terbuka DVJA. Kajian ini hanya melibatkan komponen java (tanpa js).

Keputusan ringkasan

Mari terus ke hasil semakan manual tentang kelemahan yang dikenal pasti. Laporan penuh untuk setiap CVE boleh didapati di Lampiran.

Hasil ringkasan untuk semua kelemahan:

Parameter
Nexus IQ
Semakan Ketergantungan
Trek Ketergantungan

Jumlah kelemahan yang dikenal pasti
42
91
51

Kelemahan yang dikenal pasti secara salah (positif palsu)
2 (4.76%)
62 (68,13%)
29 (56.86%)

Tiada kelemahan berkaitan ditemui (negatif palsu)
10
20
27

Hasil ringkasan mengikut komponen:

Parameter
Nexus IQ
Semakan Ketergantungan
Trek Ketergantungan

Jumlah komponen yang dikenal pasti
62
47
59

Jumlah komponen yang terdedah
16
13
10

Komponen terdedah yang salah dikenal pasti (positif palsu)
1
5
0

Komponen terdedah yang salah dikenal pasti (positif palsu)
0
6
6

Mari bina graf visual untuk menilai nisbah positif palsu dan negatif palsu kepada jumlah kelemahan. Komponen ditanda secara mendatar, dan kelemahan yang dikenal pasti di dalamnya ditanda secara menegak.

DevSecOps: prinsip operasi dan perbandingan SCA. Bahagian satu

DevSecOps: prinsip operasi dan perbandingan SCA. Bahagian satu

DevSecOps: prinsip operasi dan perbandingan SCA. Bahagian satu

Sebagai perbandingan, kajian serupa telah dijalankan oleh pasukan Sonatype menguji projek 1531 komponen menggunakan Semakan Ketergantungan OWASP. Seperti yang kita dapat lihat, nisbah hingar kepada respons yang betul adalah setanding dengan keputusan kami.

DevSecOps: prinsip operasi dan perbandingan SCA. Bahagian satu
Sumber: www.sonatype.com/why-precision-matters-ebook

Mari lihat beberapa CVE daripada hasil imbasan kami untuk memahami sebab keputusan ini.

lebih

β„– 1

Mari kita lihat dahulu beberapa perkara menarik tentang Sonatype Nexus IQ.

Nexus IQ menunjukkan isu penyahserialisasian dengan keupayaan untuk melaksanakan RCE dalam Rangka Kerja Spring beberapa kali. CVE-2016-1000027 dalam spring-web:3.0.5 kali pertama dan CVE-2011-2894 dalam spring-context:3.0.5 dan spring-core:3.0.5. Pada mulanya, nampaknya terdapat pertindihan kerentanan merentas berbilang CVE. Kerana, jika anda melihat CVE-2016-1000027 dan CVE-2011-2894 dalam pangkalan data NVD, nampaknya semuanya jelas.

Komponen
Kerentanan

spring-web:3.0.5
CVE-2016 1000027-

konteks musim bunga:3.0.5
CVE-2011 2894-

teras spring:3.0.5
CVE-2011 2894-

ОписаниС CVE-2011 2894- daripada NVD:
DevSecOps: prinsip operasi dan perbandingan SCA. Bahagian satu

ОписаниС CVE-2016 1000027- daripada NVD:
DevSecOps: prinsip operasi dan perbandingan SCA. Bahagian satu

CVE-2011-2894 sendiri agak terkenal. Dalam laporan tersebut Sumber Putih 2011 CVE ini telah diiktiraf sebagai salah satu yang paling biasa. Penerangan untuk CVE-2016-100027, pada dasarnya, adalah sedikit dalam NVD, dan ia nampaknya hanya terpakai untuk Rangka Kerja Spring 4.1.4. Mari kita lihat rujukan dan di sini segala-galanya menjadi lebih kurang jelas. daripada Artikel yang boleh dipertahankan Kami memahami bahawa sebagai tambahan kepada kelemahan dalam RemoteInvocationSerializingExporter dalam CVE-2011-2894, kelemahan diperhatikan dalam HttpInvokerServiceExporter. Inilah yang diberitahu oleh Nexus IQ kepada kami:

DevSecOps: prinsip operasi dan perbandingan SCA. Bahagian satu

Walau bagaimanapun, tiada apa-apa seperti ini dalam NVD, itulah sebabnya Semakan Ketergantungan dan Jejak Ketergantungan masing-masing menerima negatif palsu.

Juga daripada huraian CVE-2011-2894 boleh difahami bahawa kerentanan itu sememangnya wujud dalam kedua-dua spring-context:3.0.5 dan spring-core:3.0.5. Pengesahan ini boleh didapati dalam artikel daripada orang yang menemui kelemahan ini.

β„– 2

Komponen
Kerentanan
Keputusan

struts2-core:2.3.30
CVE-2016 4003-
SALAH

Jika kami mengkaji kerentanan CVE-2016-4003, kami akan memahami bahawa ia telah ditetapkan dalam versi 2.3.28, namun, Nexus IQ melaporkannya kepada kami. Terdapat nota dalam perihalan kelemahan:

DevSecOps: prinsip operasi dan perbandingan SCA. Bahagian satu

Iaitu, kelemahan wujud hanya bersempena dengan versi JRE yang sudah lapuk, yang mereka memutuskan untuk memberi amaran kepada kami. Namun begitu, kami menganggap Positif Palsu ini, walaupun bukan yang paling teruk.

# 3

Komponen
Kerentanan
Keputusan

xwork-core:2.3.30
CVE-2017 9804-
TRUE

xwork-core:2.3.30
CVE-2017 7672-
SALAH

Jika kita melihat huraian CVE-2017-9804 dan CVE-2017-7672, kita akan faham bahawa masalahnya ialah URLValidator class, dengan CVE-2017-9804 berpunca daripada CVE-2017-7672. Kehadiran kelemahan kedua tidak membawa apa-apa beban berguna selain fakta bahawa keterukannya telah meningkat kepada Tinggi, jadi kami boleh menganggapnya bunyi yang tidak perlu.

Secara keseluruhan, tiada positif palsu lain ditemui untuk Nexus IQ.

β„– 4

Terdapat beberapa perkara yang menjadikan IQ menonjol daripada penyelesaian lain.

Komponen
Kerentanan
Keputusan

spring-web:3.0.5
CVE-2020 5398-
TRUE

CVE dalam NVD menyatakan bahawa ia hanya digunakan pada versi 5.2.x sebelum 5.2.3, 5.1.x sebelum 5.1.13 dan versi 5.0.x sebelum 5.0.16, walau bagaimanapun, jika kita melihat penerangan CVE dalam Nexus IQ , maka kita akan melihat perkara berikut:
Notis Sisihan Nasihat: Pasukan penyelidik keselamatan Sonatype mendapati bahawa kerentanan ini diperkenalkan dalam versi 3.0.2.RELEASE dan bukan 5.0.x seperti yang dinyatakan dalam nasihat.

Ini diikuti oleh PoC untuk kelemahan ini, yang menyatakan bahawa ia hadir dalam versi 3.0.5.

Negatif palsu dihantar ke Semakan Ketergantungan dan Track Ketergantungan.

β„– 5

Mari lihat positif palsu untuk Semakan Ketergantungan dan Jejak Ketergantungan.

Semakan Ketergantungan menyerlah kerana ia mencerminkan CVE yang digunakan pada keseluruhan rangka kerja dalam NVD pada komponen yang tidak digunakan oleh CVE ini. Ini berkenaan CVE-2012-0394, CVE-2013-2115, CVE-2014-0114, CVE-2015-0899, CVE-2015-2992, CVE-2016-1181, CVE-2016-1182, yang mana Semakan Ketergantungan ” kepada struts-taglib:1.3.8 dan struts-tiles-1.3.8. Komponen ini tiada kaitan dengan perkara yang diterangkan dalam CVE - pemprosesan permintaan, pengesahan halaman dan sebagainya. Ini disebabkan oleh fakta bahawa persamaan CVE dan komponen ini hanyalah rangka kerja, itulah sebabnya Semakan Ketergantungan menganggapnya sebagai kelemahan.

Keadaan yang sama adalah dengan spring-tx:3.0.5, dan situasi yang sama dengan struts-core:1.3.8. Untuk struts-core, Dependency Check dan Dependency Track telah menemui banyak kelemahan yang sebenarnya boleh digunakan untuk struts2-core, yang pada asasnya merupakan rangka kerja yang berasingan. Dalam kes ini, Nexus IQ memahami gambar dengan betul dan dalam CVE yang dikeluarkan, ia menunjukkan bahawa teras tupang telah mencapai penghujung hayat dan perlu beralih ke teras tupang2.

β„– 6

Dalam sesetengah situasi, adalah tidak adil untuk mentafsir ralat Semakan Ketergantungan dan Jejak Ketergantungan yang jelas. Khususnya CVE-2013-4152, CVE-2013-6429, CVE-2013-6430, CVE-2013-7315, CVE-2014-0054, CVE-2014-0225, CVE-2014-0225, yang Semakan Ketergantungan Track dan dikaitkan dengan spring-core:3.0.5 sebenarnya milik spring-web:3.0.5. Pada masa yang sama, beberapa CVE ini juga ditemui oleh Nexus IQ, namun, IQ mengenal pastinya dengan betul kepada komponen lain. Kerana kelemahan ini tidak ditemui dalam teras spring, ia tidak boleh dipertikaikan bahawa ia tidak berada dalam rangka kerja pada dasarnya dan alat sumber terbuka dengan betul menunjukkan kelemahan ini (mereka hanya terlepas sedikit).

Penemuan

Seperti yang dapat kita lihat, menentukan kebolehpercayaan kelemahan yang dikenal pasti melalui semakan manual tidak memberikan hasil yang jelas, itulah sebabnya isu kontroversi timbul. Hasilnya ialah penyelesaian Nexus IQ mempunyai kadar positif palsu terendah dan ketepatan tertinggi.

Pertama sekali, ini disebabkan oleh fakta bahawa pasukan Sonatype mengembangkan perihalan untuk setiap kerentanan CVE daripada NVD dalam pangkalan datanya, menunjukkan kelemahan untuk versi tertentu komponen turun ke kelas atau fungsi, menjalankan penyelidikan tambahan (contohnya , menyemak kelemahan pada versi perisian lama).

Pengaruh penting pada keputusan juga dimainkan oleh kelemahan yang tidak disertakan dalam NVD, tetapi masih terdapat dalam pangkalan data Sonatype dengan tanda SONATYPE. Menurut laporan itu Keadaan Kerentanan Keselamatan Sumber Terbuka 2020 45% daripada kelemahan sumber terbuka yang ditemui tidak dilaporkan kepada NVD. Menurut pangkalan data WhiteSource, hanya 29% daripada semua kelemahan sumber terbuka yang dilaporkan di luar NVD akhirnya diterbitkan di sana, itulah sebabnya penting untuk mencari kelemahan dalam sumber lain juga.

Akibatnya, Pemeriksaan Ketergantungan menghasilkan banyak bunyi, kehilangan beberapa komponen yang terdedah. Ketergantungan Track menghasilkan kurang bunyi dan mengesan sejumlah besar komponen, yang tidak menyakitkan mata secara visual dalam antara muka web.

Walau bagaimanapun, amalan menunjukkan bahawa sumber terbuka harus menjadi langkah pertama ke arah DevSecOps yang matang. Perkara pertama yang perlu anda fikirkan apabila menyepadukan SCA ke dalam pembangunan ialah proses, iaitu, memikirkan bersama-sama dengan pengurusan dan jabatan berkaitan tentang rupa proses yang ideal dalam organisasi anda. Mungkin ternyata untuk organisasi anda, pada mulanya, Semakan Ketergantungan atau Jejak Ketergantungan akan merangkumi semua keperluan perniagaan, dan penyelesaian Perusahaan akan menjadi kesinambungan logik kerana kerumitan aplikasi yang sedang dibangunkan yang semakin meningkat.

Lampiran A: Keputusan Komponen
Simbol:

  • Kerentanan tahap tinggi-tinggi dan kritikal dalam komponen
  • Sederhana β€” Kerentanan tahap kritikal sederhana dalam komponen
  • BENAR β€” Isu positif yang benar
  • FALSE β€” Isu positif palsu

Komponen
Nexus IQ
Semakan Ketergantungan
Trek Ketergantungan
Keputusan

dom4j: 1.6.1
Tinggi
Tinggi
Tinggi
TRUE

teras log4j: 2.3
Tinggi
Tinggi
Tinggi
TRUE

log4j: 1.2.14
Tinggi
Tinggi
-
TRUE

commons-collections:3.1
Tinggi
Tinggi
Tinggi
TRUE

commons-fileupload:1.3.2
Tinggi
Tinggi
Tinggi
TRUE

commons-beanutils:1.7.0
Tinggi
Tinggi
Tinggi
TRUE

commons-codec:1:10
sederhana
-
-
TRUE

mysql-connector-java:5.1.42
Tinggi
Tinggi
Tinggi
TRUE

ungkapan spring:3.0.5
Tinggi
komponen tidak ditemui

TRUE

spring-web:3.0.5
Tinggi
komponen tidak ditemui
Tinggi
TRUE

konteks musim bunga:3.0.5
sederhana
komponen tidak ditemui
-
TRUE

teras spring:3.0.5
sederhana
Tinggi
Tinggi
TRUE

struts2-config-browser-plugin:2.3.30
sederhana
-
-
TRUE

spring-tx:3.0.5
-
Tinggi
-
SALAH

teras-teras:1.3.8
Tinggi
Tinggi
Tinggi
TRUE

xwork-core: 2.3.30
Tinggi
-
-
TRUE

tupang2-teras: 2.3.30
Tinggi
Tinggi
Tinggi
TRUE

struts-taglib:1.3.8
-
Tinggi
-
SALAH

tupang-jubin-1.3.8
-
Tinggi
-
SALAH

Lampiran B: Keputusan Keterdedahan
Simbol:

  • Kerentanan tahap tinggi-tinggi dan kritikal dalam komponen
  • Sederhana β€” Kerentanan tahap kritikal sederhana dalam komponen
  • BENAR β€” Isu positif yang benar
  • FALSE β€” Isu positif palsu

Komponen
Nexus IQ
Semakan Ketergantungan
Trek Ketergantungan
Keterukan
Keputusan
Komen

dom4j: 1.6.1
CVE-2018 1000632-
CVE-2018 1000632-
CVE-2018 1000632-
Tinggi
TRUE

CVE-2020 10683-
CVE-2020 10683-
CVE-2020 10683-
Tinggi
TRUE

teras log4j: 2.3
CVE-2017 5645-
CVE-2017 5645-
CVE-2017 5645-
Tinggi
TRUE

CVE-2020 9488-
CVE-2020 9488-
CVE-2020 9488-
Rendah
TRUE

log4j: 1.2.14
CVE-2019 17571-
CVE-2019 17571-
-
Tinggi
TRUE

-
CVE-2020 9488-
-
Rendah
TRUE

SONATYPE-2010-0053
-
-
Tinggi
TRUE

commons-collections:3.1
-
CVE-2015 6420-
CVE-2015 6420-
Tinggi
SALAH
Pendua RCE(OSSINDEX)

-
CVE-2017 15708-
CVE-2017 15708-
Tinggi
SALAH
Pendua RCE(OSSINDEX)

SONATYPE-2015-0002
RCE (OSSINDEX)
RCE(OSSINDEX)
Tinggi
TRUE

commons-fileupload:1.3.2
CVE-2016 1000031-
CVE-2016 1000031-
CVE-2016 1000031-
Tinggi
TRUE

SONATYPE-2014-0173
-
-
sederhana
TRUE

commons-beanutils:1.7.0
CVE-2014 0114-
CVE-2014 0114-
CVE-2014 0114-
Tinggi
TRUE

-
CVE-2019 10086-
CVE-2019 10086-
Tinggi
SALAH
Kerentanan hanya digunakan pada versi 1.9.2+

commons-codec:1:10
SONATYPE-2012-0050
-
-
sederhana
TRUE

mysql-connector-java:5.1.42
CVE-2018 3258-
CVE-2018 3258-
CVE-2018 3258-
Tinggi
TRUE

CVE-2019 2692-
CVE-2019 2692-
-
sederhana
TRUE

-
CVE-2020 2875-
-
sederhana
SALAH
Kerentanan yang sama seperti CVE-2019-2692, tetapi dengan nota "serangan boleh memberi kesan ketara kepada produk tambahan"

-
CVE-2017 15945-
-
Tinggi
SALAH
Tidak berkaitan dengan mysql-connector-java

-
CVE-2020 2933-
-
Rendah
SALAH
Pendua CVE-2020-2934

CVE-2020 2934-
CVE-2020 2934-
-
sederhana
TRUE

ungkapan spring:3.0.5
CVE-2018 1270-
komponen tidak ditemui
-
Tinggi
TRUE

CVE-2018 1257-
-
-
sederhana
TRUE

spring-web:3.0.5
CVE-2016 1000027-
komponen tidak ditemui
-
Tinggi
TRUE

CVE-2014 0225-
-
CVE-2014 0225-
Tinggi
TRUE

CVE-2011 2730-
-
-
Tinggi
TRUE

-
-
CVE-2013 4152-
sederhana
TRUE

CVE-2018 1272-
-
-
Tinggi
TRUE

CVE-2020 5398-
-
-
Tinggi
TRUE
Contoh ilustrasi yang memihak kepada IQ: "Pasukan penyelidik keselamatan Sonatype mendapati bahawa kerentanan ini diperkenalkan dalam versi 3.0.2.RELEASE dan bukan 5.0.x seperti yang dinyatakan dalam nasihat."

CVE-2013 6429-
-
-
sederhana
TRUE

CVE-2014 0054-
-
CVE-2014 0054-
sederhana
TRUE

CVE-2013 6430-
-
-
sederhana
TRUE

konteks musim bunga:3.0.5
CVE-2011 2894-
komponen tidak ditemui
-
sederhana
TRUE

teras spring:3.0.5
-
CVE-2011 2730-
CVE-2011 2730-
Tinggi
TRUE

CVE-2011 2894-
CVE-2011 2894-
CVE-2011 2894-
sederhana
TRUE

-
-
CVE-2013 4152-
sederhana
SALAH
Pendua kelemahan yang sama dalam spring-web

-
CVE-2013 4152-
-
sederhana
SALAH
Kerentanan berkaitan dengan komponen spring-web

-
CVE-2013 6429-
CVE-2013 6429-
sederhana
SALAH
Kerentanan berkaitan dengan komponen spring-web

-
CVE-2013 6430-
-
sederhana
SALAH
Kerentanan berkaitan dengan komponen spring-web

-
CVE-2013 7315-
CVE-2013 7315-
sederhana
SALAH
SPLIT daripada CVE-2013-4152. + Kerentanan berkaitan dengan komponen spring-web

-
CVE-2014 0054-
CVE-2014 0054-
sederhana
SALAH
Kerentanan berkaitan dengan komponen spring-web

-
CVE-2014 0225-
-
Tinggi
SALAH
Kerentanan berkaitan dengan komponen spring-web

-
-
CVE-2014 0225-
Tinggi
SALAH
Pendua kelemahan yang sama dalam spring-web

-
CVE-2014 1904-
CVE-2014 1904-
sederhana
SALAH
Kerentanan berkaitan dengan komponen spring-web-mvc

-
CVE-2014 3625-
CVE-2014 3625-
sederhana
SALAH
Kerentanan berkaitan dengan komponen spring-web-mvc

-
CVE-2016 9878-
CVE-2016 9878-
Tinggi
SALAH
Kerentanan berkaitan dengan komponen spring-web-mvc

-
CVE-2018 1270-
CVE-2018 1270-
Tinggi
SALAH
Untuk ekspresi musim bunga/mesej-musim bunga

-
CVE-2018 1271-
CVE-2018 1271-
sederhana
SALAH
Kerentanan berkaitan dengan komponen spring-web-mvc

-
CVE-2018 1272-
CVE-2018 1272-
Tinggi
TRUE

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

SONATYPE-2015-0327
-
-
Rendah
TRUE

struts2-config-browser-plugin:2.3.30
SONATYPE-2016-0104
-
-
sederhana
TRUE

spring-tx:3.0.5
-
CVE-2011 2730-
-
Tinggi
SALAH
Kerentanan tidak khusus untuk spring-tx

-
CVE-2011 2894-
-
Tinggi
SALAH
Kerentanan tidak khusus untuk spring-tx

-
CVE-2013 4152-
-
sederhana
SALAH
Kerentanan tidak khusus untuk spring-tx

-
CVE-2013 6429-
-
sederhana
SALAH
Kerentanan tidak khusus untuk spring-tx

-
CVE-2013 6430-
-
sederhana
SALAH
Kerentanan tidak khusus untuk spring-tx

-
CVE-2013 7315-
-
sederhana
SALAH
Kerentanan tidak khusus untuk spring-tx

-
CVE-2014 0054-
-
sederhana
SALAH
Kerentanan tidak khusus untuk spring-tx

-
CVE-2014 0225-
-
Tinggi
SALAH
Kerentanan tidak khusus untuk spring-tx

-
CVE-2014 1904-
-
sederhana
SALAH
Kerentanan tidak khusus untuk spring-tx

-
CVE-2014 3625-
-
sederhana
SALAH
Kerentanan tidak khusus untuk spring-tx

-
CVE-2016 9878-
-
Tinggi
SALAH
Kerentanan tidak khusus untuk spring-tx

-
CVE-2018 1270-
-
Tinggi
SALAH
Kerentanan tidak khusus untuk spring-tx

-
CVE-2018 1271-
-
sederhana
SALAH
Kerentanan tidak khusus untuk spring-tx

-
CVE-2018 1272-
-
sederhana
SALAH
Kerentanan tidak khusus untuk spring-tx

teras-teras:1.3.8
-
CVE-2011-5057 (OSSINDEX)

sederhana
FASLE
Kerentanan kepada Struts 2

-
CVE-2012-0391 (OSSINDEX)
CVE-2012 0391-
Tinggi
SALAH
Kerentanan kepada Struts 2

-
CVE-2014-0094 (OSSINDEX)
CVE-2014 0094-
sederhana
SALAH
Kerentanan kepada Struts 2

-
CVE-2014-0113 (OSSINDEX)
CVE-2014 0113-
Tinggi
SALAH
Kerentanan kepada Struts 2

CVE-2016 1182-
3VE-2016-1182
-
Tinggi
TRUE

-
-
CVE-2011 5057-
sederhana
SALAH
Kerentanan kepada Struts 2

-
CVE-2012-0392 (OSSINDEX)
CVE-2012 0392-
Tinggi
SALAH
Kerentanan kepada Struts 2

-
CVE-2012-0393 (OSSINDEX)
CVE-2012 0393-
sederhana
SALAH
Kerentanan kepada Struts 2

CVE-2015 0899-
CVE-2015 0899-
-
Tinggi
TRUE

-
CVE-2012 0394-
CVE-2012 0394-
sederhana
SALAH
Kerentanan kepada Struts 2

-
CVE-2012-0838 (OSSINDEX)
CVE-2012 0838-
Tinggi
SALAH
Kerentanan kepada Struts 2

-
CVE-2013-1965 (OSSINDEX)
CVE-2013 1965-
Tinggi
SALAH
Kerentanan kepada Struts 2

-
CVE-2013-1966 (OSSINDEX)
CVE-2013 1966-
Tinggi
FASLE
Kerentanan kepada Struts 2

-
CVE-2013 2115-
CVE-2013 2115-
Tinggi
FASLE
Kerentanan kepada Struts 2

-
CVE-2013-2134 (OSSINDEX)
CVE-2013 2134-
Tinggi
FASLE
Kerentanan kepada Struts 2

-
CVE-2013-2135 (OSSINDEX)
CVE-2013 2135-
Tinggi
FASLE
Kerentanan kepada Struts 2

CVE-2014 0114-
CVE-2014 0114-
-
Tinggi
TRUE

-
CVE-2015 2992-
CVE-2015 2992-
sederhana
SALAH
Kerentanan kepada Struts 2

-
CVE-2016-0785 (OSSINDEX)
CVE-2016 0785-
Tinggi
SALAH
Kerentanan kepada Struts 2

CVE-2016 1181-
CVE-2016 1181-
-
Tinggi
TRUE

-
CVE-2016-4003 (OSSINDEX)
CVE-2016 4003-
Tinggi
SALAH
Kerentanan kepada Struts 2

xwork-core:2.3.30
CVE-2017 9804-
-
-
Tinggi
TRUE

SONATYPE-2017-0173
-
-
Tinggi
TRUE

CVE-2017 7672-
-
-
Tinggi
SALAH
Pendua CVE-2017-9804

SONATYPE-2016-0127
-
-
Tinggi
TRUE

struts2-core:2.3.30
-
CVE-2016 6795-
CVE-2016 6795-
Tinggi
TRUE

-
CVE-2017 9787-
CVE-2017 9787-
Tinggi
TRUE

-
CVE-2017 9791-
CVE-2017 9791-
Tinggi
TRUE

-
CVE-2017 9793-
-
Tinggi
SALAH
Pendua CVE-2018-1327

-
CVE-2017 9804-
-
Tinggi
TRUE

-
CVE-2017 9805-
CVE-2017 9805-
Tinggi
TRUE

CVE-2016 4003-
-
-
sederhana
SALAH
Berkenaan dengan Apache Struts 2.x sehingga 2.3.28, iaitu versi 2.3.30. Walau bagaimanapun, berdasarkan huraian, CVE adalah sah untuk mana-mana versi Struts 2 jika JRE 1.7 atau kurang digunakan. Nampaknya mereka memutuskan untuk menginsuranskan semula kami di sini, tetapi ia kelihatan lebih seperti PALSU

-
CVE-2018 1327-
CVE-2018 1327-
Tinggi
TRUE

CVE-2017 5638-
CVE-2017 5638-
CVE-2017 5638-
Tinggi
TRUE
Kerentanan yang sama yang dieksploitasi oleh penggodam Equifax pada 2017

CVE-2017 12611-
CVE-2017 12611-
-
Tinggi
TRUE

CVE-2018 11776-
CVE-2018 11776-
CVE-2018 11776-
Tinggi
TRUE

struts-taglib:1.3.8
-
CVE-2012 0394-
-
sederhana
SALAH
Untuk struts2-core

-
CVE-2013 2115-
-
Tinggi
SALAH
Untuk struts2-core

-
CVE-2014 0114-
-
Tinggi
SALAH
Untuk commons-beanutils

-
CVE-2015 0899-
-
Tinggi
SALAH
Tidak terpakai pada taglib

-
CVE-2015 2992-
-
sederhana
SALAH
Merujuk kepada struts2-core

-
CVE-2016 1181-
-
Tinggi
SALAH
Tidak terpakai pada taglib

-
CVE-2016 1182-
-
Tinggi
SALAH
Tidak terpakai pada taglib

tupang-jubin-1.3.8
-
CVE-2012 0394-
-
sederhana
SALAH
Untuk struts2-core

-
CVE-2013 2115-
-
Tinggi
SALAH
Untuk struts2-core

-
CVE-2014 0114-
-
Tinggi
SALAH
Di bawah commons-beanutils

-
CVE-2015 0899-
-
Tinggi
SALAH
Tidak terpakai pada jubin

-
CVE-2015 2992-
-
sederhana
SALAH
Untuk struts2-core

-
CVE-2016 1181-
-
Tinggi
SALAH
Tidak terpakai pada taglib

-
CVE-2016 1182-
-
Tinggi
SALAH
Tidak terpakai pada taglib

Sumber: www.habr.com

Tambah komen