
VoidCrypt — Watch and Learn Style with Annoyance
Incognito Lab
Disclaimer: บทความนี้ทดสอบกับ VoidCrypt ที่สามารถ download ได้จาก https://www.tutorialjinni.com/download-voidcrypt-ransomware-sample/26690dae115f47a1e0167750209a30cc68f51c5090e3b908105c93967e5156fa.py
Malware Analysis แบบรีบ ๆ
รูปแบบหนึ่งของการทำ Incident Response ที่ปล่อยให้ผู้โจมตีดำเนินการปฏิบัติการต่อไป โดยที่ฝั่งตั้งรับคอยเฝ้าดูอย่างใกล้ชิดไม่กระโตกกระตากและไม่ให้ผู้โจมตีรู้ตัวเราเรียกว่า "Watch and Learn" บทความนี้จึงขอประยุกต์ใช้เทคนิคดังกล่าวกับ Ransomware ตระกูลเดียวกับที่โจมตี รพ. สระบุรี และเพิ่งจะเป็นข่าวครึกโครมไป (เป็นโอกาสอันดีที่ community จะตื่นตัวกับเรื่องของ cybersecurity มากขึ้น) วิธีการที่จะอธิบายในบทความนี้ ผู้ดูแลระบบสามารถเอาไปประยุกต์ใช้งานจริงได้ โดยที่ไม่ต้องอาศัยทักษะการทำ Malware Analysis หรือการเตรียม Environment สำหรับทดสอบ ลำดับแรกสุดให้ไปที่เครื่องที่โดนโจมตีหา process ที่น่าสงสัย จากนั้นไปหา binary file ที่น่าจะเป็นต้นเรื่องจากนั้นนำ file ที่น่าสงสัยดังกล่าวออกมาให้ได้ หลังจากนั้นจึงเริ่มกระบวนการวิเคราะห์โดยอาศัยเครื่องมือดังนี้
- ทดสอบเบื้องต้นผ่าน VirusTotal
ลองดูว่าเรากำลังเผชิญหน้ากับอะไรอยู่ โดยทดสอบผ่าน virustotal.com พบว่า engine เกือบทุกตัวพิจารณาว่าเป็น malicious ทั้งหมด (binary file ดังกล่าวเปิดตัวผ่านมาหลายเดือนแล้ว)
ผลการ scan: https://www.virustotal.com/gui/file/26690dae115f47a1e0167750209a30cc68f51c5090e3b908105c93967e5156fa/behavior/Dr.Web%20vxCube

ผลจากการ scan binary file ของ VoidCrypt
- เก็บข้อมูลผ่าน Dynamic Analysis ด้วย Any.run ทดสอบกับ interactive href="https://any.run/" rel="noopener nofollow">https://any.run/ เพื่อลองดูผลจากการ run VoidCrypt ผ่าน sandbox ซึ่งพบว่า VoidCrypt ทำการ stop service จำนวนมากเช่น SQLSERVERAGENT , ปิด firewall ที่เครื่อง และปิด feature การ recovery จุดประสงค์คือมันจะปิดทางกู้ file และทำการ encrypt Database ด้วยถ้ามี

ผลจากการ run ผ่าน any.run สังเกต impact ที่เกิดขึ้นด้านขวา

process graph ที่เกิดขึ้นหลังจากการ run
และ IOC (IOC-Indicator of Compromise คือร่องรอยที่เกิดขึ้นหลังจากถูกโจมตีไปแล้ว ส่วน IOA-Indicator of Attack คือ pattern และวิธีการที่ attacker จะใช้เพื่อโจมตีเช่นทำ Command and Control หรือใช้ malware)

IOA-Indicator
ข้อดีอีกอย่างหนึ่งของ any.run ก็คือเราสามารถวิเคราะห์ network traffic ได้ ซึ่งทำให้เราเห็นข้อมูลที่ VoidCrypt ส่งกลับไปยัง Attacker

ท่าทางจะเป็นชุดของ Key ที่เอาไว้ encrypt เครื่องนี้ ถ้าหากไม่มี key จะทำการ decrypt ไม่ได้เลย
- ดูความซับซ้อนระดับ binary ว่ามันถูกสร้างมาระดับ APT level หรือไม่ หรือ reuse code malware อื่น ๆ มาทำ cybercrime operation ตามรอบเวลา ผ่าน Intezer Analyze
ทดสอบโดย upload ไปที่ https://analyze.intezer.com/analyze พบว่ามีลักษณะของความเป็น Ransomware ชัดเจน และมีการ reuse code ของ malware แนวเดียวกันด้วย ซึ่งรูปแบบนี้ทำให้เราพอประเมินได้ว่าน่าจะเป็นกลุ่ม cyber criminal ที่มี motivation เป็นเรื่องเงินเป็นหลัก ไม่น่าจะเป็น State-sponsor attacker

มีการ reuse code ของ malware ประเภทอื่น และใช้ Crypto++ library
- ดูผล step by step ผ่านบริการ Hatching Triage
เราสามารถดูผลการ run VoidCrypt แบบ step by step ได้โดย upload ไปที่ https://tria.ge/ จะพบ sequence ของผลที่เกิดขึ้น

