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
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
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:
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.
Sonraí an dara scáileáin CVE-2017-5638. Anseo feicimid an leibhéal CVE agus naisc le exploits.
Is é an tríú scáileán ná sonraí log4j-api-2.7.jar. Feicimid go bhfuil leibhéil CVE 7.5 agus 9.8.
Is é an ceathrú seat ná sonraí commons-fileupload-1.3.2.jar. Feicimid go bhfuil leibhéil CVE 7.5 agus 9.8.
Más mian leat leathanaigh gitlab a úsáid, ní oibreoidh sé - ní chruthóidh tasc tite déantán.
Sampla anseo
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í
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í:
Chun é a íoslódáil, is féidir leat an fóntais a úsáid
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
Foinse: will.com