DevSecOps: tööpÔhimÔtted ja SCA vÔrdlus. Esimene osa

Kolmanda osapoole tarkvara komponente analĂŒĂŒsimise tĂ€htsus (ingl. k. Software Composition Analysis — SCA) arendusprotsessis kasvab koos iga-aastaste aruannetega avatud lĂ€htekoodi teeki seonduvatest haavatavustest, mida avaldavad ettevĂ”tted Synopsys, Sonatype, Snyk, White Source. Vastavalt aruande... Avatud LĂ€htekoodi Julgeoleku Haavatavuste Oleku Aruanne 2020 avastatud haavatuste arv avatud lĂ€htekoodis 2019. aastal kasvas peaaegu 1,5 korda vĂ”rreldes eelmise aastaga, samas kui avatud lĂ€htetekstiga komponente kasutatakse 60% kuni 80% projektidest. Kui tugineda sĂ”ltumatule arvamusele, on SCA protsessid OWASP SAMM ja BSIMM eraldi praktikad, mis nĂ€itavad kĂŒpsuse taset, ja 2020. aasta esimeses pooles avaldas OWASP uue standardi OWASP Software Component Verification Standard (SCVS), mis pakub parimaid tavasid kolmandate isikute komponentide kontrollimiseks tarkvara tarneahelas.

DevSecOps: tööpÔhimÔtted ja SCA vÔrdlus. Esimene osa

Üks kĂ”ige iseloomulikumaid juhtumeid leidis aset ettevĂ”tte Equifax juures mai 2017. aastal. Teadmata kurjategijad said kĂ€tte 143 miljoni ameeriklase isikuandmed, sealhulgas tĂ€isnimesid, aadresse, sotsiaalhoolekande numbreid ja juhilube. 209 000 juhul sisaldasid dokumendid ka ohvrite pangakaarditeavet. See lekke juhtum toimus kritilise haavatavuse tĂ”ttu Apache Struts 2-s (CVE-2017-5638), samas kui parandustöötlus oli avaldatud juba mĂ€rtsis 2017. EttevĂ”ttel oli kaks kuud uuenduse installimiseks, kuid keegi ei olnud sellega mures.

KĂ€esolevas artiklis arutatakse tööriista valimise kĂŒsimust SCA lĂ€biviimiseks analĂŒĂŒsi tulemuste kvaliteedi seisukohalt. Samuti tuuakse esile tööriistade funktsionaalne vĂ”rdlus. CI/CD-sse integreerimise protsessi ja vĂ”imalusi kĂ€sitleme jĂ€rgmistes vĂ€ljaannetes. Lai tööriistade nimekiri on esitatud OWASP oma veebilehe kaudu, kuid praeguses ĂŒlevaates kĂ€sitleme vaid kĂ”ige populaarsemaid avatud lĂ€htekoodi tööriistu Dependency Check, veidi vĂ€hem tuntud avatud lĂ€htekoodi platvormi Dependency Track ja ettevĂ”tte lahendust Sonatype Nexus IQ. Samuti uurime, kuidas need lahendused töötavad ja vĂ”rdleme saadud tulemusi valehĂ€irete osas.

DevSecOps: tööpÔhimÔtted ja SCA vÔrdlus. Esimene osa

Töö ĐżŃ€ĐžĐœŃ†ĐžĐż

Dependency Check — see on utiliit (CLI, maven, jenkins moodul, ant), mis analĂŒĂŒsib projekti faile, kogub teavet sĂ”ltuvuste kohta (paketi nimi, grupp, spetsifikatsiooni pealkiri, versioon...), koostab CPE (Common Platform Enumeration) stringi, pakendi URL (PURL) ja tuvastab CPE/PURL jaoks haavatavused andmebaasidest (NVD, Sonatype OSS Index, NPM Audit API...), millele jĂ€rgneb ĂŒhekordse aruande koostamine HTML, JSON, XML vormingus...

Vaatame, kuidas CPE vÀlja nÀeb:

cpe:2.3:part:tootja:toode:versioon:uuendus:vÀljaanne:keel:sw_edition:target_sw:target_hw:muu

  • Osa: MĂ€rkus, et komponent kuulub rakendusse (a), operatsioonisĂŒsteemi (o), riistvarasse (h) (kohustuslik punkt)
  • Tootja: Toote tootja nimi (kohustuslik punkt)
  • Toode: Toote nimi (kohustuslik punkt)
  • Versioon: Komponendi versioon (aegunud punkt)
  • Uuendus: Paketi uuendus
  • VĂ€ljaanne: PĂ€randversioon (aegunud punkt)
  • Keel: Keel, mÀÀratletud RFC-5646-s
  • SW vĂ€ljaanne: Tarkvara versioon
  • Kaasnevad SW: Tarkvarakeskkond, kus toode töötab
  • Kaasnevad HW: Riistvara keskkond, kus toode töötab
  • Muu: Teave teenusepakkuja vĂ”i toote kohta

CPE nÀide nÀeb vÀlja jÀrgmiselt:

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

String nĂ€itab, et CPE versioon 2.3 kirjeldab rakenduse komponenti tootjalt pivotal_software nimega spring_framework versiooniga 3.0.0. Kui avame haavatavuse CVE-2014-0225 NVD-s, siis nĂ€eme selle CPE ametlikku mainimist. Esimene probleem, millele kohe tĂ€helepanu pöörata — CVE NVD-s, vastavalt CPE-le, teatab raamistikus olevast probleemist, mitte konkreetses komponendis. See tĂ€hendab, et kui arendajad on tihedalt seotud raamistikuga ja tuvastatud haavatavus ei puuduta neid mooduleid, mida arendajad kasutavad, peab turvaspetsialist Ă”igel vĂ”i vÀÀral tingimusel selle CVE lĂ€bi vaatama ja vĂ€rskendamise ĂŒle jĂ€rele mĂ”tlema.

URL-i aadressit kasutatakse ka SCA tööriistade poolt. Paketi URL-i formaat on jÀrgmine:

skeem:tĂŒĂŒp/nimi@versioon?kvalifikaatorid#subpath

  • Skeem: Oleks alati ‘pkg’, nĂ€idates, et see on paketi URL (kohustuslik punkt)
  • TĂŒĂŒp: Paketi 'tĂŒĂŒp' vĂ”i 'protokoll', nĂ€iteks maven, npm, nuget, gem, pypi jne (kohustuslik punkt)
  • Nimi ruum: MĂ”ned nime prefiksid, nagu Maven'i rĂŒhma identifikaator, Docker'i pildi omanik, GitHub'i kasutaja vĂ”i organisatsioon. Valikuline ja sĂ”ltub tĂŒĂŒbist.
  • Nimi: Paketi nimi (kohustuslik punkt)
  • Versioon: Paketi versioon
  • Kvalifikaatorid: Lisa kvalifikatsioonide andmed paketi, nagu operatsioonisĂŒsteem, arhitektuur, jaotamine jne. Valikuline ja sĂ”ltub tĂŒĂŒbist.
  • Alamtee: TĂ€iendav tee paketis, mis asub paketi juurest.

NĂ€iteks:

pkg:golang/google.golang.org/genproto#googleapis/api/annotations
pkg:maven/org.apache.commons/io@1.3.4
pkg:pypi/django-package@1.11.1.dev1

Dependency Track — kohapealne veebiplatvorm, mis aktsepteerib valmis komponente (BOM), mis on koostatud. CycloneDX ja SPDX, st valmis spetsifikatsioonid olemasolevatest sĂ”ltuvustest. See on XML-fail, mis kirjeldab sĂ”ltuvusi — nimi, hashes, paketi URL, vĂ€ljaandja, litsents. SeejĂ€rel analĂŒĂŒsib Dependency Track BOM'i, uurib olemasolevate sĂ”ltuvuste CVE-d, kasutades haavatavuste andmebaasi (NVD, Sonatype OSS Index ...), pĂ€rast mida koostab diagramme, arvutab mÔÔdikuid ja vĂ€rskendab regulaarselt komponentide haavatavuse staatuse andmeid.

NÀide sellest, kuidas BOM XML-formaadis vÀlja nÀeb:

Apache
      org.apache.tomcat
      tomcat-catalina
      9.0.14
      
        3942447fac867ae5cdb3229b658f4d48
        e6b1000b94e835ffd37f4c6dcbdad43f4b48a02a
        f498a8ff2dd007e29c2074f5e4b01a9a01775c3ff3aeaf6906ea503bc5791b7b
        e8f33e424f3f4ed6db76a482fde1a5298970e442c531729119e37991884bdffab4f9426b7ee11fccd074eeda0634d71697d6f88a460dce0ac8d627a29f7d1282
      
      
        
          Apache-2.0
        
      
      pkg:maven/org.apache.tomcat/tomcat-catalina@9.0.14
    
      

BOM'i saab kasutada mitte ainult Dependency Track'i sisendparameetriteks, vaid ka tarkvara koostisosade inventeerimiseks tarneahelas, nĂ€iteks tarkvara kliendile esitamiseks. 2014. aastal esitati USA-s isegi seaduseelnĂ”u „Kybervarustuse haldamise ja lĂ€bipaistvuse seadus 2014”, mis sĂ€testas, et tarkvara hankimisel peab iga riigiasutus kĂŒsima BOM'i, et vĂ€ltida haavatavate komponentide kasutamist, kuid seadus ei jĂ”ustunud.

Tagasi tulles SCA juurde, on Dependency Track'il valmislahendused teavitamisplatvormidega, nagu Slack, ja haavatavuste haldamise sĂŒsteemidega, nagu Kenna Security. Tasub ka mĂ€rkida, et Dependency Track tuvastab vananenud versioonid paketidest ja pakub teavet litsentside kohta (SPDX-toe kaudu).

Kui rÀÀkida just SCA kvaliteedist, siis siin on pÔhimÔtteline erinevus.

Dependency Track ei vÔta projekti sisendina, vaid vÔtab tÀpselt BOM-efekti. See tÀhendab, et kui me soovime projekti kontrollida, peame esmalt genereerima bom.xml, nÀiteks CycloneDX abil. Nii sÔltub Dependency Track otseselt CycloneDX-st. Samas annab see vÔimaluse kohandamiseks. Nii kirjutaski OZONi meeskond CycloneDX moodul BOM-failide koostamiseks Golangi projektidele edasise skaneerimise eesmÀrgil lÀbi Dependency Tracki.

Nexus IQ on Sonatype'i kommertslahendus SCA jaoks, mis on osa Sonatype'i ökosĂŒsteemist, kuhu kuulub ka Nexus Repository Manager. Nexus IQ suudab vastu vĂ”tta nii war-arhiive (Java projektide jaoks) veebiliidese vĂ”i API kaudu kui ka BOM-e, kui teie organisatsioon ei ole jĂ”udnud CycloneDX-lt uue lahenduse peale ĂŒle minna. Erinevalt avatud lĂ€htekoodiga lahendustest, kĂ€sitleb IQ mitte ainult CP/PURL-i tuvastatud komponendi ja vastava haavatavuse andmebaasist, vaid arvestab ka oma uuringutega, nĂ€iteks haavatava funktsiooni vĂ”i klassi nimega. IQ mehhanismid kĂ€sitletakse hiljem tulemuste analĂŒĂŒsimisel.

KokkuvĂ”tteks vaatame mĂ”ned funktsionaalsete omaduste kokkuvĂ”tted, samuti toetatud programmeerimiskeeli analĂŒĂŒsimiseks:

Keele
Nexus IQ
Dependency Check
Dependency Track

Java
+
+
+

C/C++
+
+
—

C#
+
+
—

.Net
+
+
+

Erlang
—
—
+

JavaScript (NodeJS)
+
+
+

PHP
+
+
+

Python
+
+
+

Ruby
+
+
+

Perl
—
—
—

Scala
+
+
+

Objective C
+
+
—

Swift
+
+
—

R
+
—
—

Go
+
+
+

Funktsionaalsed vÔimalused

Funktsionaalsed vÔimalused
Nexus IQ
Dependency Check
Dependency Track

VÔime tagada komponentide kontrolli, mis on kasutatud lÀhtekoodis, litsentsi puhtuse osas
+
—
+

VĂ”ime skaneerida ja analĂŒĂŒsida haavatavuste ja litsentsi puhtuse osas Docker'i pilte
+ Integreerimine Clairiga
—
—

VÔime seadistada turvapoliitikaid avatud lÀhtekoodiga raamatukogude kasutamiseks
+
—
—

VÔime skaneerida avatud lÀhtekoodiga repo-sid haavatavate komponentide leidmiseks
+ RubyGems, Maven, NPM, Nuget, Pypi, Conan, Bower, Conda, Go, p2, R, Yum, Helm, Docker, CocoaPods, Git LFS
—
+ Hex, RubyGems, Maven, NPM, Nuget, Pypi

