DevSecOps: ishlash tamoyillari va SCAni taqqoslash. Birinchi qism

Synopsys, Sonatype, Snyk va White Source tomonidan nashr etiladigan ochiq kodli kutubxonalarning zaifliklari to'g'risidagi yillik hisobotlarning chiqarilishi bilan ishlab chiqish jarayonida uchinchi tomon dasturiy ta'minot komponentlarini (Software Composition Analysis - SCA) tahlil qilishning ahamiyati ortib bormoqda. . Hisobotga ko'ra Ochiq kodli xavfsizlik zaifliklari holati 2020 2019-yilda aniqlangan ochiq kodli zaifliklar soni o‘tgan yilga nisbatan qariyb 1.5 baravar oshdi, ochiq kodli komponentlar loyihalarning 60-80 foizida foydalanilmoqda. Mustaqil ravishda, SCA jarayonlari etuklik ko'rsatkichi sifatida OWASP SAMM va BSIMM ning alohida amaliyotidir va 2020 yilning birinchi yarmida OWASP yangi OWASP dasturiy ta'minot komponentlarini tekshirish standartini (SCVS) chiqardi, bu uchinchi komponentlarni tekshirish uchun eng yaxshi amaliyotlarni taqdim etdi. ta'minot zanjiridagi partiya komponentlari BY.

DevSecOps: ishlash tamoyillari va SCAni taqqoslash. Birinchi qism

Eng yorqin misollardan biri sodir bo'ldi Equifax bilan 2017 yil may oyida. Noma'lum hujumchilar 143 million amerikalik haqida ma'lumot, jumladan to'liq ismlar, manzillar, ijtimoiy sug'urta raqamlari va haydovchilik guvohnomalarini qo'lga kiritdi. 209 000 ta holatda hujjatlar qurbonlarning bank kartalari haqidagi ma'lumotlarni ham o'z ichiga olgan. Ushbu oqish Apache Struts 2 (CVE-2017-5638) da muhim zaiflikdan foydalanish natijasida yuzaga kelgan, tuzatish esa 2017 yil mart oyida chiqarilgan edi. Yangilanishni o'rnatish uchun kompaniya ikki oy vaqt bor edi, biroq bu bilan hech kim bezovta qilmadi.

Ushbu maqolada tahlil natijalarining sifati nuqtai nazaridan SCAni o'tkazish uchun vositani tanlash masalasi muhokama qilinadi. Asboblarning funktsional taqqoslanishi ham taqdim etiladi. CI/CD ga integratsiyalashuv jarayoni va integratsiya imkoniyatlari keyingi nashrlar uchun qoldiriladi. OWASP tomonidan keng turdagi vositalar taqdim etildi saytingizda, ammo joriy sharhda biz faqat eng mashhur ochiq manbali Dependency Check vositasi, biroz kamroq taniqli ochiq kodli platforma Dependency Track va Enterprise yechimi Sonatype Nexus IQ haqida gaplashamiz. Shuningdek, biz ushbu echimlar qanday ishlashini tushunamiz va olingan natijalarni noto'g'ri pozitivlar uchun solishtiramiz.

DevSecOps: ishlash tamoyillari va SCAni taqqoslash. Birinchi qism

Ish printsipi

Tobelikni tekshirish loyiha fayllarini tahlil qiladigan, bog'liqliklar (paket nomi, guruh nomi, spetsifikatsiya sarlavhasi, versiya...) haqida ma'lumot to'playdigan, CPE (Common Platform Enumeration) qatorini yaratuvchi yordamchi dastur (CLI, maven, jenkins module, ant). , Paket URL (PURL) va maʼlumotlar bazalaridan (NVD, Sonatype OSS Index, NPM Audit API...) CPE/PURL uchun zaifliklarni aniqlaydi, shundan soʻng HTML, JSON, XML formatida bir martalik hisobot tuzadi...

Keling, CPE qanday ko'rinishini ko'rib chiqaylik:

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

  • Bo'lim: Komponent ilovaga (a), operatsion tizimga (o), apparatga (h) tegishli ekanligini ko'rsatish (majburiy)
  • Sotuvchi: Mahsulot ishlab chiqaruvchisi nomi (majburiy)
  • Mahsulot: Mahsulot nomi (majburiy)
  • Version: Komponent versiyasi (eskirgan element)
  • yangilash: Paket yangilanishi
  • Edition: Eski versiya (eskirgan element)
  • Til: RFC-5646 da belgilangan til
  • SW nashri: Dasturiy ta'minot versiyasi
  • Maqsadli SW: Mahsulot ishlaydigan dasturiy ta'minot muhiti
  • Maqsadli HW: Mahsulot ishlaydigan apparat muhiti
  • Boshqa: Yetkazib beruvchi yoki mahsulot haqida ma'lumot

Misol CPE quyidagicha ko'rinadi:

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

Chiziq CPE 2.3 versiyasi ishlab chiqaruvchidan dastur komponentini tavsiflashini anglatadi pivotal_software nomi bilan spring_framework 3.0.0 versiyasi. Agar zaiflikni ochsak CVE-2014-0225 NVD da biz ushbu CPE haqida eslatib o'tishimiz mumkin. Siz darhol e'tibor berishingiz kerak bo'lgan birinchi muammo - NVD-dagi CVE, CPE-ga ko'ra, muammo haqida ma'lum bir komponentda emas, balki ramkada xabar beradi. Ya'ni, agar ishlab chiquvchilar ramka bilan mahkam bog'langan bo'lsa va aniqlangan zaiflik ishlab chiquvchilar foydalanadigan modullarga ta'sir qilmasa, xavfsizlik bo'yicha mutaxassis u yoki bu tarzda ushbu CVE-ni qismlarga ajratishi va yangilash haqida o'ylashi kerak.

URL SCA vositalari tomonidan ham qo'llaniladi. Paket URL formati quyidagicha:

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

  • Sxema: Bu paket URL manzili ekanligini bildiruvchi har doim "pkg" bo'ladi (majburiy)
  • turi: Paketning "turi" yoki paketning "protokoli", masalan, maven, npm, nuget, gem, pypi va boshqalar. (Majburiy element)
  • Nom maydoni: Maven guruhi identifikatori, Docker tasvir egasi, GitHub foydalanuvchisi yoki tashkilot kabi ba'zi nomlar prefiksi. Majburiy emas va turiga bog'liq.
  • Ism: Paket nomi (majburiy)
  • Version: Paket versiyasi
  • Saralovchilar: Paket uchun qo'shimcha malaka ma'lumotlari, masalan, OS, arxitektura, tarqatish va boshqalar. Majburiy emas va turga xos.
  • Subpath: Paket ildiziga nisbatan paketdagi qo'shimcha yo'l

