ИзползванС Π½Π° скСнСр Π·Π° уязвимости Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈΡ‚Π΅ Dependency-Check Π² GitlabCI

Π’Π°ΠΆΠ½Π° част ΠΎΡ‚ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° уязвимоститС Π΅ Π΄Π° сС Ρ€Π°Π·Π±ΠΈΡ€Π° Π΄ΠΎΠ±Ρ€Π΅ ΠΈ Π΄Π° сС осигури бСзопасността Π½Π° Π²Π΅Ρ€ΠΈΠ³Π° Π·Π° доставки Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈΡ‚Π΅ Π½Π° софтуСра, ΠΎΡ‚ ΠΊΠΎΠΈΡ‚ΠΎ сС ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Ρ‚ ΡΡŠΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈΡ‚Π΅ систСми. Π•ΠΊΠΈΠΏΠΈ, ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒΠ²Π°Ρ‰ΠΈ гъвкави ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈ DevOps, ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ Ρ€Π°ΠΌΠΊΠΈ с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄, Π·Π° Π΄Π° ΡΡŠΠΊΡ€Π°Ρ‚ΡΡ‚ Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ ΠΈ Ρ€Π°Π·Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°. Но ΠΎΠ±Ρ€Π°Ρ‚Π½Π°Ρ‚Π° страна Π½Π° ΠΌΠ΅Π΄Π°Π»Π° Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π΄Π° наслСдим Π³Ρ€Π΅ΡˆΠΊΠΈΡ‚Π΅ ΠΈ уязвимоститС Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ‚Π΅.

ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ Π΅, Ρ‡Π΅ Π΅ΠΊΠΈΠΏΡŠΡ‚ трябва Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΎ Π΄Π° Π·Π½Π°Π΅ ΠΊΠ°ΠΊΠ²ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ са Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈ Π² Π½Π΅Π³ΠΎΠ²ΠΈΡ‚Π΅ прилоТСния, Π΄Π° слСди Π·Π° свалянС Π½Π° ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΈ вСрсии ΠΎΡ‚ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΈ ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΡ†ΠΈ ΠΈ Π΄Π° ΠΊΠ°Ρ‡Π²Π° Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ вСрсии Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈΡ‚Π΅ слСд ΠΊΠΎΡ€ΠΈΠ³ΠΈΡ€Π°Π½Π΅ Π½Π° Π½ΠΎΠ²ΠΎΠΎΡ‚ΠΊΡ€ΠΈΡ‚ΠΈΡ‚Π΅ уязвимости.

Π’ Ρ‚ΠΎΠ·ΠΈ пост Ρ‰Π΅ Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° OWASP Dependency Check Π·Π° прСкратяванС Π½Π° сборката Π² случай Π½Π° ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π°Π½Π΅ Π½Π° сСриозни ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с вашия ΠΊΠΎΠ΄.

Π’ ΠΊΠ½ΠΈΠ³Π°Ρ‚Π° β€žΠ‘ΠΈΠ³ΡƒΡ€Π½ΠΎΡΡ‚ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π² Agile ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈβ€œ Π΅ описано Ρ‚Π°ΠΊΠ°. OWASP Dependency Check Π΅ Π±Π΅Π·ΠΏΠ»Π°Ρ‚Π΅Π½ скСнСр, ΠΊΠΎΠΉΡ‚ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈΠ·ΠΈΡ€Π° всички ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ ΠΈ ΠΏΠΎΠΊΠ°Π·Π²Π° ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ΠΈΡ‚Π΅ Π² тях уязвимости. Има вСрсии Π·Π° Java, .NET, Ruby (gemspec), PHP (composer), Node.js ΠΈ Python, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ Π·Π° някои ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ Π½Π° C/C++. Dependency Check сС ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€Π° с разпространСни срСдства Π·Π° сборка, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Ant, Maven ΠΈ Gradle ΠΈ ΡΡŠΡ€Π²ΡŠΡ€ΠΈ Π·Π° Π½Π΅ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Ρ‚Π° интСграция ΠΊΠ°Ρ‚ΠΎ Jenkins.

Dependency Check ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠΈΡ€Π° Π·Π° всички ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ с извСстни уязвимости ΠΎΡ‚ Националната Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ Π·Π° уязвимости (NVD) NIST ΠΈ сС обновява Π½Π° основата Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ новинарски ΠΊΠ°Π½Π°Π»ΠΈ NVD.

Π—Π° щастиС, всичко Ρ‚ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΏΡ€Π°Π²ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° инструмСнти ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° OWASP Dependency Check ΠΈΠ»ΠΈ Ρ‚ΡŠΡ€Π³ΠΎΠ²ΡΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ ΠΊΠ°Ρ‚ΠΎ Black Duck, JFrog Xray, Snyk, Nexus Lifecycle компанията Sonatype ΠΈΠ»ΠΈ SourceClear.

