Skip to content

บทที่ 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. วางแผน mitigation

5. Risk = Impact × Likelihood (ผลกระทบ × ความน่าจะเกิด)

🔊 อ่าน: Risk (ริสค์ = ความเสี่ยง) = Impact (อิม-แพ็คท์ = ผลกระทบ) × Likelihood (ไลค์-ลี-ฮูด = ความน่าจะเกิด/โอกาส)

ความเสี่ยง = ผลกระทบ × โอกาสเกิด

              Impact สูง            Impact ต่ำ
            ┌───────────────────┬──────────────────┐
โอกาสสูง     │ CRITICAL          │  HIGH             │
            │ แก้ทันที          │  แก้สัปดาห์นี้    │
            ├───────────────────┼──────────────────┤
โอกาสต่ำ    │ HIGH              │  MEDIUM/LOW       │
            │ แก้ไตรมาสนี้      │  ลง backlog       │
            └───────────────────┴──────────────────┘

ตัวอย่าง

ภัยที่อาจเกิดImpactLikelihoodRisk
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 ต้นปี 2022

4. Persistence — ฝังตัวให้กลับมาได้

- ใส่ backdoor
- สร้าง admin account ใหม่
- ตั้ง cronjob

5. Lateral movement + Exfiltration — ขยายขอบเขต + ขโมย

- SSH ไป server อื่นในเครือข่าย
- dump database
- ขายข้อมูลใน dark web

6. 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 openfail แปลว่า "ล้มเหลว" แต่ความหมายของวลีเหล่านี้คือ "ตอนระบบ 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 ของคนใน EU2018
PDPA (ไทย)ข้อมูลส่วนบุคคล2022
CCPA (California)consumer privacy2020
HIPAA (US)medical data1996
PCI-DSSบัตรเครดิต2004 (v4.0 = 2024)
SOC 2service provider trust
ISO 27001information security management
EU AI Actregulation ระบบ 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/financeJan 2025
SEC Cyber Disclosure Rule (US)บริษัทมหาชนต้องแจ้ง material cyber incident ภายใน 4 วันทำการDec 2023
CISA SBOM mandate (US, EO 14028)vendor ที่ขายให้รัฐบาลกลางต้องส่ง SBOM2021+

→ อย่ามองข้าม — 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 ทุก user
java
// ✅ ใช้ 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 ของเจ้าของได้
  • ผลกระทบ: ข้อมูล 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 patternSonarQube, 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 imageTrivy (ฟรี ครบ)บท 6
IaC scan (Infrastructure as Code)สแกน Terraform/Kubernetes manifestCheckovบท 7
Secret scanหา secret ที่ลืมใน git historyGitleaks, GitHub Secret Scanning (built-in)บท 5
Pen testingมนุษย์ลองเจาะระบบจริงBurp Suite + bug bounty (HackerOne / Bugcrowd)บท 6-7
WAF (Web Application Firewall)บล็อก attack ที่ edge ก่อนถึง appCloudflare (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 ของ attackermalware 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 — ประเภท/หมวดของ bugmapping 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 ระดับ hardwarebank/health key storage (บท 4)
HSTS (เอช-เอส-ที-เอส)HTTP Strict Transport Security — บังคับ browser ใช้ HTTPS เสมอTLS hardening (บท 4)
IAP (ไอ-เอ-พี)Identity-Aware Proxy (Google) — ตรวจ auth ก่อนเข้าทุก requestZero Trust (บท 7)
IRSA (อิร-ซ่า)IAM Roles for Service Accounts (AWS) — K8s pod assume roleAWS + 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.1auth flow (บท 2)
OIDC (โอ-ไอ-ดี-ซี)OpenID Connect — auth layer ที่อยู่บน OAuth 2Login with Google/Apple (บท 2)
OWASP (โอ-วอสป์)Open Worldwide Application Security Project — องค์กรไม่แสวงกำไรที่ทำ best practiceTop 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 Artifactsbuild 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เลื่อนขวา = เลื่อนไปฝั่ง runtimeobservability + 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:2023BOLA = #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 ตัวเอง

  1. วาด architecture (component + data flow)
  2. ระบุ trust boundary
  3. List ภัย 5+ ตัว (ตาม STRIDE)
  4. ให้คะแนน risk
  5. List mitigation ของแต่ละตัว

🛠️ Checkpoint 0.2 — Setup Juice Shop (ต้องมี Docker ก่อน — ดู Docker book)

bash
docker run --rm -p 3000:3000 bkimminich/juice-shop

OWASP 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


บทถัดไป → OWASP Top 10


Glossary: ../glossary.md · Style guide: ../CONTRIBUTING.md last_verified: 2026-06-03 · review report: ../REVIEW-2026-06-03.md