DevSecOps: ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ сравнСниС SCA. Π§Π°ΡΡ‚ΡŒ пСрвая

Π—Π½Π°Ρ‡ΠΈΠΌΠΎΡΡ‚ΡŒ Π°Π½Π°Π»ΠΈΠ·Π° сторонних ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ПО (Π°Π½Π³Π». Software Composition Analysis β€” SCA) Π² процСссС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ растСт ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ Π²Ρ‹Ρ…ΠΎΠ΄Π° Π΅ΠΆΠ΅Π³ΠΎΠ΄Π½Ρ‹Ρ… ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ² ΠΎΠ± уязвимостях open source Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΡŽΡ‚ΡΡ компаниями Synopsys, Sonatype, Snyk, White Source. Богласно ΠΎΡ‚Ρ‡Π΅Ρ‚Ρƒ The State of Open Source Security Vulnerabilities 2020 число выявлСнных уязвимостСй Π² open source Π² 2019 выросло ΠΏΠΎΡ‡Ρ‚ΠΈ Π² 1.5 Ρ€Π°Π·Π° Π² сравнСнии с ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌ Π³ΠΎΠ΄ΠΎΠΌ, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΎΡ‚ 60% Π΄ΠΎ 80% ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ². Если ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ нСзависимому мнСнию, Ρ‚ΠΎ процСссы SCA ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ OWASP SAMM ΠΈ BSIMM Π² качСствС показатСля зрСлости, Π° Π² ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π΅ 2020 Π³ΠΎΠ΄Π° OWASP выпустила Π½ΠΎΠ²Ρ‹ΠΉ стандарт OWASP Software Component Verification Standard (SCVS), ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ Π»ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ ΠΏΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ сторонних ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅ поставок ПО.

DevSecOps: ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ сравнСниС SCA. Π§Π°ΡΡ‚ΡŒ пСрвая

Один ΠΈΠ· самых ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… кСйсов ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ΅Π» с ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Equifax Π² ΠΌΠ°Π΅ 2017 Π³ΠΎΠ΄Π°. НСизвСстныС Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΠΈ Π·Π°Π²Π»Π°Π΄Π΅Π»ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎ 143 ΠΌΠ»Π½. Π°ΠΌΠ΅Ρ€ΠΈΠΊΠ°Π½Ρ†Π΅Π², Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΠΎΠ»Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π°, адрСса, Π½ΠΎΠΌΠ΅Ρ€Π° ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ страхования ΠΈ Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΡ… удостовСрСний. Π’ 209 000 случаях Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ… Ρ‚Π°ΠΊΠΆΠ΅ Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π»Π° информация ΠΎ банковских ΠΊΠ°Ρ€Ρ‚Π°Ρ… ΠΏΠΎΡΡ‚Ρ€Π°Π΄Π°Π²ΡˆΠΈΡ…. Данная ΡƒΡ‚Π΅Ρ‡ΠΊΠ° ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»Π° Π² слСдствиС эксплуатации критичСской уязвимости Π² Apache Struts 2 (CVE-2017-5638), Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ исправлСниС Π±Ρ‹Π»ΠΎ Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½ΠΎ Π΅Ρ‰Π΅ Π² ΠΌΠ°Ρ€Ρ‚Π΅ 2017 Π³ΠΎΠ΄Π°. Π£ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π±Ρ‹Π»ΠΎ Π΄Π²Π° мСсяца Π½Π° установку обновлСния, ΠΎΠ΄Π½Π°ΠΊΠΎ этим Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ озаботился.

Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±ΡΡƒΠΆΠ΄Π°Ρ‚ΡŒΡΡ вопрос Π²Ρ‹Π±ΠΎΡ€Π° инструмСнта для провСдСния SCA с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния качСства Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Π°Π½Π°Π»ΠΈΠ·Π°. Π’Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ сравнСниС инструмСнтов. ΠŸΡ€ΠΎΡ†Π΅ΡΡ встраивания Π² CI/CD ΠΈ возмоТности ΠΏΠΎ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ оставим Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ. Π¨ΠΈΡ€ΠΎΠΊΠΈΠΉ список инструмСнтов Π±Ρ‹Π» прСдставлСн OWASP Π½Π° своСм сайтС, Π½ΠΎ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΎΠ±Π·ΠΎΡ€Π° ΠΌΡ‹ коснСмся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ самого популярного open source инструмСнта Dependency Check, Ρ‡ΡƒΡ‚ΡŒ ΠΌΠ΅Π½Π΅Π΅ извСстной open source ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Dependency Track ΠΈ Enterprise-Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Sonatype Nexus IQ. Π’Π°ΠΊΠΆΠ΅ разбСрСмся, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ эти Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΈ сравним ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π½Π° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ Π»ΠΎΠΆΠ½Ρ‹Ρ… срабатываний.

DevSecOps: ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ сравнСниС SCA. Π§Π°ΡΡ‚ΡŒ пСрвая

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Dependency Check β€” это ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° (CLI, maven, jenkins ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, ant), которая Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, собираСт Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ зависимостях (package name, groupid, specification title, version…), строит строку CPE β€” (Common Platform Enumeration), Package URL (PURL) ΠΈ выявляСт для CPE/PURL уязвимости ΠΈΠ· Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… (NVD, Sonatype OSS Index, NPM Audit API…), послС Ρ‡Π΅Π³ΠΎ строит Π΅Π΄ΠΈΠ½ΠΎΡ€Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΎΡ‚Ρ‡Π΅Ρ‚ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ HTML, JSON, XML…

Рассмотрим, ΠΊΠ°ΠΊ выглядит CPE:

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

  • Part: Π£ΠΊΠ°Π·Π°Π½ΠΈΠ΅ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ относится ΠΊ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ (a), ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС (o), ΠΆΠ΅Π»Π΅Π·Ρƒ (h) (ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡƒΠ½ΠΊΡ‚)
  • Vendor: НазваниС производитСля ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° (ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡƒΠ½ΠΊΡ‚)
  • Product: НазваниС ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° (ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡƒΠ½ΠΊΡ‚)
  • Version: ВСрсия ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ (Π£ΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΉ ΠΏΡƒΠ½ΠΊΡ‚)
  • Update: ОбновлСниС ΠΏΠ°ΠΊΠ΅Ρ‚Π°
  • Edition: НаслСдуСмая вСрсия (Π£ΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΉ ΠΏΡƒΠ½ΠΊΡ‚)
  • Language: Π―Π·Ρ‹ΠΊ, опрСдСляСмый Π² RFC-5646
  • SW Edition: ВСрсия ПО
  • Target SW: ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Π°Ρ срСда, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚
  • Target HW: Аппаратная срСда, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚
  • Other: Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ поставщикС ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π΅

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ CPE выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

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

Π‘Ρ‚Ρ€ΠΎΠΊΠ° ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ CPE вСрсии 2.3 описываСт ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ прилоТСния ΠΎΡ‚ производитСля pivotal_software с Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ spring_framework вСрсии 3.0.0. Если ΠΌΡ‹ ΠΎΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ CVE-2014-0225 Π² NVD, Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅ этой CPE. ΠŸΠ΅Ρ€Π²Π°Ρ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ сразу стоит ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ β€” CVE Π² NVD, согласно CPE, сообщаСт ΠΎ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π²ΠΎ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ΅, Π° Π½Π΅ Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅. Π’ΠΎ Π΅ΡΡ‚ΡŒ, Ссли Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΠ»ΠΎΡ‚Π½ΠΎ завязаны Π½Π° Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ, Π° выявлСнная ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π½Π΅ касаСтся Ρ‚Π΅Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ, спСциалисту ΠΏΠΎ бСзопасности Ρ‚Π°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ‡Π΅ придСтся Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒ Π΄Π°Π½Π½ΡƒΡŽ CVE ΠΈ Π·Π°Π΄ΡƒΠΌΡ‹Π²Π°Ρ‚ΡŒΡΡ ΠΎΠ± ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ.

