เจตเจฐเจคเฉ€เจ†เจ‚ เจ—เจˆเจ†เจ‚ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจฒเจˆ เจ•เจฎเจœเจผเฉ‹เจฐเฉ€ เจธเจ•เฉˆเจจเจฐ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพ - GitlabCI เจตเจฟเฉฑเจš เจจเจฟเจฐเจญเจฐเจคเจพ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเฉ‹

เจ•เจฎเจœเจผเฉ‹เจฐเฉ€ เจชเฉเจฐเจฌเฉฐเจงเจจ เจฆเจพ เจ‡เฉฑเจ• เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจนเจฟเฉฑเจธเจพ เจ†เจงเฉเจจเจฟเจ• เจชเฉเจฐเจฃเจพเจฒเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจฌเจฃเจพเจ‰เจฃ เจตเจพเจฒเฉ‡ เจธเฉŒเจซเจŸเจตเฉ‡เจ…เจฐ เจญเจพเจ—เจพเจ‚ เจฆเฉ€ เจธเจชเจฒเจพเจˆ เจฒเฉœเฉ€ เจจเฉ‚เฉฐ เจšเฉฐเจ—เฉ€ เจคเจฐเฉเจนเจพเจ‚ เจธเจฎเจเจฃเจพ เจ…เจคเฉ‡ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจ•เจฐเจจเจพ เจนเฉˆเฅค Agile เจ…เจคเฉ‡ DevOps เจŸเฉ€เจฎเจพเจ‚ เจตเจฟเจ•เจพเจธ เจฆเฉ‡ เจธเจฎเฉ‡เจ‚ เจ…เจคเฉ‡ เจฒเจพเจ—เจค เจจเฉ‚เฉฐ เจ˜เจŸเจพเจ‰เจฃ เจฒเจˆ เจ“เจชเจจ เจธเฉ‹เจฐเจธ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจ…เจคเฉ‡ เจซเจฐเฉ‡เจฎเจตเจฐเจ• เจฆเฉ€ เจตเจฟเจ†เจชเจ• เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ€เจ†เจ‚ เจนเจจเฅค เจชเจฐ เจ‡เจธ เจฎเฉˆเจกเจฒ เจฆเจพ เจ‡เฉฑเจ• เจจเจจเฉเจ•เจธเจพเจจ เจตเฉ€ เจนเฉˆ: เจฆเฉ‚เจœเฉ‡ เจฒเฉ‹เจ•เจพเจ‚ เจฆเฉ€เจ†เจ‚ เจ—เจฒเจคเฉ€เจ†เจ‚ เจ…เจคเฉ‡ เจ•เจฎเจœเจผเฉ‹เจฐเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจตเจฟเจฐเจพเจธเจค เจตเจฟเฉฑเจš เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฆเจพ เจฎเฉŒเจ•เจพเฅค

เจธเจชเฉฑเจธเจผเจŸ เจคเฉŒเจฐ 'เจคเฉ‡, เจŸเฉ€เจฎ เจจเฉ‚เฉฐ เจ‡เจน เจœเจพเจฃเจจเจพ เจฏเจ•เฉ€เจจเฉ€ เจฌเจฃเจพเจ‰เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ เจ•เจฟ เจ‡เจธ เจฆเฉ€เจ†เจ‚ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจตเจฟเฉฑเจš เจ•เจฟเจนเฉœเฉ‡ เจ“เจชเจจ เจธเฉ‹เจฐเจธ เจ•เฉฐเจชเฉ‹เจจเฉˆเจ‚เจŸ เจธเจผเจพเจฎเจฒ เจ•เฉ€เจคเฉ‡ เจ—เจ เจนเจจ, เจ‡เจน เจฏเจ•เฉ€เจจเฉ€ เจฌเจฃเจพเจ‰เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ เจ•เจฟ เจœเจพเจฃเฉ‡-เจชเจ›เจพเจฃเฉ‡ เจญเจฐเฉ‹เจธเฉ‡เจฎเฉฐเจฆ เจธเจฐเฉ‹เจคเจพเจ‚ เจคเฉ‹เจ‚ เจœเจพเจฃเฉ‡-เจชเจ›เจพเจฃเฉ‡ เจญเจฐเฉ‹เจธเฉ‡เจฎเฉฐเจฆ เจธเฉฐเจธเจ•เจฐเจฃเจพเจ‚ เจจเฉ‚เฉฐ เจกเจพเจŠเจจเจฒเฉ‹เจก เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ, เจ…เจคเฉ‡ เจจเจตเฉ€เจ†เจ‚ เจ–เฉ‹เจœเฉ€เจ†เจ‚ เจ—เจˆเจ†เจ‚ เจ•เจฎเจœเจผเฉ‹เจฐเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจชเฉˆเจš เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจญเจพเจ—เจพเจ‚ เจฆเฉ‡ เจ…เฉฑเจชเจกเฉ‡เจŸ เจ•เฉ€เจคเฉ‡ เจธเฉฐเจธเจ•เจฐเจฃเจพเจ‚ เจจเฉ‚เฉฐ เจกเจพเจŠเจจเจฒเฉ‹เจก เจ•เจฐเฉ‹เฅค

