12 วิธีการสร้างและวิเคราะห์ Threat Modeling

Threat Modeling คือการวิเคราะห์และสร้างแบบจำลองของ Threat เพื่อหาวิธีและเครื่องมือในการป้องกันที่เหมาะสม โดย Threat Modeling สามารถนำไปประยุกต์ใช้ดังนี้

  • เพื่อร่างโครงสร้างระบบ
  • เพื่อสร้างฐานข้อมูล attackers รวมไปถึง เป้าหมาย และวิธีการของ attackers
  • สร้างสารบัญและฐานข้อมูล Threats ที่อาจจะเกิดขึ้น

ซึ่ง Threat Modeling มีหลายวิธีการ และสามารถใช้ร่วมกันได้เพื่อให้ได้ผลลัพธ์ที่สมบูรณ์มากขึ้น องค์กรต่าง ๆ ควรลองทำ Threat Modeling ตั้งแต่ช่วงแรก ๆ ของการสร้างระบบ และพัฒนา Model ไปพร้อม ๆ กับระบบที่ซับซ้อนมากขึ้น

Threat Modeling นี้สามารถใช้ได้กับทั้ง cyber-system (ระบบที่เป็น software อย่างเดียว) และ cyber-physical system (ระบบที่มีการบูรณาการระหว่าง software technology และ physical infrastructure เช่น smart car และ smart grid) ซึ่ง cyber-physical system ถึงแม้ว่าสร้างความก้าวหน้าทางธุรกิจมาก แต่ก็เป็นจุดอ่อนสำคัญที่สามารถถูกโจมตีได้

บทความนี้ทำการรวบรวม Threat Modeling ทั้ง 12 แบบ ซึ่งทั้งหมดนี้ไม่มีวิธีใดที่ดีกว่าวิธีอื่น แต่องค์กรจะต้องเลือกวิธีที่เหมาะกับโปรเจคและระบบของตนเอง

Model 1: STRIDE

STRIDE เป็นหนึ่งโมเดลที่นิยมใช้มากที่สุด ใช้สำหรับการวิเคราะห์ระบบที่เป็นแบบ in-place โดยเริ่มจากการทำ data-flow diagrams (DFDs) เพื่อระบุ system entities, ระบุ event และระบุขอบเขตของระบบ จากนั้นก็แบ่งกลุ่ม Threats เป็น 6 กลุ่ม ตามพฤติกรรมและ Property ที่ถูก violate ดังตารางที่แสดงต่อไปนี้

ตาราง STRIDE นี้ทำเพื่อแบ่งประเภท Threats เพื่อประสานงานและแก้ไขต่อไปใน Security Development Cycle

Threat Property Violated

คำอธิบาย

S Spoofing Identity Authentication การขโมย Identity ของผู้อื่น
T Tampering with data Integrity การปลอมแปลงข้อมูลบน disk, network, memory หรืออื่นๆ
R Repudiation ระบบที่มีการเก็บ Log (Footprint) ไม่ทิ้ง Footprint ให้ตามจับ
I Information Disclosure ข้อมูลลับ การเปิดเผยข้อมูลโดยไม่ได้รับอนุญาต
D Denial of service ระบบที่ควร available การใช้ทรัพยากรจนผู้อื่นไม่สามารถใช้ได้ หรือการปิดกั้นทรัพยากร
E Elevation of privilege Authorization การให้อนุญาตบุคคลเข้าถึงระบบหรือข้อมูลที่ไม่ได้รับอนุญาต

Model 2: PASTA

The Process for Attack Simulation and Threat Analysis (PASTA) คือ Framework ที่ใช้วิเคราะห์และประเมินความเสี่ยงของธุรกิจที่มีต่อ cyber-threat ซึ่ง Framework มีทั้งสิ้น 7 step ดังตารางที่แสดงต่อไปนี้

1. กำหนดจุดประสงค์
  • กำหนดวัตถุประสงค์ทางธุรกิจ
  • กำหนด Requirement และ Compliance ทาง Security
  • จำลองผลกระทบของ Cyber Threats ที่มีต่อธุรกิจ
2. กำหนดขอบเขคทางเทคนิค
  • ระบุ Boundaries ของแต่ละ Technology
  • ทำโครงสร้างการ dependencies ของ infrastructure, Application และ Software