URL-адрСс Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ инструмСнтами SCA. Π€ΠΎΡ€ΠΌΠ°Ρ‚ URL-адрСса ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ:

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

  • Sсheme: ВсСгда Π±ΡƒΠ΄Π΅Ρ‚ ‘pkg’, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ, Ρ‡Ρ‚ΠΎ это URL-адрСс ΠΏΠ°ΠΊΠ΅Ρ‚Π° (ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡƒΠ½ΠΊΡ‚)
  • Type: Β«Π’ΠΈΠΏΒ» ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΈΠ»ΠΈ Β«ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Β» ΠΏΠ°ΠΊΠ΅Ρ‚Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ maven, npm, nuget, gem, pypi ΠΈ Ρ‚.Π΄. (ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡƒΠ½ΠΊΡ‚)
  • Namespace: НСкоторый прСфикс ΠΈΠΌΠ΅Π½ΠΈ, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π³Ρ€ΡƒΠΏΠΏΡ‹ Maven, Π²Π»Π°Π΄Π΅Π»Π΅Ρ† ΠΎΠ±Ρ€Π°Π·Π° Docker, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΈΠ»ΠΈ организация GitHub.Β ΠΠ΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΈ зависит ΠΎΡ‚ Ρ‚ΠΈΠΏΠ°.
  • Name: Имя ΠΏΠ°ΠΊΠ΅Ρ‚Π° (ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡƒΠ½ΠΊΡ‚)
  • Version: ВСрсия ΠΏΠ°ΠΊΠ΅Ρ‚Π°
  • Qualifiers: Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠ²Π°Π»ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ для ΠΏΠ°ΠΊΠ΅Ρ‚Π°, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ОБ, Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°, дистрибутив ΠΈ Ρ‚. Π”. ΠΠ΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΈ зависящий ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° ΠΏΡƒΠ½ΠΊΡ‚.
  • Subpath: Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ корня ΠΏΠ°ΠΊΠ΅Ρ‚Π°

НапримСр:

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

Dependency Track β€” on-premise Π²Π΅Π±-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°, которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ Bill of Materials (BOM) сформированныС CycloneDX ΠΈ SPDX, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ спСцификации ΠΎΠ± ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ΡΡ зависимостях. Π­Ρ‚ΠΎ XML-Ρ„Π°ΠΉΠ» с описаниСм зависимостСй β€” name, hashes, package url, publisher, license. Π”Π°Π»Π΅Π΅ Dependency Track Ρ€Π°Π·Π±ΠΈΡ€Π°Π΅Ρ‚ BOM, смотрит ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ΡΡ ΠΊ выявлСнным зависимостям CVE ΠΈΠ· Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… уязвимостСй (NVD, Sonatype OSS Index …), послС Ρ‡Π΅Π³ΠΎ строит Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ, вычисляСт ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ, рСгулярно обновляя Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ статусС уязвимости ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ 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 Π³ΠΎΠ΄Ρƒ Π½Π° рассмотрСниС Π² БША Π±Ρ‹Π» Π΄Π°ΠΆΠ΅ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ Π·Π°ΠΊΠΎΠ½ Β«Cyber Supply Chain Management and Transparency Act of 2014Β», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ гласил, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ Π·Π°ΠΊΡƒΠΏΠΊΠ΅ ПО любоС гос. ΡƒΡ‡Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ BOM для прСдотвращСния использования уязвимых ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, ΠΎΠ΄Π½Π°ΠΊΠΎ Π² силу Π°ΠΊΡ‚ Ρ‚Π°ΠΊ ΠΈ Π½Π΅ вступил.

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡΡΡŒ ΠΊ SCA, Ρƒ Dependency Track Π΅ΡΡ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с Notification Platforms Π²Ρ€ΠΎΠ΄Π΅ Slack, систСмами управлСния уязвимостями Π²Ρ€ΠΎΠ΄Π΅ Kenna Security. Π‘Ρ‚ΠΎΠΈΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Dependency Track ΠΊΠΎ всСму ΠΏΡ€ΠΎΡ‡Π΅ΠΌΡƒ выявляСт ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠ΅ вСрсии ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΈ прСдоставляСт ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ лицСнзиях (Π·Π° счСт ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ SPDX).

Если Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎ качСствС SCA, Ρ‚ΠΎ здСсь Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½Π°Ρ Ρ€Π°Π·Π½ΠΈΡ†Π°.

Dependency Track Π½Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² качСствС Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, Π° ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΈΠΌΠ΅Π½Π½ΠΎ BOM. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ссли ΠΌΡ‹ Π·Π°Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Ρ‚ΠΎ сначала Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ bom.xml, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ CycloneDX. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Dependency Track Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ зависит ΠΎΡ‚ CycloneDX. Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя, это Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ кастомизации. Π’Π°ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Π° OZON написала ΠΌΠΎΠ΄ΡƒΠ»ΡŒ CycloneDX для сборки BOM-Ρ„Π°ΠΉΠ»ΠΎΠ² для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° Golang с Ρ†Π΅Π»ΡŒΡŽ дальнСйшСго сканирования Ρ‡Π΅Ρ€Π΅Π· Dependency Track.

Nexus IQ β€” коммСрчСскоС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ SCA ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Sonatype, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ экосистСмы Sonatype, ΠΊΡƒΠ΄Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Nexus Repository Manager. Nexus IQ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π² качСствС Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠ°ΠΊ war Π°Ρ€Ρ…ΠΈΠ²Ρ‹ (для java ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ²) Ρ‡Π΅Ρ€Π΅Π· Π²Π΅Π±-интСрфСйс ΠΈΠ»ΠΈ API, Ρ‚Π°ΠΊ ΠΈ BOM, Ссли ваша организация Π½Π΅ успСла ΠΏΠ΅Ρ€Π΅ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒΡΡ с CycloneDX Π½Π° Π½ΠΎΠ²ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ open source Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ, IQ обращаСтся Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ CP/PURL ΠΊ выявлСнной ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ уязвимости Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, Π½ΠΎ ΠΈ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ собствСнныС исслСдования, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π°Π·Π²Π°Π½ΠΈΠ΅ уязвимой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ класса. ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ IQ Π±ΡƒΠ΄ΡƒΡ‚ рассмотрСны ΠΏΠΎΠ·Π΄Π½Π΅Π΅ ΠΏΡ€ΠΈ Ρ€Π°Π·Π±ΠΎΡ€Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ².

ПодвСдСм Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡ‚ΠΎΠ³Π΅ ΠΏΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ особСнностям, Π° Ρ‚Π°ΠΊΠΆΠ΅ рассмотрим ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ языки для Π°Π½Π°Π»ΠΈΠ·Π°:

Π―Π·Ρ‹ΠΊ
Nexus IQ
Dependency Check
Dependency Track

Java
+
+
+

C/C++
+
+

C#
+
+

.Net
+
+
+

Erlang


+

JavaScript (NodeJS)
+
+
+

PHP
+
+
+

Python
+
+
+

Ruby
+
+
+

Perl


Scala
+
+
+

Objective C
+
+

Swift
+
+

R
+

Go
+
+
+

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ возмоТности

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ возмоТности
Nexus IQ
Dependency Check
Dependency Track

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² исходном ΠΊΠΎΠ΄Π΅ Π½Π° Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΎΠ½Π½ΡƒΡŽ чистоту
+

+

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ сканирования ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ уязвимостСй ΠΈ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΎΠ½Π½ΠΎΠΉ чистоты для ΠΎΠ±Ρ€Π°Π·ΠΎΠ² Docker
+ Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ с Clair

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ настройки ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ бСзопасности для использования Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ
+

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ сканирования Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π² с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ уязвимых ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²
+ 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, NPM Public Advisors
+ Sonatype OSS, NPM Public Advisors, RetireJS, VulnDB, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° собствСнной Π‘Π” уязвимостСй

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π² ΠΊΠΎΠ½Ρ‚ΡƒΡ€ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ согласно сконфигурированным ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°ΠΌ
+

Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΠΈΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ уязвимостСй, Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ссылок Π½Π° исправлСниС
+
+- (зависит ΠΎΡ‚ описания Π² ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Ρ… Π±Π°Π·Π°Ρ…)
+- (зависит ΠΎΡ‚ описания Π² ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Ρ… Π±Π°Π·Π°Ρ…)