Erialase uurimisrĂŒhma olemasolu
+
—
—

Töö suletud kontekstis
+
+
+

Kolmandate osapoolte andmebaaside kasutamine
+ Sonatype'i suletud andmebaas
+ Sonatype OSS, NPM Public Advisors
+ Sonatype OSS, NPM Public Advisors, RetireJS, VulnDB, toetus enda haavatavuste andmebaasile

VÔime filtreerida avatud lÀhtekoodiga komponente arendusprotsessi kiirusel vastavalt seadistatud poliitikatele
+
—
—

Soovitused haavatavuste parandamiseks, koos viidete olemasoluga parandamisele
+
+- (sÔltub avalikest andmebaasidest)
+- (sÔltub avalikest andmebaasidest)

Tuletatud haavatavuste jÀrjestamine kriitilisuse jÀrgi
+
+
+

JuurdepÀÀsu rollimudel
+
—
+

Kommando-liidese (CLI) tugi
+
+
+- (ainult CycloneDX jaoks)

Haavatavuste vÀljavÔtt ja sortimine mÀÀratletud kriteeriumide alusel
+
—
+

Rakenduste staatuse juhtpaneel
+
—
+

Aruannete genereerimine PDF-formaadis
+
—
—

Aruannete genereerimine JSONCSV formaadis
+
+
—

Venekeelse toe olemasolu
—
—
—

Integratsiooni vÔimalused

Integreerimine
Nexus IQ
Dependency Check
Dependency Track

LDAP/Active Directory integratsioon
+
—
+

Pideva integreerimise (continous integration) sĂŒsteemi integreerimine Bamboo
+
—
—

Pideva integreerimise (continous integration) sĂŒsteemi integreerimine TeamCity
+
—
—

Pideva integreerimise (continous integration) sĂŒsteemi integreerimine GitLab
+
+- (GitLabi pistikprogrammina)
+

Pideva integreerimise (continous integration) sĂŒsteemi integreerimine Jenkins
+
+
+

IDE pistikprogrammide olemasolu
+ IntelliJ, Eclipse, Visual Studio
—
—

Kohandatud integratsiooni toeks veebiteenuste (API) kaudu
+
—
+

Dependency Check

Esimene kÀivitamine

KĂ€ivitame Dependency Check tahtlikult haavatavas rakenduses DVJA.

Sellega saame hakkama Dependency Check Maven Plugin:

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

Tulemuseks ilmub kausta target dependency-check-report.html.

DevSecOps: tööpÔhimÔtted ja SCA vÔrdlus. Esimene osa

Avame faili. PÀrast kokkuvÔtte teavet haavatavuste koguarvu kohta nÀeme teavet kÔrge Severity ja Confidence tasemega haavatavuste kohta koos paketi, CPE ja CVE arvnÀitajaga.

SeejĂ€rel jĂ€rgneb ĂŒksikasjalik teave, sealhulgas see, mille alusel otsus tehti (evidence), s.t. mingi BOM.

DevSecOps: tööpÔhimÔtted ja SCA vÔrdlus. Esimene osa

JĂ€rgneb CPE, PURL ja CVE kirjeldus. Parandusettepanekud ei ole tegelikult saadaval, kuna neid ei ole NVD andmebaasis.

DevSecOps: tööpÔhimÔtted ja SCA vÔrdlus. Esimene osa

SĂŒsteemsete tulemuste vaatamiseks vĂ”ib seadistada Nginxi minimaalsete seadistustega vĂ”i saata saadud vead defektide haldamise sĂŒsteemi, mis toetavad Dependency Check konnektoreid. NĂ€iteks Defect Dojo.

Dependency Track

Paigaldamine

Dependency Track on omakorda veebiplatvorm, mis kuvab diagramme, seega ei ole terav probleem defektide sÀilitamisega kolmandas lahenduses siin.
Installeerimiseks on toetatud jÀrgmised stsenaariumid: Docker, WAR, Executable WAR.

Esimene kÀivitamine

Liigume kĂ€ivitatud teenuse URL-ile. Logime sisse admin/admin, muudame sisselogimise ja parooli, mille jĂ€rel pÀÀseme juhtpaneelile. JĂ€rgmine samm on luua projekt testrakendusele Java-s Avaleht/Projektid → Loo projekt . NĂ€iteks vĂ”tame DVJA.

DevSecOps: tööpÔhimÔtted ja SCA vÔrdlus. Esimene osa

Kuna Dependency Track saab sisendina ainult BOM-i, tuleb see BOM hankida. Alustame CycloneDX Maven Plugin:

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

Saame bom.xml ja laadime faili loodud projekti DVJA → Dependeencies → Laadi BOM ĂŒles.

Siseneme Administration → Analyzers. NĂ€eme, et meil on aktiveeritud ainult Internal Analyzer, mis hĂ”lmab NVD-d. Lisame ka Sonatype OSS Indexi.

DevSecOps: tööpÔhimÔtted ja SCA vÔrdlus. Esimene osa

Nii saame jĂ€rgmise ĂŒlevaate meie projektist:

DevSecOps: tööpÔhimÔtted ja SCA vÔrdlus. Esimene osa

Nimekirjas on ka ĂŒks haavatavus, mis kehtib Sonatype OSS-i suhtes:

DevSecOps: tööpÔhimÔtted ja SCA vÔrdlus. Esimene osa

Peamine pettumus oli see, et Dependency Track ei aktsepteeri enam Dependency Check'i xml-aruandeid. Viimased toetatud integratsiooniversioonid Dependency Checkiga olid 1.0.0 – 4.0.2, samas kui mina testisin 5.3.2.

Siin video (ja siin on), kui see veel vÔimalik oli.

Nexus IQ

Esimene kÀivitamine

Nexus IQ installimine toimub arhiivide kaudu dokumentatsioon, kuid me oleme selleks otstarbeks kogunud enda Docker'i pildi.

PĂ€rast konsooli sisselogimist tuleb luua Organisatsioon ja Rakendus.

DevSecOps: tööpÔhimÔtted ja SCA vÔrdlus. Esimene osa

DevSecOps: tööpÔhimÔtted ja SCA vÔrdlus. Esimene osa

DevSecOps: tööpÔhimÔtted ja SCA vÔrdlus. Esimene osa