Masalan:

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

Tobelik treki — yaratilgan tayyor materiallar ro'yxatini (BOM) qabul qiluvchi mahalliy veb-platforma CycloneDX и SPDX, ya'ni mavjud bog'liqliklar haqida tayyor spetsifikatsiyalar. Bu bog'liqliklarni tavsiflovchi XML fayli - nom, xeshlar, paket url, nashriyot, litsenziya. Keyinchalik, Dependency Track BOMni tahlil qiladi, zaiflik ma'lumotlar bazasidan (NVD, Sonatype OSS Index...) aniqlangan bog'liqliklar uchun mavjud bo'lgan CVE'larni ko'rib chiqadi, shundan so'ng u grafiklarni tuzadi, ko'rsatkichlarni hisoblaydi, komponentlarning zaiflik holati to'g'risidagi ma'lumotlarni muntazam yangilaydi. .

XML formatida BOM qanday ko'rinishiga misol:

<?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 nafaqat Dependency Track uchun kirish parametrlari sifatida, balki ta'minot zanjiridagi dasturiy ta'minot komponentlarini inventarizatsiya qilish uchun, masalan, mijozni dasturiy ta'minot bilan ta'minlash uchun ham ishlatilishi mumkin. 2014 yilda hatto AQShda qonun taklif qilingan "Kiber ta'minot zanjirini boshqarish va shaffoflik to'g'risidagi qonun 2014 yil", bu dasturiy ta'minotni sotib olayotganda, har qanday davlat. Muassasa zaif komponentlardan foydalanishni oldini olish uchun BOMni so'rashi kerak, ammo akt hali kuchga kirmagan.

