Triage BoardGet the app

Concept · Controls and risk

SAST vs DAST vs SCA (and the SBOM)

Static application security testing (SAST) reads your source code without running it, dynamic application security testing (DAST) probes the running application from outside, and software composition analysis (SCA) lists the third-party components you ship and checks each version against known vulnerabilities, which gives you the software bill of materials (SBOM). All three sit in objective 2.4 of the CS0-004 exam objectives, inside controls and risk management.

  • Exam code CS0-004
  • Tickets here 8

One build, three scanners

ciA fictional pipeline run: each stage reports a different kind of finding
[build 4127] stage=sast  tool=static-analyzer  target=src/  HIGH  CWE-89   src/orders/search.py:58   SQL string built from request parameter[build 4127] stage=sca   tool=composition-scan  manifest=requirements.txt  HIGH  CVE-20XX-1111   pdfrender 3.0.2   fixed in 3.0.5  INFO  SBOM written: sbom/orders-service.json (214 components)[build 4127] stage=dast  tool=web-scanner  target=https://staging.example.com  MED   response lacks Content-Security-Policy header   GET /orders  MED   session cookie set without Secure flag          POST /login[build 4127] done: 4 findings, report attached to change request

Line 2 names a file and a line number, line 4 a package and a version, line 7 a URL. That location is the quickest way to tell which kind of testing produced a finding.

What each stage could see

SAST parsed the code and never sent a request. That white-box view lets it flag the string-built query in search.py on a branch no test ever reaches, and it runs at commit or build time, before anything is deployed. What it cannot see is anything that only exists at runtime: server configuration, response headers, how the app behaves behind a proxy.

DAST worked against a live staging instance. It is a black-box method: send requests, judge the responses. It caught the missing header and the cookie flag, which no source file shows, but it cannot name the file to fix, and it only tests the paths its crawler finds. Fuzzing, which feeds malformed input to running code, is a dynamic technique; the CS0-003 objectives named it and the CS0-004 objectives do not.

SCA never looked at your team's code. It read the manifest, listed every component and version, and matched them against published Common Vulnerabilities and Exposures (CVE) entries. The list it writes out is the SBOM. That inventory is what lets you answer, the day a new library flaw is announced, whether you ship the library at all; the OWASP Top 10:2025 lists Software Supply Chain Failures as A03 for that reason. What happens to the finding next is covered under prioritizing and mitigating vulnerabilities.

Where SAMM fits

Objective 2.4 lists the Software Assurance Maturity Model (SAMM) next to SAST and DAST, but OWASP SAMM scans nothing. It is a framework for measuring how mature an organization's software security program is. An option that offers SAMM as the thing that finds a flaw is pointing at the wrong layer.

The three side by side

SAST, DAST and SCA as CS0-004 objective 2.4 frames them
PointSASTDASTSCA
ExaminesYour source codeThe running applicationThird-party components
App must runNoYesNo
ViewWhite-boxBlack-boxPackage inventory
Typical findingInjection flaw at a file and lineMissing header, weak cookie flagLibrary version with a known CVE
Pipeline stageCommit and buildStaging or testBuild, then whenever new CVEs appear
Output to keepFindings mapped to CWEFindings mapped to URLsThe SBOM
Blind spotRuntime and configurationPaths it never reachesFlaws in your own code

CWE (Common Weakness Enumeration) names a type of weakness; a CVE names one specific, published vulnerability.

The word “supplier” in the stemTrap

When the scenario is about a vendor library, an open-source package or a component list, the answer lives with SCA and the SBOM, even when SAST is offered and sounds thorough. SAST reviews what your developers wrote. The reverse holds too: a flaw in your own login handler will never show up in an SBOM.

Name the tester

Source code, a running app or a list of components: sort the stem into one of the three first.

Ticket 1 / 8

0 right

INC-001

An IT security team is performing a thorough review of an application to identify potential security vulnerabilities by examining the source code without executing it. What type of security testing are they performing?

Pick an option to open the notes on all of them.

Key and notes on every option

Key: A

  1. ACorrect: Static analysis (SAST) examines source code without running it, which is what the stem describes.
  2. BDynamic analysis (DAST) tests the application while it runs, so it needs the code to execute.
  3. CIntegration testing checks that components work together correctly; it's a functional test, not a code security review.
  4. DPenetration testing actively attacks a running system to exploit weaknesses rather than reading its source code.

INC-002

The cybersecurity team is in the process of conducting security assessments on a newly deployed system. You suggest analyzing the system while it is in operation to find vulnerabilities. What type of testing are you recommending?

Pick an option to open the notes on all of them.

Key and notes on every option

Key: C

  1. AStatic analysis reviews code or configuration without running the system, the opposite of what is suggested.
  2. BFunctional testing checks that features work as specified, not that the running system is free of vulnerabilities.
  3. CCorrect: Testing a system while it runs is dynamic analysis, which finds issues that only appear at runtime.
  4. DPenetration testing attacks a running system too, but it's a broader, goal-driven exercise to exploit weaknesses, not the general type of runtime analysis described.

INC-003

Which approach is most effective for managing vulnerabilities in third-party software components used in internal applications?

Pick an option to open the notes on all of them.

Key and notes on every option

