พัฒนา Threat Hunting Use Case กับ CrowdStrike Events App

นอกเหนือจากความพร้อมของข้อมูลที่จะถูกใช้เพื่อระบุหาการมีอยู่ของภัยคุกคาม ปัจจัยที่มีความสำคัญอีกปัจจัยหนึ่งซึ่งจะการันตีความสำเร็จของการระบุหาภัยคุกคามในรูปแบบของ Threat hunting นั้น คือการคิดค้นและพัฒนาสมมติฐานหรือไอเดียที่จะใช้ในการระบุการมีอยู่ของภัยคุกคามดังกล่าวในเชิงรุก (proactive) รวมไปถึงการประเมินและปรับปรุงให้สมมติฐานหรือ Hunting use case นั้นสามารถใช้งานได้จริงและเกิดประสิทธิภาพ

ในบทความนี้ทีมตอบสนองภัยคุกคาม (Intelligent Response) จาก บริษัท ไอ-ซีเคียว จำกัด จะมาสาธิตการพัฒนา Hunting use case บนเทคโนโลยีซึ่งเรามีความถนัด 2 เทคโนโลยี ได้แก่ CrowdStrike Falcon ซึ่งจะทำหน้าที่เป็นส่วน Endpoint detection and response (EDR) ในการเก็บข้อมูลจากระบบต่างๆ มาระบุหาการมีอยู่ของภัยคุกคามโดยใช้ Splunk Search Processing Language (SPL) กับฟีเจอร์ CrowdStrike Events App ซึ่งใช้ Splunk เป็นเทคโนโลยีหลังบ้านหลักครับ

สำหรับสถานการณ์จำลองที่ทีมตอบสนองภัยคุกคามจะสาธิตการทำ Threat hunting นั้น เราจะทำการพัฒนา SPL โดยนำแนวคิดมาจาก Hunting use case ซึ่งถูกเผยแพร่โดย Red Canary ในงาน BlackHat USA 2019 ภายใต้หัวข้อ Fantastic Red Team Attacks and How to Find Them
Fantastic Red Team Attacks and How to Find Them - A Summary
ก่อนที่เราจะไปดูกันที่ใจความสำคัญของบล็อกนี้ เราจำเป็นที่จะต้องเข้าใจเนื้อหาและเป้าหมายของหัวข้อการบรรยายจากทาง Red Canary ก่อน สำหรับการบรรยายในหัวข้อ Fantastic Red Team Attacks and How to Find Them นั้น Casey Smith ซึ่งปัจจุบันดำรงตำแหน่ง Director of applied research ของ Red Canary ได้มีการเปิดเผยเทคนิคการโจมตีใหม่ซึ่งใช้ไบนารี dbgsrv.

รีวิวแพลตฟอร์มช่วยแฮก/ทดสอบเจาะระบบอัตโนมัติ Infection Monkey

จากกระแสของแนวคิดการทดสอบและประเมินความปลอดภัยของระบบด้วยการจำลองการโจมตีตามพฤติกรรมของภัยคุกคาม หรือในชื่ออย่างเป็นทางการคือการทดสอบเจาะระบบแบบ Intelligence-lead (iPentest) ในวันนี้ทีม Intelligent Response จะมานำเสนอและทดสอบใช้งานอีกหนึ่งโครงการโอเพนซอร์สที่น่าสนใจซึ่งช่วยในการประเมินความปลอดภัยของระบบในเบื้องต้นได้ โดยโครงการนี้เป็นผลงานจากบริษัท Guardicore ซึ่งมีชื่อว่า Infection Monkey ครับ

การใช้เครื่องมือหรือวิธีการใดๆ ที่นำเสนอในบทความมีจุดประสงค์เพื่อการทดสอบและประเมินความปลอดภัยระบบ ทีม Intelligent Response และบริษัท ไอ-ซีเคียว จำกัด ขอปฏิเสธความรับผิดชอบหากมีการเนื้อหาของบทความไปใช้เพื่อสร้างความเดือดร้อนหรือกระทำผิดตามบทบัญญัติซึ่งระบุไว้ในพระราชบัญญัติว่าด้วยการกระทำความผิดเกี่ยวกับคอมพิวเตอร์ พ.ศ. 2550
ทำความรู้จักแนวคิดของ Automated Pentest ของ Infection Monkey
ก่อนที่เราจะไปดูฟีเจอร์ที่หวือหวาที่สุดของ Infection Monkey ซึ่งก็คือการทำงานโดยอัตโนมัติ ทีม Intelligent Response ต้องขอเล่าแนวคิดและเกร็ดเล็กน้อยเกี่ยวกับแนวคิดของ "ความอัตโนมัติ" ที่เกี่ยวข้องกับการหาและโจมตีช่องโหว่ความปลอดภัยกันซักหน่อยครับ

ไอเดียการพัฒนาแพลตฟอร์มแบบ Infection Monkey หรือการนำเอากระบวนการแบบอัตโนมัติเข้าไปครอบขั้นตอนของการประเมินความปลอดภัยระบบนั้นแท้จริงไม่ใช่เรื่องใหม่และมีมานานแล้วในแพลตฟอร์มประเมินความปลอดภัยระบบต่างๆ อาทิ

ในรุ่นโอเพนซอร์สของ Metasploit หรือที่รู้จักกันในชื่อ Metasploit Framework นั้น ผู้ทดสอบเจาะระบบสามารถเรียกใช้โมดูลระดับตำนานชื่อ db_autopwn ซึ่งจะดำเนินการเรียกใช้โค้ดสำหรับโจมตีช่องโหว่โดยอัตโนมัติ อ้างอิงจากผลลัพธ์การสแกนด้วย NMAP หรือ Nessus หรือโมดูล Browser Autopwn ซึ่งถูกพัฒนาเพื่อเลียนแบบการโจมตีในรูปแบบ Drive-by download ได้
เฟรมเวิร์คระดับตำนานสมัยยุค Backtrack "Armitage" ก็มีฟีเจอร์ Automatic Exploitation ซึ่งใช้แนวคิดเดียวกับ db_autopwn ในการโจมตีโดยอัตโนมัติด้วยเช่นกัน
(ไม่ได้ขายของ) ในยุคต่อมาฟีเจอร์ Auto-Exploitation ได้กลายมาเป็นฟีเจอร์หากินสำคัญของ Metasploit Pro ซึ่งผมเชื่อว่าเราจะได้ยินฟีเจอร์นี้ทุกครั้งจากฝ่ายขายของทาง Rapid 7

ข้อแตกต่างที่เห็นได้อย่างชัดเจนของ Infection Monkey กับกลุ่มซอฟต์แวร์แบบโอเพนซอร์สด้านบนนั้นคือความสามารถในการทำ Automated Post Exploitation เบื้องต้น หรือกระบวนการหลังจากที่ผู้โจมตีสามารถเข้ายึดระบบได้สำเร็จ อาทิ Internal discovery และ Pivoting/Lateral movement ซึ่งในกรณีของกลุ่มซอฟต์แวร์อื่นๆ นั้น อาจจำเป็นต้องมีการใช้ฟีเจอร์เสริมหรือการพัฒนาส่วนเสริมเพื่อให้เกิดการทำงานในลักษณะนี้อีกทีหนึ่ง

ทั้งนี้ด้วยความที่เป็นโครงการโอเพนซอร์ส ความสามารถของ Infection Monkey จึงถูกจำกัดด้วยเทคนิคในการ Gaining access และ Post exploitation ซึ่งเราจะพูดถึงเทคนิคและช่องโหว่ซึ่ง Infection Monkey มีการใช้งานกันต่อในส่วนต่อไปครับ
การทำงานเบื้องต้นของ Infection Monkey
โครงการ Infecion Monkey จะประกอบไปด้วยสองโมดูลหลักๆ คือ Monkey และ Monkey Island