3. แตกรายละเอียด Application
  • ระบุ entry point และ trust level ของ Application
  • ระบุหน้าที่และผู้รับผิดชอบแต่ละคน, ระบุ Asset, ระบุ Service, และระบุ Data Source
  • สร้าง data-flow diagrams (DFDs)
4. วิเคราห์ Threat
  • วิเคราะห์ Attack Scenario ด้วยวิธีทางสถิติ
  • สร้างแบบจำลอง Security Event
  • วิเคราะห์ Threat Intelligence
5. วิเคราะห์ Vulnerability และ Weakness
  • ทำสารบัญ Vulnerability ที่มี โดยรวบรวมจาก report และ issue ที่เคยเกิดขึ้น
  • สร้าง Threat Tree เพื่อเชื่อมโยง Threat กับ Vulnerability
  • ทำ Flaw Analysis โดยใช้ Use case
  • ทำ scoring (CVSS/CWSS) และ Enumeration (CWE/CVE)
6. สร้างแบบจำลอง Attack
  • วิเคราะห์ Attack Surface
  • สร้าง Attack Tree Development และทำ Attack Library
  • นำ Attack Tree มาวิเคราะห์จุดอ่อนที่อาจจะถูก Exploit
7. วิเคราะห์ความเสี่ยงและผลกระทบ
  • วิเคราะห์ผลกระทบทางธุรกิจทั้งเชิงปริมาณและเชิงคุณภาพ
  • หาวีธีการบรรเทาและป้องกัน Risk
  • สร้าง Risk Mitigation Strategy

PASTA มีจุดประสงค์เพื่อบูรณาการจุดประสงค์ของธุรกิจให้เข้ากับความต้องการทางเทคนิค โมเดลนี้ต่างจากโมเดลอื่นๆตรงที่มีการรวมความคิดเห็นของฝ่ายบริหารเข้ามาใน framework ด้วย

Model 3: LINDDUN

LINDDUN (linkability, identifiability, nonrepudiation, detectability, disclosure of information, unawareness, และ noncompliance) เป็นโมเดลที่ใช้กับ Data Security เพราะโฟกัสความปลอดภัยด้าน Privacy เป็นหลัก โดยโมเดลประกอบด้วย 6 step ตามรูปที่แสดงดังต่อไปนี้

3 step แรก โฟกัสที่การระบุปัญหา ในขณะที่ 3 step หลังโฟกัสที่การแก้ปัญหา ที่สำคัญที่สุดของโมเดลนี้คือการสร้าง ทำ data-flow diagram (DFD) ซึ่งจะต้องทำก่อน LINDDUN จึงจะวิเคราะห์ได้

Model 4 CVSS

The Common Vulnerability Scoring System (CVSS) คือการวิเคราะห์ลักษณะของ Vulnerability และตีความออกมาเป็นตัวเลขที่แสดงถึงระดับความรุนแรง ผู้ที่พัฒนา Model CVSS คือ National Institute of Standards and Technology (NIST) และปัจจุบันองค์ที่ใช้ CVSS มากที่สุดคือ Forum of Incident Response and Security Teams (FIRST) เครื่องมือคำนวณ CVSS แบบ online ก็มีเช่น https://nvd.nist.gov/vuln-metrics/cvss

CVSS ประกอบด้วย Metric 3 กลุ่ม (Base, Temporal, และ Environmental) แต่ละกลุ่มมีองค์ประกอบ ดังนี้

CVSS คำนวณค่าเฉลี่ยถ่วงน้ำหนักมาจากคะแนนที่ Analyst ให้ในแต่ละองค์ประกอบของ Metric โดยทั่วไปแล้ว CVSS จะถูกใช้ร่วมกับโมเดลอื่นๆ

Model 5: Attack Trees

Attack Tree เป็นโมเดลที่เก่าแก่ที่สุดและถูกใช้มากที่สุด ใช้ได้ทั้ง cyber-only systems, cyber-physical systems, และ purely physical systems นักวิเคราะห์มักจะใช้ Attack Tree ร่วมกับโมเดลอื่นๆ

การสร้าง Attack tree ทำได้ 2 ทาง คือ เริ่มจากการเขียน Attack Goal แล้วค่อยๆ แตกย่อยลงมาเป็น Goal ย่อยๆที่ attacker จะต้องทำเพื่อบรรลุเป้าหมาย แล้วแต่ละ Goal ก็แตกย่อยลงมาเป็น activity อีกทางหนึ่งคือเขียนกิจกรรมแล้วค่อยๆไล่ขึ้นไปเพื่อหา Goal ของ Attacker ตัวอย่าง Attack Tree แสดงดังรูปต่อไปนี้

