เด‰เดชเดฏเต‹เด—เดฟเดšเตเดš เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เตพเด•เตเด•เดพเดฏเดฟ เดฆเตเตผเดฌเดฒเดค เดธเตเด•เดพเดจเตผ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต - GitlabCI-เตฝ เด†เดถเตเดฐเดฟเดคเดคเตเดตเด‚ เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเด•

เด†เดงเตเดจเดฟเด• เดธเด‚เดตเดฟเดงเดพเดจเด™เตเด™เตพ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดจเตเดจ เดธเต‹เดซเตเดฑเตเดฑเตโ€Œเดตเต†เดฏเตผ เด˜เดŸเด•เด™เตเด™เดณเตเดŸเต† เดตเดฟเดคเดฐเดฃ เดถเตƒเด‚เด–เดฒ เดจเดจเตเดจเดพเดฏเดฟ เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เตเด•เดฏเตเด‚ เดธเตเดฐเด•เตเดทเดฟเดคเดฎเดพเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเด• เดŽเดจเตเดจเดคเดพเดฃเต เดฆเตเตผเดฌเดฒเดค เดฎเดพเดจเต‡เดœเตเดฎเต†เดจเตเดฑเดฟเดจเตเดฑเต† เด’เดฐเต เดชเตเดฐเดงเดพเดจ เดญเดพเด—เด‚. เดตเดฟเด•เดธเดจ เดธเดฎเดฏเดตเตเด‚ เดšเต†เดฒเดตเตเด‚ เด•เตเดฑเดฏเตเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดŽเดœเตˆเตฝ, DevOps เดŸเต€เดฎเตเด•เตพ เด“เดชเตเดชเตบ เดธเต‹เดดเตโ€Œเดธเต เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เดณเตเด‚ เดšเดŸเตเดŸเด•เตเด•เต‚เดŸเตเด•เดณเตเด‚ เดตเดฟเดชเตเดฒเดฎเดพเดฏเดฟ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต. เดŽเดจเตเดจเดพเตฝ เดˆ เดฎเต†เดกเดฒเดฟเดจเต เด’เดฐเต เดชเต‹เดฐเดพเดฏเตเดฎเดฏเตเด‚ เด‰เดฃเตเดŸเต: เดฎเดฑเตเดฑเตเดณเตเดณเดตเดฐเตเดŸเต† เดคเต†เดฑเตเดฑเตเด•เดณเตเด‚ เดชเดฐเดพเดงเต€เดจเดคเด•เดณเตเด‚ เด…เดตเด•เดพเดถเดฎเดพเด•เตเด•เดพเดจเตเดณเตเดณ เด…เดตเดธเดฐเด‚.

เดตเตเดฏเด•เตเดคเดฎเดพเดฏเตเด‚, เดเดคเต เด“เดชเตเดชเตบ เดธเต‹เดดเตโ€Œเดธเต เด˜เดŸเด•เด™เตเด™เดณเดพเดฃเต เด…เดคเดฟเดจเตเดฑเต† เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เดณเดฟเตฝ เด‰เตพเดชเตเดชเต†เดŸเตเดคเตเดคเดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต†เดจเตเดจเต เดŸเต€เด‚ เด…เดฑเดฟเดžเตเดžเดฟเดฐเดฟเด•เตเด•เดฃเด‚, เด…เดฑเดฟเดฏเดชเตเดชเต†เดŸเตเดจเตเดจ เดตเดฟเดถเตเดตเดธเดจเต€เดฏเดฎเดพเดฏ เด‰เดฑเดตเดฟเดŸเด™เตเด™เดณเดฟเตฝ เดจเดฟเดจเตเดจเต เด…เดฑเดฟเดฏเดชเตเดชเต†เดŸเตเดจเตเดจ เดตเดฟเดถเตเดตเดธเดจเต€เดฏเดฎเดพเดฏ เดชเดคเดฟเดชเตเดชเตเด•เตพ เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดคเดฟเดŸเตเดŸเตเดฃเตเดŸเต†เดจเตเดจเต เด‰เดฑเดชเตเดชเดพเด•เตเด•เตเด•, เดชเตเดคเตเดคเดพเดฏเดฟ เด•เดฃเตเดŸเต†เดคเตเดคเดฟเดฏ เด•เต‡เดŸเตเดชเดพเดŸเตเด•เตพ เดชเดฐเดฟเดนเดฐเดฟเดšเตเดšเดคเดฟเดจเต เดถเต‡เดทเด‚ เด˜เดŸเด•เด™เตเด™เดณเตเดŸเต† เด…เดชเตโ€Œเดกเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดค เดชเดคเดฟเดชเตเดชเตเด•เตพ เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเด•.

เดˆ เดชเต‹เดธเตเดฑเตเดฑเดฟเตฝ, เดจเดฟเด™เตเด™เดณเตเดŸเต† เด•เต‹เดกเดฟเตฝ เด—เตเดฐเตเดคเดฐเดฎเดพเดฏ เดชเตเดฐเดถเตเดจเด™เตเด™เตพ เด•เดฃเตเดŸเต†เดคเตเดคเดฟเดฏเดพเตฝ, เด’เดฐเต เดฌเดฟเตฝเดกเต เดจเดฟเตผเดคเตเดคเดฒเดพเด•เตเด•เดพเตป OWASP เดกเดฟเดชเตปเดกเตปเดธเดฟ เดšเต†เด•เตเด•เต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเต เดžเด™เตเด™เตพ เดจเต‹เด•เตเด•เตเด‚.

"เดกเต†เดตเดฒเดชเตเดฎเต†เดจเตเดฑเต เดธเต†เด•เตเดฏเต‚เดฐเดฟเดฑเตเดฑเดฟ เด‡เตป เดŽเดœเตˆเตฝ เดชเตเดฐเต‹เดœเด•เตเดŸเตเดธเต" เดŽเดจเตเดจ เดชเตเดธเตเดคเด•เดคเตเดคเดฟเตฝ เด‡เดคเต เดคเดพเดดเต†เดชเตเดชเดฑเดฏเตเดจเตเดจ เดฐเต€เดคเดฟเดฏเดฟเตฝ เดตเดฟเดตเดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เด’เดฐเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเดฟเตฝ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ เดŽเดฒเตเดฒเดพ เด“เดชเตเดชเตบ เดธเต‹เดดเตโ€Œเดธเต เด˜เดŸเด•เด™เตเด™เดณเต†เดฏเตเด‚ เด•เดพเดฑเตเดฑเดฒเต‹เด—เต เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เด…เดตเดฏเดฟเตฝ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เด•เต‡เดŸเตเดชเดพเดŸเตเด•เตพ เด•เดพเดฃเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจ เด’เดฐเต เดธเต—เดœเดจเตเดฏ เดธเตเด•เดพเดจเดฑเดพเดฃเต OWASP เดกเดฟเดชเตปเดกเตปเดธเดฟ เดšเต†เด•เตเด•เต. Java, .NET, Ruby (gemspec), PHP (composer), Node.js, Python เดŽเดจเตเดจเดฟเดตเดฏเตโ€Œเด•เตเด•เตเด‚ เดšเดฟเดฒ C/C++ เดชเตเดฐเต‹เดœเด•เตโ€Œเดฑเตเดฑเตเด•เตพเด•เตเด•เตเด‚ เดชเดคเดฟเดชเตเดชเตเด•เดณเตเดฃเตเดŸเต. Ant, Maven, Gradle เดŽเดจเตเดจเดฟเดตเดฏเตเตพเดชเตเดชเต†เดŸเต†เดฏเตเดณเตเดณ เดชเตŠเดคเตเดตเดพเดฏ เดฌเดฟเตฝเดกเต เดŸเต‚เดณเตเด•เดณเตเดฎเดพเดฏเตเด‚ เดœเต†เด™เตเด•เดฟเตปเดธเต เดชเต‹เดฒเตเดณเตเดณ เดคเตเดŸเตผเดšเตเดšเดฏเดพเดฏ เดเด•เต€เด•เดฐเดฃ เดธเต†เตผเดตเดฑเตเด•เดณเตเดฎเดพเดฏเตเด‚ เดกเดฟเดชเตปเดกเตปเดธเดฟ เดšเต†เด•เตเด•เต เดธเด‚เดฏเต‹เดœเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต.

เดŽเตปเดเดŽเดธเตโ€ŒเดŸเดฟเดฏเตเดŸเต† เดจเดพเดทเดฃเตฝ เดตเตพเดจเดฑเดฌเดฟเดฒเดฟเดฑเตเดฑเดฟ เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเดฟเตฝ (เดŽเตปเดตเดฟเดกเดฟ) เดจเดฟเดจเตเดจเต เด…เดฑเดฟเดฏเดชเตเดชเต†เดŸเตเดจเตเดจ เด•เต‡เดŸเตเดชเดพเดŸเตเด•เดณเตเดณเตเดณ เดŽเดฒเตเดฒเดพ เด˜เดŸเด•เด™เตเด™เดณเตเด‚ เดกเดฟเดชเตปเดกเตปเดธเดฟ เดšเต†เด•เตเด•เต เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเตเดšเต†เดฏเตเดฏเตเดจเตเดจเต เด•เต‚เดŸเดพเดคเต† เดŽเตปเดตเดฟเดกเดฟ เดตเดพเตผเดคเตเดคเดพ เดซเต€เดกเตเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดกเดพเดฑเตเดฑ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด…เดชเตโ€Œเดกเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต.

เดญเดพเด—เตเดฏเดตเดถเดพเตฝ, OWASP เดกเดฟเดชเตปเดกเตปเดธเดฟ เดšเต†เด•เตเด•เต เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดตเดพเดฃเดฟเดœเตเดฏ เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเตเด•เตพ เดชเต‹เดฒเตเดณเตเดณ เด‰เดชเด•เดฐเดฃเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด‡เดคเต†เดฒเตเดฒเดพเด‚ เดธเตเดตเดฏเดฎเต‡เดต เดšเต†เดฏเตเดฏเดพเดจเดพเด•เตเด‚ เด•เดฑเตเดคเตเดค เดคเดพเดฑเดพเดตเต, JFrog Xray, เดธเตเดจเดฟเด•เต, 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-เตฝ เด†เดถเตเดฐเดฟเดคเดคเตเดตเด‚ เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเด•

เดจเดพเดฒเดพเดฎเดคเตเดคเต† เดธเตเด•เตเดฐเต€เตปเดทเต‹เดŸเตเดŸเต Commons-fileupload-1.3.2.jar-เดจเตเดฑเต† เดตเดฟเดถเดฆเดพเด‚เดถเด™เตเด™เดณเดพเดฃเต. CVE เดฒเต†เดตเดฒเตเด•เตพ 7.5 เด‰เด‚ 9.8 เด‰เด‚ เด†เดฃเต†เดจเตเดจเต เดจเดฎเตเดฎเตพ เด•เดพเดฃเตเดจเตเดจเต.

เด‰เดชเดฏเต‹เด—เดฟเดšเตเดš เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เตพเด•เตเด•เดพเดฏเดฟ เดฆเตเตผเดฌเดฒเดค เดธเตเด•เดพเดจเตผ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต - GitlabCI-เตฝ เด†เดถเตเดฐเดฟเดคเดคเตเดตเด‚ เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเด•

เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด—เดฟเดฑเตเดฑเตโ€Œเดฒเดพเดฌเต เดชเต‡เดœเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดฎเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เด…เดคเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดฟเดฒเตเดฒ - เดตเต€เดฃเตเดชเต‹เดฏ เด’เดฐเต เดŸเดพเดธเตโ€Œเด•เต เด’เดฐเต เดชเตเดฐเดพเดตเดธเตเดคเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดฟเดฒเตเดฒ.

เด‰เดฆเดพเดนเดฐเดฃเด‚ เด‡เดตเดฟเดŸเต† 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 Vulnerability Database (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

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•