โมดูล Monkey คือไฟล์ประเภทไบนารีซึ่งถูกพัฒนาเพื่อทำหน้าที่เป็นมัลแวร์และสามารถแพร่กระจายได้ ในการใช้งานนั้นผู้ทดสอบจะต้องการเอ็กซีคิวต์เพื่อให้โมดูล Monkey เริ่มการทำงานที่ระบบเป้าหมาย โดยโมดูล Monkey จะเริ่มทำกระบวนการ Internal discovery และ Pivoting/Lateral movement โดยอัตโนมัติตามการตั้งค่า ในรุ่นล่าสุดของ Infection Monkey (1.6.3) ตัวโมดูลจะรองรับการทำงานเฉพาะในระบบปฏิบัติการ Windows (32-bit และ 64-bit) และ Linux (32-bit และ 64-bit)

โมดูล Monkey Island จะเป็นเว็บแอปพลิเคชันซึ่งทำหน้าที่เป็นเซิร์ฟเวอร์ Command & Control ซึ่งจะคอยแสดงสถานะและควบคุมการทำงานของ Monkey โดยผู้ทดสอบสามารถตรวจสอบและหยุดการทำงานของ Monkey ได้ผ่านหน้าแดชบอร์ด เมื่อดำเนินการจนเสร็จสิ้น เราจะทดสอบตรวจสอบ Security Report ได้จากโมดูลนี้ด้วย

สำหรับในรุ่นล่าสุด ผู้ทดสอบสามารถติดตั้ง Monkey Island ได้ทั้งในแพลตฟอร์มของ VMware, AWS, รูปแบบ container, GCP, Azure, Windows Server และแพ็คเกตสำหรับลินุกซ์ซึ่งใช้ Debain-based package managerpenetration testing

สำหรับในการใช้งานนั้น ผู้ทดสอบสามารถเริ่มใช้งานได้ตามขั้นตอนที่ Infection Monkey กำหนดไว้ ได้แก่

ติดตั้งเซิร์ฟเวอร์ Monkey Island
ตั้งค่ารูปแบบการทำงานของโมดูล Monkey
เลือกให้ Monkey เริ่มทำงานที่เซิร์ฟเวอร์ Monkey Island หรือระบบที่ต้องการ
นั่งดูผลลัพธ์การทำงานผ่าน Infection Map
เมื่อการทำงานเสร็จสิ้น ตรวจสอบปัญหาซึ่งพบได้จากหน้า Security Report

เราสามารถแอบดูการทำงานของ Monkey จากเป้าหมายซึ่งเรานำโมดูลไปรัน โดยจะพบกับบันทึกการทำงานของโมดูลในการค้นหาระบบอื่นๆ, ทำการเก็บข้อมูลและพยายามโจมตีระบบด้วยช่องโหว่ที่มากับแพลตฟอร์มครับ

การตั้งค่าการทำงานของ Monkey และการใช้งานช่องโหว่
เราสามารถกำหนดการทำงานหรือฟีเจอร์ของโมดูล Monkey ได้ตามรายการดังต่อไปนี้

Exploit user/password list หรือรายการของชื่อบัญชีและรหัสผ่านซึ่งจะถูกใช้ในการขั้นตอนของการ Gaining access
Distance from Island คือจำนวน Hop ของระบบซึ่ง Monkey จะสามารถกระโดดและแพร่กระจายไปได้
Network segmentation/exclusion คือรายการของหมายเลขไอพีแอดเดรสหรือ subnet ซึ่งจะถูกยกเว้นจากการพยายามเข้าถึง
Custom post breach command คือรายการของคำสั่งทั้งในระบบ Linux/Windows ซึ่งจะถูกเอ็กซีคิวต์หลังจากที่ Monky สามารถเข้าถึงระบบได้สำเร็จ
TCP scanner คือการตั้งค่าเกี่ยวกับการทำงานในขั้นตอน Discovery ทั้งรูปแบบการสแกนและรายการพอร์ต พอร์ตที่จะตรวจสอบว่าเป็นเซิร์ฟเวอร์ HTTP หรือไม่
Exploits คือรายการของโค้ด/วิธีในการโจมตีช่องโหว่และการตั้งค่าต่างๆ ซึ่งจะใช้ในกระบวนการ Gaining access ได้แก่ Exploiter สำหรับ SMB, WMI, MSSQL, RDP, MS08-067, SSH, ShellShock, SambaCry, ช่องโหว่ ElasticGroovy, ช่องโหว่ Struts2, ช่องโหว่ Oracle Web Logic และช่องโหว่ Hadoop/Yarn

ประเมินการทดสอบด้วย Security Report
เมื่อกระบวนการ Infection เสร็จสิ้น ผู้ทดสอบสามารถตรวจสอบการทำงานรวมไปถึงการค้นพบช่องโหว่ได้จากฟีเจอร์ Securty Report

โดยในตัวอย่างของ Security Report ด้านบนนั้น Infection Monkey จะมีการระบุว่าสามารถโจมตีด้วยช่องโหว่ ShellShock ด้านในระบบใดบ้าง พร้อมข้อมูลสำหรับยืนยันตัวตนซึ่งสามารถขโมยมาได้จากระบบต่างๆ ด้วย
สรุป
เรามองว่า Infection Monkey เป็นแพลตฟอร์มที่ใช้งานได้ง่ายและมีประสิทธิภาพมากพอในการทดสอบและประเมินความปลอดภัยในบางสภาพแวดล้อม ด้วยรายการของช่องโหว่ที่เป็นที่รู้จักและมีผลกระทบค่อนข้างสูง และฟีเจอร์ในการแพร่กระจายโดยอัตโนมัติ ทำให้ Infection Monkey เป็นอีกหนึ่งแพลตฟอร์มที่น่าสนใจในการทดสอบและพัฒนาต่อครับ

ขอให้สนุกกับการแฮกนะครับ 🙂

รีวิวเฟรมเวิร์คจำลองการโจมตีตามพฤติกรรมของภัยคุกคามเพื่อการทดสอบในรูปแบบ iPentest

บทความนี้จัดทำโดย เนติวัฒน์ วงศ์ยะรา นักศึกษาฝึกงาน และเรียบเรียงโดยทีมตอบสนองการโจมตีและภัยคุกคาม (Intelligent Response) บริษัท ไอ-ซีเคียว จำกัด

ในบทความนี้ ทีม Intelligent Response จะทำการรีวิวโอเพนซอร์สเฟรมเวิร์คซึ่งช่วยให้ผู้ที่ทำงานในสายงานด้านความมั่นคงปลอดภัยไซเบอร์สามารถทำการจำลองพฤติกรรมของภัยคุกคามเพื่อใช้ในการทดสอบและประเมินความปลอดภัยระบบตามแนวทาง iPentest ของธนาคารแห่งประเทศไทยได้

เนื้อหาภายในบทความจะมีตามหัวข้อดังต่อไปนี้ครับ

ทำความรู้จักแนวปฏิบัติการทดสอบเจาะระบบแบบ Intelligence-lead (iPentest)
TTP คืออะไร? นำมาใช้ยังไงได้บ้าง?
จากพฤติกรรมของผู้บุกรุก สู่ Machine-readable Data
แนะนำโอเพนซอร์สเฟรมเวิร์คสำหรับการจำลองพฤติกรรมของภัยคุกคาม
ผลการรีวิวเฟรมเวิร์คสำหรับการจำลองพฤติกรรมของภัยคุกคาม
สรุป

ทำความรู้จักแนวปฏิบัติการทดสอบเจาะระบบแบบ Intelligence-lead (iPentest)
เมื่อวันที่ 4 กันยายนที่ผ่านมา ธนาคารแห่งประเทศไทยออกประกาศภายใต้เรื่องแนวปฏิบัติการทดสอบเจาะระบบแบบ Intelligence-lead (iPentest) ซึ่งรูปแบบของการทดสอบเจาะระบบใหม่โดยเน้นไปที่การทดสอบภายใต้สถานการณ์เสมือนจริงในลักษณะ Red Teaming

ใจความสำคัญของ iPentest นั้นคือการทดสอบเจาะระบบที่มีการใช้ข้อมูล Threat intelligence ในกำหนดสถานการณ์จำลองเพื่อใช้ในการทดสอบเจาะระบบ สถานการณ์จำลองดังกล่าวจะต้องสอดคล้องกับโอกาสและภาพรวมของภัยคุกคามที่สถาบันการเงินจะเผชิญ แนวปฏิบัติยังเปิดช่องทางให้สถานการณ์จำลองถูกดำเนินการได้ในลักษณะของการ Capture the Flag (CTF) ด้วย

