Is e pàirt chudromach de riaghladh so-leòntachd a bhith a’ tuigsinn agus a’ dèanamh cinnteach à sèine solair nam pàirtean bathar-bog a tha a’ dèanamh suas siostaman an latha an-diugh. Bidh sgiobaidhean Agile agus DevOps a’ dèanamh feum farsaing de leabharlannan agus frèaman stòr fosgailte gus ùine leasachaidh agus cosgais a lughdachadh. Ach tha eas-bhuannachdan aig a’ bhonn seo cuideachd: an cothrom mearachdan agus so-leòntachd dhaoine eile a shealbhachadh.
Gu dearbh, bu chòir don sgioba a bhith cinnteach gum bi fios aca dè na pàirtean stòr fosgailte a tha air an toirt a-steach do na tagraidhean aca, dèanamh cinnteach gu bheil dreachan earbsach aithnichte air an luchdachadh sìos bho stòran earbsach aithnichte, agus luchdaich sìos dreachan ùraichte de cho-phàirtean às deidh do chugallachd a chaidh a lorg às ùr a bhith air am pasgadh.
Anns an dreuchd seo, seallaidh sinn ri cleachdadh OWASP Dependency Check gus casg a chuir air togalach ma lorgas e fìor dhuilgheadasan leis a’ chòd agad.
Anns an leabhar “Development Security in Agile Projects” tha e air a mhìneachadh mar a leanas. Is e sganair an-asgaidh a th’ ann an OWASP Dependency Check a bhios a’ catalogadh a h-uile pàirt stòr fosgailte a thathas a’ cleachdadh ann an tagradh agus a sheallas na so-leòntachd a tha annta. Tha dreachan ann airson Java, .NET, Ruby (gemspec), PHP (sgrìobhadair-ciùil), Node.js agus Python, a bharrachd air cuid de phròiseactan C/C ++. Bidh Sgrùdadh Dependency a’ fighe a-steach le innealan togail cumanta, a’ toirt a-steach Ant, Maven agus Gradle, agus frithealaichean amalachaidh leantainneach mar Jenkins.
Bidh Sgrùdadh eisimeileachd ag aithris air a h-uile pàirt le so-leòntachd aithnichte bho Stòr-dàta So-leòntachd Nàiseanta NIST (NVD) agus tha e air ùrachadh le dàta bho bhiadhan naidheachdan NVD.
Gu fortanach, faodar seo uile a dhèanamh gu fèin-ghluasadach le bhith a’ cleachdadh innealan leithid pròiseact Sgrùdadh eisimeileachd OWASP no prògraman malairteach mar
Faodar na h-innealan sin a thoirt a-steach do phìoban togail gus eisimeileachd stòr fosgailte a chlàradh gu fèin-ghluasadach, dreachan seann-fhasanta de leabharlannan agus leabharlannan anns a bheil so-leòntachd aithnichte a chomharrachadh, agus casg a chuir air togail ma lorgar fìor dhuilgheadasan.
Sgrùdadh eisimeileachd OWASP
Gus deuchainn agus sealltainn mar a tha Sgrùdadh Dependency ag obair, bidh sinn a’ cleachdadh an stòr-dàta seo
Gus an aithisg HTML fhaicinn, feumaidh tu am frithealaiche lìn nginx a rèiteachadh air an ruitheadair gitlab agad.
Eisimpleir de cho-dhealbhadh nginx as ìsle:
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 {
}
}
Aig deireadh a’ cho-chruinneachaidh chì thu an dealbh seo:
Lean an ceangal agus faic an aithisg Sgrùdadh Dependency.
Is e a’ chiad dealbh-sgrìn am pàirt as àirde den aithisg le geàrr-chunntas.
Mion-fhiosrachadh an dàrna dealbh-sgrìn CVE-2017-5638. An seo chì sinn ìre CVE agus ceanglaichean gu cleachdaidhean.
Is e an treas dealbh mion-fhiosrachadh mu log4j-api-2.7.jar. Chì sinn gur e ìrean CVE 7.5 agus 9.8.
Is e an ceathramh dealbh-sgrìn mion-fhiosrachadh commons-fileupload-1.3.2.jar. Chì sinn gur e ìrean CVE 7.5 agus 9.8.
Ma tha thu airson duilleagan gitlab a chleachdadh, chan obraich e - cha chruthaich gnìomh a thuit artifact.
Eisimpleir an seo
Tog toradh: chan eil artifacts ann, chan eil mi a’ faicinn an aithisg html. Bu chòir dhut feuchainn Artifact: an-còmhnaidh
A’ riaghladh ìre so-leòntachd CVE
An loidhne as cudromaiche san fhaidhle gitlab-ci.yaml:
mvn $MAVEN_CLI_OPTS test org.owasp:dependency-check-maven:check -DfailBuildOnCVSS=7
Le paramadair failBuildOnCVSS faodaidh tu an ìre de chugallachd CVE atharrachadh ris am feum thu freagairt.
A’ luchdachadh sìos Stòr-dàta So-leòntachd NIST (NVD) bhon eadar-lìn
An do mhothaich thu gu bheil NIST an-còmhnaidh a’ luchdachadh sìos stòran-dàta so-leòntachd NIST (NVD) bhon eadar-lìn:
Gus luchdachadh sìos, faodaidh tu an goireas a chleachdadh
Leig leinn a stàladh agus a chuir air bhog.
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
Bidh Nist-data-mirror a’ luchdachadh suas an NIST JSON CVE gu /var/www/repos/nist-data-mirror/ nuair a thòisicheas iad agus ag ùrachadh an dàta gach 24 uair.
Gus CVE JSON NIST a luchdachadh sìos, feumaidh tu am frithealaiche lìn nginx a rèiteachadh (mar eisimpleir, air do gitlab-runner).
Eisimpleir de cho-dhealbhadh nginx as ìsle:
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 {
}
}
Gus nach dèan sinn loidhne fhada far an tèid mvn a chur air bhog, gluaisidh sinn na paramadairean gu caochladair air leth DEPENDENCY_OPTS.
Seallaidh an rèiteachadh as lugha mu dheireadh .gitlab-ci.yml mar seo:
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