SCA-ga qaytsak, Dependency Track Slack kabi bildirishnoma platformalari, Kenna Security kabi zaifliklarni boshqarish tizimlari bilan tayyor integratsiyaga ega. Shuni ham ta'kidlash kerakki, Dependency Track, boshqa narsalar qatori, paketlarning eskirgan versiyalarini aniqlaydi va litsenziyalar haqida ma'lumot beradi (SPDX qo'llab-quvvatlashi tufayli).

Agar SCA sifati haqida alohida gapiradigan bo'lsak, unda asosiy farq bor.

Dependency Track loyihani kirish sifatida qabul qilmaydi, balki BOMni qabul qiladi. Bu shuni anglatadiki, agar biz loyihani sinab ko'rmoqchi bo'lsak, avval bom.xml ni yaratishimiz kerak, masalan, CycloneDX yordamida. Shunday qilib, Dependency Track bevosita CycloneDX ga bog'liq. Shu bilan birga, u moslashtirishga imkon beradi. Bu haqda OZON jamoasi yozgan CycloneDX moduli Dependency Track orqali keyingi skanerlash uchun Golang loyihalari uchun BOM fayllarini yig'ish uchun.

Nexus IQ Nexus Repository Manager-ni ham o'z ichiga olgan Sonatype ekotizimining bir qismi bo'lgan Sonatype kompaniyasining tijorat SCA yechimidir. Agar tashkilotingiz hali CycloneDX-dan yangi yechimga o'tmagan bo'lsa, Nexus IQ veb-interfeys yoki API orqali urush arxivlarini (java loyihalari uchun) va BOMni kirish sifatida qabul qilishi mumkin. Ochiq manbali echimlardan farqli o'laroq, IQ nafaqat aniqlangan komponentga CP/PURL va ma'lumotlar bazasidagi mos keladigan zaiflikka ishora qiladi, balki o'z tadqiqotlarini ham hisobga oladi, masalan, zaif funksiya yoki sinf nomi. IQ mexanizmlari natijalarni tahlil qilishda keyinroq muhokama qilinadi.

Keling, ba'zi funktsional xususiyatlarni umumlashtiramiz, shuningdek tahlil qilish uchun qo'llab-quvvatlanadigan tillarni ko'rib chiqamiz:

til
Nexus IQ
Tobelikni tekshirish
Tobelik treki

Java
+
+
+

C / C ++
+
+
-

C#
+
+
-

.Net
+
+
+

erlang
-
-
+

JavaScript (NodeJS)
+
+
+

PHP
+
+
+

Python
+
+
+

yoqut
+
+
+

Perl
-
-
-

Scala
+
+
+

Ob'ektiv C
+
+
-

Swift
+
+
-

R
+
-
-

Go
+
+
+

Funktsionallik

Funktsionallik
Nexus IQ
Tobelikni tekshirish
Tobelik treki

Manba kodida ishlatiladigan komponentlarning litsenziyalangan tozaligi tekshirilishini ta'minlash qobiliyati
+
-
+

Zaifliklarni skanerlash va tahlil qilish va Docker tasvirlari uchun litsenziya tozaligi
+ Clair bilan integratsiya
-
-

Ochiq kodli kutubxonalardan foydalanish uchun xavfsizlik siyosatini sozlash imkoniyati
+
-
-

Zaif komponentlar uchun ochiq manbali omborlarni skanerlash imkoniyati
+ RubyGems, Maven, NPM, Nuget, Pypi, Conan, Bower, Conda, Go, p2, R, Yum, Helm, Docker, CocoaPods, Git LFS
-
+ Hex, RubyGems, Maven, NPM, Nuget, Pypi

Ixtisoslashgan tadqiqot guruhining mavjudligi
+
-
-

Yopiq tsikl bilan ishlash
+
+
+

Uchinchi tomon ma'lumotlar bazalaridan foydalanish
+ Yopiq Sonatype ma'lumotlar bazasi
+ Sonatype OSS, NPM jamoatchilik maslahatchilari
+ Sonatype OSS, NPM Public Advisors, RetireJS, VulnDB, o'zining zaiflik ma'lumotlar bazasini qo'llab-quvvatlash

Sozlangan siyosatlarga muvofiq ishlab chiqish tsikliga yuklashga urinayotganda ochiq manba komponentlarini filtrlash imkoniyati
+
-
-

Zaifliklarni tuzatish bo'yicha tavsiyalar, tuzatishlarga havolalar mavjudligi
+
+- (ommaviy ma'lumotlar bazalaridagi tavsifga bog'liq)
+- (ommaviy ma'lumotlar bazalaridagi tavsifga bog'liq)

Aniqlangan zaifliklarning jiddiylik darajasi bo'yicha reytingi
+
+
+

Rolga asoslangan kirish modeli
+
-
+

CLI qo'llab-quvvatlash
+
+
+- (faqat CycloneDX uchun)

Belgilangan mezonlar bo'yicha zaifliklarni tanlash/saralash
+
-
+

Ilova holati bo'yicha asboblar paneli
+
-
+

PDF formatida hisobotlarni yaratish
+
-
-

JSONCSV formatida hisobotlarni yaratish
+
+
-

Rus tilini qo'llab-quvvatlash
-
-
-

Integratsiya qobiliyatlari

Integratsiya
Nexus IQ
Tobelikni tekshirish
Tobelik treki

LDAP/Active Directory integratsiyasi
+
-
+

Bamboo uzluksiz integratsiya tizimi bilan integratsiya
+
-
-

TeamCity uzluksiz integratsiya tizimi bilan integratsiya
+
-
-

GitLab uzluksiz integratsiya tizimi bilan integratsiya
+
+- (GitLab uchun plagin sifatida)
+

Jenkins uzluksiz integratsiya tizimi bilan integratsiya
+
+
+

IDE uchun plaginlarning mavjudligi
+ IntelliJ, Eclipse, Visual Studio
-
-

Asbobning veb-xizmatlari (API) orqali shaxsiy integratsiyani qo'llab-quvvatlash
+
-
+

Tobelikni tekshirish

Birinchidan boshlang

Qasddan zaif dasturda Dependency Check dasturini ishga tushiraylik DVJA.

Buning uchun biz foydalanamiz Maven plaginiga qaramlikni tekshirish:

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

Natijada, maqsadli katalogda dependency-check-report.html paydo bo'ladi.

DevSecOps: ishlash tamoyillari va SCAni taqqoslash. Birinchi qism

Keling, faylni ochamiz. Zaifliklarning umumiy soni haqidagi qisqacha ma'lumotdan so'ng, paket, CPE va CVE sonini ko'rsatuvchi yuqori darajadagi jiddiylik va ishonchga ega zaifliklar haqidagi ma'lumotlarni ko'rishimiz mumkin.

Keyinchalik batafsil ma'lumot, xususan, qaror qabul qilingan asos (dalil), ya'ni ma'lum bir BOM keladi.

DevSecOps: ishlash tamoyillari va SCAni taqqoslash. Birinchi qism

Keyinchalik CPE, PURL va CVE tavsifi keladi. Aytgancha, tuzatish bo'yicha tavsiyalar NVD ma'lumotlar bazasida yo'qligi sababli kiritilmagan.

DevSecOps: ishlash tamoyillari va SCAni taqqoslash. Birinchi qism

Skanerlash natijalarini muntazam ko'rish uchun siz Nginx-ni minimal sozlamalar bilan sozlashingiz yoki natijada paydo bo'lgan nuqsonlarni Dependency Check-ga ulagichlarni qo'llab-quvvatlaydigan nuqsonlarni boshqarish tizimiga yuborishingiz mumkin. Masalan, Defect Dojo.

Tobelik treki

sozlama

Dependency Track, o'z navbatida, displey grafiklari bo'lgan veb-platformadir, shuning uchun uchinchi tomon yechimida nuqsonlarni saqlashning dolzarb muammosi bu erda paydo bo'lmaydi.
O'rnatish uchun qo'llab-quvvatlanadigan skriptlar: Docker, WAR, Executable WAR.

Birinchidan boshlang

Ishlayotgan xizmatning URL manziliga o'tamiz. Biz admin/admin orqali tizimga kiramiz, login va parolni o'zgartiramiz, so'ngra asboblar paneliga o'tamiz. Keyingi ishimiz Java-da test dasturi uchun loyiha yaratishdir Bosh sahifa/Loyihalar → Loyiha yaratish . Misol tariqasida DVJA ni olaylik.

DevSecOps: ishlash tamoyillari va SCAni taqqoslash. Birinchi qism

Dependency Track faqat BOMni kirish sifatida qabul qilishi mumkinligi sababli, ushbu BOMni olish kerak. Keling, foyda keltiraylik CycloneDX Maven plagini:

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

Biz bom.xml ni olamiz va faylni yaratilgan loyihaga yuklaymiz DVJA → Bog'liqliklar → BOMni yuklash.

Keling, Ma'muriyat → Analizatorlarga o'tamiz. Bizda faqat ichki analizator yoqilganligini tushunamiz, jumladan NVD. Keling, Sonatype OSS Index-ni ham bog'laymiz.

DevSecOps: ishlash tamoyillari va SCAni taqqoslash. Birinchi qism

Shunday qilib, biz loyihamiz uchun quyidagi rasmni olamiz:

DevSecOps: ishlash tamoyillari va SCAni taqqoslash. Birinchi qism

Shuningdek, ro'yxatda Sonatype OSS-ga tegishli zaiflikni topishingiz mumkin:

DevSecOps: ishlash tamoyillari va SCAni taqqoslash. Birinchi qism

Asosiy umidsizlik, Dependency Track endi Dependency Check xml hisobotlarini qabul qilmasligi edi. Dependency Check integratsiyasining so'nggi qo'llab-quvvatlanadigan versiyalari 1.0.0 - 4.0.2 edi, men esa 5.3.2 ni sinab ko'rdim.

shu yerda видео (va ko'raylik) hali ham mumkin bo'lganida.

Nexus IQ

Birinchidan boshlang

Nexus IQ-ni o'rnatish arxividan olingan hujjatlar, lekin biz ushbu maqsadlar uchun Docker tasvirini yaratdik.

Konsolga kirganingizdan so'ng siz tashkilot va dastur yaratishingiz kerak.

DevSecOps: ishlash tamoyillari va SCAni taqqoslash. Birinchi qism

DevSecOps: ishlash tamoyillari va SCAni taqqoslash. Birinchi qism

DevSecOps: ishlash tamoyillari va SCAni taqqoslash. Birinchi qism

Ko'rib turganingizdek, IQ holatini sozlash biroz murakkabroq, chunki biz turli "bosqichlar" (ishlab chiqish, qurish, bosqich, chiqarish) uchun qo'llaniladigan siyosatlarni yaratishimiz kerak. Bu ishlab chiqarishga yaqinroq quvur liniyasi orqali harakatlanayotgan zaif komponentlarni bloklash yoki ishlab chiquvchilar tomonidan yuklab olinganda Nexus Repo-ga kirishi bilanoq ularni bloklash uchun kerak.

Ochiq manba va korporativ o'rtasidagi farqni his qilish uchun keling, Nexus IQ orqali bir xil skanerdan o'tkazamiz. Maven plaginlari, avval NexusIQ interfeysida test dasturini yaratgan 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>

IQ veb-interfeysida yaratilgan hisobotning URL manziliga amal qiling:

DevSecOps: ishlash tamoyillari va SCAni taqqoslash. Birinchi qism

Bu yerda siz turli ahamiyatga egalik darajalarini ko‘rsatuvchi barcha siyosat buzilishlarini ko‘rishingiz mumkin (Ma’lumotdan Xavfsizlik darajasigacha). Komponentning yonidagi D harfi komponentning To'g'ridan-to'g'ri bog'liqligini, T harfi esa komponentning o'tishli bog'liqligini, ya'ni o'tishli ekanligini anglatadi.

Aytgancha, hisobot 2020 yil uchun ochiq kodli xavfsizlik holati hisoboti Snyk'ning xabar berishicha, Node.js, Java va Ruby-da aniqlangan ochiq kodli zaifliklarning 70% dan ortig'i o'tish davriga bog'liq.

Agar biz Nexus IQ siyosatining buzilishidan birini ochsak, biz komponent tavsifini, shuningdek, vaqt grafigida joriy versiyaning joylashishini, shuningdek, zaiflik qaysi nuqtada to'xtashini ko'rsatadigan Versiya grafigini ko'rishimiz mumkin. zaif bo'ling. Grafikdagi shamlarning balandligi ushbu komponentdan foydalanishning mashhurligini ko'rsatadi.

DevSecOps: ishlash tamoyillari va SCAni taqqoslash. Birinchi qism

Agar siz zaifliklar bo'limiga o'tsangiz va CVE-ni kengaytirsangiz, siz ushbu zaiflikning tavsifi, bartaraf etish bo'yicha tavsiyalar, shuningdek, ushbu komponent nima uchun buzilganligi, ya'ni sinf mavjudligi bilan tanishishingiz mumkin. DiskFileitem.class.

DevSecOps: ishlash tamoyillari va SCAni taqqoslash. Birinchi qism

DevSecOps: ishlash tamoyillari va SCAni taqqoslash. Birinchi qism

Js komponentlarini olib tashlagan holda, faqat uchinchi tomon Java komponentlari bilan bog'liq bo'lganlarni umumlashtiramiz. Qavslar ichida biz NVD dan tashqarida topilgan zaifliklar sonini ko'rsatamiz.

Jami Nexus IQ:

  • Skanerlangan bog'liqliklar: 62
  • Zaif qaramliklar: 16
  • Topilgan zaifliklar: 42 (8 sonatip db)

Umumiy qaramlikni tekshirish:

  • Skanerlangan bog'liqliklar: 47
  • Zaif qaramliklar: 13
  • Topilgan zaifliklar: 91 (14 sonatype oss)

Umumiy qaramlik treki:

  • Skanerlangan bog'liqliklar: 59
  • Zaif qaramliklar: 10
  • Topilgan zaifliklar: 51 (1 sonatype oss)

Keyingi bosqichlarda biz olingan natijalarni tahlil qilamiz va ushbu zaifliklarning qaysi biri haqiqiy nuqson va qaysi biri noto'g'ri ijobiy ekanligini aniqlaymiz.

Rad etish

Ushbu sharh shubhasiz haqiqat emas. Muallif boshqalarning fonida alohida asbobni ajratib ko'rsatishni maqsad qilmagan. Ko'rib chiqishdan maqsad SCA vositalarining ishlash mexanizmlarini va ularning natijalarini tekshirish usullarini ko'rsatish edi.

Natijalarni solishtirish

Foydalanish shartlari:

Uchinchi tomon komponentlarining zaifliklari uchun noto'g'ri ijobiy:

  • Aniqlangan komponentga CVE nomuvofiqligi
  • Misol uchun, agar struts2 ramkasida zaiflik aniqlansa va asbob bu zaiflik taalluqli bo'lmagan struts-plitkalar ramkasining tarkibiy qismiga ishora qilsa, bu noto'g'ri ijobiydir.
  • Komponentning aniqlangan versiyasiga CVE nomuvofiqligi
  • Masalan, zaiflik python versiyasi > 3.5 bilan bog'langan va vosita 2.7 versiyasini zaif deb belgilaydi - bu noto'g'ri ijobiy, chunki aslida zaiflik faqat 3.x mahsulot filialiga tegishli
  • CVE dublikati
  • Misol uchun, agar SCA RCE ni faollashtiradigan CVE ni belgilasa, SCA ushbu RCE ta'sir qiladigan Cisco mahsulotlariga tegishli bo'lgan o'sha komponent uchun CVE ni belgilaydi. Bunday holda, u noto'g'ri ijobiy bo'ladi.
  • Masalan, Spring-web komponentida CVE topildi, shundan so'ng SCA Spring Frameworkning boshqa komponentlarida bir xil CVE ga ishora qiladi, CVE esa boshqa komponentlar bilan hech qanday aloqasi yo'q. Bunday holda, u noto'g'ri ijobiy bo'ladi.

Tadqiqot ob'ekti DVJA Open Source loyihasi edi. Tadqiqot faqat java komponentlarini (jssiz) qamrab oldi.

Xulosa natijalari

Keling, aniqlangan zaifliklarni qo'lda tekshirish natijalariga to'g'ridan-to'g'ri murojaat qilaylik. Har bir CVE uchun to'liq hisobotni Ilovada topish mumkin.

Barcha zaifliklar uchun xulosalar:

Parametr
Nexus IQ
Tobelikni tekshirish
Tobelik treki

Jami zaifliklar aniqlandi
42
91
51

Noto'g'ri aniqlangan zaifliklar (noto'g'ri ijobiy)
2 (% 4.76)
62 (% 68,13)
29 (% 56.86)

Tegishli zaifliklar topilmadi (noto'g'ri salbiy)
10
20
27

Komponent bo'yicha xulosalar:

Parametr
Nexus IQ
Tobelikni tekshirish
Tobelik treki

Jami komponentlar aniqlandi
62
47
59

Jami zaif komponentlar
16
13
10

Noto'g'ri aniqlangan zaif komponentlar (noto'g'ri ijobiy)
1
5
0

Noto'g'ri aniqlangan zaif komponentlar (noto'g'ri ijobiy)
0
6
6

Noto'g'ri ijobiy va noto'g'ri manfiy zaifliklarning umumiy soniga nisbatini baholash uchun vizual grafiklarni tuzamiz. Komponentlar gorizontal ravishda belgilanadi va ularda aniqlangan zaifliklar vertikal ravishda belgilanadi.

DevSecOps: ishlash tamoyillari va SCAni taqqoslash. Birinchi qism

DevSecOps: ishlash tamoyillari va SCAni taqqoslash. Birinchi qism

DevSecOps: ishlash tamoyillari va SCAni taqqoslash. Birinchi qism

Taqqoslash uchun, shunga o'xshash tadqiqot Sonatype jamoasi tomonidan OWASP Dependency Check yordamida 1531 komponentdan iborat loyihani sinovdan o'tkazdi. Ko'rib turganimizdek, shovqinning to'g'ri javoblarga nisbati bizning natijalarimiz bilan taqqoslanadi.

DevSecOps: ishlash tamoyillari va SCAni taqqoslash. Birinchi qism
Manba: www.sonatype.com/why-precision-matters-ebook

Keling, ushbu natijalarning sababini tushunish uchun skanerlash natijalarimizdan ba'zi CVE'larni ko'rib chiqaylik.

Nizom

№1

Keling, birinchi navbatda Sonatype Nexus IQ haqidagi qiziqarli fikrlarni ko'rib chiqaylik.

Nexus IQ Spring Framework-da RCE-ni bir necha marta bajarish qobiliyati bilan seriyani yo'qotish bilan bog'liq muammoga ishora qiladi. Bahor-vebda CVE-2016-1000027: birinchi marta 3.0.5 va CVE-2011-2894 bahor kontekstida: 3.0.5 va bahor yadrosi: 3.0.5. Avvaliga, bir nechta CVElarda zaiflikning takrorlanishi borligi ko'rinadi. Chunki, agar siz NVD ma'lumotlar bazasida CVE-2016-1000027 va CVE-2011-2894 ga qarasangiz, hamma narsa aniq ko'rinadi.

tarkibiy
Zaiflik

spring-web: 3.0.5
CVE-2016-1000027

bahor konteksti: 3.0.5
CVE-2011-2894

bahor yadrosi: 3.0.5
CVE-2011-2894

tavsifi CVE-2011-2894 NVD dan:
DevSecOps: ishlash tamoyillari va SCAni taqqoslash. Birinchi qism

tavsifi CVE-2016-1000027 NVD dan:
DevSecOps: ishlash tamoyillari va SCAni taqqoslash. Birinchi qism

CVE-2011-2894-ning o'zi juda mashhur. Hisobotda Oq manba 2011 bu CVE eng keng tarqalganlardan biri sifatida tan olingan. CVE-2016-100027 uchun tavsiflar, qoida tariqasida, NVD da kam va u faqat Spring Framework 4.1.4 uchun amal qiladi. Keling, bir ko'rib chiqaylik ma'lumotnoma va bu erda hamma narsa ko'proq yoki kamroq aniq bo'ladi. Kimdan Qabul qilinadigan maqolalar Biz zaiflikdan tashqari, buni tushunamiz RemoteInvocationSerializingExporter CVE-2011-2894 da zaiflik mavjud HttpInvokerServiceExporter. Bu Nexus IQ bizga aytadi:

DevSecOps: ishlash tamoyillari va SCAni taqqoslash. Birinchi qism

Biroq, NVD-da bunday narsa yo'q, shuning uchun Dependency Check va Dependency Track har biri noto'g'ri salbiy qabul qiladi.

Shuningdek, CVE-2011-2894 tavsifidan shuni tushunish mumkinki, zaiflik haqiqatdan ham bahor konteksti: 3.0.5 va bahor yadrosi: 3.0.5 da mavjud. Buning tasdig'ini ushbu zaiflikni topgan shaxsning maqolasida topish mumkin.

№2

tarkibiy
Zaiflik
natija

struts2-yadro: 2.3.30
CVE-2016-4003
FALSE

Agar biz CVE-2016-4003 zaifligini o'rgansak, u 2.3.28 versiyada tuzatilganligini tushunamiz, ammo Nexus IQ bu haqda bizga xabar beradi. Zaiflikning tavsifida eslatma mavjud:

DevSecOps: ishlash tamoyillari va SCAni taqqoslash. Birinchi qism

Ya'ni, zaiflik faqat JRE ning eskirgan versiyasi bilan birgalikda mavjud bo'lib, ular bizni ogohlantirishga qaror qilishdi. Shunga qaramay, biz bu noto'g'ri ijobiy deb hisoblaymiz, garchi eng yomoni bo'lmasa ham.

3 raqami

tarkibiy
Zaiflik
natija

xwork-core: 2.3.30
CVE-2017-9804
HAQ

xwork-core: 2.3.30
CVE-2017-7672
FALSE

Agar biz CVE-2017-9804 va CVE-2017-7672 tavsiflarini ko'rib chiqsak, muammo nimada ekanligini tushunamiz. URLValidator class, CVE-2017-9804 CVE-2017-7672 dan kelib chiqqan holda. Ikkinchi zaiflikning mavjudligi, uning zo'ravonligi Oliy darajaga ko'tarilganidan tashqari, hech qanday foydali yukni ko'tarmaydi, shuning uchun biz uni keraksiz shovqin deb hisoblashimiz mumkin.

Umuman olganda, Nexus IQ uchun boshqa noto'g'ri pozitivlar topilmadi.

№4

IQ ni boshqa yechimlardan ajratib turadigan bir qancha jihatlar mavjud.

tarkibiy
Zaiflik
natija

spring-web: 3.0.5
CVE-2020-5398
HAQ

NVDdagi CVEda aytilishicha, u faqat 5.2.x 5.2.3 dan oldingi, 5.1.x 5.1.13 dan oldingi va 5.0.x 5.0.16 dan oldingi versiyalari uchun amal qiladi, ammo agar Nexus IQ da CVE tavsifiga qarasak. , keyin biz quyidagilarni ko'ramiz:
Maslahatdan chetlanish haqida eslatma: Sonatype xavfsizlik tadqiqot guruhi ushbu zaiflik maslahatda aytilganidek 3.0.2.x emas, balki 5.0.RELEASE versiyasida joriy qilinganligini aniqladi.

Buning ortidan ushbu zaiflik uchun PoC keladi, u 3.0.5 versiyasida mavjudligini bildiradi.

Noto'g'ri salbiy Dependency Check va Dependency Track-ga yuboriladi.

№5

Keling, Dependency Check va Dependency Track uchun noto'g'ri musbatni ko'rib chiqaylik.

Bog'liqlik tekshiruvi shu bilan ajralib turadiki, u NVD-ning butun ramkasiga tegishli bo'lgan CVE-larni ushbu CVElar qo'llanilmaydigan komponentlarga aks ettiradi. Bu CVE-2012-0394, CVE-2013-2115, CVE-2014-0114, CVE-2015-0899, CVE-2015-2992, CVE-2016-1181, CVE-2016-1182 “check up”ga bog'liq ” struts-taglibga:1.3.8 va struts-tiles-1.3.8. Ushbu komponentlar CVE-da tasvirlangan narsalarga hech qanday aloqasi yo'q - so'rovni qayta ishlash, sahifani tekshirish va hokazo. Buning sababi, ushbu CVE va komponentlarning umumiyligi faqat ramkadir, shuning uchun Dependency Check uni zaiflik deb hisobladi.

Xuddi shu holat spring-tx: 3.0.5 va shunga o'xshash holat struts-core: 1.3.8. Struts-yadrosi uchun Dependency Check va Dependency Track juda ko'p zaifliklarni topdi, ular aslida alohida ramka bo'lgan struts2-yadro uchun amal qiladi. Bunday holda, Nexus IQ rasmni to'g'ri tushundi va u e'lon qilgan CVE'larda u struts-yadroning ishlash muddati tugashini va struts2-yadroga o'tish kerakligini ko'rsatdi.

№6

Ba'zi hollarda, aniq bog'liqlikni tekshirish va bog'liqlikni kuzatish xatosini izohlash adolatdan emas. Xususan, CVE-2013-4152, CVE-2013-6429, CVE-2013-6430, CVE-2013-7315, CVE-2014-0054, CVE-2014-0225, CVE-2014-0225, qaysi bog'liqlikni tekshirish Spring-core ga tegishli: 3.0.5 aslida spring-web ga tegishli: 3.0.5. Shu bilan birga, ushbu CVE'larning ba'zilari Nexus IQ tomonidan ham topilgan, ammo IQ ularni boshqa komponentga to'g'ri aniqlagan. Ushbu zaifliklar bahor yadrosida topilmaganligi sababli, ular printsipial doirada emasligini ta'kidlab bo'lmaydi va ochiq manbali vositalar bu zaifliklarni to'g'ri ko'rsatdi (ular biroz o'tkazib yuborilgan).

topilmalar

Ko'rib turganimizdek, aniqlangan zaifliklarning ishonchliligini qo'lda ko'rib chiqish orqali aniqlash aniq natijalarni bermaydi, shuning uchun bahsli masalalar paydo bo'ladi. Natijalar shuni ko'rsatadiki, Nexus IQ yechimi eng past noto'g'ri ijobiy ko'rsatkichga va eng yuqori aniqlikka ega.

Avvalo, bu Sonatype jamoasi o'z ma'lumotlar bazalarida NVD dan har bir CVE zaifligi tavsifini kengaytirganligi, komponentlarning ma'lum bir versiyasi uchun sinf yoki funktsiyaga qadar zaifliklarni ko'rsatganligi, qo'shimcha tadqiqotlar o'tkazishi bilan bog'liq (masalan, , dasturiy ta'minotning eski versiyalarida zaifliklarni tekshirish).

