Ag baint úsáide as an scanóir leochaileachta do leabharlanna úsáidte Seiceáil Spleáchais in GitlabCI

Cuid thábhachtach den bhainistíocht leochaileachta is ea slabhra soláthair na gcomhpháirteanna bogearraí a chomhdhéanann córais nua-aimseartha a thuiscint agus a dhaingniú go críochnúil. Baineann foirne Agile agus DevOps úsáid fhairsing as leabharlanna agus creataí foinse oscailte chun am forbartha agus costas a laghdú. Ach tá míbhuntáiste ag baint leis an mbonn seo freisin: an deis chun botúin agus leochaileachtaí daoine eile a oidhreacht.

Ar ndóigh, ba cheart go mbeadh a fhios ag an bhfoireann cé na comhpháirteanna foinse oscailte atá san áireamh ina bhfeidhmchláir, a chinntiú go n-íoslódáiltear leaganacha iontaofa aitheanta ó fhoinsí iontaofa aitheanta, agus go n-íoslódálann siad leaganacha nuashonraithe de chomhpháirteanna tar éis leochaileachtaí nua-aimsithe a bheith sáite.

Sa phost seo, féachfaimid ar Sheiceáil Spleáchais OWASP a úsáid chun deireadh a chur le tógáil má bhraitheann sé fadhbanna tromchúiseacha le do chód.

Sa leabhar “Development Security in Agile Projects” déantar cur síos air mar seo a leanas. Is scanóir saor in aisce é OWASP Dependency Check a dhéanann catalógú ar na comhpháirteanna foinse oscailte go léir a úsáidtear in fheidhmchlár agus a thaispeánann na leochaileachtaí atá iontu. Tá leaganacha ann do Java, .NET, Ruby (gemspec), PHP (cumadóir), Node.js agus Python, chomh maith le roinnt tionscadal C/C++. Comhtháthaíonn Seiceáil Spleáchais le huirlisí tógála coitianta, lena n-áirítear Ant, Maven agus Gradle, agus freastalaithe comhtháthú leanúnach cosúil le Jenkins.

Tuairiscíonn Seiceáil Spleáchais na comhpháirteanna go léir a bhfuil leochaileachtaí aitheanta acu ó Bhunachar Sonraí Náisiúnta Leochaileachta NIST (NVD) agus nuashonraítear é le sonraí ó fhothaí nuachta NVD.

Ar ámharaí an tsaoil, is féidir é seo ar fad a dhéanamh go huathoibríoch ag baint úsáide as uirlisí cosúil leis an tionscadal Seiceáil Spleáchais OWASP nó cláir thráchtála ar nós Lacha Dubh, JFrog Xray, Snyk, Saolré Nexus Sonatype nó SourceClear.

Is féidir na huirlisí seo a áireamh i bpíblínte tógála chun spleáchais foinse oscailte a fhardal go huathoibríoch, chun leaganacha atá as dáta de leabharlanna agus de leabharlanna ina bhfuil leochaileachtaí aitheanta a aithint, agus toirmisc a thógáil má aimsítear fadhbanna tromchúiseacha.

Seiceáil Spleáchais OWASP

Chun an chaoi a n-oibríonn Seiceáil Spleáchais a thástáil agus a léiriú, úsáidimid an stór seo spleáchas-seiceáil-shampla.

Chun féachaint ar an tuarascáil HTML, ní mór duit an freastalaí gréasáin nginx a chumrú ar do gitlab-runner.

Sampla de chumraíocht nginx íosta:

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

Ag deireadh an tionóil is féidir leat an pictiúr seo a fheiceáil:

Ag baint úsáide as an scanóir leochaileachta do leabharlanna úsáidte Seiceáil Spleáchais in GitlabCI

Lean an nasc agus féach ar an tuarascáil Seiceáil Spleáchais.

Is é an chéad seat scáileáin an chuid uachtarach den tuarascáil le hachoimre.

Ag baint úsáide as an scanóir leochaileachta do leabharlanna úsáidte Seiceáil Spleáchais in GitlabCI

Sonraí an dara scáileáin CVE-2017-5638. Anseo feicimid an leibhéal CVE agus naisc le exploits.

Ag baint úsáide as an scanóir leochaileachta do leabharlanna úsáidte Seiceáil Spleáchais in GitlabCI

Is é an tríú scáileán ná sonraí log4j-api-2.7.jar. Feicimid go bhfuil leibhéil CVE 7.5 agus 9.8.

Ag baint úsáide as an scanóir leochaileachta do leabharlanna úsáidte Seiceáil Spleáchais in GitlabCI

Is é an ceathrú seat ná sonraí commons-fileupload-1.3.2.jar. Feicimid go bhfuil leibhéil CVE 7.5 agus 9.8.

Ag baint úsáide as an scanóir leochaileachta do leabharlanna úsáidte Seiceáil Spleáchais in GitlabCI

Más mian leat leathanaigh gitlab a úsáid, ní oibreoidh sé - ní chruthóidh tasc tite déantán.

Sampla anseo https://gitlab.com/anton_patsev/dependency-check-example-gitlab-pages.

Tógáil aschur: gan aon déantáin, ní fheicim an tuairisc html. Ba chóir duit triail a bhaint as Déantán: i gcónaí

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

Ag baint úsáide as an scanóir leochaileachta do leabharlanna úsáidte Seiceáil Spleáchais in GitlabCI

Leibhéal leochaileachtaí CVE a rialáil

An líne is tábhachtaí sa chomhad gitlab-ci.yaml:

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

Leis an bparaiméadar failBuildOnCVSS is féidir leat leibhéal na leochaileachtaí CVE a choigeartú a gcaithfidh tú freagairt dóibh.

Bunachar Sonraí Leochaileachta NIST (NVD) a íoslódáil ón Idirlíon

Ar thug tú faoi deara go n-íoslódálann NIST bunachair shonraí leochaileachta NIST (NVD) ón Idirlíon i gcónaí:

Ag baint úsáide as an scanóir leochaileachta do leabharlanna úsáidte Seiceáil Spleáchais in GitlabCI

Chun é a íoslódáil, is féidir leat an fóntais a úsáid nist_data_scáthán_golang

Déanaimis é a shuiteáil agus a sheoladh.

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

Déanann Nist-data-mirror an NIST JSON CVE a uaslódáil chuig /var/www/repos/nist-data-mirror/ ar am tosaithe agus nuashonraíonn sé na sonraí gach 24 uair an chloig.

Chun CVE JSON NIST a íoslódáil, ní mór duit freastalaí gréasáin nginx a chumrú (mar shampla, ar do gitlab-runner).

Sampla de chumraíocht nginx íosta:

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

}

Chun nach ndéanfar líne fhada nuair a sheoltar mvn, bogfaimid na paraiméadair isteach in athróg ar leith DEPENDENCY_OPTS.

Beidh cuma mar seo ar an gcumraíocht íosta deiridh .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

Comhrá teileagram faoi DevOps agus Slándála
Telegram cainéal DevSecOps / SSDLC - Forbairt shlán

Foinse: will.com

Add a comment