# TOPMAN Mobile Forensic Vendor PoC Kit

ชุดทดสอบ public-safe สำหรับเปรียบเทียบ Cellebrite, MSAB, Magnet, Oxygen และ Belkasoft โดยใช้บัญชี อุปกรณ์ และข้อมูลจำลองเท่านั้น

## วัตถุประสงค์

- วัดความสามารถ acquisition และ decoding จาก corpus เดียวกัน
- ทดสอบภาษาไทย, Unicode, LINE, SMS, call, attachment, location, deletion และ timezone
- แยกผล automated 60 คะแนน ออกจาก manual review 40 คะแนน
- บังคับให้ทุก vendor ส่งผลเป็น canonical schema เดียวกันก่อนเปรียบเทียบ
- เก็บ tool/version/config/log/hash เพื่อทำซ้ำได้

## Evidence boundary

- ห้ามใช้โทรศัพท์ส่วนตัว โทรศัพท์พยาน โทรศัพท์ผู้ต้องหา หรือข้อมูลคดีจริง
- ใช้ lab device, lab SIM/eSIM และ lab account ที่สร้างเพื่อ PoC เท่านั้น
- แยกคะแนนตาม acquisition lane: `logical`, `full-file-system`, `advanced/locked`
- ห้ามเทียบผล full-file-system ของ vendor หนึ่งกับ logical backup ของอีก vendor แล้วสรุปว่า engine ดีกว่า
- Ground truth ของรอบจริงต้องเก็บโดย coordinator และไม่ส่งให้ examiner จนกว่าจะส่งผล

## ไฟล์ในชุด

- `scenario-plan.json` — 16 เหตุการณ์จำลองและ critical fields
- `results-schema.json` — schema กลางที่ vendor ทุกตัวต้องแปลงผลเข้ามา
- `manual-score.template.json` — คะแนนด้าน audit, export, usability และ performance
- `SCORECARD.csv` — น้ำหนักคะแนนรวม 100
- `DEVICE_PROVISIONING.md` — วิธีเตรียม Android/iOS lab device
- `VENDOR_RUN_SHEET.md` — แบบบันทึกการรันต่อ vendor
- `scripts/generate-run.mjs` — สร้าง marker และ ground truth เฉพาะรอบ
- `scripts/score-results.mjs` — ตรวจ recall/field/timestamp/hash และรวมคะแนน manual
- `sample/` — ตัวอย่างจำลองสำหรับทดสอบ scorer ไม่ใช่ผล vendor จริง

## สร้างรอบทดสอบจริง

```bash
node scripts/generate-run.mjs \
  --run-id TM-MOBILE-POC-R1 \
  --out /protected/path/TM-MOBILE-POC-R1
```

ผลลัพธ์:

- `coordinator/ground-truth.json` — เก็บลับจาก examiner
- `coordinator/provisioning-actions.csv` — coordinator ใช้สร้างเหตุการณ์บน lab devices
- `examiner/normalized-results.template.json` — examiner กรอก/แปลงผลที่พบ
- `examiner/manual-score.template.json` — reviewer ให้คะแนนส่วนที่ automation วัดไม่ได้
- `manifest.sha256` — hash ของไฟล์ควบคุม

## ให้คะแนน

```bash
node scripts/score-results.mjs \
  --truth /protected/path/TM-MOBILE-POC-R1/coordinator/ground-truth.json \
  --results /protected/path/vendor-a/normalized-results.json \
  --manual /protected/path/vendor-a/manual-score.json \
  --out /protected/path/vendor-a/score
```

หากยังไม่มี manual score ระบบจะรายงานเฉพาะ automated score เต็ม 60 และจะไม่สร้างอันดับสุดท้าย

## เกณฑ์ผ่านก่อนจัดซื้อ

1. ไม่มี integrity/provenance gate ใดได้ศูนย์
2. Event recall รวมไม่น้อยกว่า 85% ใน acquisition lane เดียวกัน
3. Thai/Unicode markers ต้องไม่เสียรูป
4. Timestamp ต้องแปลง UTC/local/timezone ได้อธิบายและทำซ้ำได้
5. Export ต้องมี source path/record ID หรือสิ่งอ้างกลับเทียบเท่า
6. ผลรอบที่สองโดย examiner อีกคนต้องต่างจากรอบแรกไม่เกินเกณฑ์ที่หน่วยกำหนด

## สถานะ

ชุดทดสอบและ scorer พร้อมใช้งาน แต่ผลเปรียบเทียบ vendor จะยังเป็น `PENDING` จนกว่าจะมี dedicated Windows forensic workstation, lab devices, licensed tools และ examiner ที่ได้รับอนุญาต