Π Π°Π½ΠΆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Ρ… уязвимостСй ΠΏΠΎ стСпСни критичности
+
+
+

РолСвая модСль доступа
+

+

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° интСрфСйса ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки CLI
+
+
+- (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для CycloneDX)

Π’Ρ‹Π±ΠΎΡ€ΠΊΠ° / сортировка уязвимостСй ΠΏΠΎ опрСдСляСмым критСриям
+

+

Dashboard ΠΏΠΎ ΡΠΎΡΡ‚ΠΎΡΠ½ΠΈΡŽ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
+

+

ГСнСрация ΠΎΡ‚Ρ‡Ρ‘Ρ‚ΠΎΠ² Π² PDF-Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅
+

ГСнСрация ΠΎΡ‚Ρ‡Ρ‘Ρ‚ΠΎΠ² Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ JSONCSV
+
+

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° русского языка


Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ возмоТности

Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ
Nexus IQ
Dependency Check
Dependency Track

Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ с LDAP/Active Directory
+

+

Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ с систСмой Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ (continous integration) Bamboo
+

Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ с систСмой Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ (continous integration) TeamCity
+

Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ с систСмой Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ (continous integration) GitLab
+
+- (в видС плагина для GitLab)
+

Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ с систСмой Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ (continous integration) Jenkins
+
+
+

НаличиС ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² ΠΊ IDE
+ IntelliJ, Eclipse, Visual Studio

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° кастомизированной ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ Ρ‡Π΅Ρ€Π΅Π· web-services (API) инструмСнта
+

+

Dependency Check

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ запуск

Запустим Dependency Check ΠΊ ΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΎ уязвимому ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ DVJA.

Для этого Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ Dependency Check Maven Plugin:

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

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ target появится dependency-check-report.html.

DevSecOps: ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ сравнСниС SCA. Π§Π°ΡΡ‚ΡŒ пСрвая

ΠžΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ Ρ„Π°ΠΉΠ». ПослС сводной ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± ΠΎΠ±Ρ‰Π΅ΠΌ количСствС уязвимостСй ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± уязвимостях с высоким ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ Severity ΠΈ Confidence с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚, CPE, число CVE.

Π‘Π»Π΅Π΄ΠΎΠΌ ΠΈΠ΄Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ подробная информация, Π² частности Ρ‚ΠΎ, Π½Π° основС Ρ‡Π΅Π³ΠΎ Π±Ρ‹Π»ΠΎ принято Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ (evidence), Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π½Π΅ΠΊΠΈΠΉ BOM.

DevSecOps: ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ сравнСниС SCA. Π§Π°ΡΡ‚ΡŒ пСрвая

Π”Π°Π»Π΅Π΅ ΠΈΠ΄Π΅Ρ‚ CPE, PURL ΠΈ описаниС CVE. Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΎΠ± исправлСнии кстати Π½Π΅ ΠΏΡ€ΠΈΠ»Π°Π³Π°ΡŽΡ‚ΡΡ Π² силу отсутствия ΠΈΡ… Π² Π±Π°Π·Π΅ NVD.

DevSecOps: ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ сравнСниС SCA. Π§Π°ΡΡ‚ΡŒ пСрвая

Для систСматичного просмотра Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² сканирования ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Nginx с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ настройками, Π»ΠΈΠ±ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ Π΄Π΅Ρ„Π΅ΠΊΡ‚Ρ‹ Π² систСму управлСния Π΄Π΅Ρ„Π΅ΠΊΡ‚Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ ΠΊΠΎΠ½Π΅ΠΊΡ‚ΠΎΡ€Ρ‹ ΠΊ Dependency Check. НапримСр, Defect Dojo.

Dependency Track

Установка

Dependency Track, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, являСтся Π²Π΅Π±-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ с ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‰ΠΈΠΌΠΈ Π³Ρ€Π°Ρ„ΠΈΠΊΠ°ΠΌΠΈ, поэтому острый вопрос ΠΎ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠΈ Π΄Π΅Ρ„Π΅ΠΊΡ‚ΠΎΠ² Π² стороннСм Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ здСсь Π½Π΅ стоит.
Для установки Π΅ΡΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ сцСнарии: Docker, WAR, Executable WAR.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ запуск

ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΏΠΎ URL Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠ³ΠΎ сСрвиса. Π’Ρ…ΠΎΠ΄ΠΈΠΌ Ρ‡Π΅Ρ€Π΅Π· admin/admin, мСняСм Π»ΠΎΠ³ΠΈΠ½ ΠΈ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ, послС Ρ‡Π΅Π³ΠΎ ΠΏΠΎΠΏΠ°Π΄Π°Π΅ΠΌ Π½Π° Dashboard. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ сдСлаСм β€” создадим ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ для тСстового прилоТСния Π½Π° Java Π² Home/Projects β†’ Create Project . Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° возьмСм DVJA.

DevSecOps: ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ сравнСниС SCA. Π§Π°ΡΡ‚ΡŒ пСрвая

Π’Π°ΠΊ ΠΊΠ°ΠΊ Dependency Track ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π² качСствС Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚ΠΎΠ»ΡŒΠΊΠΎ BOM, этот BOM Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ. Π’ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ CycloneDX Maven Plugin:

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

ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ bom.xml ΠΈ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌ Ρ„Π°ΠΉΠ» Π² созданном ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ DVJA β†’ Dependeencies β†’ Upload BOM.

Π—Π°ΠΉΠ΄Π΅ΠΌ Π² Administration β†’ Analyzers. ПонимаСм, Ρ‡Ρ‚ΠΎ Ρƒ нас Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Internal Analyzer, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΉ NVD. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠΌ Ρ‚Π°ΠΊΠΆΠ΅ Sonatype OSS Index.

DevSecOps: ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ сравнСниС SCA. Π§Π°ΡΡ‚ΡŒ пСрвая

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ для нашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°:

DevSecOps: ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ сравнСниС SCA. Π§Π°ΡΡ‚ΡŒ пСрвая

Π’Π°ΠΊΠΆΠ΅ Π² спискС ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΎΠ΄Π½Ρƒ ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ, ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡƒΡŽ ΠΊ Sonatype OSS:

DevSecOps: ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ сравнСниС SCA. Π§Π°ΡΡ‚ΡŒ пСрвая

ОсновноС Ρ€Π°Π·ΠΎΡ‡Π°Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Dependency Track большС Π½Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ xml-ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹ Dependency Check. ПослСдниС ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ вСрсии ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с Dependency Check Π±Ρ‹Π»ΠΈ 1.0.0 β€” 4.0.2, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ я тСстировал 5.3.2.

Π’ΠΎΡ‚ Π²ΠΈΠ΄Π΅ΠΎ (ΠΈ Π²ΠΎΡ‚), ΠΊΠΎΠ³Π΄Π° это Π±Ρ‹Π»ΠΎ Π΅Ρ‰Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.

Nexus IQ

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ запуск

Установка Nexus IQ происходит ΠΈΠ· Π°Ρ€Ρ…ΠΈΠ²ΠΎΠ² ΠΏΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, Π½ΠΎ ΠΌΡ‹ для этих Ρ†Π΅Π»Π΅ΠΉ собрали сСбС ΠΎΠ±Ρ€Π°Π· Docker.

ПослС Π²Ρ…ΠΎΠ΄Π° Π² консоль Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΈ ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

DevSecOps: ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ сравнСниС SCA. Π§Π°ΡΡ‚ΡŒ пСрвая

DevSecOps: ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ сравнСниС SCA. Π§Π°ΡΡ‚ΡŒ пСрвая

DevSecOps: ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ сравнСниС SCA. Π§Π°ΡΡ‚ΡŒ пСрвая