การวาด Attack Tree นั้นสามารถวาดเพื่อหาจุดอ่อนของ system หรือหาเป้าหมายของการโจมตี และคาดเดาสิ่งที่ Attacker จะทำในขั้นตอนต่อไป นักวิเคราะห์มักจะใช้ Attack Tree ร่วมกับ STRIDE CVSS และ PASTA ในการทำ Threat Modeling

Model 6: Persona non Grata

Persona non Grata (PnG) (การสมมติบุคคลขึ้นมา) จะโฟกัสที่ Human Attacker ว่ามี skill อะไรมี motivation อะไร รวมถึงการสร้าง character ของผู้ใช้ที่อาจจะ misuse และกลายเป็น attacker โดยไม่ตั้งใจด้วย

การสร้าง PnG จะทำให้นักวิเคราะห์ได้มุมมองจาก attacker เช่น ถ้า attacker มี skill แบบนี้ แล้วจะโจมตีแบบไหน เป็นต้น ส่วนใหญ่แล้ว PnG จะถูกใช้กับบริษัทแบบ Agile เพราะมักจะใช้ Persona Technic ในทางธุรกิจอยู่แล้ว

Model 7: Security Cards

การทำ Security Card เหมาะสำหรับการวิเคราะห์การโจมตีที่ซับซ้อน ทำได้โดยการใช้การ์ด 42 ใบ ช่วยในการหา Threat activities และให้ analyst มา brain-storm กันโดยใช้การ์ดเหล่านี้

Security Cards ทั้ง 42 ใบ แบ่งออกเป็น 4 หมวด คือ ผลกระทบที่เกิดขึ้นกับผู้ถูกโจมตี แรงจูงใจของ Attacker Resource ที่ Attacker ใช้ และ วิธีการที่ Attacker ใช้ ดังที่แสดงในตารางด้านล่าง

ผลกระทบที่เกิดขึ้น
กับผู้ถูกโจมตี
แรงจูงใจ Resource วิธีการ
  • บรรยากาศในที่ทำงาน
  • สภาพจิตใจ
  • ผลกระทบทางการเงิน
  • ข้อมูลส่วนบุคคล
  • สภาพร่างกาย
  • ความสัมพันธ์กับคนรอบข้าง
  • สถานะทางสังคม
  • ผลกระทบอื่นๆ
  • เพื่อความสะดวกสบาย
  • ความสงสัยหรือความเบื่อหน่าย
  • ความต้องการ
  • เพื่อการทูต หรือเพื่อการสงคราม
  • การแก้แค้น
  • เงิน
  • การเมือง
  • การป้องกัน
  • ศาสนา
  • โปรโมทตนเอง
  • เพื่อทราบมุมมองจากที่อื่น
  • แรงจูงใจอื่นๆ
  • Expertise
  • วิทยาการขั้นสูง
  • สิทธิ์ยกเว้น/ ได้รับการยกเว้น
  • อยู่วงใน
  • มีความรู้จากภายใน
  • เงิน
  • อิทธิพล
  • มีเวลา
  • เครื่องมือ
  • Resource อื่นๆ
  • ปกปิดการโจมตี
  • โจมตีทางอ้อม
  • ปลุกปั่น
  • การโจมตีหลายระยะ
  • การโจมตีทางกายภาพ
  • การวางแผน
  • การโจมตีทางเทคนิค
  • วิธีการอื่นๆ

Model 8 : hTMM

Hybrid Threat Modeling Method (hTMM) คือการนำวิธี SQUARE (Security Quality Requirements Engineering Method), Security Cards, และ PnG มารวมกัน จุดเด่นของวิธี hTMM คือ ไม่เกิด false positive และตรวจจับ Threat ได้แน่นอน และยังประหยัดต้นทุนอีกด้วย

วิธีการของ hTMM มีขั้นตอนดังนี้

  1. กำหนดระบบที่จะทำ Threat Model
  2. ให้ developer มาทำ Security Cards
  3. ใช้ PnG เพื่อคัดกรอง Threat ที่ไม่น่าจะเกิดขึ้นได้
  4. สรุปผลโดยใช้เครื่องทาง Security
  5. นำผลที่ได้ไปทำ Risk Assessment

