DevSecOps: SCA-nın iş prinsipləri və müqayisəsi. Birinci hissə

Synopsys, Sonatype, Snyk, White Source tərəfindən dərc edilən açıq mənbəli kitabxanaların zəiflikləri haqqında illik hesabatların buraxılması ilə inkişaf prosesində üçüncü tərəf proqram komponentlərinin təhlilinin (İngilis dili Proqram Tərkibi Analizi - SCA) əhəmiyyəti artır. Məlumata görə Açıq Mənbə Təhlükəsizlik Zəifliklərinin Vəziyyəti 2020 2019-cu ildə açıq mənbədə aşkar edilmiş zəifliklərin sayı əvvəlki ilə nisbətən təxminən 1.5 dəfə artıb, açıq mənbə komponentləri layihələrin 60%-80%-i tərəfindən istifadə olunur. Müstəqil rəyə görə, SCA prosesləri yetkinlik göstəricisi kimi OWASP SAMM və BSIMM-dən ayrı bir təcrübədir və 2020-ci ilin birinci yarısında OWASP üçüncü tərəflərin yoxlanılması üçün ən yaxşı təcrübələri təmin edən yeni OWASP Proqram Komponentinin Yoxlanması Standartını (SCVS) buraxdı. təchizat zəncirindəki komponentlər BY.

DevSecOps: SCA-nın iş prinsipləri və müqayisəsi. Birinci hissə

Ən nümunəvi hallardan biri meydana gəldi 2017-ci ilin may ayında Equifax ilə. Naməlum hücumçular 143 milyon amerikalı haqqında tam adlar, ünvanlar, sosial təminat nömrələri və sürücülük vəsiqələri daxil olmaqla məlumat əldə ediblər. 209 000 işdə sənədlərə zərərçəkmişlərin bank kartları ilə bağlı məlumatlar da daxil edilib. Bu sızma Apache Struts 2-də (CVE-2017-5638) kritik zəifliyin istismarı nəticəsində baş verib, halbuki düzəliş 2017-ci ilin martında buraxılıb. Şirkət yeniləməni quraşdırmaq üçün iki ay vaxt verdi, lakin heç kim bu barədə narahat olmadı.

Bu məqalədə təhlil nəticələrinin keyfiyyəti baxımından SCA-nın aparılması üçün alətin seçilməsi məsələsi müzakirə olunacaq. Alətlərin funksional müqayisəsi də veriləcək. Biz CI / CD-yə yerləşdirmə prosesini və sonrakı nəşrlər üçün inteqrasiya imkanlarını tərk edəcəyik. OWASP tərəfindən geniş çeşidli alətlər təqdim edilmişdir saytınızda, lakin cari icmalın bir hissəsi olaraq biz yalnız ən populyar açıq mənbə Dependency Check alətinə, bir qədər az tanınmış açıq mənbə Dependency Track platformasına və Sonatype Nexus IQ Enterprise həllinə toxunacağıq. Bu həllərin necə işlədiyini də anlayacağıq və əldə edilən nəticələri yanlış pozitivlər üçün müqayisə edəcəyik.

DevSecOps: SCA-nın iş prinsipləri və müqayisəsi. Birinci hissə

Əməliyyat prinsipi

Asılılıq yoxlanışı layihə fayllarını təhlil edən, asılılıqlar (paket adı, qrup adı, spesifikasiya başlığı, versiya ...) haqqında məlumat fraqmentlərini toplayan, CPE sətrini yaradan bir yardım proqramıdır (CLI, maven, jenkins modulu, ant) ​​- (Common Platform Enumeration) ), Paket URL (PURL) və verilənlər bazalarından CPE/PURL üçün zəiflikləri aşkar edir (NVD, Sonatype OSS Index, NPM Audit API...), bundan sonra HTML, JSON, XML formatında birdəfəlik hesabat qurur...

CPE-nin necə göründüyünü düşünün:

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

  • Part: Komponentin proqrama (a), əməliyyat sisteminə (o), aparata (h) aid olduğunun göstəricisi (Tələb olunan element)
  • Satıcı: Məhsulun istehsalçısının adı (Tələb olunan maddə)
  • Product: Məhsulun Adı (Tələb olunur)
  • Version: Komponent versiyası (köhnəlmiş element)
  • Update: Paket yeniləməsi
  • Edition: Miras alınmış versiya (köhnəlmiş element)
  • Dil: RFC-5646-da müəyyən edilmiş dil
  • SW Buraxılışı: Proqram təminatı versiyası
  • Hədəf SW: Məhsulun işlədiyi proqram mühiti
  • Hədəf HW: Məhsulun işlədiyi aparat mühiti
  • Digər: Təchizatçı və ya məhsul haqqında məlumat

CPE nümunəsi belə görünür:

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

Sətir o deməkdir ki, CPE versiyası 2.3 istehsalçının proqram komponentini təsvir edir pivotal_software başlığı ilə spring_framework 3.0.0 versiyası. Bir zəiflik açsaq CVE-2014-0225 NVD-də bu CPE-nin qeyd edildiyini görə bilərik. Dərhal diqqət etməli olduğunuz ilk problem, NVD-də CVE-nin, CPE-ə görə, müəyyən bir komponentdə deyil, çərçivədə bir problemin olması barədə məlumat verməsidir. Yəni, tərtibatçılar çərçivəyə möhkəm bağlıdırsa və müəyyən edilmiş zəiflik tərtibatçıların istifadə etdiyi modullara aid deyilsə, təhlükəsizlik mütəxəssisi bu CVE-ni birtəhər sökməli və yeniləmə haqqında düşünməli olacaq.

URL həmçinin SCA alətləri tərəfindən istifadə olunur. Paket URL formatı aşağıdakı kimidir:

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

  • Sxem: Bunun paket URL'si olduğunu göstərən həmişə "pkg" olacaq (Tələb olunur)
  • Növü: Paketin "növü" və ya paketin "protokolu", məsələn, maven, npm, nuget, gem, pypi və s. (tələb olunan maddə)
  • Ad sahəsi: Bəzi ad prefiksi, məsələn, Maven qrup ID-si, Docker şəkil sahibi, GitHub istifadəçisi və ya təşkilatı. Könüllüdür və növündən asılıdır.
  • Adı: Paket Adı (Tələb olunur)
  • Version: Paket versiyası
  • Qualifiers: Paket üçün əlavə kvalifikasiya məlumatları, məsələn, OS, arxitektura, paylama və s. Könüllü və tipə uyğun element.
  • alt yol: Paketin kökünə nisbətən paketdəki əlavə yol

Misal üçün:

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