Как ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, настройка Π² случаС с IQ происходит нСсколько слоТнСС, ΠΈΠ±ΠΎ Π½Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ, ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹Π΅ для Ρ€Π°Π·Π½Ρ‹Ρ… β€œΡΡ‚Π΅ΠΉΠ΄ΠΆΠ΅ΠΉβ€ (dev, build, stage, release). Π­Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ уязвимыС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ продвиТСния ΠΏΠΎ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Ρƒ Π±Π»ΠΈΠΆΠ΅ ΠΊ ΠΏΡ€ΠΎΠ΄Ρƒ, Π»ΠΈΠ±ΠΎ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ½ΠΈ ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‚ Π² Nexus Repo ΠΏΡ€ΠΈ скачивании Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‰ΡƒΡ‚ΠΈΡ‚ΡŒ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ open source ΠΈ enterprise, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ Ρ‚Π°ΠΊΠΎΠ΅ ΠΆΠ΅ сканированиС Ρ‡Π΅Ρ€Π΅Π· Nexus IQ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ Ρ‡Π΅Ρ€Π΅Π· Maven plugin, ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ создав тСстовоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² интСрфСйсС NexusIQ 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:

DevSecOps: ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ сравнСниС SCA. Π§Π°ΡΡ‚ΡŒ пСрвая

Π—Π΄Π΅ΡΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ всС Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Ρ€Π°Π·Π½ΠΎΠ³ΠΎ уровня значимости (ΠΎΡ‚ Info Π΄ΠΎ Security Critical). Π‘ΡƒΠΊΠ²Π° D рядом с ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΉ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° DirectΒ Dependency, Π° Π±ΡƒΠΊΠ²Π° T рядом с ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° TransitiveΒ Dependency, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ являСтся Ρ‚Ρ€Π°Π½Π·ΠΈΡ‚ΠΈΠ²Π½ΠΎΠΉ.

ΠšΡΡ‚Π°Ρ‚ΠΈ, ΠΎΡ‚Ρ‡Π΅Ρ‚ State of Open Source Security Report 2020 ΠΎΡ‚ Snyk сообщаСт, Ρ‡Ρ‚ΠΎ Π±ΠΎΠ»Π΅Π΅ 70% уязвимостСй open source ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Ρ… Π² Node.js, Java ΠΈ Ruby находятся Π² Ρ‚Ρ€Π°Π½Π·ΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… зависимостях.

Если ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠΉ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ Nexus IQ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ описаниС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, Π° Ρ‚Π°ΠΊΠΆΠ΅ Version Graph, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ мСстополоТСниС Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ вСрсии Π½Π° Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΌ Π³Ρ€Π°Ρ„Π΅, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ пСрСстаСт Π±Ρ‹Ρ‚ΡŒ уязвимой. Высота свСчСй Π½Π° Π³Ρ€Π°Ρ„Π΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ использования этой ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹.

DevSecOps: ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ сравнСниС SCA. Π§Π°ΡΡ‚ΡŒ пСрвая

Если ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π² Ρ€Π°Π·Π΄Π΅Π» уязвимостСй ΠΈ Ρ€Π°ΡΠΊΡ€Ρ‹Ρ‚ΡŒ CVE, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ описаниС ΠΊ этой уязвимости, Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΡƒΡΡ‚Ρ€Π°Π½Π΅Π½ΠΈΡŽ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρƒ, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ данная ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΏΠΎΠΏΠ°Π»Π° ΠΏΠΎΠ΄ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ класса DiskFileitem.class.

DevSecOps: ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ сравнСниС SCA. Π§Π°ΡΡ‚ΡŒ пСрвая

DevSecOps: ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ сравнСниС SCA. Π§Π°ΡΡ‚ΡŒ пСрвая

ПодвСдСм ΠΈΡ‚ΠΎΠ³ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ°ΡΠ°ΡŽΡ‰ΠΈΠ΅ΡΡ сторонних ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Java, ΡƒΠ±Ρ€Π°Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ js. Π’ скобках ΡƒΠΊΠ°ΠΆΠ΅ΠΌ число Ρ‚Π΅Ρ… уязвимостСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ Π½Π°ΠΉΠ΄Π΅Π½Ρ‹ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ NVD.

Π˜Ρ‚ΠΎΠ³ΠΎ Nexus IQ:

  • Dependencies Scanned:Β 62
  • Vulnerable Dependencies:Β 16
  • Vulnerabilities Found:Β 42 (8 sonatype db)

Π˜Ρ‚ΠΎΠ³ΠΎ Dependency Check:

  • Dependencies Scanned:Β 47
  • Vulnerable Dependencies:Β 13
  • Vulnerabilities Found:Β 91 (14 sonatype oss)

Π˜Ρ‚ΠΎΠ³ΠΎ Dependency Track:

  • Dependencies Scanned: 59
  • Vulnerable Dependencies:Β 10
  • Vulnerabilities Found:Β 51 (1 sonatype oss)

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ шагов ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΈ разбСрСмся, Ρ‡Ρ‚ΠΎ ΠΈΠ· этих уязвимостСй являСтся Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ Π΄Π΅Ρ„Π΅ΠΊΡ‚ΠΎΠΌ, Π° Ρ‡Ρ‚ΠΎ Π»ΠΎΠΆΠ½Ρ‹ΠΌ срабатываниСм.

ДисклСймСр

Π”Π°Π½Π½ΠΎΠ΅ Ρ€Π΅Π²ΡŒΡŽ Π½Π΅ являСтся нСоспоримой истиной. ΠŸΠ΅Ρ€Π΅Π΄ Π°Π²Ρ‚ΠΎΡ€ΠΎΠΌ Π½Π΅ стояло Ρ†Π΅Π»ΠΈ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ инструмСнт Π½Π° Ρ„ΠΎΠ½Π΅ Π΄Ρ€ΡƒΠ³ΠΈΡ…. Бмысл Ρ€Π΅Π²ΡŒΡŽ Π±Ρ‹Π» ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ инструмСнтов SCA ΠΈ способы ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΈΡ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ².

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ²

Условия:

Π›ΠΎΠΆΠ½Ρ‹ΠΌ срабатываниСм ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ уязвимостям сторонних ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² являСтся:

  • НСсоотвСтствиС CVE ΠΊ выявлСнной ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅
  • НапримСр, Ссли ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ выявлСна Π²ΠΎ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ΅ struts2, Π° инструмСнт ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° struts-tiles, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ эта ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π½Π΅ относится, Ρ‚ΠΎ это false positive
  • НСсоотвСтствиС CVE ΠΊ выявлСнной вСрсии ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹
  • НапримСр, ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ привязана ΠΊ вСрсии python > 3.5 ΠΈ инструмСнт ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Π΅Ρ‚ уязвимой Π²Π΅Ρ€ΡΠΈΡŽ 2.7 β€” это false positive, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π° самом Π΄Π΅Π»Π΅ ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ относится Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ Π²Π΅Ρ‚ΠΊΠ΅ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° 3.x
  • Π”ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ CVE
  • НапримСр, Ссли SCA ΡƒΠΊΠ°Π·Π°Π» Π½Π° CVE, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ RCE, послС Ρ‡Π΅Π³ΠΎ SCA ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ для этой ΠΆΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ CVE, ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡƒΡŽ ΠΊ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°ΠΌ Cisco, ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½Π½Ρ‹ΠΌ этой RCE. Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС Π±ΡƒΠ΄Π΅Ρ‚ false positive.
  • НапримСр, CVE Π±Ρ‹Π»Π° Π½Π°ΠΉΠ΄Π΅Π½Π° Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ spring-web, послС Ρ‡Π΅Π³ΠΎ SCA ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° эту ΠΆΠ΅ CVE Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°Ρ… Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° Spring Framework, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ CVE ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚. Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС Π±ΡƒΠ΄Π΅Ρ‚ false positive.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ исслСдования Π²Ρ‹Π±Ρ€Π°Π½ Open Source ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ DVJA. Π’ исслСдовании участвовали Ρ‚ΠΎΠ»ΡŒΠΊΠΎ java ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ (Π±Π΅Π· js).

