Files
git.stella-ops.org/src/BinaryIndex/AGENTS.md
2026-01-08 09:06:03 +02:00

6.5 KiB

BinaryIndex Module Charter

Mission

Own binary-level vulnerability detection and analysis. Provide deterministic binary identity resolution, delta signature matching for backport detection, and integration with the Scanner pipeline.

Module Overview

BinaryIndex is a collection of libraries and services for binary analysis:

Core Libraries

  • BinaryIndex.Core - Binary identity models, resolution logic, feature extractors
  • BinaryIndex.Contracts - API contracts and DTOs
  • BinaryIndex.Cache - Caching layer for binary analysis results
  • BinaryIndex.Persistence - PostgreSQL storage for signatures and identities

Delta Signature Stack (Backport Detection)

  • BinaryIndex.Disassembly.Abstractions - Plugin interfaces for disassembly
  • BinaryIndex.Disassembly - Service coordinating disassembly plugins
  • BinaryIndex.Disassembly.Iced - High-performance x86/x86-64 disassembly
  • BinaryIndex.Disassembly.B2R2 - Multi-architecture disassembly (ARM, MIPS, RISC-V)
  • BinaryIndex.Normalization - Instruction normalization for deterministic hashing
  • BinaryIndex.DeltaSig - Signature generation and matching

Corpus Builders

  • BinaryIndex.Corpus - Common corpus building infrastructure
  • BinaryIndex.Corpus.Rpm - RPM package corpus extraction
  • BinaryIndex.Corpus.Debian - DEB package corpus extraction
  • BinaryIndex.Corpus.Alpine - APK package corpus extraction

Services

  • BinaryIndex.WebService - REST API for binary queries
  • BinaryIndex.Worker - Background processing for corpus updates

Key Capabilities

  1. Binary Identity Resolution - Match binaries by Build-ID, fingerprint, or content hash
  2. Delta Signature Matching - Detect backported security fixes via normalized code comparison
  3. Vulnerability Correlation - Map binaries to known vulnerable/patched package versions
  4. VEX Evidence Generation - Produce VEX candidates with cryptographic proof of patch status

Architecture

┌─────────────────────────────────────────────────────────────────────────┐
│                         Scanner.Worker                                   │
│  ┌─────────────────────┐  ┌─────────────────────┐                       │
│  │ BinaryVulnerability │  │   DeltaSigAnalyzer   │                       │
│  │     Analyzer        │  │                      │                       │
│  └─────────┬───────────┘  └──────────┬───────────┘                       │
└────────────┼─────────────────────────┼───────────────────────────────────┘
             │                         │
             ▼                         ▼
┌─────────────────────────────────────────────────────────────────────────┐
│                    BinaryIndex Libraries                                 │
│  ┌───────────────┐  ┌────────────────┐  ┌────────────────────┐          │
│  │  Core/Cache   │  │  Disassembly   │  │   Normalization    │          │
│  │  Persistence  │  │  Iced + B2R2   │  │   X64 + ARM64      │          │
│  └───────────────┘  └────────────────┘  └────────────────────┘          │
│                                │                                         │
│                                ▼                                         │
│                     ┌──────────────────┐                                │
│                     │     DeltaSig     │                                │
│                     │  Generator/Match │                                │
│                     └──────────────────┘                                │
└─────────────────────────────────────────────────────────────────────────┘

Required Reading

  • docs/modules/binaryindex/architecture.md
  • docs/modules/scanner/architecture.md
  • docs/implplan/SPRINT_20260102_001_BE_binary_delta_signatures.md
  • docs/product/advisories/30-Dec-2025 - Binary Diff Signatures for Patch Detection.md

Working Agreement

  1. Task status - Update DOING/DONE in sprint files when starting/finishing work.
  2. Determinism - All outputs must be deterministic (stable ordering, timestamps, hashes).
  3. Offline-first - Support air-gapped operation with signature packs.
  4. Recipe versioning - Increment recipe version for any normalization behavior change.
  5. Golden tests - Maintain golden tests for known CVEs (Heartbleed, Log4Shell, etc.).
  6. Coordination - Update Scanner AGENTS.md when changing integration contracts.

Sub-module Charters

Each library has its own AGENTS.md with specific responsibilities:

  • See __Libraries/StellaOps.BinaryIndex.*/AGENTS.md for library-specific charters
  • See __Tests/StellaOps.BinaryIndex.*.Tests/AGENTS.md for test charters

CLI Commands

Delta signature CLI (in StellaOps.Cli):

stella deltasig extract    # Extract signatures from binary
stella deltasig author     # Author vuln/patched signature pair
stella deltasig sign       # Sign signature as DSSE envelope
stella deltasig verify     # Verify signed signature
stella deltasig match      # Match binary against signatures
stella deltasig pack       # Create signature pack (ZIP)
stella deltasig inspect    # Inspect signature or envelope

Test Strategy

  • Unit tests - Per-library in __Tests/StellaOps.BinaryIndex.*.Tests
  • Property tests - FsCheck for normalization idempotency/determinism
  • Golden tests - Known CVE signature verification
  • Integration tests - End-to-end pipeline tests