Asılılıq İzi — yaradılan hazır Materiallar Hesabatını (BOM) qəbul edən yerli veb platforması CycloneDX и SPDX, yəni mövcud asılılıqlar haqqında hazır spesifikasiyalar. Bu, asılılıqların təsviri olan XML faylıdır - ad, hashlər, paket url-si, nəşriyyatçı, lisenziya. Sonra, Dependency Track BOM-u təhlil edir, zəiflik verilənlər bazasından (NVD, Sonatype OSS Index ...) müəyyən edilmiş asılılıqlar üçün mövcud CVE-lərə baxır və sonra qrafiklər qurur, metrikləri hesablayır, komponentlərin zəiflik statusu haqqında məlumatları müntəzəm olaraq yeniləyir. .

XML formatında BOM-un necə görünə biləcəyinə bir nümunə:

<?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 yalnız Dependency Track üçün giriş parametrləri kimi deyil, həm də təchizat zəncirində proqram komponentlərinin inventarlaşdırılması üçün, məsələn, müştəriyə proqram təminatı vermək üçün istifadə edilə bilər. 2014-cü ildə hətta ABŞ-da baxılmaq üçün qanun təklif edildi "2014-cü il Kiber Təchizat Zəncirinin İdarə Edilməsi və Şəffaflıq Aktı", hansı ki, proqram təminatı alarkən hər hansı bir dövlət. bir qurum həssas komponentlərin istifadəsinin qarşısını almaq üçün BOM-a müraciət etməlidir, lakin akt qüvvəyə minməmişdir.

SCA-ya qayıdaq, Dependency Track Slack kimi Bildiriş Platformaları, Kenna Security kimi zəifliyin idarə edilməsi sistemləri ilə qeyri-standart inteqrasiyalara malikdir. Onu da qeyd etmək lazımdır ki, Dependency Track paketlərin köhnəlmiş versiyalarını da aşkarlayır və lisenziyalar haqqında məlumat verir (SPDX dəstəyi sayəsində).

Konkret olaraq SCA-nın keyfiyyətindən danışırıqsa, onda əsaslı fərq var.

Dependency Track layihəni giriş kimi qəbul etmir, əksinə BOM kimi qəbul edir. Bu o deməkdir ki, biz layihəni sınaqdan keçirmək istəyiriksə, ilk növbədə, məsələn, CycloneDX ilə bom.xml yaratmalıyıq. Beləliklə, Dependency Track birbaşa CycloneDX-dən asılıdır. Eyni zamanda, fərdiləşdirməyə imkan verir. Belə ki, OZON komandası yazıb CycloneDX modulu Dependency Track vasitəsilə sonrakı skan etmək üçün Golang layihələri üçün BOM faylları yaratmaq.

Nexus IQ Nexus Repozitoriya Meneceri də daxil olan Sonatype ekosisteminin bir hissəsi olan Sonatype-dən kommersiya SCA həllidir. Nexus IQ həm müharibə arxivini (java layihələri üçün) veb interfeysi və ya API vasitəsilə, həm də təşkilatınızın CycloneDX-dən yeni həllə keçməyə vaxtı yoxdursa, BOM-u qəbul edə bilər. Açıq mənbə həllərindən fərqli olaraq, IQ yalnız müəyyən edilmiş komponentə CP / PURL-ə və verilənlər bazasında müvafiq zəifliyə istinad etmir, həm də öz tədqiqatını, məsələn, həssas funksiya və ya sinifin adını nəzərə alır. İQ-nin mexanizmləri nəticələrin təhlilində daha sonra müzakirə olunacaq.

Bəzi funksional xüsusiyyətləri ümumiləşdirək, həmçinin təhlil üçün dəstəklənən dilləri nəzərdən keçirək:

Dil
Nexus IQ
Asılılıq yoxlanışı
Asılılıq İzi

Java
+
+
+

C / C ++
+
+
-

C#
+
+
-

. Net
+
+
+

Erlanq
-
-
+

JavaScript (NodeJS)
+
+
+

PHP
+
+
+

Python
+
+
+

yaqut
+
+
+

Perl
-
-
-

Scala
+
+
+

Məqsəd C
+
+
-

Cəld
+
+
-

R
+
-
-

Go
+
+
+

İşlevsellik

İşlevsellik
Nexus IQ
Asılılıq yoxlanışı
Asılılıq İzi

Mənbə kodunda istifadə olunan komponentlərin lisenziya təmizliyi üçün yoxlanılmasını təmin etmək imkanı
+
-
+

Zəiflikləri skan etmək və təhlil etmək bacarığı və Docker şəkilləri üçün lisenziya təmizliyi
+ Clair ilə inteqrasiya
-
-

Açıq mənbəli kitabxanalardan istifadə etmək üçün təhlükəsizlik siyasətini konfiqurasiya etmək imkanı
+
-
-

Həssas komponentlər üçün açıq mənbə depolarını skan etmək imkanı
+ RubyGems, Maven, NPM, Nuget, Pypi, Conan, Bower, Conda, Go, p2, R, Yum, Helm, Docker, CocoaPods, Git LFS
-
+ Hex, RubyGems, Maven, NPM, Nuget, Pypi

Xüsusi tədqiqat qrupunun mövcudluğu
+
-
-

Qapalı dövrədə işləmə
+
+
+

Üçüncü tərəf verilənlər bazalarından istifadə
+ Sonatype qapalı verilənlər bazası
+ Sonatype OSS, NPM İctimai Məsləhətçiləri
+ Sonatype OSS, NPM Public Advisors, RetireJS, VulnDB, öz zəiflik verilənlər bazası dəstəyi

Konfiqurasiya edilmiş siyasətlərə uyğun olaraq inkişaf dövrəsinə yükləməyə cəhd edərkən açıq mənbə komponentlərini filtrləmək imkanı
+
-
-

Zəifliklərin aradan qaldırılması üçün tövsiyələr, düzəliş üçün keçidlərin mövcudluğu
+
+- (ictimai verilənlər bazasındakı təsvirdən asılıdır)
+- (ictimai verilənlər bazasındakı təsvirdən asılıdır)

Aşkar edilmiş zəifliklərin kritikliyə görə sıralanması
+
+
+

Rol giriş modeli
+
-
+

CLI dəstəyi
+
+
+- (yalnız CycloneDX)

Müəyyən edilmiş meyarlara uyğun olaraq zəifliklərin seçilməsi/çeşidlənməsi
+
-
+

Tətbiq Statusuna görə İdarə Paneli
+
-
+

PDF formatında hesabatın yaradılması
+
-
-

JSONCSV formatında hesabatın yaradılması
+
+
-

Rus dili dəstəyi
-
-
-