Natijalarga NVD-ga kiritilmagan, ammo SONATYPE belgisi bilan Sonatype ma'lumotlar bazasida mavjud bo'lgan zaifliklar ham muhim ta'sir ko'rsatadi. Hisobotga ko'ra Ochiq kodli xavfsizlik zaifliklari holati 2020 Ochiq manbalarning aniqlangan zaifliklarining 45% NVD ga xabar qilinmaydi. WhiteSource ma'lumotlar bazasiga ko'ra, NVD-dan tashqarida xabar qilingan barcha ochiq manba zaifliklarining atigi 29 foizi u erda nashr etiladi, shuning uchun zaifliklarni boshqa manbalarda ham izlash muhim.

Natijada, Dependency Check ba'zi zaif komponentlarni yo'qotib, juda ko'p shovqin chiqaradi. Dependency Track kamroq shovqin ishlab chiqaradi va ko'p sonli komponentlarni aniqlaydi, bu veb-interfeysda ko'zni vizual ravishda shikastlamaydi.

Biroq, amaliyot shuni ko'rsatadiki, ochiq manba etuk DevSecOps sari birinchi qadamlarga aylanishi kerak. SCAni ishlab chiqishga integratsiyalashda siz o'ylashingiz kerak bo'lgan birinchi narsa - bu jarayonlar, ya'ni menejment va tegishli bo'limlar bilan birgalikda tashkilotingizdagi ideal jarayonlar qanday bo'lishi kerakligi haqida o'ylash. Tashkilotingiz uchun dastlab Dependency Check yoki Dependency Track biznesning barcha ehtiyojlarini qoplaydi va Enterprise yechimlari ishlab chiqilayotgan ilovalarning murakkabligi oshib borishi sababli mantiqiy davomi bo'lishi mumkin.