sequence แบบ chronologically order
ถ้าอยากเห็นหน้าจอก็ทำได้เช่นกัน ผ่าน function Replay Monitor อย่างไรก็ตาม sample ที่เราทดสอบคือ Ransomware จะเห็นผลชัดเจน ถ้าเป็น APT หรือ malware ที่ stealth เราจะไม่พบอะไรบนหน้าจอต้องอาศัย artifact อื่น ๆ จะดีกว่า

สังเกตผลที่ได้ผ่านหน้าจอแบบ video content
- ถ้าอยากทำ Analysis แต่ไม่แชร์ผลการวิเคราะห์จะทำอย่างไร
เนื่องจากบริการข้อ 1–4 ที่กล่าวถึง ผู้วิเคราะห์สามารถใช้งานได้ฟรี แม้จะมีข้อจำกัดบ้างเมื่อเทียบกับ package ที่เสียเงิน แต่ทำให้เรารู้ข้อมูลบางส่วนเพื่อตัดสินใจว่าจะเสียเงินซื้อเพิ่มเพื่อใช้งาน function เสริมหรือไม่ ซึ่งโดยปกติแล้วผลการทดสอบหากใช้งานฟรีจะทำการ publish ให้สามารถ access ได้ ในทางปฏิบัติเราอาจจะไม่อยากให้ attacker รู้ตัวเนื่องจาก source IP หรือ traffic ที่ฝั่ง attacker จะเห็นนั้นย่อมคาดการได้ว่ากำลังถูก analyze อยู่ หรือข้อมูลบางอย่างที่ specific กับ malware ที่สร้างมาโจมตีองค์กรของเราโดยเฉพาะอาจจะหลุดไปก็ได้ (ดู advanced มากแต่ก็เป็นอีกเรื่องที่เราควรจะพิจารณาด้วย) ทางเลือกคือใช้ sandbox ที่สามารถระงับการส่งผลไปยัง Antivirus Engine ยี่ห้ออื่น ๆ โดยสามารถใช้บริการผ่าน https://www.hybrid-analysis.com/ ซึ่งเป็น online sandbox ที่ทำงานได้ดีเช่นเดียวกัน

หน้าจอที่ได้จากการ scan ผ่าน hybrid-analysis
และยังสามารถ request การ delete ผลการ scan ได้

Request ให้ลบผลการวิเคราะห์ออกได้
ลองจับ VoidCrypt มาแกล้งมันบ้าง
ก่อนแกล้งมันจริง ๆ จัง ๆ ต้องลองจับมันเล่นบนเครื่องของผู้เขียนก่อน โดย Desktop หน้าจอเครื่องทดสอบเป็นแบบนี้ครับ

Desktop ก่อน run VoidCrypt
หลังจากทดสอบ run voidcrypt.exe จะพบว่า Desktop ของผู้เขียนถูก VoidCrypt ซัดเกลี้ยงขนาด format .ini และ.py มันยังไม่เว้น โหดสัส!!

Desktop หลังจากสั่ง run VoidCrypt
ภายในระยะเวลาอันสั้นเครื่องทดสอบก็ถูก encrypt และมี file HTA(HTML Application) แสดง message จาก attacker ว่า

Message จาก VoidCrypt แสดงคำแนะนำในการ decrypt file ที่ถูกเข้ารหัสเอาไว้
ถ้าไปดูรายละเอียดโดยการ intercept ระดับ kernel ด้วย minifilter driver เราจะพบว่าเจ้า VoidCrypt พยายามจัดการ modify กับ file ต่าง ๆ ที่มันอยากจะ encrypt

minifilter
ทดสอบแกล้งมันด้วย minifilter driver
คำแนะนำจากผู้เชี่ยวชาญหลาย ๆ ท่าน และ Resource ในการรับมือ Ransomware มีให้ศึกษาหลายที่ ผู้อ่านลองไปหาอ่านกันดูนะครับ ส่วนตัวผู้เขียนก็ยังเคยกล่าวถึงในบทความ Difference between Single-stage Ransomware and Multi-stage Ransomware ที่ https://incognitolab.com/multi-stage-ransomware บ้างแล้ว
สำหรับครั้งนี้ผู้เขียนอยากจับเจ้า VoidCrypt มาทดสอบกับเครื่องมือที่เป็นหนึ่งในผลงานวิจัยส่วนตัวซึ่งยังไม่มีทีท่าว่าจะพัฒนาออกมาเป็น product ได้หรือไม่