การนำข้อมูลภัยคุกคาม (Threat intelligence) มาใช้เพื่อทำการทดสอบเจาะระบบนั้นมีความสำคัญอย่างยิ่งต่อการประเมินและจัดการความเสี่ยง เพราะถึงแม้ในสถาบันการเงินโดยส่วนใหญ่จะมีการทดสอบเจาะระบบในรูปแบบของ Penetration testing โดยทั่วไปอยู่ก่อนแล้ว การเกิดขึ้นของ iPentest ได้เข้ามาเติมเต็มส่วนสำคัญที่การทดสอบเจาะระบบในรูปแบบทั่วไปนั้นไม่สามารถสร้างคุณค่าได้ เพราะในขณะที่ Penetration testing โฟกัสไปที่การค้นหาและจัดการช่องโหว่เพื่อลดความเสี่ยง รูปแบบของ iPentest มองภาพกว้างกว่าช่องโหว่ ซึ่งอาจรวมไปถึงข้อผิดพลาดหรือจุดอ่อนเพียงเล็กน้อยที่หากถูกโจมตีอยากถูกต้อง มันอาจนำไปสู่ความเสียหายที่ใหญ่หลวงได้

เทรนด์ด้านการทดสอบและประเมินความมั่นคงปลอดภัยในลักษณะของ iPentest นั้นเป็นหนึ่งในเทรนด์ด้านความปลอดภัยที่ได้รับความนิยมสูงขึ้นในแวดวงความปลอดภัยไซเบอร์ทั่วโลก กระบวนการดังกล่าวถูกเรียกด้วยชื่อที่แตกต่างกันในหลายรูปแบบ อาทิ Red teaming, Adversary simulation, Adversary emulation, Threat emulation และอื่นๆ ในขณะเดียวกันสายงาน อาทิ Red team, Threat hunter หรือ Purple team ก็เกิดขึ้นและได้รับความนิยมสูงไม่แพ้กัน
TTP คืออะไร? นำมาใช้ยังไงได้บ้าง?
เมื่อพูดถึงการใช้งาน Threat intelligence เพื่อการจำลองพฤติกรรมของผู้โจมตีจริง เราจำเป็นต้องเข้าใจประเภทของ Threat intelligence ที่สามารถนำไปใช้งานได้ก่อน หนึ่งในวิธีการจำแนกประเภทของ Threat intelligence ที่ง่ายและได้รับความนิยมรูปแบบหนึ่งคือ The Pyramid of Pain ซึ่งเป็นผลงานของ David J. Bianco

The Pyramid of Pain จำแนกประเภทของ Threat intelligece ด้วยขั้นของความพยายามที่ผู้โจมตีต้องใช้เพื่อแก้ไข/เปลี่ยนแปลงตัวบ่งชี้ภัยคุกคาม (indicator) ในแต่รูปแบบเพื่อให้สามารถหลบหลีกการตรวจจับและการป้องกันได้

เราสามารถตีความ The Pyramid of Pain ในอีกความหมายหนึ่งได้ว่า หากสถาบันการเงินสามารถตรวจจับและป้องกันความพยายามของผู้บุกรุกด้วยตัวบ่งชี้ภัยคุกคามที่เป็นหมายเลขไอพีแอดเดรสที่มัลแวร์ทำการติดต่อด้วยและค่าแฮชของไฟล์มัลแวร์ดังกล่าว มันง่ายและง่ายมากที่ผู้โจมตีจะทำการเปลี่ยนตัวบ่งชี้ดังกล่าวเป็นค่าใหม่เพื่อทำการตรวจจับและป้องกันหมดฤทธิ์

หากเราไล่ไปถึงยอดของพีระมิด เราจะพบว่าสิ่งที่ผู้โจมตีเปลี่ยนแปลงได้ยากที่สุดนั้นคือสิ่งที่เรียกว่า Tactics,Techniques and Procedures หรือ TTP ซึ่งมีความหมายดั้งเดิมที่เกี่ยวข้องกับการรักษาความมั่นคงจากภัยก่อการร้ายก่อนจะถูกนำมาใช้ในการรักษาความปลอดภัยไซเบอร์ TTP อธิบายถึงรูปแบบหรือลักษณะพฤติกรรมที่ผู้บุกรุกจะทำเมื่อจะสร้างความเสียหายหรือโจมตี พฤติกรรมอาจมีความเหมือนกันในหลายกลุ่มผู้บุกรุก แต่หากเราสามารถรวบรวมรูปแบบหรือลักษณะของพฤติกรรมดังกล่าว ไปจนถึงตัวบ่งชี้ภัยคุกคามในระดับที่ต่ำลงมาได้ การระบุกลุ่มผู้บุกรุกจากพฤติกรรมก็สามารถทำได้อย่างมีประสิทธิภาพเช่นเดียวกัน
จากพฤติกรรมของผู้บุกรุก สู่ Machine-readable Data
ในช่วงหลายปีที่ผ่านมา ความพยายามในการอธิบายรูปแบบหรือลักษณะพฤติกรรมของผู้บุกรุกให้อยู่ในรูปแบบของข้อมูลที่สามารถถูกประมวลผลและใช้งานได้โดยคอมพิวเตอร์เกิดขึ้นในหลายรูปแบบ เราจะมาดูกันครับว่าในทุกวันนี้เรามีวิธีในการอธิบายพฤติกรรมของผู้บุกรุกเพื่อนำข้อมูลไปใช้กันอย่างไรบ้าง
เฟรมเวิร์คตระกูล STIX/MAEC/CYBOX
STIX/MAEC/CyBox คือความพยายามจาก OASIS Cyber Threat Intelligence (CTI) TC ในการพัฒนากรอบและมาตรฐานเพื่ออธิบายพฤติกรรมของผู้โจมตี ตัวบ่งชี้ภัยคุกคามรวมไปถึงสิ่งที่ตรวจพบอื่นๆ (Observable) โดย STIX เน้นไปที่การอธิบายข้อมูลภัยคุกคามทั้งช่องโหว่, ผู้กระทำ, เป้าหมาย, จุดมุ่งหมาย, ตัวบ่งชี้ภัยคุกคามและอื่นๆ ด้วยความสัมพันธ์ระหว่างกัน

MAEC เน้นไปที่การอธิบายข้อมูลจำเพาะที่เกี่ยวกับมัลแวร์ทั้งคุณลักษณะของไฟล์, ความเกี่ยวข้องกับกลุ่มผู้โจมตีรวมไปถึงสายพันธุ์ของมัลแวร์

ท้ายที่สุด CyBox เน้นไปที่การอธิบายและให้ความหมายของทุกข้อมูลที่ตรวจพบ (Observable) โดยไม่จำกัดว่าสิ่งนั้นจะเป็นตัวบ่งชีภัยคุกคามหรือไม่ ไม่ว่าจะเป็นค่ารีจิสทรี, พฤติกรรมการลบไฟล์หรือข้อมูลในโปรโจตอล HTTP GET

ในปัจจุบันองค์กรหลายแห่งมีการเผยแพร่ตัวบ่งชี้ภัยคุกคามในรูปแบบของไฟล์ STIX รวมไปถึงเปิดให้องค์กรสามารถเข้าถึงและใช้งานข้อมูลในฟอร์แมตของ STIX ได้ผ่านเซิร์ฟเวอร์ TAXII ตัวอย่างเช่น ประกาศล่าสุดจาก US-CERT ว่าด้วยเรื่องของมัลแวร์ ELECTRICFISH จากกลุ่มแฮกเกอร์ Lazarus
เฟรมเวิร์คตระกูล MITRE ATT&CK
MITRE ATT&CK สามารถถูกเรียกได้ว่าทั้งเฟรมเวิร์คและแหล่งข้อมูล TTP ที่ดีที่สุดแหล่งหนึ่งของโลก มันได้ทำการรวบรวมและอธิบาย TTP ไว้ในรูปแบบเดียวกับที่ Cyber Kill Chain ของ Lockheed Martin เคยทำแต่ด้วยรายละเอียดที่เยอะกว่า รวมไปถึงการเชื่อมโยงระหว่าง TTP, กลุ่มผู้โจมตี, เครื่องมือที่ใช้และคำแนะนำในการตรวจจับและบรรเทาผลกระทบที่เกิดขึ้นจากเทคนิคที่ผู้บุกรุกกระทำ