İnteqrasiya variantları

İnteqrasiya
Nexus IQ
Asılılıq yoxlanışı
Asılılıq İzi

LDAP/Active Directory ilə inteqrasiya
+
-
+

Bambuk davamlı inteqrasiya inteqrasiyası
+
-
-

Davamlı inteqrasiya sistemi (davamlı inteqrasiya) TeamCity ilə inteqrasiya
+
-
-

Davamlı inteqrasiya sistemi (davamlı inteqrasiya) GitLab ilə inteqrasiya
+
+- (GitLab üçün plagin kimi)
+

Davamlı inteqrasiya sistemi ilə inteqrasiya (davamlı inteqrasiya) Jenkins
+
+
+

IDE plaginlərinin mövcudluğu
+ IntelliJ, Eclipse, Visual Studio
-
-

Alətin veb-xidmətləri (API) vasitəsilə fərdi inteqrasiyaya dəstək
+
-
+

Asılılıq yoxlanışı

İlk başlanğıc

Qəsdən həssas tətbiqdə Asılılıq Yoxlanmasını işə salın DVJA.

Bunun üçün istifadə edirik Asılılığı yoxlayan Maven Plugin:

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

Nəticədə, dependency-check-report.html hədəf kataloqda görünəcək.

DevSecOps: SCA-nın iş prinsipləri və müqayisəsi. Birinci hissə

Faylı açaq. Boşluqların ümumi sayının xülasəsindən sonra paketi, CPE-ni, CVE-lərin sayını göstərən yüksək Ciddilik və Etibarlılıq səviyyəsinə malik zəifliklər haqqında məlumat görə bilərik.

Daha ətraflı məlumat, xüsusən də qərarın (sübutların), yəni müəyyən bir BOM-un verildiyi əsasında verilir.

DevSecOps: SCA-nın iş prinsipləri və müqayisəsi. Birinci hissə

Sonra CPE, PURL və CVE təsviri gəlir. Yeri gəlmişkən, fiksasiya üçün tövsiyələr NVD verilənlər bazasında olmadığı üçün əlavə edilmir.

DevSecOps: SCA-nın iş prinsipləri və müqayisəsi. Birinci hissə

Skan nəticələrinə sistematik baxmaq üçün siz Nginx-i minimal parametrlərlə konfiqurasiya edə və ya alınan qüsurları Dependency Check konnektorlarını dəstəkləyən qüsur idarəetmə sisteminə göndərə bilərsiniz. Məsələn, Defect Dojo.

Asılılıq İzi

Quraşdırma

Dependency Track, öz növbəsində, displey qrafikləri olan veb əsaslı platformadır, buna görə də üçüncü tərəfin həllində qüsurların saxlanması ilə bağlı kəskin problem yoxdur.
Quraşdırma üçün aşağıdakı dəstəklənən ssenarilər var: Docker, WAR, Executable WAR.

İlk başlanğıc

Çalışan xidmətin URL-inə keçin. Admin / admin vasitəsilə daxil oluruq, giriş və şifrəni dəyişirik, bundan sonra İdarə panelinə daxil oluruq. Növbəti işimiz Java test tətbiqi üçün layihə yaratmaqdır Əsas səhifə/Layihələr → Layihə yaradın . Nümunə olaraq DVJA-nı götürək.

DevSecOps: SCA-nın iş prinsipləri və müqayisəsi. Birinci hissə

Dependency Track yalnız BOM-u giriş kimi qəbul edə bildiyinə görə, bu BOM bərpa edilməlidir. istifadə edək CycloneDX Maven Plugin:

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

Biz bom.xml əldə edirik və faylı yaradılmış layihəyə yükləyirik DVJA → Asılılıqlar → BOM yükləyin.

Gəlin İdarəetmə → Analizatorlara gedək. Biz başa düşürük ki, bizdə yalnız NVD daxil olmaqla Daxili Analizatoru aktivləşdirmişik. Sonatype OSS Index-i də birləşdirək.

DevSecOps: SCA-nın iş prinsipləri və müqayisəsi. Birinci hissə

Beləliklə, layihəmiz üçün aşağıdakı şəkli alırıq:

DevSecOps: SCA-nın iş prinsipləri və müqayisəsi. Birinci hissə

Həmçinin siyahıda Sonatype OSS-ə aid bir zəifliyi tapa bilərsiniz:

DevSecOps: SCA-nın iş prinsipləri və müqayisəsi. Birinci hissə

Əsas məyusluq ondan ibarət idi ki, Dependency Track artıq Dependency Check xml hesabatlarını qəbul etmir. Dependency Check inteqrasiyasının ən son dəstəklənən versiyaları 1.0.0 - 4.0.2 idi, mən 5.3.2-ni sınaqdan keçirdim.

Burada video (və burada) hələ mümkün olanda.

Nexus IQ

İlk başlanğıc

Nexus IQ quraşdırılması proqram arxivindən gəlir sənədləşdirmə, lakin biz bu məqsədlə Docker şəklini tərtib etdik.

Konsola daxil olduqdan sonra siz Təşkilat və Tətbiq yaratmalısınız.

DevSecOps: SCA-nın iş prinsipləri və müqayisəsi. Birinci hissə

DevSecOps: SCA-nın iş prinsipləri və müqayisəsi. Birinci hissə

DevSecOps: SCA-nın iş prinsipləri və müqayisəsi. Birinci hissə

Gördüyünüz kimi, IQ vəziyyətində konfiqurasiya bir qədər mürəkkəbdir, çünki biz həm də müxtəlif “mərhələlərə” (inkişaf, qurma, mərhələ, buraxılış) aid olan siyasətlər yaratmalıyıq. Bu, həssas komponentləri istehsal boru kəmərinə yaxınlaşdıqda bloklamaq və ya tərtibatçılar tərəfindən yükləndikdə Nexus Repo-ya daxil olan kimi bloklamaq üçün lazımdır.

Açıq mənbə və müəssisə arasındakı fərqi hiss etmək üçün gəlin Nexus IQ vasitəsilə eyni taramanı eyni şəkildə həyata keçirək. Maven plagini, əvvəllər NexusIQ interfeysində sınaq proqramı yaratmış 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 interfeysində yaradılan hesabatın URL-ni izləyin:

DevSecOps: SCA-nın iş prinsipləri və müqayisəsi. Birinci hissə

Burada müxtəlif ciddilik səviyyələrində (Məlumatdan Təhlükəsizlik Kritikinə qədər) bütün siyasət pozuntularını görə bilərsiniz. Komponentin yanındakı D hərfi komponentin Birbaşa Asılılıq, komponentin yanındakı T hərfi isə komponentin Transitiv Asılılıq, yəni keçid olduğunu bildirir.

