рднреЗрджреНрдпрддрд╛ рдкреНрд░рдмрдВрдзрди рдХрд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣рд┐рд╕реНрд╕рд╛ рдЙрди рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдШрдЯрдХреЛрдВ рдХреА рдЖрдкреВрд░реНрддрд┐ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХреЛ рд╕рдордЭрдирд╛ рдФрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рд╣реИ рдЬреЛ рдЖрдзреБрдирд┐рдХ рд╕рд┐рд╕реНрдЯрдо рдмрдирд╛рддреЗ рд╣реИрдВред рдЪреБрд╕реНрдд рдЯреАрдо рдФрд░ DevOps рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╕рдордп рдФрд░ рд▓рд╛рдЧрдд рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреБрд▓реЗ рд╕реНрд░реЛрдд рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдФрд░ рдЪреМрдЦрдЯреЛрдВ рдХрд╛ рд╡реНрдпрд╛рдкрдХ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЗрд╕ рдкрджрдХ рдореЗрдВ рдПрдХ рдирдХрд╛рд░рд╛рддреНрдордХ рдкрд╣рд▓реВ рд╣реИ: рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреА рдЧрд▓рддрд┐рдпреЛрдВ рдФрд░ рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред
рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдЯреАрдо рдХреЛ рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЙрд╕рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдХреМрди рд╕реЗ рдЦреБрд▓реЗ рд╕реНрд░реЛрдд рдШрдЯрдХ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЬреНрдЮрд╛рдд рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╕реНрд░реЛрддреЛрдВ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдП, рдФрд░ рдирдП рдЦреЛрдЬреЗ рдЧрдП рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдШрдЯрдХреЛрдВ рдХреЗ рдЕрдкрдбреЗрдЯ рдХрд┐рдП рдЧрдП рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВред
рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ, рд╣рдо OWASP рдбрд┐рдкреЗрдВрдбреЗрдВрд╕реА рдЪреЗрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдПрдХ рдирд┐рд░реНрдорд╛рдг рдХреЛ рдмрд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреЗрдЦреЗрдВрдЧреЗ рдпрджрд┐ рдпрд╣ рдЖрдкрдХреЗ рдХреЛрдб рдХреЗ рд╕рд╛рде рдЧрдВрднреАрд░ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддрд╛ рд╣реИред
рдкреБрд╕реНрддрдХ "рдПрдЬрд╛рдЗрд▓ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рд╕рд┐рдХреНрдпреЛрд░рд┐рдЯреА" рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╡рд░реНрдгрд┐рдд рд╣реИред OWASP рдирд┐рд░реНрднрд░рддрд╛ рдЬрд╛рдБрдЪ рдПрдХ рдирд┐рд╢реБрд▓реНрдХ рд╕реНрдХреИрдирд░ рд╣реИ рдЬреЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рд╕рднреА рдЦреБрд▓реЗ рд╕реНрд░реЛрдд рдШрдЯрдХреЛрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрдирдореЗрдВ рдореМрдЬреВрдж рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реИред рдЬрд╛рд╡рд╛, .NET, рд░реВрдмреА (рд░рддреНрди), PHP (рд╕рдВрдЧреАрддрдХрд╛рд░), Node.js рдФрд░ рдкрд╛рдпрдерди рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдХреБрдЫ C / C ++ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рд╕рдВрд╕реНрдХрд░рдг рд╣реИрдВред рдирд┐рд░реНрднрд░рддрд╛ рдЬрд╛рдБрдЪ рдЪреАрдВрдЯреА, рдорд╛рд╡реЗрди рдФрд░ рдЧреНрд░реИрдбрд▓ рдЬреИрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдмрд┐рд▓реНрдб рдЯреВрд▓реНрд╕ рдХреЗ рд╕рд╛рде рдПрдХреАрдХреГрдд рд╣реЛрддреА рд╣реИ, рдФрд░ рдЬреЗрдирдХреАрдВрд╕ рдЬреИрд╕реЗ рдирд┐рд░рдВрддрд░ рдПрдХреАрдХрд░рдг рд╕рд░реНрд╡рд░ред
рдирд┐рд░реНрднрд░рддрд╛ рдПрдирдЖрдИрдПрд╕рдЯреА рдиреЗрд╢рдирд▓ рд╡рд▓реНрдиреЗрд░реЗрдмрд┐рд▓рд┐рдЯреА рдбреЗрдЯрд╛рдмреЗрд╕ (рдПрдирд╡реАрдбреА) рд╕реЗ рдЬреНрдЮрд╛рдд рднреЗрджреНрдпрддрд╛ рд╡рд╛рд▓реЗ рд╕рднреА рдШрдЯрдХреЛрдВ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддреА рд╣реИ рдФрд░ рдПрдирд╡реАрдбреА рдиреНрдпреВрдЬ рдЪреИрдирд▓реЛрдВ рдХреЗ рдбреЗрдЯрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрдкрдбреЗрдЯ рдХреА рдЬрд╛рддреА рд╣реИред
рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рд╕рдм OWASP рдбрд┐рдкреЗрдВрдбреЗрдВрд╕реА рдЪреЗрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЬреИрд╕реЗ рдЙрдкрдХрд░рдг рдпрд╛ рдмреНрд▓реИрдХ рдбрдХ , JFrog Xray , Snyk , Sonatype рдХреЗ Nexus Lifecycle , рдпрд╛ SourceClear рдЬреИрд╕реЗ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЗрди рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдЕрд╕реЗрдВрдмрд▓реА рдкрд╛рдЗрдкрд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╡реЗ рдПрдХ рдЦреБрд▓реЗ рд╕реНрд░реЛрдд рдирд┐рд░реНрднрд░рддрд╛ рд╕реВрдЪреА рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░ рд╕рдХреЗрдВ, рдЙрди рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдФрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдЕрдкреНрд░рдЪрд▓рд┐рдд рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░реЗрдВ рдЬрд┐рдирдореЗрдВ рдЬреНрдЮрд╛рдд рдХрдордЬреЛрд░рд┐рдпрд╛рдВ рд╣реИрдВ, рдФрд░ рдпрджрд┐ рдЧрдВрднреАрд░ рд╕рдорд╕реНрдпрд╛рдПрдВ рдкрд╛рдИ рдЬрд╛рддреА рд╣реИрдВ рддреЛ рдирд┐рд░реНрдорд╛рдг рдХреЛ рдмрд╛рдзрд┐рдд рдХрд░реЗрдВред
OWASP рдирд┐рд░реНрднрд░рддрд╛ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ
рдпрд╣ рдЬрд╛рдБрдЪрдиреЗ рдФрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдбрд┐рдкреЗрдВрдбреЗрдВрд╕реА рдЪреЗрдХ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд╣рдо рдЗрд╕ рдирд┐рд░реНрднрд░рддрд╛-рдЪреЗрдХ-рдЙрджрд╛рд╣рд░рдг рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
HTML рд░рд┐рдкреЛрд░реНрдЯ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЕрдкрдиреЗ 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 { } }
рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рдЕрдВрдд рдореЗрдВ, рдЖрдк рдЗрд╕ рддрд╕реНрд╡реАрд░ рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:

рд╣рдо рд▓рд┐рдВрдХ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╣рдо рд░рд┐рдкреЛрд░реНрдЯ рдбрд┐рдкреЗрдВрдбреЗрдВрд╕реА рдЪреЗрдХ рджреЗрдЦрддреЗ рд╣реИрдВред
рдкрд╣рд▓рд╛ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд╕рд╛рд░рд╛рдВрд╢ рдХреЗ рд╕рд╛рде рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рд╕рдмрд╕реЗ рдКрдкрд░ рд╣реИред

рджреВрд╕рд░рд╛ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд╡рд┐рд╡рд░рдг CVE-2017-5638ред рдпрд╣рд╛рдВ рд╣рдо рд╕реАрд╡реАрдИ рд╕реНрддрд░ рдФрд░ рдХрд╛рд░рдирд╛рдореЛрдВ рдХреЗ рд▓рд┐рдВрдХ рджреЗрдЦрддреЗ рд╣реИрдВред

рддреАрд╕рд░рд╛ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ log4j-api-2.7.jar рдХрд╛ рд╡рд┐рд╡рд░рдг рд╣реИред рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╕реАрд╡реАрдИ 7.5 рдФрд░ 9.8 рдХрд╛ рд╕реНрддрд░ред

рдЪреМрдерд╛ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ - рдХреЙрдордиреНрд╕-рдлрд╛рдЗрд▓рдЕрдкрд▓реЛрдб-1.3.2.jar рдХрд╛ рд╡рд┐рд╡рд░рдгред рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╕реАрд╡реАрдИ 7.5 рдФрд░ 9.8 рдХрд╛ рд╕реНрддрд░ред