Π‘Π²ΠΎΠ΄Π½Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹

ΠŸΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ сразу Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ Ρ€Π΅Π²ΡŒΡŽ выявлСнных уязвимостСй. Π‘ ΠΏΠΎΠ»Π½Ρ‹ΠΌ ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠΌ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ CVE ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ Π² ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.

Π‘Π²ΠΎΠ΄Π½Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΏΠΎ всСм уязвимостям:

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€
Nexus IQ
Dependency Check
Dependency Track

ВсСго выявлСно уязвимостСй
42
91
51

НСвСрно выявлСно уязвимостСй (false positive)
2(4.76%)
62(68,13%)
29(56.86%)

НС ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΎ Ρ€Π΅Π»Π΅Π²Π°Π½Ρ‚Π½Ρ‹Ρ… уязвимостСй (false negative)
10
20
27

Π‘Π²ΠΎΠ΄Π½Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΏΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌ:

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€
Nexus IQ
Dependency Check
Dependency Track

ВсСго выявлСно ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²
62
47
59

ВсСго уязвимых ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²
16
13
10

НСвСрно выявлСны уязвимыС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ (false positive)
1
5
0

НСвСрно выявлСны уязвимыС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ (false positive)
0
6
6

ΠŸΠΎΡΡ‚Ρ€ΠΎΠΈΠΌ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ ΡΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ false positive ΠΈ false negative ΠΊ ΠΎΠ±Ρ‰Π΅ΠΌΡƒ числу уязвимостСй. По Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΠΈ ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Ρ‹ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, Π° ΠΏΠΎ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΠΈ выявлСнныС Π² Π½ΠΈΡ… уязвимости.

DevSecOps: ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ сравнСниС SCA. Π§Π°ΡΡ‚ΡŒ пСрвая

DevSecOps: ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ сравнСниС SCA. Π§Π°ΡΡ‚ΡŒ пСрвая

DevSecOps: ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ сравнСниС SCA. Π§Π°ΡΡ‚ΡŒ пСрвая

Для сравнСния, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠ΅ исслСдованиС Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Sonatype ΠΏΠΎ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈΠ· 1531 ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ OWASP Dependency Check. Как ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΡΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΡˆΡƒΠΌΠ° ΠΊ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΌ срабатываниям соСзмиримо с нашими Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌΠΈ.

DevSecOps: ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ сравнСниС SCA. Π§Π°ΡΡ‚ΡŒ пСрвая
Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: www.sonatype.com/why-precision-matters-ebook

Рассмотрим Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ CVE ΠΈΠ· Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² нашСго сканирования, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρƒ Ρ‚Π°ΠΊΠΈΡ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ².

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅

β„–1

Π Π°Π·Π±Π΅Ρ€Π΅ΠΌ сначала Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ интСрСсныС ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ Sonatype Nexus IQ.

Nexus IQ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ с дСсСрСализациСй с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ RCE Π² Spring Framework нСсколько Ρ€Π°Π·. CVE-2016-1000027 Π² spring-web:3.0.5 Π² ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Ρ€Π°Π·, ΠΈ CVE-2011-2894 Π² spring-context:3.0.5 ΠΈ spring-core:3.0.5. ΠŸΠΎΠ½Π°Ρ‡Π°Π»Ρƒ каТСтся, Ρ‡Ρ‚ΠΎ происходит Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ уязвимости ΠΏΠΎ нСскольким CVE. Ибо, Ссли ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ CVE-2016-1000027 ΠΈ CVE-2011-2894 Π² Π±Π°Π·Π΅ NVD, Ρ‚ΠΎ каТСтся, Ρ‡Ρ‚ΠΎ всС ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ

spring-web:3.0.5
CVE-2016-1000027

spring-context:3.0.5
CVE-2011-2894

spring-core:3.0.5
CVE-2011-2894

ОписаниС CVE-2011-2894 из NVD:
DevSecOps: ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ сравнСниС SCA. Π§Π°ΡΡ‚ΡŒ пСрвая

ОписаниС CVE-2016-1000027 из NVD:
DevSecOps: ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ сравнСниС SCA. Π§Π°ΡΡ‚ΡŒ пСрвая

CVE-2011-2894 сама ΠΏΠΎ сСбС довольно извСстная. Π’ ΠΎΡ‚Ρ‡Π΅Ρ‚Π΅ White Source Π·Π° 2011 Π³ΠΎΠ΄ эта CVE Π±Ρ‹Π»Π° ΠΏΡ€ΠΈΠ·Π½Π°Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· самых часто Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‰ΠΈΡ…ΡΡ. Описания для CVE-2016-100027 Π² ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π² NVD, Π΄Π° ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠ° ΠΎΠ½Π°, Π²Ρ€ΠΎΠ΄Π΅ Π±Ρ‹, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Spring Framework 4.1.4. ВзглянСм Π½Π° reference ΠΈ Ρ‚ΡƒΡ‚ становится всС Π±ΠΎΠ»Π΅Π΅ ΠΈΠ»ΠΈ ΠΌΠ΅Π½Π΅Π΅ понятно. Из ΡΡ‚Π°Ρ‚ΡŒΠΈ Tenable ΠΌΡ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΌΠΈΠΌΠΎ уязвимости Π² RemoteInvocationSerializingExporter Π² CVE-2011-2894, ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π½Π°Π±Π»ΡŽΠ΄Π°Π΅Ρ‚ΡΡ Π² HttpInvokerServiceExporter. Об этом Π½Π°ΠΌ ΠΈ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ Nexus IQ:

DevSecOps: ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ сравнСниС SCA. Π§Π°ΡΡ‚ΡŒ пСрвая

Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ Π½Π΅Ρ‚ Π² NVD, ΠΈΠ·-Π·Π° Ρ‡Π΅Π³ΠΎ Dependency Check ΠΈ Dependency Track ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ ΠΏΠΎ false negative.

Π’Π°ΠΊΠΆΠ΅ ΠΈΠ· описания CVE-2011-2894 ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ присутствуСт ΠΈ Π² spring-context:3.0.5 ΠΈ Π² spring-core:3.0.5. ΠŸΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ этому ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΡ‚ΠΎ эту ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ нашСл.

β„–2

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ
Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚

struts2-core:2.3.30
CVE-2016-4003
FALSE

Если ΠΌΡ‹ ΠΈΠ·ΡƒΡ‡ΠΈΠΌ ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ CVE-2016-4003, Ρ‚ΠΎ ΠΏΠΎΠΉΠΌΠ΅ΠΌ, Ρ‡Ρ‚ΠΎ Π΅Π΅ исправили Π΅Ρ‰Π΅ Π² вСрсии 2.3.28, Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Nexus IQ Π½Π°ΠΌ ΠΎ Π½Π΅ΠΉ сообщаСт. Π’ описании ΠΊ уязвимости Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅:

DevSecOps: ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ сравнСниС SCA. Π§Π°ΡΡ‚ΡŒ пСрвая

Π’ΠΎ Π΅ΡΡ‚ΡŒ ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ сущСствуСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² связкС с ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ΅ΠΉ вСрсиСй JRE, ΠΎ Ρ‡Π΅ΠΌ нас Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅Π΄ΠΈΡ‚ΡŒ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, считаСм это False Positive, Ρ…ΠΎΡ‚ΡŒ ΠΈ Π½Π΅ самым ΡΡ‚Ρ€Π°ΡˆΠ½Ρ‹ΠΌ.

β„– 3

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ
Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚

xwork-core:2.3.30
CVE-2017-9804
TRUE

xwork-core:2.3.30
CVE-2017-7672
FALSE