Yeri gəlmişkən, hesabat Açıq Mənbə Təhlükəsizliyinin Vəziyyəti Hesabatı 2020 Snyk-dən bildirir ki, Node.js, Java və Ruby-də aşkar edilmiş açıq mənbə zəifliklərinin 70%-dən çoxu keçid asılılıqlarındadır.

Nexus IQ siyasətinin pozulmasından birini açsaq, komponentin təsvirini, eləcə də vaxt qrafikində cari versiyanın yerini göstərən Versiya Qrafikini, eləcə də zəifliyin hansı nöqtədə dayandırıldığını görə bilərik. həssas olmaq. Qrafikdəki şamların hündürlüyü bu komponentdən istifadənin populyarlığını göstərir.

DevSecOps: SCA-nın iş prinsipləri və müqayisəsi. Birinci hissə

Zəifliklər bölməsinə keçib CVE-ni açsanız, bu zəifliyin təsviri, aradan qaldırılması üçün tövsiyələr, həmçinin bu komponentin pozulma səbəbi, yəni sinfin mövcudluğu ilə tanış ola bilərsiniz. DiskFileitem.class.

DevSecOps: SCA-nın iş prinsipləri və müqayisəsi. Birinci hissə

DevSecOps: SCA-nın iş prinsipləri və müqayisəsi. Birinci hissə

js komponentlərini silməklə yalnız üçüncü tərəf Java komponentlərini ümumiləşdirək. Mötərizədə NVD-dən kənarda aşkar edilmiş zəifliklərin sayını göstəririk.

Ümumi Nexus IQ:

  • Skan edilmiş asılılıqlar: 62
  • Həssas Asılılıqlar: 16
  • Tapılan boşluqlar: 42 (8 sonatip db)

Ümumi asılılıq yoxlanışı:

  • Skan edilmiş asılılıqlar: 47
  • Həssas Asılılıqlar: 13
  • Tapılan boşluqlar: 91 (14 sonatip oss)

Ümumi Asılılıq İzi:

  • Skan edilmiş asılılıqlar: 59
  • Həssas Asılılıqlar: 10
  • Tapılan boşluqlar: 51 (1 sonatip oss)

Növbəti addım nəticələri təhlil etmək və bu zəifliklərdən hansının real qüsur, hansının yanlış müsbət olduğunu müəyyən etməkdir.

İmtina

Bu baxış danılmaz həqiqət deyil. Müəllifin başqalarının fonunda ayrıca bir aləti ayırmaq məqsədi yox idi. İcmalın məqsədi SCA alətlərinin necə işlədiyini və onların nəticələrinin yoxlanılmasını göstərmək idi.

Nəticələrin müqayisəsi

Qaydalar və şərtlər:

Üçüncü tərəf komponent zəiflikləri üçün yanlış pozitivlər:

  • Müəyyən edilmiş komponentə CVE uyğunsuzluğu
  • Məsələn, əgər struts2 çərçivəsində zəiflik aşkar edilərsə və alət bu zəiflikdən təsirlənməyən struts-plitələr çərçivəsinin komponentinə işarə edirsə, bu yanlış müsbətdir.
  • Aşkar edilmiş komponent versiyasına CVE uyğunsuzluğu
  • Məsələn, zəiflik python versiyası > 3.5 ilə bağlıdır və alət 2.7 versiyasını həssas kimi qeyd edir - bu, yanlış müsbətdir, çünki əslində zəiflik yalnız 3.x məhsul bölməsinə aiddir.
  • CVE-lərin təkrarlanması
  • Məsələn, SCA RCE-nin həyata keçirilməsinə imkan verən CVE-yə işarə edirsə, SCA həmin RCE-yə tabe olan Cisco məhsullarına tətbiq edilən eyni CVE-yə işarə edir. Bu halda, yalan müsbət olacaq.
  • Məsələn, spring-web komponentində CVE tapıldı, bundan sonra SCA Spring Framework-ün digər komponentlərində eyni CVE-yə işarə edir, CVE-nin isə digər komponentlərlə heç bir əlaqəsi yoxdur. Bu halda, yalan müsbət olacaq.

Tədqiqatın obyekti DVJA Açıq Mənbə layihəsidir. Tədqiqat yalnız java komponentlərini əhatə etdi (js olmadan).

Xülasə nəticələr

Müəyyən edilmiş zəifliklərin əl ilə nəzərdən keçirilməsinin nəticələrinə keçək. Hər bir CVE üçün tam hesabatı Əlavədə tapa bilərsiniz.

Bütün zəifliklər üçün ümumi nəticələr:

Parametr
Nexus IQ
Asılılıq yoxlanışı
Asılılıq İzi

Müəyyən edilmiş ümumi zəifliklər
42
91
51

Yanlış müəyyən edilmiş zəifliklər (yanlış müsbət)
2 (4.76%)
62 (68,13%)
29 (56.86%)

Müvafiq zəiflik tapılmadı (yalan mənfi)
10
20
27

Komponentlər üzrə yekun nəticələr:

Parametr
Nexus IQ
Asılılıq yoxlanışı
Asılılıq İzi

Ümumi Komponentlər Açıqlandı
62
47
59

Ümumi Zəif Komponentlər
16
13
10

Həssas komponentlər səhv müəyyən edilmişdir (yalan pozitiv)
1
5
0

Həssas komponentlər səhv müəyyən edilmişdir (yalan pozitiv)
0
6
6

Yanlış müsbət və yalançı mənfilərin ümumi boşluqların sayına nisbətini qiymətləndirmək üçün vizual qrafiklər quraq. Komponentlər üfüqi, onlarda müəyyən edilmiş zəifliklər isə şaquli olaraq qeyd olunur.

DevSecOps: SCA-nın iş prinsipləri və müqayisəsi. Birinci hissə

DevSecOps: SCA-nın iş prinsipləri və müqayisəsi. Birinci hissə

DevSecOps: SCA-nın iş prinsipləri və müqayisəsi. Birinci hissə

Müqayisə üçün, oxşar tədqiqat Sonatype komandası tərəfindən OWASP Dependency Check-dən istifadə edərək 1531 komponentdən ibarət layihəni sınaqdan keçirib. Gördüyümüz kimi, səs-küyün düzgün cavablara nisbəti nəticələrimizə uyğundur.

DevSecOps: SCA-nın iş prinsipləri və müqayisəsi. Birinci hissə
Mənbə: www.sonatype.com/why-precision-matters-ebook

Bu cür nəticələrin səbəbini anlamaq üçün skan nəticələrimizdən bəzi CVE-lərə nəzər salaq.

daha

