12 วิธีการสร้างและวิเคราะห์ Threat Modeling
10 สิงหาคม 2020
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. กำหนดจุดประสงค์ |
|
2. กำหนดขอบเขคทางเทคนิค |
|
3. แตกรายละเอียด Application |
|
4. วิเคราห์ Threat |
|
5. วิเคราะห์ Vulnerability และ Weakness |
|
6. สร้างแบบจำลอง Attack |
|
7. วิเคราะห์ความเสี่ยงและผลกระทบ |
|
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 | วิธีการ |
|
|
|
|
Model 8 : hTMM
Hybrid Threat Modeling Method (hTMM) คือการนำวิธี SQUARE (Security Quality Requirements Engineering Method), Security Cards, และ PnG มารวมกัน จุดเด่นของวิธี hTMM คือ ไม่เกิด false positive และตรวจจับ Threat ได้แน่นอน และยังประหยัดต้นทุนอีกด้วย
วิธีการของ hTMM มีขั้นตอนดังนี้
- กำหนดระบบที่จะทำ Threat Model
- ให้ developer มาทำ Security Cards
- ใช้ PnG เพื่อคัดกรอง Threat ที่ไม่น่าจะเกิดขึ้นได้
- สรุปผลโดยใช้เครื่องทาง Security
- นำผลที่ได้ไปทำ 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 คือ
- สร้าง asset-based threat profile (ประเมินองค์กรโดยรวม)
- ระบุ Infrastructure vulnerability (ประเมิน information infrastructure)
- สร้างกลยุทธ์หรือแผนทาง cyber security
สรุป
ในการเลือกว่าจะใช้ Threat Modeling ไหนกับงาน จะต้องพิจารณาจากเป้าหมาย (risk, security หรือ privacy) พิจารณาระยะเวลาของการทำ model และพิจารณาว่าจะมีใครหรือส่วนงานใดเข้ามาเกี่ยวข้องบ้าง ซึ่งคุณสมบัติของแต่ละ Model สรุปได้ดังตารางข้างล่างนี้
Threat Modeling | Features |
STRIDE |
|
PASTA |
|
LINDDUN |
|
CVSS |
|
Attack Tree |
|
Persona non Grata |
|
Security Cards |
|
hTMM |
|
Quantitative TMM |
|
Trike |
|
VAST |
|
OCTAVE |
|
ข้อมูลจาก Threat modeling A summary of available methods of Carnegie Mellon University
บทความที่เกี่ยวข้อง