Если ΠΌΡ‹ посмотрим описаниС ΠΊ CVE-2017-9804 ΠΈ CVE-2017-7672, Ρ‚ΠΎ ΠΏΠΎΠΉΠΌΠ΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² URLValidator class, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ CVE-2017-9804 Π²Ρ‹Ρ‚Π΅ΠΊΠ°Π΅Ρ‚ ΠΈΠ· CVE-2017-7672. НаличиС Π²Ρ‚ΠΎΡ€ΠΎΠΉ уязвимости Π½Π΅ нСсСт Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π΅Π΅ severity вырос Π΄ΠΎ High, поэтому ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ это лишним ΡˆΡƒΠΌΠΎΠΌ.

Π’ Ρ†Π΅Π»ΠΎΠΌ Π΄Ρ€ΡƒΠ³ΠΈΡ… false positive для Nexus IQ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ Π½Π΅ Π±Ρ‹Π»ΠΎ.

β„–4

Π•ΡΡ‚ΡŒ нСсколько ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹Π΄Π΅Π»ΡΡŽΡ‚ IQ Π½Π° Ρ„ΠΎΠ½Π΅ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ.

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ
Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚

spring-web:3.0.5
CVE-2020-5398
TRUE

CVE Π² NVD сообщаСт, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠ° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для вСрсий 5.2.x Π΄ΠΎ 5.2.3, 5.1.x Π΄ΠΎ 5.1.13, ΠΈ вСрсий 5.0.x Π΄ΠΎ 5.0.16, Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Ссли ΠΌΡ‹ посмотрим описаниС CVE Π² Nexus IQ, Ρ‚ΠΎ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:
Advisory Deviation Notice: The Sonatype security research team discovered that this vulnerability was introduced in version 3.0.2.RELEASE and not 5.0.x as stated in the advisory.

ПослС этого слСдуСт PoC ΠΊ этой уязвимости, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сообщаСт, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° присутствуСт Π² вСрсии 3.0.5.

False negative отправляСтся ΠΊ Dependency Check ΠΈ Dependency Track.

β„–5

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ Π½Π° false positive для Dependency Check ΠΈ Dependency Track.

Dependency Check ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ выдСляСтся Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΡ‚Ρ€Π°ΠΆΠ°Π΅Ρ‚ Ρ‚Π΅ CVE, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ относятся ΠΊΠΎ всСму Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΡƒ Π² NVD, Π² Ρ‚Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ эти CVE Π½Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹. Π­Ρ‚ΠΎ касаСтся CVE-2012-0394, CVE-2013-2115, CVE-2014-0114, CVE-2015-0899, CVE-2015-2992, CVE-2016-1181, CVE-2016-1182, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Dependency Check β€œΠΏΡ€ΠΈΠΊΡ€ΡƒΡ‚ΠΈΠ»β€ ΠΊ struts-taglib:1.3.8 ΠΈ struts-tiles-1.3.8. Π­Ρ‚ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΎΠ±Ρ‰Π΅Π³ΠΎ с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ описано Π² CVE β€” ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° запросов, валидация страниц ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. Π­Ρ‚ΠΎ обусловлСно Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ±Ρ‰Π΅Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ этими CVE ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ β€” Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ, ΠΈΠ·-Π·Π° Ρ‡Π΅Π³ΠΎ Dependency Check ΠΈ посчитал это ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ.

Вакая ΠΆΠ΅ ситуация с spring-tx:3.0.5, ΠΈ похоТая ситуация с struts-core:1.3.8. Для struts-core Dependency Check ΠΈ Dependency Track нашли ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ уязвимостСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π° самом Π΄Π΅Π»Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹ ΠΊ struts2-core, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎ сути являСтся ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠΌ. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС Nexus IQ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ понял ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ ΠΈ Π² Ρ‚Π΅Ρ… CVE, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹Π΄Π°Π», ΡƒΠΊΠ°Π·Π°Π», Ρ‡Ρ‚ΠΎ struts-core ΠΏΡ€ΠΈΡˆΠ΅Π» end of life ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ struts2-core.

β„–6

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ситуациях Ρ‚Ρ€Π°ΠΊΡ‚ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ²Π½ΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ Dependency Check ΠΈ Dependency Track нСсправСдливо. Π’ частности CVE-2013-4152, CVE-2013-6429, CVE-2013-6430, CVE-2013-7315, CVE-2014-0054, CVE-2014-0225, CVE-2014-0225, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Dependency Check ΠΈ Dependency Track отнСсли ΠΊ spring-core:3.0.5 Π½Π° самом Π΄Π΅Π»Π΅ относятся ΠΊ spring-web:3.0.5. ΠŸΡ€ΠΈ этом Ρ‡Π°ΡΡ‚ΡŒ ΠΈΠ· этих CVE Π±Ρ‹Π»ΠΈ Π½Π°ΠΉΠ΄Π΅Π½Ρ‹ ΠΈ Nexus IQ, Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ IQ ΠΈΡ… ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ» ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅. ΠžΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ эти уязвимости Π½Π΅ Π±Ρ‹Π»ΠΈ Π½Π°ΠΉΠ΄Π΅Π½Ρ‹ Π² spring-core, нСльзя ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΈΡ… Π½Π΅Ρ‚ Π²ΠΎ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ΅ Π² ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅ ΠΈ open source инструмСнты справСдливо ΡƒΠΊΠ°Π·Π°Π»ΠΈ Π½Π° эти уязвимости (просто Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠΌΠ°Ρ…Π½ΡƒΠ»ΠΈΡΡŒ).

Π’Ρ‹Π²ΠΎΠ΄Ρ‹

Как ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ достовСрности выявлСнных уязвимостСй Ρ€ΡƒΡ‡Π½Ρ‹ΠΌ Ρ€Π΅Π²ΡŒΡŽ Π½Π΅ Π΄Π°Π΅Ρ‚ ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½Ρ‹Ρ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ², ΠΈΠ·-Π·Π° Ρ‡Π΅Π³ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ спорныС ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Ρ‚Π°ΠΊΠΎΠ²Ρ‹, Ρ‡Ρ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Nexus IQ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ наимСньшим ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΌ Π»ΠΎΠΆΠ½Ρ‹Ρ… срабатываний ΠΈ наибольшСй Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ.

Π’ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, это связано с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° Sonatype Ρ€Π°ΡΡˆΠΈΡ€ΠΈΠ»ΠΎ описаниС для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ уязвимости CVE ΠΈΠ· NVD Π² своих Π±Π°Π·Π°Ρ…, ΡƒΠΊΠ°Π·Π°Π² с Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ Π΄ΠΎ класса ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ уязвимости для Ρ‚ΠΎΠΉ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ вСрсии ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, провСдя Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ исслСдования (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠ² уязвимости Π½Π° Π±ΠΎΠ»Π΅Π΅ старых вСрсий ПО).

НСмаловаТноС влияниС Π½Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΈΠ³Ρ€Π°ΡŽΡ‚ ΠΈ Ρ‚Π΅ уязвимости, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΏΠΎΠΏΠ°Π»ΠΈ Π² NVD, Π½ΠΎ Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π² Π±Π°Π·Π΅ Sonatype с ΠΏΠΎΠΌΠ΅Ρ‚ΠΊΠΎΠΉ SONATYPE. Богласно ΠΎΡ‚Ρ‡Π΅Ρ‚Ρƒ The State of Open Source Security Vulnerabilities 2020 ΠΎ 45% ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Ρ… уязвимостСй с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ Π½Π΅ сообщаСтся Π² NVD. Богласно Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… WhiteSource, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 29% всСх уязвимостСй с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, зарСгистрированных Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ NVD, Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΡŽΡ‚ΡΡ Π² Π½Π΅ΠΉ, поэтому Ρ‚Π°ΠΊ Π²Π°ΠΆΠ½ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ уязвимости Ρ‚Π°ΠΊΠΆΠ΅ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… источниках.

Как ΠΈΡ‚ΠΎΠ³ Dependency Check Π²Ρ‹Π΄Π°Π΅Ρ‚ большоС количСство ΡˆΡƒΠΌΠ°, упуская Ρ‡Π°ΡΡ‚ΡŒ уязвимых ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚. Dependency Track Π²Ρ‹Π΄Π°Π΅Ρ‚ мСньший ΡˆΡƒΠΌ ΠΈ выявляСт большоС число ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, Ρ‡Ρ‚ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ Π½Π΅ Ρ€Π΅ΠΆΠ΅Ρ‚ Π³Π»Π°Π·Π° Π² Π²Π΅Π±-интСрфСйсС.

Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ open source Π΄ΠΎΠ»ΠΆΠ΅Π½ становится ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ шагов Π½Π° ΠΏΡƒΡ‚ΠΈ ΠΊ Π·Ρ€Π΅Π»ΠΎΠΌΡƒ DevSecOps. ΠŸΠ΅Ρ€Π²ΠΎΠ΅, Π½Π°Π΄ Ρ‡Π΅ΠΌ стоит Π·Π°Π΄ΡƒΠΌΠ°Ρ‚ΡŒΡΡ для встраивания SCA Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ, β€” это процСссы, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ€Π°Π·ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΡ совмСстно с руководством ΠΈ смСТными Π΄Π΅ΠΏΠ°Ρ€Ρ‚Π°ΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ Π½Π°Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ процСссы Ρƒ сСбя Π² ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, окаТСтся Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ для вашСй ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹Ρ… ΠΏΠΎΡ€Π°Ρ… Dependency Check ΠΈΠ»ΠΈ Dependency Track Π·Π°ΠΊΡ€ΠΎΡŽΡ‚ всС стоящиС ΠΏΠ΅Ρ€Π΅Π΄ бизнСсом потрСбности, Π° Enterprise-Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠ²Π»ΡΡ‚ΡŒΡΡ логичСским ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π² силу роста слоТности Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ А. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌ
УсловныС обозначСния:

  • High β€” уязвимости высокого ΠΈ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎΠ³ΠΎ уровня Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅
  • Medium β€” Уязвимости срСднСго уровня критичности Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅
  • TRUE β€” Π’Π΅Ρ€Π½ΠΎ опрСдСлСнная ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ (True positive issue)
  • FALSE β€” Π›ΠΎΠΆΠ½ΠΎΠ΅ срабатываниС (False positive issue)

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚
Nexus IQ
Dependency Check
Dependency Track
Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚

dom4j: 1.6.1
High
High
High
TRUE

log4j-core: 2.3
High
High
High
TRUE

log4j: 1.2.14
High
High

TRUE

commons-collections:3.1
High
High
High
TRUE

commons-fileupload:1.3.2
High
High
High
TRUE

commons-beanutils:1.7.0
High
High
High
TRUE

commons-codec:1:10
Medium


TRUE

mysql-connector-java:5.1.42
High
High
High
TRUE

spring-expression:3.0.5
High
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½

TRUE

spring-web:3.0.5
High
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½
High
TRUE

spring-context:3.0.5
Medium
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½

TRUE

spring-core:3.0.5
Medium
High
High
TRUE

struts2-config-browser-plugin:2.3.30
Medium


TRUE

spring-tx:3.0.5

High

FALSE

struts-core:1.3.8
High
High
High
TRUE

xwork-core: 2.3.30
High


TRUE

struts2-core: 2.3.30
High
High
High
TRUE

struts-taglib:1.3.8

High

FALSE

struts-tiles-1.3.8

High

FALSE

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π‘. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊ уязвимостям
УсловныС обозначСния:

  • High β€” уязвимости высокого ΠΈ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎΠ³ΠΎ уровня Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅
  • Medium β€” Уязвимости срСднСго уровня критичности Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅
  • TRUE β€” Π’Π΅Ρ€Π½ΠΎ опрСдСлСнная ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ (True positive issue)
  • FALSE β€” Π›ΠΎΠΆΠ½ΠΎΠ΅ срабатываниС (False positive issue)

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚
Nexus IQ
Dependency Check
Dependency Track
Severity
Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚
ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

dom4j: 1.6.1
CVE-2018-1000632
CVE-2018-1000632
CVE-2018-1000632
High
TRUE

CVE-2020-10683
CVE-2020-10683
CVE-2020-10683
High
TRUE

log4j-core: 2.3
CVE-2017-5645
CVE-2017-5645
CVE-2017-5645
High
TRUE

CVE-2020-9488
CVE-2020-9488
CVE-2020-9488
Low
TRUE

log4j: 1.2.14
CVE-2019-17571
CVE-2019-17571

High
TRUE


CVE-2020-9488

Low
TRUE

SONATYPE-2010-0053


High
TRUE

commons-collections:3.1

CVE-2015-6420
CVE-2015-6420
High
FALSE
Π”ΡƒΠ±Π»ΠΈΡ€ΡƒΠ΅Ρ‚ RCE(OSSINDEX)


CVE-2017-15708
CVE-2017-15708
High
FALSE
Π”ΡƒΠ±Π»ΠΈΡ€ΡƒΠ΅Ρ‚ RCE(OSSINDEX)

SONATYPE-2015-0002
RCE (OSSINDEX)
RCE(OSSINDEX)
High
TRUE

commons-fileupload:1.3.2
CVE-2016-1000031
CVE-2016-1000031
CVE-2016-1000031
High
TRUE

SONATYPE-2014-0173


Medium
TRUE

commons-beanutils:1.7.0
CVE-2014-0114
CVE-2014-0114
CVE-2014-0114
High
TRUE


CVE-2019-10086
CVE-2019-10086
High
FALSE
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠ° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для вСрсий 1.9.2+

commons-codec:1:10
SONATYPE-2012-0050


Medium
TRUE

mysql-connector-java:5.1.42
CVE-2018-3258
CVE-2018-3258
CVE-2018-3258
High
TRUE

CVE-2019-2692
CVE-2019-2692

Medium
TRUE


CVE-2020-2875

Medium
FALSE
Π’Π° ΠΆΠ΅ самая ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΊΠ°ΠΊ ΠΈ CVE-2019-2692, Π½ΠΎ c припиской Β«attacks may significantly impact additional productsΒ»


CVE-2017-15945

High
FALSE
НС относится ΠΊ mysql-connector-java


CVE-2020-2933

Low
FALSE
Π”ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚ ΠΊ CVE-2020-2934

CVE-2020-2934
CVE-2020-2934

Medium
TRUE

spring-expression:3.0.5
CVE-2018-1270
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½

High
TRUE

CVE-2018-1257


Medium
TRUE

spring-web:3.0.5
CVE-2016-1000027
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½

High
TRUE

CVE-2014-0225

CVE-2014-0225
High
TRUE

CVE-2011-2730


High
TRUE



CVE-2013-4152
Medium
TRUE

CVE-2018-1272


High
TRUE

CVE-2020-5398


High
TRUE
ΠŸΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² ΠΏΠΎΠ»ΡŒΠ·Ρƒ IQ: Β«The Sonatype security research team discovered that this vulnerability was introduced in version 3.0.2.RELEASE and not 5.0.x as stated in the advisory.Β»

CVE-2013-6429


Medium
TRUE

CVE-2014-0054

CVE-2014-0054
Medium
TRUE

CVE-2013-6430


Medium
TRUE

spring-context:3.0.5
CVE-2011-2894
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½

Medium
TRUE

spring-core:3.0.5

CVE-2011-2730
CVE-2011-2730
High
TRUE

CVE-2011-2894
CVE-2011-2894
CVE-2011-2894
Medium
TRUE



CVE-2013-4152
Medium
FALSE
Π”ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚ этой ΠΆΠ΅ уязвимости Π² spring-web


CVE-2013-4152

Medium
FALSE
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ относится ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ spring-web


CVE-2013-6429
CVE-2013-6429
Medium
FALSE
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ относится ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ spring-web


CVE-2013-6430

Medium
FALSE
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ относится ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ spring-web


CVE-2013-7315
CVE-2013-7315
Medium
FALSE
SPLIT ΠΈΠ· CVE-2013-4152. + Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ относится ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ spring-web


