โหมดมืด
บทที่ 0 — Security Mindset
📒 มีศัพท์เยอะ? บทนี้มี ตารางคำศัพท์ + คำย่อ (ข้อ 18) เรียงตามตัวอักษร A–Z พร้อมคำอ่านไทย รวมคำที่จะเจอตลอดเล่ม (CVE, RCE, XSS, SSRF ฯลฯ) — เปิดอ้างอิงได้ตลอดเวลาที่เจอคำย่อแปลก ๆ ไม่ต้องจำให้หมดตั้งแต่แรก
🗒️ คำย่อ/คำอ่านสำคัญที่จะใช้ทันทีในบทนี้ (รายละเอียดอยู่ท้ายบท)
- OWASP (อ่าน โอ-วอสป์) = Open Worldwide Application Security Project — องค์กรไม่แสวงกำไรที่ทำ best practice ด้าน app security
- CIA triad (อ่าน ซี-ไอ-เอ ทรา-เอด) = สามเสาหลักของความปลอดภัย (Confidentiality / Integrity / Availability) — ไม่ใช่หน่วยข่าวกรอง
- Zero Trust (อ่าน ซี-โร่ ทรัสต์ = ไม่เชื่อใครเลยโดย default) — สถาปัตยกรรมมาตรฐาน NIST SP 800-207
- Defense in Depth (ดี-เฟ้นซ์ อิน เด็พ = ป้องกันเป็นชั้น)
- Threat model (เธรท โม-เดล = แบบจำลองภัย)
- Attack surface (แอท-แทค เซอ-เฟส = พื้นผิวที่ถูกโจมตีได้)
- CVE / CVSS / CWE (อ่าน ซี-วี-อี / ซี-วี-เอส-เอส / ซี-ดับเบิ้ลยู-อี)
- STRIDE (อ่าน "สไตรด์" — คำเดียว ไม่ใช่สะกดทีละตัว)
1. ทำไม Security ต้องเริ่มที่ Mindset
หลายคนคิดว่า "ความปลอดภัย = ลง firewall + ใช้ HTTPS + เสร็จ"
ผิด — ความปลอดภัย (security) คือ วิธีคิด ไม่ใช่ฟีเจอร์ที่เพิ่มทีหลัง
text
แบบ "Move fast and break things"
(เป็น motto เก่าของ Facebook — ทำงานเร็วยอมพังบ้าง):
- เขียน feature เร็ว
- bug หลุดเป็นปกติ
- security ค่อยทำตอนใกล้ launch
- "เรายังเล็ก ไม่มีคนสนใจ hack หรอก"
→ ผลที่ตามมา: data leak, ransomware, ฟ้องร้อง, ปิดบริษัทtext
แบบมี security mindset:
- ก่อนเขียนทุก feature ถามว่า "ถ้า attacker ทำอะไรได้บ้าง?"
- ทุก input = ของฝั่งศัตรู (ห้าม trust)
- ปลอดภัยเป็น layer ไม่ใช่จุดเดียว
- log ทุกการกระทำสำคัญ
→ พังน้อย แม้พังก็กู้ได้แปล: มีบริษัทอยู่ 2 ประเภท — พวกที่โดน hack แล้ว กับพวกที่ยังไม่รู้ตัวว่าโดน hack ไปแล้ว — John Chambers (อดีต CEO Cisco)
"There are two kinds of companies: those who have been hacked, and those who don't yet know they've been hacked." — John Chambers
2. CIA Triad — เสาหลัก 3 ต้นของ Security
Confidentiality (ความลับ)
ข้อมูลที่ลับ → คนที่ควรเห็นเท่านั้นเห็น
ตัวอย่าง: password, medical record, เงินเดือน
Integrity (ความถูกต้อง)
ข้อมูลไม่ถูกแก้โดยไม่ได้รับอนุญาต
ตัวอย่าง: ยอดเงินในบัญชี, ผลโหวต, เอกสารทางการ
Availability (พร้อมใช้งาน)
ระบบใช้งานได้ตอนที่ต้องการ
ตัวอย่าง: ระบบฉุกเฉิน 1669, ระบบจ่ายเงิน→ การโจมตี = ทำลาย 1 ใน 3 (หรือทั้ง 3)
| รูปแบบโจมตี | กระทบเสาไหน |
|---|---|
| Data breach (ข้อมูลหลุด) | Confidentiality |
| SQL injection แก้ข้อมูล | Integrity |
| DDoS ทำเว็บล่ม | Availability |
| Ransomware (เข้ารหัสจับเรียกค่าไถ่) | ทั้ง 3 |
3. Defense in Depth — ป้องกันเป็นชั้น
ชั้นเดียวไม่พอ — ต้องมีหลายชั้น เผื่อพังชั้นใดชั้นหนึ่ง (เปรียบเหมือนปราสาทยุคกลางที่มี castle and moat = ปราสาทกับคูเมือง — มีกำแพง คูน้ำ ป้อมยาม หลายชั้น):
📖 คำที่อยู่ใน diagram (อ่านสั้น ๆ ก่อน — ไม่ต้องจำหมด):
- firewall = อุปกรณ์/โปรแกรมกรอง traffic เข้า-ออกตาม rule
- WAF (Web Application Firewall) = firewall ที่เข้าใจ HTTP — บล็อก SQL injection / XSS ได้ตั้งแต่ก่อนถึง app (รายละเอียดบท 7)
- DDoS protection = ป้องกันการยิง request พร้อมกันจากเครื่องเป็นล้านเพื่อให้ระบบล่ม
- OS hardening = ตั้งค่า Linux/Windows ปิด service ที่ไม่ใช้ ลด attack surface (รายละเอียดบท 7)
- patching = ลง patch แก้ CVE ของ OS / library
- auth + input validation = ใครเป็นใคร + ตรวจข้อมูลทุกอย่างที่รับเข้ามา (บท 2 + บท 1)
- encryption at rest / in transit = เข้ารหัสตอนเก็บใน disk + ตอนส่งผ่านเครือข่าย (บท 4)
- MFA (Multi-Factor Authentication) = ยืนยันตัวตน 2 ปัจจัยขึ้นไป (รหัส + OTP / fingerprint) (บท 2)
- audit log = บันทึกว่าใครทำอะไรเมื่อไหร่ (บท 7)
ถ้า attacker เจาะชั้น 1 ทะลุ → ยังเจอชั้น 2-5 รอ
ใช้แค่ชั้นเดียว — แทงทะลุปุ๊บ end of game
💡 เพิ่มเติมยุคใหม่ (2026): หลายองค์กรย้ายจากโมเดล "castle and moat" (เชื่อทุกอย่างใน network ภายใน) → Zero Trust Architecture (NIST SP 800-207) — "never trust, always verify" ไม่เชื่อใครเลยแม้แต่คนใน network ตัวเอง ต้องตรวจตัวตน + สิทธิ์ทุก request
- ตัวอย่าง implementation: BeyondCorp (Google), Tailscale / Headscale, WireGuard (VPN modern)
- รายละเอียด Zero Trust จะเจอใน บท 7 (Hardening + Monitoring)
4. Threat Modeling — STRIDE
Threat model (เธรท โม-เดล = "แบบจำลองภัย" — รายการของเหตุการณ์เลวร้ายที่อาจเกิดกับระบบ พร้อมวิธีรับมือ)
STRIDE (อ่านเป็นคำเดียว "สไตรด์") = framework ของ Microsoft ที่คิดขึ้นในยุค 90 — ใช้ checklist 6 ตัวอักษรไล่ดูว่าระบบเราอาจถูกโจมตียังไงบ้าง ครอบคลุมภัยเกือบทุกประเภทที่เจอจริง
| ตัวอักษร | ประเภทภัย | ตัวอย่างสถานการณ์ (1-2 บรรทัด) |
|---|---|---|
| Spoofing | ปลอม identity (ตัวตน) | attacker ได้ session cookie ของ user A → login เข้าระบบโดยที่ระบบเชื่อว่าเป็น A; หรือส่ง email อ้างว่าเป็นธนาคารหลอกขอ password |
| Tampering | แก้ข้อมูล | dักจับ request ตอนส่งบนเครือข่ายแล้วเปลี่ยนค่า amount จาก 100 เป็น 100000 ก่อนถึง server |
| Repudiation | ปฏิเสธว่าทำ | user กดลบข้อมูลแล้วบอก "ฉันไม่ได้กด" — ถ้าระบบไม่มี audit log (บันทึกว่าใครทำอะไรเมื่อไหร่) ก็พิสูจน์ไม่ได้ |
| Information disclosure | ข้อมูลรั่ว | SQL injection ดึงตาราง user ทั้งหมด; หรือ error page แสดง stack trace + path ของไฟล์ในเซิร์ฟเวอร์ |
| Denial of service | ทำให้ใช้ไม่ได้ | DDoS ยิง request หลายล้านต่อวินาทีจนเครื่องล่ม; หรือ resource exhaustion = ส่ง request ใหญ่ ๆ จนใช้ RAM/CPU หมด ระบบหยุดบริการคนอื่น |
| Elevation of privilege | ขยายสิทธิ์ | user ธรรมดาหา bug ที่ทำให้ตัวเองกลายเป็น admin ได้ → ลบข้อมูลคนอื่น/อ่าน password ทั้งหมด |
กระบวนการ Threat Modeling
1. วาด architecture
[User] → [Web] → [API] → [DB]
→ [Cache]
→ [Queue] → [Worker]
2. ระบุ trust boundary (ขอบเขตของความน่าเชื่อ — เส้นที่ข้อมูลข้ามจาก "เชื่อได้น้อย" ไป "เชื่อได้มากกว่า" ต้องตรวจตรงนี้)
- Internet ↔ DMZ
(DMZ = Demilitarized Zone — โซนกึ่งกลางกั้นระหว่าง internet ภายนอก กับ network ภายในองค์กร เช่นที่วาง web server ไว้ ให้คนนอกเข้าถึงได้แต่เข้าไม่ถึงระบบหลังบ้าน)
- DMZ ↔ Internal
- User ↔ Admin
3. List ภัยของแต่ละ component (ใช้ STRIDE ไล่)
API endpoint:
- Spoofing: JWT ถูกขโมย
- Tampering: request โดนแก้ตอนส่ง
- Info: SQL injection
- DoS: ไม่มี rate limit
- Privilege: BOLA
* BOLA = Broken Object Level Authorization
* คือช่องโหว่ที่ user A เข้าถึงข้อมูลของ user B ได้
* เพราะระบบไม่เช็คว่าใครเป็นเจ้าของ object นั้น
* ชื่ออื่นคือ IDOR (อ่านละเอียดใน **บท 1** และ **บท 3**)
4. ให้คะแนนความเสี่ยง (impact × likelihood)
5. วางแผน mitigation5. Risk = Impact × Likelihood (ผลกระทบ × ความน่าจะเกิด)
🔊 อ่าน: Risk (ริสค์ = ความเสี่ยง) = Impact (อิม-แพ็คท์ = ผลกระทบ) × Likelihood (ไลค์-ลี-ฮูด = ความน่าจะเกิด/โอกาส)
ความเสี่ยง = ผลกระทบ × โอกาสเกิด
Impact สูง Impact ต่ำ
┌───────────────────┬──────────────────┐
โอกาสสูง │ CRITICAL │ HIGH │
│ แก้ทันที │ แก้สัปดาห์นี้ │
├───────────────────┼──────────────────┤
โอกาสต่ำ │ HIGH │ MEDIUM/LOW │
│ แก้ไตรมาสนี้ │ ลง backlog │
└───────────────────┴──────────────────┘ตัวอย่าง
| ภัยที่อาจเกิด | Impact | Likelihood | Risk |
|---|---|---|---|
| SQL injection ที่หน้าจ่ายเงิน | สูง | ปานกลาง | CRITICAL |
| Reflected XSS ในหน้าโปรไฟล์ | กลาง | สูง | HIGH |
| S3 bucket เป็น public | สูง | ต่ำ | HIGH |
| Internal DDoS | สูง | ต่ำมาก | MEDIUM |
→ ห้ามแก้ทุกอย่างพร้อมกัน — โฟกัสที่ CRITICAL ก่อน
6. คิดแบบ Attacker
อยากป้องกันได้ดี ต้องคิดเหมือนคนโจมตี — ขั้นตอนที่ attacker ทำกัน (เรียกรวม ๆ ว่า kill chain = "ห่วงโซ่การโจมตี" — ลำดับขั้นตั้งแต่หาเป้าจนยึดได้):
ℹ️ หมายเหตุ: บทนี้ "อ่านพอเข้าใจ" ก็พอ — ไม่ต้องลงมือลอง tool ทั้งหมดตอนนี้ (ทดลองจริงใน Checkpoint 0.3 ท้ายบท หรือใน lab ที่ปลอดภัยอย่าง Juice Shop / HackTheBox / TryHackMe เท่านั้น ห้ามลองกับระบบที่ไม่ใช่ของตัวเอง — ผิดกฎหมาย)
1. Reconnaissance — เก็บข้อมูลก่อนโจมตี
🔊 Reconnaissance (อ่าน เร-คอน-เนส-ซองซ์ — มาจากภาษาฝรั่งเศส แปลว่า "การลาดตระเวนหาข้อมูล")
text
- Google ชื่อบริษัท + "site:github.com" → หา code ที่อาจ leak secret
- Shodan.io → หา server ที่เปิด port ไม่ควร
(Shodan = search engine ของ device ที่ต่อ internet ทั่วโลก
เห็น port + service + version — ฟรี tier อ่านได้ ไม่ต้อง hack อะไร)
- LinkedIn → ดูพนักงาน + tech stack ที่ใช้
- DNS records → หา subdomain ที่ลืม (dev.example.com)2. Scanning — สแกนช่องโหว่
- nmap → scan port
- subdomain enumeration (หา subdomain ของ domain เป้า เช่น admin.target.com, dev.target.com ที่ไม่ public)
- directory brute force (/admin, /.env, /api/v1/users) — ลอง URL path ที่อาจมี
- ลองหา CVE ของ version ที่ใช้3. Exploitation — ใช้ช่องโหว่
- SQL injection ในฟอร์ม
- XSS ในช่อง comment
- IDOR (เปลี่ยน id ใน URL ดูข้อมูลคนอื่น)
- Brute force password ที่ไม่มี rate limit
- ใช้ exploit ของ library เก่า เช่น
* **Log4Shell** (CVE-2021-44228) = ช่องโหว่ RCE ใน Log4j ปลายปี 2021 ที่ทำให้ Java app เกือบทั้งโลกเสี่ยงโดน hack ผ่านการ log string ธรรมดา ๆ
* **Spring4Shell** (CVE-2022-22965) = RCE ใน Spring Framework ต้นปี 20224. Persistence — ฝังตัวให้กลับมาได้
- ใส่ backdoor
- สร้าง admin account ใหม่
- ตั้ง cronjob5. Lateral movement + Exfiltration — ขยายขอบเขต + ขโมย
- SSH ไป server อื่นในเครือข่าย
- dump database
- ขายข้อมูลใน dark web6. Cover tracks — ลบร่องรอย
- ลบ log
- ปิด monitoring→ การป้องกัน = ทำให้ขั้นตอนใดขั้นตอนหนึ่งใน chain (ห่วงโซ่การโจมตี) นี้พัง
ถ้า attacker ทะลุไปขั้น 6 ได้แล้ว = สายไปแล้ว
7. ความเข้าใจผิดที่เจอบ่อย
❌ "Security through obscurity" — ปลอดภัยเพราะซ่อนไว้
🔊 อ่าน: ซี-เคียว-ริ-ตี้ ทรู ออบ-สคิว-ริ-ตี้ = "ความปลอดภัยจากการปิดบัง" — คือคิดว่าถ้าไม่บอกใครว่าระบบทำงานยังไง / URL อยู่ที่ไหน ก็จะปลอดภัย (ผิด)
"ไม่มีใครรู้ URL → ปลอดภัย"
"ซ่อน API key ใน source code → ปลอดภัย"
"เขียน encryption เองที่ไม่มีคนรู้ → ปลอดภัย"ผิดทั้งหมด — สิ่งที่ต้องทำ:
- ใช้ algorithm มาตรฐาน (AES, RSA, BCrypt) ที่ public review แล้ว
- ห้ามคิดว่า URL ที่ไม่บอกใครจะไม่มีคนหา
- algorithm มาจาก library — secret อยู่ที่ key
❌ "เราเล็กเกินไป ไม่มีใครสนใจ hack หรอก"
ปัจจุบัน 99% ของการโจมตีไม่ใช่คน — เป็น bot ที่ scan ทั่วโลก
ทุก IP / domain โดน probe หลายร้อยครั้งต่อวัน — รวมถึงคุณ
❌ "เราใช้ HTTPS แล้ว — ปลอดภัย"
HTTPS = ป้องกันแค่ "ระหว่างส่ง" — ไม่ป้องกัน:
- DB ถูก breach
- XSS
- IDOR
- Insider (พนักงานนำข้อมูลออก)
❌ "เราใช้ Spring / React → framework ป้องกันให้แล้ว"
Framework ป้องกัน common attack แต่ไม่ทั้งหมด:
- Spring Security ป้องกัน auth แต่ business logic ผิด → ยังเจาะได้
- React auto-escape XSS แต่ใช้
dangerouslySetInnerHTML→ กลับมา vulnerable
❌ "อยู่บน cloud → cloud provider ดูแลให้"
Shared Responsibility Model (โมเดลแบ่งความรับผิดชอบ — cloud ดูแลส่วนหนึ่ง คุณดูแลอีกส่วน) ของ cloud:
- AWS รับผิดชอบเรื่อง infrastructure (server, hypervisor, datacenter)
- คุณ รับผิดชอบ app config, IAM policy, data encryption, network rule
อ่านสัญญาให้ดี — cloud ไม่ได้ดูแลทุกอย่าง
8. หลักการสำคัญที่ใช้ตลอดเล่ม
Principle of Least Privilege — หลักการให้สิทธิ์น้อยที่สุดที่จำเป็น
ในชีวิตจริงคือ: ให้แต่ละคน/แต่ละโปรแกรม มีสิทธิ์เท่าที่งานต้องใช้จริง ๆ ไม่ให้เกิน
ผิด: App ต่อ DB ด้วย user ที่เป็น superuser
ถูก: App ใช้ DB user ที่อ่าน/เขียน table ของตัวเองเท่านั้น
ผิด: พนักงานทุกคน access prod ได้
ถูก: เฉพาะ SRE on-call (พร้อม audit log)Defense in Depth (กล่าวข้างต้น)
Fail Securely — พังให้ปลอดภัย ("fail closed" = ล้มแบบปิด)
🔊 Fail Securely / Fail closed / Fail open —
failแปลว่า "ล้มเหลว" แต่ความหมายของวลีเหล่านี้คือ "ตอนระบบ error/พัง จะให้ default เป็นแบบไหน?"เปรียบเหมือนประตู:
- Fail closed (ล้มแบบปิด) = ประตูล็อกอัตโนมัติเมื่อระบบไฟดับ → ปลอดภัย ✅
- Fail open (ล้มแบบเปิด) = ประตูเปิดอัตโนมัติเมื่อระบบไฟดับ → ใครก็เดินเข้าได้ ❌
(บาง domain เช่นประตูหนีไฟ จะ fail open เพื่อช่วยชีวิตคน — แต่ส่วนใหญ่ในระบบ software ต้อง fail closed)
java
// ❌ Fail open — ถ้า error แล้วปล่อยผ่าน (อันตราย)
try {
if (isAuthenticated(user)) return data; // ถ้า login ผ่าน → คืนข้อมูล
else return error;
} catch (Exception e) {
return data; // 😱 พอ error → ดันส่ง data ออกไป!
}
// ✅ Fail closed — ถ้า error แล้วห้ามผ่าน (default deny = ปฏิเสธไว้ก่อน)
try {
if (isAuthenticated(user)) return data;
else return error;
} catch (Exception e) {
log.error("Auth error", e); // บันทึก error ไว้ดู
return error; // error → ปฏิเสธเสมอ
}Don't Trust Input — ห้ามเชื่อ input (ข้อมูลที่รับเข้ามา)
ทุกอย่างที่มาจากนอก process ถือเป็นของ "ฝั่งศัตรู":
- Form ที่ user กรอก
- Query parameter ใน URL
- HTTP header
- File ที่ upload
- Response จาก 3rd party API (แม้ "เชื่อถือได้")
- ค่าใน database (อาจถูกฝังไว้แต่ก่อน)
→ Validate ตอน เข้า boundary เสมอ
การตรวจสอบสิทธิ์ทุกครั้ง (Complete Mediation — อ่าน คอม-พลีต มี-ดี-เอ-ชั่น)
ในชีวิตจริงคือ: อย่าเช็คสิทธิ์แค่ครั้งแรกแล้วจำไว้ตลอด — เช็คใหม่ทุกครั้งที่ทำงานสำคัญ เผื่อสิทธิ์ถูกถอนไปแล้ว
java
// ❌ Cache (จำ) permission ไว้แล้วใช้ตลอด
if (hasPermission(user, "delete:order")) {
cache.put(user, "delete:order"); // สิทธิ์อาจถูก revoke (ถอน) ก่อนที่ cache จะหมดอายุ
}
// ✅ Check (ตรวจ) ทุกครั้งที่ใช้ (จะมี cache สั้น ๆ ก็ได้)
if (permissionService.check(user, "delete:order", orderId)) {
// proceed (ทำงานต่อได้)
}Open Design — ออกแบบให้เปิดเผยได้
ในชีวิตจริงคือ: วิธีการ (algorithm) เปิดให้คนทั้งโลกตรวจได้ ความปลอดภัยมาจาก "กุญแจลับ (key)" ไม่ใช่จากการปิดบังวิธี
"เราใช้ AES-256 + random IV" → ใครมาดูก็ยังปลอดภัย
"เราใช้ algorithm ลับของเราเอง" → ไม่มีใคร review (ตรวจทาน) → bug ค้างอยู่→ Algorithm (วิธีเข้ารหัส) = เปิดเผยได้, secret (ความลับ) = อยู่ที่ key (กุญแจ)
หลักการ "ใช้ง่ายพอที่คนจะไม่หาทางเลี่ยง" (Psychological Acceptability — อ่าน ไซ-โค-โล-จิ-คอล แอ็ค-เซ็พ-ทะ-บิ-ลิ-ตี้)
ในชีวิตจริงคือ: ถ้ามาตรการความปลอดภัยยุ่งยากเกินไป คนจะหาทางเลี่ยง สุดท้ายเลยไม่ปลอดภัย
ถ้า security ยากเกินไป → user หาทางหลีก (เขียน password ใส่ post-it แปะไว้)
✅ Password manager (auto-fill)
✅ MFA app (1-tap approve)
✅ Passkey (face/fingerprint)
❌ "ต้องมี 1 ตัวอักษรใหญ่ + 1 อิโมจิ + เปลี่ยนทุก 30 วัน"9. Compliance — กฎหมายและมาตรฐาน
ขึ้นกับธุรกิจและประเทศที่ทำ:
| มาตรฐาน / กฎหมาย | ครอบคลุม | เริ่มใช้ |
|---|---|---|
| GDPR (EU) | personal data ของคนใน EU | 2018 |
| PDPA (ไทย) | ข้อมูลส่วนบุคคล | 2022 |
| CCPA (California) | consumer privacy | 2020 |
| HIPAA (US) | medical data | 1996 |
| PCI-DSS | บัตรเครดิต | 2004 (v4.0 = 2024) |
| SOC 2 | service provider trust | — |
| ISO 27001 | information security management | — |
| EU AI Act | regulation ระบบ AI แบบ risk-based — ห้าม social scoring, จำกัด biometric ฯลฯ | Aug 2024 (บางส่วน effective ปี 2025-2026) |
| NIS2 Directive (EU) | cyber resilience — บังคับองค์กรสำคัญ (energy, finance, health) | Oct 2024 |
| DORA (EU) | Digital Operational Resilience Act — bank/insurance/finance | Jan 2025 |
| SEC Cyber Disclosure Rule (US) | บริษัทมหาชนต้องแจ้ง material cyber incident ภายใน 4 วันทำการ | Dec 2023 |
| CISA SBOM mandate (US, EO 14028) | vendor ที่ขายให้รัฐบาลกลางต้องส่ง SBOM | 2021+ |
→ อย่ามองข้าม — fine ของ GDPR สูงสุด 4% ของรายได้ทั่วโลก; EU AI Act สูงสุด 7% หรือ €35M
Key Requirements ของ GDPR + PDPA
- ✅ มี lawful basis (consent, contract, ฯลฯ)
- ✅ ให้สิทธิ์ user: ขอดูข้อมูล / ลบ / portability
- ✅ Data minimization (เก็บแค่ที่จำเป็น)
- ✅ Breach notification (แจ้งภายใน 72 ชั่วโมง)
- ✅ มี DPO ถ้า process ใหญ่
- ✅ DPIA สำหรับข้อมูลที่ sensitive
10. Security Lifecycle — security ทุกขั้นตอน
ความปลอดภัยไม่ใช่งานของขั้นเดียว — ฝังในทุก phase:
1. Plan — threat model, requirement
2. Design — architecture review, crypto choices, auth/authz
3. Develop — secure coding, SAST, peer review
4. Test — unit test สำหรับ security, DAST, pen test
5. Deploy — hardening, secret mgmt, monitoring
6. Operate — patch management, log monitor, incident response
7. Decommission — data wipe, revoke access→ "Shift left" (ชิฟต์ เลฟต์ = เลื่อนงาน security ไปทำตั้งแต่ต้นทาง — ฝั่งซ้ายของ timeline development) = หา bug เร็วเท่าไหร่ ค่าซ่อมยิ่งถูก
→ "Shift right" (ชิฟต์ ไรท์ = ขยับไปฝั่งขวา = runtime — ตอนที่ระบบกำลังรันจริงใน production) = ป้องกัน + เฝ้าระวังตอนระบบทำงาน ไม่ใช่แค่ก่อน deploy
- ตัวอย่าง: runtime protection (Falco, eBPF), chaos engineering, canary deploy, observability + SIEM, runtime application self-protection (RASP)
- ในยุค 2026 ทั้ง 2 ฝั่งสำคัญพอกัน — shift left ไม่ครอบคลุม zero-day, insider threat, runtime config drift
11. Cost ของการเจอ Bug ช้า
ยิ่งเจอช่องโหว่ช้า ยิ่งแพงแบบทวีคูณ:
💡 แก้ตอนออกแบบราคา 1x — แต่ถ้าหลุดไปจนเกิด security incident อาจแพงถึง 1000x (ค่าทนาย + ชื่อเสียง + ลูกค้าหาย)
text
ที่เจอ bug ค่าซ่อม (เทียบกับ 1x)
─────────────────────────────────────────────
Requirements / Design 1x
Development 5x
Testing 10x
หลัง release 30-100x
หลังโดน security incident 1000x (legal + ชื่อเสีย + ลูกค้าหาย)📊 ตัวเลขจริงจาก report ปี 2024: ตาราง 1000x ด้านบนมาจาก IBM System Sciences Institute (1980s) ที่ฝัง ๆ กันมา — ใช้เป็น mental model พอ
อ้างอิงตัวเลข concrete ปัจจุบัน: IBM Cost of a Data Breach Report 2024
- global average / 1 incident = $4.88M USD
- healthcare sector average = $9.77M USD
- average detection + containment = 258 วัน
→ Hire pen tester ตอน design > จ่ายค่าทนายตอนถูกฟ้อง
12. Bug Bounty Programs
Platform: HackerOne, Bugcrowd, Open Bug Bounty
รางวัล: $100 - $1M+
Scope: "ทดสอบ domain เหล่านี้ ภายใต้กฎเหล่านี้"บริษัทใหญ่ (Google, Microsoft, Facebook) มี bug bounty:
- ดี: hacker ใจดี → รายงาน → ได้เงิน + ชื่อใน hall of fame (หอเกียรติยศ — ทำเนียบรายชื่อผู้ค้นพบช่องโหว่)
- ป้องกัน: พบ bug ก่อนคนชั่วจะใช้
→ ethical hacker = friend, not enemy
13. CIA + AAA — เสาเพิ่มในยุคใหม่
เดิมมี 3 (Confidentiality, Integrity, Availability)
สมัยใหม่เพิ่ม:
- Authentication — คุณคือใคร?
- Authorization — คุณทำอะไรได้?
- Auditing — เกิดอะไรขึ้นบ้าง?
= C-I-A + A-A-A
14. 3 ความผิดพลาดที่ยังเจอบ่อยในปี 2026
1. SQL Injection (ยังไม่ตาย!)
java
// ❌
String query = "SELECT * FROM users WHERE email = '" + email + "'";
// User กรอก: ' OR '1'='1
// query กลายเป็น: SELECT * FROM users WHERE email = '' OR '1'='1'
// → return ทุก userjava
// ✅ ใช้ PreparedStatement
PreparedStatement stmt = conn.prepareStatement("SELECT * FROM users WHERE email = ?");
stmt.setString(1, email);หรือใช้ ORM (JPA, Hibernate) — ปลอดภัย by default
2. Hardcoded Secret — ใส่ secret ใน code
java
// ❌
String awsAccessKeyId = "AKIA_EXAMPLE_FAKE_KEY";
// AKIA = prefix ของ access key สำหรับ IAM user บน AWS
// → bot บน GitHub scan pattern นี้ได้ภายในไม่กี่วินาทีหลัง push→ commit → push GitHub → bot scan (โปรแกรมไล่สแกน) ภายในไม่กี่นาที → ใช้โจมตี
java
// ✅
String apiKey = System.getenv("API_KEY");3. ไม่ validate input
java
// ❌
@PostMapping("/transfer")
public void transfer(@RequestBody TransferRequest req) {
accountService.transfer(req.from, req.to, req.amount);
}
// attacker ส่ง: { "from": "victim", "to": "attacker", "amount": -1000000 }
//
// สมมติ logic เขียนแบบไร้เดียงสา:
// balance[from] -= amount; // victim -= (-1M) → victim ได้ +1M
// balance[to] += amount; // attacker += (-1M) → attacker ติดลบ
//
// → ทิศทาง transfer "พลิก" เพราะ amount ติดลบ
// เงินไหลจาก attacker → victim แทนที่จะเป็น victim → attacker
//
// = business logic bug — ลืม validate ว่า amount ต้องเป็นบวก
// (รากปัญหาเดียวกัน: ไม่ validate sign + range ของ input)java
// ✅ validate ทั้ง type + range
public class TransferRequest {
@NotNull Long from;
@NotNull Long to;
@NotNull @Positive @DecimalMax("100000") BigDecimal amount;
}15. เคสจริงที่ดังในประวัติศาสตร์ — เรียนจากความล้มเหลว
Equifax 2017
- สาเหตุ: ไม่ patch CVE ของ Apache Struts (มี patch ออกมา 2 เดือนก่อน)
- ผลกระทบ: SSN ของ 147 ล้านคนหลุด
- ค่าเสียหาย: $1.4B+
บทเรียน: Patch management = priority #1
Capital One 2019
- สาเหตุ: SSRF (Server-Side Request Forgery — หลอกให้ server ของเราไปยิง request ไปยัง URL ที่ attacker เลือก) ที่ AWS metadata endpoint
- AWS metadata endpoint = URL พิเศษ
http://169.254.169.254/ที่ทุก EC2 instance เข้าถึงได้ภายใน — มี IAM credentials ของ instance อยู่ที่นั่น - ถ้า attacker หลอกให้ server ของเรายิงไปที่ URL นี้แล้วเอาผลลัพธ์กลับมา = ได้ AWS credentials → เข้าบัญชี AWS ของเจ้าของได้
- AWS metadata endpoint = URL พิเศษ
- ผลกระทบ: ข้อมูล 100 ล้านคน
- ค่าเสียหาย: $300M+
บทเรียน: IAM (สิทธิ์เข้าถึงทรัพยากร AWS) + WAF + SSRF protection + ใช้ IMDSv2 (metadata service v2 ที่บังคับ token)
SolarWinds 2020
- สาเหตุ: backdoor ใน software update ของ vendor (SUNBURST malware ฝังใน Orion update)
- ผลกระทบ: 18,000 องค์กร (รวมถึงหน่วยงานรัฐบาลกลางสหรัฐหลายแห่ง)
- ค่าเสียหายทางเศรษฐกิจ: ตัวเลขประมาณการต่างกันมาก — งานวิจัยบางแหล่งบอก ~$100B รวมต้นทุนแฝงทั่ว supply chain แต่เป็น estimate ไม่ใช่ตัวเลขทางการ; ตัวเลขที่ confirm: Microsoft ใช้เวลา investigate กว่า 500 ชั่วโมง engineer
บทเรียน: Trust no one — แม้แต่ vendor (เป็นแรงผลักดันใหญ่ให้ EO 14028 + SBOM mandate)
Log4Shell (Log4j) 2021
- สาเหตุ: RCE ใน Log4j library
- ผลกระทบ: เกือบทุก Java app บนโลก
- ใช้เวลา: หลายสัปดาห์ทั่วทั้ง industry กว่าจะ patch หมด
บทเรียน: SBOM + dependency monitoring
MOVEit 2023
- สาเหตุ: CVE-2023-34362 — SQL injection chained กับ authentication bypass ใน MOVEit Transfer (file transfer software)
- ผลกระทบ: 60M+ users จาก 2000+ องค์กร (ทั้ง BBC, Shell, US Department of Energy)
- ค่าเสียหาย: ประมาณ $10B+ (รวม remediation cost ตามรายงาน IBM/Coveware; ตัวเลขทางการยังกระจัดกระจาย)
บทเรียน: SQL injection ในปี 2023 ก็ยังพังบริษัทได้
Snowflake credential-stuffing 2024
- สาเหตุ: customer ไม่เปิด MFA + credentials หลุดจาก infostealer malware ในเครื่องเจ้าของ → attacker นำมา login เข้า Snowflake instance
- ผลกระทบ: 165+ องค์กร รวมถึง AT&T (110M records), Ticketmaster (560M records), Santander
- บทเรียน: บังคับ MFA ทุก customer + monitor login จาก IP แปลก; cloud provider เปลี่ยน default ให้ MFA mandatory หลังเหตุการณ์นี้
Change Healthcare ransomware (Feb 2024)
- สาเหตุ: ALPHV/BlackCat ransomware เข้าผ่าน Citrix portal ที่ไม่มี MFA
- ผลกระทบ: ระบบเคลมประกันสุขภาพในสหรัฐหยุดทำงานหลายสัปดาห์, ~$1.5B+ damages, ข้อมูลของคนอเมริกัน ~100 ล้านคน
XZ Utils backdoor (CVE-2024-3094, Mar 2024)
- สาเหตุ: supply chain attack — maintainer คนใหม่ใช้เวลา 2 ปีสร้างความน่าเชื่อถือใน open-source project (XZ — compression library) แล้วฝัง backdoor ที่จะให้ RCE ผ่าน sshd
- ตรวจเจอโดยบังเอิญจาก Andres Freund (PostgreSQL dev) ก่อนเข้า stable release ของ distro ใหญ่ — "เกือบเป็นภัย supply chain ครั้งใหญ่ที่สุดในประวัติศาสตร์"
- บทเรียน: trust ใน open-source maintainer ก็ไม่ใช่ infinity; SBOM + reproducible builds + monitor commit จาก maintainer ใหม่
16. Tool Landscape — เครื่องมือที่ใช้กันในแต่ละขั้น
⚠️ ไม่ต้องจำทั้งหมด — แค่รู้ว่าแต่ละหมวดใช้ทำอะไร + ตัวที่ดังที่สุด 1-2 ตัวพอ ลงรายละเอียดจริงในบท 6-7
| ขั้นตอน | ทำอะไร | ตัวยอดนิยม | บทที่ลง detail |
|---|---|---|---|
| SAST (Static Application Security Testing) | สแกน source code ไม่ต้อง run — หา bug pattern | SonarQube, Semgrep | บท 6 |
| DAST (Dynamic Application Security Testing) | ส่ง request เข้า app ที่ running จริง | OWASP ZAP (ฟรี), Burp Suite (มืออาชีพ) | บท 6 |
| Dependency / SCA (Software Composition Analysis) | ดู library ใน pom.xml/package.json มี CVE ไหม | Dependabot (built-in GitHub), Snyk | บท 6 |
| Container scan | สแกน Docker image | Trivy (ฟรี ครบ) | บท 6 |
| IaC scan (Infrastructure as Code) | สแกน Terraform/Kubernetes manifest | Checkov | บท 7 |
| Secret scan | หา secret ที่ลืมใน git history | Gitleaks, GitHub Secret Scanning (built-in) | บท 5 |
| Pen testing | มนุษย์ลองเจาะระบบจริง | Burp Suite + bug bounty (HackerOne / Bugcrowd) | บท 6-7 |
| WAF (Web Application Firewall) | บล็อก attack ที่ edge ก่อนถึง app | Cloudflare (cloud), AWS WAF | บท 7 |
| Runtime protection ("shift right") | ตรวจพฤติกรรมแปลกตอน app กำลังรัน | Falco (Kubernetes, open-source) | บท 7 |
17. Security Culture — สำคัญกว่าเครื่องมือ
เครื่องมือ security ดีแค่ไหนก็ไร้ค่าถ้าวัฒนธรรมองค์กรไม่เอื้อ — ทีมที่ปลอดภัยจริงคือทีมที่ทำ blameless postmortem, มี security champion, กล้ารายงาน bug โดยไม่ถูกลงโทษ
ดี:
✅ Blameless postmortem (วิเคราะห์เหตุไม่ใช่ตัวคน)
✅ มี bug bounty (internal + external)
✅ Lunch & Learn เรื่อง security
✅ มี security champion ในทุกทีม
✅ Security review ทุก feature ใหม่
✅ Phishing simulation
✅ Tabletop exercise (ซ้อมสถานการณ์)
✅ Automate ทุกอย่าง
แย่:
❌ ลงโทษคนที่รายงาน bug
❌ "security เป็นงานของอีกทีม"
❌ ไม่สนใจ finding เล็ก ๆ
❌ "เดี๋ยวค่อย patch"18. คำศัพท์พื้นฐานที่จะเจอตลอดเล่ม
เรียงตามตัวอักษร A→Z; คอลัมน์สุดท้ายบอกว่าเจอตอนไหน/ใช้ทำอะไร
| คำ (คำอ่าน) | ความหมาย | เจอตอนไหน / ใช้ทำอะไร |
|---|---|---|
| APT (เอ-พี-ที) | Advanced Persistent Threat — โจมตีระยะยาว มีเป้าหมาย | ข่าว state-sponsored attack (บท 7) |
| Attack surface (แอท-แทค เซอ-เฟส) | "พื้นผิวการโจมตี" — จุดที่ attacker เข้าถึงได้ทั้งหมด | ใช้คิดทุกบท — ลด surface = ลดความเสี่ยง |
| Backdoor (แบ็ค-ดอร์) | ทางลับที่ attacker ทิ้งไว้กลับมาได้ | persistence phase, supply chain (XZ Utils 2024) |
| BOLA (โบ-ลา) / IDOR (ไอ-ดอร์) | Broken Object Level Authorization / Insecure Direct Object Reference — เข้าถึง object คนอื่นได้เพราะไม่เช็คเจ้าของ | #1 ใน OWASP API Top 10 2023 (บท 1, 3) |
| C2 (ซี-ทู) | Command and Control — server ของ attacker | malware analysis (บท 7) |
| CIA triad (ซี-ไอ-เอ ทรา-เอด) | Confidentiality / Integrity / Availability — ไม่ใช่หน่วยข่าวกรอง | mental model หลัก (บทนี้) |
| CSP (ซี-เอส-พี) | Content Security Policy — HTTP header กันโหลด script จากที่ไม่ได้อนุญาต | ป้องกัน XSS (บท 1) |
| CSRF (ซี-เอส-อาร์-เอฟ) | Cross-Site Request Forgery | บท 1 (หมายเหตุ: ถูกเอาออกจาก OWASP Top 10 ตั้งแต่ปี 2017 แต่ยังต้องรู้) |
| CVE (ซี-วี-อี) | Common Vulnerabilities and Exposures — database ของ bug ที่เปิดเผยแล้ว | ทุกบท — เช็คก่อนใช้ library |
| CVSS (ซี-วี-เอส-เอส) | Common Vulnerability Scoring System — คะแนน 0-10 | จัดลำดับ patch (บท 6) |
| CWE (ซี-ดับเบิ้ลยู-อี) | Common Weakness Enumeration — ประเภท/หมวดของ bug | mapping CVE → root cause (บท 1) |
| DDoS (ดี-ดอส) | Distributed Denial of Service | ผ่าน CloudFlare/AWS WAF (บท 7) |
| DEK (เด็ก) | Data Encryption Key — กุญแจที่ใช้ encrypt ข้อมูลจริง | envelope encryption (บท 4) |
| DMZ (ดี-เอ็ม-แซด) | Demilitarized Zone — โซนกั้นระหว่าง internet กับ network ภายใน | network architecture (บท 7) |
| eBPF (อี-บี-พี-เอฟ) | extended Berkeley Packet Filter — รัน code ใน Linux kernel อย่างปลอดภัย | runtime monitoring (บท 7) |
| Exploit (เอ็ก-สพลอย) | code/เทคนิคที่ใช้ช่องโหว่จริง ๆ | exploitation phase (บท 1) |
| HSM (เอช-เอส-เอ็ม) | Hardware Security Module — อุปกรณ์เก็บ key ระดับ hardware | bank/health key storage (บท 4) |
| HSTS (เอช-เอส-ที-เอส) | HTTP Strict Transport Security — บังคับ browser ใช้ HTTPS เสมอ | TLS hardening (บท 4) |
| IAP (ไอ-เอ-พี) | Identity-Aware Proxy (Google) — ตรวจ auth ก่อนเข้าทุก request | Zero Trust (บท 7) |
| IRSA (อิร-ซ่า) | IAM Roles for Service Accounts (AWS) — K8s pod assume role | AWS + K8s (บท 5) |
| JWT (จอท / เจ-ดับเบิ้ลยู-ที) | JSON Web Token — token format ที่ใช้ใน auth สมัยใหม่ | session/auth (บท 2) |
| KEK (เค็ก) | Key Encryption Key — encrypt DEK อีกที | envelope encryption (บท 4) |
| KMS (เค-เอ็ม-เอส) | Key Management Service (AWS/GCP/Azure) | เก็บ + จัดการ key (บท 4, 5) |
| MFA / 2FA (เอ็ม-เอฟ-เอ / ทู-เอฟ-เอ) | Multi-Factor Authentication | บท 2 |
| MITM (มิตม์ / เอ็ม-ไอ-ที-เอ็ม) | Man-in-the-Middle — ดักกลางการสื่อสาร | TLS, public WiFi (บท 4) |
| OAuth 2.x (โอ-ออธ) | framework มาตรฐานในการขอ "สิทธิ์เข้าถึง resource" (delegation) — ปัจจุบันใช้ OAuth 2.0/2.1 | auth flow (บท 2) |
| OIDC (โอ-ไอ-ดี-ซี) | OpenID Connect — auth layer ที่อยู่บน OAuth 2 | Login with Google/Apple (บท 2) |
| OWASP (โอ-วอสป์) | Open Worldwide Application Security Project — องค์กรไม่แสวงกำไรที่ทำ best practice | Top 10:2021 (เว็บ), API Top 10:2023, LLM Top 10:2025 (บท 1) |
| Payload (เพย์-โหลด) | "ของ" ที่ใส่ในการโจมตี (เช่น SQL injection string) | บท 1 |
| PHI (พี-เอช-ไอ) | Protected Health Information — ข้อมูลทางการแพทย์ | HIPAA compliance |
| PII (พี-ไอ-ไอ) | Personally Identifiable Information — ข้อมูลส่วนตัวระบุตัวคนได้ | GDPR / PDPA |
| PoC (พี-โอ-ซี / พ็อค) | Proof of Concept — code สาธิตว่ามี bug จริง | bug report (บท 1) |
| PQC (พี-คิว-ซี) | Post-Quantum Cryptography — crypto ที่ทน quantum computer (FIPS 203/204/205 — Aug 2024) | บท 4 — "harvest now, decrypt later" |
| RCE (อาร์-ซี-อี) | Remote Code Execution — รัน code บน server เป้าได้ | ภัยร้ายแรงสุด (Log4Shell, Spring4Shell) |
| SAML (แซ็ม-เอิล) | Security Assertion Markup Language — enterprise SSO | บท 2 |
| SBOM (เอส-บอม) | Software Bill of Materials — รายการ component/library | บังคับโดย CISA EO 14028 (บท 6) |
| SCP (เอส-ซี-พี) | Service Control Policy — AWS policy ระดับ organization | บท 7 |
| SIEM (ซีม / เอส-ไอ-อี-เอ็ม) | Security Information and Event Management — รวม log + วิเคราะห์ภัย | บท 7 |
| SLSA (ซัล-ซ่า) | Supply-chain Levels for Software Artifacts | build pipeline integrity (บท 6) |
| SOAR (โซอาร์) | Security Orchestration, Automation and Response — automate ตอบสนอง alert | บท 7 |
| SOC (ซ็อค) | Security Operations Center — ทีมเฝ้าระวังภัย 24/7 | บท 7 |
| SQLi (เอส-คิว-แอล-ไอ) | SQL Injection | บท 1 |
| SSRF (เอส-เอส-อาร์-เอฟ) | Server-Side Request Forgery — หลอกให้ server ของเรายิง request ที่ไม่ควร | บท 1 (Capital One 2019) |
| STRIDE (สไตรด์) | framework Microsoft (Spoofing/Tampering/Repudiation/Info disclosure/DoS/Elevation) | threat model (บทนี้) |
| Threat model (เธรท โม-เดล) | "แบบจำลองภัย" — รายการเหตุการณ์เลวร้ายที่อาจเกิด + วิธีรับมือ | ทุกบท |
| TOTP (ที-โอ-ที-พี / โท้-ทพ์) | Time-based One-Time Password (Google Authenticator) | MFA (บท 2) |
| WAF (วาฟ / ดับเบิ้ลยู-เอ-เอฟ) | Web Application Firewall — firewall ที่เข้าใจ HTTP | บท 7 |
| XSS (เอ็กซ์-เอส-เอส) | Cross-Site Scripting | บท 1 |
| Zero-day (ซีโร-เดย์) | ช่องโหว่ที่ยังไม่มี patch | ทุกบท |
| Zero Trust (ซี-โร่ ทรัสต์) | NIST SP 800-207 — "never trust, always verify" | ทดแทน castle-and-moat (บท 7) |
18.5 Glossary — สำนวน/idiom ที่เจอบ่อยในวงการ security
รวมศัพท์ใน mindset chapter ที่เป็น metaphor/idiom ภาษาอังกฤษ — ไว้เปิดอ้างอิงเร็ว
| สำนวน | คำแปลไทย | ความหมาย |
|---|---|---|
| Castle and moat | ปราสาทกับคูเมือง | โมเดล security เก่า: เชื่อทุกอย่างใน network ภายใน |
| Defense in depth | ป้องกันเป็นชั้น | มี security หลาย layer เผื่อพังชั้นหนึ่งยังเหลืออีก |
| Fail closed | "ล้มแบบปิด" — default deny | ตอน error → ปฏิเสธไว้ก่อน |
| Fail open | "ล้มแบบเปิด" — default allow | ตอน error → ปล่อยผ่าน (อันตรายในระบบ software ส่วนใหญ่) |
| Harvest now, decrypt later | "เก็บไว้ก่อน ถอดทีหลัง" | attacker เก็บ encrypted data ไว้ตอนนี้ รอ quantum computer ในอนาคต → PQC migration urgent |
| Hall of fame | หอเกียรติยศ | รายชื่อ researcher ที่ค้นพบช่องโหว่ในโปรแกรม bug bounty |
| Honeypot | "กับดักหวาน" | server/data ปลอมที่ตั้งล่อ attacker ให้เผยพฤติกรรม |
| Kill chain | ห่วงโซ่การโจมตี | ลำดับขั้นตอนตั้งแต่ recon → exfiltration (Lockheed Martin model) |
| Least privilege | ให้สิทธิ์น้อยสุดที่จำเป็น | principle หลัก |
| Move fast and break things | "ทำเร็วยอมพังบ้าง" | motto เก่าของ Facebook — แอนตี้-pattern ของ security |
| Security through obscurity | ความปลอดภัยจากการปิดบัง | คิดว่าไม่บอกใครก็ปลอดภัย (ผิด) |
| Separation of duties | แบ่งหน้าที่ไม่ให้คนเดียวทำได้หมด | คน approve ≠ คน execute |
| Shift left | เลื่อนซ้าย = เลื่อนงาน security ไปต้นทาง | ทำ security ตั้งแต่ design/dev ไม่ใช่หลัง deploy |
| Shift right | เลื่อนขวา = เลื่อนไปฝั่ง runtime | observability + runtime protection หลัง deploy |
| Q-Day / Y2Q | "วัน Q" | วันที่ quantum computer เจาะ RSA/ECC ได้ — กระตุ้น PQC migration |
19. แหล่งเรียนรู้
หนังสือ
- "The Web Application Hacker's Handbook" — classic
- "Practical Cryptography for Developers" — ฟรี online
- "Real-World Cryptography" — สมัยใหม่
- "Hacking: The Art of Exploitation"
เว็บฝึก
- HackTheBox — CTF + lab จริง
- TryHackMe — เริ่มต้นง่าย
- PortSwigger Web Security Academy — ฟรี, ดีมาก
- OWASP Juice Shop — app ที่ตั้งใจให้ vulnerable
- DVWA (Damn Vulnerable Web App)
- PicoCTF — CTF สำหรับมือใหม่
ข่าว / blog
- The Hacker News
- Krebs on Security (Brian Krebs)
- Schneier on Security
- /r/netsec
- HackerOne disclosure reports
Standards / Framework
- OWASP Top 10:2021 (web) — edition 2026 อยู่ระหว่างร่าง
- OWASP API Security Top 10:2023 — BOLA = #1
- OWASP LLM Top 10:2025 (Aug 2025) — prompt injection, model supply chain → ดูในเล่ม AI/LLM
- NIST Cybersecurity Framework 2.0 (Feb 2024)
- NIST SP 800-207 — Zero Trust Architecture
- NIST FIPS 203 / 204 / 205 (Aug 2024) — มาตรฐาน Post-Quantum Cryptography ตัวแรกของโลก (ML-KEM, ML-DSA, SLH-DSA)
- CIS Benchmarks (hardening checklist)
- MITRE ATT&CK (รวม tactic ของ attacker)
20. Checkpoint
🛠️ Checkpoint 0.1 — Threat Model ของ app ตัวเอง
- วาด architecture (component + data flow)
- ระบุ trust boundary
- List ภัย 5+ ตัว (ตาม STRIDE)
- ให้คะแนน risk
- List mitigation ของแต่ละตัว
🛠️ Checkpoint 0.2 — Setup Juice Shop (ต้องมี Docker ก่อน — ดู Docker book)
bash
docker run --rm -p 3000:3000 bkimminich/juice-shopOWASP Juice Shop = web app ที่ตั้งใจให้มีช่องโหว่ครบทุกหมวด OWASP Top 10 ไว้ฝึก hack อย่างถูกกฎหมาย เปิด http://localhost:3000 → ลอง exploit ตามคำใบ้
🛠️ Checkpoint 0.3 — Recon ตัวเอง (เครื่องมือต้องลงก่อน — เลือกอย่างใดอย่างหนึ่ง)
- search GitHub ชื่อบริษัท / project → มี secret หลุดไหม (ไม่ต้องลงอะไร)
- subdomain enumeration:
subfinder -d yourdomain.com- ติดตั้ง:
brew install subfinder(Mac) /apt install subfinder(Ubuntu) / GitHub releases (Windows)
- ติดตั้ง:
- ดู service ที่เปิด: shodan.io (สมัคร free tier — ไม่ต้องลง tool)
⚠️ ทำกับ domain ของตัวเองเท่านั้น — ทำกับคนอื่น = ผิดกฎหมาย
🛠️ Checkpoint 0.4 — อ่าน Postmortem 1 อัน
จาก:
- Cloudflare blog
- AWS security advisory
- HackerOne disclosed report
อ่านแล้วเขียน "ได้บทเรียนอะไร" 5 ข้อ
🛠️ Checkpoint 0.5 — Risk Matrix
จากภัยใน Checkpoint 0.1 → ทำตาราง impact × likelihood
21. สรุปบท
✅ Security = mindset + practice — ไม่ใช่ feature ที่ใส่ทีหลัง
✅ CIA Triad: Confidentiality, Integrity, Availability — ทุกการโจมตีโจม 1 ใน 3
✅ Defense in Depth — ป้องกันเป็นชั้น เผื่อพังชั้นหนึ่ง
✅ STRIDE — กรอบคิดเรื่องภัยอย่างเป็นระบบ
✅ Risk = Impact × Likelihood — โฟกัสที่ critical ก่อน
✅ หลักการ: least privilege, fail securely, complete mediation, open design
✅ ทิ้ง myth: "security through obscurity", "เราเล็กไม่มีคนสนใจ", "HTTPS แล้วปลอดภัย"
✅ Famous breaches: Equifax (patch), Log4Shell (deps), MOVEit (SQLi) — ผิดซ้ำ ๆ
✅ Tool: SAST, DAST, dependency, secret, container, IaC scan ครบทุกขั้น
✅ Compliance: รู้ว่า GDPR / PDPA / PCI-DSS / EU AI Act / NIS2 / DORA ใช้กับธุรกิจคุณไหม
✅ Modern: Zero Trust (NIST SP 800-207), shift left + shift right, PQC migration (FIPS 203/204/205)
🤖 สำหรับ AI/LLM-specific security (prompt injection, model supply chain, OWASP LLM Top 10:2025) — ดูเล่ม AI/LLM
Glossary: ../glossary.md · Style guide: ../CONTRIBUTING.md last_verified: 2026-06-03 · review report: ../REVIEW-2026-06-03.md