№ 1

Əvvəlcə Sonatype Nexus IQ-nun bəzi maraqlı məqamlarını təhlil edək.

Nexus IQ, Spring Framework-də bir neçə dəfə RCE etmək imkanı ilə seriyasızlaşdırma problemini qeyd edir. CVE-2016-1000027 spring-web: 3.0.5 ilk dəfə və CVE-2011-2894 yaz-kontekstində:3.0.5 və spring-core:3.0.5. Əvvəlcə bir neçə CVE-də zəifliyin təkrarlanması olduğu görünür. Çünki NVD verilənlər bazasında CVE-2016-1000027 və CVE-2011-2894-ə baxsanız, deyəsən, hər şey göz qabağındadır.

Komponent
Zəiflik

spring-web: 3.0.5
CVE-2016-1000027

yaz-kontekst: 3.0.5
CVE-2011-2894

yay nüvəsi: 3.0.5
CVE-2011-2894

Təsvir CVE-2011-2894 nvd-dən:
DevSecOps: SCA-nın iş prinsipləri və müqayisəsi. Birinci hissə

Təsvir CVE-2016-1000027 nvd-dən:
DevSecOps: SCA-nın iş prinsipləri və müqayisəsi. Birinci hissə

CVE-2011-2894 özü tərəfindən olduqca yaxşı tanınır. Hesabatda Ağ mənbə 2011 bu CVE ən çox yayılmışlardan biri kimi tanınıb. CVE-2016-100027 üçün təsvirlər, prinsipcə, NVD-də azdır və görünür, bu, yalnız Spring Framework 4.1.4 üçün tətbiq edilir. Gəlin bir nəzər salaq arayış və burada az-çox aydın olur. From Müvafiq məqalələr Biz başa düşürük ki, zəifliyə əlavə olaraq RemoteInvocationSerializingExporter CVE-2011-2894-də zəiflik burada görünür HttpInvokerServiceExporter. Nexus IQ bizə belə deyir:

DevSecOps: SCA-nın iş prinsipləri və müqayisəsi. Birinci hissə

Bununla belə, NVD-də belə bir şey yoxdur, buna görə Dependency Check və Dependency Track yanlış neqativlər alır.

CVE-2011-2894-ün təsvirindən də başa düşmək olar ki, zəiflik həqiqətən də həm bahar kontekstində: 3.0.5, həm də yay nüvəsi: 3.0.5-də mövcuddur. Bunun təsdiqini bu zəifliyi tapan şəxsin məqaləsində tapmaq olar.

№ 2

Komponent
Zəiflik
Nəticə

struts2 nüvəli: 2.3.30
CVE-2016-4003
SAXTA

CVE-2016-4003 zəifliyini öyrənsək, onun 2.3.28 versiyasında düzəldildiyini başa düşəcəyik, buna baxmayaraq Nexus IQ bu barədə bizə məlumat verir. Zəifliyin təsvirində qeyd var:

DevSecOps: SCA-nın iş prinsipləri və müqayisəsi. Birinci hissə

Yəni, zəiflik yalnız JRE-nin köhnəlmiş versiyası ilə birlikdə mövcuddur və bu barədə bizə xəbərdarlıq etmək qərarına gəldilər. Buna baxmayaraq, biz bunu ən dəhşətli olmasa da, Yalan Müsbət hesab edirik.

3

Komponent
Zəiflik
Nəticə

xwork-core: 2.3.30
CVE-2017-9804
TRUE

xwork-core: 2.3.30
CVE-2017-7672
SAXTA

CVE-2017-9804 və CVE-2017-7672 üçün təsvirə baxsaq, problemin burada olduğunu anlayacağıq. URLValidator class, CVE-2017-9804 ilə CVE-2017-7672-dən qaynaqlanır. İkinci zəifliyin mövcudluğu heç bir faydalı yük daşımır, yalnız onun şiddəti Yüksək səviyyəyə yüksəlmişdir, buna görə də bu, lazımsız səs-küy hesab edilə bilər.

Ümumilikdə, Nexus IQ üçün başqa heç bir yanlış müsbət tapılmadı.

№ 4

IQ-nu digər həllərdən fərqləndirən bir neçə şey var.

Komponent
Zəiflik
Nəticə

spring-web: 3.0.5
CVE-2020-5398
TRUE

NVD-də CVE deyir ki, o, yalnız 5.2.x - 5.2.3, 5.1.x - 5.1.13 və 5.0.x - 5.0.16 versiyalarına aiddir, lakin Nexus IQ-da CVE təsvirinə baxsaq, onda aşağıdakıları görəcəyik:
Məsləhətdən yayınma haqqında bildiriş: Sonatype təhlükəsizlik tədqiqat qrupu aşkar etdi ki, bu zəiflik məsləhətdə qeyd edildiyi kimi 3.0.2.x deyil, 5.0.RELEASE versiyasında təqdim edilib.

Bunun ardınca bu boşluq üçün PoC gəlir və onun 3.0.5 versiyasında mövcud olduğunu bildirir.

Yanlış mənfi Asılılıq Yoxlanması və Asılılıq İzinə göndərilir.

№ 5

Dependency Check və Dependency Track üçün yanlış müsbətə baxaq.

Asılılıq yoxlanışı NVD-də bütün çərçivəyə tətbiq olunan CVE-ləri bu CVE-lərin tətbiq olunmadığı komponentlərə əks etdirdiyi üçün fərqlənir. Bu, yoxlanılan CVE-2012-0394, CVE-2013-2115, CVE-2014-0114, CVE-2015-0899, CVE-2015-2992, CVE-2016-1181, CVE-2016-1182-ə aiddir. ” üçün struts-taglib:1.3.8 və struts-tiles-1.3.8. Bu komponentlərin CVE-də təsvir olunanlarla heç bir əlaqəsi yoxdur - sorğunun işlənməsi, səhifənin yoxlanılması və s. Bu, bu CVE-lər və komponentlər arasında yalnız çərçivənin ümumi olması ilə əlaqədardır, ona görə də Dependency Check bunu zəiflik hesab etmişdir.

Spring-tx:3.0.5 ilə eyni vəziyyət və struts-core:1.3.8 ilə oxşar vəziyyət. Struts-core üçün, Dependency Check və Dependency Track əslində ayrı bir çərçivə olan struts2-core-a aid olan çoxlu boşluqlar tapdı. Bu halda, Nexus IQ şəkli düzgün başa düşdü və onun buraxdığı CVE-lərdə struts-core-un ömrünün sona çatdığını və struts2-core-a keçmək lazım olduğunu göstərdi.

№ 6

