DEV Community

Eldor Zufarov
Eldor Zufarov

Posted on

Your SOC 2 Report Is a Reconnaissance Document

How compliance attestation tells the attacker exactly where to look


The report arrived as a PDF attachment.

Forty-seven pages. Auditor letterhead. The Trust Services Criteria laid out in clean columns: Security, Availability, Processing Integrity, Confidentiality, Privacy. Control descriptions on the left. Auditor observations on the right. Every control marked as operating effectively during the coverage period.

The vendor's procurement team sent it over as part of the standard third-party risk review. The security team filed it as evidence of due diligence. The deal closed.

The attacker did not need to be in that email thread. The SOC 2 report was already public — available on the vendor's trust page, downloadable without authentication, shared proactively as a sales asset.

He had already read it.


What a SOC 2 Report Actually Describes

A SOC 2 Type II report attests that a set of controls were designed appropriately and operated effectively during a specific coverage period — typically six to twelve months ending several months before the report's issue date.

Read that sentence again with the attacker's eye.

A set of controls — not all controls. The controls selected for audit are defined by the organization being audited. Controls that were not included in scope were not evaluated. The report says nothing about them, which means the report says nothing about whether they exist, whether they work, or whether they represent a gap.

Operated effectively during a specific coverage period — past tense, bounded. The coverage period ended. The audit concluded. The report was issued. Time passed. The environment changed. New services were deployed. Configuration drifted. Personnel left and were replaced. The report attests to a snapshot. It makes no claim about the present.

Several months before the report's issue date — the gap between coverage period end and report publication is typically three to six months. The gap between publication and the report being shared in a vendor review is often another three to six months. The controls that the report attests to may be a year old by the time a prospective customer reads them.

This is not a defect in the SOC 2 framework. It is a structural property of point-in-time attestation applied to continuously changing systems. The framework was designed to provide assurance. The attacker uses it to identify boundaries.


The Map Inside the Document

A SOC 2 report does not just confirm that controls exist. It describes them. In detail.

The controls section of a typical SOC 2 report will tell a reader which identity provider is in use, how access reviews are conducted and at what frequency, what logging and monitoring tools are deployed, how encryption is implemented for data at rest and in transit, what the incident response process looks like, how change management is structured, and which third-party services are integrated into the production environment.

This is the information a security team needs to evaluate a vendor. It is also, precisely, the information an attacker needs to plan an engagement.

Consider what a SOC 2 report answers for an attacker that would otherwise require significant reconnaissance:

Which identity provider do they use? The report names it. The attacker now knows which platform's vulnerabilities and misconfigurations to research for this specific target.

Do they enforce MFA? The report describes the control. If the control states "MFA is required for access to production systems via the company's SSO provider," the attacker reads the boundary: SSO-enforced MFA. He then asks what is not behind SSO — legacy systems, service accounts, API keys, free-tier access paths, contractor accounts.

What does their logging cover? The control description will state which systems generate logs and what alerting is configured. The attacker reads what is not listed. Unmonitored systems are not described as unmonitored — they are simply absent.

How are third-party integrations managed? The vendor management control names the tools and platforms in production. Each named system is a node in the trust graph the attacker will attempt to traverse.

The SOC 2 report is not a vulnerability database. It is more useful than that. It is an architectural map of the security controls an organization decided to have audited — annotated with the specific tools, processes, and scope boundaries that those controls cover. The gap between "what the controls cover" and "the full attack surface" is not documented anywhere.

That gap is where the attacker operates.


The Scope Boundary Is the Target

In May 2026, Instructure — the company behind Canvas LMS, used by 41% of higher education institutions in the United States — confirmed a breach affecting approximately 275 million students, teachers, and staff across 8,809 institutions worldwide. ShinyHunters claimed 3.65 terabytes of data including names, email addresses, student ID numbers, and private messages.

At the time of the breach, Instructure held ISO 27001 certification and SOC 2 attestation. On paper, an impressive compliance posture — exactly the kind that passes vendor risk assessments without friction.