Ilova A: Komponent natijalari
Shartli belgilar:

  • Komponentdagi yuqori - yuqori va tanqidiy darajadagi zaifliklar
  • O'rta - Komponentdagi o'rtacha kritiklik darajasidagi zaifliklar
  • TRUE - Haqiqiy ijobiy masala
  • FALSE - noto'g'ri ijobiy masala

tarkibiy
Nexus IQ
Tobelikni tekshirish
Tobelik treki
natija

dom4j: 1.6.1
baland
baland
baland
HAQ

log4j yadrosi: 2.3
baland
baland
baland
HAQ

log4j: 1.2.14
baland
baland
-
HAQ

umumiy to'plamlar: 3.1
baland
baland
baland
HAQ

commons-fileupload: 1.3.2
baland
baland
baland
HAQ

Commons-beanutils: 1.7.0
baland
baland
baland
HAQ

commons-codec: 1:10
o'rta
-
-
HAQ

mysql-ulagichi-java: 5.1.42
baland
baland
baland
HAQ

bahor ifodasi: 3.0.5
baland
komponent topilmadi

HAQ

spring-web: 3.0.5
baland
komponent topilmadi
baland
HAQ

bahor konteksti: 3.0.5
o'rta
komponent topilmadi
-
HAQ

bahor yadrosi: 3.0.5
o'rta
baland
baland
HAQ