Model 9: Quantitative Threat Modeling Method (Quantitative TMM)

วิธีนี้คือการรวม attack trees, STRIDE, และ CVSS เข้าด้วยกัน เหมาะสำหรับการทำ Threat Modeling ของระบบแบบ Cyber-Physical System ที่แต่ละองค์ประกอบมีความเชื่อมโยงกันสูง

ขั้นตอนแรกของ Quantitative TMM คือการสร้าง Attack Tree ขึ้นมา 5 อัน ตาม Threat Categories ของ STRIDE ขั้นตอนนี้จะทำให้ความ dependencies ของแต่ละ Threat Categories หลังจากนั้นจึงใช้ CVSS เพื่อคำนวณ score ของแต่ละองค์ประกอบใน attack tree

Model 10 : Trike

Trike คือ Modeling ที่ให้มุมมองจากทีม Risk Management และ Defensive การทำ Trike นั้นเริ่มจากการกำหนดระบบ และให้ analyst แจกแจง actor, asset, action และข้อบังคับของระบบนั้น โดยทำออกมาเป็น Matrix ที่ column คือ asset และมี row เป็น actor ส่วนในแต่ละช่อง matrix จะถูกแบ่งออกเป็น 4 ส่วนเรียกว่า CRUD เพื่อระบุ action แต่ละประเภท คือ Creating, reading, updating, และ deleting และในแต่ action นั้น analyst จะต้องระบุค่าอย่างใดอย่างหนึ่งต่อไปนี้ allowed action, disallowed action, หรือ action with rules ถ้าหากมี rule จะต้องกำหนด rule tree ด้วย