เจ‡เจธ เจชเฉ‹เจธเจŸ เจตเจฟเฉฑเจš, เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจฌเจฟเจฒเจก เจจเฉ‚เฉฐ เจ…เจงเฉ‚เจฐเจพ เจ›เฉฑเจกเจฃ เจฒเจˆ OWASP เจจเจฟเจฐเจญเจฐเจคเจพ เจœเจพเจ‚เจš เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจฌเจพเจฐเฉ‡ เจฆเฉ‡เจ–เจพเจ‚เจ—เฉ‡ เจœเฉ‡เจ•เจฐ เจ‡เจน เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจก เจจเจพเจฒ เจ—เฉฐเจญเฉ€เจฐ เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจฆเจพ เจชเจคเจพ เจฒเจ—เจพเจ‰เจ‚เจฆเจพ เจนเฉˆเฅค

"เจเจœเจพเจ‡เจฒ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸเจธ เจตเจฟเฉฑเจš เจตเจฟเจ•เจพเจธ เจธเฉเจฐเฉฑเจ–เจฟเจ†" เจ•เจฟเจคเจพเจฌ เจตเจฟเฉฑเจš เจ‡เจธเจจเฉ‚เฉฐ เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ‡ เจ…เจจเฉเจธเจพเจฐ เจฆเจฐเจธเจพเจ‡เจ† เจ—เจฟเจ† เจนเฉˆเฅค OWASP เจจเจฟเจฐเจญเจฐเจคเจพ เจœเจพเจ‚เจš เจ‡เฉฑเจ• เจฎเฉเจซเจค เจธเจ•เฉˆเจจเจฐ เจนเฉˆ เจœเฉ‹ เจ‡เฉฑเจ• เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจตเจฟเฉฑเจš เจตเจฐเจคเฉ‡ เจ—เจ เจธเจพเจฐเฉ‡ เจ“เจชเจจ เจธเฉ‹เจฐเจธ เจ•เฉฐเจชเฉ‹เจจเฉˆเจ‚เจŸเจธ เจจเฉ‚เฉฐ เจ•เฉˆเจŸเจพเจฒเจพเจ— เจ•เจฐเจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจตเจฟเฉฑเจš เจฎเฉŒเจœเฉ‚เจฆ เจ•เจฎเจœเจผเฉ‹เจฐเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจฆเจฐเจธเจพเจ‰เจ‚เจฆเจพ เจนเฉˆเฅค Java, .NET, Ruby (gemspec), PHP (เจ•เฉฐเจชเฉ‹เจœเจผเจฐ), Node.js เจ…เจคเฉ‡ Python เจฆเฉ‡ เจจเจพเจฒ เจจเจพเจฒ เจ•เฉเจ C/C++ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸเจพเจ‚ เจฒเจˆ เจตเฉ€ เจธเฉฐเจธเจ•เจฐเจฃ เจนเจจเฅค เจจเจฟเจฐเจญเจฐเจคเจพ เจœเจพเจ‚เจš เจ†เจฎ เจฌเจฟเจฒเจก เจŸเฉ‚เจฒเจธ เจจเจพเจฒ เจเจ•เฉ€เจ•เฉเจฐเจฟเจค เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ, เจœเจฟเจธ เจตเจฟเฉฑเจš เจ•เฉ€เฉœเฉ€, เจฎเจพเจตเฉ‡เจจ เจ…เจคเฉ‡ เจ—เฉเจฐเฉ‡เจกเจฒ, เจ…เจคเฉ‡ เจœเฉ‡เจจเจ•เจฟเฉฐเจธ เจตเจฐเจ—เฉ‡ เจจเจฟเจฐเฉฐเจคเจฐ เจเจ•เฉ€เจ•เจฐเจฃ เจธเจฐเจตเจฐเจพเจ‚ เจธเจผเจพเจฎเจฒ เจนเจจเฅค