struts2-config-brauzer-plagin: 2.3.30
o'rta
-
-
HAQ

spring-tx: 3.0.5
-
baland
-
FALSE

struts-yadro: 1.3.8
baland
baland
baland
HAQ

xwork-core: 2.3.30
baland
-
-
HAQ

struts2 yadroli: 2.3.30
baland
baland
baland
HAQ

struts-taglib: 1.3.8
-
baland
-
FALSE

struts-plitkalar-1.3.8
-
baland
-
FALSE

Ilova B: Zaiflik natijalari
Shartli belgilar:

  • Komponentdagi yuqori - yuqori va tanqidiy darajadagi zaifliklar
  • O'rta - Komponentdagi o'rtacha kritiklik darajasidagi zaifliklar
  • TRUE - Haqiqiy ijobiy masala
  • FALSE - noto'g'ri ijobiy masala

tarkibiy
Nexus IQ
Tobelikni tekshirish
Tobelik treki
Zo'ravonlik
natija
izoh

dom4j: 1.6.1
CVE-2018-1000632
CVE-2018-1000632
CVE-2018-1000632
baland
HAQ

CVE-2020-10683
CVE-2020-10683
CVE-2020-10683
baland
HAQ

log4j yadrosi: 2.3
CVE-2017-5645
CVE-2017-5645
CVE-2017-5645
baland
HAQ

