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

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

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

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

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

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

Π—Π° щастиС, всичко Ρ‚ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π½Π°ΠΏΡ€Π°Π²ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° инструмСнти ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° OWASP Dependency Check ΠΈΠ»ΠΈ Ρ‚ΡŠΡ€Π³ΠΎΠ²ΡΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ ΠΊΠ°Ρ‚ΠΎ Π§Π΅Ρ€Π½Π° ΠΏΠ°Ρ‚ΠΈΡ†Π°, JFrog Xray, Π‘Π½ΠΈΠΊ, Π–ΠΈΠ·Π½Π΅Π½ Ρ†ΠΈΠΊΡŠΠ» Π½Π° Nexus Π‘ΠΎΠ½Π°Ρ‚ΠΈΠΏ ΠΈΠ»ΠΈ Π˜Π·Ρ‡ΠΈΡΡ‚Π²Π°Π½Π΅ Π½Π° ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΠΊΠ°.

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

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° зависимостта ΠΎΡ‚ OWASP

Π—Π° Π΄Π° тСствамС ΠΈ дСмонстрирамС ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°Ρ‚Π° Π½Π° зависимостта, Π½ΠΈΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Ρ‚ΠΎΠ²Π° Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ зависимост-ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°-ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

Π—Π° Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ 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 {
    }
}

Π’ края Π½Π° сглобяванСто ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ Ρ‚Π°Π·ΠΈ снимка:

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

Π‘Π»Π΅Π΄Π²Π°ΠΉΡ‚Π΅ Π²Ρ€ΡŠΠ·ΠΊΠ°Ρ‚Π° ΠΈ Π²ΠΈΠΆΡ‚Π΅ ΠΎΡ‚Ρ‡Π΅Ρ‚Π° Π·Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° зависимостта.

ΠŸΡŠΡ€Π²Π°Ρ‚Π° Π΅ΠΊΡ€Π°Π½Π½Π° снимка Π΅ Π³ΠΎΡ€Π½Π°Ρ‚Π° част Π½Π° ΠΎΡ‚Ρ‡Π΅Ρ‚Π° с Ρ€Π΅Π·ΡŽΠΌΠ΅.

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

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

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

Π’Ρ€Π΅Ρ‚Π°Ρ‚Π° Π΅ΠΊΡ€Π°Π½Π½Π° снимка Π΅ подробности Π·Π° log4j-api-2.7.jar. Π’ΠΈΠΆΠ΄Π°ΠΌΠ΅, Ρ‡Π΅ Π½ΠΈΠ²Π°Ρ‚Π° Π½Π° CVE са 7.5 ΠΈ 9.8.

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

Π§Π΅Ρ‚Π²ΡŠΡ€Ρ‚Π°Ρ‚Π° Π΅ΠΊΡ€Π°Π½Π½Π° снимка Π΅ подробноститС Π·Π° commons-fileupload-1.3.2.jar. Π’ΠΈΠΆΠ΄Π°ΠΌΠ΅, Ρ‡Π΅ Π½ΠΈΠ²Π°Ρ‚Π° Π½Π° CVE са 7.5 ΠΈ 9.8.

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

Ако искатС Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ gitlab страници, Ρ‚ΠΎΠ³Π°Π²Π° няма Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ - ΠΏΠ°Π΄Π½Π°Π»Π° Π·Π°Π΄Π°Ρ‡Π° няма Π΄Π° създадС Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚.

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

Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ ΠΎΡ‚ компилация: няма Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ΠΈ, Π½Π΅ Π²ΠΈΠΆΠ΄Π°ΠΌ html ΠΎΡ‚Ρ‡Π΅Ρ‚Π°. Врябва Π΄Π° ΠΎΠΏΠΈΡ‚Π°Ρ‚Π΅ Artifact: Π²ΠΈΠ½Π°Π³ΠΈ

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

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

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

Най-ваТният Ρ€Π΅Π΄ във Ρ„Π°ΠΉΠ»Π° gitlab-ci.yaml:

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

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

Π˜Π·Ρ‚Π΅Π³Π»ΡΠ½Π΅ Π½Π° Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ Π·Π° уязвимости Π½Π° NIST (NVD) ΠΎΡ‚ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚

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

ИзползванС Π½Π° скСнСра Π·Π° уязвимости Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° зависимостта Π² 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 ΠΊΠ°Ρ‡Π²Π° NIST JSON CVE Π² /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 Ρ‰Π΅ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Ρ‚Π°ΠΊΠ°:

variables:
  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"

cache:
  paths:
    - .m2/repository

verify:
  stage: test
  script:
    - 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}
  tags:
    - shell

Π§Π°Ρ‚ Π² Telegram Π·Π° DevOps ΠΈ сигурност
Telegram ΠΊΠ°Π½Π°Π» DevSecOps / SSDLC - Π‘ΠΈΠ³ΡƒΡ€Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°

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

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€