Nagu nÀha, on IQ seadistamine mÔnevÔrra keerulisem, sest peame looma ka poliitikaid, mis kehtivad erinevate "etappide" (dev, build, stage, release) jaoks. See on vajalik, et blokeerida haavatavad komponendid, niipea kui need liiguvad lÀhemale tootepÀringule, vÔi blokeerida need kohe, kui nad satuvad Nexus Repo'sse arendajate allalaadimisel.

Et tunda erinevust avatud lÀhtekoodiga ja ettevÔtte tasemel, teeme sama skaneerimise lÀbi Nexus IQ samamoodi nagu Maven plugin, enne kui loome testrakenduse NexusIQ liideses dvja-test-and-compare:

mvn com.sonatype.clm:clm-maven-plugin:evaluate -Dclm.applicationId=dvja-test-and-compare -Dclm.serverUrl= -Dclm.username= -Dclm.password=

Liigume URL-ile, et avada genereeritud aruanne IQ veebiliideses:

DevSecOps: tööpÔhimÔtted ja SCA vÔrdlus. Esimene osa

Siit nÀete kÔiki poliitikanÔuete rikkumisi erineva tÔsiduse tasemega (Info kuni Security Critical). TÀht D komponendi kÔrval tÀhistab, et komponent on Direct Dependency, ja tÀht T komponendi kÔrval tÀhistab, et komponent on Transitive Dependency, ehk on transitiivne.

Muide, aruanne State of Open Source Security Report 2020 Snykilt teatab, et rohkem kui 70% avatud lÀhtekoodiga haavatavustest, mis on avastatud Node.js, Java ja Ruby-s, asub transitiivsetes sÔltuvustes.

Kui avada ĂŒks Nexus IQ poliitika rikkumistest, saame nĂ€ha komponendi kirjeldust ning Version Graph'i, mis nĂ€itab praeguse versiooni asukohta ajagraafikul ja millal haavatavus enam haavatav ei ole. Graafiku kĂŒĂŒnalde kĂ”rgus nĂ€itab selle komponendi kasutamise populaarsust.

DevSecOps: tööpÔhimÔtted ja SCA vÔrdlus. Esimene osa

Kui minna haavatavuste loomesse ja avada CVE, siis saab lugeda selle haavatavuse kirjeldust, soovitusi parandamiseks ning pÔhjust, miks see komponent rikkumise alla on langenud, s.t. klassi olemasolu. DiskFileitem.class.

DevSecOps: tööpÔhimÔtted ja SCA vÔrdlus. Esimene osa

DevSecOps: tööpÔhimÔtted ja SCA vÔrdlus. Esimene osa

Teeme kokkuvÔtte ainult Java kolmandate osapoole komponentide kohta, jÀttes js komponendid vÀlja. Sulgudes nÀitame neid haavatavusi, mis leiti vÀljaspool NVD-d.

Kokku Nexus IQ:

  • Skaneeritud sĂ”ltuvused: 62
  • Haavatavad sĂ”ltuvused: 16
  • Leitud haavatavused: 42 (8 sonatype db)

Kokku Dependency Check:

  • Skaneeritud sĂ”ltuvused: 47
  • Haavatavad sĂ”ltuvused: 13
  • Leitud haavatavused: 91 (14 sonatype oss)

Kokku Dependency Track:

  • Skaneeritud sĂ”ltuvused: 59
  • Haavatavad sĂ”ltuvused: 10
  • Leitud haavatavused: 51 (1 sonatype oss)

Edasi liikudes analĂŒĂŒsime saadud tulemusi ja selgitame, millised neist haavatavustest on reaalsed defektid ning millised valehĂ€ired.

MĂ€rkus

See ĂŒlevaade ei ole vaidlustamatult tĂ”ene. Autor ei soovinud vĂ€lja tuua ĂŒhte tööriista teiste seas. Ülevaate eesmĂ€rk oli nĂ€idata SCA tööriistade toimimise mehhanisme ja nende tulemuste kontrollimise meetodeid.

Tulemuste vÔrdlemine

Tingimused:

ValehÀire kolmandate osapoolte komponentide haavatavuste osas on:

  • CVE mittevastavus tuvastatud komponendile
  • NĂ€iteks, kui haavatavus on tuvastatud struts2 raamistiku osas ning tööriist viitab struts-tiles raamistiku komponendile, millele see haavatavus ei kehti, on see valehĂ€ire.
  • CVE mittevastavus tuvastatud komponendi versioonile
  • NĂ€iteks, kui haavatavus on seotud versiooniga python > 3.5 ja tööriist mĂ€rgib haavatavaks versiooni 2.7 - see on valehĂ€ire, kuna haavatavus kehtib ainult tooteliini 3.x kohta.
  • CVE dubleerimine
  • NĂ€iteks, kui SCA viitab CVE-le, mis vĂ”imaldab RCE-d, seejĂ€rel viitab SCA sellele samale komponendile CVE-le, mis kehtib Cisco toodetele, millel on see RCE, siis oleks see valehĂ€ire.
  • NĂ€iteks leiti CVE komponendist spring-web, mille jĂ€rel SCA viitas sellele samale CVE teiste Spring Frameworki komponentide osas, samas kui CVE ei puuduta teisi komponente. Sellisel juhul on tegemist vale positiivsega.

Uurimise objektiks on valitud avatud lÀhtekoodiga projekt DVJA. Uuringus osalesid ainult Java komponendid (ilma js-ita).

KokkuvÔtlikud tulemused

Liigume otse kĂ€sitsi ĂŒlevaatuse tulemustesse, kus tuvastatud haavatavused on vĂ€lja toodud. TĂ€ieliku aruande iga CVE kohta saab tutvuda lisas.

KokkuvÔtlikud tulemused kÔikide haavatavuste kohta:

Parameeter
Nexus IQ
Dependency Check
Dependency Track

Kokku tuvastatud haavatavusi
42
91
51

Vale tuvastatud haavatavusi (false positive)
2(4.76%)
62(68,13%)
29(56.86%)

Asjakohaseid haavatavusi ei leitud (false negative)
10
20
27

KokkuvÔtlikud tulemused komponentide kohta:

Parameeter
Nexus IQ
Dependency Check
Dependency Track

Kokku tuvastatud komponente
62
47
59

Kokku haavatavaid komponente
16
13
10

Vale tuvastatud haavatavad komponendid (false positive)
1
5
0

Vale tuvastatud haavatavad komponendid (false positive)
0
6
6

