Te whakamahi i te matawai whakaraeraetanga mo nga whare pukapuka kua whakamahia Te Tiakitanga-Tirohia i GitlabCI

Ko tetahi waahanga nui o te whakahaere whakaraeraetanga ko te maarama me te whakamau i te mekameka tuku o nga waahanga rorohiko e hanga ana i nga punaha hou. Ka whakamahia e nga roopu Agile me DevOps nga wharepukapuka tuwhera me nga anga hei whakaiti i te wa whanaketanga me te utu. Engari he painga ano tenei mētara: ko te whai waahi ki te tuku i nga hapa me nga whakaraeraetanga o etahi atu.

Ko te tikanga, me tino mohio te roopu ko nga waahanga puna tuwhera kei roto i ana tono, me whakarite kia tangohia nga putanga pono e mohiotia ana mai i nga puna pono e mohiotia ana, me te tango i nga putanga whakahou o nga waahanga i muri i te whakaraeraetanga o nga whakaraeraetanga hou kua kitea.

I tenei pou, ka titiro tatou ki te whakamahi i te OWASP Dependency Check ki te whakakore i te hanga ki te kitea he raru nui ki to waehere.

I roto i te pukapuka "Development Security in Agile Projects" e whakaahuatia ana e whai ake nei. Ko te OWASP Dependency Check he matawai kore utu e tuhi ana i nga waahanga puna tuwhera katoa e whakamahia ana i roto i tetahi tono me te whakaatu i nga whakaraeraetanga kei roto. He putanga mo Java, .NET, Ruby (gemspec), PHP (composer), Node.js me Python, me etahi kaupapa C/C++. Ko te Tirohanga Tirohanga ka uru ki nga taputapu hanga noa, tae atu ki te Ant, Maven me Gradle, me nga tūmau whakauru tonu pera i a Jenkins.

Ko te Tirohanga Tirohanga e whakaatu ana i nga waahanga katoa e mohiotia ana he whakaraeraetanga mai i te National Vulnerability Database (NVD) a NIST, ka whakahoutia me nga raraunga mai i nga purongo korero NVD.

Waimarie, ka taea te mahi aunoa ma te whakamahi taputapu penei i te OWASP Dependency Check kaupapa me nga kaupapa arumoni penei Parera Pango, JFrog Xray, Snyk, Huringa Ora Nexus Sonatype ranei PunaMaama.

Ka taea e enei taputapu te whakauru ki roto i te hanga paipa ki te whakariterite aunoa i nga whakawhirinakitanga puna tuwhera, te tautuhi i nga putanga tawhito o nga whare pukapuka me nga wharepukapuka kei roto nga whakaraeraetanga e mohiotia ana, me te whakakore i nga hangahanga mena ka kitea nga raru nui.

OWASP Tirohanga Tirohanga

Hei whakamatautau me te whakaatu i te mahi a te Tirohanga Tirohanga, ka whakamahia e matou tenei putunga whakawhirinaki-taki-tauira.

Hei tiro i te ripoata HTML, me whirihora e koe te tūmau tukutuku nginx i runga i to gitlab-runner.

He tauira o te whirihora nginx iti:

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 {
    }
}

I te mutunga o te huihuinga ka kite koe i tenei pikitia:

Te whakamahi i te matawai whakaraeraetanga mo nga whare pukapuka kua whakamahia Te Tiakitanga-Tirohia i GitlabCI

Whaia te hono ka kite i te ripoata Tirohanga Tirohanga.

Ko te whakaahua tuatahi ko te waahanga o runga o te ripoata me te whakarāpopototanga.

Te whakamahi i te matawai whakaraeraetanga mo nga whare pukapuka kua whakamahia Te Tiakitanga-Tirohia i GitlabCI

Nga korero whakaahua tuarua CVE-2017-5638. I konei ka kite tatou i te taumata CVE me nga hononga ki nga mahi.

Te whakamahi i te matawai whakaraeraetanga mo nga whare pukapuka kua whakamahia Te Tiakitanga-Tirohia i GitlabCI

Ko te whakaahua tuatoru ko nga korero mo te log4j-api-2.7.jar. Ka kite matou ko nga taumata CVE ko 7.5 me te 9.8.

Te whakamahi i te matawai whakaraeraetanga mo nga whare pukapuka kua whakamahia Te Tiakitanga-Tirohia i GitlabCI

Ko te whakaahua tuawha ko nga korero mo commons-fileupload-1.3.2.jar. Ka kite matou ko nga taumata CVE ko 7.5 me te 9.8.

Te whakamahi i te matawai whakaraeraetanga mo nga whare pukapuka kua whakamahia Te Tiakitanga-Tirohia i GitlabCI

Mena kei te pirangi koe ki te whakamahi i nga wharangi gitlab, karekau e mahi - karekau te mahi kua hinga e hanga i tetahi taonga.

Tauira konei https://gitlab.com/anton_patsev/dependency-check-example-gitlab-pages.

Hangaia te putanga: kaore he taonga, kaore au e kite i te ripoata html. Me whakamatau koe i te Artifact: i nga wa katoa

https://gitlab.com/anton_patsev/dependency-check-example-gitlab-pages/-/jobs/400004246

Te whakamahi i te matawai whakaraeraetanga mo nga whare pukapuka kua whakamahia Te Tiakitanga-Tirohia i GitlabCI

Te whakahaere i te taumata o nga whakaraeraetanga CVE

Ko te raina tino nui i te konae gitlab-ci.yaml:

mvn $MAVEN_CLI_OPTS test org.owasp:dependency-check-maven:check -DfailBuildOnCVSS=7

Ma te tawhā failBuildOnCVSS ka taea e koe te whakatika i te taumata o nga whakaraeraetanga CVE e hiahia ana koe ki te whakautu.

Tikiake ana i te NIST Vulnerability Database (NVD) mai i te Ipurangi

Kua kite koe kei te tango tonu a NIST i nga paaunga whakaraeraetanga NIST (NVD) mai i te Ipurangi:

Te whakamahi i te matawai whakaraeraetanga mo nga whare pukapuka kua whakamahia Te Tiakitanga-Tirohia i GitlabCI

Hei tango, ka taea e koe te whakamahi i te taputapu nist_data_mirror_golang

Kia tāuta me te whakarewa i te reira.

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

Ka tukuna e Nist-data-mirror te NIST JSON CVE ki /var/www/repos/nist-data-mirror/ i te tiimatanga me te whakahou i nga raraunga ia 24 haora.

Hei tango i te CVE JSON NIST, me whirihora e koe te tūmau tukutuku nginx (hei tauira, i runga i to gitlab-runner).

He tauira o te whirihora nginx iti:

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 {
    }

}

Kia kore ai e hanga he raina roa ki te whakarewatanga o te mvn, ka nukuhia nga tawhā ki tetahi taurangi motuhake DEPENDENCY_OPTS.

Ko te whirihora iti whakamutunga .gitlab-ci.yml ka penei te ahua:

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

Te korerorero Telegram mo DevOps me te Haumarutanga
Te hongere Telegram DevSecOps / SSDLC - Te whanaketanga haumaru

Source: will.com

Tāpiri i te kōrero