{"id":92519,"date":"2020-08-28T07:42:26","date_gmt":"2020-08-28T05:42:26","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/devsecops-princzipy-raboty-i-sravnenie-sca-chast-pervaya"},"modified":"2020-08-28T07:42:26","modified_gmt":"2020-08-28T05:42:26","slug":"devsecops-princzipy-raboty-i-sravnenie-sca-chast-pervaya","status":"publish","type":"post","link":"https:\/\/prohoster.info\/nl\/blog\/administrirovanie\/devsecops-princzipy-raboty-i-sravnenie-sca-chast-pervaya","title":{"rendered":"DevSecOps: principes van werking en vergelijking van SCA. Deel \u00e9\u00e9n","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>De betekenis van Software Composition Analysis (SCA) in het ontwikkelingsproces groeit naarmate er jaarlijkse rapporten over kwetsbaarheden in open source bibliotheken verschijnen, gepubliceerd door bedrijven als Synopsys, Sonatype, Snyk en White Source. Volgens het rapport <noindex><a rel=\"nofollow\" href=\"https:\/\/www.whitesourcesoftware.com\/open-source-vulnerability-management-report\/\">De Staat van Open Source Beveiligingskwetsbaarheden 2020<\/a><\/noindex> is het aantal ontdekte kwetsbaarheden in open source in 2019 bijna met 1,5 keer gestegen vergeleken met het voorgaande jaar, terwijl componenten met open source in 60% tot 80% van de projecten worden gebruikt. Volgens onafhankelijke bronnen zijn SCA-processen een aparte praktijk binnen OWASP SAMM en BSIMM als een maatstaf voor volwassenheid. In de eerste helft van 2020 heeft OWASP een nieuwe standaard gepubliceerd, de OWASP Software Component Verification Standard (SCVS), die best practices biedt voor het verifi\u00ebren van externe componenten in de softwareleveringsketen.<\/p>\n<p><img decoding=\"async\" alt=\"DevSecOps: principes van werking en vergelijking van SCA. Deel \u00e9\u00e9n\" src=\"\/wp-content\/uploads\/2020\/08\/2a82121d42f9d317f3862a2d7869fdd6.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nEen van de meest significante gevallen <noindex><a rel=\"nofollow\" href=\"https:\/\/xakep.ru\/2017\/09\/14\/equifax-dejstvitelno-vzlomali-cherez-bag-v-apache-struts-no-uyazvimost-okazalas-staroj\/\">vond plaats<\/a><\/noindex> met het bedrijf Equifax in mei 2017. Onbekende aanvallers verkregen toegang tot de informatie van 143 miljoen Amerikanen, waaronder volledige namen, adressen, sociale zekerheidsnummers en rijbewijzen. In 209.000 gevallen werd ook informatie over de creditcards van de slachtoffers vermeld. Deze datalek vond plaats als gevolg van de exploitatie van een kritieke kwetsbaarheid in Apache Struts 2 (CVE-2017-5638), terwijl de patch al in maart 2017 was vrijgegeven. Het bedrijf had twee maanden om de update te installeren, maar niemand maakte zich hier zorgen over.<\/p>\n<p>In dit artikel zal de keuze van een SCA-tool worden besproken vanuit het perspectief van de kwaliteit van de analyse-resultaten. Ook zal er een functionele vergelijking van de tools worden gepresenteerd. Het proces van integratie in CI\/CD en integratiemogelijkheden zullen we in toekomstige publicaties behandelen. Een uitgebreide lijst van tools is gepresenteerd door OWASP <noindex><a rel=\"nofollow\" href=\"https:\/\/owasp.org\/www-community\/Component_Analysis\">op hun website<\/a><\/noindex>, maar in deze review zullen we alleen ingaan op de meest populaire open source tool Dependency Check, de iets minder bekende open source platform Dependency Track en de Enterprise-oplossing Sonatype Nexus IQ. We zullen ook bekijken hoe deze oplossingen werken en de verkregen resultaten vergelijken op valse positieven.<\/p>\n<p><img decoding=\"async\" alt=\"DevSecOps: principes van werking en vergelijking van SCA. Deel \u00e9\u00e9n\" src=\"\/wp-content\/uploads\/2020\/08\/0580758082abd9950aa9c483d546f1ca.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Werking principe<\/h3>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/jeremylong.github.io\/DependencyCheck\/\">Dependency Check<\/a><\/noindex> \u2014 is a utility (CLI, maven, jenkins module, ant) that analyzes project files, collects fragments of information about dependencies (package name, groupid, specification title, version\u2026), constructs a CPE string \u2014 (Common Platform Enumeration), Package URL (PURL), and detects vulnerabilities for CPE\/PURL from databases (NVD, Sonatype OSS Index, NPM Audit API\u2026), and then generates a one-time report in HTML, JSON, XML format\u2026<\/p>\n<p>Let\u2019s take a look at what CPE looks like:<\/p>\n<pre><code class=\"plaintext\">cpe:2.3:part:vendor:product:version:update:edition:language:sw_edition:target_sw:target_hw:other<\/code><\/pre>\n<p><\/p>\n<ul>\n<li><b>Part:<\/b> Indication of whether the component relates to an application (a), operating system (o), hardware (h) (Mandatory field)<\/li>\n<li><b>Vendor:<\/b> The name of the product manufacturer (Mandatory field)<\/li>\n<li><b>Product:<\/b> The name of the product (Mandatory field)<\/li>\n<li><b>Versie:<\/b> Version of the component (Deprecated field)<\/li>\n<li><b>Update:<\/b> Package update<\/li>\n<li><b>Edition:<\/b> Inherited version (Deprecated field)<\/li>\n<li><b>Language:<\/b> The language defined in RFC-5646<\/li>\n<li><b>SW Edition:<\/b> Software version<\/li>\n<li><b>Target SW:<\/b> The software environment in which the product operates<\/li>\n<li><b>Target HW:<\/b> The hardware environment in which the product operates<\/li>\n<li><b>Other:<\/b> Information about the supplier or product<\/li>\n<\/ul>\n<p>\nAn example of CPE looks as follows:<\/p>\n<pre><code class=\"plaintext\">cpe:2.3:a:pivotal_software:spring_framework:3.0.0:*:*:*:*:*:*:*<\/code><\/pre>\n<p>\nThe string means that CPE version 2.3 describes an application component from the manufacturer <code>pivotal_software <\/code>with the name <code>spring_framework<\/code> version 3.0.0. If we look up the vulnerability <noindex><a rel=\"nofollow\" href=\"https:\/\/nvd.nist.gov\/vuln\/detail\/CVE-2014-0225\">CVE-2014-0225<\/a><\/noindex> in the NVD, we can see this CPE mentioned. The first issue to immediately pay attention to is that the CVE in the NVD indicates a problem with the framework, not a specific component. That is, if developers are closely tied to the framework, and the identified vulnerability does not concern the modules used by developers, the security specialist will have to analyze this CVE and think about upgrading.<\/p>\n<p>The URL is also used by SCA tools. The package URL format is as follows:<\/p>\n<pre><code class=\"plaintext\">scheme:type\/namespace\/name@version?qualifiers#subpath<\/code><\/pre>\n<p><\/p>\n<ul>\n<li><b>Scheme: <\/b>Er zal altijd 'pkg' zijn, dat aangeeft dat dit een URL van een pakket is (Verplicht item)<\/li>\n<li><b>Type:<\/b> The 'type' of the package or 'protocol' of the package, such as maven, npm, nuget, gem, pypi, etc. (Mandatory field)<\/li>\n<li><b>Namespace:<\/b> Some prefix of the name, like Maven group ID, Docker image owner, user or organization on GitHub. Optional and depends on the type.<\/li>\n<li><b>Naam:<\/b> Package name (Mandatory field)<\/li>\n<li><b>Versie:<\/b> Package version<\/li>\n<li><b>Qualifiers:<\/b> Aanvullende kwalificatiegegevens voor het pakket, zoals besturingssysteem, architectuur, distributie, enz. Optioneel en afhankelijk van het type item.<\/li>\n<li><b>Subpad:<\/b> Aanvullend pad in het pakket ten opzichte van de root van het pakket<\/li>\n<\/ul>\n<p>\nBijvoorbeeld:<\/p>\n<pre><code class=\"plaintext\">pkg:golang\/google.golang.org\/genproto#googleapis\/api\/annotations\npkg:maven\/org.apache.commons\/io@1.3.4\npkg:pypi\/django-package@1.11.1.dev1<\/code><\/pre>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/dependencytrack.org\/\">Dependency Track<\/a><\/noindex> \u2014 on-premise webplatform dat kant-en-klare Bill of Materials (BOM) accepteert <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/CycloneDX\">CycloneDX<\/a><\/noindex> en <noindex><a rel=\"nofollow\" href=\"https:\/\/spdx.org\/licenses\/\">SPDX<\/a><\/noindex>, dat wil zeggen kant-en-klare specificaties van bestaande afhankelijkheden. Dit is een XML-bestand met beschrijving van afhankelijkheden \u2014 naam, hashes, pakket-URL, uitgever, licentie. Vervolgens analyseert Dependency Track de BOM, bekijkt de vastgestelde afhankelijkheden met CVE's uit de kwetsbaarhedendatabase (NVD, Sonatype OSS Index \u2026), waarna grafieken worden gebouwd en statistieken worden berekend, terwijl de status van kwantiteiten van componenten regelmatig wordt bijgewerkt. <\/p>\n<p>Een voorbeeld van hoe een BOM in XML-formaat eruit kan zien:<\/p>\n<pre><code class=\"xml\">Apache\n      org.apache.tomcat\n      tomcat-catalina\n      9.0.14\n      \n        3942447fac867ae5cdb3229b658f4d48\n        e6b1000b94e835ffd37f4c6dcbdad43f4b48a02a\n        f498a8ff2dd007e29c2074f5e4b01a9a01775c3ff3aeaf6906ea503bc5791b7b\n        e8f33e424f3f4ed6db76a482fde1a5298970e442c531729119e37991884bdffab4f9426b7ee11fccd074eeda0634d71697d6f88a460dce0ac8d627a29f7d1282\n      \n      \n        \n          Apache-2.0\n        \n      \n      pkg:maven\/org.apache.tomcat\/tomcat-catalina@9.0.14\n    \n      <!-- More components here --><\/code><\/pre>\n<p>\nDe BOM kan niet alleen worden gebruikt als invoerparameters voor Dependency Track, maar ook voor het inventariseren van softwarecomponenten in de toeleveringsketen, bijvoorbeeld voor het verstrekken aan de softwareklant. In 2014 werd er in de VS zelfs een wet voorgesteld <noindex><a rel=\"nofollow\" href=\"https:\/\/www.congress.gov\/bill\/113th-congress\/house-bill\/5793\">\u00abCyber Supply Chain Management and Transparency Act of 2014\u00bb<\/a><\/noindex>, die stelde dat bij de aanschaf van software elke overheidsinstantie een BOM moest aanvragen om het gebruik van kwetsbare componenten te voorkomen. Deze wet is echter nooit in werking getreden.<\/p>\n<p>Terugkomend op SCA, heeft Dependency Track kant-en-klare integraties met notificatieplatforms zoals Slack, en kwetsbaarheidsbeheersystemen zoals Kenna Security. Het is ook vermeldenswaard dat Dependency Track bovendien verouderde versies van pakketten identificeert en informatie over licenties verstrekt (door ondersteuning voor SPDX).<\/p>\n<p>Als we het specifiek hebben over de kwaliteit van SCA, dan is er een fundamenteel verschil.<\/p>\n<p>Dependency Track accepteert geen project als invoer, maar accepteert specifiek een BOM. Dit betekent dat als we het project willen controleren, we eerst bom.xml moeten genereren, bijvoorbeeld met behulp van CycloneDX. Op die manier is Dependency Track direct afhankelijk van CycloneDX. Tegelijkertijd biedt dit mogelijkheden voor maatwerk. Zo heeft het OZON-team geschreven <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ozonru\/cyclonedx-go\">CycloneDX-module<\/a><\/noindex> voor het genereren van BOM-bestanden voor projecten in Golang, met als doel verdere scanning via Dependency Track.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/sonatype.ru\/#nexusiq\">Nexus IQ<\/a><\/noindex> is een commerci\u00eble SCA-oplossing van Sonatype, die deel uitmaakt van het Sonatype-ecosysteem, dat ook de Nexus Repository Manager omvat. Nexus IQ kan zowel WAR-archieven (voor Java-projecten) via de webinterface of API, als BOM accepteren, als uw organisatie niet op tijd is overgestapt van CycloneDX naar de nieuwe oplossing. In tegenstelling tot open-source oplossingen kijkt IQ niet alleen naar CP\/PURL bij de ge\u00efdentificeerde component en de bijbehorende kwetsbaarheid in de database, maar houdt het ook rekening met eigen onderzoek, bijvoorbeeld de naam van de kwetsbare functie of klasse. De mechanismen van IQ zullen later worden besproken bij het analyseren van de resultaten.<\/p>\n<p>Laten we een aantal conclusies trekken over de functionele kenmerken, evenals de ondersteunde talen voor analyse:<\/p>\n<p>Taal<br \/>\nNexus IQ<br \/>\nDependency Check<br \/>\nDependency Track<\/p>\n<p>Java<br \/>\n+<br \/>\n+<br \/>\n+<\/p>\n<p>C\/C++<br \/>\n+<br \/>\n+<br \/>\n\u2014<\/p>\n<p>C#<br \/>\n+<br \/>\n+<br \/>\n\u2014<\/p>\n<p>.Net<br \/>\n+<br \/>\n+<br \/>\n+<\/p>\n<p>Erlang<br \/>\n\u2014<br \/>\n\u2014<br \/>\n+<\/p>\n<p>JavaScript (NodeJS)<br \/>\n+<br \/>\n+<br \/>\n+<\/p>\n<p>PHP<br \/>\n+<br \/>\n+<br \/>\n+<\/p>\n<p>Python<br \/>\n+<br \/>\n+<br \/>\n+<\/p>\n<p>Ruby<br \/>\n+<br \/>\n+<br \/>\n+<\/p>\n<p>Perl<br \/>\n\u2014<br \/>\n\u2014<br \/>\n\u2014<\/p>\n<p>Scala<br \/>\n+<br \/>\n+<br \/>\n+<\/p>\n<p>Objective C<br \/>\n+<br \/>\n+<br \/>\n\u2014<\/p>\n<p>Swift<br \/>\n+<br \/>\n+<br \/>\n\u2014<\/p>\n<p>R<br \/>\n+<br \/>\n\u2014<br \/>\n\u2014<\/p>\n<p>Go<br \/>\n+<br \/>\n+<br \/>\n+<\/p>\n<p>\nFunctionele mogelijkheden<\/p>\n<p>Functionele mogelijkheden<br \/>\nNexus IQ<br \/>\nDependency Check<br \/>\nDependency Track<\/p>\n<p>De mogelijkheid om de componenten die in de broncode worden gebruikt op licentiegetrouwdheid te controleren<br \/>\n+<br \/>\n\u2014<br \/>\n+<\/p>\n<p>De mogelijkheid om kwetsbaarheden en licentiegetrouwdheid te scannen en analyseren voor Docker-images<br \/>\n+ Integratie met Clair<br \/>\n\u2014<br \/>\n\u2014<\/p>\n<p>De mogelijkheid om een beveiligingsbeleid in te stellen voor het gebruik van open-source bibliotheken<br \/>\n+<br \/>\n\u2014<br \/>\n\u2014<\/p>\n<p>De mogelijkheid om repositories met open source op kwetsbare componenten te scannen<br \/>\n+ RubyGems, Maven, NPM, Nuget, Pypi, Conan, Bower, Conda, Go, p2, R, Yum, Helm, Docker, CocoaPods, Git LFS<br \/>\n\u2014<br \/>\n+ Hex, RubyGems, Maven, NPM, Nuget, Pypi<\/p>\n<p>Aanwezigheid van een gespecialiseerde onderzoeksgroep<br \/>\n+<br \/>\n\u2014<br \/>\n\u2014<\/p>\n<p>Werken in een gesloten omgeving<br \/>\n+<br \/>\n+<br \/>\n+<\/p>\n<p>Gebruik van externe databases<br \/>\n+ Gesloten database van Sonatype<br \/>\n+ Sonatype OSS, NPM Public Advisors<br \/>\n+ Sonatype OSS, NPM Public Advisors, RetireJS, VulnDB, ondersteuning voor een eigen kwetsbaarhedendatabase<\/p>\n<p>De mogelijkheid om open-source componenten te filteren bij het proberen te uploaden in de ontwikkelingsomgeving volgens de geconfigureerde beleidsregels<br \/>\n+<br \/>\n\u2014<br \/>\n\u2014<\/p>\n<p>Aanbevelingen voor het verhelpen van kwetsbaarheden, inclusief links naar oplossingen<br \/>\n+<br \/>\n+- (afhankelijk van de beschrijving in publieke databases)<br \/>\n+- (afhankelijk van de beschrijving in publieke databases)<\/p>\n<p>Ranking van ontdekte kwetsbaarheden op basis van ernst<br \/>\n+<br \/>\n+<br \/>\n+<\/p>\n<p>Rolmodel voor toegang<br \/>\n+<br \/>\n\u2014<br \/>\n+<\/p>\n<p>Ondersteuning voor de opdrachtregelinterface CLI<br \/>\n+<br \/>\n+<br \/>\n+- (alleen voor CycloneDX)<\/p>\n<p>Selectie \/ sortering van kwetsbaarheden op gedefinieerde criteria<br \/>\n+<br \/>\n\u2014<br \/>\n+<\/p>\n<p>Dashboard voor de status van applicaties<br \/>\n+<br \/>\n\u2014<br \/>\n+<\/p>\n<p>Genereren van rapporten in PDF-formaat<br \/>\n+<br \/>\n\u2014<br \/>\n\u2014<\/p>\n<p>Genereren van rapporten in JSONCSV-formaat<br \/>\n+<br \/>\n+<br \/>\n\u2014<\/p>\n<p>Ondersteuning voor de Russische taal<br \/>\n\u2014<br \/>\n\u2014<br \/>\n\u2014<\/p>\n<p>\nIntegratiemogelijkheden<\/p>\n<p>Integratie<br \/>\nNexus IQ<br \/>\nDependency Check<br \/>\nDependency Track<\/p>\n<p>Integratie met LDAP\/Active Directory<br \/>\n+<br \/>\n\u2014<br \/>\n+<\/p>\n<p>Integratie met het continue integratiesysteem (continous integration) Bamboo<br \/>\n+<br \/>\n\u2014<br \/>\n\u2014<\/p>\n<p>Integratie met het continue integratiesysteem (continous integration) TeamCity<br \/>\n+<br \/>\n\u2014<br \/>\n\u2014<\/p>\n<p>Integratie met het continue integratiesysteem (continous integration) GitLab<br \/>\n+<br \/>\n+- (als een plugin voor GitLab)<br \/>\n+<\/p>\n<p>Integratie met het continue integratiesysteem (continous integration) Jenkins<br \/>\n+<br \/>\n+<br \/>\n+<\/p>\n<p>Beschikbaarheid van plugins voor IDE<br \/>\n+ IntelliJ, Eclipse, Visual Studio<br \/>\n\u2014<br \/>\n\u2014<\/p>\n<p>Ondersteuning voor aangepaste integratie via webservices (API) van het instrument<br \/>\n+<br \/>\n\u2014<br \/>\n+<\/p>\n<h3>Dependency Check<\/h3>\n<p><\/p>\n<h4>Eerste start<\/h4>\n<p>\nWe zullen Dependency Check uitvoeren op een opzettelijk kwetsbare applicatie <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/appsecco\/dvja\">DVJA<\/a><\/noindex>.<\/p>\n<p>Hiervoor gebruiken we <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/jeremylong\/DependencyCheck\">Dependency Check Maven Plugin<\/a><\/noindex>:<\/p>\n<pre><code class=\"plaintext\">mvn org.owasp:dependency-check-maven:check<\/code><\/pre>\n<p>\nAls resultaat zal er een dependency-check-report.html verschijnen in de directory target.<\/p>\n<p><img decoding=\"async\" alt=\"DevSecOps: principes van werking en vergelijking van SCA. Deel \u00e9\u00e9n\" src=\"\/wp-content\/uploads\/2020\/08\/d5b9fe5a8eb68569387dd0bfd38af459.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLaten we het bestand openen. Na de samenvatting van het totale aantal kwetsbaarheden kunnen we informatie zien over kwetsbaarheden met een hoge Severity en Confidence, met vermelding van het pakket, CPE, en het aantal CVE.<\/p>\n<p>Daarna volgt meer gedetailleerde informatie, zoals de basis waarop de beslissing is genomen (evidence), dat wil zeggen een BOM.<\/p>\n<p><img decoding=\"async\" alt=\"DevSecOps: principes van werking en vergelijking van SCA. Deel \u00e9\u00e9n\" src=\"\/wp-content\/uploads\/2020\/08\/53dd89b0ff20c4c51aaf7412399e7fd9.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nVervolgens zijn er CPE, PURL en een beschrijving van CVE. Aanbevelingen voor oplossingen zijn overigens niet bijgevoegd vanwege het gebrek daaraan in de NVD-database.<\/p>\n<p><img decoding=\"async\" alt=\"DevSecOps: principes van werking en vergelijking van SCA. Deel \u00e9\u00e9n\" src=\"\/wp-content\/uploads\/2020\/08\/ba2021aa8b6bf175383298b2c2a71670.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nVoor systematische beoordeling van de scanresultaten kan Nginx met minimale instellingen worden geconfigureerd, of kunnen de verkregen defects worden verzonden naar een defect managementsysteem dat connectors naar Dependency Check ondersteunt. Bijvoorbeeld, Defect Dojo. <\/p>\n<h3>Dependency Track<\/h3>\n<p><\/p>\n<h4>Installatie<\/h4>\n<p>\nDependency Track is op zijn beurt een webplatform met grafiekweergaven, dus de dringende kwestie van het opslaan van defects in een externe oplossing doet zich hier niet voor. <br \/>\nVoor installatie zijn de volgende ondersteunde scenario\u2019s: Docker, WAR, Executable WAR. <\/p>\n<h4>Eerste start<\/h4>\n<p>\nGa naar de URL van de draaiende service. Log in via admin\/admin, wijzig gebruikersnaam en wachtwoord, waarna we op het Dashboard terechtkomen. Het volgende dat we zullen doen, is een project voor een testapplicatie in Java aanmaken in<i> Home\/Projects \u2192 Create Project <\/i>. Als voorbeeld nemen we DVJA.<\/p>\n<p><img decoding=\"async\" alt=\"DevSecOps: principes van werking en vergelijking van SCA. Deel \u00e9\u00e9n\" src=\"\/wp-content\/uploads\/2020\/08\/338aaa1c9ca0ac99f2e857f8ce001a02.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAangezien Dependency Track alleen BOM\u2019s als invoer kan accepteren, moet deze BOM worden verkregen. We maken gebruik van <noindex><a rel=\"nofollow\" href=\"https:\/\/github.coam\/CycloneDX\/cyclonedx-maven-plugin\">CycloneDX Maven Plugin<\/a><\/noindex>:<\/p>\n<pre><code class=\"plaintext\">mvn org.cyclonedx:cyclonedx-maven-plugin:makeAggregateBom<\/code><\/pre>\n<p>\nWe get bom.xml and upload the file in the created project <i>DVJA \u2192 Dependencies \u2192 Upload BOM<\/i>.<\/p>\n<p>Let's go to Administration \u2192 Analyzers. We understand that we only have the Internal Analyzer enabled, which includes NVD. We will also connect Sonatype OSS Index.<\/p>\n<p><img decoding=\"async\" alt=\"DevSecOps: principes van werking en vergelijking van SCA. Deel \u00e9\u00e9n\" src=\"\/wp-content\/uploads\/2020\/08\/3879a9a3d5f227d9740a984e7b1b91b2.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nThus, we will get the following picture for our project:<\/p>\n<p><img decoding=\"async\" alt=\"DevSecOps: principes van werking en vergelijking van SCA. Deel \u00e9\u00e9n\" src=\"\/wp-content\/uploads\/2020\/08\/004f2ab3383acb87e3d5e8c0fba1f3c3.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAlso, in the list, we can find one vulnerability applicable to Sonatype OSS:<\/p>\n<p><img decoding=\"async\" alt=\"DevSecOps: principes van werking en vergelijking van SCA. Deel \u00e9\u00e9n\" src=\"\/wp-content\/uploads\/2020\/08\/e459f08218f890b46fb4050c30da63c8.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nThe main disappointment was that Dependency Track no longer accepts xml reports from Dependency Check. The last supported versions of integration with Dependency Check were 1.0.0 \u2013 4.0.2, while I was testing 5.3.2.<\/p>\n<p>Hier is <noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/d2WMONyBbTw\">video's<\/a><\/noindex> (en <noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/IPWPISSk5rc\">hier is<\/a><\/noindex>), when it was still possible. <\/p>\n<h3>Nexus IQ <\/h3>\n<p><\/p>\n<h4>Eerste start<\/h4>\n<p>\nThe installation of Nexus IQ is done from archives via <noindex><a rel=\"nofollow\" href=\"https:\/\/help.sonatype.com\/iqserver\/installing\/iq-server-installation\">de documentatie<\/a><\/noindex>, but we collected a Docker image for this purpose.<\/p>\n<p>After logging into the console, we need to create an Organization and an Application.<\/p>\n<p><img decoding=\"async\" alt=\"DevSecOps: principes van werking en vergelijking van SCA. Deel \u00e9\u00e9n\" src=\"\/wp-content\/uploads\/2020\/08\/4c6df91bad77e87ea066ff3514a03644.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"DevSecOps: principes van werking en vergelijking van SCA. Deel \u00e9\u00e9n\" src=\"\/wp-content\/uploads\/2020\/08\/d8580ba46852e4d97625a22e215c21d3.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"DevSecOps: principes van werking en vergelijking van SCA. Deel \u00e9\u00e9n\" src=\"\/wp-content\/uploads\/2020\/08\/d99ce4e47218001fd1a76722e2633bea.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAs can be seen, setting up IQ is somewhat more complex, as we also need to create policies applicable for different 'stages' (dev, build, stage, release). This is necessary to block vulnerable components as they progress through the pipeline closer to production or to block them as soon as they enter the Nexus Repo when downloaded by developers.<\/p>\n<p>To feel the difference between open source and enterprise, we will perform the same scan through Nexus IQ similar to <noindex><a rel=\"nofollow\" href=\"https:\/\/help.sonatype.com\/integrations\/sonatype-clm-for-maven\">Maven plugin<\/a><\/noindex>, first creating a test application in the NexusIQ interface <code>dvja-test-and-compare<\/code>:<\/p>\n<pre><code class=\"plaintext\">mvn com.sonatype.clm:clm-maven-plugin:evaluate -Dclm.applicationId=dvja-test-and-compare -Dclm.serverUrl= -Dclm.username= -Dclm.password=\n<\/code><\/pre>\n<p>\nWe go to the URL of the generated report in the IQ web interface:<\/p>\n<p><img decoding=\"async\" alt=\"DevSecOps: principes van werking en vergelijking van SCA. Deel \u00e9\u00e9n\" src=\"\/wp-content\/uploads\/2020\/08\/f81f998037ba53ef62298955077d044d.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nHere you can see all policy violations with indications of various significance levels (from Info to Security Critical). The letter D next to a component indicates that the component is a Direct Dependency, while the letter T next to a component indicates that it is a Transitive Dependency.<\/p>\n<p>By the way, the report <noindex><a rel=\"nofollow\" href=\"https:\/\/snyk.io\/open-source-security\/\">State of Open Source Security Report 2020<\/a><\/noindex> from Snyk reports that more than 70% of open source vulnerabilities found in Node.js, Java, and Ruby are in transitive dependencies.<\/p>\n<p>If you open one of the Nexus IQ policy violations, you can see a description of the component, as well as a Version Graph that shows the position of the current version on the timeline and when the vulnerability stops being a vulnerability. The height of the candles on the graph indicates the popularity of this component.<\/p>\n<p><img decoding=\"async\" alt=\"DevSecOps: principes van werking en vergelijking van SCA. Deel \u00e9\u00e9n\" src=\"\/wp-content\/uploads\/2020\/08\/d33968a5ce5904da6f50133f882521fe.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAls je naar het sectie van kwetsbaarheden gaat en de CVE opent, kun je de beschrijving van deze kwetsbaarheid lezen, aanbevelingen voor mitigatie en de reden waarom deze component in de schending valt, namelijk het bestaan van een klasse. <code>DiskFileitem.class<\/code>.<\/p>\n<p><img decoding=\"async\" alt=\"DevSecOps: principes van werking en vergelijking van SCA. Deel \u00e9\u00e9n\" src=\"\/wp-content\/uploads\/2020\/08\/6d91b98a9a9a1a62264f1b4194f33ca4.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"DevSecOps: principes van werking en vergelijking van SCA. Deel \u00e9\u00e9n\" src=\"\/wp-content\/uploads\/2020\/08\/c9e580ad178a9c0307ed1e63d6dd244d.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLaten we de resultaten samenvatten die betrekking hebben op externe Java-componenten, zonder js-componenten mee te tellen. We geven het aantal kwetsbaarheden dat buiten de NVD is gevonden tussen haakjes.<\/p>\n<p><b>Totaal Nexus IQ: <\/b><\/p>\n<ul>\n<li>Gescreende afhankelijkheden: 62<\/li>\n<li>Kwetsbare afhankelijkheden: 16<\/li>\n<li>Gevonden kwetsbaarheden: 42 (8 sonatype db)<\/li>\n<\/ul>\n<p>\n<b>Totaal Dependency Check: <\/b><\/p>\n<ul>\n<li>Gescreende afhankelijkheden: 47<\/li>\n<li>Kwetsbare afhankelijkheden: 13<\/li>\n<li>Gevonden kwetsbaarheden: 91 (14 sonatype oss)<\/li>\n<\/ul>\n<p>\n<b>Totaal Dependency Track: <\/b><\/p>\n<ul>\n<li>Gescreende afhankelijkheden: 59<\/li>\n<li>Kwetsbare afhankelijkheden: 10<\/li>\n<li>Gevonden kwetsbaarheden: 51 (1 sonatype oss)<\/li>\n<\/ul>\n<p>\nIn de volgende stap zullen we de verkregen resultaten analyseren en uitzoeken welke van deze kwetsbaarheden een werkelijk defect zijn en welke valse alarmen zijn.<\/p>\n<h3>Disclaimer<\/h3>\n<p>\nDeze beoordeling is geen onbetwistbare waarheid. De auteur had niet de bedoeling om een specifieke tool te onderscheiden van andere. Het doel van de beoordeling was om de werking van SCA-tools en manieren te tonen om hun resultaten te controleren.<\/p>\n<h3>Vergelijking van resultaten<\/h3>\n<p>\n<b>Voorwaarden:<\/b><\/p>\n<p><b>Een vals alarm met betrekking tot kwetsbaarheden van externe componenten is:<\/b><\/p>\n<ul>\n<li><b>De discrepantie tussen de CVE en de geconstateerde component<\/b><\/li>\n<li>Bijvoorbeeld, als de kwetsbaarheid is vastgesteld in het struts2-framework en de tool naar de struts-tiles-component verwijst, waartoe deze kwetsbaarheid niet behoort, dan is dit een false positive.<\/li>\n<li><b>De discrepantie tussen de CVE en de geconstateerde versie van de component<\/b><\/li>\n<li>Bijvoorbeeld, als de kwetsbaarheid is gekoppeld aan versie python &gt; 3.5 en de tool versie 2.7 als kwetsbaar markeert \u2014 dit is een false positive, omdat de kwetsbaarheid in werkelijkheid alleen van toepassing is op de productlijn 3.x. <\/li>\n<li> <b>Duplicatie van CVE<\/b><\/li>\n<li>Bijvoorbeeld, als de SCA op een CVE wijst die RCE mogelijk maakt, en vervolgens de SCA voor dezelfde component een CVE aangeeft die van toepassing is op Cisco-producten die aan deze RCE blootgesteld zijn, dan is dit een false positive.<\/li>\n<li>Bijvoorbeeld, als de CVE is gevonden in de component spring-web, en de SCA vervolgens naar dezelfde CVE in andere componenten van het Spring Framework verwijst, terwijl de CVE geen betrekking heeft op andere componenten. In dit geval is dit een false positive. <\/li>\n<\/ul>\n<p>\nHet onderzoek richtte zich op het Open Source-project DVJA. Alleen java-componenten werden in het onderzoek betrokken (zonder js).<\/p>\n<h3>Samenvattende resultaten<\/h3>\n<p>\nLaten we meteen naar de resultaten van de handmatige beoordeling van de vastgestelde kwetsbaarheden gaan. Het volledige rapport voor elke CVE is te vinden in de Bijlage. <\/p>\n<p><i>Samenvattende resultaten van alle kwetsbaarheden:<\/i><\/p>\n<p>Parameter<br \/>\nNexus IQ<br \/>\nDependency Check<br \/>\nDependency Track<\/p>\n<p>Totaal aantal gevonden kwetsbaarheden<br \/>\n42<br \/>\n91<br \/>\n51<\/p>\n<p>Onjuist gevonden kwetsbaarheden (false positive)<br \/>\n2(4.76%)<br \/>\n62(68,13%)<br \/>\n29(56.86%)<\/p>\n<p>Geen relevante kwetsbaarheden gevonden (false negative)<br \/>\n10<br \/>\n20<br \/>\n27<\/p>\n<p>\n<i>Samenvattende resultaten per component:<\/i><\/p>\n<p>Parameter<br \/>\nNexus IQ<br \/>\nDependency Check<br \/>\nDependency Track<\/p>\n<p>Totaal aantal gevonden componenten<br \/>\n62<br \/>\n47<br \/>\n59<\/p>\n<p>Totaal aantal kwetsbare componenten<br \/>\n16<br \/>\n13<br \/>\n10<\/p>\n<p>Onjuist gevonden kwetsbare componenten (false positive)<br \/>\n1<br \/>\n5<br \/>\n0<\/p>\n<p>Onjuist gevonden kwetsbare componenten (false positive)<br \/>\n0<br \/>\n6<br \/>\n6<\/p>\n<p>\nWe bouwen visuele grafieken om de verhouding van false positive en false negative ten opzichte van het totale aantal kwetsbaarheden te evalueren. Componenten zijn op de horizontale as gemarkeerd, en op de verticale as de kwetsbaarheden die hierin zijn gevonden. <\/p>\n<p><img decoding=\"async\" alt=\"DevSecOps: principes van werking en vergelijking van SCA. Deel \u00e9\u00e9n\" src=\"\/wp-content\/uploads\/2020\/08\/967b8e168383299d4a1bf4065f1905ca.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"DevSecOps: principes van werking en vergelijking van SCA. Deel \u00e9\u00e9n\" src=\"\/wp-content\/uploads\/2020\/08\/2e128ee59e551894c25e4c9e28997008.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"DevSecOps: principes van werking en vergelijking van SCA. Deel \u00e9\u00e9n\" src=\"\/wp-content\/uploads\/2020\/08\/585d7bcef052ef24e4de6c7e1a4e7c0b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTer vergelijking: een soortgelijk onderzoek werd uitgevoerd door het Sonatype-team bij het testen van een project van 1531 componenten met behulp van OWASP Dependency Check. Zoals we kunnen zien, is de verhouding van ruis tot correct detecties vergelijkbaar met onze resultaten.<\/p>\n<p><img decoding=\"async\" alt=\"DevSecOps: principes van werking en vergelijking van SCA. Deel \u00e9\u00e9n\" src=\"\/wp-content\/uploads\/2020\/08\/286c34b84f1400af0285b711b3fe87f2.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Bron: <noindex><a rel=\"nofollow\" href=\"https:\/\/www.sonatype.com\/why-precision-matters-ebook\">www.sonatype.com\/why-precision-matters-ebook<\/a><\/noindex><\/i><\/p>\n<p>Laten we enkele CVE's uit de resultaten van onze scan bekijken om de reden voor deze resultaten te begrijpen.<\/p>\n<h3>Meer informatie<\/h3>\n<p><\/p>\n<h4>\u21161<\/h4>\n<p>\nLaten we eerst enkele interessante punten van Sonatype Nexus IQ bespreken.<\/p>\n<p>Nexus IQ wijst op een probleem met deserialisatie waarbij RCE uitgevoerd kan worden in Spring Framework meerdere keren. CVE-2016-1000027 in spring-web:3.0.5 voor de eerste keer, en CVE-2011-2894 in spring-context:3.0.5 en spring-core:3.0.5. Het lijkt aanvankelijk alsof er een duplicatie van kwetsbaarheden over verschillende CVE's plaatsvindt. Want als we naar CVE-2016-1000027 en CVE-2011-2894 in de NVD-database kijken, lijkt het allemaal duidelijk.<\/p>\n<p>Component<br \/>\nKwetsbaarheid<\/p>\n<p>spring-web:3.0.5<br \/>\nCVE-2016-1000027<\/p>\n<p>spring-context:3.0.5<br \/>\nCVE-2011-2894<\/p>\n<p>spring-core:3.0.5<br \/>\nCVE-2011-2894<\/p>\n<p>\nOmschrijving <noindex><a rel=\"nofollow\" href=\"https:\/\/nvd.nist.gov\/vuln\/detail\/CVE-2011-2894\">CVE-2011-2894<\/a><\/noindex> uit de NVD:<br \/>\n<img decoding=\"async\" alt=\"DevSecOps: principes van werking en vergelijking van SCA. Deel \u00e9\u00e9n\" src=\"\/wp-content\/uploads\/2020\/08\/31b403eca6d7541c766c9a560bfbe6b7.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOmschrijving <noindex><a rel=\"nofollow\" href=\"https:\/\/nvd.nist.gov\/vuln\/detail\/CVE-2016-1000027\">CVE-2016-1000027<\/a><\/noindex> uit de NVD:<br \/>\n<img decoding=\"async\" alt=\"DevSecOps: principes van werking en vergelijking van SCA. Deel \u00e9\u00e9n\" src=\"\/wp-content\/uploads\/2020\/08\/d5b54a6ac15070b12f013eaacd2878f2.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nCVE-2011-2894 is op zichzelf vrij bekend. In het rapport <noindex><a rel=\"nofollow\" href=\"http:\/\/www.pwntester.com\/blog\/2013\/12\/16\/cve-2011-2894-deserialization-spring-rce\/\">White Source voor 2011<\/a><\/noindex> werd deze CVE erkend als een van de meest voorkomende. Beschrijvingen voor CVE-2016-100027 zijn over het algemeen weinig in de NVD te vinden, en deze is blijkbaar alleen toepasbaar voor Spring Framework 4.1.4. Laten we eens kijken naar <noindex><a rel=\"nofollow\" href=\"https:\/\/www.tenable.com\/security\/research\/tra-2016-20\">referentie<\/a><\/noindex> en hier wordt het allemaal steeds duidelijker. Uit de <noindex><a rel=\"nofollow\" href=\"https:\/\/www.tenable.com\/security\/research\/tra-2016-20\">Tenable<\/a><\/noindex> begrijpen we dat naast de kwetsbaarheid in <code>RemoteInvocationSerializingExporter<\/code> in CVE-2011-2894, de kwetsbaarheid ook voorkomt in <code>HttpInvokerServiceExporter<\/code>. Dit vertelt ons Nexus IQ:<\/p>\n<p><img decoding=\"async\" alt=\"DevSecOps: principes van werking en vergelijking van SCA. Deel \u00e9\u00e9n\" src=\"\/wp-content\/uploads\/2020\/08\/a33f0853ce892d28eafafe2c8e7b2228.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nToch is er niets dergelijks in de NVD, waardoor Dependency Check en Dependency Track last hebben van false negatives.<\/p>\n<p>Ook uit de beschrijving van CVE-2011-2894 kunnen we begrijpen dat de kwetsbaarheid echt aanwezig is in zowel spring-context:3.0.5 als spring-core:3.0.5. Bevestiging hiervan kan worden gevonden in een artikel van degene die deze kwetsbaarheid heeft ontdekt.<\/p>\n<h4>\u21162<\/h4>\n<p><\/p>\n<p>Component<br \/>\nKwetsbaarheid<br \/>\nResultaat<\/p>\n<p>struts2-core:2.3.30<br \/>\nCVE-2016-4003<br \/>\nFALSE<\/p>\n<p>\nAls we de kwetsbaarheid CVE-2016-4003 bestuderen, begrijpen we dat deze al in versie 2.3.28 is opgelost, toch meldt Nexus IQ ons hierover. In de beschrijving van de kwetsbaarheid staat een opmerking:<\/p>\n<p><img decoding=\"async\" alt=\"DevSecOps: principes van werking en vergelijking van SCA. Deel \u00e9\u00e9n\" src=\"\/wp-content\/uploads\/2020\/08\/081f9006748083727e424b709a338d60.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDat wil zeggen, de kwetsbaarheid bestaat alleen in combinatie met een verouderde versie van JRE, waarover we zijn gewaarschuwd. Desondanks beschouwen we dit als een valse positieve, hoewel het niet het ergste is.<\/p>\n<h4>\u2116 3<\/h4>\n<p><\/p>\n<p>Component<br \/>\nKwetsbaarheid<br \/>\nResultaat<\/p>\n<p>xwork-core:2.3.30<br \/>\nCVE-2017-9804<br \/>\nTRUE<\/p>\n<p>xwork-core:2.3.30<br \/>\nCVE-2017-7672<br \/>\nFALSE<\/p>\n<p>\nAls we de beschrijving van CVE-2017-9804 en CVE-2017-7672 bekijken, begrijpen we dat het probleem ligt in <code>de URLValidator-klasse<\/code>, waarbij CVE-2017-9804 voortvloeit uit CVE-2017-7672. Het bestaan van de tweede kwetsbaarheid voegt geen nuttige informatie toe, behalve dat de ernst ervan is gestegen naar hoog, daarom kan dit als overbodig lawaai worden beschouwd.<\/p>\n<p>Over het algemeen zijn er geen andere valse positieven voor Nexus IQ gevonden.<\/p>\n<h3>\u21164<\/h3>\n<p>\nEr zijn verschillende punten die IQ onderscheiden van andere oplossingen.<\/p>\n<p>Component<br \/>\nKwetsbaarheid<br \/>\nResultaat<\/p>\n<p>spring-web:3.0.5<br \/>\nCVE-2020-5398<br \/>\nTRUE<\/p>\n<p>CVE in NVD meldt dat het alleen van toepassing is op versies 5.2.x tot 5.2.3, 5.1.x tot 5.1.13, en versies 5.0.x tot 5.0.16, maar als we de beschrijving van CVE in Nexus IQ bekijken, zien we het volgende:<br \/>\n<i>Advisory Deviation Notice: Het Sonatype beveiligingsonderzoekteam ontdekte dat deze kwetsbaarheid werd ge\u00efntroduceerd in versie 3.0.2.RELEASE en niet in 5.0.x zoals in de advisering staat.<\/i><\/p>\n<p>Daarna volgt een PoC van deze kwetsbaarheid, die aangeeft dat deze aanwezig is in versie 3.0.5.<\/p>\n<p>Valse negatieve meldingen worden naar Dependency Check en Dependency Track gestuurd.<\/p>\n<h3>\u21165<\/h3>\n<p>\nLaten we kijken naar de valse positieven voor Dependency Check en Dependency Track.<\/p>\n<p>Dependency Check valt op omdat het de CVE weerspiegelt die betrekking hebben op het hele framework in NVD, in de componenten waaraan deze CVE niet van toepassing zijn. Dit betreft CVE-2012-0394, CVE-2013-2115, CVE-2014-0114, CVE-2015-0899, CVE-2015-2992, CVE-2016-1181, CVE-2016-1182, die Dependency Check \"heeft gekoppeld\" aan struts-taglib:1.3.8 en struts-tiles-1.3.8. Deze componenten hebben niets te maken met wat in de CVE is beschreven - het afhandelen van verzoeken, het valideren van pagina's, enzovoort. Dit komt doordat het enige gemeenschappelijke tussen deze CVE en componenten alleen het framework is, waardoor Dependency Check dit als een kwetsbaarheid heeft beschouwd.<\/p>\n<p>Een soortgelijke situatie doet zich voor met spring-tx:3.0.5, en een vergelijkbare situatie met struts-core:1.3.8. Voor struts-core ontdekte Dependency Check en Dependency Track veel kwetsbaarheden die in werkelijkheid relevant zijn voor struts2-core, dat in wezen een apart framework is. In dit geval heeft Nexus IQ de situatie correct begrepen en in de CVE die het heeft gegeven, aangegeven dat struts-core end of life is en dat er moet worden overgestapt naar struts2-core.<\/p>\n<h3>\u21166<\/h3>\n<p>\nIn sommige situaties is het onterecht om duidelijke fouten in Dependency Check en Dependency Track te interpreteren. In het bijzonder CVE-2013-4152, CVE-2013-6429, CVE-2013-6430, CVE-2013-7315, CVE-2014-0054, CVE-2014-0225, CVE-2014-0225, die door Dependency Check en Dependency Track aan spring-core:3.0.5 zijn toegewezen, behoren in werkelijkheid tot spring-web:3.0.5. Sommige van deze CVE's werden ook gevonden door Nexus IQ, echter heeft IQ ze correct toegewezen aan een andere component. Het feit dat deze kwetsbaarheden niet in spring-core zijn gevonden, betekent niet dat ze in het framework \u00fcberhaupt niet bestaan, en open source tools hebben terecht op deze kwetsbaarheden gewezen (ze hebben gewoon een beetje gemist). <\/p>\n<h3>Conclusies<\/h3>\n<p>\nZoals we kunnen zien biedt de handmatige beoordeling van de betrouwbaarheid van ge\u00efdentificeerde kwetsbaarheden geen eenduidige resultaten, wat leidt tot controverses. De resultaten zijn zodanig dat de oplossing van Nexus IQ de laagste valse-positieven ratio en de hoogste nauwkeurigheid heeft. <\/p>\n<p>In de eerste plaats komt dit doordat het team van Sonatype de beschrijving van elke kwetsbaarheid (CVE) uit de NVD in hun databases heeft uitgebreid, waarbij ze de kwetsbaarheid tot op het niveau van klasse of functie voor de betreffende versie van de component hebben aangegeven, na extra onderzoek te hebben verricht (zoals het testen van kwetsbaarheden in oudere versies van de software). <\/p>\n<p>Een belangrijk effect op de resultaten wordt ook veroorzaakt door die kwetsbaarheden die niet in de NVD zijn opgenomen, maar die desalniettemin in de database van Sonatype met het label SONATYPE aanwezig zijn. Volgens het rapport <noindex><a rel=\"nofollow\" href=\"https:\/\/www.whitesourcesoftware.com\/open-source-vulnerability-management-report\/\">De Staat van Open Source Beveiligingskwetsbaarheden 2020<\/a><\/noindex> wordt 45% van de ontdekte kwetsbaarheden met open source software niet gerapporteerd in de NVD. Volgens de database van WhiteSource wordt slechts 29% van alle kwetsbaarheden met open source software, geregistreerd buiten de NVD, uiteindelijk daarin gepubliceerd, waardoor het zo belangrijk is om kwetsbaarheden ook in andere bronnen te zoeken.<\/p>\n<p>Als resultaat levert Dependency Check een grote hoeveelheid ruis op, waarbij een deel van de kwetsbare componenten niet wordt opgemerkt. Dependency Track genereert minder ruis en identificeert een groot aantal componenten, wat visueel aangenamer is in de webinterface.<\/p>\n<p>Toch blijkt uit de praktijk dat open source de eerste stap moet zijn op weg naar een volwassen DevSecOps. Het eerste waar je over moet nadenken bij het integreren van SCA in de ontwikkeling, zijn de processen. Dit houdt in dat je samen met het management en aangrenzende afdelingen nadenkt over hoe de ideale processen in jouw organisatie eruit moeten zien. Het kan zijn dat Dependency Check of Dependency Track in de beginfase alle zakelijke behoeften dekt, terwijl Enterprise-oplossingen een logisch vervolg zullen zijn vanwege de toenemende complexiteit van de ontwikkelde applicaties.<\/p>\n<p>                        <b class=\"spoiler_title\">Bijlage A. Resultaten met betrekking tot componenten<\/b><br \/>\n                        <b>Symbolen:<\/b><\/p>\n<ul>\n<li>Hoog \u2014 kwetsbaarheden van hoge en kritische ernst in de component<\/li>\n<li>Gemiddeld \u2014 kwetsbaarheden van gemiddelde ernst in de component<\/li>\n<li>WAAR \u2014 Correct gedefinieerde kwetsbaarheid (True positive issue)<\/li>\n<li>ONWAAR \u2014 Valse alarmen (False positive issue)<\/li>\n<\/ul>\n<p><\/p>\n<p>Component<br \/>\nNexus IQ<br \/>\nDependency Check<br \/>\nDependency Track<br \/>\nResultaat<\/p>\n<p>dom4j: 1.6.1<br \/>\nHigh<br \/>\nHigh<br \/>\nHigh<br \/>\nTRUE<\/p>\n<p>log4j-core: 2.3<br \/>\nHigh<br \/>\nHigh<br \/>\nHigh<br \/>\nTRUE<\/p>\n<p>log4j: 1.2.14<br \/>\nHigh<br \/>\nHigh<br \/>\n\u2014<br \/>\nTRUE<\/p>\n<p>commons-collections:3.1<br \/>\nHigh<br \/>\nHigh<br \/>\nHigh<br \/>\nTRUE<\/p>\n<p>commons-fileupload:1.3.2<br \/>\nHigh<br \/>\nHigh<br \/>\nHigh<br \/>\nTRUE<\/p>\n<p>commons-beanutils:1.7.0<br \/>\nHigh<br \/>\nHigh<br \/>\nHigh<br \/>\nTRUE<\/p>\n<p>commons-codec:1:10<br \/>\nMedium<br \/>\n\u2014<br \/>\n\u2014<br \/>\nTRUE<\/p>\n<p>mysql-connector-java:5.1.42<br \/>\nHigh<br \/>\nHigh<br \/>\nHigh<br \/>\nTRUE<\/p>\n<p>spring-expression:3.0.5<br \/>\nHigh<br \/>\ncomponent niet gevonden<\/p>\n<p>TRUE<\/p>\n<p>spring-web:3.0.5<br \/>\nHigh<br \/>\ncomponent niet gevonden<br \/>\nHigh<br \/>\nTRUE<\/p>\n<p>spring-context:3.0.5<br \/>\nMedium<br \/>\ncomponent niet gevonden<br \/>\n\u2014<br \/>\nTRUE<\/p>\n<p>spring-core:3.0.5<br \/>\nMedium<br \/>\nHigh<br \/>\nHigh<br \/>\nTRUE<\/p>\n<p>struts2-config-browser-plugin:2.3.30<br \/>\nMedium<br \/>\n\u2014<br \/>\n\u2014<br \/>\nTRUE<\/p>\n<p>spring-tx:3.0.5<br \/>\n\u2014<br \/>\nHigh<br \/>\n\u2014<br \/>\nFALSE<\/p>\n<p>struts-core:1.3.8<br \/>\nHigh<br \/>\nHigh<br \/>\nHigh<br \/>\nTRUE<\/p>\n<p>xwork-core: 2.3.30<br \/>\nHigh<br \/>\n\u2014<br \/>\n\u2014<br \/>\nTRUE<\/p>\n<p>struts2-core: 2.3.30<br \/>\nHigh<br \/>\nHigh<br \/>\nHigh<br \/>\nTRUE<\/p>\n<p>struts-taglib:1.3.8<br \/>\n\u2014<br \/>\nHigh<br \/>\n\u2014<br \/>\nFALSE<\/p>\n<p>struts-tiles-1.3.8<br \/>\n\u2014<br \/>\nHigh<br \/>\n\u2014<br \/>\nFALSE<\/p>\n<p><\/p>\n<p>                        <b class=\"spoiler_title\">Bijlage B. Resultaten met betrekking tot kwetsbaarheden<\/b><br \/>\n                        <b>Symbolen:<\/b><\/p>\n<ul>\n<li>Hoog \u2014 kwetsbaarheden van hoge en kritische ernst in de component<\/li>\n<li>Gemiddeld \u2014 kwetsbaarheden van gemiddelde ernst in de component<\/li>\n<li>WAAR \u2014 Correct gedefinieerde kwetsbaarheid (True positive issue)<\/li>\n<li>ONWAAR \u2014 Valse alarmen (False positive issue)<\/li>\n<\/ul>\n<p><\/p>\n<p>Component<br \/>\nNexus IQ<br \/>\nDependency Check<br \/>\nDependency Track<br \/>\nErnst<br \/>\nResultaat<br \/>\nOpmerking<\/p>\n<p>dom4j: 1.6.1<br \/>\nCVE-2018-1000632<br \/>\nCVE-2018-1000632<br \/>\nCVE-2018-1000632<br \/>\nHigh<br \/>\nTRUE<\/p>\n<p>CVE-2020-10683<br \/>\nCVE-2020-10683<br \/>\nCVE-2020-10683<br \/>\nHigh<br \/>\nTRUE<\/p>\n<p>log4j-core: 2.3<br \/>\nCVE-2017-5645<br \/>\nCVE-2017-5645<br \/>\nCVE-2017-5645<br \/>\nHigh<br \/>\nTRUE<\/p>\n<p>CVE-2020-9488<br \/>\nCVE-2020-9488<br \/>\nCVE-2020-9488<br \/>\nLaag<br \/>\nTRUE<\/p>\n<p>log4j: 1.2.14<br \/>\nCVE-2019-17571<br \/>\nCVE-2019-17571<br \/>\n\u2014<br \/>\nHigh<br \/>\nTRUE<\/p>\n<p>\u2014<br \/>\nCVE-2020-9488<br \/>\n\u2014<br \/>\nLaag<br \/>\nTRUE<\/p>\n<p>SONATYPE-2010-0053<br \/>\n\u2014<br \/>\n\u2014<br \/>\nHigh<br \/>\nTRUE<\/p>\n<p>commons-collections:3.1<br \/>\n\u2014<br \/>\nCVE-2015-6420<br \/>\nCVE-2015-6420<br \/>\nHigh<br \/>\nFALSE<br \/>\nDupliceert RCE(OSSINDEX)<\/p>\n<p>\u2014<br \/>\nCVE-2017-15708<br \/>\nCVE-2017-15708<br \/>\nHigh<br \/>\nFALSE<br \/>\nDupliceert RCE(OSSINDEX)<\/p>\n<p>SONATYPE-2015-0002<br \/>\nRCE (OSSINDEX)<br \/>\nRCE(OSSINDEX)<br \/>\nHigh<br \/>\nTRUE<\/p>\n<p>commons-fileupload:1.3.2<br \/>\nCVE-2016-1000031<br \/>\nCVE-2016-1000031<br \/>\nCVE-2016-1000031<br \/>\nHigh<br \/>\nTRUE<\/p>\n<p>SONATYPE-2014-0173<br \/>\n\u2014<br \/>\n\u2014<br \/>\nMedium<br \/>\nTRUE<\/p>\n<p>commons-beanutils:1.7.0<br \/>\nCVE-2014-0114<br \/>\nCVE-2014-0114<br \/>\nCVE-2014-0114<br \/>\nHigh<br \/>\nTRUE<\/p>\n<p>\u2014<br \/>\nCVE-2019-10086<br \/>\nCVE-2019-10086<br \/>\nHigh<br \/>\nFALSE<br \/>\nDe kwetsbaarheid is alleen van toepassing op versies 1.9.2+<\/p>\n<p>commons-codec:1:10<br \/>\nSONATYPE-2012-0050<br \/>\n\u2014<br \/>\n\u2014<br \/>\nMedium<br \/>\nTRUE<\/p>\n<p>mysql-connector-java:5.1.42<br \/>\nCVE-2018-3258<br \/>\nCVE-2018-3258<br \/>\nCVE-2018-3258<br \/>\nHigh<br \/>\nTRUE<\/p>\n<p>CVE-2019-2692<br \/>\nCVE-2019-2692<br \/>\n\u2014<br \/>\nMedium<br \/>\nTRUE<\/p>\n<p>\u2014<br \/>\nCVE-2020-2875<br \/>\n\u2014<br \/>\nMedium<br \/>\nFALSE<br \/>\nHetzelfde probleem als CVE-2019-2692, maar met de toevoeging 'aanvallen kunnen aanzienlijke invloed hebben op aanvullende producten'<\/p>\n<p>\u2014<br \/>\nCVE-2017-15945<br \/>\n\u2014<br \/>\nHigh<br \/>\nFALSE<br \/>\nNiet van toepassing op mysql-connector-java<\/p>\n<p>\u2014<br \/>\nCVE-2020-2933<br \/>\n\u2014<br \/>\nLaag<br \/>\nFALSE<br \/>\nDupliceert CVE-2020-2934<\/p>\n<p>CVE-2020-2934<br \/>\nCVE-2020-2934<br \/>\n\u2014<br \/>\nMedium<br \/>\nTRUE<\/p>\n<p>spring-expression:3.0.5<br \/>\nCVE-2018-1270<br \/>\ncomponent niet gevonden<br \/>\n\u2014<br \/>\nHigh<br \/>\nTRUE<\/p>\n<p>CVE-2018-1257<br \/>\n\u2014<br \/>\n\u2014<br \/>\nMedium<br \/>\nTRUE<\/p>\n<p>spring-web:3.0.5<br \/>\nCVE-2016-1000027<br \/>\ncomponent niet gevonden<br \/>\n\u2014<br \/>\nHigh<br \/>\nTRUE<\/p>\n<p>CVE-2014-0225<br \/>\n\u2014<br \/>\nCVE-2014-0225<br \/>\nHigh<br \/>\nTRUE<\/p>\n<p>CVE-2011-2730<br \/>\n\u2014<br \/>\n\u2014<br \/>\nHigh<br \/>\nTRUE<\/p>\n<p>\u2014<br \/>\n\u2014<br \/>\nCVE-2013-4152<br \/>\nMedium<br \/>\nTRUE<\/p>\n<p>CVE-2018-1272<br \/>\n\u2014<br \/>\n\u2014<br \/>\nHigh<br \/>\nTRUE<\/p>\n<p>CVE-2020-5398<br \/>\n\u2014<br \/>\n\u2014<br \/>\nHigh<br \/>\nTRUE<br \/>\nEen sprekend voorbeeld ter ondersteuning van IQ: 'Het beveiligingsonderzoekteam van Sonatype ontdekte dat deze kwetsbaarheid werd ge\u00efntroduceerd in versie 3.0.2.RELEASE en niet in 5.0.x zoals vermeld in de advies.'<\/p>\n<p>CVE-2013-6429<br \/>\n\u2014<br \/>\n\u2014<br \/>\nMedium<br \/>\nTRUE<\/p>\n<p>CVE-2014-0054<br \/>\n\u2014<br \/>\nCVE-2014-0054<br \/>\nMedium<br \/>\nTRUE<\/p>\n<p>CVE-2013-6430<br \/>\n\u2014<br \/>\n\u2014<br \/>\nMedium<br \/>\nTRUE<\/p>\n<p>spring-context:3.0.5<br \/>\nCVE-2011-2894<br \/>\ncomponent niet gevonden<br \/>\n\u2014<br \/>\nMedium<br \/>\nTRUE<\/p>\n<p>spring-core:3.0.5<br \/>\n\u2014<br \/>\nCVE-2011-2730<br \/>\nCVE-2011-2730<br \/>\nHigh<br \/>\nTRUE<\/p>\n<p>CVE-2011-2894<br \/>\nCVE-2011-2894<br \/>\nCVE-2011-2894<br \/>\nMedium<br \/>\nTRUE<\/p>\n<p>\u2014<br \/>\n\u2014<br \/>\nCVE-2013-4152<br \/>\nMedium<br \/>\nFALSE<br \/>\nDupliceert dezezelfde kwetsbaarheid in spring-web<\/p>\n<p>\u2014<br \/>\nCVE-2013-4152<br \/>\n\u2014<br \/>\nMedium<br \/>\nFALSE<br \/>\nDe kwetsbaarheid is van toepassing op de component spring-web<\/p>\n<p>\u2014<br \/>\nCVE-2013-6429<br \/>\nCVE-2013-6429<br \/>\nMedium<br \/>\nFALSE<br \/>\nDe kwetsbaarheid is van toepassing op de component spring-web<\/p>\n<p>\u2014<br \/>\nCVE-2013-6430<br \/>\n\u2014<br \/>\nMedium<br \/>\nFALSE<br \/>\nDe kwetsbaarheid is van toepassing op de component spring-web<\/p>\n<p>\u2014<br \/>\nCVE-2013-7315<br \/>\nCVE-2013-7315<br \/>\nMedium<br \/>\nFALSE<br \/>\nSPLIT van CVE-2013-4152. + De kwetsbaarheid is van toepassing op de component spring-web<\/p>\n<p>\u2014<br \/>\nCVE-2014-0054<br \/>\nCVE-2014-0054<br \/>\nMedium<br \/>\nFALSE<br \/>\nDe kwetsbaarheid is van toepassing op de component spring-web<\/p>\n<p>\u2014<br \/>\nCVE-2014-0225<br \/>\n\u2014<br \/>\nHigh<br \/>\nFALSE<br \/>\nDe kwetsbaarheid is van toepassing op de component spring-web<\/p>\n<p>\u2014<br \/>\n\u2014<br \/>\nCVE-2014-0225<br \/>\nHigh<br \/>\nFALSE<br \/>\nDupliceert dezezelfde kwetsbaarheid in spring-web<\/p>\n<p>\u2014<br \/>\nCVE-2014-1904<br \/>\nCVE-2014-1904<br \/>\nMedium<br \/>\nFALSE<br \/>\nDe kwetsbaarheid is van toepassing op de component spring-web-mvc<\/p>\n<p>\u2014<br \/>\nCVE-2014-3625<br \/>\nCVE-2014-3625<br \/>\nMedium<br \/>\nFALSE<br \/>\nDe kwetsbaarheid is van toepassing op de component spring-web-mvc<\/p>\n<p>\u2014<br \/>\nCVE-2016-9878<br \/>\nCVE-2016-9878<br \/>\nHigh<br \/>\nFALSE<br \/>\nDe kwetsbaarheid is van toepassing op de component spring-web-mvc<\/p>\n<p>\u2014<br \/>\nCVE-2018-1270<br \/>\nCVE-2018-1270<br \/>\nHigh<br \/>\nFALSE<br \/>\nVoor spring-expression \/ spring-messages<\/p>\n<p>\u2014<br \/>\nCVE-2018-1271<br \/>\nCVE-2018-1271<br \/>\nMedium<br \/>\nFALSE<br \/>\nDe kwetsbaarheid is van toepassing op de component spring-web-mvc<\/p>\n<p>\u2014<br \/>\nCVE-2018-1272<br \/>\nCVE-2018-1272<br \/>\nHigh<br \/>\nTRUE<\/p>\n<p>CVE-2014-3578<br \/>\nCVE-2014-3578 (OSSINDEX)<br \/>\nCVE-2014-3578<br \/>\nMedium<br \/>\nTRUE<\/p>\n<p>SONATYPE-2015-0327<br \/>\n\u2014<br \/>\n\u2014<br \/>\nLaag<br \/>\nTRUE<\/p>\n<p>struts2-config-browser-plugin:2.3.30<br \/>\nSONATYPE-2016-0104<br \/>\n\u2014<br \/>\n\u2014<br \/>\nMedium<br \/>\nTRUE<\/p>\n<p>spring-tx:3.0.5<br \/>\n\u2014<br \/>\nCVE-2011-2730<br \/>\n\u2014<br \/>\nHigh<br \/>\nFALSE<br \/>\nDe kwetsbaarheid is niet van toepassing op spring-tx<\/p>\n<p>\u2014<br \/>\nCVE-2011-2894<br \/>\n\u2014<br \/>\nHigh<br \/>\nFALSE<br \/>\nDe kwetsbaarheid is niet van toepassing op spring-tx<\/p>\n<p>\u2014<br \/>\nCVE-2013-4152<br \/>\n\u2014<br \/>\nMedium<br \/>\nFALSE<br \/>\nDe kwetsbaarheid is niet van toepassing op spring-tx<\/p>\n<p>\u2014<br \/>\nCVE-2013-6429<br \/>\n\u2014<br \/>\nMedium<br \/>\nFALSE<br \/>\nDe kwetsbaarheid is niet van toepassing op spring-tx<\/p>\n<p>\u2014<br \/>\nCVE-2013-6430<br \/>\n\u2014<br \/>\nMedium<br \/>\nFALSE<br \/>\nDe kwetsbaarheid is niet van toepassing op spring-tx<\/p>\n<p>\u2014<br \/>\nCVE-2013-7315<br \/>\n\u2014<br \/>\nMedium<br \/>\nFALSE<br \/>\nDe kwetsbaarheid is niet van toepassing op spring-tx<\/p>\n<p>\u2014<br \/>\nCVE-2014-0054<br \/>\n\u2014<br \/>\nMedium<br \/>\nFALSE<br \/>\nDe kwetsbaarheid is niet van toepassing op spring-tx<\/p>\n<p>\u2014<br \/>\nCVE-2014-0225<br \/>\n\u2014<br \/>\nHigh<br \/>\nFALSE<br \/>\nDe kwetsbaarheid is niet van toepassing op spring-tx<\/p>\n<p>\u2014<br \/>\nCVE-2014-1904<br \/>\n\u2014<br \/>\nMedium<br \/>\nFALSE<br \/>\nDe kwetsbaarheid is niet van toepassing op spring-tx<\/p>\n<p>\u2014<br \/>\nCVE-2014-3625<br \/>\n\u2014<br \/>\nMedium<br \/>\nFALSE<br \/>\nDe kwetsbaarheid is niet van toepassing op spring-tx<\/p>\n<p>\u2014<br \/>\nCVE-2016-9878<br \/>\n\u2014<br \/>\nHigh<br \/>\nFALSE<br \/>\nDe kwetsbaarheid is niet van toepassing op spring-tx<\/p>\n<p>\u2014<br \/>\nCVE-2018-1270<br \/>\n\u2014<br \/>\nHigh<br \/>\nFALSE<br \/>\nDe kwetsbaarheid is niet van toepassing op spring-tx<\/p>\n<p>\u2014<br \/>\nCVE-2018-1271<br \/>\n\u2014<br \/>\nMedium<br \/>\nFALSE<br \/>\nDe kwetsbaarheid is niet van toepassing op spring-tx<\/p>\n<p>\u2014<br \/>\nCVE-2018-1272<br \/>\n\u2014<br \/>\nMedium<br \/>\nFALSE<br \/>\nDe kwetsbaarheid is niet van toepassing op spring-tx<\/p>\n<p>struts-core:1.3.8<br \/>\n\u2014<br \/>\nCVE-2011-5057 (OSSINDEX)<\/p>\n<p>Medium<br \/>\nFOLSE<br \/>\nKwetsbaarheid voor Struts 2<\/p>\n<p>\u2014<br \/>\nCVE-2012-0391 (OSSINDEX)<br \/>\nCVE-2012-0391<br \/>\nHigh<br \/>\nFALSE<br \/>\nKwetsbaarheid voor Struts 2<\/p>\n<p>\u2014<br \/>\nCVE-2014-0094 (OSSINDEX)<br \/>\nCVE-2014-0094<br \/>\nMedium<br \/>\nFALSE<br \/>\nKwetsbaarheid voor Struts 2<\/p>\n<p>\u2014<br \/>\nCVE-2014-0113 (OSSINDEX)<br \/>\nCVE-2014-0113<br \/>\nHigh<br \/>\nFALSE<br \/>\nKwetsbaarheid voor Struts 2<\/p>\n<p>CVE-2016-1182<br \/>\n3VE-2016-1182<br \/>\n\u2014<br \/>\nHigh<br \/>\nTRUE<\/p>\n<p>\u2014<br \/>\n\u2014<br \/>\nCVE-2011-5057<br \/>\nMedium<br \/>\nFALSE<br \/>\nKwetsbaarheid voor Struts 2<\/p>\n<p>\u2014<br \/>\nCVE-2012-0392 (OSSINDEX)<br \/>\nCVE-2012-0392<br \/>\nHigh<br \/>\nFALSE<br \/>\nKwetsbaarheid voor Struts 2<\/p>\n<p>\u2014<br \/>\nCVE-2012-0393 (OSSINDEX)<br \/>\nCVE-2012-0393<br \/>\nMedium<br \/>\nFALSE<br \/>\nKwetsbaarheid voor Struts 2<\/p>\n<p>CVE-2015-0899<br \/>\nCVE-2015-0899<br \/>\n\u2014<br \/>\nHigh<br \/>\nTRUE<\/p>\n<p>\u2014<br \/>\nCVE-2012-0394<br \/>\nCVE-2012-0394<br \/>\nMedium<br \/>\nFALSE<br \/>\nKwetsbaarheid voor Struts 2<\/p>\n<p>\u2014<br \/>\nCVE-2012-0838 (OSSINDEX)<br \/>\nCVE-2012-0838<br \/>\nHigh<br \/>\nFALSE<br \/>\nKwetsbaarheid voor Struts 2<\/p>\n<p>\u2014<br \/>\nCVE-2013-1965 (OSSINDEX)<br \/>\nCVE-2013-1965<br \/>\nHigh<br \/>\nFALSE<br \/>\nKwetsbaarheid voor Struts 2<\/p>\n<p>\u2014<br \/>\nCVE-2013-1966 (OSSINDEX)<br \/>\nCVE-2013-1966<br \/>\nHigh<br \/>\nFOLSE<br \/>\nKwetsbaarheid voor Struts 2<\/p>\n<p>\u2014<br \/>\nCVE-2013-2115<br \/>\nCVE-2013-2115<br \/>\nHigh<br \/>\nFOLSE<br \/>\nKwetsbaarheid voor Struts 2<\/p>\n<p>\u2014<br \/>\nCVE-2013-2134 (OSSINDEX)<br \/>\nCVE-2013-2134<br \/>\nHigh<br \/>\nFOLSE<br \/>\nKwetsbaarheid voor Struts 2<\/p>\n<p>\u2014<br \/>\nCVE-2013-2135 (OSSINDEX)<br \/>\nCVE-2013-2135<br \/>\nHigh<br \/>\nFOLSE<br \/>\nKwetsbaarheid voor Struts 2<\/p>\n<p>CVE-2014-0114<br \/>\nCVE-2014-0114<br \/>\n\u2014<br \/>\nHigh<br \/>\nTRUE<\/p>\n<p>\u2014<br \/>\nCVE-2015-2992<br \/>\nCVE-2015-2992<br \/>\nMedium<br \/>\nFALSE<br \/>\nKwetsbaarheid voor Struts 2<\/p>\n<p>\u2014<br \/>\nCVE-2016-0785 (OSSINDEX)<br \/>\nCVE-2016-0785<br \/>\nHigh<br \/>\nFALSE<br \/>\nKwetsbaarheid voor Struts 2<\/p>\n<p>CVE-2016-1181<br \/>\nCVE-2016-1181<br \/>\n\u2014<br \/>\nHigh<br \/>\nTRUE<\/p>\n<p>\u2014<br \/>\nCVE-2016-4003 (OSSINDEX)<br \/>\nCVE-2016-4003<br \/>\nHigh<br \/>\nFALSE<br \/>\nKwetsbaarheid voor Struts 2<\/p>\n<p>xwork-core:2.3.30<br \/>\nCVE-2017-9804<br \/>\n\u2014<br \/>\n\u2014<br \/>\nHigh<br \/>\nTRUE<\/p>\n<p>SONATYPE-2017-0173<br \/>\n\u2014<br \/>\n\u2014<br \/>\nHigh<br \/>\nTRUE<\/p>\n<p>CVE-2017-7672<br \/>\n\u2014<br \/>\n\u2014<br \/>\nHigh<br \/>\nFALSE<br \/>\nDubbel voor CVE-2017-9804<\/p>\n<p>SONATYPE-2016-0127<br \/>\n\u2014<br \/>\n\u2014<br \/>\nHigh<br \/>\nTRUE<\/p>\n<p>struts2-core:2.3.30<br \/>\n\u2014<br \/>\nCVE-2016-6795<br \/>\nCVE-2016-6795<br \/>\nHigh<br \/>\nTRUE<\/p>\n<p>\u2014<br \/>\nCVE-2017-9787<br \/>\nCVE-2017-9787<br \/>\nHigh<br \/>\nTRUE<\/p>\n<p>\u2014<br \/>\nCVE-2017-9791<br \/>\nCVE-2017-9791<br \/>\nHigh<br \/>\nTRUE<\/p>\n<p>\u2014<br \/>\nCVE-2017-9793<br \/>\n\u2014<br \/>\nHigh<br \/>\nFALSE<br \/>\nDuplicaat voor CVE-2018-1327<\/p>\n<p>\u2014<br \/>\nCVE-2017-9804<br \/>\n\u2014<br \/>\nHigh<br \/>\nTRUE<\/p>\n<p>\u2014<br \/>\nCVE-2017-9805<br \/>\nCVE-2017-9805<br \/>\nHigh<br \/>\nTRUE<\/p>\n<p>CVE-2016-4003<br \/>\n\u2014<br \/>\n\u2014<br \/>\nMedium<br \/>\nFALSE<br \/>\nVan toepassing op Apache Struts 2.x tot 2.3.28, terwijl de versie 2.3.30 is. Desondanks geldt, volgens de beschrijving, dat de CVE van toepassing is op alle versies van Struts 2, mits JRE 1.7 of lager wordt gebruikt. Het lijkt erop dat men hier extra voorzichtig wilde zijn, maar het lijkt meer op een FALSE melding.<\/p>\n<p>\u2014<br \/>\nCVE-2018-1327<br \/>\nCVE-2018-1327<br \/>\nHigh<br \/>\nTRUE<\/p>\n<p>CVE-2017-5638<br \/>\nCVE-2017-5638<br \/>\nCVE-2017-5638<br \/>\nHigh<br \/>\nTRUE<br \/>\nDe kwetsbaarheid die door aanvallers werd benut bij Equifax in 2017<\/p>\n<p>CVE-2017-12611<br \/>\nCVE-2017-12611<br \/>\n\u2014<br \/>\nHigh<br \/>\nTRUE<\/p>\n<p>CVE-2018-11776<br \/>\nCVE-2018-11776<br \/>\nCVE-2018-11776<br \/>\nHigh<br \/>\nTRUE<\/p>\n<p>struts-taglib:1.3.8<br \/>\n\u2014<br \/>\nCVE-2012-0394<br \/>\n\u2014<br \/>\nMedium<br \/>\nFALSE<br \/>\nVoor struts2-core<\/p>\n<p>\u2014<br \/>\nCVE-2013-2115<br \/>\n\u2014<br \/>\nHigh<br \/>\nFALSE<br \/>\nVoor struts2-core<\/p>\n<p>\u2014<br \/>\nCVE-2014-0114<br \/>\n\u2014<br \/>\nHigh<br \/>\nFALSE<br \/>\nVoor commons-beanutils<\/p>\n<p>\u2014<br \/>\nCVE-2015-0899<br \/>\n\u2014<br \/>\nHigh<br \/>\nFALSE<br \/>\nNiet van toepassing op taglib<\/p>\n<p>\u2014<br \/>\nCVE-2015-2992<br \/>\n\u2014<br \/>\nMedium<br \/>\nFALSE<br \/>\nVan toepassing op struts2-core<\/p>\n<p>\u2014<br \/>\nCVE-2016-1181<br \/>\n\u2014<br \/>\nHigh<br \/>\nFALSE<br \/>\nNiet van toepassing op taglib<\/p>\n<p>\u2014<br \/>\nCVE-2016-1182<br \/>\n\u2014<br \/>\nHigh<br \/>\nFALSE<br \/>\nNiet van toepassing op taglib<\/p>\n<p>struts-tiles-1.3.8<br \/>\n\u2014<br \/>\nCVE-2012-0394<br \/>\n\u2014<br \/>\nMedium<br \/>\nFALSE<br \/>\nVoor struts2-core<\/p>\n<p>\u2014<br \/>\nCVE-2013-2115<br \/>\n\u2014<br \/>\nHigh<br \/>\nFALSE<br \/>\nVoor struts2-core<\/p>\n<p>\u2014<br \/>\nCVE-2014-0114<br \/>\n\u2014<br \/>\nHigh<br \/>\nFALSE<br \/>\nOnder commons-beanutils<\/p>\n<p>\u2014<br \/>\nCVE-2015-0899<br \/>\n\u2014<br \/>\nHigh<br \/>\nFALSE<br \/>\nNiet van toepassing op tiles<\/p>\n<p>\u2014<br \/>\nCVE-2015-2992<br \/>\n\u2014<br \/>\nMedium<br \/>\nFALSE<br \/>\nVoor struts2-core<\/p>\n<p>\u2014<br \/>\nCVE-2016-1181<br \/>\n\u2014<br \/>\nHigh<br \/>\nFALSE<br \/>\nNiet van toepassing op taglib<\/p>\n<p>\u2014<br \/>\nCVE-2016-1182<br \/>\n\u2014<br \/>\nHigh<br \/>\nFALSE<br \/>\nNiet van toepassing op taglib<\/p>\n<p>Bron: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/516660\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0417\u043d\u0430\u0447\u0438\u043c\u043e\u0441\u0442\u044c \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u041f\u041e (\u0430\u043d\u0433\u043b. Software Composition Analysis \u2014 SCA) \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0440\u0430\u0441\u0442\u0435\u0442 \u043f\u043e \u043c\u0435\u0440\u0435 \u0432\u044b\u0445\u043e\u0434\u0430 \u0435\u0436\u0435\u0433\u043e\u0434\u043d\u044b\u0445 \u043e\u0442\u0447\u0435\u0442\u043e\u0432 \u043e\u0431 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044f\u0445 open source \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0443\u0431\u043b\u0438\u043a\u0443\u044e\u0442\u0441\u044f \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f\u043c\u0438 Synopsys, Sonatype, Snyk, White Source. \u0421\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u043e\u0442\u0447\u0435\u0442\u0443 The State of Open Source Security Vulnerabilities 2020 \u0447\u0438\u0441\u043b\u043e \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0432 open source \u0432 2019 \u0432\u044b\u0440\u043e\u0441\u043b\u043e \u043f\u043e\u0447\u0442\u0438 \u0432 1.5 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":92520,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-92519","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0417\u043d\u0430\u0447\u0438\u043c\u043e\u0441\u0442\u044c \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u041f\u041e (\u0430\u043d\u0433\u043b.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/nl\/blog\/administrirovanie\/devsecops-princzipy-raboty-i-sravnenie-sca-chast-pervaya\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"nl_NL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47DevSecOps: \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u044b \u0440\u0430\u0431\u043e\u0442\u044b \u0438 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 SCA. \u0427\u0430\u0441\u0442\u044c \u043f\u0435\u0440\u0432\u0430\u044f | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0417\u043d\u0430\u0447\u0438\u043c\u043e\u0441\u0442\u044c \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u041f\u041e (\u0430\u043d\u0433\u043b.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/nl\/blog\/administrirovanie\/devsecops-princzipy-raboty-i-sravnenie-sca-chast-pervaya\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-08-28T05:42:26+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-08-28T05:42:26+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47DevSecOps: werkwijzen en vergelijking van SCA. Deel \u00e9\u00e9n | ProHoster","description":"De betekenis van het analyseren van externe softwarecomponenten (Eng.","canonical_url":"https:\/\/prohoster.info\/nl\/blog\/administrirovanie\/devsecops-princzipy-raboty-i-sravnenie-sca-chast-pervaya","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"nl_NL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47DevSecOps: \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u044b \u0440\u0430\u0431\u043e\u0442\u044b \u0438 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 SCA. \u0427\u0430\u0441\u0442\u044c \u043f\u0435\u0440\u0432\u0430\u044f | ProHoster","og:description":"\u0417\u043d\u0430\u0447\u0438\u043c\u043e\u0441\u0442\u044c \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u041f\u041e (\u0430\u043d\u0433\u043b.","og:url":"https:\/\/prohoster.info\/nl\/blog\/administrirovanie\/devsecops-princzipy-raboty-i-sravnenie-sca-chast-pervaya","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-08-28T05:42:26+00:00","article:modified_time":"2020-08-28T05:42:26+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"92519","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 12:06:40","updated":"2022-10-01 01:38:08","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts\/92519","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/comments?post=92519"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts\/92519\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/media\/92520"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/media?parent=92519"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/categories?post=92519"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/tags?post=92519"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}