OPS-06: automatisiertes-schwachstellen-scanning-supply-chain (govulncheck+npm-audit CI-Gates, verwundbare Fixtures + Verifikationsskript fuer Pruefung 1)
Supply-Chain-Scan (Go) / govulncheck (push) Has been cancelled
Supply-Chain-Scan (Go) / govulncheck (push) Has been cancelled
This commit is contained in:
Executable
+41
@@ -0,0 +1,41 @@
|
||||
#!/usr/bin/env bash
|
||||
# OPS-06 Pruefung 1: beweist, dass govulncheck und npm audit eine absichtlich
|
||||
# verwundbare Testabhaengigkeit tatsaechlich erkennen und mit Exit-Code != 0
|
||||
# enden (= wuerden den Merge blockieren). Laeuft auf dem Testhost (Go/npm
|
||||
# noetig), nicht auf der Entwicklungsmaschine.
|
||||
set -uo pipefail
|
||||
|
||||
fail=0
|
||||
|
||||
echo "=== Go-Fixture: golang.org/x/text v0.3.7 (GO-2022-0635 / CVE-2022-32149) ==="
|
||||
if ! command -v govulncheck >/dev/null 2>&1; then
|
||||
go install golang.org/x/vuln/cmd/govulncheck@latest
|
||||
fi
|
||||
( cd testdata/vulnfixture-go && go mod tidy && govulncheck ./... )
|
||||
go_exit=$?
|
||||
if [ "$go_exit" -eq 0 ]; then
|
||||
echo "FEHLER: govulncheck hat die bekannte Schwachstelle NICHT erkannt (exit 0 erwartet != 0)"
|
||||
fail=1
|
||||
else
|
||||
echo "OK: govulncheck hat die Schwachstelle erkannt, exit code $go_exit (!= 0, Gate wuerde blockieren)"
|
||||
fi
|
||||
|
||||
echo
|
||||
echo "=== npm-Fixture: lodash 4.17.4 (mehrere bekannte kritische CVEs) ==="
|
||||
( cd testdata/vulnfixture-npm && npm install --package-lock-only --no-audit --no-fund \
|
||||
&& npm audit --audit-level=high )
|
||||
npm_exit=$?
|
||||
if [ "$npm_exit" -eq 0 ]; then
|
||||
echo "FEHLER: npm audit hat die bekannte Schwachstelle NICHT erkannt (exit 0 erwartet != 0)"
|
||||
fail=1
|
||||
else
|
||||
echo "OK: npm audit hat die Schwachstelle erkannt, exit code $npm_exit (!= 0, Gate wuerde blockieren)"
|
||||
fi
|
||||
|
||||
echo
|
||||
if [ "$fail" -eq 0 ]; then
|
||||
echo "PRUEFUNG 1 BESTANDEN: beide Gates erkennen eine absichtlich verwundbare Testabhaengigkeit und blockieren."
|
||||
else
|
||||
echo "PRUEFUNG 1 FEHLGESCHLAGEN: siehe FEHLER oben."
|
||||
fi
|
||||
exit $fail
|
||||
Reference in New Issue
Block a user