恶意样本电子证据保全
用于恶意样本和相关数字证据的规范保全,涵盖哈希计算、取证镜像、原始介质保护、交接记录和链路文档。适合案件或合规场景中需要保证样本、磁盘、内存等材料完整性和可复核性的工作,强调分析副本与原始证据分离,避免后续技术分析破坏证据状态。
在 AI 中使用此 Skill将本页链接复制给 AI,即可让 AI 获取完整 Skill 内容并按此执行
安全提示: 本站 Skill 均经 ChatGPT 最新模型扫描,未发现恶意脚本及危险指令、未检出已知恶意行为特征,但不保证绝对安全,使用即表示接受此风险
Skill 文件
版本 20260301 · c61dcf01ab25ad17f3b0989801ea114e
SKILL.md
---
name: evidence-preservation
description: Preserve digital evidence with forensic integrity using proper chain of custody documentation, cryptographic hashing, forensic imaging, and court-admissible handling procedures.
---
# Evidence Preservation
Preserve digital evidence with forensic integrity for incident response and legal proceedings. This skill covers chain of custody documentation, forensic imaging, hashing, secure handling, and court-admissible documentation practices.
## Prerequisites
- **Python 3.10+** for running the evidence handler scripts
- **dd** / **dc3dd**: Forensic disk imaging tools (dc3dd preferred for built-in hashing)
- **ewfacquire** / **ewfverify**: Expert Witness Format imaging and verification (`libewf`)
- **sha256sum** / **md5sum** / **sha1sum**: Cryptographic hashing utilities
- **7z**: Archive tool for password-protected evidence storage
- **GPG**: For encrypting evidence during transfer
- **OpenSSL**: For creating signed timestamps (optional)
## Steps
### 1. Document Chain of Custody
Every evidence item must have a documented chain of custody recording who handled it, what was done, when, where, and how:
```bash
# Initialize a new evidence case and log the first custody entry
python3 scripts/evidence_handler.py --init-case \
--case-id "IR-2026-0042" \
--examiner "Jane Analyst" \
--description "Ransomware incident on WORKSTATION-15" \
--output evidence_log.json
```
For each evidence handling action:
```bash
# Log an acquisition event
python3 scripts/evidence_handler.py --log-action \
--case-id "IR-2026-0042" \
--evidence-id "EVD-001" \
--action "acquired" \
--examiner "Jane Analyst" \
--description "Created forensic image of WORKSTATION-15 C: drive" \
--location "Forensics Lab, Room 204" \
--log evidence_log.json
# Log a transfer event
python3 scripts/evidence_handler.py --log-action \
--case-id "IR-2026-0042" \
--evidence-id "EVD-001" \
--action "transferred" \
--examiner "Jane Analyst" \
--recipient "John Forensics" \
--description "Transferred disk image for deeper analysis" \
--location "Forensics Lab, Room 204" \
--log evidence_log.json
```
### 2. Create Forensic Images
Create bit-for-bit forensic images with integrity verification:
```bash
# Using dd (basic, available everywhere)
dd if=/dev/sda of=evidence_disk.raw bs=4096 conv=noerror,sync status=progress
# Using dc3dd (forensic-grade dd with built-in hashing)
dc3dd if=/dev/sda of=evidence_disk.raw hash=sha256 log=imaging.log
# Using ewfacquire (Expert Witness Format - compressed, with metadata)
ewfacquire /dev/sda -t evidence_disk -C "IR-2026-0042" \
-D "WORKSTATION-15 C: drive" -e "Jane Analyst" \
-E "Ransomware incident" -f encase6 -S 2G
# Verify image integrity after creation
sha256sum evidence_disk.raw > evidence_disk.raw.sha256
dc3dd if=evidence_disk.raw hash=sha256 vhash=<original_hash>
# Using ewfverify for EWF images
ewfverify evidence_disk.E01
```
### 3. Hash All Evidence Items
Generate and verify cryptographic hashes for every evidence file:
```bash
# Hash a single file with multiple algorithms
python3 scripts/evidence_handler.py --hash \
--input malware_sample.exe \
--algorithms md5,sha1,sha256 \
--output hashes.json
# Hash all files in an evidence directory
python3 scripts/evidence_handler.py --hash-directory \
--input ./evidence/ \
--algorithms sha256 \
--output directory_hashes.json
# Verify hashes against a previous manifest
python3 scripts/evidence_handler.py --verify \
--input ./evidence/ \
--manifest directory_hashes.json
```
Manual hashing for verification:
```bash
# Generate hashes
sha256sum evidence_disk.raw
md5sum evidence_disk.raw
sha1sum evidence_disk.raw
# Batch hash all files in a directory
find ./evidence/ -type f -exec sha256sum {} \; > evidence_manifest.sha256
# Verify against manifest
sha256sum -c evidence_manifest.sha256
```
### 4. Handle Malware Samples Safely
Proper procedures for handling malicious evidence:
```bash
# Store sample in password-protected ZIP (standard password: "infected")
7z a -p'infected' -mhe=on evidence_sample.zip malware.exe
# Rename executable extensions to prevent accidental execution
mv malware.exe malware.exe.sample
mv payload.dll payload.dll.sample
# Catalog the sample with metadata
python3 scripts/evidence_handler.py --catalog \
--input malware.exe.sample \
--case-id "IR-2026-0042" \
--evidence-id "EVD-002" \
--description "Ransomware binary from WORKSTATION-15 Desktop" \
--source-path "C:\\Users\\victim\\Desktop\\invoice.exe" \
--tags "ransomware,phishing,initial-access" \
--output evidence_catalog.json
```
Storage requirements:
- Use encrypted volumes for evidence storage (LUKS, BitLocker, VeraCrypt)
- Maintain at least two copies on separate physical media
- Store original and working copies separately
- Log every access to original evidence
### 5. Timestamp and Integrity Verification
Establish evidence timestamps for legal defensibility:
```bash
# Create a signed timestamp for evidence files
openssl ts -query -data evidence_disk.raw -no_nonce -sha256 \
-out evidence_disk.tsq
openssl ts -reply -queryfile evidence_disk.tsq -signer tsa_cert.pem \
-inkey tsa_key.pem -out evidence_disk.tsr
# Alternative: use a public timestamping service
curl -H "Content-Type: application/timestamp-query" \
--data-binary @evidence_disk.tsq \
http://timestamp.digicert.com -o evidence_disk.tsr
# Record filesystem timestamps before any modification
stat --format='%n | Access: %x | Modify: %y | Change: %z' /path/to/evidence/*
```
### 6. Legal Considerations
Be aware of jurisdictional requirements:
| Jurisdiction | Key Regulation | Evidence Requirements |
|-------------|----------------|----------------------|
| United States | Federal Rules of Evidence, CFAA | Chain of custody, authentication, best evidence rule |
| European Union | GDPR, ePrivacy Directive | Data minimization, PII handling, cross-border transfer rules |
| United Kingdom | Computer Misuse Act, PACE | ACPO guidelines, imaging standards |
| International | Budapest Convention | Mutual legal assistance, preservation requests |
Key principles:
- **CFAA (US)**: Ensure authorized access to all systems being imaged
- **GDPR (EU)**: Minimize collection of personal data; document lawful basis
- **Best Evidence Rule**: Original evidence or verified exact copies only
- **Admissibility**: Document methodology, tools, and qualifications
### 7. Evidence Labeling and Cataloging
Maintain a systematic evidence catalog:
```bash
# Add evidence item to catalog
python3 scripts/evidence_handler.py --catalog \
--input evidence_disk.E01 \
--case-id "IR-2026-0042" \
--evidence-id "EVD-001" \
--description "Forensic image of WORKSTATION-15 system drive" \
--examiner "Jane Analyst" \
--tags "disk-image,workstation,ransomware" \
--output evidence_catalog.json
# Generate evidence inventory report
python3 scripts/evidence_handler.py --inventory \
--catalog evidence_catalog.json \
--format markdown
```
Labeling convention:
```
Evidence ID: EVD-<case_number>-<sequence>
Example: EVD-IR2026042-001
Label format: <CaseID> | <EvidenceID> | <Description> | <Date> | <Examiner>
```
### 8. Secure Evidence Transfer
Protocols for transferring evidence between parties:
```bash
# Encrypt evidence for transfer
gpg --output evidence_package.gpg --encrypt --recipient analyst@example.com \
evidence_archive.tar.gz
# Create a transfer manifest with hashes
python3 scripts/evidence_handler.py --transfer-manifest \
--input evidence_package.gpg \
--sender "Jane Analyst" \
--recipient "John Forensics" \
--case-id "IR-2026-0042" \
--output transfer_manifest.json
# Verify received evidence against manifest
python3 scripts/evidence_handler.py --verify-transfer \
--input evidence_package.gpg \
--manifest transfer_manifest.json
```
Transfer checklist:
- Encrypt all evidence in transit (GPG, age, or equivalent)
- Generate hash manifest before transfer
- Recipient verifies hashes immediately upon receipt
- Both parties log the transfer in chain of custody
- Use secure channels (SFTP, physical hand-off with signed receipt)
- Never transfer evidence over unencrypted channels
## Output Format
```json
{
"case_id": "IR-2026-0042",
"evidence_catalog": [
{
"evidence_id": "EVD-001",
"description": "Forensic image of WORKSTATION-15 system drive",
"type": "disk_image",
"format": "E01",
"file_path": "/evidence/IR-2026-0042/EVD-001/evidence_disk.E01",
"hashes": {
"md5": "d41d8cd98f00b204e9800998ecf8427e",
"sha1": "da39a3ee5e6b4b0d3255bfef95601890afd80709",
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
"size_bytes": 53687091200,
"acquired": "2026-03-21T14:30:00Z",
"examiner": "Jane Analyst",
"source": "WORKSTATION-15, /dev/sda",
"tags": ["disk-image", "workstation", "ransomware"]
}
],
"chain_of_custody": [
{
"timestamp": "2026-03-21T14:30:00Z",
"evidence_id": "EVD-001",
"action": "acquired",
"examiner": "Jane Analyst",
"location": "Forensics Lab, Room 204",
"description": "Created forensic image of WORKSTATION-15 C: drive",
"hash_verified": true
},
{
"timestamp": "2026-03-21T16:45:00Z",
"evidence_id": "EVD-001",
"action": "transferred",
"examiner": "Jane Analyst",
"recipient": "John Forensics",
"location": "Forensics Lab, Room 204",
"description": "Transferred disk image for deeper analysis"
}
],
"integrity_status": "verified",
"total_evidence_items": 1
}
```
## Tips
- Always hash evidence immediately upon acquisition, before any analysis begins
- Use at least two hash algorithms (SHA-256 is the standard; include MD5 for backward compatibility with older tools)
- Never work directly on original evidence; always create and analyze working copies
- Document your tools and their versions (e.g., "dc3dd version 7.2.646, ewfacquire 20171104") for reproducibility
- Set your analysis system clock to UTC and verify accuracy before timestamping evidence
- For volatile evidence (RAM, network captures), acquire in order of volatility: registers, cache, RAM, disk, logs
- Keep a detailed lab notebook or digital log of every action taken during evidence handling
- If you discover evidence outside the original scope, stop and document the finding before proceeding — expanding scope may require additional authorization
- Regularly verify evidence integrity by rechecking hashes against the original manifest
- Store chain-of-custody logs separately from the evidence itself to prevent circular dependency
此文件不提供内嵌文本预览
请使用左侧文件行末尾的外链图标打开原始文件。