The entry point was the Free-For-Teacher account program — a free-tier access path that shared infrastructure with paid institutional tenants. The program was not behind the same access controls as production institutional systems. It did not need to be, by the logic of the audit: free accounts are not part of the enterprise service. They are adjacent to it.

A security author covering the incident noted the structural problem precisely: none of the compliance frameworks required Instructure to disclose that the unverified free tier shared infrastructure with paid institutional tenants. The SOC 2 report described the institutional platform controls accurately. The free-tier access path was outside the scope boundary. The attacker found the boundary, stood on the other side of it, and walked into production from there.

ShinyHunters also disclosed something that received less attention than the breach itself: this was not their first access to Instructure's systems. A previous intrusion had been detected, patched, and closed without a thorough root cause investigation. The compliance controls had not flagged the first access. The compliance controls had not required the organization to determine how the first access had occurred. The attacker knew this, because he had been there.

Applying a patch to a known symptom without investigating the underlying access mechanism is a structural failure that no SOC 2 control is designed to catch — because SOC 2 does not audit the quality of incident response reasoning. It audits whether an incident response process exists and was followed.


When the Attestation Is the Attack Surface

The Delve AI case, which surfaced in late 2025 and continued generating fallout through early 2026, introduced a different dimension of the same problem.

A whistleblower writing as DeepDelver published an analysis alleging that Delve's AI platform was answering vendor security questionnaires on behalf of clients — attesting to controls, MDM systems, penetration tests, and backup restoration simulations that the platform had never verified existed. Textual analysis of reports associated with Delve clients found nearly identical boilerplate across hundreds of SOC 2 documents, including repeated grammatical errors and identical auditor conclusions across reports that should have reflected independent evaluations.

Clients were making affirmative security representations to their enterprise customers based on AI-generated questionnaire responses. The compliance artifact was technically produced. It did not describe reality.

This is an extreme case. But it illustrates the terminal point of a spectrum that begins with standard SOC 2 practice: the artifact attests to what was measured. What was measured was selected in advance. What was not selected was not measured and is not in the document — and is therefore also not in the risk assessment of anyone who relied on the document.

The difference between Delve and a standard SOC 2 engagement is a matter of degree. In both cases, the person relying on the attestation is trusting a description of a subset of controls, prepared by or for the organization being evaluated, bounded by decisions made before the evaluation began.


What the Report Cannot Tell You — and What That Reveals

The controls listed in a SOC 2 report are not a complete inventory of what a vendor's security program covers. They are the controls that were included in the audit scope. The decision about what to include in scope is made by the organization being audited, in consultation with the auditor, before the audit begins.

This means a SOC 2 report is defined, structurally, by what the organization was confident enough to put under audit.

What is absent from the scope is not described as absent. It is simply not present. A reader who does not know what to look for will see a well-organized set of controls and conclude that the organization has mature security practices. A reader who knows what a complete security program looks like will notice which controls are missing, which scope boundaries are drawn narrowly, and which statements are carefully worded to cover the specific evidence available rather than the broader capability.

The attacker is the second type of reader.

Every scope boundary in a SOC 2 report is a statement about what the organization chose to audit. It is also, implicitly, a statement about what the organization chose not to audit. The attacker reads both statements. The procurement team typically reads only the first.


The Procurement Paradox

The SOC 2 framework exists, in large part, to enable efficient vendor risk assessment. Rather than each enterprise customer conducting its own audit of every vendor, the SOC 2 report provides a standardized attestation that can be shared across customers, reducing duplicated evaluation effort.

This creates a structural paradox.

The value of the SOC 2 report as a procurement tool depends on its being widely shared. Vendors are therefore incentivized to make their SOC 2 reports easily accessible — posted on trust pages, sent proactively in sales processes, downloadable without friction. Wide distribution is the mechanism that makes the framework work.

Wide distribution is also what makes the report available to anyone who wants to use it as reconnaissance.

