Compliance Matrix — Sentinel Gateway (API-GL-001)
Deep per-control audit ของ Sentinel Gateway เทียบ API-GL-001 V3.0
อัปเดต: 2026-07-02
Sentinel Gateway — Compliance Matrix (API-GL-001 V3.0)
สถานะความปลอดภัยของ
Backend_SentinelGatewayServiceเทียบกับแนวปฏิบัติ ธสน. API-GL-001 V3.0-2568 ทั้ง 7 ด้าน วันที่ scan: 02/07/2026 · branch:development(f4af794) · วิธี: defensive code review (อ่าน code/config/IaC — ไม่มีการทดสอบระบบจริง) คู่กับ SECURITY_SCAN_FINDINGS.md (หลักฐาน) และ SECURITY_HARDENING_PLAN.md (แผนแก้)
สรุปแผ่นเดียว
| # | ด้าน (API-GL-001 §7) | สถานะ | ผ่านแล้ว | ช่องว่างที่เหลือ |
|---|---|---|---|---|
| 1 | Authentication — ยืนยันตัวตน | 🟡 | Cookie HttpOnly/Secure ✓ · OIDC ผ่าน Entra ✓ · แยก cookie ต่อ tenant ✓ · revoke session ได้จริง ✓ | Session ยัง 720 ชม. ไม่เปิดเพดาน idle/absolute (SG-05) · SameSite=None ใน Dev/Sit/Uat (SG-22) |
| 2 | Authorization — ตรวจสิทธิ์ | 🟡 | ทุก endpoint มี [Authorize]/policy ✓ · ไม่พบ IDOR ✓ · AdminOnly + realm policy ✓ · resolve-session มี 3 ชั้น (Auth+InternalOnly+ApiKey) ✓ | InternalAccess.Enabled ไม่พบใน appsettings — ต้อง verify ว่าเปิดใน env จริง (SG-06) |
| 3 | Data Confidentiality & Integrity — ความลับข้อมูล | 🔴 | Code หลักไม่มี secret ฝัง ✓ · ไม่ log token เต็ม ✓ · error ไม่โชว์ internal ✓ | Secret จริงยังอยู่ใน git: demo project EncryptionKey (SG-02c) · ยังไม่ rotate secret เก่าที่เคยรั่ว (SG-02a) · ยังไม่ purge history (SG-02b) · token at-rest encryption ยังไม่เปิด (SG-11) |
| 4 | Secure Communication — เข้ารหัสการสื่อสาร | 🟡 | HTTPS redirect + HSTS 1 ปี ✓ · CSP/security headers ✓ | Ingress ไม่มี tls: block (SG-21) · side-call APIM→service เป็น HTTP ใน cluster ไม่มี mTLS (SG-13) |
| 5 | Secure Coding & Configuration | 🟡 | FluentValidation ✓ · CORS allowlist ✓ · CSRF __Host- ✓ · open-redirect validator ✓ · session fingerprint ✓ | Container รันเป็น root (SG-17) · ไม่มี NetworkPolicy (SG-18) · ForwardedHeaders รับจากทุก proxy (SG-07) · prod config เป็น placeholder ต้องมี fail-fast (SG-19) |
| 6 | Audit Log & Monitoring | 🟡 | Structured log (Serilog) ✓ · log login/logout/token/revoke ระบุ user ได้ ✓ | ยังไม่ verify retention ≥90 วัน + กันแก้ไข log (SG-25) · ยังไม่มี alert rule พฤติกรรมผิดปกติ (SG-26) |
| 7 | Resource Adequacy — rate limit/DDoS | 🟡 | Rate limit ใน service (token bucket + fixed window) ✓ · request size limit ✓ · Redis circuit breaker ✓ · APIM fail-closed ✓ | Rate-limit ที่ APIM ถูก comment out (SG-20) · APIM ไม่ validate ขนาด payload (SG-20) · WAF/DDoS ชั้นหน้า (Cloudflare/App GW) ต้อง verify config จริง |
คะแนนรวม: 0/7 ผ่านเต็ม · 6/7 ผ่านบางส่วน · 1/7 ไม่ผ่าน (ด้าน 3 — เพราะ secret ค้างใน git)
อ่านยังไง
- 🔴 ไม่ผ่าน — มีช่องโหว่ที่ auditor จะติธงแดงทันที ต้องทำ Phase 0 ก่อน
- 🟡 ผ่านบางส่วน — กลไกหลักมีแล้ว แต่มี gap ที่ต้องปิดตามแผน
- ด้านที่ 3 เป็น 🔴 เพียงเพราะ หนี้เก่าค้าง (rotate/purge/demo project) — code ปัจจุบันสะอาดแล้ว ปิด Phase 0 เสร็จจะกลายเป็น 🟡 ทันที และปิด SG-11 จะเป็น ✅
Regression check — งานที่แก้ไปแล้ว (04/06/2026) ยังอยู่ครบ
| ID | เรื่อง | สถานะวันนี้ |
|---|---|---|
| SG-01 | ลบ anonymous debug-tokens endpoint | ✅ ยังลบอยู่ |
| SG-03 | เลิก log JWT เต็ม | ✅ log แค่ sessionId 8 ตัวแรก |
| SG-04 | Cookie แยก tenant (TenantOrigins + RealmOriginPolicy) | ✅ + PR 950 แก้ dual-cookie logout เพิ่ม |
| SG-05 | กลไก idle/absolute session cap | ✅ code มี — ⏳ แต่ค่ายังไม่ตั้ง (ทุก env) |
| SG-06 | InternalOnly ใช้ connection IP | ✅ code — ⏳ gate Enabled ต้อง verify |
| SG-11 | Token encryption at-rest | ✅ code — ⏳ key ยังไม่ provision |
| SG-12 | AdminOnly ใช้ claim roles | ✅ |