Implement the standard security scan baseline #4
Labels
No labels
app-migration
bug
ci-cd
cluster
Documentation
duplicate
enhancement
gpu
invalid
networking
question
security
Storage
wontfix
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
Homelab/workflows#4
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Implement reusable open-source security checks alongside the Gitleaks work in #1. No paid scanning service or cloud account should be required.
Acceptance:
Depends on reusable workflow/runner activation in #3. Start with scan-only CI; publishing/signing/deployment credentials must not reach PR scan jobs. Initial scaffold does not prove the scanner suite has run.
PR #7 implements the reusable Gitleaks/Trivy/Semgrep/ClamAV gate, pinned toolchain, sanitized reports, CycloneDX SBOMs and exact expiring mitigations. PR #8 applies it to locally built image archives and every bundle image before publication/deployment. ClamAV updates its signed database and scans source plus flattened image filesystems; malware and scanner failures cannot be mitigated away.
Real tests covered clean source, a synthetic secret removed from Git history, report redaction, downloaded Alpine archives and offline signature tampering. The unit suite now has 25 passing cases. No real application was built or deployed.
Live runner/artifact compatibility, repository status protection and first app acceptance remain to be confirmed after merge. Current UDS delivery accepts concrete rendered manifests; it does not render arbitrary Helm/Kustomize inputs. Keep this issue open for the remaining acceptance checklist.
Checklist review: checked the implemented scanner coverage and blocking/mitigation policy. Evidence is in #7/#8, pipeline/security.py, pipeline/malware.py and docs/security.md. Real tests covered historical/working-tree secrets, sanitized reports, source scans and downloaded image archives; local unit tests reached 27 passing cases. Semgrep rules are fetched and checksum-verified into the job rather than redistributed in Git. ClamAV is included and malware/scanner failures cannot be waived.
Left the compound items unchecked where part remains: tool/action pins and update instructions exist, but reviewed toolchain release/ongoing update tracking are not yet demonstrated; Helm/Kustomize rendering, ShellCheck and Kubernetes schema validation are not implemented by the concrete-manifest profile; SBOM/report generation exists but live Forgejo artifact/retention acceptance remains; failure fixtures exist but scheduled scanning remains; stable required status checks and workflow/policy protection still need runner validation. These are specific remaining tasks, not a request to redo completed scanner work.
Checked two acceptance items now supported by reviewed and live evidence. The scanner/tool versions are pinned in the reviewed v1.1.0 release and the documented release protocol controls updates. Homelab/bundles runs 9 and 12 confirmed CycloneDX/security report generation and Forgejo artifact retention on the ci runner.
PR #12 adds scheduled scanning and protects this repository with the released gate. I am leaving the combined fixture/schedule item unchecked until that PR is merged and its self-scan completes. Rendering, ShellCheck/schema validation, and stable required-check protection remain the next substantive gaps.
PR #13 implements the remaining source-side validation work: ShellCheck runs on tracked shell scripts, callers can explicitly render local Helm charts and Kustomize overlays, Kubeconform validates built-in Kubernetes resources against a concrete schema version, and Trivy scans rendered manifests. Paths are constrained to the checkout, Helm does not download dependencies, and CRD validation limits are documented.
Local evidence: 35 unit/contract tests passed; YAML/Bash syntax and 16 mocked workflow cases passed; the exact checksum-pinned ShellCheck 0.10.0, Helm 4.2.0, Kustomize 5.8.1, and Kubeconform 0.7.0 binaries passed a real render-and-validate fixture. I am leaving the combined checklist item unchecked until the PR's runner check passes and the change is merged.
Progress reconciled after the v1.2.1 release and adoption.
Repository security / security-1 (pull_request)andLibrary checks / tests (pull_request); bundles and platformSource security / security (pull_request). Workflow/policy changes follow the protected-branch PR/review/check process. Per owner decision, protected-file patterns are intentionally omitted so reviewed workflow version updates can merge.Checked the remaining baseline items against this evidence. The dedicated live synthetic-secret failure test remains tracked in #1; cross-namespace execution/credential isolation in #3 and first application delivery in #5 remain open.
Closing as complete