Continuous Compliance as a Service: Expert-Led Programs
Compliance-as-a-Service for a pending SOC 2, HIPAA or ISO 27001 audit. Your team runs scripted collectors inside your own environment; Netspective compliance engineers review the resulting evidence database and deliver a readiness report you can act on.
The Customer Problem: Four Ways Manual Compliance Fails
The evidence scavenger hunt
Weeks before the audit, people take screenshots, export reports and chase owners for proof, because nobody planned how evidence would be produced.
Vague controls, ambiguous policies
Controls are written by people for people ("passwords must be strong"), so every policy and procedure built on them is open to interpretation.
Compliance as everyone's side job
Architects, engineers and QA staff are already stretched; audit work lands on them as an interruption, and spreadsheets go stale between audits.
Sampling as a leap of faith
Faced with a pile of manual evidence, auditors sample it. The organization gets a small picture of its posture and a false sense of security.
The Consequential Solution: Scripted Collection with Human Review
Compliance as code, done honestly. Controls name the machine-readable evidence that proves them, collection is a scripted run in your own environment, and qualified people interpret the result. Automation does the gathering; accountability stays with named engineers.
| Layer | Written for people only | Written to be proven |
|---|---|---|
| Control | "All passwords must be strong." | "The identity provider's password policy enforces the agreed rules; evidence is the policy setting captured from its API on each run." |
| Policy | "No secrets in code." | "Every build runs a secrets scan and fails on a finding; evidence is the pipeline record of the scan." |
| Procedure | "Take a screenshot of the user access report." | "A scheduled query exports the access list; evidence is the dated export in the evidence database." |
- Collection runs where the data lives. Your team runs the query bundles in your environment, on a schedule you control.
- One portable file. Everything collected lands in a single SQLite evidence database your engineers can query and your auditor can inspect.
- People make the calls. A named engineer reviews every finding before it reaches the readiness report.
What Netspective Offers: Engineering Responsibility
Collection bundles
We supply the query bundles that drive the open-source evidence engine and the tools it calls (Steampipe, cnquery, osquery) for the controls in scope. Every bundle is a plain JSONL file you read before running; the commands are read-only queries; bundles come with a checksum, and your change process approves them like any script.
Policy authoring and review
A policy set in Markdown under version control: information security, access control, data classification, incident response, vulnerability management and business continuity, reviewed by people.
Analyst review and readiness report
Engineers read the evidence database, map what it shows to the controls in scope and deliver a readiness report with a remediation plan.
Remediation tracking
Gaps become Plan of Action and Milestones items; exposure findings from Fleetfolio feed the same plan.
The Evidence Workflow: Collect, Hand Off, Review
- Your team collectsQuery bundles run in your environment
- One SQLite fileThe evidence database (RSSD)
- Encrypted hand-offMoved only when you send it
- Analyst reviewMapped to the controls in scope
- Report and re-runReadiness report, remediation, next run
What gets collected, and how
| Evidence | Examples | How it is gathered |
|---|---|---|
| Technical | Access control configuration, monitoring and logging settings, vulnerability scan reports, backup and restore tests, network controls, encryption settings. | Scripted queries against cloud accounts and servers, written to the evidence database. |
| Operational | Training records, policy acknowledgments, incident response records, risk assessments, vendor assessments, business continuity tests. | Records your team provides, filed in the same database and reviewed by people. |
Evidence Explorer
Four steps from a collection run to questions a reviewer can ask again. Evidence moves by encrypted, access-controlled transfer, never a public link.
Panel 1: Collection and analyst review
Your team installs the collector, reads each bundle and runs it; a Netspective analyst inspects what was captured.
# 1. Your team: install the collector and confirm the version
brew tap surveilr/tap && brew install surveilr
surveilr --version
# 2. Your team: read each bundle (plain JSONL, read-only queries), then run it
cat cloud-steampipe-surveilr.jsonl | surveilr ingest tasks
cat server-evidence-surveilr.jsonl | surveilr ingest tasks
# 3. Your team: dump and encrypt the evidence for transfer (see Panel 2)
sqlite3 resource-surveillance.sqlite.db .dump | gzip -c > evidence.db.txt.gz
age -r <analyst-public-key> -o evidence.db.txt.gz.age evidence.db.txt.gz
# 4. Netspective analyst (human review): inspect what was captured
surveilr shell -d resource-surveillance.sqlite.db --output table \
--cmd "SELECT nature, COUNT(*) AS items FROM uniform_resource GROUP BY nature;"
Public sample Commands from the public evidence-engine CLI reference and evidence-collection guide (docs.opsfolio.com). The age encryption step is added by Netspective. Step 4 is an illustrative read of the documented uniform_resource table. Evidence moves by encrypted, access-controlled transfer, never a public link.
Panel 2: Package, encrypt and fingerprint the evidence
Before transfer, the database is dumped, compressed, encrypted to the analyst's public key and fingerprinted, so only the named analysts can read it and both sides can confirm they hold the same file.
# Compact text dump for transfer
sqlite3 resource-surveillance.sqlite.db .dump | gzip -c > evidence.db.txt.gz
# Encrypt to the analyst's public key (age); only the .age file is sent
age -r <analyst-public-key> -o evidence.db.txt.gz.age evidence.db.txt.gz
# Fingerprint the encrypted file; the analyst checks it on receipt
sha256sum evidence.db.txt.gz.age > evidence.db.txt.gz.age.sha256
sha256sum --check evidence.db.txt.gz.age.sha256
Writes: evidence.db.txt.gz.age and its SHA-256 file. The dump step is from the evidence-collection guide; the encryption step is added by Netspective (age, an open-source file encryption tool); sha256sum is GNU coreutils (shasum -a 256 on macOS). Send the .age file by the access-controlled share agreed in the engagement, with an expiry, never a public link.
Panel 3: Requested evidence not yet captured
The analyst's checklist compared with what is in the database: every request with nothing behind it.
-- Synthetic illustration: evidence the engagement asked for that is not in
-- the database yet. evidence_request is the analyst's checklist; the capture
-- is matched on the uri the evidence engine records for each file or task output.
CREATE TEMP TABLE IF NOT EXISTS uniform_resource (uri TEXT, nature TEXT, content TEXT);
CREATE TEMP TABLE IF NOT EXISTS evidence_request (
control_code TEXT NOT NULL,
evidence TEXT NOT NULL,
uri_pattern TEXT NOT NULL -- e.g. '%iam-password-policy%'
);
SELECT r.control_code,
r.evidence,
COUNT(u.uri) AS captured_items
FROM evidence_request r
LEFT JOIN uniform_resource u ON u.uri LIKE r.uri_pattern
GROUP BY r.control_code, r.evidence
HAVING COUNT(u.uri) = 0
ORDER BY r.control_code;
Synthetic illustration uniform_resource is the evidence engine's table; evidence_request is illustrative. Runs as written in SQLite 3.
Panel 4: Policies due for review or unmapped
Policies past their annual review, and policies no control points at.
-- Synthetic illustration: policies past their annual review, and policies
-- no control points at. The two tables stand in for your policy register.
CREATE TEMP TABLE IF NOT EXISTS policy (
policy_id TEXT PRIMARY KEY,
title TEXT NOT NULL,
owner_role TEXT NOT NULL,
last_reviewed TEXT NOT NULL -- ISO date, e.g. '2025-09-30'
);
CREATE TEMP TABLE IF NOT EXISTS policy_control (policy_id TEXT NOT NULL, control_code TEXT NOT NULL);
SELECT p.policy_id,
p.title,
p.owner_role,
p.last_reviewed,
CASE WHEN p.last_reviewed < date('now', '-365 days') THEN 'review overdue' ELSE 'current' END AS review,
COUNT(pc.control_code) AS mapped_controls
FROM policy p
LEFT JOIN policy_control pc ON pc.policy_id = p.policy_id
GROUP BY p.policy_id
HAVING review = 'review overdue' OR mapped_controls = 0
ORDER BY p.last_reviewed;
Synthetic illustration Table names are illustrative, not a platform schema. Runs as written in SQLite 3.
Verified Proof Ledger (Engineering Ground Truth)
| Claim | Status | What it rests on |
|---|---|---|
| Scripted evidence collection into a SQLite evidence database | Designed and documented | The public evidence-engine CLI and its evidence-collection guide. No recorded run yet. |
| Customer collection, hand-off, analyst review and readiness report | Designed and documented | The documented human-in-the-loop workflow in the evidence-collection guide. No recorded run yet. |
| Encrypted, access-controlled hand-off (age, checksum, expiring share) | Designed and documented | Added by Netspective to the documented workflow; the guide itself shares an unencrypted dump. No recorded run yet. |
| Policy set authoring with expert review | Designed and documented | Delivered per engagement in Markdown under version control; no public template set. |
| Platform evidence warehouse, audit sessions and readiness score | Designed and documented | Shown as screenshots on the vendor site; the platform rebuild is paused, so not offered. |
| Guaranteed audit, certification or attestation outcome | Not established | An independent auditor decides. We claim no outcome. |
| Zero-touch, fully automated compliance | Not established | Collection is a scripted, periodic run; review is human by design. |
| Zero-finding guarantee or AI-predicted audit findings | Not established | No implementation exists; we do not offer either. |
Real-World Scenarios
Where the work goes. An independent auditor decides every outcome.
A first SOC 2 Type 1
A SaaS company with an enterprise deal waiting gets a gap assessment against the Trust Services Criteria before it hires an audit firm.
HIPAA Security Rule evidence
A health-tech vendor documents its administrative, physical and technical safeguards with dated evidence instead of screenshots.
ISO 27001 between audits
A certified organization re-runs collection each quarter, so the surveillance audit starts from current evidence rather than a scramble.
Scoped Pilot: The 2-Week Evidence Gap Assessment
What the two weeks deliver
Week 1: collect
We supply the query bundles for the controls in scope; your team runs them and sends the evidence database.
Week 2: review
Analyst review of the database and a gap assessment against those controls, with a prioritized remediation list.
Boundaries
- We are not an accredited registrar or audit firm. You retain the independent auditor, who decides the outcome; we guarantee none.
- Collection needs your team to install tools. It is scripted, not zero-touch.
- Collectors use read-only roles (for AWS billing evidence:
aws-portal:ViewBilling,aws-portal:ViewUsage,aws-portal:ViewAccount,ce:Get*andbudgets:ViewBudget, or the AWSBillingjob-function policy). The root account is used once to activate IAM access to billing, never for collection. - The evidence database leaves your environment only when you send it to us.
- Collection is scoped to configuration and control evidence, not patient data. If any evidence could contain protected health information, we sign a business associate agreement before it is sent.
- The engagement agreement names where a received database is stored and how long it is kept. It is stored encrypted, opened only by the named analysts, and deleted or returned at the end of that period.