рдпрджрд┐ рдЖрдк gitlab рдкреГрд╖реНрдареЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ - рдПрдХ рдЧрд┐рд░рд╛ рд╣реБрдЖ рдХрд╛рд░реНрдп рдПрдХ рд╡рд┐рд░реВрдкрдг рд╕рд╛рдХреНрд╖реНрдп рдирд╣реАрдВ рдмрдирд╛рдПрдЧрд╛ред
рдПрдХ рдЙрджрд╛рд╣рд░рдг рдпрд╣рд╛рдБ рд╣реИ https://gitlab.com/anton_patsev/d dependency- check-example- gitlab-pages ред
рдЕрд╕реЗрдВрдмрд▓реА рдирд┐рд╖реНрдХрд░реНрд╖: рдХреЛрдИ рдХрд▓рд╛рдХреГрддрд┐рдпрд╛рдБ рдирд╣реАрдВ рд╣реИрдВ, рдореИрдВ html рд░рд┐рдкреЛрд░реНрдЯ рдирд╣реАрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдБред рд╣рдореЗрдВ рдЖрд░реНрдЯрд╡рд░реНрдХ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП: рд╣рдореЗрд╢рд╛
https://gitlab.com/anton_patsev/dependency-check-example-gitlab-pages/-/jobs/400004246

CVE рднреЗрджреНрдпрддрд╛ рдкреНрд░рдмрдВрдзрди
Gitlab-ci.yaml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкрдВрдХреНрддрд┐:
mvn $MAVEN_CLI_OPTS test org.owasp:dependency-check-maven:check -DfailBuildOnCVSS=7
рд╡рд┐рдлрд▓рддрд╛рдмреНрдпреВрд▓реНрдбрдСрди рд╕реАрд╡реАрдПрд╕рдПрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде, рдЖрдк рд╕реАрд╡реАрдИ рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреЗ рд╕реНрддрд░ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдкрдХреЛ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдПрдирдЖрдИрдПрд╕рдЯреА рднреЗрджреНрдпрддрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ (рдПрдирд╡реАрдбреА) рдПрдирдЖрдИрдПрд╕рдЯреА рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ
рдЖрдкрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдЖрдк рд▓рдЧрд╛рддрд╛рд░ рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗ NIST рднреЗрджреНрдпрддрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ (NVD) рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд░рд╣реЗ рд╣реИрдВ:

рдЖрдк рдбрд╛рдЙрдирд▓реЛрдб рдХреЗ рд▓рд┐рдП 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 / at рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдФрд░ рд╣рд░ 24 рдШрдВрдЯреЗ рдореЗрдВ рдбреЗрдЯрд╛ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИред
CVE JSON NIST рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ 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 { } }
рдПрдХ рд▓рдВрдмреА рд▓рд╛рдЗрди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╣рд╛рдВ mvan рд╢реБрд░реВ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ, рд╣рдо рдПрдХ рдЕрд▓рдЧ рдЪрд░ DEPENDENCY_OPTS рдореЗрдВ рдкреИрд░рд╛рдореАрдЯрд░ рдЬрд╛рд░реА рдХрд░реЗрдВрдЧреЗред
рдЕрдВрддрд┐рдо рдиреНрдпреВрдирддрдо рд╡рд┐рдиреНрдпрд╛рд╕ .itlab-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 -Safe рд╡рд┐рдХрд╛рд╕