Skip to content

Commit 2f0e7cf

Browse files
committed
ci: enable the Pulse vulnerability and malware scans in the Security Suite
Turns on `enable-vuln-scan` and `enable-malware-scan` and repins the suite to NVIDIA/security-workflows test/vuln-malware-onboarding, the branch carrying the 0.5.0 release notes for both scans. The vulnerability scan starts report-only so a finding baseline can be built before it gates merges; scanner and transport errors still fail the job, and inventory writeback stays off. The malware scan keeps the upstream default of strict, where SUSPICIOUS blocks as well as MALICIOUS. Both scans report to the same nSpect registration, because an nSpect ID identifies the repository rather than one scan. `nspect-id` reads the `NSPECT_ID` Actions variable and falls back to this repository's ID literally, so the suite works whether or not the variable has been provisioned; drop the fallback once it has. No permission change: the suite's union is contents/actions read plus id-token and security-events write, all of which this caller already grants. Both scans cross a Charon tunnel that authorizes per repository and per ref. charon!242 brings this repository's tenant to parity with the one the upstream workflows are tested against and grants `main` plus the `pull-request/*` mirrors; the prerequisites are summarised in ci/README.md.
1 parent 590a8bf commit 2f0e7cf

2 files changed

Lines changed: 30 additions & 2 deletions

File tree

‎.github/workflows/security-suite.yml‎

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,12 @@
22
#
33
# SPDX-License-Identifier: Apache-2.0
44
#
5-
# CI security scanning via the NVIDIA/security-workflows suite: Pulse secret scan + CodeQL SAST.
5+
# CI security scanning via the NVIDIA/security-workflows suite: Pulse secret scan,
6+
# Pulse OSS vulnerability scan (SCA), Pulse malware scan, and CodeQL SAST.
67
# Pulse runs on Linux nv-gha-runners (Docker image + OIDC/Vault) — Linux-only by design.
78
# The local secret-scan-trufflehog pre-commit hook is cross-platform (Linux/macOS/Windows).
89
# Pinned to a reviewed commit SHA.
10+
# The vulnerability and malware scans cross a Charon tunnel; see ci/README.md.
911

1012
name: Security Suite (Pulse + CodeQL)
1113

@@ -36,9 +38,11 @@ jobs:
3638
if: >-
3739
github.repository == 'NVIDIA/cuda-python' ||
3840
vars.CI_CUSTOMIZATIONS_SECURITY_SUITE_ENABLED == 'true'
39-
uses: NVIDIA/security-workflows/.github/workflows/security-suite.yml@c736f0454dc99764a66af6b906adfcdfbf621985 # v0.4.0
41+
uses: NVIDIA/security-workflows/.github/workflows/security-suite.yml@8d3d9236178d739920efcc2e0ecdd2a4a658f451 # test/vuln-malware-onboarding
4042
with:
4143
enable-secret-scan: true
44+
enable-vuln-scan: true
45+
enable-malware-scan: true
4246
enable-sast-scan: true
4347
secret-runs-on: linux-amd64-cpu4
4448
# Set failure_policy explicitly so enforcement can't drift with upstream defaults.
@@ -48,3 +52,12 @@ jobs:
4852
secret-failure-policy: unverified
4953
# Same analysis the retired codeql.yml performed: python, build-mode none, security-extended.
5054
sast-languages: '["python"]'
55+
# Literal fallback until the NSPECT_ID variable is provisioned on this repository.
56+
nspect-id: ${{ vars.NSPECT_ID || 'NSPECT-ZY2K-Y1V8' }}
57+
vuln-runs-on: linux-amd64-cpu4
58+
# report-only (default) — findings warn; fail-on-vulnerability — any finding fails. Errors always fail.
59+
vuln-failure-policy: report-only
60+
vuln-upload-report: true
61+
malware-runs-on: linux-amd64-cpu4
62+
# strict (default) — SUSPICIOUS fails too; malicious-only — it only warns. MALICIOUS always fails.
63+
malware-failure-policy: strict

‎ci/README.md‎

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -232,3 +232,18 @@ The canonical `NVIDIA/cuda-python` repository does not need this variable
232232
because its standard workflow behavior is enabled directly. Before enabling a
233233
customization elsewhere, document the repository-specific prerequisites and
234234
verification procedure in that repository's own documentation.
235+
236+
### Security Suite scan prerequisites
237+
238+
The secret scan and CodeQL SAST need only the Vault variables already
239+
provisioned for this repository. The Pulse OSS vulnerability scan and the Pulse
240+
malware scan additionally reach NVIDIA-internal services through a Charon
241+
tunnel, which authorizes **per repository and per ref**, and both read the
242+
repository's `NSPECT_ID` Actions variable.
243+
244+
The Charon tenant must list every ref the suite scans — `main`, `ctk-next`, and
245+
the `pull-request/*` mirrors — and grant the routes each scan calls, including
246+
`POST /v1/sourceCode/scan`, which is not granted to tenants by default. An
247+
unlisted ref or route surfaces as an opaque `403` from inside the scanner, so
248+
confirm the tenant before debugging anything else. The secret scan and SAST are
249+
unaffected; neither crosses the tunnel.

0 commit comments

Comments
 (0)