ขั้นต่อมาคือการทำ DFD โดยแต่ละ element ใน DFD ก็คือแต่ละ cell ใน Matrix ที่สร้างไว้ และประเมิน DFD เพื่อระบุ Threat ที่อาจเกิดขึ้น (สามารถนำ Threat นี้ไปทำ attack tree ต่อได้
Trike ยังสามารถใช้เพื่อประเมินความเสี่ยงได้อีกด้วย โดยการนำ Matrix มาทำ score ให้คะแนนความเสี่ยง actor ที่มีต่อ asset เป็น 1-5

Model 11: VAST Modeling

Visual, Agile, และ Simple Threat (VAST) ประยุกต์มาจากโปรแกรม ThreatModeler ที่เป็นโปรแกรมทำ Threat Modeling แบบอัตโนมัติ โมเดลนี้มีลักษณะเด่นคือสามารถใช้องค์กรขนาดใหญ่ได้ เพราะในโมเดลมี Infrastructure และ Stakeholder หลายอย่างประกอบกัน
VAST จะต้องสร้างโมเดลขึ้นมา 2 โมเดล คือ application threat models และ operational threat models โดย application Threat Model จะใช้ Process Flow Diagram เพื่อให้ได้มุมมองของผู้ดูแลระบบ สำหรับ Operation Threat Model จะใช้ DFD เพื่อให้ได้มุมมองของ Attacker ขั้นตอนสุดท้ายคือนำทั้งสองโมเดลนี้ไป integrate กับ Development Operation Lifecycle

Model 12: OCTAVE

Operationally Critical Threat, Asset, และ Vulnerability Evaluation (OCTAVE) ใช้สำหรับวางแผนกลยุทธ์ทาง Cyber Security หรือใช้เพื่อประเมินแผนรับมือที่มีอยู่ โดยโมเดลนี้จะประเมิน Organizational Risk, Security Practice และ Technology ที่ใช้

OCTAVE ประกอบด้วย 3 phase คือ

  1. สร้าง asset-based threat profile (ประเมินองค์กรโดยรวม)
  2. ระบุ Infrastructure vulnerability (ประเมิน information infrastructure)
  3. สร้างกลยุทธ์หรือแผนทาง cyber security

สรุป

ในการเลือกว่าจะใช้ Threat Modeling ไหนกับงาน จะต้องพิจารณาจากเป้าหมาย (risk, security หรือ privacy) พิจารณาระยะเวลาของการทำ model และพิจารณาว่าจะมีใครหรือส่วนงานใดเข้ามาเกี่ยวข้องบ้าง ซึ่งคุณสมบัติของแต่ละ Model สรุปได้ดังตารางข้างล่างนี้

Threat Modeling Features
STRIDE
  • ช่วยค้นหา techniques ที่นำมาแก้ปัญหา
  • มีความน่าเชื่อถือ
  • ใช้ง่าย แต่ใช้เวลานาน
PASTA
  • ช่วยค้นหา techniques ที่นำมาแก้ปัญหา
  • สามารถใช้กับ Risk Management ได้โดยตรง
  • สร้างความร่วมมือกันระหว่าง stakeholder
  • ช่วยให้ Prioritize Threat
  • ใช้กำลังคนมาก และมีงานเอกสารเยอะ
LINDDUN
  • ช่วยค้นหา techniques ที่นำมาแก้ปัญหา
  • ช่วยให้ Prioritize Threat
  • ใช้เวลาและแรงงานสูง
CVSS
  • ช่วยให้ Prioritize Threat
  • มีผลลัพธ์ที่ Consistent แม้ทำหลายรอบ
  • สามารถทำ automate ได้
  • คะแนนที่คะนวณออกมาไม่มีรายละเอียด
Attack Tree
  • ช่วยค้นหา techniques ที่นำมาแก้ปัญหา
  • มีผลลัพธ์ที่ Consistent แม้ทำหลายรอบ
  • ถ้ามีแผนผังระบบอยู่แล้วจะทำง่ายมาก
Persona non Grata
  • ช่วยค้นหา techniques ที่นำมาแก้ปัญหา
  • สามารถใช้กับ Risk Management ได้โดยตรง
  • มีผลลัพธ์ที่ Consistent แม้ทำหลายรอบ
  • ระบุได้เพียงบางส่วนของ Threat เท่านั้น
Security Cards
  • สร้างความร่วมมือกันระหว่าง stakeholder
  • เหมาะสำหรับ Threat ที่มีลักษณะพิเศษ
  • อาจเกิด False Positive
hTMM
  • ช่วยให้ Prioritize Threat
  • สร้างความร่วมมือกันระหว่าง stakeholder
  • มีผลลัพธ์ที่ Consistent แม้ทำหลายรอบ
Quantitative TMM
  • ช่วยให้ Prioritize Threat
  • สามารถทำ automate ได้
  • มีผลลัพธ์ที่ Consistent แม้ทำหลายรอบ
Trike
  • สามารถใช้กับ Risk Management ได้โดยตรง
  • ช่วยให้ Prioritize Threat
  • สร้างความร่วมมือกันระหว่าง stakeholder
  • สามารถทำ automate ได้
  • งานที่ได้ออกมาคลุมเครือ อ้างอิงไม่ได้
VAST
  • ช่วยค้นหา techniques ที่นำมาแก้ปัญหา
  • สามารถใช้กับ Risk Management ได้โดยตรง
  • ช่วยให้ Prioritize Threat
  • สร้างความร่วมมือกันระหว่าง stakeholder
  • สามารถทำ automate ได้
  • มีผลลัพธ์ที่ Consistent แม้ทำหลายรอบ
  • สามารถขยาย scale ใช้กับองค์กรขนาดใหญ่ได้
  • ทำเอกสารส่งงานหรือทำคู่มือยาก
OCTAVE
  • ช่วยค้นหา techniques ที่นำมาแก้ปัญหา
  • สามารถใช้กับ Risk Management ได้โดยตรง
  • ช่วยให้ Prioritize Threat
  • สร้างความร่วมมือกันระหว่าง stakeholder
  • มีผลลัพธ์ที่ Consistent แม้ทำหลายรอบ
  • สามารถขยาย scale ใช้กับองค์กรขนาดใหญ่ได้
  • ใช้เวลามากและ ทำเอกสารส่งงานหรือทำคู่มือได้ยาก

ข้อมูลจาก Threat modeling A summary of available methods of Carnegie Mellon University



เนื้อหาที่เกี่ยวข้อง

1. Ransomware โดนได้อย่างไร รุนแรงแค่ไหน แก้ไขอย่างไร

2. 10 วิธีตั้งค่าความปลอดภัย Windows Server

3. เลือก Firewall องค์กร Fortinet หรือ MikroTik แบบไหนดี?

4. สาย Developer ต้องรู้ OWASP API Security Top 10 มีอะไรบ้าง พร้อมตัวอย่าง

5. พรีออเดอร์เว็บนอก อย่างไรให้ปลอดภัย ไม่โดนแฮกโดนโกง