ความนิยมของ MITRE ATT&CK ทำให้มันถูกนำไปปรับใช้กับผลิตภัณฑ์ด้านความปลอดภัยหลายรายการ รวมไปถึงการนำไปใช้ในการอธิบายพฤติกรรมของผู้บุกรุกใหม่ๆ ยกตัวอย่างเช่น ผลิตภัณฑ์ในกลุ่ม Endpoint Detection & Response "CrowdStrike" ซึ่งนำข้อมูลจาก MITRE ATT&CK มาใช้เพื่อช่วยในการตรวจจับ

ทีม Intelligent Response ยังได้เคยนำแนวคิดของ MITRE ATT&CK มาใช้ในการอธิบายความเชื่อมโยงระหว่างพฤติกรรมของผู้โจมตีและกลุ่มผู้โจมตีในงาน MissConf(SP)#5 ภายใต้หัวข้อ APT-Based Security Assessment and Detection (ดูสไลด์)
แนะนำโอเพนซอร์สเฟรมเวิร์คสำหรับการจำลองพฤติกรรมของภัยคุกคาม
ด้วยข้อมูลที่ได้มาจากฐานข้อมูล TTP ในรูปแบบต่างๆ ทีม Intelligent Response จึงได้มีการรวบรวมและทดสอบโอเพนซอร์สเฟรมเวิร์คที่สามารถนำข้อมูลดังกล่าวมาจำลองเป็นพฤติกรรมจริงๆ ในสภาพแวดล้อมที่ต้องการได้ ความสามารถในการจำลองพฤติกรรมของภัยคุกคามนอกจากจะช่วยในการประเมินความเสี่ยงด้านความปลอดภัยแล้ว มันยังมีส่วนสำคัญในการพัฒนาศักยภาพในการรับมือและตอบสนองภัยคุกคาม และการใช้เพื่อทดสอบความสามารถของผลิตภัณฑ์ด้านความปลอดภัยด้วย

จากรายการของเฟรมเวิร์คที่ได้มีการรวบรวมไว้ ทีม Intelligent Response ได้มีการเลือกเฟรมเวิร์คซึ่งจะนำมาทดสอบตามรายการดังต่อไปนี้

Red Team Automation (RTA) จาก Endgame โดยเป็นเฟรมเวิร์คซึ่งนำพฤติกรรมของผู้โจมตีตามที่ระบุไว้ใน MITRE ATT&CK มารวบรวมไว้ให้อยู่ในรูปแบบของสคริปต์ ซึ่งสามารถตั้งค่าและเรียกใช้เพื่อจำลองพฤติกรรมของผู้โจมตีจริงๆ ขึ้นมาได้
APT Simulator จาก Nextron Systems เป็นเฟรมเวิร์คในการจำลองพฤติกรรมของภัยคุกคามในกลุ่ม APT ให้อยู่ในรูปแบบของสคริปต์ Batch สำหรับระบบปฏิบัติการ Windows พฤติกรรมซึ่งมีการจำลองนั้นเป็นพฤติกรรมที่ไม่ได้อิงจาก MITRE ATT&CK แต่มีบางส่วนคล้ายคลึงกัน
Atomic Red Team จาก Red Canary เป็นเฟรมเวิร์คซึ่งทำการรวบรวม TTP ของผู้บุกรุกอ้างอิงจาก MITRE ATT&CK ไว้ในรูปแบบของ atomic test case ซึ่งทำให้ผู้ทดสอบสามารถนำแต่ละเทคนิคมาทำการปรับแต่งและควบคุมพฤติกรรมที่จะทำการจำลองได้
CALDERA จาก MITRE เป็นโครงการจากผู้ดูแล MITRE ATT&CK ซึ่งถูกพัฒนาขึ้นเพื่อจำลองพฤติกรรมของผู้โจมตีแบบครบวงจร พร้อมทั้งมีรูปแบบของมัลแวร์เสมือนภายในตัวเฟรมเวิร์คเอง

โดยในการรีวิวนั้น ทีม Intelligent Response มีการตั้งคุณสมบัติที่ต้องการไว้ตามรายการดังต่อไปนี้

เฟรมเวิร์คที่เหมาะสมจะต้องมีความครบถ้วนตามฐานข้อมูลภัยคุกคาม MITRE ATT&CK เพื่อให้เกิดความครอบคลุมในการทดสอบภายใต้จุดประสงค์ที่แตกต่างกันให้มากที่สุด
เฟรมเวิร์คจะต้องมีความยืดหยุ่นมากพอให้ทีม Intelligent Response สามารถแก้ไขการตั้งค่าได้ตามต้องการ เช่น การแก้ไข Payload ที่จะถูกเอ็กซีคิวต์ในแต่ละเทคนิคการโจมตี รวมไปถึงเปลี่ยนแปลงรูปแบบและลักษณะของการจำลอง
เฟรมเวิร์คจะต้องสามารถถูกปรับแต่งให้สามารถทำงานโดยอัตโนมัติได้อย่างมีประสิทธิภาพและง่ายดาย ยกตัวอย่างเช่น ผู้ทดสอบสามารถบันทึกรายการของพฤติกรรมที่ต้องการไว้ในรูปแบบของ Playbook และสั่งให้เฟรมเวิร์คจำลองพฤติกรรมตามที่ระบุในช่วงหรือระยะเวลาที่กำหนดได้
เฟรมเวิร์คจะต้องรองรับระบบปฏิบัติการที่หลากหลาย

ผลการรีวิวเฟรมเวิร์คสำหรับการจำลองพฤติกรรมของภัยคุกคาม
Red team automation (RTA)
Red Team Automation หรือ RTA มีการรวบรวมเทคนิคจาก MITRE ATT&CK ไว้ทั้งหมดประมาณ 42 รายการ โดยเน้นไปที่การกลุ่ม Defense evasion, Execution และ Persistence การใช้งานสามารถทำได้ทั้งในรูปแบบของการเรียกใช้โมดูลแยกสำหรับแต่ละเทคนิค, รันทุกเทคนิคโดยอัตโนมัติผ่านทางสคริปต์ run_all.

IMPERVA ออกคำแถลงการณ์เกี่ยวกับข้อมูลรั่วไหล

IMPERVA Breach Exposes WAF Customers' Data, Including SSL Certs, API Keys

IMPERVA เป็นผู้นำด้าน Web Application Firewall แจ้งเตือนบริการ Cloud Web Application Firewall (Cloud WAF) หรือเดิมชื่อ Incapsula เป็นบริการป้องกัน DDoS และ Cloud Web Application Firewall แจ้งว่าข้อมูลของลูกค้ารั่วไหล

Chris Hylen (CEO) ผู้บริการของบริษัท IMPERVA ออกมากล่าวถึงเหตุการณ์ที่เกิดขึ้นในวันที่ 20 สิงหาคม 2019 หลังจากได้รับรายงานจาก Third Party ว่าบริการ Cloud Web Application Firewall (Incapsula) มีข้อมูลของลูกค้ารั่วไหล โดยส่งผลกระทบต่อลูกค้าที่ใช้บริการตั้งแต่อดีตจนถึงวันที่ 15 กันยายน 2017 ซึ่งผู้ใช้บริการหลังวันที่ 15 กันยายน 2017 จะไม่ได้รับผลกระทบ
โดยข้อมูลส่วนที่ได้รับผลกระทบได้แก่

Email address
Password ที่เป็น Hash และ Salted
API Key
SSL certificate ที่ลูกค้าได้ Upload เข้าระบบ Incapsula

