Skip to main content

starshield-forensics (v0.3.8 — Clean-Room Deterministic DFIR & MCP Toolkit)

OpenSSF Best Practices OpenSSF Scorecard SLSA 3 OSPS Baseline UK FSR Statutory Code / ISO 17025 Validation PyPI

English | 简体中文 (README.zh-CN.md)

Deterministic Chromium & Electron IndexedDB / LevelDB .log Multi-Schema Record Carver, Structural PNG/JPEG Container Inspector, Financial Checksum Validator & Zero-Dependency MCP Server

Author: Ziqi Xiao (@Ziqi) · PyPI: starshield-forensics 0.3.8 (PEP 740) · Homebrew: Ziqi/tap/starshield-forensics · Concept DOI: 10.5281/zenodo.24145804 (v0.3.7: 10.5281/zenodo.24156262) · SWHID: swh:1:snp:4ed5efec... · OpenSSF Best Practices: #16602 (SILVER — 226%) · Scorecard: 8.0 / 10 (Fuzzing 10/10 · 11/18 Perfect Checks) · Provenance: SLSA L3 & Sigstore /attestations · Method Validation: UK FSR Statutory Code (FSA – DIG 100) / ISO 17025 Summary · License: MIT (REUSE 3.3) · Runtime: Python >= 3.10 (stdlib only, zero network calls, zero LLM dependencies)


High-Frequency Use Cases (DFIR, FinTech Audit & Developer Diagnostics)

starshield-forensics is an offline, read-only binary inspection and evidence triage toolkit serving three primary audiences with zero third-party dependencies:

  1. FinTech, E-Commerce & Expense-Audit Screenshot Pre-Screening (starshield inspect-image): Millisecond structural verification of reimbursement receipts, payment screenshots, and disputed attachments—verifying RFC 2083 PNG chunk CRC32 integrity (IHDR/IDAT/IEND/iCCP), multi-segment ISO 10918 JPEG APP2 ICC_PROFILE color headers (acsp), and Photoshop APP13 (8BIM) resource blocks alongside offline ISO-7812 Luhn / 89-country ISO-13616 IBAN Mod-97 / ISO-9362 SWIFT validation.
  2. Developer & IT Offline Diagnostics for Corrupted Electron / Chrome Caches (starshield precheck & parse-leveldb-log): Read-only local health check and uncompacted .log write-ahead log recovery for corrupted Chromium browser (Chrome, Edge, Brave) and Electron desktop app (VS Code, Slack, Microsoft Teams, Discord, WhatsApp Desktop) IndexedDB / Local Storage caches using strict masked Castagnoli CRC32C (0xA282EAD8) verification.
  3. Legal & DFIR Pre-Action Evidentiary Triage (UK FSR FSA – DIG 100 / ISO 17025 Aligned): Byte-offset-cited carving of soft-deleted or edited web-messaging and B2B portal records with explicit four-tier epistemic tagging (OBSERVED / DERIVED / INFERRED / UNKNOWN) and ephemeral HMAC-SHA256 pseudonymization.

All bundled fixtures in samples/ and starshield/data/—plus the seeded 24-case evaluation suite in benchmark/benchmark_suite.py (StarShield-Bench-24)—are 100% clean-room specification test vectors modeled on a fictional 2025 UK supplier-invoice scenario (GBP 18,400.00, ISO-13616 example IBANs GB82WEST12345698765432 and NO9386011117947, Luhn test string 6200000000000005). Zero real incident data or PII is included.


Epistemic Tiers & Capability Boundary Matrix (v0.3.8)

Every analytical output carries an explicit machine-readable epistemic tier so investigators and solicitors never conflate raw bytes with interpretive leads:

  • OBSERVED: Directly present in raw input bytes, chunk headers, or JSON fields (bound to physical WAL frame offsets or chunk offsets).
  • DERIVED: Deterministically computed from raw input via standardized algorithms (Castagnoli CRC32C, ISO/IEC 7812 Luhn, ISO-13616 Mod-97, UTC delta arithmetic).
  • INFERRED: Contextual triage lead requiring external corroboration (e.g., server-side bank logs or subpoenaed ISP records); never asserted as standalone proof.
  • UNKNOWN: Explicitly outside the evidentiary boundary of local client artifacts (e.g., records compacted prior to acquisition).
