building-a-sample-management-workflow

Establishes a disciplined malware sample repository: content-addressed storage by hash, encrypted/password-protected archiving, consistent metadata records, and chain-of-custody tracking so samples ar

SKILL.md

GitHub

Building a Sample Management Workflow

When to Use

  • You are accumulating malware samples and need a repeatable, safe way to store and find them.
  • You need metadata and provenance (source, date, case) attached to every sample.
  • You want content-addressed storage so the same sample is never duplicated or misnamed.

Do not use original filenames or loose folders as the organizing principle — names are attacker-controlled and collide; address samples by hash.

Prerequisites

  • The hashing skill for content addressing; encrypted/password-protected archive tooling.
  • A defined storage location inside the isolated lab.

Safety & Handling

  • Store every sample inside a password-protected archive (commonly infected) so it cannot auto-execute or be scanned/quarantined by host AV.
  • Strip the executable bit / neutralize the extension at rest; restore only inside the lab.

Workflow

Step 1: Content-address on intake

On receipt, compute SHA-256 and store the sample under a path derived from its hash (e.g., samples/ab/cd/<sha256>), preventing duplicates and name collisions.

python scripts/analyst.py intake sample.bin --source "phishing-case-42" --store ./samples

Step 2: Record metadata

Write a metadata record per sample: hashes, original name, source, intake date, case ID, file type, and analyst — kept next to the sample or in an index.

Step 3: Archive safely

Wrap the sample in a password-protected archive; keep the inert copy out of host AV's reach and the metadata in plaintext for searchability.

Step 4: Maintain chain of custody

Append-only log each access/action (who, when, what) so the sample's handling is auditable.

Step 5: Index and search

Build a searchable index over metadata so samples can be found by hash, family, source, or case without touching the raw bytes.

Validation

  • The same sample always lands at the same hash-derived path (idempotent intake).
  • Every sample has a complete metadata record and an access log entry.
  • Samples are stored password-protected; metadata is searchable in plaintext.

Pitfalls

  • Organizing by attacker-supplied filename, causing collisions and confusion.
  • Storing live samples unarchived where host AV deletes them mid-analysis.
  • Losing provenance, so an indicator cannot be traced back to its case.

References