ทั้งนี้ IMPERVA ได้ทำการแจ้งเตือนและติดต่อไปยังลูกค้าทีได้รับผลกระทบเพื่อช่วยเหลือและแนะนำวิธีการแก้ไขรวมถึงการเพิ่มความปลอดภัยให้กับผู้ใช้บริการ ในระหว่างที่กำลังตรวจสอบถึงช่องทางที่ถูกโจมตีและผลของการ Forensic ซึ่งหากทำการวิเคราะห์เหตุการณ์เรียบร้อยแล้วจะแจ้งให้ทราบเป็นลำดับถัดไป
คำแนะนำสำหรับผู้ใช้บริการ Cloud WAF (Incapsula)
ควรตั้งค่า 2 Factor Authentication ให้กับ Account ที่ใช้ Manage Incapsula และสำหรับผู้ที่ได้รับผลกระทบควรทำการ Generate และ Upload SSL Certificate เข้าไปที่ระบบของ Incapsula ใหม่อีกครั้ง รวมถึงผู้ที่ใช้งาน API ควรทำการ Reset API Key ใหม่

Ref: https://thehackernews.

แจ้งเตือนกลุ่มแฮกเกอร์ Silence มุ่งโจมตีสถาบันทางการเงินทั่วโลก

บทนำ
เมื่อเดือนกันยายน 2018 นักวิจัยจาก Group-IB ออกรายงานชื่อ Silence: Moving into the darkside เปิดเผยกลุ่มแฮกเกอร์กลุ่มใหม่ชื่อ Silence เชื่อมโยงกับการขโมยเงินจากธนาคารในรัสเซีย, ธนาคารในยุโรปตะวันออก และสถาบันทางการเงิน ซึ่ง Group-IB ให้ความสนใจกลุ่ม Silence เพราะเป็นกลุ่มที่แตกต่างจาก APT ที่มุ่งโจมตีสถาบันการเงินทั่วไป เนื่องจากมีขนาดเล็กแต่มีความสามารถในการพัฒนาเทคนิคและเครื่องมือ ไม่ว่าจะเป็นการพัฒนาเครื่องมือเองใหม่, แก้ไขจากความผิดพลาด หรือลอกเลียนแบบจากกลุ่มอื่นๆ

Group-IB ค้นพบการเคลื่อนไหวของกลุ่ม Silence ตั้งแต่เดือนกรกฏาคมปี 2016 โดยกลุ่ม Silence พยายามทำการถอนเงินผ่านระบบกลางที่เชื่อมระหว่างแต่ละธนาคารในรัสเซีย (AWS CBR: Automated Work Station Client of the Russian Central Bank) แต่ไม่ประสบความสำเร็จ จากนั้นกลุ่ม Silence มีการพัฒนาเทคนิคการโจมตีและทดลองอีกหลายครั้งจนกระทั่งทำการโจมตีสำเร็จในเดือนตุลาคมปี 2017 และทำการโจมตีต่อมาอีกหลายครั้งในปี 2018 รวมเป็นเงินกว่า 800,000 ดอลลาร์สหรัฐฯ

ต่อมาในเดือนสิงหาคม 2019 Group-IB ได้ออกรายงาน Silence 2.0: Going Global อัปเดตการทำงานของกลุ่ม Silence ว่าได้ขยายการโจมตีเป็นทั่วโลก โดยจากกันยายน 2018 ที่ออกรายงานฉบับแรกมาจนถึงการออกรายงานฉบับที่ 2 นี้ Group-IB คาดว่ากลุ่ม Silence ได้สร้างความเสียหายกว่า 4.2 ล้านดอลลาร์สหรัฐฯ แล้ว

ทีมตอบสนองการโจมตีและภัยคุกคาม (Intelligent Response) จากบริษัท ไอ-ซีเคียว จำกัดจะสรุป Tactics, Techniques, and Procedures (TTP) ของกลุ่ม Silence ตาม MITRE ATT&CK Framework ดังต่อไปนี้

Tactics, Techniques, and Procedures (TTP) ของกลุ่ม Silence
ขั้นที่ 0 Contact database check การส่งอีเมลปลอมไปยังเป้าหมายเพื่อเช็คว่าอีเมลนั้นๆ รับอีเมลได้หรือไม่

ขั้นที่ 1 Mail-out to valid address ส่งอีเมลโจมตีไปเฉพาะอีเมลที่ถูกต้อง โดยภายในมีไฟล์แนบที่เป็นอันตราย

ขั้นที่ 2 Infection of the victim's computer เมื่อเหยื่อหลงเปิดไฟล์แนบและติดเชื้อ Silence.

Capital One Data Breach: Analysis & Recommendation

จากเหตุการณ์ที่ข้อมูลของ Capital One รั่วไหล กระทบลูกค้ากว่า 106 ล้านคน ในวันนี้ทีมตอบสนองการโจมตีและภัยคุกคาม (Intelligent Response) จากบริษัท ไอ-ซีเคียว จำกัด จะมาวิเคราะห์เหตุการณ์ข้อมูลรั่วไหลของ Capital One รวมถึงแนวทางในการรับมือค่ะ โดยจะประกอบไปด้วยหัวข้อดังนี้

Executive Summary
Incident Timeline
Possible Vulnerabilities and Flaws
Recommendation
References
AWS Case Study by Security Researcher

Executive Summary
Capital One Financial Corporation announced today that on July 19, 2019, it determined there was unauthorized access by an outside individual who obtained certain types of personal information relating to people who had applied for its credit card products and to Capital One credit card customers.

การตรวจสอบระบบที่ติด Ransomware

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

ซึ่งในวันนี้ทีม Intelligent Response จาก บริษัทไอ-ซีเคียว จำกัดจะมาเล่าเกี่ยวกับการตรวจสอบระบบที่ติด Ransomware กันค่ะ ประกอบไปด้วย 2 หัวข้อ คือ

การตรวจสอบสายพันธุ์ของ Ransomware และ
การค้นหาไฟล์ Ransomware Executable ด้วยไฟล์ MFT

การตรวจสอบสายพันธุ์ของ Ransomware
เมื่อเราตรวจพบระบบที่ติด Ransomware แล้ว เราควรทำการจำกัดความเสียหาย (containment) โดยการแยกเครื่องที่ติดเชื้อออกจากเครื่องอื่นๆ ระบบปฏิบัติการ เช่น ปิดการใช้งานระบบเครือข่ายชั่วคราว หรือทางกายภาพโดยตรง เช่น การถอดสายแลน เป็นต้น เพื่อป้องกันการแพร่กระจายในระบบเครือข่ายหรือการติดต่อไปยังเครื่องภายนอกที่เป็นอันตราย

แต่ไม่ควรปิดหรือ restart เครื่องที่มีพฤติกรรมติดมัลแวร์เรียกค่าไถ่ เนื่องจากมัลแวร์เรียกค่าไถ่บางชนิด เช่น Wannacry จะมีข้อมูลที่เกี่ยวข้องกับกุญแจที่ใช้ในการเข้ารหัสหลงเหลืออยู่ในหน่วยความจำชั่วคราว (RAM) ซึ่งสามารถช่วยในการถอดรหัสได้

เมื่อหยุดการแพร่กระจายได้แล้ว เราสามารถตรวจสอบสายพันธุ์ของ Ransomware ได้จากการอัปโหลดไฟล์ที่ถูกเข้ารหัส (ควรใช้ไฟล์ที่ไม่เป็นความลับ) และอัปโหลดไฟล์ข้อความเรียกค่าไถ่ (Ransomware Notes) ไปยังบริการ ID Ransomware หรือ No More Ransom ซึ่งบริการดังกล่าวจะแจ้งว่าเราติด Ransomware สายพันธุ์ไหน มีตัวถอดรหัสฟรีแล้วหรือไม่ ซึ่งเราสามารถทดลองดาวน์โหลดโปรแกรมถอดรหัสและทดลองถอดรหัสได้ โดยควรสำรองข้อมูลไว้ก่อนทดลองถอดรหัส

บริการ ID Ransomware

ตัวอย่างผลการตรวจสอบสายพันธุ์ของ Ransomware จากบริการ ID Ransomware ในกรณีที่ยังไม่มีเครื่องมือถอดรหัสฟรี

ตัวอย่างผลการตรวจสอบสายพันธุ์ของ Ransomware จากบริการ ID Ransomware ในกรณีที่มีเครื่องมือถอดรหัสแล้ว