Module Capability in v0.3.8 Epistemic Boundary & Known Limitations
Zero-PII Storage Feasibility Gate (precheck) Scans Chromium & Electron IndexedDB / Local Storage folders or .log/.ldb files offline, checks LevelDB SSTable footer magic (0xdb4775248b80fb57), .blob directories, and Blink 0xFF headers, emitting a deterministic GO / PARTIAL / NO_GO_COMPACTED_OR_UNSUPPORTED manifest with zero plaintext leakage. Pre-screens compaction status prior to triage; does not decompress .ldb blocks.
Chromium & Electron LevelDB .log Carver (leveldb_log.py) Parses 32 KiB physical blocks, verifies masked Castagnoli CRC32C (0xA282EAD8), reassembles cross-block FULL/FIRST/MIDDLE/LAST WriteBatch frames, and extracts UTF-8 & Blink UTF-16LE JSON records across Chromium browsers and Electron desktop apps (chatsvc for Microsoft Teams/Skype, Slack, WhatsApp Web/Desktop, Discord, VS Code, and B2B invoice portals via --schema auto|chatsvc|generic-json). Does not decompress Snappy .ldb SSTables or decode non-JSON Blink StructuredClone primitives (roadmap: v0.4).
Exported Message & Portal JSON Triage (triage-json) Enumerates soft-deleted (deletetime / deleted_ts / is_deleted) and edited (edittime / edited.ts) JSON records across messaging & portal exports, extracting validated IOCs strictly per record. Cannot quantify records already compacted or evicted prior to acquisition.
Financial Checksum Validation (ioc_validators.py) Validates payment cards via ISO/IEC 7812 Luhn, IBANs via all 89 SWIFT IBAN Registry country lengths (15–34 chars) + Mod-97, SWIFT/BICs via all 249 ISO 3166-1 alpha-2 country codes + XK (250 total codes) + stopword filtering, and pairs UK Sort Codes within a 120-char intra-message window. Does not bundle proprietary Pay.UK Vocalink sort-code modulus weight tables.
RFC 2083 PNG & ISO 10918 JPEG Container Inspection (image_containers.py) Enforces PNG IHDR + IDAT + IEND completeness and per-chunk CRC32, bounded-decompresses iCCP chunks (acsp), and reassembles multi-chunk JPEG APP2 ICC_PROFILE + APP13 (8BIM) segments through SOS/EOI (0xFFD9). Emits neutral container observations + benign screenshot/OS-resave caveats; never declares standalone "proof of forgery".
Zero-Dependency MCP Server (mcp_server.py / starshield mcp) Exposes 4 read-only deterministic tools (starshield_demo, starshield_precheck_leveldb, starshield_inspect_image_tamper, starshield_validate_financial_iocs) over JSON-RPC 2.0 stdio (newline & Content-Length framed) for Claude Desktop, Cursor, Google Antigravity, and Windsurf. Enforces HMAC-SHA256 masked mode by default so cloud LLMs never receive raw PII, filenames, or raw SHA-256 hashes.
Keyed Pseudonymization & Cryptographic Agility (cli.py) Default masked mode applies ephemeral per-run HMAC-SHA256 tokens (configurable via --hmac-digest {sha256,sha384,blake2b} and external 32-byte salt --hmac-key-file PATH) and suppresses raw file SHA-256 hashes, exact byte lengths, source filenames, PNG tEXt/iTXt previews, custom ICC names, exact UTC dates, and failure-path stderr filenames/byte counts/snippets. Provides keyed pseudonymization for casual screen/log hygiene—NOT formal legal anonymization under UK GDPR / GDPR. Pass --unredacted only inside authorized offline environments.

10-Second Zero-Install Tryout (uvx) & Installation (pip PEP 740 / .pyz)

# Instant zero-install clean-room showcase (fetches PyPI wheel directly, zero repo clone needed):
uvx --from starshield-forensics starshield demo

# Option A — Official PyPI package (with PEP 740 Sigstore digital attestations, zero dependencies):
pip install starshield-forensics
starshield demo