หลักการทำงาน
โดยใช้เทคนิคเลียนแบบ ATM Whitelisting Solution ที่ทำการ Deploy ไว้ที่ host machine ในตู้ ATM ที่จะอนุญาตเฉพาะ Application ที่อยู่ใน whitelist ทำงานได้เท่านั้น สำหรับวิธีของ minifilter driver จะคอย monitor process และจะอนุญาตเฉพาะแต่ process ที่อยู่ใน whitelist เปิด file ที่ควรเปิดทำงานได้เท่านั้น เช่นเอกสาร MS Office ก็ควรจะถูกเปิดได้เฉพาะแต่ MS Office Application หรือ MS Office process เท่านั้น หาก process อื่นมาเปิด minifilter driver ก็จะไม่ยอม ตาม enforcement rules ทดสอบด้านล่าง
#Test CaseAllow excel.exe --> \*.xls, \*.xlsx, \*.xlsmAllow powerpnt.exe --> \*.ppt, \*.pptxAllow winword.exe --> \*doc, \*docx
ข้อดีของ minifilter driver คือทำงานในระดับ kernel mode ซึ่งโดยปกติแล้ว Device Drivers เป็น loadable kernel module ทํางานในระดับ kernel mode สามารถ load และ unload ออกจาก kernel ได้โดยท่ีไม่ต้อง restart ระบบปฏิบัติการ (แต่ driver ที่ทำการทดสอบเป็น unsigned driver ต้องแก้ให้ Window ยอมให้ install ก่อน)
หลังจากลองปล่อยให้ VoidCrypt ทำงานพบว่า มันโดนเทคนิค Annoyance ก่อกวนไม่ให้ทำงานได้ตามที่มันต้องการ โดย Annoyance เป็น 1 ใน 3 เทคนิคของ offensive countermeasure โดย file MS Office บน Desktop รอดพ้นจากการถูก encrypt

หน้าจอหลังจาก VoidCrypt ทำงานภายใต้การ control ของ minifilter ที่กล่าวถึง
ลองไปดู file access log พบว่าเจ้า VoidCrypt พยายามลาก file ของเราไปยัง directory ที่เห็นในภาพ

File Access Log ที่คัดมาบางส่วน
ลอง browse ไปดู temp directory จะพบว่ามันมั่นใจว่าจะ encrypt ได้สำเร็จ รีบสร้าง message file ออกมาก่อนแต่จริง ๆ แล้วมันทำอะไรไม่ได้ โดน block access ก็แน่ล่ะสิ การทำงานของ VoidCrypt และ Driver มันอยู่กันคนละ Level นะ VoidCrypt ทำงานในระดับ user mode แต่ minifilter driver อยู่ใน kernel mode

Temp directory ที่ VoidCrypt ลาก File ของเราไป
สรุป
การป้องกัน Ransomware ต้องอาศัยการป้องกันแบบ Defense-in-depth การมั่นใจว่ามี backup ไม่ได้เป็นการการันตีว่าจะรับมือ Multi-stage ransomware ได้ การมี solution ป้องกัน malware แต่ขาดการดูแลในองค์รวม ก็ช่วยแก้ปัญหาได้ระยะสั้นเท่านั้น ส่วนการป้องกันในระดับ kernel สำหรับผมแล้วก็ยัง sexy และยังรับมือพวก Ransomware ได้ตามที่ตั้งสมมติฐานเอาไว้
ขอให้ผู้อ่านทุกท่านแคล้วคลาดจาก Ransomware กันนะครับ
Reference
- เครื่องไม้เครื่องมือที่กล่าวถึงในบทความนี้ และเครื่องมือ หรือ Link อื่น ๆ ที่น่าสนใจสามารถอ่านเพิ่มเติมได้จากบทความ "Free Malware Sample Sources for Researchers" ที่ https://zeltser.com/malware-sample-sources/
- VoidCrypt ในรูปแบบ Russian ลองไปดูได้ที่ https://id-ransomware.blogspot.com/2020/04/void-voidcrypt-ransomware.html
Up Next

ARTICLES
Mar
03
2021
Secure Code Warrior
วันก่อนเจอ Tweet ที่คุณ Troy Hunt เจ้าของ haveibeenpwned ได้ share มาเกี่ยวกับ paper อันนึงที่น่าสนใจมาก
READ MORE

ARTICLES
Mar
03
2021
หลักแห่งการออกแบบระบบอย่างมั่นคงปลอดภัย (Secure Design Principles)
ธนาคารรายใหญ่มีกฎระเบียบข้อบังคับในการคัดเลือกผู้ให้บริการหลายข้อ ทั้งในแง่ขีดความสามารถและความมั่นคงทางการเงินของบริษัท แต่เมื่อมีการจัดซื้อจัดจ้างผลิตภัณฑ์หรือบริการไปแล้ว
READ MORE

ARTICLES
Mar
02
2021
ทำความรู้จักกับ Application Sandboxing บน Mobile Platform
เมื่อพูดถึงกลไกการรักษาความปลอดภัยของ Smartphone ในปัจจุบัน ไม่ว่าจะ iOS, Android หรือ Windows Phone ล้วนมีกลไกการรักษาความปลอดภัยพื้นฐานมาอยู่แล้วซึ่งช่วยให้ผู้ใช้งานทั่วไปสามารถใช้งาน Smartphone ได้อย่างมั่นคงปลอดภัยในระดับหนึ่ง
READ MORE