Loome visuaalsed graafikud, et hinnata vale positiivsete ja vale negatiivsete suhet kokkuhaavatavuste arvu suhtes. Horisontaalselt on mÀrgatud komponendid ja vertikaalselt neis tuvastatud haavatavused.

DevSecOps: tööpÔhimÔtted ja SCA vÔrdlus. Esimene osa

DevSecOps: tööpÔhimÔtted ja SCA vÔrdlus. Esimene osa

DevSecOps: tööpÔhimÔtted ja SCA vÔrdlus. Esimene osa

VĂ”rdluseks, sarnast uuringut viis lĂ€bi Sonatype meeskond, testides projekti 1531 komponendiga OWASP Dependency Check abil. Nagu me nĂ€eme, on mĂŒra ja Ă”ige tuvastuse suhe meie tulemustega vĂ”rreldav.

DevSecOps: tööpÔhimÔtted ja SCA vÔrdlus. Esimene osa
Allikas: www.sonatype.com/why-precision-matters-ebook

Vaatame mÔningaid CVE-sid meie skannimise tulemustest, et mÔista selliste tulemuste pÔhjuseid.

Lisateave

№1

Alustame mÔnedest huvitavatest punktidest Sonatype Nexus IQ-st.

Nexus IQ osutab deserialiseerimise probleemile, mis vÔimaldab RCE-d Spring Frameworkis mitu korda. CVE-2016-1000027 spring-web:3.0.5 esmakordselt ja CVE-2011-2894 spring-context:3.0.5 ja spring-core:3.0.5. Alguses nÀib, et haavatavus kordub mitme CVE kaudu. Kui vaadata CVE-2016-1000027 ja CVE-2011-2894 NVD andmebaasis, tundub kÔik esmapilgul selge.

Komponent
Haavatavus

spring-web:3.0.5
CVE-2016-1000027

spring-context:3.0.5
CVE-2011-2894

spring-core:3.0.5
CVE-2011-2894

Kirjeldus CVE-2011-2894 NVD-st:
DevSecOps: tööpÔhimÔtted ja SCA vÔrdlus. Esimene osa

Kirjeldus CVE-2016-1000027 NVD-st:
DevSecOps: tööpÔhimÔtted ja SCA vÔrdlus. Esimene osa

CVE-2011-2894 on iseenesest ĂŒsna tuntud. Aastaaruandes White Source 2011. aastast oli see CVE tunnustatud ĂŒheks kĂ”ige sagedamini esinevaks. Kirjeldusi CVE-2016-100027 kohta on NVD-s pĂ”himĂ”tteliselt vĂ€he ja see nĂ€ib olevat rakendatav ainult Spring Frameworki versioonile 4.1.4. Vaatame reference ja siit muutub kĂ”ik rohkem vĂ”i vĂ€hem selgeks. Artiklist Tenable mĂ”istame, et peale haavatavuse RemoteInvocationSerializingExporter CVE-2011-2894 puhul on haavatavus samuti HttpInvokerServiceExporter. Nexus IQ ĂŒtleb meile seda:

DevSecOps: tööpÔhimÔtted ja SCA vÔrdlus. Esimene osa

Siiski ei ole midagi sellist NVD-s, mistÔttu Dependency Check ja Dependency Track saavad vale negatiivse tulemuse.

Samuti vÔib CVE-2011-2894 kirjelduse pÔhjal aru saada, et haavatavus on tÔeliselt olemas nii spring-context:3.0.5-s kui ka spring-core:3.0.5-s. Kinnitust sellele vÔib leida artiklist, mille autor leidis selle haavatavuse.

#2

Komponent
Haavatavus
Tulemus

struts2-core:2.3.30
CVE-2016-4003
FALSE

Kui uurime haavatavust CVE-2016-4003, siis saame aru, et see fikseeriti juba versioonis 2.3.28, kuid Nexus IQ teatab meile sellest. Haavatavuse kirjelduse lÔpus on mÀrkus:

DevSecOps: tööpÔhimÔtted ja SCA vÔrdlus. Esimene osa

See tÀhendab, et haavatavus eksisteerib ainult koos vananenud JRE versiooniga, millest meid sooviti hoiatada. Siiski peame seda vale positiivseks, kuigi mitte kÔige hirmutavamaks.

#3

Komponent
Haavatavus
Tulemus

xwork-core:2.3.30
CVE-2017-9804
TÕSI

xwork-core:2.3.30
CVE-2017-7672
FALSE

Kui vaatame CVE-2017-9804 ja CVE-2017-7672 kirjeldust, siis saame aru, et probleem on URLValidator class, kusjuures CVE-2017-9804 tuleneb CVE-2017-7672-st. Teise haavatavuse olemasolu ei too mingit kasu, vĂ€lja arvatud, et selle tĂ”sidus tĂ”usis kĂ”rgeks, seetĂ”ttu vĂ”ib seda pidada liigselt mĂŒra.

KokkuvÔttes ei leitud Nexus IQ jaoks teisi vale positiivseid tulemusi.

#4

On mitmeid aspekte, mis eristavad IQ teistest lahendustest.

Komponent
Haavatavus
Tulemus

spring-web:3.0.5
CVE-2020-5398
TÕSI

CVE NVD-s teatab, et see kehtib ainult versioonide 5.2.x kuni 5.2.3, 5.1.x kuni 5.1.13 ja versioonide 5.0.x kuni 5.0.16 jaoks, kuid kui vaatame CVE kirjelduse Nexus IQ-s, siis nÀeme jÀrgmist:
Advisory Deviation Notice: Sonatype’i turuuringute meeskond tuvastas, et see haavatavus anti sisse versioonis 3.0.2.RELEASE ja mitte 5.0.x nagu advisori teates öeldud.

PÀrast seda jÀrgneb sellele haavatavusele PoC, mis teatab, et see on olemas versioonis 3.0.5.

Vale negatiivne saadetakse Dependency Checkile ja Dependency Trackile.

#5

Vaatame false positive tulemusi Dependency Checki ja Dependency Tracki jaoks.

Dependency Check tĂ”stetakse esile seetĂ”ttu, et see kajastab neid CVE-sid, mis kuuluvad kogu raamistikku NVD-s, nendesse komponentidesse, mida need CVE-d ei hĂ”lma. See kehtib CVE-2012-0394, CVE-2013-2115, CVE-2014-0114, CVE-2015-0899, CVE-2015-2992, CVE-2016-1181, CVE-2016-1182 kohta, mida Dependency Check „sidus” struts-taglib:1.3.8 ja struts-tiles-1.3.8-ga. Need komponendid ei oma midagi ĂŒhist sellega, mis on CVE-s kirjeldatud – pĂ€ringute töötlemine, lehtede valideerimine jne. See on tingitud sellest, et ainus seos nende CVE-de ja komponentide vahel on ainult raamistik, mistĂ”ttu Dependency Check pidas seda haavatavuseks.

Sama olukord spring-tx:3.0.5 puhul ja sarnane olukord struts-core:1.3.8 puhul. Struts-core'i sĂ”ltuvuse kontrollimine ja sĂ”ltuvuste jĂ€lgimine tuvastasid palju haavatavusi, mis tegelikult kehtivad struts2-core'i kohta, mis on sisuliselt eraldi raamistik. Antud juhul mĂ”istis Nexus IQ Ă”igesti olukorda ja niisugustes CVE-des, mida ta esitas, mĂ€rkis ta, et struts-core on jĂ”udnud elutsĂŒkli lĂ”ppu ja on vaja liikuda struts2-core'i juurde.

№6

MĂ”nes olukorras on Ă”iglane tĂ”lgendada sĂ”ltuvuse kontrollimise ja sĂ”ltuvuste jĂ€lgimise ilmset viga. EelkĂ”ige CVE-2013-4152, CVE-2013-6429, CVE-2013-6430, CVE-2013-7315, CVE-2014-0054, CVE-2014-0225, CVE-2014-0225, mida sĂ”ltuvuste kontrollimine ja jĂ€lgimine seostavad spring-core'iga:3.0.5, kuuluvad tegelikult spring-web:3.0.5 juurde. Sellegipoolest tuvastas osa neist CVE-dest ka Nexus IQ, kuid IQ mÀÀras need Ă”igesti teisele komponendile. Kuna neid haavatavusi ei leitud spring-core'is, ei saa vĂ€ita, et neid ei ole raamistikus ĂŒldse ja avatud lĂ€htekoodiga tööriistad osutasid Ă”igesti nendele haavatavustele (lihtsalt veidi mööda panid).

JĂ€reldused

Nagu me nĂ€eme, ei anna tuvastatud haavatavuste usutavuse mÀÀramine kĂ€sitsi ĂŒlevaate korralikku, sel pĂ”hjusel tekivad vaidlusalused hetked. Tulemused on sellised, et Nexus IQ-l on madalaim valepositiivsete mÀÀr ja kĂ”rgeim tĂ€psus.

Esiteks on see seotud sellega, et Sonatype'i meeskond laiendas iga NVD-s esitatud haavatavuse CVE kirjeldust, tÀpsustades, mis klassi vÔi funktsiooni haavatavus kuulub kahe vÔi teise komponendi versiooni osas, viies lÀbi tÀiendavaid uuringuid (nÀiteks tuvastades haavatavusi vanemate tarkvaraversioonide pÔhjal).

Olulist rolli mÀngivad ka need haavatavused, mis ei jÔudnud NVD-sse, kuid on siiski Sonatype'i andmebaasis SONATYPE mÀrgisega. Vastavalt aruandele Avatud LÀhtekoodi Julgeoleku Haavatavuste Oleku Aruanne 2020 45% avatud lÀhtekoodiga haavatavustest ei registreerita NVD-s. Vastavalt WhiteSource'i andmebaasile avaldatakse vaid 29% kÔikidest avatud lÀhtekoodiga haavatavustest, mis on registreeritud vÀljaspool NVD-d, seetÔttu on nii oluline otsida haavatavusi ka teistest allikatest.

KokkuvĂ”ttes annab sĂ”ltuvuste kontroll suurtes kogustes mĂŒra, jĂ€ttes kĂ”rvale osa haavatavatest komponentidest. SĂ”ltuvuste jĂ€lgimine genereerib vĂ€hem mĂŒra ja tuvastab suure arvu komponente, mis visuaalselt ei riiva silma veebiliideses.

Siiski nĂ€itab praktika, et just avatud lĂ€htekood peaks olema esimene samm DevSecOpsi kĂŒpsuse poole. Esimene asi, mille ĂŒle tasub mĂ”elda SCA integreerimisel arendusse, on protsessid, nimelt arutelu juhtkonna ja teiste osakondadega selle ĂŒle, millised peaksid olema ideaalsed protsessid teie organisatsioonis. VĂ”ib juhtuda, et teie organisatsiooni jaoks katab Dependency Check vĂ”i Dependency Track alguses kĂ”ik Ă€ri vajadused, samas kui ettevĂ”tte lahendused on loogiline jĂ€tk, kui rakenduste keerukus kasvab.

Lisa A. Tulemused koostisosade osas
MĂ€rgistused:

  • High — kĂ”rge ja kriitilise taseme haavatavused komponendis
  • Medium — keskmise taseme haavatavused komponendis
  • TRUE — Ă”igesti tuvastatud haavatavus (True positive issue)
  • FALSE — vale hĂ€ire (False positive issue)

Komponent
Nexus IQ
Dependency Check
Dependency Track
Tulemus

dom4j: 1.6.1
High
High
High
TÕSI

log4j-core: 2.3
High
High
High
TÕSI

log4j: 1.2.14
High
High
—
TÕSI

commons-collections:3.1
High
High
High
TÕSI

commons-fileupload:1.3.2
High
High
High
TÕSI

commons-beanutils:1.7.0
High
High
High
TÕSI

commons-codec:1:10
Medium
—
—
TÕSI

mysql-connector-java:5.1.42
High
High
High
TÕSI

spring-expression:3.0.5
High
komponenti ei leitud

TÕSI

spring-web:3.0.5
High
komponenti ei leitud
High
TÕSI

spring-context:3.0.5
Medium
komponenti ei leitud
—
TÕSI

spring-core:3.0.5
Medium
High
High
TÕSI

struts2-config-browser-plugin:2.3.30
Medium
—
—
TÕSI

spring-tx:3.0.5
—
High
—
FALSE

struts-core:1.3.8
High
High
High
TÕSI

xwork-core: 2.3.30
High
—
—
TÕSI

struts2-core: 2.3.30
High
High
High
TÕSI

struts-taglib:1.3.8
—
High
—
FALSE

struts-tiles-1.3.8
—
High
—
FALSE

Lisa B. Tulemused haavatavuste osas
MĂ€rgistused:

  • High — kĂ”rge ja kriitilise taseme haavatavused komponendis
  • Medium — keskmise taseme haavatavused komponendis
  • TRUE — Ă”igesti tuvastatud haavatavus (True positive issue)
  • FALSE — vale hĂ€ire (False positive issue)

Komponent
Nexus IQ
Dependency Check
Dependency Track
TÔsidus
Tulemus
Kommentaar

dom4j: 1.6.1
CVE-2018-1000632
CVE-2018-1000632
CVE-2018-1000632
High
TÕSI

CVE-2020-10683
CVE-2020-10683
CVE-2020-10683
High
TÕSI

log4j-core: 2.3
CVE-2017-5645
CVE-2017-5645
CVE-2017-5645
High
TÕSI

CVE-2020-9488
CVE-2020-9488
CVE-2020-9488
Madal
TÕSI

log4j: 1.2.14
CVE-2019-17571
CVE-2019-17571
—
High
TÕSI

—
CVE-2020-9488
—
Madal
TÕSI

SONATYPE-2010-0053
—
—
High
TÕSI

commons-collections:3.1
—
CVE-2015-6420
CVE-2015-6420
High
FALSE
Duplikaat RCE(OSSINDEX)

—
CVE-2017-15708
CVE-2017-15708
High
FALSE
Duplikaat RCE(OSSINDEX)

SONATYPE-2015-0002
RCE (OSSINDEX)
RCE(OSSINDEX)
High
TÕSI

commons-fileupload:1.3.2
CVE-2016-1000031
CVE-2016-1000031
CVE-2016-1000031
High
TÕSI

SONATYPE-2014-0173
—
—
Medium
TÕSI

commons-beanutils:1.7.0
CVE-2014-0114
CVE-2014-0114
CVE-2014-0114
High
TÕSI

—
CVE-2019-10086
CVE-2019-10086
High
FALSE
Haavatavus kehtib ainult versioonidele 1.9.2+

commons-codec:1:10
SONATYPE-2012-0050
—
—
Medium
TÕSI

mysql-connector-java:5.1.42
CVE-2018-3258
CVE-2018-3258
CVE-2018-3258
High
TÕSI

CVE-2019-2692
CVE-2019-2692
—
Medium
TÕSI

—
CVE-2020-2875
—
Medium
FALSE
Same vulnerability as CVE-2019-2692, but with the note 'attacks may significantly impact additional products'

—
CVE-2017-15945
—
High
FALSE
Ei kehti mysql-connector-java jaoks

—
CVE-2020-2933
—
Madal
FALSE
Duplikaat CVE-2020-2934-le

CVE-2020-2934
CVE-2020-2934
—
Medium
TÕSI

spring-expression:3.0.5
CVE-2018-1270
komponenti ei leitud
—
High
TÕSI

CVE-2018-1257
—
—
Medium
TÕSI

spring-web:3.0.5
CVE-2016-1000027
komponenti ei leitud
—
High
TÕSI

CVE-2014-0225
—
CVE-2014-0225
High
TÕSI

CVE-2011-2730
—
—
High
TÕSI

—
—
CVE-2013-4152
Medium
TÕSI

CVE-2018-1272
—
—
High
TÕSI

CVE-2020-5398
—
—
High
TÕSI
TÔend IQ kasuks: 'Sonatype'i turvauuringute meeskond avastas, et see haavatavus tutvustati versioonis 3.0.2.RELEASE, mitte 5.0.x, nagu nÔuandes öeldud.'

CVE-2013-6429
—
—
Medium
TÕSI

CVE-2014-0054
—
CVE-2014-0054
Medium
TÕSI

CVE-2013-6430
—
—
Medium
TÕSI

spring-context:3.0.5
CVE-2011-2894
komponenti ei leitud
—
Medium
TÕSI

spring-core:3.0.5
—
CVE-2011-2730
CVE-2011-2730
High
TÕSI

CVE-2011-2894
CVE-2011-2894
CVE-2011-2894
Medium
TÕSI

—
—
CVE-2013-4152
Medium
FALSE
Sama haavatavus spring-webis

—
CVE-2013-4152
—
Medium
FALSE
Haavatavus kehtib spring-web komponendi suhtes

—
CVE-2013-6429
CVE-2013-6429
Medium
FALSE
Haavatavus kehtib spring-web komponendi suhtes

—
CVE-2013-6430
—
Medium
FALSE
Haavatavus kehtib spring-web komponendi suhtes

—
CVE-2013-7315
CVE-2013-7315
Medium
FALSE
SPLIT CVE-2013-4152-st. + Haavatavus kehtib spring-web komponendi suhtes

—
CVE-2014-0054
CVE-2014-0054
Medium
FALSE
Haavatavus kehtib spring-web komponendi suhtes

—
CVE-2014-0225
—
High
FALSE
Haavatavus kehtib spring-web komponendi suhtes

—
—
CVE-2014-0225
High
FALSE
Sama haavatavus spring-webis

—
CVE-2014-1904
CVE-2014-1904
Medium
FALSE
Haavatavus kehtib spring-web-mvc komponendi suhtes

—
CVE-2014-3625
CVE-2014-3625
Medium
FALSE
Haavatavus kehtib spring-web-mvc komponendi suhtes

—
CVE-2016-9878
CVE-2016-9878
High
FALSE
Haavatavus kehtib spring-web-mvc komponendi suhtes

—
CVE-2018-1270
CVE-2018-1270
High
FALSE
spring-expression / spring-messages jaoks

—
CVE-2018-1271
CVE-2018-1271
Medium
FALSE
Haavatavus kehtib spring-web-mvc komponendi suhtes

—
CVE-2018-1272
CVE-2018-1272
High
TÕSI

CVE-2014-3578
CVE-2014-3578 (OSSINDEX)
CVE-2014-3578
Medium
TÕSI

SONATYPE-2015-0327
—
—
Madal
TÕSI

struts2-config-browser-plugin:2.3.30
SONATYPE-2016-0104
—
—
Medium
TÕSI

spring-tx:3.0.5
—
CVE-2011-2730
—
High
FALSE
Haavatavus ei kehti spring-tx jaoks

—
CVE-2011-2894
—
High
FALSE
Haavatavus ei kehti spring-tx jaoks

—
CVE-2013-4152
—
Medium
FALSE
Haavatavus ei kehti spring-tx jaoks

—
CVE-2013-6429
—
Medium
FALSE
Haavatavus ei kehti spring-tx jaoks

—
CVE-2013-6430
—
Medium
FALSE
Haavatavus ei kehti spring-tx jaoks