# Option A2 — macOS / Linux Homebrew Tap (isolated virtualenv formula, zero dependencies):
brew install Ziqi/tap/starshield-forensics && starshield demo

# Option B — Zero-install single-file zipapp (for air-gapped forensic VMs & law-firm IT):
python3 starshield.pyz demo
python3 starshield.pyz precheck /path/to/readonly_chromium_idb_copy

# Option C — Clone & run all 26 unit/MCP tests, fuzzing harness & StarShield-Bench-24 (<1s, zero dependencies):
git clone https://github.com/Ziqi/starshield-forensics.git
cd starshield-forensics
PYTHONDONTWRITEBYTECODE=1 PYTHONPATH=. python3 -m unittest discover -s tests -v
PYTHONDONTWRITEBYTECODE=1 PYTHONPATH=. python3 -W error tests/fuzz_parsers.py --stdlib --iterations 2500
PYTHONDONTWRITEBYTECODE=1 PYTHONPATH=. python3 benchmark/benchmark_suite.py
PYTHONDONTWRITEBYTECODE=1 PYTHONPATH=. python3 scripts/verify_cross_tool_forensics.py
PYTHONDONTWRITEBYTECODE=1 PYTHONPATH=. python3 -m starshield.cli demo

Zero-Install AI Agent Integration (starshield mcp for Claude Desktop, Cursor, Antigravity & Windsurf)

Mount StarShield's 4 deterministic read-only binary inspection tools directly into any MCP client (privacy-masked by default via ephemeral HMAC-SHA256 so cloud LLMs never see raw PII, filenames, or raw hashes):

{
  "mcpServers": {
    "starshield-forensics": {
      "command": "uvx",
      "args": ["--from", "starshield-forensics", "starshield", "mcp"]
    }
  }
}

Sample Deterministic Output (starshield demo, Default Masked Mode)

{
  "epistemic_tier": "OBSERVED",
  "schema_detected": "chatsvc",
  "leveldb_batch_byte_offset": 397,
  "leveldb_sequence_number": 1002,
  "is_soft_deleted_in_ui": true,
  "sender_mri": "[REDACTED_HMAC:1b71a34908e1]",
  "cached_content": "[REDACTED_CONTENT — pass --unredacted to view]",
  "extracted_iocs": {
    "luhn_validated_cards": ["[REDACTED_HMAC:3ec5f5677098]"],
    "mod97_validated_ibans": ["[REDACTED_HMAC:4dad6b1cc0be]", "[REDACTED_HMAC:f21864d3e75c]"]
  }
}

CLI Subcommands (starshield [--unredacted] [--max-mb 64] [--hmac-digest {sha256,sha384,blake2b}] [--hmac-key-file PATH] <subcommand>)

Subcommand Input Artifact Output JSON Summary
demo Built-in synthetic fixtures Runs end-to-end clean-room WAL, JSON, container, and checksum showcase
precheck <path> [--schema ...] Chromium folder or .log/.ldb Zero-PII GO / PARTIAL / NO_GO feasibility & compaction check
parse-leveldb-log <file.log> [--schema ...] Chromium LevelDB .log WAL Physical block CRC32C status, byte-offset-bound carved records, and validated IOCs
triage-json <export.json> [--schema ...] Exported messaging/portal JSON Soft-deleted & edited records + per-record IOC schedule
inspect-image <image.png|jpg> PNG or JPEG exhibit Chunk/marker integrity, ICC profile (acsp) header fields, 8BIM, and neutral caveats
corroborate-timestamps <events.json> Timezone-aware UTC pairs Monotonicity verification, clock-skew bounds, and edge-node frequency summary
summarize-linguistics <chat.json> Chat transcript JSON Descriptive utterance-length & punctuation distribution (N >= 30 guardrailed)
mcp JSON-RPC 2.0 stdio stream Read-only MCP server exposing starshield_demo, starshield_precheck_leveldb, starshield_inspect_image_tamper, and starshield_validate_financial_iocs

Deterministic Core vs. Human-Reviewed Triage