CVE-2020-9488
CVE-2020-9488
CVE-2020-9488
past
HAQ

log4j: 1.2.14
CVE-2019-17571
CVE-2019-17571
-
baland
HAQ

-
CVE-2020-9488
-
past
HAQ

SONATYPE-2010-0053
-
-
baland
HAQ

umumiy to'plamlar: 3.1
-
CVE-2015-6420
CVE-2015-6420
baland
FALSE
RCE (OSSINDEX) nusxalari

-
CVE-2017-15708
CVE-2017-15708
baland
FALSE
RCE (OSSINDEX) nusxalari

SONATYPE-2015-0002
RCE (OSSINDEX)
RCE(OSSINDEX)
baland
HAQ

commons-fileupload: 1.3.2
CVE-2016-1000031
CVE-2016-1000031
CVE-2016-1000031
baland
HAQ

SONATYPE-2014-0173
-
-
o'rta
HAQ

Commons-beanutils: 1.7.0
CVE-2014-0114
CVE-2014-0114
CVE-2014-0114
baland
HAQ

-
CVE-2019-10086
CVE-2019-10086
baland
FALSE
Zaiflik faqat 1.9.2+ versiyalari uchun amal qiladi

commons-codec: 1:10
SONATYPE-2012-0050
-
-
o'rta
HAQ

mysql-ulagichi-java: 5.1.42
CVE-2018-3258
CVE-2018-3258
CVE-2018-3258
baland
HAQ

CVE-2019-2692
CVE-2019-2692
-
o'rta
HAQ

-
CVE-2020-2875
-
o'rta
FALSE
CVE-2019-2692 bilan bir xil zaiflik, ammo "hujumlar qo'shimcha mahsulotlarga sezilarli darajada ta'sir qilishi mumkin" eslatmasi bilan

-
CVE-2017-15945
-
baland
FALSE
MySQL-connector-java-ga tegishli emas

-
CVE-2020-2933
-
past
FALSE
CVE-2020-2934 dublikati

CVE-2020-2934
CVE-2020-2934
-
o'rta
HAQ

bahor ifodasi: 3.0.5
CVE-2018-1270
komponent topilmadi
-
baland
HAQ

CVE-2018-1257
-
-
o'rta
HAQ

spring-web: 3.0.5
CVE-2016-1000027
komponent topilmadi
-
baland
HAQ

CVE-2014-0225
-
CVE-2014-0225
baland
HAQ

CVE-2011-2730
-
-
baland
HAQ

-
-
CVE-2013-4152
o'rta
HAQ

CVE-2018-1272
-
-
baland
HAQ

CVE-2020-5398
-
-
baland
HAQ
IQ foydasiga yorqin misol: “Sonatype xavfsizlik tadqiqot guruhi ushbu zaiflik maslahatda aytilganidek 3.0.2.x emas, balki 5.0.RELEASE versiyasida joriy qilinganligini aniqladi.”

CVE-2013-6429
-
-
o'rta
HAQ

CVE-2014-0054
-
CVE-2014-0054
o'rta
HAQ

CVE-2013-6430
-
-
o'rta
HAQ

bahor konteksti: 3.0.5
CVE-2011-2894
komponent topilmadi
-
o'rta
HAQ

bahor yadrosi: 3.0.5
-
CVE-2011-2730
CVE-2011-2730
baland
HAQ

CVE-2011-2894
CVE-2011-2894
CVE-2011-2894
o'rta
HAQ

-
-
CVE-2013-4152
o'rta
FALSE
Spring-web-da bir xil zaiflikning dublikati

-
CVE-2013-4152
-
o'rta
FALSE
Zaiflik spring-web komponentiga tegishli

-
CVE-2013-6429
CVE-2013-6429
o'rta
FALSE
Zaiflik spring-web komponentiga tegishli

-
CVE-2013-6430
-
o'rta
FALSE
Zaiflik spring-web komponentiga tegishli

-
CVE-2013-7315
CVE-2013-7315
o'rta
FALSE
CVE-2013-4152 dan SPLIT. + Zaiflik spring-web komponentiga tegishli

-
CVE-2014-0054
CVE-2014-0054
o'rta
FALSE
Zaiflik spring-web komponentiga tegishli

-
CVE-2014-0225
-
baland
FALSE
Zaiflik spring-web komponentiga tegishli

-
-
CVE-2014-0225
baland
FALSE
Spring-web-da bir xil zaiflikning dublikati

-
CVE-2014-1904
CVE-2014-1904
o'rta
FALSE
Zaiflik spring-web-mvc komponentiga tegishli

-
CVE-2014-3625
CVE-2014-3625
o'rta
FALSE
Zaiflik spring-web-mvc komponentiga tegishli

-
CVE-2016-9878
CVE-2016-9878
baland
FALSE
Zaiflik spring-web-mvc komponentiga tegishli

-
CVE-2018-1270
CVE-2018-1270
baland
FALSE
Bahor-ifoda/bahor-xabarlar uchun

-
CVE-2018-1271
CVE-2018-1271
o'rta
FALSE
Zaiflik spring-web-mvc komponentiga tegishli

-
CVE-2018-1272
CVE-2018-1272
baland
HAQ

CVE-2014-3578
CVE-2014-3578 (OSSINDEX)
CVE-2014-3578
o'rta
HAQ

SONATYPE-2015-0327
-
-
past
HAQ

struts2-config-brauzer-plagin: 2.3.30
SONATYPE-2016-0104
-
-
o'rta
HAQ

spring-tx: 3.0.5
-
CVE-2011-2730
-
baland
FALSE
Zaiflik spring-tx ga xos emas

-
CVE-2011-2894
-
baland
FALSE
Zaiflik spring-tx ga xos emas

-
CVE-2013-4152
-
o'rta
FALSE
Zaiflik spring-tx ga xos emas

-
CVE-2013-6429
-
o'rta
FALSE
Zaiflik spring-tx ga xos emas

-
CVE-2013-6430
-
o'rta
FALSE
Zaiflik spring-tx ga xos emas

