Ny ampahany manan-danja amin'ny fitantanana ny vulnerable dia ny fahatakarana tsara sy ny fiarovana ny rojo famatsiana ireo singa rindrambaiko izay mandrafitra ny rafitra maoderina. Ny ekipan'ny Agile sy DevOps dia mampiasa be dia be ny tranomboky sy rafitra misokatra mba hampihenana ny fotoana sy ny vidiny. Saingy manana lafy ratsiny ihany koa ity medaly ity: ny fahafahana mandova ny fahadisoan'ny hafa sy ny fahalemeny.
Mazava ho azy fa tokony ho azo antoka ny ekipa hahafantatra hoe iza amin'ireo singa loharano misokatra no ampidirina ao amin'ny fampiharana azy, miantoka fa ny dikan-teny azo antoka dia alaina avy amin'ny loharano azo antoka fantatra, ary misintona ny dikan-teny nohavaozina taorian'ny fametahana ny vulnerabilité vao haingana.
Ato amin'ity lahatsoratra ity dia hijery ny fampiasana OWASP Dependency Check hanakanana ny fananganana raha mahita olana goavana amin'ny kaody anao.
Ao amin'ny boky "Development Security in Agile Projects" dia voalaza toy izao manaraka izao. OWASP Dependency Check dia scanner maimaim-poana izay mitanisa ireo singa loharano misokatra rehetra ampiasaina amin'ny fampiharana iray ary mampiseho ny vulnerability ao anatiny. Misy dikan-teny Java, .NET, Ruby (gemspec), PHP (composer), Node.js ary Python, ary koa ho an'ny tetikasa C/C++ sasany. Ny Dependency Check dia mitambatra amin'ny fitaovana fananganana mahazatra, ao anatin'izany ny Ant, Maven ary Gradle, ary ireo lohamilina fampidirana mitohy toa an'i Jenkins.
Ny Dependency Check dia mitatitra ireo singa rehetra manana fahalemena fantatra avy amin'ny National Vulnerability Database (NVD) an'ny NIST ary havaozina miaraka amin'ny angona avy amin'ny fahana vaovao NVD.
Soa ihany fa izany rehetra izany dia azo atao mandeha ho azy amin'ny fampiasana fitaovana toy ny tetikasa OWASP Dependency Check na programa ara-barotra toy ny
Ireo fitaovana ireo dia azo ampidirina amin'ny fananganana fantsona mba hanoratana ho azy ny fiankinan-doha amin'ny loharano misokatra, hamantatra ny dikan-teny lany amin'ny tranomboky sy tranomboky misy vulnerabilities fantatra, ary manafoana ny fananganana raha misy olana lehibe hita.
OWASP fanaraha-maso miankina
Mba hitsapana sy hanehoana ny fomba fiasan'ny Dependency Check dia mampiasa ity tahiry ity izahay
Raha hijery ny tatitra HTML dia mila manamboatra ny mpizara tranonkala nginx amin'ny gitlab-runner anao ianao.
Ohatra amin'ny config nginx kely indrindra:
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 {
}
}
Any amin'ny faran'ny fivoriambe dia azonao jerena ity sary ity:
Araho ny rohy ary jereo ny tatitra momba ny Dependency Check.
Ny pikantsary voalohany dia ny tapany ambony amin'ny tatitra misy famintinana.
Ny antsipirian'ny pikantsary faharoa CVE-2017-5638. Eto isika dia mahita ny haavon'ny CVE sy ny rohy mankany amin'ny fitrandrahana.
Ny pikantsary fahatelo dia ny antsipirian'ny log4j-api-2.7.jar. Hitantsika fa ny haavon'ny CVE dia 7.5 sy 9.8.
Ny pikantsary fahefatra dia ny antsipirian'ny commons-fileupload-1.3.2.jar. Hitantsika fa ny haavon'ny CVE dia 7.5 sy 9.8.
Raha te hampiasa pejy gitlab ianao dia tsy mandeha izany - ny asa lavo dia tsy hamorona artifact.
Ohatra eto
Manangana vokatra: tsy misy artifact, tsy hitako ny tatitra html. Tokony hanandrana Artifact: foana ianao
Mandrindra ny haavon'ny vulnerability CVE
Ny tsipika manan-danja indrindra amin'ny rakitra gitlab-ci.yaml:
mvn $MAVEN_CLI_OPTS test org.owasp:dependency-check-maven:check -DfailBuildOnCVSS=7
Miaraka amin'ny parameter failBuildOnCVSS dia azonao atao ny manitsy ny haavon'ny vulnerabilities CVE izay ilainao hamaliana.
Misintona ny NIST Vulnerability Database (NVD) avy amin'ny Internet
Voamarikao ve fa ny NIST dia misintona tsy tapaka ny angona vulnerability (NVD) NIST avy amin'ny Internet:
Mba hisintonana dia azonao ampiasaina ny utility
Aleo apetraka sy atomboka izany.
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 dia mampiakatra ny NIST JSON CVE mankany /var/www/repos/nist-data-mirror/ amin'ny fanombohana ary manavao ny angona isaky ny 24 ora.
Mba hisintonana ny CVE JSON NIST dia mila manamboatra ny mpizara tranonkala nginx ianao (ohatra, amin'ny gitlab-runner anao).
Ohatra amin'ny config nginx kely indrindra:
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 {
}
}
Mba tsy hisian'ny tsipika lava izay atomboka ny mvn, dia hamindra ny masontsivana amin'ny fari-pitsipika samihafa DEPENDENCY_OPTS.
Ny config farany indrindra .gitlab-ci.yml dia ho toy izao:
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
Source: www.habr.com