[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6AGDM3HJXTKXX15ZZ0ZVCJ3":3,"skill-same:01M6AGDM3HJXTKXX15ZZ0ZVCJ3":102},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":57,"commitSha":58,"skillDirectory":59,"forksCount":60,"repositoryHtmlUrl":61,"repositoryHomepageUrl":62,"ownerHtmlUrl":63,"ownerBlogUrl":64,"ownerDescription":65,"updatedAt":66,"install":67,"resources":80},"01M6AGDM3HJXTKXX15ZZ0ZVCJ3","verifying-build-provenance-with-slsa-sigstore",null,"Verifies artifact signatures and SLSA provenance using Sigstore's cosign (verify, verify-attestation, verify-blob-attestation) and slsa-verifier (verify-artifact), enforcing keyless OIDC builder identity and source repo against SLSA Build levels. Use in CI\u002FCD before deploying artifacts, when consuming third-party attestations, establishing a SLSA Build L3 pipeline, or confirming provenance during incident response or admission control.","mukul975\u002FAnthropic-Cybersecurity-Skills","mukul975","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F42860185?v=4","01M6ADEQR8T5M4EEG6C67BQCWF","Mahipal","01M6ADJPMYWG1E5GM1FWBE3128",35925,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fmukul975\u002FAnthropic-Cybersecurity-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fverifying-build-provenance-with-slsa-sigstore\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"verifying build provenance with slsa sigstore","slsa","provenance","sigstore","supply-chain-security","keyless","cosign","code-signing","attestation","t1195","security","pipeline","supply-chain","ci","artifacts","code","pr","identity","incident response","cybersecurity","2026-11-10 10:12:30",false,"---\nname: verifying-build-provenance-with-slsa-sigstore\ndescription: Verifies artifact signatures and SLSA provenance using Sigstore's\n  cosign (verify, verify-attestation, verify-blob-attestation) and slsa-verifier\n  (verify-artifact), enforcing keyless OIDC builder identity and source repo against\n  SLSA Build levels. Use in CI\u002FCD before deploying artifacts, when consuming third-party\n  attestations, establishing a SLSA Build L3 pipeline, or confirming provenance\n  during incident response or admission control.\ndomain: cybersecurity\nsubdomain: supply-chain-security\ntags:\n- supply-chain\n- slsa\n- sigstore\n- cosign\n- provenance\n- attestation\n- keyless-signing\n- code-signing\nversion: '1.0'\nauthor: mahipal\nlicense: Apache-2.0\nnist_csf:\n- PR.DS-01\nmitre_attack:\n- T1195\n---\n# Verifying Build Provenance with SLSA and Sigstore\n\n## Overview\n\nBuild-provenance verification answers a question that defeats many supply-chain attacks: *was this artifact actually built from the source I think it was, by the builder I trust, without tampering?* Attackers who compromise a build system, swap a compiled release, or inject a malicious step (as in the SolarWinds and 3CX incidents) produce artifacts that look legitimate but lack verifiable provenance. SLSA (Supply-chain Levels for Software Artifacts, https:\u002F\u002Fslsa.dev) defines Build levels (L1–L3) describing increasing provenance integrity, and Sigstore (https:\u002F\u002Fwww.sigstore.dev) provides the signing and transparency infrastructure: **cosign** for signing\u002Fverifying artifacts and attestations, **Fulcio** for short-lived keyless certificates bound to an OIDC identity, and **Rekor** as a tamper-evident transparency log.\n\nThis skill covers verifying signatures and SLSA provenance with **cosign** (`cosign verify`, `cosign verify-attestation`, `cosign verify-blob-attestation`) and **slsa-verifier** (`slsa-verifier verify-artifact`), enforcing the builder identity (the GitHub Actions workflow that produced the artifact) and the expected source repository. Keyless verification ties trust to an OIDC issuer (e.g., `https:\u002F\u002Ftoken.actions.githubusercontent.com`) and a certificate identity rather than a long-lived private key.\n\nThis maps to MITRE ATT&CK **T1195 — Supply Chain Compromise** (provenance verification detects\u002Fblocks tampered artifacts) and NIST CSF **PR.DS-01** (the confidentiality, integrity, and availability of data-at-rest are protected; CSF 2.0 absorbed the retired 1.1 PR.DS-06 integrity-checking outcome here).\n\n## When to Use\n\n- In CI\u002FCD before deploying or promoting any container image or release binary.\n- When consuming third-party artifacts (base images, Go\u002Fnpm releases) that publish attestations.\n- When establishing a SLSA Build L3 producer pipeline and enforcing it at the consumer side.\n- During incident response to confirm whether a deployed artifact's provenance is intact.\n- In admission control (e.g., Kubernetes via policy-controller \u002F Kyverno) to admit only verified images.\n\n## Prerequisites\n\n- **cosign** (Sigstore CLI):\n  ```bash\n  go install github.com\u002Fsigstore\u002Fcosign\u002Fv2\u002Fcmd\u002Fcosign@latest\n  # or download a release binary from https:\u002F\u002Fgithub.com\u002Fsigstore\u002Fcosign\u002Freleases\n  ```\n- **slsa-verifier**:\n  ```bash\n  go install github.com\u002Fslsa-framework\u002Fslsa-verifier\u002Fv2\u002Fcli\u002Fslsa-verifier@latest\n  # or:\n  curl -sSL https:\u002F\u002Fgithub.com\u002Fslsa-framework\u002Fslsa-verifier\u002Freleases\u002Flatest\u002Fdownload\u002Fslsa-verifier-linux-amd64 \\\n    -o \u002Fusr\u002Flocal\u002Fbin\u002Fslsa-verifier && chmod +x \u002Fusr\u002Flocal\u002Fbin\u002Fslsa-verifier\n  ```\n- Network access to Rekor (`https:\u002F\u002Frekor.sigstore.dev`) and Fulcio for transparency-log verification.\n- The artifact plus its provenance\u002Fattestation bundle (`.sigstore`, `.intoto.jsonl`, or attached OCI attestation).\n\n## Objectives\n\n- Verify a keyless cosign signature on a container image, pinning OIDC issuer and certificate identity.\n- Verify a SLSA provenance attestation on an image with `cosign verify-attestation --type slsaprovenance`.\n- Verify a release binary's provenance with `slsa-verifier verify-artifact`, pinning source repo and tag.\n- Verify GitHub artifact attestations \u002F blob bundles with `cosign verify-blob-attestation`.\n- Gate CI and admission control on successful verification; understand SLSA Build L1–L3.\n\n## MITRE ATT&CK Mapping\n\n| ID | Tactic | Technique Name | Relevance |\n|----|--------|----------------|-----------|\n| T1195 | Initial Access | Supply Chain Compromise | Verifying provenance and signatures detects artifacts that were tampered with or substituted in the build\u002Fdistribution chain, preventing supply-chain compromise from reaching deployment. |\n\n## Workflow\n\n### Step 1: Verify a keyless cosign signature on an image\nPin both the OIDC issuer and the certificate identity (the exact workflow that signed). A bare `cosign verify` without identity pinning is meaningless — anyone can sign.\n\n```bash\ncosign verify \\\n  --certificate-oidc-issuer \"https:\u002F\u002Ftoken.actions.githubusercontent.com\" \\\n  --certificate-identity-regexp \"^https:\u002F\u002Fgithub.com\u002Fmyorg\u002Fmyrepo\u002F.github\u002Fworkflows\u002F.*@refs\u002Ftags\u002Fv.*\" \\\n  ghcr.io\u002Fmyorg\u002Fmyrepo:v1.2.3\n```\nA non-zero exit or empty result means verification failed — do not deploy.\n\n### Step 2: Verify the SLSA provenance attestation on the image\nThe signature proves *who* signed; the provenance attestation proves *how it was built*. Verify the in-toto SLSA predicate type.\n\n```bash\ncosign verify-attestation \\\n  --type slsaprovenance \\\n  --certificate-oidc-issuer \"https:\u002F\u002Ftoken.actions.githubusercontent.com\" \\\n  --certificate-identity \"https:\u002F\u002Fgithub.com\u002Fmyorg\u002Fmyrepo\u002F.github\u002Fworkflows\u002Fbuild-sign.yml@refs\u002Fheads\u002Fmain\" \\\n  ghcr.io\u002Fmyorg\u002Fmyrepo:v1.2.3\n```\nSupported predicate types include `slsaprovenance`, `slsaprovenance02`, and `slsaprovenance1`.\n\n### Step 3: Inspect the provenance predicate\nDecode the verified attestation to confirm the source repo, commit, and builder match expectations.\n\n```bash\ncosign verify-attestation --type slsaprovenance \\\n  --certificate-oidc-issuer \"https:\u002F\u002Ftoken.actions.githubusercontent.com\" \\\n  --certificate-identity-regexp '.*' \\\n  ghcr.io\u002Fmyorg\u002Fmyrepo:v1.2.3 \\\n  | jq -r '.payload' | base64 -d | jq '.predicate.buildDefinition.externalParameters, .predicate.runDetails.builder.id'\n```\n\n### Step 4: Verify a release binary with slsa-verifier\nFor downloadable binaries (e.g., produced by `slsa-github-generator`), pin the source URI and the tag. slsa-verifier checks the cryptographic signature on the provenance and that the expected builder produced it.\n\n```bash\nslsa-verifier verify-artifact slsa-test-linux-amd64 \\\n  --provenance-path slsa-test-linux-amd64.intoto.jsonl \\\n  --source-uri github.com\u002Fmyorg\u002Fmyrepo \\\n  --source-tag v1.2.3\n\n# Optionally pin the builder identity (SLSA L3)\nslsa-verifier verify-artifact .\u002Fmybin \\\n  --provenance-path .\u002Fmybin.intoto.jsonl \\\n  --source-uri github.com\u002Fmyorg\u002Fmyrepo \\\n  --builder-id https:\u002F\u002Fgithub.com\u002Fslsa-framework\u002Fslsa-github-generator\u002F.github\u002Fworkflows\u002Fgenerator_generic_slsa3.yml@refs\u002Ftags\u002Fv2.0.0\n```\n\n### Step 5: Verify GitHub artifact attestations \u002F blob bundles\nFor artifacts signed via `actions\u002Fattest-build-provenance`, the bundle uses the new Sigstore bundle format.\n\n```bash\ncosign verify-blob-attestation \\\n  --bundle .\u002Fmyartifact.sigstore.json \\\n  --new-bundle-format \\\n  --certificate-oidc-issuer=\"https:\u002F\u002Ftoken.actions.githubusercontent.com\" \\\n  --certificate-identity-regexp=\"^https:\u002F\u002Fgithub.com\u002Fmyorg\u002Fmyrepo\u002F\" \\\n  .\u002Fmyartifact\n\n# Equivalent native GitHub CLI verification\ngh attestation verify .\u002Fmyartifact --repo myorg\u002Fmyrepo\n```\n\n### Step 6: Enforce verification as a gate\nWrap verification so the pipeline fails closed on any error.\n\n```bash\n#!\u002Fusr\u002Fbin\u002Fenv bash\nset -euo pipefail\nIMG=\"ghcr.io\u002Fmyorg\u002Fmyrepo:v1.2.3\"\ncosign verify \\\n  --certificate-oidc-issuer \"https:\u002F\u002Ftoken.actions.githubusercontent.com\" \\\n  --certificate-identity-regexp \"^https:\u002F\u002Fgithub.com\u002Fmyorg\u002Fmyrepo\u002F\" \"$IMG\" >\u002Fdev\u002Fnull\ncosign verify-attestation --type slsaprovenance \\\n  --certificate-oidc-issuer \"https:\u002F\u002Ftoken.actions.githubusercontent.com\" \\\n  --certificate-identity-regexp \"^https:\u002F\u002Fgithub.com\u002Fmyorg\u002Fmyrepo\u002F\" \"$IMG\" >\u002Fdev\u002Fnull\necho \"[+] $IMG verified: signature + SLSA provenance OK\"\n```\n\n### Step 7: Map findings to SLSA Build levels\nDocument the level each consumed artifact achieves:\n- **Build L1** — provenance exists (the build process generates it), but it may be unsigned\u002Fforgeable.\n- **Build L2** — provenance is signed by a hosted build service.\n- **Build L3** — provenance is non-forgeable: generated on an isolated, hardened builder where secrets are unavailable to user-defined steps (e.g., `slsa-github-generator` reusable workflows). Require L3 for high-trust artifacts.\n\n## Tools and Resources\n\n| Tool \u002F Resource | Purpose | Link |\n|-----------------|---------|------|\n| cosign | Sign\u002Fverify artifacts and attestations (keyless) | https:\u002F\u002Fgithub.com\u002Fsigstore\u002Fcosign |\n| slsa-verifier | Verify SLSA provenance from compliant builders | https:\u002F\u002Fgithub.com\u002Fslsa-framework\u002Fslsa-verifier |\n| slsa-github-generator | Produce SLSA L3 provenance in GitHub Actions | https:\u002F\u002Fgithub.com\u002Fslsa-framework\u002Fslsa-github-generator |\n| actions\u002Fattest-build-provenance | GitHub-native provenance attestation | https:\u002F\u002Fgithub.com\u002Factions\u002Fattest-build-provenance |\n| SLSA specification | Build levels and provenance schema | https:\u002F\u002Fslsa.dev\u002Fspec\u002Fv1.0\u002F |\n| Sigstore docs | Fulcio, Rekor, cosign verification | https:\u002F\u002Fdocs.sigstore.dev\u002Fcosign\u002Fverifying\u002Fverify\u002F |\n\n## Verification Identity Reference\n\n| Field | Where it comes from | Why it matters |\n|-------|--------------------|----------------|\n| `--certificate-oidc-issuer` | The OIDC issuer (e.g., GitHub Actions) | Restricts who could have requested the signing cert |\n| `--certificate-identity[-regexp]` | The exact\u002Fpatterned workflow identity (SAN) | Restricts which workflow signed; prevents impersonation |\n| `--source-uri` (slsa-verifier) | Expected source repo | Confirms the artifact came from your repo |\n| `--source-tag` \u002F `--source-versioned-tag` | Expected git tag | Prevents rollback\u002Fsubstitution |\n| `--builder-id` | Trusted builder workflow ref | Enforces SLSA L3 non-forgeable builder |\n\n## Validation Criteria\n\n- [ ] cosign and slsa-verifier installed and report versions\n- [ ] Image signature verified with pinned OIDC issuer AND certificate identity\n- [ ] SLSA provenance attestation verified (`--type slsaprovenance`)\n- [ ] Provenance predicate inspected; source repo\u002Fcommit\u002Fbuilder match\n- [ ] Release binary verified with slsa-verifier (source-uri + tag pinned)\n- [ ] GitHub blob\u002Fbundle attestation verified\n- [ ] Verification wired as a fail-closed CI\u002Fadmission gate\n- [ ] Each consumed artifact assigned a SLSA Build level\n","# Verifying Build Provenance with SLSA and Sigstore\n\n## Overview\n\nBuild-provenance verification answers a question that defeats many supply-chain attacks: *was this artifact actually built from the source I think it was, by the builder I trust, without tampering?* Attackers who compromise a build system, swap a compiled release, or inject a malicious step (as in the SolarWinds and 3CX incidents) produce artifacts that look legitimate but lack verifiable provenance. SLSA (Supply-chain Levels for Software Artifacts, https:\u002F\u002Fslsa.dev) defines Build levels (L1–L3) describing increasing provenance integrity, and Sigstore (https:\u002F\u002Fwww.sigstore.dev) provides the signing and transparency infrastructure: **cosign** for signing\u002Fverifying artifacts and attestations, **Fulcio** for short-lived keyless certificates bound to an OIDC identity, and **Rekor** as a tamper-evident transparency log.\n\nThis skill covers verifying signatures and SLSA provenance with **cosign** (`cosign verify`, `cosign verify-attestation`, `cosign verify-blob-attestation`) and **slsa-verifier** (`slsa-verifier verify-artifact`), enforcing the builder identity (the GitHub Actions workflow that produced the artifact) and the expected source repository. Keyless verification ties trust to an OIDC issuer (e.g., `https:\u002F\u002Ftoken.actions.githubusercontent.com`) and a certificate identity rather than a long-lived private key.\n\nThis maps to MITRE ATT&CK **T1195 — Supply Chain Compromise** (provenance verification detects\u002Fblocks tampered artifacts) and NIST CSF **PR.DS-01** (the confidentiality, integrity, and availability of data-at-rest are protected; CSF 2.0 absorbed the retired 1.1 PR.DS-06 integrity-checking outcome here).\n\n## When to Use\n\n- In CI\u002FCD before deploying or promoting any container image or release binary.\n- When consuming third-party artifacts (base images, Go\u002Fnpm releases) that publish attestations.\n- When establishing a SLSA Build L3 producer pipeline and enforcing it at the consumer side.\n- During incident response to confirm whether a deployed artifact's provenance is intact.\n- In admission control (e.g., Kubernetes via policy-controller \u002F Kyverno) to admit only verified images.\n\n## Prerequisites\n\n- **cosign** (Sigstore CLI):\n  ```bash\n  go install github.com\u002Fsigstore\u002Fcosign\u002Fv2\u002Fcmd\u002Fcosign@latest\n  # or download a release binary from https:\u002F\u002Fgithub.com\u002Fsigstore\u002Fcosign\u002Freleases\n  ```\n- **slsa-verifier**:\n  ```bash\n  go install github.com\u002Fslsa-framework\u002Fslsa-verifier\u002Fv2\u002Fcli\u002Fslsa-verifier@latest\n  # or:\n  curl -sSL https:\u002F\u002Fgithub.com\u002Fslsa-framework\u002Fslsa-verifier\u002Freleases\u002Flatest\u002Fdownload\u002Fslsa-verifier-linux-amd64 \\\n    -o \u002Fusr\u002Flocal\u002Fbin\u002Fslsa-verifier && chmod +x \u002Fusr\u002Flocal\u002Fbin\u002Fslsa-verifier\n  ```\n- Network access to Rekor (`https:\u002F\u002Frekor.sigstore.dev`) and Fulcio for transparency-log verification.\n- The artifact plus its provenance\u002Fattestation bundle (`.sigstore`, `.intoto.jsonl`, or attached OCI attestation).\n\n## Objectives\n\n- Verify a keyless cosign signature on a container image, pinning OIDC issuer and certificate identity.\n- Verify a SLSA provenance attestation on an image with `cosign verify-attestation --type slsaprovenance`.\n- Verify a release binary's provenance with `slsa-verifier verify-artifact`, pinning source repo and tag.\n- Verify GitHub artifact attestations \u002F blob bundles with `cosign verify-blob-attestation`.\n- Gate CI and admission control on successful verification; understand SLSA Build L1–L3.\n\n## MITRE ATT&CK Mapping\n\n| ID | Tactic | Technique Name | Relevance |\n|----|--------|----------------|-----------|\n| T1195 | Initial Access | Supply Chain Compromise | Verifying provenance and signatures detects artifacts that were tampered with or substituted in the build\u002Fdistribution chain, preventing supply-chain compromise from reaching deployment. |\n\n## Workflow\n\n### Step 1: Verify a keyless cosign signature on an image\nPin both the OIDC issuer and the certificate identity (the exact workflow that signed). A bare `cosign verify` without identity pinning is meaningless — anyone can sign.\n\n```bash\ncosign verify \\\n  --certificate-oidc-issuer \"https:\u002F\u002Ftoken.actions.githubusercontent.com\" \\\n  --certificate-identity-regexp \"^https:\u002F\u002Fgithub.com\u002Fmyorg\u002Fmyrepo\u002F.github\u002Fworkflows\u002F.*@refs\u002Ftags\u002Fv.*\" \\\n  ghcr.io\u002Fmyorg\u002Fmyrepo:v1.2.3\n```\nA non-zero exit or empty result means verification failed — do not deploy.\n\n### Step 2: Verify the SLSA provenance attestation on the image\nThe signature proves *who* signed; the provenance attestation proves *how it was built*. Verify the in-toto SLSA predicate type.\n\n```bash\ncosign verify-attestation \\\n  --type slsaprovenance \\\n  --certificate-oidc-issuer \"https:\u002F\u002Ftoken.actions.githubusercontent.com\" \\\n  --certificate-identity \"https:\u002F\u002Fgithub.com\u002Fmyorg\u002Fmyrepo\u002F.github\u002Fworkflows\u002Fbuild-sign.yml@refs\u002Fheads\u002Fmain\" \\\n  ghcr.io\u002Fmyorg\u002Fmyrepo:v1.2.3\n```\nSupported predicate types include `slsaprovenance`, `slsaprovenance02`, and `slsaprovenance1`.\n\n### Step 3: Inspect the provenance predicate\nDecode the verified attestation to confirm the source repo, commit, and builder match expectations.\n\n```bash\ncosign verify-attestation --type slsaprovenance \\\n  --certificate-oidc-issuer \"https:\u002F\u002Ftoken.actions.githubusercontent.com\" \\\n  --certificate-identity-regexp '.*' \\\n  ghcr.io\u002Fmyorg\u002Fmyrepo:v1.2.3 \\\n  | jq -r '.payload' | base64 -d | jq '.predicate.buildDefinition.externalParameters, .predicate.runDetails.builder.id'\n```\n\n### Step 4: Verify a release binary with slsa-verifier\nFor downloadable binaries (e.g., produced by `slsa-github-generator`), pin the source URI and the tag. slsa-verifier checks the cryptographic signature on the provenance and that the expected builder produced it.\n\n```bash\nslsa-verifier verify-artifact slsa-test-linux-amd64 \\\n  --provenance-path slsa-test-linux-amd64.intoto.jsonl \\\n  --source-uri github.com\u002Fmyorg\u002Fmyrepo \\\n  --source-tag v1.2.3\n\n# Optionally pin the builder identity (SLSA L3)\nslsa-verifier verify-artifact .\u002Fmybin \\\n  --provenance-path .\u002Fmybin.intoto.jsonl \\\n  --source-uri github.com\u002Fmyorg\u002Fmyrepo \\\n  --builder-id https:\u002F\u002Fgithub.com\u002Fslsa-framework\u002Fslsa-github-generator\u002F.github\u002Fworkflows\u002Fgenerator_generic_slsa3.yml@refs\u002Ftags\u002Fv2.0.0\n```\n\n### Step 5: Verify GitHub artifact attestations \u002F blob bundles\nFor artifacts signed via `actions\u002Fattest-build-provenance`, the bundle uses the new Sigstore bundle format.\n\n```bash\ncosign verify-blob-attestation \\\n  --bundle .\u002Fmyartifact.sigstore.json \\\n  --new-bundle-format \\\n  --certificate-oidc-issuer=\"https:\u002F\u002Ftoken.actions.githubusercontent.com\" \\\n  --certificate-identity-regexp=\"^https:\u002F\u002Fgithub.com\u002Fmyorg\u002Fmyrepo\u002F\" \\\n  .\u002Fmyartifact\n\n# Equivalent native GitHub CLI verification\ngh attestation verify .\u002Fmyartifact --repo myorg\u002Fmyrepo\n```\n\n### Step 6: Enforce verification as a gate\nWrap verification so the pipeline fails closed on any error.\n\n```bash\n#!\u002Fusr\u002Fbin\u002Fenv bash\nset -euo pipefail\nIMG=\"ghcr.io\u002Fmyorg\u002Fmyrepo:v1.2.3\"\ncosign verify \\\n  --certificate-oidc-issuer \"https:\u002F\u002Ftoken.actions.githubusercontent.com\" \\\n  --certificate-identity-regexp \"^https:\u002F\u002Fgithub.com\u002Fmyorg\u002Fmyrepo\u002F\" \"$IMG\" >\u002Fdev\u002Fnull\ncosign verify-attestation --type slsaprovenance \\\n  --certificate-oidc-issuer \"https:\u002F\u002Ftoken.actions.githubusercontent.com\" \\\n  --certificate-identity-regexp \"^https:\u002F\u002Fgithub.com\u002Fmyorg\u002Fmyrepo\u002F\" \"$IMG\" >\u002Fdev\u002Fnull\necho \"[+] $IMG verified: signature + SLSA provenance OK\"\n```\n\n### Step 7: Map findings to SLSA Build levels\nDocument the level each consumed artifact achieves:\n- **Build L1** — provenance exists (the build process generates it), but it may be unsigned\u002Fforgeable.\n- **Build L2** — provenance is signed by a hosted build service.\n- **Build L3** — provenance is non-forgeable: generated on an isolated, hardened builder where secrets are unavailable to user-defined steps (e.g., `slsa-github-generator` reusable workflows). Require L3 for high-trust artifacts.\n\n## Tools and Resources\n\n| Tool \u002F Resource | Purpose | Link |\n|-----------------|---------|------|\n| cosign | Sign\u002Fverify artifacts and attestations (keyless) | https:\u002F\u002Fgithub.com\u002Fsigstore\u002Fcosign |\n| slsa-verifier | Verify SLSA provenance from compliant builders | https:\u002F\u002Fgithub.com\u002Fslsa-framework\u002Fslsa-verifier |\n| slsa-github-generator | Produce SLSA L3 provenance in GitHub Actions | https:\u002F\u002Fgithub.com\u002Fslsa-framework\u002Fslsa-github-generator |\n| actions\u002Fattest-build-provenance | GitHub-native provenance attestation | https:\u002F\u002Fgithub.com\u002Factions\u002Fattest-build-provenance |\n| SLSA specification | Build levels and provenance schema | https:\u002F\u002Fslsa.dev\u002Fspec\u002Fv1.0\u002F |\n| Sigstore docs | Fulcio, Rekor, cosign verification | https:\u002F\u002Fdocs.sigstore.dev\u002Fcosign\u002Fverifying\u002Fverify\u002F |\n\n## Verification Identity Reference\n\n| Field | Where it comes from | Why it matters |\n|-------|--------------------|----------------|\n| `--certificate-oidc-issuer` | The OIDC issuer (e.g., GitHub Actions) | Restricts who could have requested the signing cert |\n| `--certificate-identity[-regexp]` | The exact\u002Fpatterned workflow identity (SAN) | Restricts which workflow signed; prevents impersonation |\n| `--source-uri` (slsa-verifier) | Expected source repo | Confirms the artifact came from your repo |\n| `--source-tag` \u002F `--source-versioned-tag` | Expected git tag | Prevents rollback\u002Fsubstitution |\n| `--builder-id` | Trusted builder workflow ref | Enforces SLSA L3 non-forgeable builder |\n\n## Validation Criteria\n\n- [ ] cosign and slsa-verifier installed and report versions\n- [ ] Image signature verified with pinned OIDC issuer AND certificate identity\n- [ ] SLSA provenance attestation verified (`--type slsaprovenance`)\n- [ ] Provenance predicate inspected; source repo\u002Fcommit\u002Fbuilder match\n- [ ] Release binary verified with slsa-verifier (source-uri + tag pinned)\n- [ ] GitHub blob\u002Fbundle attestation verified\n- [ ] Verification wired as a fail-closed CI\u002Fadmission gate\n- [ ] Each consumed artifact assigned a SLSA Build level\n",{"name":5,"tags":49,"author":51,"domain":43,"license":15,"version":52,"nist_csf":53,"subdomain":28,"description":7,"mitre_attack":55},[36,25,27,30,26,32,50,31],"keyless-signing","mahipal","1.0",[54],"PR.DS-01",[56],"T1195","main","54a798831d2266a3ca61ce68a7acb80b81160d57","skills\u002Fverifying-build-provenance-with-slsa-sigstore",4384,"https:\u002F\u002Fgithub.com\u002Fmukul975\u002FAnthropic-Cybersecurity-Skills","https:\u002F\u002Fmahipal.engineer\u002FAnthropic-Cybersecurity-Skills\u002F","https:\u002F\u002Fgithub.com\u002Fmukul975","Mahipal.engineer","🔐 Cybersecurity | 💻 Dev | 📷 Street Photographer\r\n🎓 MSc | 📚 Research & AI Security","2026-08-31 12:32:44",{"source":8,"skillName":5,"commands":68,"prompt":78,"zipAvailable":79},[69,72,75],{"tool":70,"command":71},"npx","npx skills add mukul975\u002FAnthropic-Cybersecurity-Skills --skill verifying-build-provenance-with-slsa-sigstore",{"tool":73,"command":74},"bunx","bunx skills add mukul975\u002FAnthropic-Cybersecurity-Skills --skill verifying-build-provenance-with-slsa-sigstore",{"tool":76,"command":77},"pnpm","pnpm dlx skills add mukul975\u002FAnthropic-Cybersecurity-Skills --skill verifying-build-provenance-with-slsa-sigstore","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmukul975\u002FAnthropic-Cybersecurity-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fverifying-build-provenance-with-slsa-sigstore\u002FSKILL.md",true,[81,86,92,96],{"path":82,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":84,"sourceHtmlUrl":85},"LICENSE","许可证",11255,"https:\u002F\u002Fgithub.com\u002Fmukul975\u002FAnthropic-Cybersecurity-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fverifying-build-provenance-with-slsa-sigstore\u002FLICENSE",{"path":87,"resourceType":88,"resourceTypeDesc":89,"sizeBytes":90,"sourceHtmlUrl":91},"references\u002Fapi-reference.md","REFERENCE","参考文档",2488,"https:\u002F\u002Fgithub.com\u002Fmukul975\u002FAnthropic-Cybersecurity-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fverifying-build-provenance-with-slsa-sigstore\u002Freferences\u002Fapi-reference.md",{"path":93,"resourceType":88,"resourceTypeDesc":89,"sizeBytes":94,"sourceHtmlUrl":95},"references\u002Fstandards.md",1390,"https:\u002F\u002Fgithub.com\u002Fmukul975\u002FAnthropic-Cybersecurity-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fverifying-build-provenance-with-slsa-sigstore\u002Freferences\u002Fstandards.md",{"path":97,"resourceType":98,"resourceTypeDesc":99,"sizeBytes":100,"sourceHtmlUrl":101},"scripts\u002Fagent.py","SCRIPT","脚本",4853,"https:\u002F\u002Fgithub.com\u002Fmukul975\u002FAnthropic-Cybersecurity-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fverifying-build-provenance-with-slsa-sigstore\u002Fscripts\u002Fagent.py",[103,127,155,181,208,232],{"skillNo":104,"name":105,"nameZh":6,"description":106,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":107,"categories":108,"keywords":110,"publishedAt":44},"01M6AGDGBPWYVZ2F11GFKJ4HZ9","validating-tpm-measured-boot-attestation","Verifies TPM 2.0 measured-boot integrity and remote attestation with tpm2-tools -- reading PCRs (tpm2_pcrread), replaying the boot event log, generating and checking signed quotes (tpm2_quote\u002Ftpm2_checkquote), and sealing secrets to a PCR policy. Use to confirm a system booted trusted firmware\u002Fkernel for Zero Trust device posture, detect boot-chain tampering via PCR drift, or build a golden-value baseline for fleet attestation.","https:\u002F\u002Fgithub.com\u002Fmukul975\u002FAnthropic-Cybersecurity-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fvalidating-tpm-measured-boot-attestation\u002FSKILL.md",[109],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[111,32,112,113,34,114,43,40,115,116,117,118,119,120,121,122,123,124,125,126],"boot","TPM","validating tpm measured boot attestation","policy","verification","ZeRO","firmware","Tools","measured-boot","PCR","integrity","secrets","remote-attestation","tpm2-tools","integrity-verification","trusted-computing",{"skillNo":128,"name":129,"nameZh":6,"description":130,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":131,"categories":132,"keywords":137,"publishedAt":44},"01M6AGDCW0Y4FXZ3362GT1941M","validating-backup-integrity-for-recovery","Validates backup integrity through cryptographic hash verification, automated restore testing, corruption detection, and recoverability checks to confirm backups are reliable for disaster recovery and ransomware response. Use before relying on backups for recovery, when building post-backup validation pipelines, auditing backup infrastructure for compliance, or checking immutable\u002Fair-gapped backups for silent corruption or tampering.","https:\u002F\u002Fgithub.com\u002Fmukul975\u002FAnthropic-Cybersecurity-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fvalidating-backup-integrity-for-recovery\u002FSKILL.md",[133,136],{"categoryNo":134,"categoryName":135,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[121,138,139,140,141,43,142,143,115,144,145,146,147,148,149,150,151,152,153,154],"backup","recovery","validating backup integrity for recovery","testing","infrastructure","validation","compliance","hash-verification","incident-response","ransomware","cryptocurrency","detection","t1078","t1490","immutable","disaster-recovery","restore-testing",{"skillNo":156,"name":157,"nameZh":6,"description":158,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":159,"categories":160,"keywords":162,"publishedAt":44},"01M6AGD9GBG2KZ336AE763J3WH","triaging-windows-with-kape","Runs KAPE (Kroll Artifact Parser and Extractor) to collect targeted forensic artifacts (registry hives, $MFT, event logs, prefetch, browser data) via Targets and parse them with Modules wrapping Eric Zimmerman's EZ Tools (PECmd, MFTECmd, RECmd). Use during early incident containment\u002Ftriage when full disk imaging is impractical but a defensible, parseable Windows artifact set is needed quickly, including at-scale remote collection.","https:\u002F\u002Fgithub.com\u002Fmukul975\u002FAnthropic-Cybersecurity-Skills\u002Fblob\u002Fmain\u002Fskills\u002Ftriaging-windows-with-kape\u002FSKILL.md",[161],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[163,164,165,43,166,167,168,169,170,171,172,173,174,175,176,177,118,178,179,180],"windows","kape","triaging windows with kape","registry","browser","logs","windows-forensics","dfir","mft","mftecmd","data","prefetch","eric-zimmerman","digital-forensics","SET","collection","pecmd","artifact-collection",{"skillNo":182,"name":183,"nameZh":6,"description":184,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":185,"categories":186,"keywords":188,"publishedAt":44},"01M6AGD5PW5J4EVZM958WD74ZQ","triaging-vulnerabilities-with-ssvc-framework","Triages and prioritizes vulnerabilities with CISA's Stakeholder-Specific Vulnerability Categorization (SSVC) decision tree, weighing exploitation status (via the CISA KEV catalog and FIRST EPSS API), technical impact, automatability, and mission prevalence to output Track\u002FTrack*\u002FAttend\u002FAct decisions. Use when prioritizing vulnerability scan results (OpenVAS, Nessus, Qualys) for remediation planning beyond raw CVSS scores.","https:\u002F\u002Fgithub.com\u002Fmukul975\u002FAnthropic-Cybersecurity-Skills\u002Fblob\u002Fmain\u002Fskills\u002Ftriaging-vulnerabilities-with-ssvc-framework\u002FSKILL.md",[187],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[189,190,191,43,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207],"vulnerabilities","framework","triaging vulnerabilities with ssvc framework","status","planning","CISA","vulnerability-management","risk-management","nessus","qualys","openvas","cvss","remediation","risk","vulnerability","api","prioritization","ssvc","decision-tree",{"skillNo":209,"name":210,"nameZh":6,"description":211,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":212,"categories":213,"keywords":215,"publishedAt":44},"01M6AGD24TTQQM4CXG69E3B9TJ","triaging-security-incident","Performs initial triage of security incidents using the NIST SP 800-61r3 and SANS PICERL frameworks, classifying incident type, assigning priority by business impact, and routing to the appropriate response team. Use when a SIEM\u002FEDR alert needs human classification, concurrent alerts must be prioritized, or a user report or threat-intel IOC match requires initial incident categorization.","https:\u002F\u002Fgithub.com\u002Fmukul975\u002FAnthropic-Cybersecurity-Skills\u002Fblob\u002Fmain\u002Fskills\u002Ftriaging-security-incident\u002FSKILL.md",[214],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[34,216,43,217,218,219,220,221,222,223,224,150,225,151,226,227,228,229,230,231],"triaging security incident","siem","file","ioc","soc","NIST-800-61","NIST","severity","edr","execution","analysis","classification","severity-classification","incident-triage","SANS-PICERL","SOC-operations",{"skillNo":233,"name":234,"nameZh":6,"description":235,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":236,"categories":237,"keywords":239,"publishedAt":44},"01M6AGCYCY9QW562V4CDK3X2RY","triaging-security-incident-with-ir-playbook","Classifies and prioritizes security incidents using structured IR playbooks and SIEM\u002Fcase-management queries (Splunk, TheHive) to determine severity, assign response teams, and initiate the appropriate response procedures. Use when a new SOC alert needs triage, multiple concurrent incidents require prioritization, or automated triage rules need validation or tuning.","https:\u002F\u002Fgithub.com\u002Fmukul975\u002FAnthropic-Cybersecurity-Skills\u002Fblob\u002Fmain\u002Fskills\u002Ftriaging-security-incident-with-ir-playbook\u002FSKILL.md",[238],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[34,240,241,43,217,242,243,143,220,244,146,223,150,151,245,246,227,205,228],"playbook","triaging security incident with ir playbook","triage","teams","splunk","tuning","thehive"]