-
CVE-2013-7315
-
o'rta
FALSE
Zaiflik spring-tx ga xos emas

-
CVE-2014-0054
-
o'rta
FALSE
Zaiflik spring-tx ga xos emas

-
CVE-2014-0225
-
baland
FALSE
Zaiflik spring-tx ga xos emas

-
CVE-2014-1904
-
o'rta
FALSE
Zaiflik spring-tx ga xos emas

-
CVE-2014-3625
-
o'rta
FALSE
Zaiflik spring-tx ga xos emas

-
CVE-2016-9878
-
baland
FALSE
Zaiflik spring-tx ga xos emas

-
CVE-2018-1270
-
baland
FALSE
Zaiflik spring-tx ga xos emas

-
CVE-2018-1271
-
o'rta
FALSE
Zaiflik spring-tx ga xos emas

-
CVE-2018-1272
-
o'rta
FALSE
Zaiflik spring-tx ga xos emas

struts-yadro: 1.3.8
-
CVE-2011-5057 (OSSINDEX)

o'rta
FASLE
Struts 2 uchun zaiflik

-
CVE-2012-0391 (OSSINDEX)
CVE-2012-0391
baland
FALSE
Struts 2 uchun zaiflik

-
CVE-2014-0094 (OSSINDEX)
CVE-2014-0094
o'rta
FALSE
Struts 2 uchun zaiflik

-
CVE-2014-0113 (OSSINDEX)
CVE-2014-0113
baland
FALSE
Struts 2 uchun zaiflik

CVE-2016-1182
3VE-2016-1182
-
baland
HAQ

-
-
CVE-2011-5057
o'rta
FALSE
Struts 2 uchun zaiflik

-
CVE-2012-0392 (OSSINDEX)
CVE-2012-0392
baland
FALSE
Struts 2 uchun zaiflik

-
CVE-2012-0393 (OSSINDEX)
CVE-2012-0393
o'rta
FALSE
Struts 2 uchun zaiflik

CVE-2015-0899
CVE-2015-0899
-
baland
HAQ

-
CVE-2012-0394
CVE-2012-0394
o'rta
FALSE
Struts 2 uchun zaiflik

-
CVE-2012-0838 (OSSINDEX)
CVE-2012-0838
baland
FALSE
Struts 2 uchun zaiflik

-
CVE-2013-1965 (OSSINDEX)
CVE-2013-1965
baland
FALSE
Struts 2 uchun zaiflik

-
CVE-2013-1966 (OSSINDEX)
CVE-2013-1966
baland
FASLE
Struts 2 uchun zaiflik

-
CVE-2013-2115
CVE-2013-2115
baland
FASLE
Struts 2 uchun zaiflik

-
CVE-2013-2134 (OSSINDEX)
CVE-2013-2134
baland
FASLE
Struts 2 uchun zaiflik

-
CVE-2013-2135 (OSSINDEX)
CVE-2013-2135
baland
FASLE
Struts 2 uchun zaiflik

CVE-2014-0114
CVE-2014-0114
-
baland
HAQ

-
CVE-2015-2992
CVE-2015-2992
o'rta
FALSE
Struts 2 uchun zaiflik

-
CVE-2016-0785 (OSSINDEX)
CVE-2016-0785
baland
FALSE
Struts 2 uchun zaiflik

CVE-2016-1181
CVE-2016-1181
-
baland
HAQ

-
CVE-2016-4003 (OSSINDEX)
CVE-2016-4003
baland
FALSE
Struts 2 uchun zaiflik

xwork-core: 2.3.30
CVE-2017-9804
-
-
baland
HAQ

SONATYPE-2017-0173
-
-
baland
HAQ

CVE-2017-7672
-
-
baland
FALSE
CVE-2017-9804 dublikati

SONATYPE-2016-0127
-
-
baland
HAQ

struts2-yadro: 2.3.30
-
CVE-2016-6795
CVE-2016-6795
baland
HAQ

-
CVE-2017-9787
CVE-2017-9787
baland
HAQ

-
CVE-2017-9791
CVE-2017-9791
baland
HAQ

-
CVE-2017-9793
-
baland
FALSE
CVE-2018-1327 dublikati

-
CVE-2017-9804
-
baland
HAQ

-
CVE-2017-9805
CVE-2017-9805
baland
HAQ

CVE-2016-4003
-
-
o'rta
FALSE
Apache Struts 2.x dan 2.3.28 gacha, ya'ni 2.3.30 versiyasi uchun amal qiladi. Biroq, tavsifga asoslanib, agar JRE 2 yoki undan kamroq foydalanilgan bo'lsa, CVE Struts 1.7 ning har qanday versiyasi uchun amal qiladi. Ko'rinishidan, ular bizni bu erda qayta sug'urtalashga qaror qilishdi, lekin bu ko'proq FALSEga o'xshaydi

-
CVE-2018-1327
CVE-2018-1327
baland
HAQ

CVE-2017-5638
CVE-2017-5638
CVE-2017-5638
baland
HAQ
Equifax xakerlari 2017 yilda foydalangan zaiflikdan

CVE-2017-12611
CVE-2017-12611
-
baland
HAQ

CVE-2018-11776
CVE-2018-11776
CVE-2018-11776
baland
HAQ

struts-taglib: 1.3.8
-
CVE-2012-0394
-
o'rta
FALSE
2 yadroli struts uchun

-
CVE-2013-2115
-
baland
FALSE
2 yadroli struts uchun

-
CVE-2014-0114
-
baland
FALSE
Commons-beanutils uchun

-
CVE-2015-0899
-
baland
FALSE
Taglibga taalluqli emas

-
CVE-2015-2992
-
o'rta
FALSE
Struts2-yadroga ishora qiladi

-
CVE-2016-1181
-
baland
FALSE
Taglibga taalluqli emas

-
CVE-2016-1182
-
baland
FALSE
Taglibga taalluqli emas

struts-plitkalar-1.3.8
-
CVE-2012-0394
-
o'rta
FALSE
2 yadroli struts uchun

-
CVE-2013-2115
-
baland
FALSE
2 yadroli struts uchun

-
CVE-2014-0114
-
baland
FALSE
Commons-beanutils ostida

-
CVE-2015-0899
-
baland
FALSE
Plitkalarga taalluqli emas

-
CVE-2015-2992
-
o'rta
FALSE
2 yadroli struts uchun

-
CVE-2016-1181
-
baland
FALSE
Taglibga taalluqli emas

-
CVE-2016-1182
-
baland
FALSE
Taglibga taalluqli emas

Manba: www.habr.com

a Izoh qo'shish