The attacker does not need to social-engineer his way to the SOC 2 report. He downloads it from the vendor's website, reads it as carefully as any enterprise security team would, and identifies the same information any enterprise security team would identify — the controls in scope, the tools named, the boundaries described.

Then he focuses on what is outside those boundaries.

This is not a hypothetical attack pattern. It is a description of how the Canvas breach unfolded: a well-documented compliance posture, a scope boundary that did not cover the free-tier access program, and an attacker who found the gap between the compliance description and the actual architecture.


How Attackers Read What Defenders File

The SOC 2 report is not the only compliance document with this property. It is the most widely shared instance of a general pattern.

Every compliance framework produces artifacts — reports, certifications, audit letters, self-assessments — that describe an organization's security controls in standardized language. The standardization is what makes the artifacts useful for their intended purpose: comparison, evaluation, regulatory demonstration.

The standardization is also what makes the artifacts useful for the attacker. A reader who has internalized a framework's control structure can read a compliance artifact and immediately understand which controls are included, how they are implemented, and where the scope ends.

SEC Form 8-K filings, which public companies are required to submit following material cybersecurity incidents, describe the breach, the affected systems, the detection timeline, and the initial response. They are public documents. An attacker who reads them systematically across an industry learns which response procedures companies actually execute, how long detection takes, which systems were not covered by existing monitoring, and what the organization's incident response process revealed about its security architecture.

The Coinbase Form 8-K filed in May 2025, describing the insider threat mechanism that cost the company between $180 million and $400 million, was read by every attacker researching the financial services sector. Coinbase had no choice but to file it. The disclosure requirement exists to protect investors. It also extends the attacker's reconnaissance capability into the internal architecture of every public company that has had a material incident.

Compliance is not the problem. The problem is treating compliance artifacts as evidence of security rather than as what they actually are: structured descriptions of a subset of controls, accurate as of a point in time, bounded by scope decisions made before the audit began.


A Different Way to Read Your Own Reports

The implication is not that organizations should stop pursuing SOC 2 compliance. The implication is that compliance should be read the way an attacker reads it — before he does.

Three questions, applied to your own compliance artifacts before they are shared externally:

What does this document tell a reader about where our controls end? Not what it says about the controls themselves — what it reveals, by omission or by explicit scope definition, about the boundaries of what was audited. Every scope boundary is a signal. The Canvas breach entered through a program that the compliance framework had no reason to evaluate. An attacker read the scope boundary as an invitation to look at what was outside it.

What has changed since the coverage period ended? The report attests to a point in time. The delta between the attested state and the current state — new services, configuration changes, new access programs, new integrations — is the gap between what your compliance document says and what your actual attack surface is. The attacker does not assume that delta is small.

What would an attacker learn from the systems and tools named in this document? The report names your identity provider, your logging platform, your cloud infrastructure. Each named system has known vulnerabilities, known misconfigurations, and known attack paths. Reading the document as a list of targets, rather than a list of controls, reveals a different picture of what you have described to the world.

The organizations that treat this as a routine exercise will find gaps they did not know they had — because the gaps are not in what the report says. They are in the difference between what the report describes and what exists.


The Structural Observation

A SOC 2 report describes a perimeter. The perimeter is defined by scope decisions made before the audit began, using evidence collected during a coverage period that ended before the report was issued, for a system that has continued to change since the evidence was collected.

The attacker does not attack the perimeter. He maps it from the publicly available document and looks for what is on the other side.

The Canvas breach happened at the boundary between the audited institutional platform and the unaudited free-tier access program. The Delve case showed that the attestation itself can be fabricated, leaving the document intact while the reality it describes does not exist. The Coinbase 8-K showed that mandatory disclosure turns every material breach into a detailed reconnaissance asset for the next attacker in the same sector.

In each case, the compliance artifact was not wrong. It described what it described. And what it described was not the full picture — by design, by structure, and by the nature of point-in-time attestation applied to continuously evolving systems.

The question is not whether your SOC 2 report is accurate.

The question is whether the attacker who downloaded it this morning found the same gaps you did — or different ones.

Top comments (0)