Π’Π΅Π·ΠΈ инструмСнти ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€Π°Π½ΠΈ Π² ΡΠ±ΠΎΡ€ΡŠΡ‡Π½ΠΈ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ΠΈ, Π·Π° Π΄Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ сС ΡΡŠΡΡ‚Π°Π²Ρ списък Π½Π° зависимоститС с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄, Π΄Π° сС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Ρ‚ остарСли вСрсии Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‰ΠΈ извСстни уязвимости, ΠΈ Π΄Π° сС ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‚ΠΈ сборката Π² случай Π½Π° ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π°Π½Π΅ Π½Π° сСриозни ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ.

OWASP Dependency Check

Π—Π° тСстванС ΠΈ дСмонстрация Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° Dependency Check Ρ‰Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Ρ‚ΠΎΠ²Π° Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ dependency-check-example.

Π—Π° Π΄Π° Ρ€Π°Π·Π³Π»Π΅Π΄Π°Ρ‚Π΅ HTML ΠΎΡ‚Ρ‡Π΅Ρ‚Π°, трябва Π΄Π° настроитС ΡƒΠ΅Π± ΡΡŠΡ€Π²ΡŠΡ€Π° nginx Π½Π° вашия gitlab-runner.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½Π° конфигурация Π½Π° nginx:

server {
    listen       9999;
    listen       [::]:9999;
    server_name  _;
    root         \/home\/gitlab-runner\/builds;

    location \/ {
        autoindex on;
    }

    error_page 404 \/404.html;
        location = \/40x.html {
    }

    error_page 500 502 503 504 \/50x.html;
        location = \/50x.html {
    }

}

Π’ края Π½Π° компилацията ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ слСдната ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Π°:

ИзползванС Π½Π° скСнСр Π·Π° уязвимости Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈΡ‚Π΅ Dependency-Check Π² GitlabCI

ΠŸΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°ΠΌΠ΅ ΠΏΠΎ Π»ΠΈΠ½ΠΊΠ° ΠΈ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ ΠΎΡ‚Ρ‡Π΅Ρ‚Π° Dependency Check.

ΠŸΡŠΡ€Π²ΠΈΡΡ‚ Π΅ΠΊΡ€Π°Π½Π΅Π½ ΠΌΠΎΠΌΠ΅Π½Ρ‚ β€” Π³ΠΎΡ€Π½Π°Ρ‚Π° част Π½Π° ΠΎΡ‚Ρ‡Π΅Ρ‚Π° с ΠΊΡ€Π°Ρ‚ΠΊΠΎ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅.

ИзползванС Π½Π° скСнСр Π·Π° уязвимости Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈΡ‚Π΅ Dependency-Check Π² GitlabCI

Вторият Π΅ΠΊΡ€Π°Π½Π΅Π½ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΏΠΎΠΊΠ°Π·Π²Π° подробности Π·Π° CVE-2017-5638. Π’ΡƒΠΊ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ Π½ΠΈΠ²ΠΎΡ‚ΠΎ Π½Π° CVE ΠΈ Π²Ρ€ΡŠΠ·ΠΊΠΈ към Сксплойти.

ИзползванС Π½Π° скСнСр Π·Π° уязвимости Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈΡ‚Π΅ Dependency-Check Π² GitlabCI

ВрСтият Π΅ΠΊΡ€Π°Π½Π΅Π½ ΠΌΠΎΠΌΠ΅Π½Ρ‚ β€” подробности Π·Π° log4j-api-2.7.jar. Π’ΠΈΠΆΠ΄Π°ΠΌΠ΅ Π½ΠΈΠ²Π°Ρ‚Π° CVE 7.5 ΠΈ 9.8.

ИзползванС Π½Π° скСнСр Π·Π° уязвимости Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈΡ‚Π΅ Dependency-Check Π² GitlabCI

Π§Π΅Ρ‚Π²ΡŠΡ€Ρ‚ΠΈΡΡ‚ Π΅ΠΊΡ€Π°Π½Π΅Π½ ΠΌΠΎΠΌΠ΅Π½Ρ‚ β€” подробности Π·Π° commons-fileupload-1.3.2.jar. Π’ΠΈΠΆΠ΄Π°ΠΌΠ΅ Π½ΠΈΠ²Π°Ρ‚Π° CVE 7.5 ΠΈ 9.8.

ИзползванС Π½Π° скСнСр Π·Π° уязвимости Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈΡ‚Π΅ Dependency-Check Π² GitlabCI

Ако искатС Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ gitlab pages, Ρ‚ΠΎΠ²Π° няма Π΄Π° Π΅ възмоТно β€” ΠΏΠ°Π΄Π½Π°Π»Π°Ρ‚Π° Π·Π°Π΄Π°Ρ‡Π° няма Π΄Π° създадС Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΡƒΠΊ https://gitlab.com/anton_patsev/dependency-check-example-gitlab-pages.

Π˜Π·Ρ…ΠΎΠ΄ ΠΎΡ‚ компилацията: Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ΠΈ няма, HTML ΠΎΡ‚Ρ‡Π΅Ρ‚Π° Π½Π΅ Π²ΠΈΠΆΠ΄Π°ΠΌ. Врябва Π΄Π° ΠΏΡ€ΠΎΠ±Π²Π°Ρ‚Π΅ Artifact: always

https://gitlab.com/anton_patsev/dependency-check-example-gitlab-pages/-/jobs/400004246

