Back to the course
Test yourself

Software supply chain in depth

Final exam · 60 questions · answers explained as you pick
Threat model & SLSA
12 questions
01A software supply chain attack targets…
Incorrect — That is credential theft, not a supply-chain attack.
Correct — Compromise one build and every consumer gets the payload — the leverage attackers seek.
Incorrect — The chain is broader — source, build, dependencies, distribution.
Incorrect — DNS is one vector; the supply chain is the whole path from code to deploy.
02The SolarWinds attack is a canonical example of…
Correct — The malicious code was inserted during build, so it inherited legitimate signing and distribution.
Incorrect — The compromise was in the build pipeline, not user phishing.
Incorrect — Unrelated to the build-injection technique.
Incorrect — That is a different class of incident.
03SLSA (Supply-chain Levels for Software Artifacts) is primarily a framework for…
Incorrect — That is vulnerability scanning; SLSA is about build integrity/provenance.
Correct — It answers "was this artifact built the way we claim, from the source we claim?".
Incorrect — It concerns provenance, not source encryption.
Incorrect — Unrelated to secret management.
04SLSA Build Level 1 requires…
Correct — The entry rung: you can produce and consume provenance, even if not yet hardened.
Incorrect — That is Level 3, the top build level.
Incorrect — Level 0 is "no guarantees"; Level 1 requires provenance.
Incorrect — That is a source-track control, not the Build L1 requirement.
05The key jump from SLSA Build L2 to L3 is…
Incorrect — Linting is unrelated to the provenance-hardening requirement.
Correct — L3 makes it infeasible for a build to forge its own provenance.
Incorrect — Publishing location is not the L3 criterion.
Incorrect — Encryption is not what distinguishes L3.
06A hermetic build improves supply-chain security because it…
Correct — No fetching arbitrary things mid-build; the inputs are pinned and known.
Incorrect — Speed is not the security property.
Incorrect — It resolves dependencies from declared, pinned inputs.
Incorrect — Hermeticity is about isolation/reproducibility, not encryption.
07Provenance answers the question…
Incorrect — That is a scanner’s job (SBOM + vuln DB).
Correct — Provenance is the verifiable "birth certificate" of the artifact.
Incorrect — That is authorization, not provenance.
Incorrect — Unrelated to provenance.
08Why is a signed artifact without provenance insufficient?
Correct — A compromised build can sign a backdoored artifact — provenance is needed to trust the build itself.
Incorrect — Signatures are strong; they just attest identity, not build integrity.
Incorrect — They are complementary — sign the provenance too.
Incorrect — SolarWinds shipped signed, trusted binaries — signing alone did not stop it.
09The two SLSA "tracks" in v1.0 focus on…
Incorrect — Not what the tracks describe.
Correct — v1.0 formalized the Build track; other tracks are in progress.
Incorrect — Unrelated to SLSA tracks.
Incorrect — Irrelevant.
10Threat "dependency confusion" works by…
Correct — Misconfigured resolution can pull the attacker’s public package over your private one.
Incorrect — Unrelated to package resolution.
Incorrect — That is a DoS, not dependency confusion.
Incorrect — Irrelevant to the attack.
11Reproducible builds strengthen the chain because…
Incorrect — Size is not the point.
Correct — A divergent rebuild reveals injected changes.
Incorrect — They complement signing, not replace it.
Incorrect — Unrelated to encryption.
12The overall goal of supply-chain security is to be able to…
Correct — End-to-end, tamper-evident assurance from commit to running workload.
Incorrect — The goal is assurance, not merely speed.
Incorrect — The aim is to use it safely, not avoid it.
Incorrect — A narrow control, not the overall goal.
12 questions · explanations appear as you answer
Provenance & in-toto
12 questions
01in-toto is a framework for…
Correct — It records and verifies what happened at each stage of the pipeline.
Incorrect — Unrelated to in-toto.
Incorrect — Not its purpose.
Incorrect — Irrelevant.
02An in-toto attestation binds…
Incorrect — It is about artifacts, not credentials.
Correct — The statement says "about THIS artifact, here is this claim".
Incorrect — Networking, not attestation.
Incorrect — Not what an attestation binds.
03The "subject" of an attestation is identified by…
Correct — Digest binding ensures the claim applies to exactly that artifact, not a lookalike.
Incorrect — Names are mutable; digests are not.
Incorrect — A build number does not cryptographically identify the bytes.
Incorrect — A location, not a content identifier.
04SLSA provenance is expressed as…
Incorrect — A Dockerfile is build instructions, not provenance.
Correct — SLSA provenance is a standardized in-toto predicate type.
Incorrect — Unrelated.
Incorrect — Not a provenance format.
05Why sign attestations rather than just store them?
Correct — An unsigned attestation could be forged or altered by anyone.
Incorrect — Signing is about integrity, not size.
Incorrect — Storage does not require signing; trust does.
Incorrect — Unrelated to build speed.
06A Verification Summary Attestation (VSA) records…
Incorrect — Not what a VSA captures.
Correct — It summarizes a verification decision for reuse.
Incorrect — Unrelated to credentials.
Incorrect — Not the purpose of a VSA.
07Storing attestations alongside the image in the registry (as referrers) lets you…
Correct — The OCI referrers API links attestations to the image they describe.
Incorrect — No runtime effect.
Incorrect — Unrelated.
Incorrect — You still sign the attestations.
08Provenance is only trustworthy if the build that generated it is…
Incorrect — Speed is irrelevant to trust.
Correct — A compromised build could otherwise fabricate a clean-looking provenance.
Incorrect — Local, unhardened builds are the opposite of trustworthy provenance.
Incorrect — Language is irrelevant.
09The predicate of an attestation is…
Correct — Subject = what; predicate = the claim about it.
Incorrect — The key signs the statement; it is not the predicate.
Incorrect — Not the claim content.
Incorrect — That is the subject, referenced by digest.
10Multiple attestation types for one artifact (provenance + SBOM + test) enable…
Incorrect — They compose into a rich, verifiable evidence set.
Correct — e.g. "built by our pipeline AND scanned AND signed" at admission.
Incorrect — Unrelated.
Incorrect — Not what attestations do.
11The difference between provenance and an SBOM is…
Correct — Complementary claims — build integrity vs component inventory.
Incorrect — They answer different questions.
Incorrect — That is provenance; SBOM is the component list.
Incorrect — The SBOM lists dependencies; provenance describes the build.
12Attestations become actionable when…
Incorrect — Unverified attestations add no security.
Correct — Verification at a gate is what turns evidence into a control.
Incorrect — A log entry is not enforcement.
Incorrect — Not an enforcement mechanism.
12 questions · explanations appear as you answer
Sigstore & signing
12 questions
01cosign is used to…
Correct — The Sigstore signing tool for OCI artifacts and more.
Incorrect — That is Grype/Trivy.
Incorrect — That is a builder like BuildKit.
Incorrect — Unrelated.
02Sigstore "keyless" signing works by…
Incorrect — It very much uses crypto — just with ephemeral keys.
Correct — No long-lived private key to manage or leak.
Incorrect — That is exactly what keyless avoids.
Incorrect — No persistent key exists to store.
03Fulcio is…
Correct — It binds "who" (an OIDC identity) to an ephemeral signing key.
Incorrect — That is Rekor.
Incorrect — That is Syft.
Incorrect — Unrelated.
04Rekor is…
Incorrect — Unrelated to signing.
Correct — It gives public, tamper-evident proof that a signature existed at a point in time.
Incorrect — That is the NVD/GHSA, not Rekor.
Incorrect — Unrelated.
05The transparency log matters because it…
Correct — You can prove what was signed, by whom, and when — and spot anomalies.
Incorrect — It logs signatures; it does not encrypt.
Incorrect — No runtime performance role.
Incorrect — It stores public records, never private keys.
06With keyless signing, you verify an image by checking…
Incorrect — You must bind it to an expected identity.
Correct — e.g. "signed by our CI’s workflow identity", not just "signed by someone".
Incorrect — Irrelevant to signature verification.
Incorrect — Transport security is not artifact signing.
07A signature that verifies but is bound to an unexpected identity should be…
Correct — An attacker’s valid signature is still not YOUR pipeline’s signature.
Incorrect — Validity without the right identity is worthless.
Incorrect — Identity mismatch is a strong signal to block.
Incorrect — Policy should block, not just note it.
08cosign can sign not just images but also…
Incorrect — It works across OCI registries and artifact types.
Correct — One tool signs the artifact and its evidence.
Incorrect — Not a signing target.
Incorrect — Unrelated.
09The advantage of keyless over a long-lived signing key is…
Correct — It removes the key-management burden and a major leak vector.
Incorrect — Not the security benefit.
Incorrect — You still verify identity and log inclusion.
Incorrect — It relies on an OIDC identity provider.
10In CI, keyless signing pairs naturally with…
Incorrect — That reintroduces the key you were eliminating.
Correct — Verification can then require "signed by repo X’s release workflow".
Incorrect — Local keys are exactly what keyless avoids.
Incorrect — Identity binding is the whole mechanism.
11Signing an artifact establishes integrity and authenticity, but you still need provenance because…
Correct — A compromised build can sign a backdoored artifact — provenance addresses build trust.
Incorrect — Verification remains valid via the log even after cert expiry.
Incorrect — They compose; sign the provenance too.
Incorrect — Signing alone did not stop build-injection attacks.
12Sigstore lowered adoption barriers to signing mainly by…
Incorrect — It made it easier, not mandatory.
Correct — The hard parts (key custody, proof of inclusion) are handled for you.
Incorrect — Not what Sigstore does.
Incorrect — It works with OCI, not against it.
12 questions · explanations appear as you answer
SBOM & dependency integrity
12 questions
01An SBOM (Software Bill of Materials) is…
Correct — The "ingredient list" you can query when a new CVE drops.
Incorrect — A log is not a structured component inventory.
Incorrect — Unrelated to signing.
Incorrect — Irrelevant.
02The two dominant SBOM formats are…
Incorrect — Those are encodings, not SBOM standards.
Correct — The two widely-adopted standardized SBOM formats.
Incorrect — Those are certificate encodings.
Incorrect — Not the SBOM standards.
03Syft is used to…
Correct — It catalogs the components present.
Incorrect — That is cosign.
Incorrect — That is a policy controller.
Incorrect — Unrelated.
04Grype (or Trivy) uses an SBOM to…
Incorrect — It scans; it does not build.
Correct — The SBOM is the input; the vuln DB is matched against it.
Incorrect — That is cosign.
Incorrect — That is the build/attestation step.
05The main value of generating an SBOM at build time is…
Correct — Log4Shell showed the cost of not knowing your components.
Incorrect — No runtime performance effect.
Incorrect — An SBOM does not shrink the image.
Incorrect — Different control; you still sign.
06A VEX (Vulnerability Exploitability eXchange) document states…
Incorrect — That is license metadata, not VEX.
Correct — It cuts scanner noise by asserting non-exploitable CVEs.
Incorrect — Not what VEX conveys.
Incorrect — Unrelated to VEX.
07Pinning a dependency by cryptographic hash/digest (not just version) prevents…
Correct — The hash guarantees the exact bytes, immune to tag mutation.
Incorrect — Pinning fixes the version; it does not eliminate vulnerabilities.
Incorrect — Not a performance measure.
Incorrect — Unrelated to integrity pinning.
08A lockfile improves integrity because it…
Incorrect — It records versions/hashes; it does not encrypt.
Correct — Everyone builds against identical dependencies; changes are visible in review.
Incorrect — That is hermetic build isolation, a separate control.
Incorrect — Different control.
09Typosquatting in package ecosystems is…
Correct — e.g. "reqeusts" vs "requests" — installs run attacker code.
Incorrect — Unrelated.
Incorrect — Not a signing concept.
Incorrect — Irrelevant.
10Defending against dependency confusion includes…
Incorrect — That is what enables the attack.
Correct — Prevent a public package from shadowing an internal one.
Incorrect — Lockfiles help, not hurt.
Incorrect — Impractical; the fix is controlled resolution.
11OpenSSF Scorecard helps you…
Correct — A data-driven signal for whether a dependency is well-run.
Incorrect — That is cosign.
Incorrect — That is Grype/Trivy.
Incorrect — That is Syft.
12Storing SBOMs as signed attestations attached to the image lets you…
Incorrect — The point is to use them at verification time.
Correct — The SBOM becomes part of the verifiable evidence set, not a side file.
Incorrect — Unrelated.
Incorrect — You still scan; the SBOM feeds it.
12 questions · explanations appear as you answer
Admission & pipeline hardening
12 questions
01Verifying image signatures at Kubernetes admission ensures…
Correct — A tampered or unknown image is rejected before it starts.
Incorrect — No performance effect.
Incorrect — Unrelated to admission verification.
Incorrect — Different control.
02Tools that enforce signature/attestation policy at admission include…
Incorrect — Those generate/scan SBOMs; they do not admit-control.
Correct — They verify signatures/provenance as a Kubernetes admission gate.
Incorrect — Those are monitoring tools.
Incorrect — IaC tools, not admission controllers.
03A strong admission policy requires not just a signature but…
Correct — e.g. "signed by our release workflow AND has SLSA L3 provenance".
Incorrect — Identity and evidence matter, not mere presence.
Incorrect — Names are not a trust signal.
Incorrect — Irrelevant.
04Pinning a container image by digest (not a mutable tag) at deploy matters because…
Incorrect — They are longer; that is not the reason.
Correct — Digest pinning guarantees you run exactly the verified bytes.
Incorrect — Unrelated to scanning.
Incorrect — Digests identify, not encrypt.
05The tj-actions/changed-files (2025) and Codecov incidents reinforced that…
Correct — A compromised action/build step can exfiltrate secrets from many downstream repos.
Incorrect — The opposite — these showed CI is a prime target.
Incorrect — The build and its tooling are equally in scope.
Incorrect — They remain essential; the lesson is about pipeline hardening.
06Pinning third-party CI actions to a full commit SHA (not a tag) prevents…
Incorrect — Not a performance measure.
Correct — A SHA is immutable; a tag like @v4 can be moved.
Incorrect — It addresses action integrity, not every vuln.
Incorrect — Unrelated.
07Least-privilege CI credentials mean…
Correct — A compromised job then reaches far less, for far less time.
Incorrect — Maximal blast radius — the opposite of least privilege.
Incorrect — Jobs need scoped access; the point is minimizing it.
Incorrect — A guaranteed leak.
08Ephemeral, isolated build runners improve security because…
Incorrect — Cost is not the security property.
Correct — Malware cannot linger on a runner reused by the next job.
Incorrect — Unrelated to isolation.
Incorrect — The opposite — you keep the audit trail.
09Protecting the release branch with required review and status checks defends against…
Correct — Two-person review and gates raise the bar for source tampering.
Incorrect — Not a performance concern.
Incorrect — Irrelevant.
Incorrect — A different layer entirely.
10Generating provenance and signatures in the pipeline is only useful if…
Incorrect — Unverified evidence adds no security.
Correct — Produce AND verify — the gate is what makes the evidence a control.
Incorrect — A log line is not enforcement.
Incorrect — Visibility is unrelated to verification.
11Secrets used by the pipeline should be…
Correct — Minimize what a compromised step can steal and reuse.
Incorrect — That leaks them into logs and artifacts.
Incorrect — Committed secrets are compromised secrets.
Incorrect — Broad sharing widens blast radius.
12End-to-end, a hardened supply chain gates deployment on…
Incorrect — Neither is a trust signal.
Correct — Only artifacts with the full, verifiable evidence chain run.
Incorrect — A passing build is not proof of an untampered, verified artifact.
Incorrect — Irrelevant to artifact trust.
12 questions · explanations appear as you answer