CI supply chain: Scorecard, dependency review, egress assessment

Open
#185 3 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
15/100
Issue type
Feature
Clarity
Needs clarification
Activity status
Active
Tech stack
github-actions, nodejs, rust
Domain
ci-cd, devops, security

Research direction

The payload names no specific workflow or script files. Start by inventorying the CI jobs that fetch Actions, CLI installers, Rust and Node dependencies, or use curl | bash, and check how the OpenCode CLI version is pinned. Coordinate with the existing cargo audit, cargo deny, Dependency Review, Gitleaks and CodeQL jobs rather than duplicating them. Done means a documented dependency and download matrix, negative tests for a bad checksum, an untrusted install script and an unauthorized download, and passing Linux and Windows builds. Sub-issues SEC-CI-1, SEC-CI-2 and SEC-CI-4 should be resolved first.

Written by the indexing model from the issue text.

Description

area:ci-cd priority:P2 type:security

Ziel

Manipulierte Dependencies, Installationsschritte und Exfiltration aus Actions erschweren.

Aufgaben

  • Alle Actions, CLI-Installer, Rust-/Node-Dependencies und dynamischen Downloads erfassen und auf Herkunft, Pinning, Prüfsummen/Signaturen und Lifecycle-Skripte prüfen.
  • Unkontrollierte curl | bash-Muster beseitigen; OpenCode-CLI-Version samt Integritätsprüfung fixieren; Lockfiles und --locked/frozen-Installationen nutzen.
  • cargo audit/cargo deny, Dependency Review, Gitleaks und CodeQL ergänzend koordinieren, vorhandene Scans nicht doppeln.
  • Exfiltrationswege (HTTP, DNS, Artefakte, Logs, Caches) im Bedrohungsmodell erfassen.
  • Machbarkeit wirksamer Egress-Allowlist/Proxy oder isolierter Runner für Secret-Jobs evaluieren; GitHub-hosted Runner nicht fälschlich als bereits netzwerkisoliert deklarieren.
  • Netzwerk- und Paketkontrollen zuerst im Audit-/Warnmodus erproben; keine pauschalen Blockaden, die Builds unbrauchbar machen.

Akzeptanzkriterien / Tests

  • Dokumentierte Dependency-/Download-Matrix und Integritätsnachweise
  • Negativtests für manipulierte Prüfsumme, untrusted Install-Script, unerlaubten Download
  • Egress-Grenzen und verbleibende Exfiltrationsrisiken klar dokumentiert
  • Bestehende Linux-/Windows-Builds erfolgreich

Rollback

Neue Kontrollen je Job einzeln deaktivierbar/revertierbar; Lockfile-/Version-Änderungen getrennt.

Abhängigkeiten

SEC-CI-1, SEC-CI-2, SEC-CI-4.

Dominant language
Rust
Stars
0
Forks
0
Avg merge
1h 22m
Merged PRs (30d)
72

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from SpecterAoD/pqkeep

All issues in SpecterAoD/pqkeep

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.