ИзползванС Π½Π° скСнСр Π·Π° уязвимости Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈΡ‚Π΅ Dependency-Check Π² GitlabCI

Π Π΅Π³ΡƒΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° Π½ΠΈΠ²ΠΎΡ‚ΠΎ Π½Π° уязвимоститС CVE

Най-Π²Π°ΠΆΠ½Π°Ρ‚Π° линия Π² Ρ„Π°ΠΉΠ»Π° gitlab-ci.yaml:

mvn $MAVEN_CLI_OPTS test org.owasp:dependency-check-maven:check -DfailBuildOnCVSS=7

Π‘ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€Π° failBuildOnCVSS ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Ρ€Π΅Π³ΡƒΠ»ΠΈΡ€Π°Ρ‚Π΅ Π½ΠΈΠ²ΠΎΡ‚ΠΎ Π½Π° CVE уязвимоститС, Π½Π° ΠΊΠΎΠΈΡ‚ΠΎ трябва Π΄Π° Ρ€Π΅Π°Π³ΠΈΡ€Π°Ρ‚Π΅.

БвалянС Π½Π° Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ с уязвимости (NVD) NIST ΠΎΡ‚ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚

ЗабСлязахтС Π»ΠΈ, Ρ‡Π΅ постоянно сваля Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ с уязвимости (NVD) NIST ΠΎΡ‚ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚:

ИзползванС Π½Π° скСнСр Π·Π° уязвимости Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈΡ‚Π΅ Dependency-Check Π² GitlabCI

Π—Π° свалянС ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° nist_data_mirror_golang

НСка я инсталирамС ΠΈ стартирамС.

yum -y install yum-plugin-copr
yum copr enable antonpatsev\/nist_data_mirror_golang
yum -y install nist-data-mirror
systemctl start nist-data-mirror

Nist-data-mirror сваля CVE JSON NIST Π² \/var\/www\/repos\/nist-data-mirror\/ ΠΏΡ€ΠΈ стартиранС ΠΈ обновява Π΄Π°Π½Π½ΠΈΡ‚Π΅ Π½Π° всСки 24 часа.

Π—Π° свалянС Π½Π° CVE JSON NIST Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° настроитС ΡƒΠ΅Π± ΡΡŠΡ€Π²ΡŠΡ€Π° nginx (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½Π° вашия gitlab-runner).

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½Π° конфигурация Π½Π° nginx:

server {
    listen       12345;
    listen       [::]:12345;
    server_name  _;
    root         \/var\/www\/repos\/nist-data-mirror\/;

    location \/ {
        autoindex on;
    }

    error_page 404 \/404.html;
        location = \/40x.html {
    }

    error_page 500 502 503 504 \/50x.html;
        location = \/50x.html {
    }

}

Π—Π° Π΄Π° Π½Π΅ ΠΏΡ€Π°Π²ΠΈΠΌ дълга ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ сС изпълнява mvn, Ρ‰Π΅ ΠΈΠ·Π²Π΅Π΄Π΅ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅ Π² ΠΎΡ‚Π΄Π΅Π»Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° DEPENDENCY_OPTS.

ΠšΡ€Π°ΠΉΠ½Π°Ρ‚Π° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½Π° конфигурация Π½Π° .gitlab-ci.yml Ρ‰Π΅ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Ρ‚Π°ΠΊΠ°:

ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ:
  MAVEN_OPTS: "-Dhttps.protocols=TLSv1.2 -Dmaven.repo.local=$CI_PROJECT_DIR/.m2/repository -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=WARN -Dorg.slf4j.simpleLogger.showDateTime=true -Djava.awt.headless=true"
  MAVEN_CLI_OPTS: "--batch-mode --errors --fail-at-end --show-version -DinstallAtEnd=true -DdeployAtEnd=true"
  DEPENDENCY_OPTS: "-DfailBuildOnCVSS=7 -DcveUrlModified=http://localhost:12345/nvdcve-1.1-modified.json.gz -DcveUrlBase=http://localhost:12345/nvdcve-1.1-%d.json.gz"

кСш:
  ΠΏΡŠΡ‚ΠΈΡ‰Π°:
    - .m2/repository

ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°:
  Π΅Ρ‚Π°ΠΏ: тСст
  скрипт:
    - set +e
    - mvn $MAVEN_CLI_OPTS install org.owasp:dependency-check-maven:check $DEPENDENCY_OPTS || EXIT_CODE=$?
    - export PATH_WITHOUT_HOME=$(pwd | sed -e "s//home/gitlab-runner/builds//g")
    - echo "************************* URL Dependency-check-report.html *************************"
    - echo "http://$HOSTNAME:9999$PATH_WITHOUT_HOME/target/dependency-check-report.html"
    - set -e
    - exit ${EXIT_CODE}
  Ρ‚Π°Π³ΠΎΠ²Π΅:
    - shell

Telegram Ρ‡Π°Ρ‚ Π·Π° DevOps ΠΈ сигурност
Telegram ΠΊΠ°Π½Π°Π» DevSecOps / SSDLC - БСзопасна Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°

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

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster