What is SARIF? The standard format for security findings

2 min read · Explainer
TL;DR

SARIF is a standardized JSON format for security findings: each result carries its rule, location, severity, message, and optionally the full code-flow trace that produced it. Because it is an OASIS standard, any SARIF-emitting scanner can feed any SARIF-consuming dashboard, IDE, or code-review integration - it is the interchange layer that keeps security tooling composable.

SARIF, the Static Analysis Results Interchange Format, is the standard way security tools report findings. It is a JSON format standardized at OASIS: a scanner writes a SARIF file describing what it found and where, and any SARIF-aware consumer - a dashboard, an IDE, a code-review integration - can read it without knowing anything else about the tool that produced it.

The problem it solves

Every scanner needs to answer the same questions about each finding: which rule fired, where, how severe, and why. Before standardization, each tool answered in its own format, and every platform that wanted to display findings maintained a parser per tool. The result was integration friction that quietly locked teams into whatever tooling they had already wired up.

SARIF fixes the interface. The scanner’s job ends at “emit valid SARIF”; the consumer’s job starts at “read valid SARIF”; neither needs to know the other. For a platform built on the principle that engines detect and the dashboard governs, a standard interchange format is not a convenience - it is what makes the separation work.

What a finding contains

A SARIF file describes one or more runs, each declaring the tool and its rules, followed by results. A well-formed result carries:

  • Rule identity - which check fired, with links back to the rule’s metadata.
  • Location - file, line, column, and a snippet of the affected code.
  • Severity and ranking - the level, plus numeric properties consumers use for ordering.
  • Message - the human-readable explanation.
  • Code flows - for data-flow findings, the step-by-step path from source to sink, which is how taint analysis evidence travels inside the file.
  • Fingerprints - identifiers designed to keep a finding’s identity stable across scans, the property that lets triage decisions persist instead of resetting.

The format also has an extension point - property bags - where tools attach structured data beyond the core schema, such as CWE numbers, confidence levels, or engine-specific context.

What to expect from a serious emitter

Emitting minimally valid SARIF is easy; emitting useful SARIF is a commitment. The differences that matter downstream: schema-valid output (consumers reject or mangle invalid files), populated code flows so evidence survives the export, stable content-based fingerprints rather than line-number identities, and severity properties that reflect real prioritization signals rather than a single flat level.

The SecuNexa engines emit SARIF 2.1.0 with all of the above - full traces, CWE mapping, confidence, and stable fingerprints - which is exactly what the dashboard consumes to correlate findings across engines. The practical benefit runs in both directions: SecuNexa results plug into anything SARIF-aware you already run, and the dashboard’s contract with its own engines is the same public standard everyone else can meet.

Frequently asked questions

Why does a standard findings format matter?

Without one, every scanner invents its own output and every consumer writes bespoke parsers for each tool, so switching or adding scanners means integration work everywhere. With SARIF, the contract is fixed: tools emit it, platforms consume it, and the pieces stay interchangeable. It is the same argument as CycloneDX for SBOMs, applied to findings.

What can a SARIF finding carry beyond file and line?

Quite a lot: the rule identifier and its metadata, severity and ranking properties, the message, a snippet of the affected code, related locations, fingerprints for tracking identity across scans, and codeFlows - the step-by-step path a taint analysis followed from source to sink. Rich emitters use these to ship the evidence with the finding.

Is SARIF only for static analysis?

The name says static, and SAST is its home ground, but the format is used more broadly: IaC scanners, secret detectors, and other tools emit SARIF so their findings can travel through the same integrations. Inventory data is the exception - components belong in an SBOM format like CycloneDX, not in SARIF.

See SARIF in practice, on your own code
A 30-minute live session inside a network like yours.
Request a demo