เจจเจฟเจฐเจญเจฐเจคเจพ เจœเจพเจ‚เจš NIST เจฆเฉ‡ เจฐเจพเจธเจผเจŸเจฐเฉ€ เจ•เจฎเจœเจผเฉ‹เจฐเฉ€ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ (NVD) เจคเฉ‹เจ‚ เจœเจพเจฃเฉ€เจ†เจ‚ เจ—เจˆเจ†เจ‚ เจ•เจฎเจœเจผเฉ‹เจฐเฉ€เจ†เจ‚ เจตเจพเจฒเฉ‡ เจธเจพเจฐเฉ‡ เจญเจพเจ—เจพเจ‚ เจฆเฉ€ เจฐเจฟเจชเฉ‹เจฐเจŸ เจ•เจฐเจฆเฉ€ เจนเฉˆ เจ…เจคเฉ‡ NVD เจจเจฟเจŠเจœเจผ เจซเฉ€เจกเจพเจ‚ เจฆเฉ‡ เจกเฉ‡เจŸเจพ เจจเจพเจฒ เจ…เจชเจกเฉ‡เจŸ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆเฅค

เจ–เฉเจธเจผเจ•เจฟเจธเจฎเจคเฉ€ เจจเจพเจฒ, เจ‡เจน เจธเจญ เจ•เฉเจ เจ”เจœเจผเจพเจฐเจพเจ‚ เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ OWASP เจจเจฟเจฐเจญเจฐเจคเจพ เจœเจพเจ‚เจš เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจœเจพเจ‚ เจตเจชเจพเจฐเจ• เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจ†เจชเจฃเฉ‡ เจ†เจช เจนเฉ€ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจ•เจพเจฒเฉ€ เจกเจ•, เจœเฉ‡เจซเจฐเฉ‹เจ— เจเจ•เจธเจฐเฉ‡, เจธเจจเจ•, Nexus เจœเฉ€เจตเจจ เจšเฉฑเจ•เจฐ เจธเฉ‹เจจเจพเจŸเจพเจˆเจช เจœเจพเจ‚ เจธเจฐเฉ‹เจค เจ•เจฒเฉ€เจ…เจฐ.

เจ‡เจนเจจเจพเจ‚ เจธเจพเจงเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ“เจชเจจ เจธเฉ‹เจฐเจธ เจจเจฟเจฐเจญเจฐเจคเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจธเจตเฉˆเจšเจฒเจฟเจค เจคเฉŒเจฐ 'เจคเฉ‡ เจธเฉ‚เจšเฉ€เจฌเฉฑเจง เจ•เจฐเจจ เจฒเจˆ เจฌเจฟเจฒเจก เจชเจพเจˆเจชเจฒเจพเจˆเจจเจพเจ‚ เจตเจฟเฉฑเจš เจธเจผเจพเจฎเจฒ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ, เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจ…เจคเฉ‡ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจฆเฉ‡ เจชเฉเจฐเจพเจฃเฉ‡ เจธเฉฐเจธเจ•เจฐเจฃเจพเจ‚ เจฆเฉ€ เจชเจ›เจพเจฃ เจ•เฉ€เจคเฉ€ เจœเจพ เจธเจ•เจฆเฉ€ เจนเฉˆ, เจœเจฟเจธ เจตเจฟเฉฑเจš เจœเจพเจฃเฉ€เจ†เจ‚-เจชเจ›เจพเจฃเฉ€เจ†เจ‚ เจ•เจฎเจœเจผเฉ‹เจฐเฉ€เจ†เจ‚ เจนเจจ, เจ…เจคเฉ‡ เจ—เฉฐเจญเฉ€เจฐ เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจฆเจพ เจชเจคเจพ เจฒเฉฑเจ—เจฃ 'เจคเฉ‡ เจฌเจฟเจฒเจก เจจเฉ‚เฉฐ เจ…เจงเฉ‚เจฐเจพ เจ›เฉฑเจก เจฆเจฟเจ“เฅค

OWASP เจจเจฟเจฐเจญเจฐเจคเจพ เจœเจพเจ‚เจš

เจชเจฐเจ–เจฃ เจ…เจคเฉ‡ เจ‡เจน เจฆเจฟเจ–เจพเจ‰เจฃ เจฒเจˆ เจ•เจฟ เจจเจฟเจฐเจญเจฐเจคเจพ เจœเจพเจ‚เจš เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเฉ€ เจนเฉˆ, เจ…เจธเฉ€เจ‚ เจ‡เจธ เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ เจจเจฟเจฐเจญเจฐเจคเจพ-เจœเจพเจ‚เจš-เจ‰เจฆเจพเจนเจฐเจจ.

HTML เจฐเจฟเจชเฉ‹เจฐเจŸ เจฆเฉ‡เจ–เจฃ เจฒเจˆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ†เจชเจฃเฉ‡ gitlab-runner 'เจคเฉ‡ nginx เจตเฉˆเฉฑเจฌ เจธเจฐเจตเจฐ เจจเฉ‚เฉฐ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค

เจ‡เฉฑเจ• เจจเจฟเจŠเจจเจคเจฎ 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 เจตเจฟเฉฑเจš เจจเจฟเจฐเจญเจฐเจคเจพ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเฉ‹

เจšเฉŒเจฅเจพ เจธเจ•เจฐเฉ€เจจเจธเจผเจพเจŸ เจ•เจพเจฎเจจเจœเจผ-เจซเจพเจ‡เจฒเจ…เฉฑเจชเจฒเฉ‹เจก-1.3.2.เจœเจพเจฐ เจฆเจพ เจตเฉ‡เจฐเจตเจพ เจนเฉˆเฅค เจ…เจธเฉ€เจ‚ เจฆเฉ‡เจ–เจฆเฉ‡ เจนเจพเจ‚ เจ•เจฟ CVE เจชเฉฑเจงเจฐ 7.5 เจ…เจคเฉ‡ 9.8 เจนเจจเฅค

เจตเจฐเจคเฉ€เจ†เจ‚ เจ—เจˆเจ†เจ‚ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจฒเจˆ เจ•เจฎเจœเจผเฉ‹เจฐเฉ€ เจธเจ•เฉˆเจจเจฐ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพ - GitlabCI เจตเจฟเฉฑเจš เจจเจฟเจฐเจญเจฐเจคเจพ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเฉ‹

เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ gitlab เจชเฉฐเจจเจฟเจ†เจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจ‡เจน เจ•เฉฐเจฎ เจจเจนเฉ€เจ‚ เจ•เจฐเฉ‡เจ—เจพ - เจ‡เฉฑเจ• เจกเจฟเฉฑเจ—เจฟเจ† เจนเฉ‹เจ‡เจ† เจ•เฉฐเจฎ เจ‡เฉฑเจ• เจ†เจฐเจŸเฉ€เจซเฉˆเจ•เจŸ เจจเจนเฉ€เจ‚ เจฌเจฃเจพเจเจ—เจพ.

เจ‡เฉฑเจฅเฉ‡ เจ‰เจฆเจพเจนเจฐเจจ https://gitlab.com/anton_patsev/dependency-check-example-gitlab-pages.

เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจฌเจฃเจพเจ“: เจ•เฉ‹เจˆ เจ•เจฒเจพเจคเจฎเจ• เจšเฉ€เจœเจผเจพเจ‚ เจจเจนเฉ€เจ‚, เจฎเฉˆเจ‚ html เจฐเจฟเจชเฉ‹เจฐเจŸ เจจเจนเฉ€เจ‚ เจตเฉ‡เจ– เจฐเจฟเจนเจพ. เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ†เจฐเจŸเฉ€เจซเฉˆเจ•เจŸ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเจจเฉ€ เจšเจพเจนเฉ€เจฆเฉ€ เจนเฉˆ: เจนเจฎเฉ‡เจธเจผเจพ

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

DevOps เจ…เจคเฉ‡ เจธเฉเจฐเฉฑเจ–เจฟเจ† เจฌเจพเจฐเฉ‡ เจŸเฉˆเจฒเฉ€เจ—เฉเจฐเจพเจฎ เจšเฉˆเจŸ
เจŸเฉˆเจฒเฉ€เจ—เฉเจฐเจพเจฎ เจšเฉˆเจจเจฒ DevSecOps / SSDLC - เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจตเจฟเจ•เจพเจธ

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