Важноста на анализата на софтверските компоненти од трети страни (Software Composition Analysis - SCA) во процесот на развој расте со објавувањето на годишните извештаи за ранливостите на библиотеките со отворен код, кои се објавени од Synopsys, Sonatype, Snyk и White Source . Според извештајот
Еден од најилустративните случаи
Оваа статија ќе го разгледа прашањето за избор на алатка за спроведување на SCA од гледна точка на квалитетот на резултатите од анализата. Ќе биде обезбедена и функционална споредба на алатките. Процесот на интегрирање во CI/CD и можностите за интеграција ќе биде оставен за следните публикации. Широк спектар на алатки беше претставен од OWASP
Принцип на работа
Ајде да погледнеме како изгледа CPE:
cpe:2.3:part:vendor:product:version:update:edition:language:sw_edition:target_sw:target_hw:other
- дел-студии: Индикација дека компонентата се однесува на апликацијата (а), оперативниот систем (о), хардверот (ж) (задолжително)
- Продавачот: Име на производителот на производот (задолжително)
- на производот: Име на производ (задолжително)
- Верзија: Верзија на компоненти (застарена ставка)
- Ажурирате: Ажурирање на пакетот
- едиција: Застарена верзија (застарена ставка)
- Јазик: Јазик дефиниран во RFC-5646
- SW издание: Верзија на софтвер
- Целна SW: Софтверско опкружување во кое работи производот
- Целна HW: Хардверско опкружување во кое работи производот
- Друго: Информации за добавувачот или производот
Пример CPE изгледа вака:
cpe:2.3:a:pivotal_software:spring_framework:3.0.0:*:*:*:*:*:*:*
Линијата значи дека CPE верзијата 2.3 ја опишува компонентата на апликацијата од производителот pivotal_software
со насловот spring_framework
верзија 3.0.0. Ако отвориме ранливост
URL-то се користи и од SCA алатките. Форматот на URL на пакетот е како што следува:
scheme:type/namespace/name@version?qualifiers#subpath
- Шема: Секогаш ќе има „pkg“ што покажува дека ова е URL на пакетот (Задолжително)
- тип: „Типот“ на пакувањето или „протоколот“ на пакетот, како што се maven, npm, nuget, gem, pypi итн. (Задолжително)
- Простор за имиња: Некој префикс за име, како што е ID на групата Maven, сопственик на слика на Docker, корисник на GitHub или организација. Изборно и зависи од типот.
- име: Име на пакетот (задолжително)
- Верзија: Верзија на пакет
- Квалификациите: Дополнителни квалификациски податоци за пакетот, како што се ОС, архитектура, дистрибуција итн. Изборни и специфични за типот.
- Потпат: Дополнителна патека во пакетот во однос на коренот на пакетот
На пример:
pkg:golang/google.golang.org/genproto#googleapis/api/annotations
pkg:maven/org.apache.commons/[email protected]
pkg:pypi/[email protected]
Пример за тоа како може да изгледа BOM во XML формат:
<?xml version="1.0" encoding="UTF-8"?>
<bom xmlns="http://cyclonedx.org/schema/bom/1.2" serialNumber="urn:uuid:3e671687-395b-41f5-a30f-a58921a69b79" version="1">
<components>
<component type="library">
<publisher>Apache</publisher>
<group>org.apache.tomcat</group>
<name>tomcat-catalina</name>
<version>9.0.14</version>
<hashes>
<hash alg="MD5">3942447fac867ae5cdb3229b658f4d48</hash>
<hash alg="SHA-1">e6b1000b94e835ffd37f4c6dcbdad43f4b48a02a</hash>
<hash alg="SHA-256">f498a8ff2dd007e29c2074f5e4b01a9a01775c3ff3aeaf6906ea503bc5791b7b</hash>
<hash alg="SHA-512">e8f33e424f3f4ed6db76a482fde1a5298970e442c531729119e37991884bdffab4f9426b7ee11fccd074eeda0634d71697d6f88a460dce0ac8d627a29f7d1282</hash>
</hashes>
<licenses>
<license>
<id>Apache-2.0</id>
</license>
</licenses>
<purl>pkg:maven/org.apache.tomcat/[email protected]</purl>
</component>
<!-- More components here -->
</components>
</bom>
BOM може да се користи не само како влезни параметри за Dependency Track, туку и за попис на софтверски компоненти во синџирот на снабдување, на пример, за обезбедување софтвер на клиент. Во 2014 година дури беше предложен закон во САД
Враќајќи се на SCA, Dependency Track има готови интеграции со платформи за известување како Slack, системи за управување со ранливост како Kenna Security. Исто така, вреди да се каже дека Dependency Track, меѓу другото, ги идентификува застарените верзии на пакетите и обезбедува информации за лиценците (поради поддршката за SPDX).
Ако зборуваме конкретно за квалитетот на SCA, тогаш постои фундаментална разлика.
Dependency Track не го прифаќа проектот како влез, туку BOM. Ова значи дека ако сакаме да го тестираме проектот, прво треба да генерираме bom.xml, на пример користејќи CycloneDX. Така, Dependency Track е директно зависна од CycloneDX. Во исто време, овозможува прилагодување. Ова го напиша тимот на ОЗОН
Ајде да резимираме некои од функционалните карактеристики, а исто така да ги разгледаме поддржаните јазици за анализа:
Јазик
Nexus IQ
Проверка на зависност
Песна за зависност
Јава
+
+
+
C / C ++
+
+
-
C#
+
+
-
.Net
+
+
+
Ерланг
-
-
+
JavaScript (NodeJS)
+
+
+
PHP
+
+
+
Пајтон
+
+
+
Руби
+
+
+
Perl
-
-
-
Скала
+
+
+
Цел В
+
+
-
Свифт
+
+
-
R
+
-
-
Go
+
+
+
Функционалност
Функционалност
Nexus IQ
Проверка на зависност
Песна за зависност
Способност да се осигура дека компонентите што се користат во изворниот код се проверуваат за лиценцирана чистота
+
-
+
Способност за скенирање и анализа за пропусти и чистота на лиценцата за сликите на Docker
+ Интеграција со Клер
-
-
Способност за конфигурирање на безбедносните политики за користење библиотеки со отворен код
+
-
-
Способност за скенирање складишта со отворен код за ранливи компоненти
+ RubyGems, Maven, NPM, Nuget, Pypi, Conan, Bower, Conda, Go, p2, R, Yum, Helm, Docker, CocoaPods, Git LFS
-
+ Hex, RubyGems, Maven, NPM, Nuget, Pypi
Достапност на специјализирана истражувачка група
+
-
-
Операција со затворена јамка
+
+
+
Користење на бази на податоци од трети страни
+ Затворена база на податоци Sonatype
+ Sonatype OSS, НПМ јавни советници
+ Sonatype OSS, NPM Public Advisors, RetireJS, VulnDB, поддршка за сопствената база на податоци за ранливост
Способност за филтрирање на компоненти со отворен код кога се обидувате да се вчитаат во развојната јамка според конфигурираните политики
+
-
-
Препораки за поправање на пропусти, достапност на линкови до поправки
+
+- (зависи од описот во јавните бази на податоци)
+- (зависи од описот во јавните бази на податоци)
Рангирање на откриените ранливости по сериозност
+
+
+
Модел за пристап заснован на улоги
+
-
+
CLI поддршка
+
+
+- (само за CycloneDX)
Земање примероци/сортирање на ранливости според дефинирани критериуми
+
-
+
Контролна табла според статусот на апликацијата
+
-
+
Генерирање извештаи во PDF формат
+
-
-
Генерирање извештаи во JSONCSV формат
+
+
-
Поддршка на руски јазик
-
-
-
Способности за интеграција
Интеграција
Nexus IQ
Проверка на зависност
Песна за зависност
Интеграција на LDAP/Active Directory
+
-
+
Интеграција со системот за континуирана интеграција Bamboo
+
-
-
Интеграција со системот за континуирана интеграција TeamCity
+
-
-
Интеграција со системот за континуирана интеграција GitLab
+
+- (како додаток за GitLab)
+
Интеграција со системот за континуирана интеграција Џенкинс
+
+
+
Достапност на приклучоци за IDE
+ IntelliJ, Eclipse, Visual Studio
-
-
Поддршка за сопствена интеграција преку веб-услуги (API) на алатката
+
-
+
Проверка на зависност
Прв почеток
Ајде да извршиме проверка на зависноста на намерно ранлива апликација
За ова ќе користиме
mvn org.owasp:dependency-check-maven:check
Како резултат на тоа, dependency-check-report.html ќе се појави во целниот директориум.
Ајде да ја отвориме датотеката. По збирните информации за вкупниот број на ранливости, можеме да видиме информации за ранливости со високо ниво на сериозност и доверба, означувајќи го пакетот, CPE и бројот на CVE.
Следат подетални информации, особено основата врз која е донесена одлуката (докази), односно одреден БОМ.
Следно доаѓа описот CPE, PURL и CVE. Патем, препораките за корекција не се вклучени поради нивното отсуство во базата на податоци на НВД.
За систематски преглед на резултатите од скенирањето, можете да го конфигурирате Nginx со минимални поставки или да ги испратите добиените дефекти до систем за управување со дефекти што поддржува конектори за проверка на зависноста. На пример, Defect Dojo.
Песна за зависност
Инсталација
Dependency Track, пак, е веб-базирана платформа со графикони за прикажување, така што тука не се појавува актуелното прашање за складирање на дефекти во решение од трета страна.
Поддржани скрипти за инсталација се: Docker, WAR, Executable WAR.
Прв почеток
Одиме до URL-то на услугата што работи. Се најавуваме преку администратор/администратор, ги менуваме најавувањето и лозинката, а потоа доаѓаме до Контролната табла. Следното нешто што ќе го направиме е да создадеме проект за тест апликација во Java во Почетна/Проекти → Креирај проект . Да ја земеме DVJA како пример.
Бидејќи Dependency Track може да прифати само BOM како влез, овој BOM мора да се преземе. Ајде да ги искористиме
mvn org.cyclonedx:cyclonedx-maven-plugin:makeAggregateBom
Добиваме bom.xml и ја вчитуваме датотеката во креираниот проект DVJA → Зависности → Постави BOM.
Ајде да одиме во Администрација → Анализатори. Разбираме дека имаме овозможен само внатрешен аналитичар, кој вклучува NVD. Ајде да го поврземе и Sonatype OSS Index.
Така, ја добиваме следната слика за нашиот проект:
Исто така, во списокот можете да најдете една ранливост применлива за Sonatype OSS:
Главното разочарување беше што Dependency Track повеќе не прифаќа извештаи за проверка на зависност од xml. Најновите поддржани верзии на интеграцијата за проверка на зависноста беа 1.0.0 - 4.0.2, додека јас ја тестирав 5.3.2.
тука е
Nexus IQ
Прв почеток
Инсталирањето на Nexus IQ доаѓа од архивите на
Откако ќе се најавите во конзолата, треба да креирате организација и апликација.
Како што можете да видите, поставувањето во случајот со коефициентот на интелигенција е нешто покомплицирано, бидејќи ние исто така треба да креираме политики кои се применливи за различни „фази“ (dev, build, stage, release). Ова е неопходно за да се блокираат ранливите компоненти додека се движат низ гасоводот поблиску до производството или да се блокираат веднаш штом ќе влезат во Nexus Repo кога ќе ги преземат програмерите.
За да ја почувствуваме разликата помеѓу отворен код и претпријатие, ајде да го извршиме истото скенирање преку Nexus IQ на ист начин преку dvja-test-and-compare
:
mvn com.sonatype.clm:clm-maven-plugin:evaluate -Dclm.applicationId=dvja-test-and-compare -Dclm.serverUrl=<NEXUSIQIP> -Dclm.username=<USERNAME> -Dclm.password=<PASSWORD>
Следете ја URL-то на генерираниот извештај во веб-интерфејсот на IQ:
Овде можете да ги видите сите прекршувања на правилата што укажуваат на различни нивоа на значајност (од информации до критични безбедносни). Буквата D до компонентата значи дека компонентата е Direct Dependency, а буквата T до компонентата значи дека компонентата е Transitive Dependency, односно е транзитивна.
Патем, извештајот
Ако отвориме едно од прекршувањата на политиката на Nexus IQ, можеме да видиме опис на компонентата, како и График на верзии, кој ја прикажува локацијата на тековната верзија во временскиот график, како и во кој момент ранливоста престанува да бидете ранливи. Висината на свеќите на графиконот ја покажува популарноста на користењето на оваа компонента.
Ако отидете во делот за ранливости и го проширите CVE, можете да прочитате опис на оваа ранливост, препораки за елиминација, како и причината зошто оваа компонента е прекршена, односно присуството на класата DiskFileitem.class
.
Ајде да ги сумираме само оние поврзани со компонентите на Java од трета страна, отстранувајќи ги компонентите на js. Во загради го означуваме бројот на пропусти што се пронајдени надвор од NVD.
Вкупен IQ на Nexus:
- Скенирани зависности: 62
- Ранливи зависности: 16
- Пронајдени ранливости: 42 (8 сонатип db)
Проверка на вкупна зависност:
- Скенирани зависности: 47
- Ранливи зависности: 13
- Пронајдени ранливости: 91 (14 сонатип oss)
Вкупна песна за зависност:
- Скенирани зависности: 59
- Ранливи зависности: 10
- Пронајдени ранливости: 51 (1 сонатип oss)
Во следните чекори, ќе ги анализираме добиените резултати и ќе откриеме која од овие пропусти е вистински дефект, а која е лажна позитивна.
Одрекување од одговорност
Овој преглед не е неоспорна вистина. Авторот немал цел да истакне посебен инструмент на позадината на другите. Целта на прегледот беше да се прикажат механизмите на работа на SCA алатките и начините за проверка на нивните резултати.
Споредба на резултатите
Рокови и услови:
Лажно позитивно за ранливости на компонентите од трети страни е:
- CVE неусогласеност со идентификуваната компонента
- На пример, ако е идентификувана ранливост во рамката struts2, а алатката укажува на компонента од рамката struts-tiles, на која оваа ранливост не важи, тогаш ова е лажно позитивно
- CVE несовпаѓање со идентификуваната верзија на компонентата
- На пример, ранливоста е поврзана со верзијата на python > 3.5 и алатката ја означува верзијата 2.7 како ранлива - ова е лажно позитивно, бидејќи всушност ранливоста се однесува само на гранката на производот 3.x
- Дупликат CVE
- На пример, ако SCA специфицира CVE што овозможува RCE, тогаш SCA одредува CVE за истата компонента што се однесува на производите на Cisco погодени од тој RCE. Во овој случај тоа ќе биде лажно позитивно.
- На пример, CVE беше пронајден во пролет-веб компонента, по што SCA укажува на истиот CVE во другите компоненти на Spring Framework, додека CVE нема никаква врска со другите компоненти. Во овој случај тоа ќе биде лажно позитивно.
Цел на студијата беше проектот со отворен код ДВЈА. Студијата вклучуваше само java компоненти (без js).
Збирни резултати
Ајде да одиме директно на резултатите од рачниот преглед на идентификуваните пропусти. Целосниот извештај за секој CVE може да се најде во Додатокот.
Збирни резултати за сите ранливости:
Параметар
Nexus IQ
Проверка на зависност
Песна за зависност
Вкупно идентификувани пропусти
42
91
51
Неправилно идентификувани ранливости (лажно позитивни)
2 (4.76%)
62 (68,13%)
29 (56.86%)
Не се пронајдени релевантни пропусти (лажно негативно)
10
20
27
Збирни резултати по компоненти:
Параметар
Nexus IQ
Проверка на зависност
Песна за зависност
Вкупно идентификувани компоненти
62
47
59
Вкупно ранливи компоненти
16
13
10
Неправилно идентификувани ранливи компоненти (лажно позитивни)
1
5
0
Неправилно идентификувани ранливи компоненти (лажно позитивни)
0
6
6
Ајде да изградиме визуелни графикони за да го оцениме односот на лажно позитивни и лажно негативни со вкупниот број на ранливости. Компонентите се означени хоризонтално, а ранливостите идентификувани во нив се означени вертикално.
За споредба, слична студија беше спроведена од тимот на Sonatype кој тестираше проект од 1531 компонента користејќи OWASP Dependency Check. Како што можеме да видиме, односот на бучавата и точните одговори е споредлив со нашите резултати.
Извор:
Ајде да погледнеме неколку CVE од нашите резултати од скенирањето за да ја разбереме причината за овие резултати.
Повеќе
№ 1
Ајде прво да погледнеме неколку интересни точки за Sonatype Nexus IQ.
Nexus IQ укажува на проблем со десериализацијата со способноста да се изврши RCE во Spring Framework повеќе пати. CVE-2016-1000027 во пролет-веб:3.0.5 прв пат, и CVE-2011-2894 во пролет-контекст:3.0.5 и пролет-јадро:3.0.5. На почетокот, се чини дека постои дуплирање на ранливоста кај повеќе CVE. Бидејќи, ако ги погледнете CVE-2016-1000027 и CVE-2011-2894 во базата на податоци на NVD, се чини дека сè е очигледно
Компонента
Ранливост
пролет-веб:3.0.5
CVE-2016-1000027
пролет-контекст:3.0.5
CVE-2011-2894
пролет-јадро: 3.0.5
CVE-2011-2894
Опис
Опис
Самиот CVE-2011-2894 е доста познат. Во извештајот RemoteInvocationSerializingExporter
во CVE-2011-2894, ранливоста е забележана кај HttpInvokerServiceExporter
. Еве што ни кажува Nexus IQ:
Сепак, нема вакво нешто во NVD, поради што проверката на зависноста и песната за зависност добиваат лажно негативни.
Исто така, од описот на CVE-2011-2894 може да се разбере дека ранливоста е навистина присутна и во пролетниот контекст:3.0.5 и во пролетниот јадро:3.0.5. Потврда за ова може да се најде во статија од лицето кое ја пронашло оваа ранливост.
№ 2
Компонента
Ранливост
Резултира
потпори 2-јадро: 2.3.30
CVE-2016-4003
НЕТОЧНО
Ако ја проучиме ранливоста CVE-2016-4003, ќе разбереме дека е поправена во верзијата 2.3.28, сепак, Nexus IQ ни ја известува. Има забелешка во описот на ранливоста:
Односно, ранливоста постои само во врска со застарена верзија на JRE, за која решија да не предупредат. Сепак, ова го сметаме за лажно позитивно, иако не и најлошо.
Бр. 3
Компонента
Ранливост
Резултира
xwork-core: 2.3.30
CVE-2017-9804
ТОЧНО
xwork-core: 2.3.30
CVE-2017-7672
НЕТОЧНО
Ако ги погледнеме описите на CVE-2017-9804 и CVE-2017-7672, ќе разбереме дека проблемот е URLValidator class
, со CVE-2017-9804 што произлегува од CVE-2017-7672. Присуството на втората ранливост не носи никакво корисно оптоварување освен фактот дека нејзината сериозност е зголемена на Високо, така што можеме да ја сметаме за непотребна бучава.
Севкупно, не беа пронајдени други лажни позитиви за Nexus IQ.
№ 4
Постојат неколку работи кои го прават IQ да се издвојува од другите решенија.
Компонента
Ранливост
Резултира
пролет-веб:3.0.5
CVE-2020-5398
ТОЧНО
CVE во NVD наведува дека се однесува само на верзиите 5.2.x пред 5.2.3, 5.1.x пред 5.1.13 и верзиите 5.0.x пред 5.0.16, сепак, ако го погледнеме описот CVE во Nexus IQ , тогаш ќе го видиме следново:
Советодавно отстапување: Тимот за безбедносно истражување на Sonatype откри дека оваа ранливост е воведена во верзијата 3.0.2.RELEASE, а не во 5.0.x како што е наведено во советот.
Потоа следи PoC за оваа ранливост, во која се наведува дека е присутна во верзијата 3.0.5.
Лажно негативно се испраќа до проверка на зависност и песна за зависност.
№ 5
Ајде да погледнеме лажно позитивно за проверка на зависност и песна за зависност.
Проверката на зависност се издвојува по тоа што ги рефлектира оние CVE кои се однесуваат на целата рамка во NVD на оние компоненти за кои овие CVE не се применуваат. Ова се однесува на CVE-2012-0394, CVE-2013-2115, CVE-2014-0114, CVE-2015-0899, CVE-2015-2992, CVE-2016-1181, CVE-2016-1182 проверки, зависни ” до потпори-taglib:1.3.8 и потпори-плочки-1.3.8. Овие компоненти немаат никаква врска со она што е опишано во CVE - обработка на барања, валидација на страницата итн. Ова се должи на фактот дека она што е заедничко за овие CVE и компоненти е само рамката, па затоа Dependency Check го сметаше за ранливост.
Истата ситуација е со пружината-tx:3.0.5, а слична е и со потпорите-јадро:1.3.8. За struts-core, Dependency Check и Dependency Track пронајдоа многу пропусти кои всушност се применливи за struts2-core, што во суштина е посебна рамка. Во овој случај, Nexus IQ правилно ја разбра сликата и во CVE што ги издаде, укажа дека јадрото на потпорите дошло до крајот на животот и дека е неопходно да се префрли на Struts2-core.
№ 6
Во некои ситуации, неправедно е да се протолкува очигледна грешка за проверка на зависност и песна за зависност. Конкретно CVE-2013-4152, CVE-2013-6429, CVE-2013-6430, CVE-2013-7315, CVE-2014-0054, CVE-2014-0225, CVE-2014-0225 Проверка на зависност и зависност припишан на пролет-јадро:3.0.5 всушност припаѓа на пролет-веб:3.0.5. Во исто време, некои од овие CVE беа пронајдени и од Nexus IQ, меѓутоа, IQ правилно ги идентификуваше во друга компонента. Бидејќи овие пропусти не беа пронајдени во пролетното јадро, не може да се тврди дека во принцип не се во рамката и алатките со отворен код со право ги посочија овие пропусти (само малку пропуштија).
Наоди
Како што можеме да видиме, утврдувањето на веродостојноста на идентификуваните пропусти со рачен преглед не дава недвосмислени резултати, поради што се појавуваат контроверзни прашања. Резултатите се дека решението Nexus IQ има најниска стапка на лажно позитивни и најголема прецизност.
Пред сè, ова се должи на фактот што тимот на Sonatype го прошири описот за секоја CVE ранливост од NVD во своите бази на податоци, укажувајќи на ранливостите за одредена верзија на компонентите до класата или функцијата, спроведувајќи дополнително истражување (на пример , проверка на пропустите на постарите верзии на софтвер).
Важно влијание врз резултатите имаат и оние пропусти кои не беа вклучени во NVD, но сепак се присутни во базата на податоци Sonatype со ознаката SONATYPE. Според извештајот
Како резултат на тоа, Dependency Check произведува многу бучава, пропуштајќи некои ранливи компоненти. Dependency Track произведува помалку шум и детектира голем број компоненти, што визуелно не ги повредува очите во веб-интерфејсот.
Сепак, практиката покажува дека отворениот код треба да стане првиот чекор кон зрели DevSecOps. Првото нешто на што треба да размислите кога го интегрирате SCA во развојот се процесите, имено, размислување заедно со менаџментот и сродните одделенија за тоа како треба да изгледаат идеалните процеси во вашата организација. Може да испадне дека за вашата организација, на почетокот, Dependency Check или Dependency Track ќе ги покрие сите деловни потреби, а Enterprise решенијата ќе бидат логично продолжение поради зголемената сложеност на апликациите што се развиваат.
Додаток А: Резултати од компонентите
Симболи:
- Ранливост на високо-високо и критично ниво во компонентата
- Медиум — Ранливост на средно ниво на критичност во компонентата
- ВИСТИНА - Вистинско позитивно прашање
- НЕТОЧНО - Лажно позитивно прашање
Компонента
Nexus IQ
Проверка на зависност
Песна за зависност
Резултира
dom4j: 1.6.1
Високо
Високо
Високо
ТОЧНО
log4j-јадро: 2.3
Високо
Високо
Високо
ТОЧНО
log4j: 1.2.14
Високо
Високо
-
ТОЧНО
Commons-збирки:3.1
Високо
Високо
Високо
ТОЧНО
Commons-upload:1.3.2
Високо
Високо
Високо
ТОЧНО
Commons-beanutils:1.7.0
Високо
Високо
Високо
ТОЧНО
Commons-codec:1:10
Медиум
-
-
ТОЧНО
mysql-connector-java:5.1.42
Високо
Високо
Високо
ТОЧНО
пролет-израз:3.0.5
Високо
компонента не е пронајдена
ТОЧНО
пролет-веб:3.0.5
Високо
компонента не е пронајдена
Високо
ТОЧНО
пролет-контекст:3.0.5
Медиум
компонента не е пронајдена
-
ТОЧНО
пролет-јадро: 3.0.5
Медиум
Високо
Високо
ТОЧНО
struts2-config-прелистувач-приклучок:2.3.30
Медиум
-
-
ТОЧНО
пролет-tx: 3.0.5
-
Високо
-
НЕТОЧНО
потпори-јадро:1.3.8
Високо
Високо
Високо
ТОЧНО
xwork-core: 2.3.30
Високо
-
-
ТОЧНО
потпори 2-јадро: 2.3.30
Високо
Високо
Високо
ТОЧНО
потпори-таглиб:1.3.8
-
Високо
-
НЕТОЧНО
потпори-плочки-1.3.8
-
Високо
-
НЕТОЧНО
Додаток Б: Резултати за ранливост
Симболи:
- Ранливост на високо-високо и критично ниво во компонентата
- Медиум — Ранливост на средно ниво на критичност во компонентата
- ВИСТИНА - Вистинско позитивно прашање
- НЕТОЧНО - Лажно позитивно прашање
Компонента
Nexus IQ
Проверка на зависност
Песна за зависност
Сериозност
Резултира
Коментар
dom4j: 1.6.1
CVE-2018-1000632
CVE-2018-1000632
CVE-2018-1000632
Високо
ТОЧНО
CVE-2020-10683
CVE-2020-10683
CVE-2020-10683
Високо
ТОЧНО
log4j-јадро: 2.3
CVE-2017-5645
CVE-2017-5645
CVE-2017-5645
Високо
ТОЧНО
CVE-2020-9488
CVE-2020-9488
CVE-2020-9488
Ниско
ТОЧНО
log4j: 1.2.14
CVE-2019-17571
CVE-2019-17571
-
Високо
ТОЧНО
-
CVE-2020-9488
-
Ниско
ТОЧНО
СОНАТИП-2010-0053
-
-
Високо
ТОЧНО
Commons-збирки:3.1
-
CVE-2015-6420
CVE-2015-6420
Високо
НЕТОЧНО
Дупликати RCE(OSSINDEX)
-
CVE-2017-15708
CVE-2017-15708
Високо
НЕТОЧНО
Дупликати RCE(OSSINDEX)
СОНАТИП-2015-0002
RCE (OSSINDEX)
RCE (OSSINDEX)
Високо
ТОЧНО
Commons-upload:1.3.2
CVE-2016-1000031
CVE-2016-1000031
CVE-2016-1000031
Високо
ТОЧНО
СОНАТИП-2014-0173
-
-
Медиум
ТОЧНО
Commons-beanutils:1.7.0
CVE-2014-0114
CVE-2014-0114
CVE-2014-0114
Високо
ТОЧНО
-
CVE-2019-10086
CVE-2019-10086
Високо
НЕТОЧНО
Ранливоста се однесува само на верзиите 1.9.2+
Commons-codec:1:10
СОНАТИП-2012-0050
-
-
Медиум
ТОЧНО
mysql-connector-java:5.1.42
CVE-2018-3258
CVE-2018-3258
CVE-2018-3258
Високо
ТОЧНО
CVE-2019-2692
CVE-2019-2692
-
Медиум
ТОЧНО
-
CVE-2020-2875
-
Медиум
НЕТОЧНО
Истата ранливост како CVE-2019-2692, но со забелешката „нападите може значително да влијаат на дополнителни производи“
-
CVE-2017-15945
-
Високо
НЕТОЧНО
Не е релевантно за mysql-connector-java
-
CVE-2020-2933
-
Ниско
НЕТОЧНО
Дупликат на CVE-2020-2934
CVE-2020-2934
CVE-2020-2934
-
Медиум
ТОЧНО
пролет-израз:3.0.5
CVE-2018-1270
компонента не е пронајдена
-
Високо
ТОЧНО
CVE-2018-1257
-
-
Медиум
ТОЧНО
пролет-веб:3.0.5
CVE-2016-1000027
компонента не е пронајдена
-
Високо
ТОЧНО
CVE-2014-0225
-
CVE-2014-0225
Високо
ТОЧНО
CVE-2011-2730
-
-
Високо
ТОЧНО
-
-
CVE-2013-4152
Медиум
ТОЧНО
CVE-2018-1272
-
-
Високо
ТОЧНО
CVE-2020-5398
-
-
Високо
ТОЧНО
Илустративен пример во корист на IQ: „Тимот за истражување на безбедноста на Sonatype откри дека оваа ранливост е воведена во верзијата 3.0.2.RELEASE, а не 5.0.x како што е наведено во советот“.
CVE-2013-6429
-
-
Медиум
ТОЧНО
CVE-2014-0054
-
CVE-2014-0054
Медиум
ТОЧНО
CVE-2013-6430
-
-
Медиум
ТОЧНО
пролет-контекст:3.0.5
CVE-2011-2894
компонента не е пронајдена
-
Медиум
ТОЧНО
пролет-јадро: 3.0.5
-
CVE-2011-2730
CVE-2011-2730
Високо
ТОЧНО
CVE-2011-2894
CVE-2011-2894
CVE-2011-2894
Медиум
ТОЧНО
-
-
CVE-2013-4152
Медиум
НЕТОЧНО
Дупликат на истата ранливост во пролет-веб
-
CVE-2013-4152
-
Медиум
НЕТОЧНО
Ранливоста се однесува на компонентата пролет-веб
-
CVE-2013-6429
CVE-2013-6429
Медиум
НЕТОЧНО
Ранливоста се однесува на компонентата пролет-веб
-
CVE-2013-6430
-
Медиум
НЕТОЧНО
Ранливоста се однесува на компонентата пролет-веб
-
CVE-2013-7315
CVE-2013-7315
Медиум
НЕТОЧНО
СПЛИТ од CVE-2013-4152. + Ранливоста се однесува на компонентата пролет-веб
-
CVE-2014-0054
CVE-2014-0054
Медиум
НЕТОЧНО
Ранливоста се однесува на компонентата пролет-веб
-
CVE-2014-0225
-
Високо
НЕТОЧНО
Ранливоста се однесува на компонентата пролет-веб
-
-
CVE-2014-0225
Високо
НЕТОЧНО
Дупликат на истата ранливост во пролет-веб
-
CVE-2014-1904
CVE-2014-1904
Медиум
НЕТОЧНО
Ранливоста се однесува на компонентата Spring-web-mvc
-
CVE-2014-3625
CVE-2014-3625
Медиум
НЕТОЧНО
Ранливоста се однесува на компонентата Spring-web-mvc
-
CVE-2016-9878
CVE-2016-9878
Високо
НЕТОЧНО
Ранливоста се однесува на компонентата Spring-web-mvc
-
CVE-2018-1270
CVE-2018-1270
Високо
НЕТОЧНО
За пролет-израз/пролет-пораки
-
CVE-2018-1271
CVE-2018-1271
Медиум
НЕТОЧНО
Ранливоста се однесува на компонентата Spring-web-mvc
-
CVE-2018-1272
CVE-2018-1272
Високо
ТОЧНО
CVE-2014-3578
CVE-2014-3578 (OSSINDEX)
CVE-2014-3578
Медиум
ТОЧНО
СОНАТИП-2015-0327
-
-
Ниско
ТОЧНО
struts2-config-прелистувач-приклучок:2.3.30
СОНАТИП-2016-0104
-
-
Медиум
ТОЧНО
пролет-tx: 3.0.5
-
CVE-2011-2730
-
Високо
НЕТОЧНО
Ранливоста не е специфична за пролетта-tx
-
CVE-2011-2894
-
Високо
НЕТОЧНО
Ранливоста не е специфична за пролетта-tx
-
CVE-2013-4152
-
Медиум
НЕТОЧНО
Ранливоста не е специфична за пролетта-tx
-
CVE-2013-6429
-
Медиум
НЕТОЧНО
Ранливоста не е специфична за пролетта-tx
-
CVE-2013-6430
-
Медиум
НЕТОЧНО
Ранливоста не е специфична за пролетта-tx
-
CVE-2013-7315
-
Медиум
НЕТОЧНО
Ранливоста не е специфична за пролетта-tx
-
CVE-2014-0054
-
Медиум
НЕТОЧНО
Ранливоста не е специфична за пролетта-tx
-
CVE-2014-0225
-
Високо
НЕТОЧНО
Ранливоста не е специфична за пролетта-tx
-
CVE-2014-1904
-
Медиум
НЕТОЧНО
Ранливоста не е специфична за пролетта-tx
-
CVE-2014-3625
-
Медиум
НЕТОЧНО
Ранливоста не е специфична за пролетта-tx
-
CVE-2016-9878
-
Високо
НЕТОЧНО
Ранливоста не е специфична за пролетта-tx
-
CVE-2018-1270
-
Високо
НЕТОЧНО
Ранливоста не е специфична за пролетта-tx
-
CVE-2018-1271
-
Медиум
НЕТОЧНО
Ранливоста не е специфична за пролетта-tx
-
CVE-2018-1272
-
Медиум
НЕТОЧНО
Ранливоста не е специфична за пролетта-tx
потпори-јадро:1.3.8
-
CVE-2011-5057 (OSSINDEX)
Медиум
ФАСЛЕ
Ранливост на потпори 2
-
CVE-2012-0391 (OSSINDEX)
CVE-2012-0391
Високо
НЕТОЧНО
Ранливост на потпори 2
-
CVE-2014-0094 (OSSINDEX)
CVE-2014-0094
Медиум
НЕТОЧНО
Ранливост на потпори 2
-
CVE-2014-0113 (OSSINDEX)
CVE-2014-0113
Високо
НЕТОЧНО
Ранливост на потпори 2
CVE-2016-1182
3VE-2016-1182
-
Високо
ТОЧНО
-
-
CVE-2011-5057
Медиум
НЕТОЧНО
Ранливост на потпори 2
-
CVE-2012-0392 (OSSINDEX)
CVE-2012-0392
Високо
НЕТОЧНО
Ранливост на потпори 2
-
CVE-2012-0393 (OSSINDEX)
CVE-2012-0393
Медиум
НЕТОЧНО
Ранливост на потпори 2
CVE-2015-0899
CVE-2015-0899
-
Високо
ТОЧНО
-
CVE-2012-0394
CVE-2012-0394
Медиум
НЕТОЧНО
Ранливост на потпори 2
-
CVE-2012-0838 (OSSINDEX)
CVE-2012-0838
Високо
НЕТОЧНО
Ранливост на потпори 2
-
CVE-2013-1965 (OSSINDEX)
CVE-2013-1965
Високо
НЕТОЧНО
Ранливост на потпори 2
-
CVE-2013-1966 (OSSINDEX)
CVE-2013-1966
Високо
ФАСЛЕ
Ранливост на потпори 2
-
CVE-2013-2115
CVE-2013-2115
Високо
ФАСЛЕ
Ранливост на потпори 2
-
CVE-2013-2134 (OSSINDEX)
CVE-2013-2134
Високо
ФАСЛЕ
Ранливост на потпори 2
-
CVE-2013-2135 (OSSINDEX)
CVE-2013-2135
Високо
ФАСЛЕ
Ранливост на потпори 2
CVE-2014-0114
CVE-2014-0114
-
Високо
ТОЧНО
-
CVE-2015-2992
CVE-2015-2992
Медиум
НЕТОЧНО
Ранливост на потпори 2
-
CVE-2016-0785 (OSSINDEX)
CVE-2016-0785
Високо
НЕТОЧНО
Ранливост на потпори 2
CVE-2016-1181
CVE-2016-1181
-
Високо
ТОЧНО
-
CVE-2016-4003 (OSSINDEX)
CVE-2016-4003
Високо
НЕТОЧНО
Ранливост на потпори 2
xwork-core: 2.3.30
CVE-2017-9804
-
-
Високо
ТОЧНО
СОНАТИП-2017-0173
-
-
Високо
ТОЧНО
CVE-2017-7672
-
-
Високо
НЕТОЧНО
Дупликат на CVE-2017-9804
СОНАТИП-2016-0127
-
-
Високо
ТОЧНО
потпори 2-јадро: 2.3.30
-
CVE-2016-6795
CVE-2016-6795
Високо
ТОЧНО
-
CVE-2017-9787
CVE-2017-9787
Високо
ТОЧНО
-
CVE-2017-9791
CVE-2017-9791
Високо
ТОЧНО
-
CVE-2017-9793
-
Високо
НЕТОЧНО
Дупликат на CVE-2018-1327
-
CVE-2017-9804
-
Високо
ТОЧНО
-
CVE-2017-9805
CVE-2017-9805
Високо
ТОЧНО
CVE-2016-4003
-
-
Медиум
НЕТОЧНО
Применливо за Apache Struts 2.x до 2.3.28, што е верзија 2.3.30. Сепак, врз основа на описот, CVE важи за која било верзија на Struts 2 доколку се користи JRE 1.7 или помалку. Очигледно решиле овде да не реосигуруваат, но повеќе личи на ЛАЖНО
-
CVE-2018-1327
CVE-2018-1327
Високо
ТОЧНО
CVE-2017-5638
CVE-2017-5638
CVE-2017-5638
Високо
ТОЧНО
Истата ранливост што хакерите на Equifax ја искористија во 2017 година
CVE-2017-12611
CVE-2017-12611
-
Високо
ТОЧНО
CVE-2018-11776
CVE-2018-11776
CVE-2018-11776
Високо
ТОЧНО
потпори-таглиб:1.3.8
-
CVE-2012-0394
-
Медиум
НЕТОЧНО
За потпори со 2 јадра
-
CVE-2013-2115
-
Високо
НЕТОЧНО
За потпори со 2 јадра
-
CVE-2014-0114
-
Високо
НЕТОЧНО
За обичните бобини
-
CVE-2015-0899
-
Високо
НЕТОЧНО
Не се однесува на taglib
-
CVE-2015-2992
-
Медиум
НЕТОЧНО
Се однесува на потпори 2-јадро
-
CVE-2016-1181
-
Високо
НЕТОЧНО
Не се однесува на taglib
-
CVE-2016-1182
-
Високо
НЕТОЧНО
Не се однесува на taglib
потпори-плочки-1.3.8
-
CVE-2012-0394
-
Медиум
НЕТОЧНО
За потпори со 2 јадра
-
CVE-2013-2115
-
Високо
НЕТОЧНО
За потпори со 2 јадра
-
CVE-2014-0114
-
Високо
НЕТОЧНО
Под комонс-беанутил
-
CVE-2015-0899
-
Високо
НЕТОЧНО
Не се однесува на плочки
-
CVE-2015-2992
-
Медиум
НЕТОЧНО
За потпори со 2 јадра
-
CVE-2016-1181
-
Високо
НЕТОЧНО
Не се однесува на taglib
-
CVE-2016-1182
-
Високо
НЕТОЧНО
Не се однесува на taglib
Извор: www.habr.com