PlatformEngr® DevSecOps pipeline course

Pipeline field notes

Review the control, the path it stops and the evidence that proves it.

These pages are the same content as the interactive course, on one page per module, for reading and printing.

The evidence

PieceWhat it is
Attack surface registerKeep owner, test, controls, status and evidence together.
Attacker notebookRecord objective, trust, cheapest path, pivot and signal.

Your setup

Commands in these notes use these values (shared with the interactive course, stored only in this browser).

Outline

ModulePartTimeYou areYou will
00 OrientationOrientation25 minPlatform teamCreate the learner repo, inspect the seeded app and workflows, and open docs/attack-surface.yaml.
01 Secrets in GitSource and pipeline35 minPlatform teamRun the repository scan, inspect the seeded canary rule and hook, remove the canary from history, rotate the lab value, and record S01.
02 Workflows and artifactsSource and pipeline60 minPlatform teamTest issue-title interpolation and the workflow_run report consumer, restrict permissions, treat artifacts as JSON data, and audit workflows with zizmor.
03 AI agents in CISource and pipeline40 minPlatform teamUse the deterministic local stand-in against a harmless issue fixture, then remove its write access and secret, and validate its output in a model-free job.
04 Borrowed codeSource and pipeline60 minPlatform teamInspect the local Verdaccio exercise, observe the seeded dependency and token, pin actions by full commit, verify package signatures and set a release cooldown.
05 Build a verifiable imageArtifact50 minPlatform teamBuild checkout, scan its filesystem and image, publish a digest from a tagged release, and attach provenance to that digest.
06 Verify at admissionArtifact55 minPlatform teamSign the release digest with keyless identity, install the image policy, try a mismatched signer, and record S06.

The change journey

  1. Surface: Find the trust boundary and the capability behind it.
  2. Test: Predict and run a bounded proof on your own repository.
  3. Measure: Put an owned control in code and commit it.
  4. Prove: Repeat the test and record evidence and residual risk.

Before using the pattern in production