—
CVE-2013-7315
—
Medium
FALSE
Haavatavus ei kehti spring-tx jaoks

—
CVE-2014-0054
—
Medium
FALSE
Haavatavus ei kehti spring-tx jaoks

—
CVE-2014-0225
—
High
FALSE
Haavatavus ei kehti spring-tx jaoks

—
CVE-2014-1904
—
Medium
FALSE
Haavatavus ei kehti spring-tx jaoks

—
CVE-2014-3625
—
Medium
FALSE
Haavatavus ei kehti spring-tx jaoks

—
CVE-2016-9878
—
High
FALSE
Haavatavus ei kehti spring-tx jaoks

—
CVE-2018-1270
—
High
FALSE
Haavatavus ei kehti spring-tx jaoks

—
CVE-2018-1271
—
Medium
FALSE
Haavatavus ei kehti spring-tx jaoks

—
CVE-2018-1272
—
Medium
FALSE
Haavatavus ei kehti spring-tx jaoks

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

Medium
FASLE
Haavatavus Struts 2 suhtes

—
CVE-2012-0391 (OSSINDEX)
CVE-2012-0391
High
FALSE
Haavatavus Struts 2 suhtes

—
CVE-2014-0094 (OSSINDEX)
CVE-2014-0094
Medium
FALSE
Haavatavus Struts 2 suhtes

—
CVE-2014-0113 (OSSINDEX)
CVE-2014-0113
High
FALSE
Haavatavus Struts 2 suhtes

CVE-2016-1182
3VE-2016-1182
—
High
TÕSI

—
—
CVE-2011-5057
Medium
FALSE
Haavatavus Struts 2 suhtes

—
CVE-2012-0392 (OSSINDEX)
CVE-2012-0392
High
FALSE
Haavatavus Struts 2 suhtes

—
CVE-2012-0393 (OSSINDEX)
CVE-2012-0393
Medium
FALSE
Haavatavus Struts 2 suhtes

CVE-2015-0899
CVE-2015-0899
—
High
TÕSI

—
CVE-2012-0394
CVE-2012-0394
Medium
FALSE
Haavatavus Struts 2 suhtes

—
CVE-2012-0838 (OSSINDEX)
CVE-2012-0838
High
FALSE
Haavatavus Struts 2 suhtes

—
CVE-2013-1965 (OSSINDEX)
CVE-2013-1965
High
FALSE
Haavatavus Struts 2 suhtes

—
CVE-2013-1966 (OSSINDEX)
CVE-2013-1966
High
FASLE
Haavatavus Struts 2 suhtes

—
CVE-2013-2115
CVE-2013-2115
High
FASLE
Haavatavus Struts 2 suhtes

—
CVE-2013-2134 (OSSINDEX)
CVE-2013-2134
High
FASLE
Haavatavus Struts 2 suhtes

—
CVE-2013-2135 (OSSINDEX)
CVE-2013-2135
High
FASLE
Haavatavus Struts 2 suhtes

CVE-2014-0114
CVE-2014-0114
—
High
TÕSI

—
CVE-2015-2992
CVE-2015-2992
Medium
FALSE
Haavatavus Struts 2 suhtes

—
CVE-2016-0785 (OSSINDEX)
CVE-2016-0785
High
FALSE
Haavatavus Struts 2 suhtes

CVE-2016-1181
CVE-2016-1181
—
High
TÕSI

—
CVE-2016-4003 (OSSINDEX)
CVE-2016-4003
High
FALSE
Haavatavus Struts 2 suhtes

xwork-core:2.3.30
CVE-2017-9804
—
—
High
TÕSI

SONATYPE-2017-0173
—
—
High
TÕSI

CVE-2017-7672
—
—
High
FALSE
Duubel k CVE-2017-9804

SONATYPE-2016-0127
—
—
High
TÕSI

struts2-core:2.3.30
—
CVE-2016-6795
CVE-2016-6795
High
TÕSI

—
CVE-2017-9787
CVE-2017-9787
High
TÕSI

—
CVE-2017-9791
CVE-2017-9791
High
TÕSI

—
CVE-2017-9793
—
High
FALSE
Duubel k CVE-2018-1327

—
CVE-2017-9804
—
High
TÕSI

—
CVE-2017-9805
CVE-2017-9805
High
TÕSI

CVE-2016-4003
—
—
Medium
FALSE
Kehtib Apache Struts 2.x kuni 2.3.28, kuid see on versioon 2.3.30. Siiski, nagu kÀskluses mÀrgitud, kehtib CVE kÔikide Struts 2 versioonide puhul, kui kasutatakse JRE 1.7 ja vanemat. Tundub, et siin on otsustatud ettevaatlikult tegutseda, kuid rohkem sarnaneb see valehÀirega.

—
CVE-2018-1327
CVE-2018-1327
High
TÕSI

CVE-2017-5638
CVE-2017-5638
CVE-2017-5638
High
TÕSI
Just see haavatavus, mille kasuks kurjategijad tegid kasutuse Equifaxis 2017. aastal

CVE-2017-12611
CVE-2017-12611
—
High
TÕSI

CVE-2018-11776
CVE-2018-11776
CVE-2018-11776
High
TÕSI

struts-taglib:1.3.8
—
CVE-2012-0394
—
Medium
FALSE
Struts2-core jaoks

—
CVE-2013-2115
—
High
FALSE
Struts2-core jaoks

—
CVE-2014-0114
—
High
FALSE
Commons-beanutils jaoks

—
CVE-2015-0899
—
High
FALSE
Ei kehti taglib'i kohta

—
CVE-2015-2992
—
Medium
FALSE
Kehtib struts2-core'i kohta

—
CVE-2016-1181
—
High
FALSE
Ei kehti taglib'i kohta

—
CVE-2016-1182
—
High
FALSE
Ei kehti taglib'i kohta

struts-tiles-1.3.8
—
CVE-2012-0394
—
Medium
FALSE
Struts2-core jaoks

—
CVE-2013-2115
—
High
FALSE
Struts2-core jaoks

—
CVE-2014-0114
—
High
FALSE
Commons-beanutils'i all

—
CVE-2015-0899
—
High
FALSE
Ei kehti tiles'i kohta

—
CVE-2015-2992
—
Medium
FALSE
Struts2-core jaoks

—
CVE-2016-1181
—
High
FALSE
Ei kehti taglib'i kohta

—
CVE-2016-1182
—
High
FALSE
Ei kehti taglib'i kohta

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster