рдЕрд╕реБрд░рдХреНрд╖рд┐рддрддрд╛ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдирд╛рдЪрд╛ рдПрдХ рдорд╣рддреНрддреНрд╡рд╛рдЪрд╛ рднрд╛рдЧ рдореНрд╣рдгрдЬреЗ рдЖрдзреБрдирд┐рдХ рдкреНрд░рдгрд╛рд▓реА рдмрдирд╡рд┐рдгрд╛рд▒реНрдпрд╛ рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░ рдШрдЯрдХрд╛рдВрдЪреА рдкреБрд░рд╡рдард╛ рд╕рд╛рдЦрд│реА рдкреВрд░реНрдгрдкрдгреЗ рд╕рдордЬреВрди рдШреЗрдгреЗ рдЖрдгрд┐ рд╕реБрд░рдХреНрд╖рд┐рдд рдХрд░рдгреЗ. рдЪрдкрд│ рдЖрдгрд┐ DevOps рдХрд╛рд░реНрдпрд╕рдВрдШ рд╡рд┐рдХрд╛рд╕ рд╡реЗрд│ рдЖрдгрд┐ рдЦрд░реНрдЪ рдХрдореА рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдореБрдХреНрдд рд╕реНрддреНрд░реЛрдд рд▓рд╛рдпрдмреНрд░рд░реА рдЖрдгрд┐ рдлреНрд░реЗрдорд╡рд░реНрдХрдЪрд╛ рд╡реНрдпрд╛рдкрдХ рд╡рд╛рдкрд░ рдХрд░рддрд╛рдд. рдкрд░рдВрддреБ рдпрд╛ рдкрджрдХрд╛рд▓рд╛ рдПрдХ рдирдХрд╛рд░рд╛рддреНрдордХ рдмрд╛рдЬреВ рджреЗрдЦреАрд▓ рдЖрд╣реЗ: рдЗрддрд░ рд▓реЛрдХрд╛рдВрдЪреНрдпрд╛ рдЪреБрдХрд╛ рдЖрдгрд┐ рдЕрд╕реБрд░рдХреНрд╖рд╛ рд╡рд╛рд░рд╢рд╛рдиреЗ рдШреЗрдгреНрдпрд╛рдЪреА рд╕рдВрдзреА.
рд╕рд╛рд╣рдЬрд┐рдХрдЪ, рд╕рдВрдШрд╛рдиреЗ рддреНрдпрд╛рдЪреНрдпрд╛ рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рдордзреНрдпреЗ рдХреЛрдгрддреЗ рдУрдкрди рд╕реЛрд░реНрд╕ рдШрдЯрдХ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХреЗрд▓реЗ рдЖрд╣реЗрдд рд╣реЗ рдЬрд╛рдгреВрди рдШреЗрдгреЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХреЗрд▓реЗ рдкрд╛рд╣рд┐рдЬреЗ, рдЬреНрдЮрд╛рдд рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдЖрд╡реГрддреНрддреНрдпрд╛ рдЬреНрдЮрд╛рдд рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╕реНрддреНрд░реЛрддрд╛рдВрдХрдбреВрди рдбрд╛рдЙрдирд▓реЛрдб рдХреЗрд▓реНрдпрд╛ рдЧреЗрд▓реНрдпрд╛ рдЖрд╣реЗрдд рдпрд╛рдЪреА рдЦрд╛рддреНрд░реА рдХрд░рд╛ рдЖрдгрд┐ рдирд╡реАрди рд╢реЛрдзрд▓реЗрд▓реНрдпрд╛ рднреЗрджреНрдпрддрд╛ рдкреЕрдЪ рдЭрд╛рд▓реНрдпрд╛рдирдВрддрд░ рдШрдЯрдХрд╛рдВрдЪреНрдпрд╛ рдЕрджреНрдпрддрдирд┐рдд рдЖрд╡реГрддреНрддреНрдпрд╛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рд╛.
рдпрд╛ рдкреЛрд╕реНрдЯрдордзреНрдпреЗ, рддреБрдордЪреНрдпрд╛ рдХреЛрдбрдордзреНрдпреЗ рдЧрдВрднреАрд░ рд╕рдорд╕реНрдпрд╛ рдЖрдврд│рд▓реНрдпрд╛рд╕ рдмрд┐рд▓реНрдб рд░рджреНрдж рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдореНрд╣реА OWASP рдбрд┐рдкреЗрдВрдбрдиреНрд╕реА рдЪреЗрдХ рд╡рд╛рдкрд░рдгрд╛рд░ рдЖрд╣реЛрдд.
"рдбреЗрд╡реНрд╣рд▓рдкрдореЗрдВрдЯ рд╕рд┐рдХреНрдпреБрд░рд┐рдЯреА рдЗрди рдПрдЬрд╛рдЗрд▓ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕" рдпрд╛ рдкреБрд╕реНрддрдХрд╛рдд рдЦрд╛рд▓реАрд▓рдкреНрд░рдорд╛рдгреЗ рд╡рд░реНрдгрди рдХреЗрд▓реЗ рдЖрд╣реЗ. OWASP рдбрд┐рдкреЗрдВрдбрдиреНрд╕реА рдЪреЗрдХ рд╣реЗ рдПрдХ рд╡рд┐рдирд╛рдореВрд▓реНрдп рд╕реНрдХреЕрдирд░ рдЖрд╣реЗ рдЬреЗ рдНрдкреНрд▓рд┐рдХреЗрд╢рдирдордзреНрдпреЗ рд╡рд╛рдкрд░рд▓реЗрд▓реЗ рд╕рд░реНрд╡ рдУрдкрди рд╕реЛрд░реНрд╕ рдШрдЯрдХ рдХреЕрдЯрд▓реЙрдЧ рдХрд░рддреЗ рдЖрдгрд┐ рддреНрдпрд╛рдд рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рднреЗрджреНрдпрддрд╛ рджрд╛рдЦрд╡рддреЗ. Java, .NET, Ruby (gemspec), PHP (рд╕рдВрдЧреАрддрдХрд╛рд░), Node.js рдЖрдгрд┐ Python, рддрд╕реЗрдЪ рдХрд╛рд╣реА C/C++ рдкреНрд░рдХрд▓реНрдкрд╛рдВрд╕рд╛рдареА рдЖрд╡реГрддреНрддреНрдпрд╛ рдЖрд╣реЗрдд. рдбрд┐рдкреЗрдВрдбрдиреНрд╕реА рдЪреЗрдХ рдЕрдБрдЯ, рдореЕрд╡реЗрди рдЖрдгрд┐ рдЧреНрд░реЕрдбрд▓ рдЖрдгрд┐ рдЬреЗрдирдХрд┐рдиреНрд╕ рд╕рд╛рд░рдЦреНрдпрд╛ рд╕рддрдд рдПрдХреАрдХрд░рдг рд╕рд░реНрд╡реНрд╣рд░рд╕рд╣ рд╕рд╛рдорд╛рдиреНрдп рдмрд┐рд▓реНрдб рдЯреВрд▓реНрд╕рд╕рд╣ рдПрдХрддреНрд░рд┐рдд рд╣реЛрддреЗ.
рдбрд┐рдкреЗрдВрдбрдиреНрд╕реА рдЪреЗрдХ NIST рдЪреНрдпрд╛ рдиреЕрд╢рдирд▓ рд╡реНрд╣рд▓реНрдиреЗрд░реЗрдмрд┐рд▓рд┐рдЯреА рдбреЗрдЯрд╛рдмреЗрд╕ (NVD) рд╡рд░реВрди рдЬреНрдЮрд╛рдд рднреЗрджреНрдпрддрд╛ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд╕рд░реНрд╡ рдШрдЯрдХрд╛рдВрдЪрд╛ рдЕрд╣рд╡рд╛рд▓ рджреЗрддреЛ рдЖрдгрд┐ NVD рдиреНрдпреВрдЬ рдлреАрдбреНрд╕рдордзреАрд▓ рдбреЗрдЯрд╛рд╕рд╣ рдЕрджреНрдпрддрдирд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ.
рд╕реБрджреИрд╡рд╛рдиреЗ, рд╣реЗ рд╕рд░реНрд╡ рдУрдбрдмреНрд▓реНрдпреВрдПрдПрд╕рдкреА рдбрд┐рдкреЗрдВрдбреЗрдВрд╕реА рдЪреЗрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд┐рдВрд╡рд╛ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╕рд╛рд░рдЦреНрдпрд╛ рд╕рд╛рдзрдирд╛рдВрдЪрд╛ рд╡рд╛рдкрд░ рдХрд░реВрди рд╕реНрд╡рдпрдВрдЪрд▓рд┐рддрдкрдгреЗ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ.
рд╣реА рд╕рд╛рдзрдиреЗ рдУрдкрди рд╕реЛрд░реНрд╕ рдЕрд╡рд▓рдВрдмрдирд╛рдВрдЪреА рдЖрдкреЛрдЖрдк рдпрд╛рджреА рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдмрд┐рд▓реНрдб рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдордзреНрдпреЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХреЗрд▓реА рдЬрд╛рдК рд╢рдХрддрд╛рдд, рдЬреНрдЮрд╛рдд рдЕрд╕реБрд░рдХреНрд╖рд╛ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд▓рд╛рдпрдмреНрд░рд░реА рдЖрдгрд┐ рд▓рд╛рдпрдмреНрд░рд░реАрдВрдЪреНрдпрд╛ рдХрд╛рд▓рдмрд╛рд╣реНрдп рдЖрд╡реГрддреНрддреНрдпрд╛ рдУрд│рдЦрд╛ рдЖрдгрд┐ рдЧрдВрднреАрд░ рд╕рдорд╕реНрдпрд╛ рдЖрдврд│рд▓реНрдпрд╛рд╕ рдмрд┐рд▓реНрдб рд░рджреНрдж рдХрд░рд╛.
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 {
}
}
рд╕рдВрдореЗрд▓рдирд╛рдЪреНрдпрд╛ рд╢реЗрд╡рдЯреА рдЖрдкрдг рд╣реЗ рдЪрд┐рддреНрд░ рдкрд╛рд╣реВ рд╢рдХрддрд╛:
рджреБрд╡реНрдпрд╛рдЪреЗ рдЕрдиреБрд╕рд░рдг рдХрд░рд╛ рдЖрдгрд┐ рдЕрд╡рд▓рдВрдмрди рддрдкрд╛рд╕рдгреА рдЕрд╣рд╡рд╛рд▓ рдкрд╣рд╛.
рдкрд╣рд┐рд▓рд╛ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд╣рд╛ рд╕рд╛рд░рд╛рдВрд╢рд╛рд╕рд╣ рдЕрд╣рд╡рд╛рд▓рд╛рдЪрд╛ рд╡рд░рдЪрд╛ рднрд╛рдЧ рдЖрд╣реЗ.
рджреБрд╕рд░рд╛ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рддрдкрд╢реАрд▓ CVE-2017-5638. рдпреЗрдереЗ рдЖрдкрдг CVE рдкрд╛рддрд│реА рдЖрдгрд┐ рд╢реЛрд╖рдгрд╛рдВрдЪреЗ рджреБрд╡реЗ рдкрд╛рд╣рддреЛ.
рддрд┐рд╕рд░рд╛ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ log4j-api-2.7.jar рдЪрд╛ рддрдкрд╢реАрд▓ рдЖрд╣реЗ. рдЖрдореНрд╣реА рдкрд╛рд╣рддреЛ рдХреА CVE рдкрд╛рддрд│реА 7.5 рдЖрдгрд┐ 9.8 рдЖрд╣реЗрдд.
рдЪреМрдерд╛ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ Commons-fileupload-1.3.2.jar рдЪрд╛ рддрдкрд╢реАрд▓ рдЖрд╣реЗ. рдЖрдореНрд╣реА рдкрд╛рд╣рддреЛ рдХреА CVE рдкрд╛рддрд│реА 7.5 рдЖрдгрд┐ 9.8 рдЖрд╣реЗрдд.
рдЬрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рдЧрд┐рдЯрд▓реЕрдм рдкреГрд╖реНрдареЗ рд╡рд╛рдкрд░рд╛рдпрдЪреА рдЕрд╕рддреАрд▓ рддрд░ рддреЗ рдХрд╛рд░реНрдп рдХрд░рдгрд╛рд░ рдирд╛рд╣реА - рдкрдбрд▓реЗрд▓реНрдпрд╛ рдХрд╛рд░реНрдпрд╛рдореБрд│реЗ рдЖрд░реНрдЯрд┐рдлреЕрдХреНрдЯ рддрдпрд╛рд░ рд╣реЛрдгрд╛рд░ рдирд╛рд╣реА.
рдпреЗрдереЗ рдЙрджрд╛рд╣рд░рдг
рдЖрдЙрдЯрдкреБрдЯ рддрдпрд╛рд░ рдХрд░рд╛: рдХреЛрдгрддреАрд╣реА рдХрд▓рд╛рдХреГрддреА рдирд╛рд╣реА, рдорд▓рд╛ html рдЕрд╣рд╡рд╛рд▓ рджрд┐рд╕рдд рдирд╛рд╣реА. рддреБрдореНрд╣реА рдЖрд░реНрдЯрд┐рдлреЕрдХреНрдЯ рд╡рд╛рдкрд░реВрди рдкрд╣рд╛: рдиреЗрд╣рдореА
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) рдЗрдВрдЯрд░рдиреЗрдЯрд╡рд░реВрди рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддреЗ:
рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдкрдг рдЙрдкрдпреБрдХреНрддрддрд╛ рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛
рдЪрд▓рд╛ рддреЗ рд╕реНрдерд╛рдкрд┐рдд рдЖрдгрд┐ рд▓реЙрдиреНрдЪ рдХрд░реВрдпрд╛.
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
рд╕реНрддреНрд░реЛрдд: www.habr.com