ซึ่งการตรวจสอบสายพันธุ์ของ Ransomware นอกจากจะทำให้เราทราบว่ามีเครื่องมือในการช่วยถอดรหัสฟรีโดยไม่ต้องจ่ายค่าไถ่แล้ว ยังช่วยให้สามารถค้นหาข้อมูลเพิ่มเติมเกี่ยวกับช่องทางการแพร่กระจายของ Ransomware ชนิดนั้นๆ และทำการป้องกันช่องทางดังกล่าวเพิ่มมากขึ้นได้อีกด้วยค่ะ
การค้นหาไฟล์ Ransomware Executable ด้วยไฟล์ MFT
ในบางครั้งหลังจากเกิดเหตุการณ์ Ransomware องค์กรอาจมีความต้องการทำ Digital Forensic เพื่อหาสาเหตุที่ทำให้ติดเชื้อ Ransomware ที่แท้จริง ซึ่งควรเก็บหลักฐานดิจิตอลไว้เพื่อตรวจสอบภายหลังก่อนทำการกู้คืนระบบใหม่ สามารถศึกษาวิธีเก็บหลักฐานดิจิตอลได้จากข้อเสนอแนะมาตรฐานการจัดการอุปกรณ์ดิจิทัลในงานตรวจพิสูจน์พยานหลักฐาน จัดทำโดยศูนย์ประสานการรักษาความมั่นคงปลอดภัยระบบคอมพิวเตอร์ประเทศไทย (ไทยเซิร์ต) 

ข้อมูลสำคัญอย่างหนึ่งที่ช่วยประกอบการหาสาเหตุของการติดเชื้อก็คือไฟล์ Ransomware Executable ซึ่งถ้าเราทราบว่าไฟล์ไหนคือ Ransomware Executable ที่เป็นต้นเหตุของเหตุการณ์ทั้งหมด เราก็จะสามารถตรวจสอบหาบัญชีผู้ใช้งานที่เป็นเจ้าของไฟล์และบัญชีผู้ใช้งานที่เป็นผู้เรียกใช้ไฟล์ดังกล่าวให้ทำงานได้

วิธีการหาไฟล์ Ransomware Executable สามารถทำได้หลายวิธี ในบทความนี้จะนำเสนอการค้นหาไฟล์โดยใช้ข้อมูลจากไฟล์ $MFT เพื่อค้นหาไฟล์แรกที่ถูกเข้ารหัส ช่วงเวลาที่ไฟล์แรกโดนเข้ารหัส และใช้ข้อมูลเวลาที่ถูกเข้ารหัสไปหาไฟล์ที่ถูกเรียกใช้ในเวลาใกล้เคียงกันเพื่อหาไฟล์ Ransomware Executable

ไฟล์ MFT หรือ Master File Table เป็นไฟล์ในระบบไฟล์แบบ NTFS โดยจะรวบรวมข้อมูลของไฟล์ทั้งหมดในไดร์ฟนั้นๆ แม้แต่ไฟล์ที่ถูกลบไปแล้ว เช่น เวลาที่สร้างไฟล์ (Created) เวลาที่ถูกเข้าถึงล่าสุด (LastAccess) และข้อมูลอื่นๆ อีกมาก

ซึ่งนอกเหนือจากไฟล์ MFT แล้วยังมีไฟล์อื่นๆ ที่บันทึกความเปลี่ยนแปลงของไฟล์ เช่น ไฟล์ USN Journal และ NTFS Log ($LogFile) ซึ่งสามารถนำไปใช้ตรวจสอบไฟล์แรกที่ถูกเข้ารหัสได้เช่นกัน แต่ไฟล์ USN Journal และ NTFS Log ($LogFile) สามารถเก็บข้อมูลการเปลี่ยนแปลงได้จำกัด ซึ่งจากสูตรประมาณของ Microsoft ระบุว่าไฟล์ USN Journal ขนาด 32MB จะบันทึกการเปลี่ยนแปลงได้ประมาณ 200,000 ไฟล์ จึงไม่สามารถนำข้อมูลไฟล์ USN Journal มาใช้งานได้ในกรณีที่ Ransomware เข้ารหัสไฟล์เกิน 200,000 ไฟล์

ซึ่งเทคนิคการค้นหาไฟล์ Ransomware Executable ด้วยไฟล์ MFT ในครั้งนี้จะสาธิตผ่านการตรวจสอบบนหลักฐานดิจิตอลจากเครื่องที่ติดเชื้อ GlobleImposter 2.0 ซึ่งทำการเข้ารหัสไฟล์แล้วเปลี่ยนนามสกุลเป็น .doc

เครื่องมือที่ใช้

MFTECmd เป็นโปรแกรมในตระกูล Eric Zimmerman's tool ใช้สำหรับ parse ไฟล์ MFT และไฟล์อื่นๆ เป็น CSV
Timeline Explorer เป็นโปรแกรมในตระกูล Eric Zimmerman's tool ใช้สำหรับเปิด CSV ขนาดใหญ่
FTK Imager เป็นโปรแกรมที่มีความสามารถในการจัดเก็บหลักฐานดิจิตอล วิเคราะห์หลักฐานดิจิตอล รวมถึงคำนวนค่า hash จากหลักฐานดิจิตอล สามารถดาวน์โหลดได้จาก https://accessdata.

เสริมความปลอดภัย (Hardening) Windows ง่ายๆ ด้วย Security Baseline

อาจเป็นที่ทราบกันดีอยู่แล้วว่าเมื่อใดก็ตามที่เราเพิ่มคุณลักษณะด้านความปลอดภัย (Security) ให้มากยิ่งขึ้น คุณสมบัติด้านอื่นๆ อาทิ ความง่ายในการใช้งาน (Usability) และฟังก์ชันการทำงาน (Functionality) อาจจะสูญเสียไป แนวคิดนี้ยังส่งผลมาถึงคอมพิวเตอร์ซึ่งเราซื้อและใช้ในชีวิตประจำวันโดยทั่วไปของเราที่ถูกออกแบบมาให้คุณลักษณะด้านความปลอดภัย, ความง่ายในการใช้งานและฟังก์ชันการทำงานนั้นสมดุลกัน

อย่างไรด้วยฟีเจอร์อันมหาศาลในระบบปฏิบัติการอย่าง Windows ที่เราไม่เคยใช้หรือไม่เคยรู้ว่ามันมีอยู่ การยอมสละความง่ายในการใช้งานและฟังก์ชันการทำงานบางอย่างเพื่อเสริมความปลอดภัยในการใช้งานก็อาจเป็นแนวคิดที่สมเหตุสมผล

ดังนั้นในโพสต์นี ทีมตอบสนองการโจมตีและภัยคุกคาม (Intelligent Response) จาก บริษัท ไอ-ซีเคียว จำกัด จะมาพูดถึงวิธีการง่ายๆ ที่จะช่วยเสริมความปลอดภัยให้กับ Windows โดยไม่เสี่ยงสูญเสียคุณลักษณะด้านอื่นไป โดยใช้เครื่องมือและคำแนะนำในการตั้งค่า Security Baseline ที่มาจาก Microsoft เองให้ลองไปทำตามกันดูครับ
ทำความรู้จัก Security Baseline
Security Baseline เป็นรายการของการตั้งค่าซึ่งอยู่ใน Security Compliance Toolkit ที่ทาง Microsoft เปิดให้ผู้ใช้งานสามารถทำการดาวโหลดได้ฟรี รายการตั้งค่านี้มาจากความเห็นร่วมกันของฝ่ายความปลอดภัยไมโครซอฟต์และผู้ใช้งานหลายๆ กลุ่มว่าสามารถช่วยเสริมความปลอดภัยในการใช้งานได้

เราสามารถดาวโหลด Security Baseline ได้จากแพ็คของ Security Compliance Toolkit โดยในการใช้งานนั้น เราจะต้องเลือก Baseline ที่ตรงกับรุ่นของระบบปฏิบัติการที่เราใช้เพื่อป้องกันผลกระทบที่เกิดจากการแก้ไขการตั้งค่าครับ
ทำความเข้าใจการตั้งค่าด้วย Policy Analyzer
แม้ว่าผลกระทบที่เกิดจากการตั้งค่าอาจจะต่ำสำหรับผู้ใช้งานทั่วไป เราก็ขอแนะนำให้ผู้ใช้งานทำความเข้าใจการตั้งค่าที่จะเกิดขึ้นโดยการใช้เครื่องมือที่มากับ Security Compliance Toolkit ชื่อ Policy Analyzer ซึ่งจะช่วยให้เราทำความเข้าใจการตั้งค่าที่เราจะใช้งานรวมไปถึงเปรียบเทียบการตั้งค่าที่มีอยู่แล้วในปัจจุบันกับ Security Baseline ที่เราดาวโหลดมาว่ามีลักษณะเป็นอย่างไรบ้าง

การใช้งาน Policy Analyzer เพื่อเปรียบเทียบการตั้งค่าปัจจุบันของคอมพิวเตอร์ของเรากับการตั้งค่าจาก Security Baseline สามารถทำได้ตามขั้นตอนดังนี้ครับ

เปิดโปรแกรม PolicyAnalyzer.

An Analysis of Accidentally Tampered Master File Table

Are you looking for English version for this article? Click here!
ในระบบ File System แบบ NTFS จะมีไฟล์ที่เรียกว่า $MFT หรือ Master File Table ซึ่งเป็นที่รวบรวมข้อมูลของไฟล์ทั้งหมดในไดร์ฟนั้นๆ แม้แต่ไฟล์ที่ถูกลบไปแล้ว ซึ่งในวันนี้ทีม Intelligent Response จาก บริษัทไอ-ซีเคียว จำกัด จะมาเล่าข้อมูลที่น่าสนใจเกี่ยวกับ $MFT ในด้าน Digital Forensic กันค่ะ
ข้อมูลที่น่าสนใจเกี่ยวกับ $MFT ในด้าน digital forensic
MFT หรือ Master File Table เป็นไฟล์ในระบบไฟล์แบบ NTFS โดยจะรวบรวมข้อมูลของไฟล์ทั้งหมดในไดร์ฟนั้นๆ แม้แต่ไฟล์ที่ถูกลบไปแล้ว การตรวจสอบไฟล์ $MFT จึงมีประโยชน์อย่างมากในช่วยค้นหาไฟล์ที่ถูกลบเพื่อทำการกู้คืนและการใช้วิเคราะห์ในฐานะของหลักฐานดิจิตอลรูปแบบหนึ่ง

โดยปกติไฟล์ $MFT จะถูกสร้างขึ้นโดยอัตโนมัติเมื่อมีการฟอร์แมตหรือเปลี่ยนพาร์ติชันของดิสก์เป็น NTFS โดยวันที่และเวลาที่ไฟล์ $MFT ถูกสร้างขึ้น (หรือวันที่และเวลาที่ดิสก์ถูกฟอร์แมต) จะถูกระบุอยู่ในคุณลักษณะของไฟล์ $MFT ที่หัวข้อ Date created ซึ่งในกรณีโดยส่วนใหญ่ที่ดิสก์ดังกล่าวถูกติดตั้งระบบปฏิบัติการ ไฟล์ของระบบปฏิบัติการจะมีวันที่และเวลาที่ถูกสร้างใกล้เคียงหรือสอดคล้องกับค่า Date created ใน $MFT ตามรูปภาพด้านล่าง

ในขณะที่เราทำการวิเคราะห์หลักฐานดิจิตอลเพื่อค้นหาที่มาและข้อมูลที่เกี่ยวข้องกับภัยคุกคาม เราพบซอฟต์แวร์และโปรแกรมบางประเภท อาทิ ซอฟต์แวร์คงสภาพฮาร์ดดิสก์ เช่น Deep Freeze, ซอฟต์แวร์ปรับแต่งการทำงานของระบบ เช่น CCleaner อาจมีการเข้าไปแก้ไขไฟล์ $MFT และส่งผลให้ค่า Date created เปลี่ยนไปเมื่อเปรียบเทียบกับค่าของวันที่และเวลาจากไฟล์อื่นๆ ที่มักจะถูกสร้างขึ้นมาในเวลาที่ใกล้เคียงหรือสอดคล้องกัน พฤติกรรมนี้สามารถช่วยบ่งชี้ถึงพฤติกรรมที่น่าสงสัยหรือความสมบูรณ์ของข้อมูลที่ได้จากไฟล์ $MFT ได้

ความสมบูรณ์และถูกต้องของไฟล์ $MFT ยังสามารถถูกทำลายได้ในบางกรณี เช่น การใช้โปรแกรมกู้คืนไฟล์โดยทำการกู้คืนไฟล์ที่ถูกลบมายังไดร์ฟเดิม เนื่องจากการแก้ไขและการเขียนทับรายการภายในไฟล์ $MFT ที่ไม่ถูกต้อง

ตัวอย่างด้านล่างนั้นได้แสดงให้เห็นถึงการทำลายความสมบูรณ์และความถูกต้องของไฟล์ $MFT ซึ่งเป็นเหตุมาจากการกู้คืนไฟล์ไปยังไดร์ฟหรือตำแหน่งเดิม ค่า Date created ของไดร์ฟ D เมื่อเปรียบเทียบกับไดร์ฟ C จึงไม่ถูกต้องตรงกัน

กรณีตัวอย่างที่การทำลายความสมบูรณ์และความถูกต้องของไฟล์ $MFT มีผลกับการทำ Digital Forensic
นายเอพบว่ามีการลบไฟล์จำนวนมากออกจากเครื่องเซิร์ฟเวอร์ โดยไฟล์เหล่านั้นเป็นไฟล์ที่มีความสำคัญต่อการทำงานเป็นอย่างมาก ด้วยความตกใจ นายเอจึงทำการพยายามกู้ไฟล์เหล่านั้นด้วยโปรแกรมกู้ไฟล์กลับลงในไดร์ฟเดิม โดยสามารถกู้ไฟล์ได้แค่บางส่วนเท่านั้น นายเอเกิดข้องสงสัยว่าการลบไฟล์ดังกล่าวอาจเกิดจากผู้ไม่หวังดีภายในองค์กรเดียวกัน จากนั้นนายเอจึงได้จ้าง Digital Forensic Analyst ให้ทำการตรวจสอบเครื่องคอมพิวเตอร์ดังกล่าวว่ามีไฟล์ใดถูกลบออกไปบ้างเพื่อนำไปตรวจสอบต่อ

ซึ่งการทำลายความสมบูรณ์และความถูกต้องของไฟล์ $MFT ได้ถูกทำลายจากการกู้คืนไฟล์ไปยังไดร์ฟเดิม ส่งผลกระทบกับการทำงานของ Digital Forensic Analyst ให้ไม่สามารถตรวจหาชื่อไฟล์ได้

ตัวอย่างด้านล่างนั้นได้แสดงให้เห็นความแตกต่างระหว่างไฟล์ $MFT ก่อนและหลังการกู้คืนไฟล์ลงในไดร์ฟเดิม โดยไฟล์ $MFT ทั้งสองไฟล์ถูกแปลงด้วยโปรแกรม MFTECmd เป็น CSV จะพบว่าจำนวนข้อมูล [In Use] = unchecked ซึ่งบ่งบอกไฟล์ที่ถูกลบไปแล้วไม่เท่ากัน

และเมื่อทดลองค้นหาชื่อไฟล์ที่มีคำว่า ns จะพบว่าในไฟล์ $MFT ก่อนและหลังการกู้คืนไฟล์ลงในไดร์ฟเดิมมีข้อมูลไม่ตรงกัน โดยในไฟล์ $MFT หลังการกู้คืนจะมีจำนวนข้อมูลน้อยกว่า

สรุป
ไฟล์ $MFT มีประโยชน์มากในการทำ digital forensic  ใช้บอกข้อมูลได้หลายอย่าง แต่ควรระวังว่าข้อมูลใน MFT อาจถูกแก้ไขได้ในบางกรณีโดยไม่ตั้งใจได้
English version
There is a file called Master File Table or MFT ($MFT) in NTFS file system.

แจ้งเตือนช่องโหว่ตระกูล SACK Panic ยิง FreeBSD และลินุกซ์ดับดิ้นได้จากระยะไกล

เมื่อวันที่ 17 มิถุนายน 2019 ที่ผ่านมา ทีม Security Engineer จาก Netflix ได้มีการเปิดเผย 4 ช่องโหว่ใหญ่ในส่วนของโปรแกรมซึ่งอิมพลีเมนต์โปรโตคอล TCP ในระบบ FreeBSD และลินุกซ์ ซึ่งส่งผลให้ด้วยการส่งแพ็คเกตที่มีลักษณะเฉพาะบางประการ แฮกเกอร์สามารถล่มระบบใดก็ได้ได้จากระยะไกล

ทีม Intelligent Response จาก บริษัทไอ-ซีเคียว จำกัด จะมาติดตามรายละเอียดของช่องโหว่นี้ พร้อมทั้งอธิบายที่มา การตรวจจับและการป้องกันการโจมตีช่องโหว่นี้ในโพสต์นี้กันครับ

รายละเอียดช่องโหว่โดยย่อ
ที่มาของช่องโหว่
การโจมตีช่องโหว่
ระบบที่ได้รับผลกระทบ
การตรวจจับการโจมตี
การป้องกันการโจมตี

รายละเอียดของช่องโหว่โดยย่อ
ช่องโหว่ในตระกูล SACK Panic นี้มีทั้งหมด 4 ช่องโหว่ ได้แก่

ช่องโหว่ SACK Panic รหัส CVE-2019-11477 คะแนน CVSSv3 7.5
ช่องโหว่ SACK Slowness รหัส CVE-2019-11478 คะแนน CVSSv3 5.3
ช่องโหว่ SACK Slowness รหัส CVE-2019-5599 ยังไม่มีการระบุคะแนน CVSS
ช่องโหว่ไม่มีชื่อเฉพาะ รหัส CVE-2019-11479 คะแนน CVSSv3 5.3

ที่มาของช่องโหว่
อ้างอิงจาก Security Advisories ของ Netflix ช่องโหว่ทั้ง 4 ช่องโหว่นี้เป็นช่องโหว่ที่เกิดขึ้นในส่วนของโค้ดซึ่งอยู่ในแกนกลางของระบบปฏิบัติการ FreeBSD และเคอร์เนลของระบบปฏิบัติการลินุกซ์ซึ่งทำหน้าที่เกี่ยวข้องกับโปรโตคอล TCP โดยช่องโหว่เหล่านี้นั้นเกี่ยวข้องกับการกำหนดค่า minimum segment size (MSS) และค่า TCP Selective Acknowledgement (SACK) ซึ่งทั้งสองค่าเป็นการตั้งค่าของโปรโตคอล TCP

สำหรับช่องโหว่แรกคือ SACK PANIC (CVE-2019-11477) นั้นเป็นช่องโหว่ซึ่งเกิดขึ้นเมื่อผู้โจมตีมีการสร้างลำดับของแพ็คเกต TCP ซึ่งมีลำดับของค่า SACK เฉพาะ โดยเมื่อส่งไปยังเป้าหมายซึ่งมีช่องโหว่แล้ว จะทำให้เกิดการเงื่อนไข integer overflow ซึ่งนำไปสู่เงื่อนไขการทำงานที่ผิดพลาดของเคอร์เนล (Kernel panic) และทำให้เกิดเงื่อนไข DoS ได้

ในส่วนของช่องโหว่ที่สองคือ SACK Slowness (CVE-2019-11478) นั้นเป็นช่องโหว่ที่ทำให้เกิดการใช้งานทรัพยากรของระบบมากขึ้นโดยเป็นผลมาจากการได้รับลำดับของแพ็คเกต TCP ที่มีค่า SACK เฉพาะซึ่งจะทำให้เกิดการแบ่งส่วนในกระบวนการจัดลำดับเพื่อจัดส่งแพ็คเกตใหม่ในโปรโตคอล TCP ในลักษณะที่ไม่ถูกต้องได้

ช่องโหว่ที่สามหรือช่องโหว่ SACK Slowness (CVE-2019-5599) เป็นช่องโหว่ที่เกิดขึ้นในลักษณะที่คล้ายกับ SACK Slowness (CVE-2019-11478) จากความเหมือนกันในประเด็นเรื่องของผลกระทบและรูปแบบการโจมตี แต่แตกต่างในส่วนของคอมโพเนนต์และระบบปฏิบัติการที่ได้รับผลกระทบ

ช่องโหว่สุดท้ายในลำดับ 4 คือช่องโหว่รหัส CVE-2019-11479 เป็นช่องโหว่ที่ทำให้เกิดการใช้งานทรัพยากรของระบบที่มากขึ้นหรือมากเกินซึ่งเป็นผลมาจากการกำหนดค่า MSS ต่ำ โดยผู้โจมตีนั้นสามารถบังคับให้ลินุกซ์เคอร์เนลทำการแบ่งส่วนแพ็คเกตที่จะทำการตอบกลับออกเป็นหลาย TCP segment ที่มีขนาด 8 ไบต์ ซึ่งส่งผลให้ระบบจำเป็นต้องใช้แบนด์วิธและทรัพยากรอื่นๆ ที่มากขึ้นในการส่ง เงื่อนไขเดียวในการโจมตีข่องโหว่นี้คือการที่ผู้โจมตีจะต้องทำการโจมตีอยู่ตลอดเวลา เนื่องจากความเสียหายที่เกิดจากการโจมตีนั้นจะหยุดหากการโจมตีหยุดลงทันที
การโจมตีช่องโหว่
ยังไม่มีการปรากฎของโค้ดหรือ PoC ที่ใช้สำหรับโจมตีช่องโหว่ในขณะนี้
ระบบที่ได้รับผลกระทบ

ช่องโหว่ SACK Panic (CVE-2019-11477) ส่งผลกระทบกับลินุกซ์เคอร์เนลตั้งแต่เวอร์ชัน 2.6.29 เป็นต้นไป
ช่องโหว่ SACK Slowness (CVE-2019-11478) ส่งผลกระทบกับลินุกซ์เคอร์เนลรุ่น 4.15 หรือต่ำกว่า
ช่องโหว่ SACK Slowness (CVE-2019-5599) ส่งผลกระทบกับ FreeBSD รุ่น 12 ที่ใช้ RACK TCP Stack
ช่องโหว่ CVE-2019-11479 ส่งผลกระทบกับลินุกซ์ทุกเวอร์ชัน

การตรวจจับการโจมตี
ช่องโหว่ทั้งหมดนั้นมี Attack vector เป็นเน็ตเวิร์กซึ่งส่งผลให้อุปกรณ์เน็ตเวิร์กที่สามารถตรวจสอบคุณลักษณะของแพ็คเกตได้นั้นสามารถใช้เพื่อตรวจจับการโจมตีได้ อย่างไรก็ตามเรายังไม่พบการประกาศ Signature หรือแพทเทิร์นในการตรวจจับการโจมตีในขณะนี้ โดยจะทำการอัปเดตหากมีความคืบหน้า

และเนื่องจากผลลัพธ์ของช่องโหว่นั้นส่งผลให้เกิดการทำงานของผิดพลาดของเคอร์เนลและทรัพยากรของระบบที่ถูกใช้ไปอย่างมากขึ้น การตรวจสอบการโจมตีบน Endpoint ก็ยังมีความเป็นไปได้อยู่ในการดำเนินการเพื่อระบุหาความผิดปกติของระบบ ผ่านทางการตรวจสอบสถานะของระบบ (Health check) เป็นต้น
การป้องกันการโจมตี

ทำการอัปเดตแพตช์เฉพาะของช่องโหว่หากยังไม่มีการอัปเดตจากโครงการของเคอร์เนล โดยให้ดำเนินการดังนี้

สำหรับช่องโหว่ SACK Panic (CVE-2019-11477) ให้ทำการอัปเดตแพตช์ PATCH_net_1_4.patch ในกรณีที่ลินุกซ์เคอร์เนลเป็นเวอร์ชัน 4.14 หรือใหม่กว่า ให้ทำการอัปเดตแพตช์ PATCH_net_1a.patch ไปพร้อมกันด้วย
สำหรับช่องโหว่ SACK Slowness (CVE-2019-11478) ให้ทำการอัปเดตแพช์ PATCH_net_2_4.patch กับเคอร์เนล
สำหรับช่องโหว่ SACK Slowness (CVE-2019-5599) ให้ทำการอัปเดตแพตช์ split_limit.