Bəzi hallarda, Asılılığın Yoxlanması və Asılılığın İzlənməsi xətasını müalicə etmək ədalətsizdir. Xüsusilə CVE-2013-4152, CVE-2013-6429, CVE-2013-6430, CVE-2013-7315, CVE-2014-0054, CVE-2014-0225, CVE-2014-0225 və Asılılıq Yoxlanışı spring-core:3.0.5-ə istinad edilir, əslində spring-web:3.0.5-ə aiddir. Eyni zamanda, bu CVE-lərin bəziləri Nexus IQ tərəfindən tapıldı, lakin IQ onları başqa bir komponentlə düzgün müəyyənləşdirdi. Yaz nüvəsində bu zəifliklərin tapılmadığından, onların prinsipcə çərçivədə olmadığını iddia etmək olmaz və açıq mənbə alətləri bu zəiflikləri haqlı olaraq qeyd etdi (sadəcə bir az qaçırdılar).

Tapıntılar

Gördüyümüz kimi, müəyyən edilmiş zəifliklərin etibarlılığının əl ilə nəzərdən keçirilməsi ilə müəyyən edilməsi birmənalı nəticələr vermir və bu, mübahisəli məsələlərə səbəb olur. Nəticələr budur ki, Nexus IQ həlli ən aşağı yanlış müsbət nisbətə və ən yüksək dəqiqliyə malikdir.

Əvvəla, bu onunla əlaqədardır ki, Sonatype komandası öz verilənlər bazalarında NVD-dən hər bir CVE zəifliyi üçün təsviri genişləndirərək, komponentin müəyyən bir versiyası üçün zəifliyin sinfinə və ya funksiyasına qədər əlavə əməliyyatlar həyata keçirmişdir. tədqiqat (məsələn, köhnə proqram versiyalarında zəiflikləri yoxlamaq yolu ilə).

Nəticələrə NVD-yə daxil olmayan, lakin SONATYPE ilə işarələnmiş Sonatype verilənlər bazasında mövcud olan zəifliklər də mühüm təsir göstərir. Məlumata görə Açıq Mənbə Təhlükəsizlik Zəifliklərinin Vəziyyəti 2020 Aşkar edilmiş açıq mənbə zəifliklərinin 45%-i NVD-yə bildirilmir. WhiteSource verilənlər bazasına görə, NVD-dən kənarda təqdim edilən bütün açıq mənbə zəifliklərinin yalnız 29%-i orada dərc olunur, buna görə də zəiflikləri başqa yerdə axtarmaq çox vacibdir.

Nəticədə, Dependency Check bəzi həssas komponentləri əldən verərək çoxlu səs-küy yaradır. Dependency Track daha az səs-küy yaradır və çoxlu sayda komponentləri aşkarlayır, bu da veb-interfeysdə gözlərə vizual olaraq zərər vermir.

Buna baxmayaraq, təcrübə göstərir ki, yetkin DevSecOps üçün ilk addımlar olmalıdır ki, açıq mənbədir. SCA-nı inkişafa daxil etmək üçün düşünmək lazım olan ilk şey proseslərdir, yəni rəhbərlik və əlaqəli şöbələrlə təşkilatınızda ideal proseslərin necə görünməsi barədə düşünməkdir. Belə çıxa bilər ki, təşkilatınız üçün əvvəlcə Dependency Check və ya Dependency Track bütün biznes ehtiyaclarını əhatə edəcək və Müəssisə həlləri inkişaf etdirilən tətbiqlərin artan mürəkkəbliyi səbəbindən məntiqi davamı olacaq.

Əlavə A. Komponentlər üçün nəticələr
Rəmzləri:

  • Komponentdə yüksək - yüksək və kritik səviyyəli zəifliklər
  • Orta — Komponentdə orta dərəcədə zəifliklər
  • DOĞRU - Əsl müsbət məsələ
  • FALSE - Yanlış müsbət məsələ

Komponent
Nexus IQ
Asılılıq yoxlanışı
Asılılıq İzi
Nəticə

dom4j: 1.6.1
Yüksək
Yüksək
Yüksək
TRUE

log4j nüvəsi: 2.3
Yüksək
Yüksək
Yüksək
TRUE

log4j: 1.2.14
Yüksək
Yüksək
-
TRUE

ümumi kolleksiyalar: 3.1
Yüksək
Yüksək
Yüksək
TRUE

commons-fileupload: 1.3.2
Yüksək
Yüksək
Yüksək
TRUE

Commons-beanutils: 1.7.0
Yüksək
Yüksək
Yüksək
TRUE

commons-codec: 1:10
Mühit
-
-
TRUE

mysql-connector-java: 5.1.42
Yüksək
Yüksək
Yüksək
TRUE

yay ifadəsi: 3.0.5
Yüksək
komponent tapılmadı

TRUE

spring-web: 3.0.5
Yüksək
komponent tapılmadı
Yüksək
TRUE

yaz-kontekst: 3.0.5
Mühit
komponent tapılmadı
-
TRUE

yay nüvəsi: 3.0.5
Mühit
Yüksək
Yüksək
TRUE

struts2-config-brauzer-plugin:2.3.30
Mühit
-
-
TRUE

spring-tx: 3.0.5
-
Yüksək
-
SAXTA

struts-core: 1.3.8
Yüksək
Yüksək
Yüksək
TRUE

xwork-core: 2.3.30
Yüksək
-
-
TRUE

struts2 nüvəli: 2.3.30
Yüksək
Yüksək
Yüksək
TRUE

struts-taglib: 1.3.8
-
Yüksək
-
SAXTA

struts-kafel-1.3.8
-
Yüksək
-
SAXTA

Əlavə B. Zəifliyin nəticələri
Rəmzləri:

  • Komponentdə yüksək - yüksək və kritik səviyyəli zəifliklər
  • Orta — Komponentdə orta dərəcədə zəifliklər
  • DOĞRU - Əsl müsbət məsələ
  • FALSE - Yanlış müsbət məsələ

Komponent
Nexus IQ
Asılılıq yoxlanışı
Asılılıq İzi
Sərtlik
Nəticə
Qeyd

dom4j: 1.6.1
CVE-2018-1000632
CVE-2018-1000632
CVE-2018-1000632
Yüksək
TRUE

CVE-2020-10683
CVE-2020-10683
CVE-2020-10683
Yüksək
TRUE

log4j nüvəsi: 2.3
CVE-2017-5645
CVE-2017-5645
CVE-2017-5645
Yüksək
TRUE

CVE-2020-9488
CVE-2020-9488
CVE-2020-9488
Aşağı
TRUE

log4j: 1.2.14
CVE-2019-17571
CVE-2019-17571
-
Yüksək
TRUE