Key: C

  1. AA weekly manual NVD check is slow, misses components you don't know you have and doesn't scale.
  2. BVendor notifications are often late, and open-source components may have no vendor to tell you at all.
  3. CCorrect: SCA automatically inventories third-party and open-source components, including transitive ones, and matches them to known vulnerabilities, which also feeds the SBOM.
  4. DBanning all third-party components is unrealistic for modern software and would stop development.

INC-004

Given the following SBOM excerpt for internal services, which application is exposed to unseen risk through a vulnerable sub-component and requires mitigation?

Exhibit

ApplicationDirect DependencyTransitive DependencyVersionKnown Exploits
Payment Gatewaysrv-framecookie-kit1.4.5No
Auth Serviceauth-kittoken-parse2.2.0Yes
Employee User Portalui-coreutil-lib4.1.7No
Billing Servicehttp-clientredirect-follow1.1.4No

Pick an option to open the notes on all of them.

Key and notes on every option

Key: A

  1. ACorrect: The Auth Service depends indirectly (through auth-kit) on token-parse 2.2.0, which has known exploits, so it carries hidden risk from a transitive dependency.
  2. BThere is no Load Balancer in the SBOM excerpt, so there is no evidence of a vulnerable sub-component for it.
  3. CThe Payment Gateway's transitive dependency (cookie-kit) shows no known exploits in the excerpt.
  4. DThe Billing Service's transitive dependency (redirect-follow) shows no known exploits in the excerpt.

INC-005

Review the dependency tree extract below. Which package represents the underlying root cause of the vulnerability exposure in the WebPortalApp wrapper?

Exhibit

ComponentDependency LevelIncluded PackageCVE Present
WebPortalAppRootAuthFrameworkNo
AuthFrameworkDirectSessionManagerNo
SessionManagerTransitiveCryptoLib-v1Yes
ReportingModuleDirectPDFGeneratorNo

Pick an option to open the notes on all of them.

Key and notes on every option

Key: D

  1. AAuthFramework is a direct dependency with no CVE; it only pulls in the vulnerable code further down.
  2. BSessionManager has no CVE itself; it's the link that brings in the vulnerable library.
  3. CReportingModule and its PDFGenerator package show no CVE and sit on a separate branch of the tree.
  4. DCorrect: CryptoLib-v1 is the transitive package that carries the CVE, so it's the root cause reaching WebPortalApp through AuthFramework → SessionManager.

INC-006

Why did traditional host-based vulnerability scanners fail to detect a critical flaw embedded deep within a compiled internal microservice?

Pick an option to open the notes on all of them.

Key and notes on every option

Key: B

  1. AHost scanners don't scan supplier code repositories at all, so privileges there aren't why they missed the flaw.
  2. BCorrect: Host scanners mostly read installed package inventories and miss libraries bundled deep inside compiled code, so they effectively see only the top layer of dependencies; SCA and an SBOM expose the nested components.
  3. CIgnoring scripting languages wouldn't explain missing a flaw embedded in a compiled microservice.
  4. DHost-based vulnerability scanners check hosts for vulnerabilities; tracking CI server misconfigurations isn't what they focus on.

INC-007

An analyst receives an updated software bill of materials from a vendor. A critical upstream component has no published CVEs but lists CWE-79 (Cross-Site Scripting) as a declared weakness. How should the analyst project future exploitability?

Pick an option to open the notes on all of them.

Key and notes on every option

Key: B

  1. AWaiting for a CVSS score leaves a declared weakness unaddressed, and many weaknesses never get a CVE before they are exploited.
  2. BCorrect: CWE-79 means the component has a cross-site scripting weakness, so mitigate injection paths now (output encoding, input validation, CSP) without waiting for a CVE.
  3. CNo CVE doesn't mean secure, and the SBOM explicitly declares an XSS weakness.
  4. DAn SBOM lists components and their properties; it can't include exploitation timelines, which don't exist ahead of time.

INC-008

A security team wants to reduce recurring high and critical CWE findings in production code. Which CI pipeline control set best enforces secure coding while preserving developer velocity?

Pick an option to open the notes on all of them.

Key and notes on every option

Key: B

  1. ARelying on penetration tests after deployment finds flaws late, when they cost the most to fix, and doesn't enforce anything in the pipeline.
  2. BCorrect: Failing the build only on high and critical CWEs stops the serious flaws early, and peer review of security-relevant changes adds a check without blocking routine work.
  3. CSAST only on release branches and weekly emails finds issues late and enforces nothing, so the same weaknesses keep returning.
  4. DMaking security triage every CWE before any merge creates a bottleneck that kills developer velocity.

Shift tally

0 / 0

Three loose ends

Do I need to know IAST or RASP for CS0-004?

No. Under application security, objective 2.4 names SAST, DAST and SAMM; under third-party risk it names supply chain, SCA and SBOM (CS0-004 objectives, version 2.0, checked October 2026). Treat interactive testing and runtime self-protection as background reading.

Can I count an SBOM as a security control?

Not by itself. It is an ingredients list; the value comes from matching it against new vulnerability data and ranking what you find, which is where CVSS and EPSS come in. CISA collects its SBOM material at cisa.gov/sbom.

Can I treat DAST and a penetration test as the same thing?

No, although both hit a running system. A DAST tool automates requests and checks responses; a penetration test adds a person who chains findings and exploits them. Exploitation and pivoting are the subject of another CompTIA exam, compared in CySA+ vs PenTest+.

Keep the queue going on your phone

Our practice app carries CySA+ questions to your phone, on iPhone and Android.