Safeguard
Security Guides•

SAST glossary: 15 terms buyers hear on vendor calls

Plain definitions of fifteen terms used in SAST sales calls, from taint analysis and sinks to SARIF and baselines, with a note on what to ask for each.

Safeguard Security Team
8 min read

This glossary defines fifteen terms you will hear on SAST vendor calls, in plain words, with one question to ask for each. Several come straight from OWASP's description of static code analysis, and the interchange format comes from the OASIS SARIF standard.

Core analysis terms

TermPlain definitionQuestion to ask
Static analysisChecking code without running itWhat input does it need, source or compiled?
Taint analysisTracing variables holding user controlled input to risky functions, flagged if they arrive unsanitizedDoes it follow data across files?
SourceWhere untrusted data enters, such as a request parameterCan I define custom sources?
SinkA risky operation the data should not reach unchecked, such as a database callCan I define custom sinks?
SanitizerCode that makes data safe for a sinkDoes it recognize my own helper functions?
Data flow analysisFollowing how values move through a programHow deep, within a function or across the app?
Control flow graphA graph of the paths execution can take through codeDoes the engine use it for path sensitivity?
Lexical analysisTurning code into tokens so it is easier to processIs the tool doing more than token matching?

Result terms

TermPlain definitionQuestion to ask
False positiveA reported issue that is not a real flawWhat controls exist to suppress and track these?
False negativeA real flaw the tool does not reportHow would we measure what you miss?
SeverityHow bad the issue could beIs it separate from confidence?
ConfidenceHow sure the tool is that the finding is realIs it shown per finding?
CWEA category of software weaknessIs every finding mapped to one?
SARIFA standard format for the output of static analysis toolsCan I export results in it?

Process terms

TermPlain definitionQuestion to ask
BaselineA saved snapshot of existing findings so later scans show only new onesHow does it handle moved code?
TriageDeciding whether each finding is real, and what to doCan statuses and reasons be recorded?

How the terms fit together

A scan builds a model of your code, often using a control flow graph and data flow analysis. Taint analysis then looks for paths from sources to sinks that skip a sanitizer. Each path becomes a finding with a CWE, a severity and a confidence. You triage the findings, mark false positives, and save a baseline so the next scan shows what is new.

OWASP says taint analysis identifies variables tainted with user controllable input and traces them to possible vulnerable functions, called sinks. If the tainted variable reaches a sink without being sanitized, it is flagged. That is the heart of most injection checks, and it explains why sanitizer recognition has such a large effect on false positives.

Terms that sound the same but are not

  • Severity and confidence are different. A high severity finding can have low confidence.
  • False positive and accepted risk are different. One is not real. The other is real and knowingly kept.
  • SAST and SCA are different. One reads your code, the other reads your dependencies.

Use the glossary on a call

Pick five terms and ask the vendor to show each on a real finding. A vendor who can point to the source, the sink, and the missing sanitizer on screen is explaining something concrete. One who stays at the level of slogans may not have the depth.

A worked example: reading one finding with the glossary

Here is a finding described in words, with each glossary term marked in brackets.

The tool reports a possible SQL injection [CWE]. A request parameter called customerId enters the application in the controller [source]. It passes through a helper that trims whitespace and then into a method that builds a query string [data flow analysis]. The query string reaches the database execute call [sink]. No function on the path escapes or parameterizes the value [no sanitizer]. The tool assigns high severity [severity] and medium confidence [confidence], because it does not know whether the trimming helper does more than it appears to. The path was found by following paths through the program [control flow graph] with tracking of tainted values [taint analysis].

A developer reviews it, finds that the value is a numeric id converted earlier by the framework, and marks it as not exploitable [triage, false positive]. The team saves a baseline [baseline] so the same finding does not return in the next scan unless the code changes.

Reading a finding this way takes a few minutes and teaches a new reviewer the vocabulary faster than a list of definitions.

Questions that separate depth from slogans

  1. Show me the source, the sink and the path on a real finding.
  2. What recognizes a sanitizer, and can I add my own?
  3. Does the analysis cross files and modules, and how deep does it go?
  4. What controls confidence, and is it shown separately from severity?
  5. How are suppressions and false positives recorded and reviewed?
  6. What happens to the baseline when files move or are renamed?
  7. What output formats can I export?

A vendor who answers these with examples is describing a working engine. One who answers with general statements about "advanced analysis" may not be.

Term pairs that get mixed up

PairDifference
Source and sinkWhere untrusted data enters, and where it becomes dangerous
Sanitizer and validatorOne transforms data to make it safe, the other checks it and may reject
False positive and false negativeA wrong alarm, and a missed real flaw
Severity and priorityHow bad a flaw could be, and when your team should fix it
Baseline and suppressionA snapshot of existing findings, and a decision about one finding
Rule and policyA check the tool runs, and a decision about what to do with its output

Having the difference clear avoids many internal arguments.

Using the glossary in training

If you are rolling out SAST to developers, give them a one page version of the core terms. Add two examples from your own code, one finding that was real and one that was a false positive. Developers who understand sources and sinks resolve findings faster, and they write fewer issues in the first place because they begin to see where untrusted data goes.

Terms you may hear that are not in the list

Vendors also use words like "SAST engine," "ruleset," "query language," "incremental scan" and "triage assistant." Treat each as a prompt for a question: what exactly does it do, what does it need, what does it send out. The OWASP page on static code analysis is a neutral reference for the core ideas, and the SARIF specification defines the interchange format in detail for readers who want to go deeper.

Try it yourself

Click through it at your own pace, or open it full screen. Pick one finding and find its source, its sink and its weakness type using the terms above.

Quick check

Which term causes the most confusion?

Severity versus confidence. Ask for both on each finding, and sort by them separately.

Why does SARIF matter to a buyer?

It is a standard output format, so results can move between tools and into your tracker without custom conversion.

Which three terms should a new developer learn first?

Source, sink and false positive. With those, they can read most findings and explain why a report may be wrong.

Safeguard offers SBOM and dependency scanning, and a free scan is available at gold.safeguard.sh/scan.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.