starshield-forensics intentionally contains zero LLM or network code. Byte-offset extraction, CRC32C verification, and banking check-digit math must be 100% deterministic and reproducible, ensuring embedded adversary messages cannot trigger indirect prompt injection during extraction. Any downstream bilingual indexing or legal schedule preparation belongs in a human-reviewed workflow where every statement cites an immutable underlying record hash.


Cryptographic Release Verification & Bit-for-Bit Reproducibility (v0.3.8)

Every official release (starshield.pyz, .whl, .tar.gz, and ISO/IEC 5962:2021 SPDX 2.3 SBOM starshield-forensics-0.3.8.spdx.json) is backed by triple cryptographic verification:

  1. GitHub OIDC + Sigstore (Fulcio X.509 + Rekor transparency log) build provenance & SPDX 2.3 SBOM attestations at /attestations;
  2. Isolated SLSA Build Level 3 provenance (multiple.intoto.jsonl via slsa-framework/slsa-github-generator);
  3. Air-gapped OpenSSH Ed25519 detached maintainer signature (SHA256SUMS.sig) verified against KEYS.pub.
# 1. Verify Sigstore X.509 + Rekor build & SBOM attestations via GitHub CLI:
gh attestation verify starshield.pyz -R Ziqi/starshield-forensics

# 2. Verify isolated SLSA Build Level 3 provenance (.intoto.jsonl):
slsa-verifier verify-artifact starshield.pyz \
  --provenance-path multiple.intoto.jsonl \
  --source-uri github.com/Ziqi/starshield-forensics

# 3. Offline air-gapped verification using standard OpenSSH (>=8.2p1) & SHA256SUMS:
ssh-keygen -Y verify -f KEYS.pub -I "2196305+Ziqi@users.noreply.github.com" -n file -s SHA256SUMS.sig < SHA256SUMS
shasum -a 256 -c SHA256SUMS

# 4. Rebuild starshield.pyz & SPDX 2.3 SBOM from source and verify bit-for-bit reproducibility:
python3 scripts/build_reproducible.py --verify
python3 scripts/generate_spdx_sbom.py --verify

Governance, Method Validation & Security Reporting

Verification / Archival Dimension Live Status & Permanent Identifier
Continuous Fuzzing (ClusterFuzzLite / Atheris) Fuzzing: 10/10 Continuous Fuzzing
Static Security (CodeQL SAST) & Deterministic CI CodeQL SAST StarShield Deterministic CI
Supply-Chain Provenance & Licensing (REUSE 3.3) Supply-Chain Attestations REUSE status
Packaging (Homebrew Tap) & Scholarly / UNESCO Archival Homebrew Tap DOI SWHID

Metadata

Release files for starshield-forensics 0.3.8

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for starshield-forensics 0.3.8
File Size Uploaded Provenance Actions
starshield_forensics-0.3.8.tar.gz 56.8 kB With provenance Details for starshield_forensics-0.3.8.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for starshield-forensics 0.3.8
File Interpreter ABI Platform Actions
starshield_forensics-0.3.8-py3-none-any.whl Python 3 none any Details for starshield_forensics-0.3.8-py3-none-any.whl

Total release size: 101.2 kB

Release files / starshield_forensics-0.3.8.tar.gz

Download URL starshield_forensics-0.3.8.tar.gz
Size 56.8 kB
Tags Source
SHA-256 checksum
How to use checksums
87afc0617eedd5a760a5ddfb7ab5ba002dc930ff25db7ad7cd2d8bd115e19325
BLAKE2b-256 checksum
How to use checksums
e2218243e23c9008f5f2a74c8f22435fbc8dc17378d576939b163b24aed4da29
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 14, 2026.

Transparency log

Release files / starshield_forensics-0.3.8-py3-none-any.whl

Download URL starshield_forensics-0.3.8-py3-none-any.whl
Size 44.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6f1e045be023b7acd4b3e6f4bf4e4cfce392639bb8b88f1e351369daf13ed817
BLAKE2b-256 checksum
How to use checksums
ee04a4715560c04e51b1066dfe76318648bc88d35001be67fd6f184022509a10
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 14, 2026.

Transparency log

Security for starshield-forensics 0.3.8

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for starshield_forensics-0.3.8.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 14, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.3.8 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page