-
CVE-2020-9488
-
Aşağı
TRUE

SONATYPE-2010-0053
-
-
Yüksək
TRUE

ümumi kolleksiyalar: 3.1
-
CVE-2015-6420
CVE-2015-6420
Yüksək
SAXTA
RCE (OSSINDEX) dublikatları

-
CVE-2017-15708
CVE-2017-15708
Yüksək
SAXTA
RCE (OSSINDEX) dublikatları

SONATYPE-2015-0002
RCE (OSSINDEX)
RCE(OSSINDEX)
Yüksək
TRUE

commons-fileupload: 1.3.2
CVE-2016-1000031
CVE-2016-1000031
CVE-2016-1000031
Yüksək
TRUE

SONATYPE-2014-0173
-
-
Mühit
TRUE

Commons-beanutils: 1.7.0
CVE-2014-0114
CVE-2014-0114
CVE-2014-0114
Yüksək
TRUE

-
CVE-2019-10086
CVE-2019-10086
Yüksək
SAXTA
Zəiflik yalnız 1.9.2+ versiyaları üçün tətbiq edilir

commons-codec: 1:10
SONATYPE-2012-0050
-
-
Mühit
TRUE

mysql-connector-java: 5.1.42
CVE-2018-3258
CVE-2018-3258
CVE-2018-3258
Yüksək
TRUE

CVE-2019-2692
CVE-2019-2692
-
Mühit
TRUE

-
CVE-2020-2875
-
Mühit
SAXTA
CVE-2019-2692 ilə eyni zəiflik, lakin əlavə ilə "hücumlar əlavə məhsullara əhəmiyyətli dərəcədə təsir göstərə bilər"

-
CVE-2017-15945
-
Yüksək
SAXTA
mysql-connector-java-ya aid deyil

-
CVE-2020-2933
-
Aşağı
SAXTA
CVE-2020-2934-ə dublikat

CVE-2020-2934
CVE-2020-2934
-
Mühit
TRUE

yay ifadəsi: 3.0.5
CVE-2018-1270
komponent tapılmadı
-
Yüksək
TRUE

CVE-2018-1257
-
-
Mühit
TRUE

spring-web: 3.0.5
CVE-2016-1000027
komponent tapılmadı
-
Yüksək
TRUE

CVE-2014-0225
-
CVE-2014-0225
Yüksək
TRUE

CVE-2011-2730
-
-
Yüksək
TRUE

-
-
CVE-2013-4152
Mühit
TRUE

CVE-2018-1272
-
-
Yüksək
TRUE

CVE-2020-5398
-
-
Yüksək
TRUE
İQ-nin lehinə olan hal: "Sonatype təhlükəsizlik tədqiqat qrupu aşkar etdi ki, bu zəiflik məsləhətdə qeyd edildiyi kimi 3.0.2.x deyil, 5.0.RELEASE versiyasında təqdim edilib."

CVE-2013-6429
-
-
Mühit
TRUE

CVE-2014-0054
-
CVE-2014-0054
Mühit
TRUE

CVE-2013-6430
-
-
Mühit
TRUE

yaz-kontekst: 3.0.5
CVE-2011-2894
komponent tapılmadı
-
Mühit
TRUE

yay nüvəsi: 3.0.5
-
CVE-2011-2730
CVE-2011-2730
Yüksək
TRUE

CVE-2011-2894
CVE-2011-2894
CVE-2011-2894
Mühit
TRUE

-
-
CVE-2013-4152
Mühit
SAXTA
Spring-web-də eyni zəifliyin dublikatı

-
CVE-2013-4152
-
Mühit
SAXTA
Zəiflik spring-web komponentinə aiddir

-
CVE-2013-6429
CVE-2013-6429
Mühit
SAXTA
Zəiflik spring-web komponentinə aiddir

-
CVE-2013-6430
-
Mühit
SAXTA
Zəiflik spring-web komponentinə aiddir

-
CVE-2013-7315
CVE-2013-7315
Mühit
SAXTA
CVE-2013-4152-dən SPLIT. + Zəiflik spring-web komponentinə aiddir

-
CVE-2014-0054
CVE-2014-0054
Mühit
SAXTA
Zəiflik spring-web komponentinə aiddir

-
CVE-2014-0225
-
Yüksək
SAXTA
Zəiflik spring-web komponentinə aiddir

-
-
CVE-2014-0225
Yüksək
SAXTA
Spring-web-də eyni zəifliyin dublikatı

-
CVE-2014-1904
CVE-2014-1904
Mühit
SAXTA
Zəiflik spring-web-mvc komponentinə aiddir

-
CVE-2014-3625
CVE-2014-3625
Mühit
SAXTA
Zəiflik spring-web-mvc komponentinə aiddir

-
CVE-2016-9878
CVE-2016-9878
Yüksək
SAXTA
Zəiflik spring-web-mvc komponentinə aiddir

-
CVE-2018-1270
CVE-2018-1270
Yüksək
SAXTA
Yaz ifadəsi / yaz mesajları üçün

-
CVE-2018-1271
CVE-2018-1271
Mühit
SAXTA
Zəiflik spring-web-mvc komponentinə aiddir

-
CVE-2018-1272
CVE-2018-1272
Yüksək
TRUE

CVE-2014-3578
CVE-2014-3578(OSSINDEX)
CVE-2014-3578
Mühit
TRUE

SONATYPE-2015-0327
-
-
Aşağı
TRUE

struts2-config-brauzer-plugin:2.3.30
SONATYPE-2016-0104
-
-
Mühit
TRUE

spring-tx: 3.0.5
-
CVE-2011-2730
-
Yüksək
SAXTA
Zəiflik spring-tx-ə aid deyil

-
CVE-2011-2894
-
Yüksək
SAXTA
Zəiflik spring-tx-ə aid deyil

-
CVE-2013-4152
-
Mühit
SAXTA
Zəiflik spring-tx-ə aid deyil

-
CVE-2013-6429
-
Mühit
SAXTA
Zəiflik spring-tx-ə aid deyil

-
CVE-2013-6430
-
Mühit
SAXTA
Zəiflik spring-tx-ə aid deyil

-
CVE-2013-7315
-
Mühit
SAXTA
Zəiflik spring-tx-ə aid deyil

-
CVE-2014-0054
-
Mühit
SAXTA
Zəiflik spring-tx-ə aid deyil

-
CVE-2014-0225
-
Yüksək
SAXTA
Zəiflik spring-tx-ə aid deyil

-
CVE-2014-1904
-
Mühit
SAXTA
Zəiflik spring-tx-ə aid deyil

-
CVE-2014-3625
-
Mühit
SAXTA
Zəiflik spring-tx-ə aid deyil