CVE-2014-0054
CVE-2014-0054
Medium
FALSE
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ относится ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ spring-web


CVE-2014-0225

High
FALSE
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ относится ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ spring-web



CVE-2014-0225
High
FALSE
Π”ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚ этой ΠΆΠ΅ уязвимости Π² spring-web


CVE-2014-1904
CVE-2014-1904
Medium
FALSE
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ относится ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ spring-web-mvc


CVE-2014-3625
CVE-2014-3625
Medium
FALSE
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ относится ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ spring-web-mvc


CVE-2016-9878
CVE-2016-9878
High
FALSE
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ относится ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ spring-web-mvc


CVE-2018-1270
CVE-2018-1270
High
FALSE
Для spring-expression / spring-messages


CVE-2018-1271
CVE-2018-1271
Medium
FALSE
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ относится ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ spring-web-mvc


CVE-2018-1272
CVE-2018-1272
High
TRUE

CVE-2014-3578
CVE-2014-3578 (OSSINDEX)
CVE-2014-3578
Medium
TRUE

SONATYPE-2015-0327


Low
TRUE

struts2-config-browser-plugin:2.3.30
SONATYPE-2016-0104


Medium
TRUE

spring-tx:3.0.5

CVE-2011-2730

High
FALSE
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π½Π΅ относится ΠΊ spring-tx


CVE-2011-2894

High
FALSE
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π½Π΅ относится ΠΊ spring-tx


CVE-2013-4152

Medium
FALSE
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π½Π΅ относится ΠΊ spring-tx


CVE-2013-6429

Medium
FALSE
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π½Π΅ относится ΠΊ spring-tx


CVE-2013-6430

Medium
FALSE
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π½Π΅ относится ΠΊ spring-tx


CVE-2013-7315

Medium
FALSE
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π½Π΅ относится ΠΊ spring-tx


CVE-2014-0054

Medium
FALSE
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π½Π΅ относится ΠΊ spring-tx


CVE-2014-0225

High
FALSE
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π½Π΅ относится ΠΊ spring-tx


CVE-2014-1904

Medium
FALSE
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π½Π΅ относится ΠΊ spring-tx


CVE-2014-3625

Medium
FALSE
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π½Π΅ относится ΠΊ spring-tx


CVE-2016-9878

High
FALSE
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π½Π΅ относится ΠΊ spring-tx


CVE-2018-1270

High
FALSE
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π½Π΅ относится ΠΊ spring-tx


CVE-2018-1271

Medium
FALSE
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π½Π΅ относится ΠΊ spring-tx


CVE-2018-1272

Medium
FALSE
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π½Π΅ относится ΠΊ spring-tx

struts-core:1.3.8

CVE-2011-5057 (OSSINDEX)

Medium
FASLE
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΊ Struts 2


CVE-2012-0391 (OSSINDEX)
CVE-2012-0391
High
FALSE
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΊ Struts 2


CVE-2014-0094 (OSSINDEX)
CVE-2014-0094
Medium
FALSE
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΊ Struts 2


CVE-2014-0113 (OSSINDEX)
CVE-2014-0113
High
FALSE
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΊ Struts 2

CVE-2016-1182
3VE-2016-1182

High
TRUE



CVE-2011-5057
Medium
FALSE
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΊ Struts 2


CVE-2012-0392 (OSSINDEX)
CVE-2012-0392
High
FALSE
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΊ Struts 2


CVE-2012-0393 (OSSINDEX)
CVE-2012-0393
Medium
FALSE
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΊ Struts 2

CVE-2015-0899
CVE-2015-0899

High
TRUE


CVE-2012-0394
CVE-2012-0394
Medium
FALSE
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΊ Struts 2


CVE-2012-0838 (OSSINDEX)
CVE-2012-0838
High
FALSE
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΊ Struts 2


CVE-2013-1965 (OSSINDEX)
CVE-2013-1965
High
FALSE
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΊ Struts 2


CVE-2013-1966 (OSSINDEX)
CVE-2013-1966
High
FASLE
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΊ Struts 2


CVE-2013-2115
CVE-2013-2115
High
FASLE
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΊ Struts 2


CVE-2013-2134 (OSSINDEX)
CVE-2013-2134
High
FASLE
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΊ Struts 2


CVE-2013-2135 (OSSINDEX)
CVE-2013-2135
High
FASLE
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΊ Struts 2

CVE-2014-0114
CVE-2014-0114

High
TRUE


CVE-2015-2992
CVE-2015-2992
Medium
FALSE
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΊ Struts 2


CVE-2016-0785 (OSSINDEX)
CVE-2016-0785
High
FALSE
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΊ Struts 2

CVE-2016-1181
CVE-2016-1181

High
TRUE


CVE-2016-4003 (OSSINDEX)
CVE-2016-4003
High
FALSE
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΊ Struts 2

xwork-core:2.3.30
CVE-2017-9804


High
TRUE

SONATYPE-2017-0173


High
TRUE

CVE-2017-7672


High
FALSE
Π”ΡƒΠ±Π»ΡŒ ΠΊ CVE-2017-9804

SONATYPE-2016-0127


High
TRUE

struts2-core:2.3.30

CVE-2016-6795
CVE-2016-6795
High
TRUE


CVE-2017-9787
CVE-2017-9787
High
TRUE


CVE-2017-9791
CVE-2017-9791
High
TRUE


CVE-2017-9793

High
FALSE
Π”ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚ ΠΊ CVE-2018-1327


CVE-2017-9804

High
TRUE


CVE-2017-9805
CVE-2017-9805
High
TRUE

CVE-2016-4003


Medium
FALSE
ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ ΠΊ Apache Struts 2.x Π΄ΠΎ 2.3.28, Π° это вСрсия 2.3.30. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, исходя ΠΈΠ· описания, CVE дСйствуСт ΠΏΡ€ΠΈ Π»ΡŽΠ±Ρ‹Ρ… вСрсиях Struts 2, Ссли ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ JRE 1.7 ΠΈ мСньшС. Π’ΠΈΠ΄ΠΈΠΌΠΎ нас Ρ‚ΡƒΡ‚ Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΡΡ‚Ρ€Π°Ρ…ΠΎΠ²Π°Ρ‚ΡŒ, Π½ΠΎ большС ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° FALSE


CVE-2018-1327
CVE-2018-1327
High
TRUE

CVE-2017-5638
CVE-2017-5638
CVE-2017-5638
High
TRUE
Π’Π° самая ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ воспользовались Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΠΈ Π² Equifax Π² 2017 Π³ΠΎΠ΄Ρƒ

CVE-2017-12611
CVE-2017-12611

High
TRUE

CVE-2018-11776
CVE-2018-11776
CVE-2018-11776
High
TRUE

struts-taglib:1.3.8

CVE-2012-0394

Medium
FALSE
Для struts2-core


CVE-2013-2115

High
FALSE
Для struts2-core


CVE-2014-0114

High
FALSE
Для commons-beanutils


CVE-2015-0899

High
FALSE
НС относится ΠΊ taglib


CVE-2015-2992

Medium
FALSE
ΠžΡ‚Π½ΠΎΡΠΈΡ‚ΡΡ ΠΊ struts2-core


CVE-2016-1181

High
FALSE
НС относится ΠΊ taglib


CVE-2016-1182

High
FALSE
НС относится ΠΊ taglib

struts-tiles-1.3.8

CVE-2012-0394

Medium
FALSE
Для struts2-core


CVE-2013-2115

High
FALSE
Для struts2-core


CVE-2014-0114

High
FALSE
Под commons-beanutils


CVE-2015-0899

High
FALSE
НС относится ΠΊ tiles


CVE-2015-2992

Medium
FALSE
Для struts2-core


CVE-2016-1181

High
FALSE
НС относится ΠΊ taglib


CVE-2016-1182

High
FALSE
НС относится ΠΊ taglib

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com