-
CVE-2016-9878
-
Yüksək
SAXTA
Zəiflik spring-tx-ə aid deyil

-
CVE-2018-1270
-
Yüksək
SAXTA
Zəiflik spring-tx-ə aid deyil

-
CVE-2018-1271
-
Mühit
SAXTA
Zəiflik spring-tx-ə aid deyil

-
CVE-2018-1272
-
Mühit
SAXTA
Zəiflik spring-tx-ə aid deyil

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

Mühit
FASLE
Struts 2-ə qarşı zəiflik

-
CVE-2012-0391(OSSINDEX)
CVE-2012-0391
Yüksək
SAXTA
Struts 2-ə qarşı zəiflik

-
CVE-2014-0094(OSSINDEX)
CVE-2014-0094
Mühit
SAXTA
Struts 2-ə qarşı zəiflik

-
CVE-2014-0113(OSSINDEX)
CVE-2014-0113
Yüksək
SAXTA
Struts 2-ə qarşı zəiflik

CVE-2016-1182
3VE-2016-1182
-
Yüksək
TRUE

-
-
CVE-2011-5057
Mühit
SAXTA
Struts 2-ə qarşı zəiflik

-
CVE-2012-0392(OSSINDEX)
CVE-2012-0392
Yüksək
SAXTA
Struts 2-ə qarşı zəiflik

-
CVE-2012-0393(OSSINDEX)
CVE-2012-0393
Mühit
SAXTA
Struts 2-ə qarşı zəiflik

CVE-2015-0899
CVE-2015-0899
-
Yüksək
TRUE

-
CVE-2012-0394
CVE-2012-0394
Mühit
SAXTA
Struts 2-ə qarşı zəiflik

-
CVE-2012-0838(OSSINDEX)
CVE-2012-0838
Yüksək
SAXTA
Struts 2-ə qarşı zəiflik

-
CVE-2013-1965(OSSINDEX)
CVE-2013-1965
Yüksək
SAXTA
Struts 2-ə qarşı zəiflik

-
CVE-2013-1966(OSSINDEX)
CVE-2013-1966
Yüksək
FASLE
Struts 2-ə qarşı zəiflik

-
CVE-2013-2115
CVE-2013-2115
Yüksək
FASLE
Struts 2-ə qarşı zəiflik

-
CVE-2013-2134(OSSINDEX)
CVE-2013-2134
Yüksək
FASLE
Struts 2-ə qarşı zəiflik

-
CVE-2013-2135(OSSINDEX)
CVE-2013-2135
Yüksək
FASLE
Struts 2-ə qarşı zəiflik

CVE-2014-0114
CVE-2014-0114
-
Yüksək
TRUE

-
CVE-2015-2992
CVE-2015-2992
Mühit
SAXTA
Struts 2-ə qarşı zəiflik

-
CVE-2016-0785(OSSINDEX)
CVE-2016-0785
Yüksək
SAXTA
Struts 2-ə qarşı zəiflik

CVE-2016-1181
CVE-2016-1181
-
Yüksək
TRUE

-
CVE-2016-4003(OSSINDEX)
CVE-2016-4003
Yüksək
SAXTA
Struts 2-ə qarşı zəiflik

xwork-core: 2.3.30
CVE-2017-9804
-
-
Yüksək
TRUE

SONATYPE-2017-0173
-
-
Yüksək
TRUE

CVE-2017-7672
-
-
Yüksək
SAXTA
CVE-2017-9804-ə ikiqat

SONATYPE-2016-0127
-
-
Yüksək
TRUE

struts2 nüvəli: 2.3.30
-
CVE-2016-6795
CVE-2016-6795
Yüksək
TRUE

-
CVE-2017-9787
CVE-2017-9787
Yüksək
TRUE

-
CVE-2017-9791
CVE-2017-9791
Yüksək
TRUE

-
CVE-2017-9793
-
Yüksək
SAXTA
CVE-2018-1327-ə dublikat

-
CVE-2017-9804
-
Yüksək
TRUE

-
CVE-2017-9805
CVE-2017-9805
Yüksək
TRUE

CVE-2016-4003
-
-
Mühit
SAXTA
2 versiyası olan 2.3.28-ə qədər Apache Struts 2.3.30.x-ə aiddir. Bununla belə, təsvirə əsasən, CVE, JRE 2 və aşağıda istifadə edildiyi müddətcə Struts 1.7-nin bütün versiyalarında işləyir. Görünür, bizi burada təkrar sığortalamaq qərarına gəliblər, amma bu, daha çox YANLIŞ kimi görünür

-
CVE-2018-1327
CVE-2018-1327
Yüksək
TRUE

CVE-2017-5638
CVE-2017-5638
CVE-2017-5638
Yüksək
TRUE
2017-ci ildə Equifax-da təcavüzkarlar tərəfindən istifadə edilən eyni zəiflik

CVE-2017-12611
CVE-2017-12611
-
Yüksək
TRUE

CVE-2018-11776
CVE-2018-11776
CVE-2018-11776
Yüksək
TRUE

struts-taglib: 1.3.8
-
CVE-2012-0394
-
Mühit
SAXTA
2 nüvəli dayaqlar üçün

-
CVE-2013-2115
-
Yüksək
SAXTA
2 nüvəli dayaqlar üçün

-
CVE-2014-0114
-
Yüksək
SAXTA
Commons-beanutils üçün

-
CVE-2015-0899
-
Yüksək
SAXTA
Taglib ilə əlaqəli deyil

-
CVE-2015-2992
-
Mühit
SAXTA
Struts2-core ilə əlaqədardır

-
CVE-2016-1181
-
Yüksək
SAXTA
Taglib ilə əlaqəli deyil

-
CVE-2016-1182
-
Yüksək
SAXTA
Taglib ilə əlaqəli deyil

struts-kafel-1.3.8
-
CVE-2012-0394
-
Mühit
SAXTA
2 nüvəli dayaqlar üçün

-
CVE-2013-2115
-
Yüksək
SAXTA
2 nüvəli dayaqlar üçün

-
CVE-2014-0114
-
Yüksək
SAXTA
Commons-beanutils altında

-
CVE-2015-0899
-
Yüksək
SAXTA
Kafellərə tətbiq edilmir

-
CVE-2015-2992
-
Mühit
SAXTA
2 nüvəli dayaqlar üçün

-
CVE-2016-1181
-
Yüksək
SAXTA
Taglib ilə əlaqəli deyil

-
CVE-2016-1182
-
Yüksək
SAXTA
Taglib ilə əlaqəli deyil

Mənbə: www.habr.com

Добавить комментарий