Malware Analysis — Dynamic Analysis : Cuckoo Sandbox
ถ้าหากพูดถึงวิธีการทำ Malware analysis ในการทำงานด้าน Cyber security แล้วนั้น หลายๆท่านคงจะรู้จักกับ Sandbox ที่ใช้ในการตรวจสอบไฟล์โดยการ Execute,Run ไฟล์เพื่อจะตรวจว่าไฟล์นั้นเป็น Malicious files หรือไม่ โดยดูจากพฤติกรรมการทำงาน
จากการที่ผมได้ทำด้าน Malware analysis โดยได้ทดลองเล่นลองใช้ Sandbox สักระยะนึงแล้วจึงอยากจะมาแชร์ประสบการณ์ในการ Deploy sandbox สำหรับการทำ Dynamic malware analysis โดยใช้ Cuckoo sandbox ที่เป็น Open-source ซึ่งง่ายต่อการทำ Dynamic malware analysis และได้ผลลัพธ์ที่รวดเร็ว
Benefits of sandbox
ในหลายๆครั้งนั้น Anti-virus เองไม่สามารถตรวจจับ Malware ได้ เนื่องจากเป็น Signature-based หรือ Attacker อาจทำการ Malware ที่ถูกเขียนขึ้นมาเอง และมีการทดสอบ เพื่อพยายามหลบเลี่ยง Anti-virus อย่างเช่น กลุ่มของ Advanced persistent threat หรือที่เราเรียกกันย่อๆว่า APT Groups จะมี Life cycle ในการพัฒนา Malware ซึ่งมีการทดสอบกับ Anti-virus ต่างๆว่าสามารถตรวจจับได้หรือไม่ (Test for detection) ซึ่งทาง Attacker ก็อาจไม่ได้ทดสอบทุกๆยี่ห้อของ Anti-virus อาจทดสอบเฉพาะ Anti-virus ของบริษัทที่ Target
ยกตัวอย่างการหาว่าบริษัทที่เราสนใจใช้ Anti-virus ตัวใดอยู่ผ่านการ พูดคุยเริ่มจากหาเบอร์โทร และโทรเข้าไปเนียนขายของ
ฮัลโหล สวัสดีครับ พอดีเรามาจากบริษัท xxx เรามี Product ตัว Anti-virus ยี่ห้อ xxx ไม่ทราบว่าสนใจไหมครับ หรือทางบริษัทคุณมี Anti-virus ยี่ห้อไหนใช้อยู่ไหม
ดังนั้น Sandbox นั้นจะช่วยในเครื่องของการวิเคราะห์ Malware ที่ไม่สามารถตรวจจับได้ด้วย Tools อื่นๆ ซึ่งโดยส่วนมากแล้วจะมีการ Integrate ร่วมกับ Anti-virus โดยหากไฟล์ไหนที่ Anti-virus ไม่สามารถตรวจจับได้หรือไม่แน่ใจว่าเป็น Malware หรือไม่ Anti-virus ก็จะทำการส่ง ไฟล์นั้นไปที่ Sandbox ให้ทำการ Execute,Run บนเครื่อง Guest ของ Sandbox เพื่อทำการวิเคราะห์ และหากพบว่าเป็น Malware ก็จะส่ง Update signatures กลับมาที่ Anti-virus เพื่อ Quarantine หรือ Block ไม่ให้สามารถทำการ Execute,Run ได้บนเครื่อง Client นั่นเอง
Sandbox environment
Sandbox หรือหากแปลตรงตัวมันก็คือ กระบะทราย
ที่เรียกแบบนั้นเป็นเพราะว่า การทำ Malware Analysis ผ่าน Sandbox นั้นจะเกิดการ Execute,Run ขึ้นจริงดังนั้น Environment จะต้องมีรูปแบบเป็น Isolated Network ที่แยกออกมาจาก Network อื่นๆ เพื่อป้องกันไม่ให้เกิดผลกระทบ และไม่ให้เกิดการแพร่กระจายของ Malware ไปยังเครื่องอื่นๆที่อยู่ใน Network เดียวกัน ( ดังนั้น ห้ามไป Build sandbox บน Network อื่นๆที่ใช้งาน หรือ Production เป็นอันขาด ! ! )
นอกจากนั้นจะต้องมีการทำ Snapshot ไว้ที่เครื่อง Guest ที่ใช้ในการ Execute,Run ไฟล์ด้วย เพื่อป้องกันไม่ให้ Malware ค้างอยู่ในเครื่อง โดยจะต้องมีการ Restore snapshot ทุกครั้งหลังจากที่ Execute,Run ไฟล์เสร็จ
โครงสร้างโดยทั่วไปของการทำ Dynamic Malware Analysis โดยใช้ Sandbox จะประกอบไปด้วย
- Sandbox host
( ทำหน้าที่ในการวิเคราะห์ และเก็บผลการวิเคราะห์ ) - Guest
( ทำหน้าที่ในการ Execute,Run ไฟล์ ซึ่งอาจมีได้หลาย OS เนื่องจากชนิดของไฟล์นั้นมีหลากหลายทั้งบางไฟล์อาจจะใช้ได้เพียงบาง OS )
How it works ?
การทำงานของ Cuckoo Sandbox มีดังนี้
- เริ่มจากการ Submit files ไปที่ Sandbox host จากนั้นจะมีการส่งไฟล์ไป Execute หรือ Run ที่เครื่อง Guest
- Sandbox server จะทำการ Restore snapshot ที่เครื่อง Guest ก่อนเพื่อทุกครั้งเพื่อทำให้เป็นสภาวะที่ปกติ (ยังไม่ติด Malware)
- ทำการ Monitor/Capture ค่าต่างๆที่อยู่บนเครื่องเช่น Registry, Process, Files, Network และนำไฟล์ที่ต้องสงสัย (Suspicious files) มา Execute หรือ Run เพื่อดูพฤติกรรมการทำงานของไฟล์นั้นๆ (Behavior) ว่ามี Process การทำงานอย่างไรบ้าง
- ทำการ Matching signaures ว่าการลักษณะทำงานของไฟล์ที่ได้ Capture มานั้น มีลักษณะเข้าข่ายว่าเป็น Malicious files หรือไม่ และได้ผลลัพธ์เป็น Report ออกมา
Cuckoo sandbox features
สำหรับตัว Cuckoo sandbox นั้นเป็น Open-source software ที่สามารถนำมาใช้งานได้ฟรี ซึ่งมี Features หลัก ดังนี้
- รองรับการ Analyze files ได้หลายประเภท ประกอบไปด้วย executables, office documents, pdf files, emails, และอื่นๆ
- สามารถ Dump เพื่อดู Network traffic และ Analyze ได้
- สามารถ Dump memory ของแต่ละ Process และทำ Memory analysis ได้ โดยใช้ Volatility ( Open-Soure software ) ซึ่งเราสามารถ Download ไฟล์ Memory dump ของแต่ละ Process เพื่อนำตรวจสอบเพิ่มเติมได้ด้วย
- สามารถทำ Static Analysis สำหรับดูข้อมูลของ Strings, Version Infos, Imports library ต่างๆได้
- สามารถดู Process tree ได้ว่ามีลักษณะการทำงานอย่างไรได้บ้าง รวมถึงการใช้ Command line ที่ใช้ใน Process ต่างๆ
- สามารถดูข้อมูลการ์ Read/Write ของไฟล์ รวมถึงการเปลี่ยนแปลงของ Registry ที่เกิดขึ้น
- สามารถทำ Capture Screenshots เพื่อดูว่าในระหว่างที่รันไฟล์นั้นมี UI อย่างไรบ้าง
- หลังจากที่ Analyze ทุกอย่างเสร็จ สามารถให้คะแนนออกมาเป็น Score ว่ามีลักษณะที่เป็น Malware มากน้อยเพียงใด
Installation — Preparing the host
เรามาเริ่มลงมือกันเลยดีกว่า โดยผมจะแยก Part ของการ Installation ตาม Document ของ Cuckoo เลยนะครับ (Cukcoo installation document)
เริ่มจากฝั่ง Host หรือ Serverโดยเราจะใช้ Ubuntu กันนะครับ ซึ่งตัว Cuckoo นั้นถูกเขียนด้วย Python ซึ่ง Fully support ด้วยการรันโดยใช้ Python version : 2.7 เท่านั้น
1. Requirements
เริ่มจากติดตั้งสิ่งต่างๆที่จะต้องใช้ตามด้านล่างครับครับ
ติดตั้ง Python libraries ที่จำเป็นต้องใช้
$ sudo apt-get install python python-pip python-dev libffi-dev libssl-dev
$ sudo apt-get install python-virtualenv python-setuptools
$ sudo apt-get install libjpeg-dev zlib1g-dev swig
ติดตั้ง MongoDB เพื่อใช้งาน Web interface (Django-based)
$ sudo apt-get install mongodb
ติดตั้ง PostgreSQL สำหรับใช้งานเป็น database
$ sudo apt-get install postgresql libpq-dev
และติดตั้ง Pydeep โดยจะต้องมี libfuzzy-dev ด้วยในการใช้ Pydeep (หากไม่มี git บนเครื่องให้ install เพิ่มเติมตามด้านล่างครับ)
$ sudo apt-get install git
$ sudo apt-get install ssdeep libfuzzy-dev
$ sudo -H pip install git+https://github.com/kbandla/pydeep.git
ติดตั้ง Virtualization Software
จากนั้นจะต้องติดตั้ง Virtualization Software สำหรับการใช้งานจัดการเครื่อง Guest ที่จะใช้สำหรับ Execute,Run ไฟล์ต่างๆ เพื่อให้ง่ายเราเลือกติดตั้ง Virtualbox ครับ
$ sudo apt-get install virtualbox
ติดตั้ง tcpdump
หลังจากนั้นติดตั้ง tcpdump สำหรับใช้ dump ดู network activity และหากเราใช้ default CWD directory จะต้อง Disable ตัว AppArmor เนื่องจากตัว CWD ที่เป็น dafault เนี่ยมันอยู่ที่ ~/.cuckoo ซึ่งเวลา ทำการ dump traffic เสร็จ จะไปเก็บไว้ภายใน ~/.cuckoo/storage/analyses/task_id/dump.pcap หาก Enable ตัว AppArmor ไว้ tcpdump จะไม่มีสิทธิ์เขียนไฟล์ลงไปที่ dot-directories ที่อยู่ใน Home ได้ ดังนั้นจะต้องทำการ Disable ตัว AppArmor เพิ่มเติม ตามคำสั่งด้านล่างครับ
$ sudo apt-get install tcpdump apparmor-utils
$ sudo aa-disable /usr/sbin/tcpdump
และ tcpdump นั้นต้องใช้สิทธิ์ root แต่เราไม่ต้องการให้ cuckoo นั้น Run ด้วย สิทธิ์ root ดังนั้นจะต้อง add group ให้มันครับ
$ sudo groupadd pcap
$ sudo usermod -a -G pcap cuckoo
$ sudo chgrp pcap /usr/sbin/tcpdump
$ sudo setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump
ติดตั้ง Volatility
หลังจากนั้นติดตั้ง Volatility ที่ใช้สำหรับการ Analyze ตัว Memory ที่ Dump มาครับ
$ sudo -H pip install git+https://github.com/volatilityfoundation/volatility.git
ติดตั้ง M2Crypto
ติดตั้ง M2crpto library ซึ่งต้องใช้ swig หากไม่มีก็ติดตั้งเพิ่มเติมตามคำสั่งด้านล่างครับ
$ sudo apt-get install swig
$ sudo pip install m2crypto
2. Installing Cuckoo
จากนั้นเราเริ่มทำการติดตั้ง Cuckoo กันครับ ซึ่งเราจะต้องใช้ User บนเครื่องสำหรับ รัน Cuckoo และ Virtualbox เป็น User เดียวกันเท่านั้นนะครับ เพื่อให้ Cuckoo สามารถไป Identify และ Launch ตัว Virsualbox ได้
เพิ่มให้ user นั้นเข้าไปที่ group vboxusers (เนื่องจากเราใช้ Virtualbox จึงเป็น group นี้) จากนั้นติดตั้ง cuckoo ตามคำสั่งด้านล่างครับ
$ sudo usermod -a -G vboxusers cuckoo
$ sudo pip install -U pip setuptools
$ sudo pip install -U cuckoo
3. Cuckoo Working Directory ( CWD )
เอาละ หลังจากที่เราติดตั้ง Cuckoo ไปเรียบร้อยแล้ว เรามาทำการพักกันสักนิด และมาทำความรู้จักกับ Cuckoo Working Directory ( CWD ) กันก่อน จริงๆแล้วมันคือ Directory ตัวที่เก็บไฟล์ต่างๆดังนี้
- Configuration
- Cuckoo Signatures
- Cuckoo Analyzer
- Cuckoo Agent
- Yara rules
- Cuckoo Storage (where analysis results go)
- และอื่นอีกมากมายๆ
โดย CWD จะถูกสร้างขึ้นมาอัตโนมัติ หลังจากที่เราใช้คำสั่ง cuckoo ครั้งแรก โดย default นั้นจะอยู่ที่ ~/.cuckoo
เรามาสร้างกันเลย
$ cuckoo -d
เราสามารถสร้างรวมถึงรัน cukcoo ได้หลายๆ CWD สำหรับใช้งาน configurations หลายๆแบบด้วยครับ วิธีทำก็ไม่ยาก แต่ผมขอข้ามไป ใช้ CWD ที่เป็น default อยู่ที่ ~/.cuckoo นะครับ หากใครสนใจสร้างและรันหลายๆ CWD สามารถอ่านเพิ่มเติมได้ที่ Cuckoo Working Directory ( CWD ) เลยครับ
จากนั้นอัพเดท Signatures จาก community ครับ
$ cuckoo community
4. Configuration
Configuration files ต่างๆของ Cuckoo จะอยู่ที่ $CWD/conf นะครับ ซึ่งของเราใช้ CWD เป็น default ก็จะอยู่ที่ /home/cuckoo/.cuckoo/conf ครับ
หลักๆจะประกอบไปด้วย Configuration files ที่เราจะต้อง SET ดังนี้
- cuckoo.conf
สำหรับ config ทั่วไป
# เลือกว่าเราจะใช้ virtual ตัวไหน
machinery = virtualbox[resultserver]
# ไอพีของเครื่อง host ที่จะใช้ run
ip = 192.168.56.1# พอร์ทของเครื่อง host ที่จะใช้ run
port = 2042
- auxiliary.conf
สำหรับ config ตัว auxiliary modules
# เปิด tcpdump
enabled = yes# path ของตัว tcpdump
tcpdump = /usr/sbin/tcpdump
- virtualbox.conf
สำหรับ config เกี่ยวกับ virtualization ที่เราจะใช้ในที่นี้คือ virtual box
# network interface ที่เราจะใช้กับ virtual box
interface = vboxnet0# ชื่อเครื่องที่เราจะใช้รันเป็น guest เราสามารถใช้ guest หลายเครื่องได้โดยใส่ comma
# เช่น cuckoo1,cuckoo2
machines = cuckoo1[cuckoo1]
# label ของเครื่อง Guest ใช้ใน virtualbox
label = cuckoo1# OS ของเครื่อง Guest ใช้ใน virtualbox
platform = windows# IP ของเครื่อง Guest ใช้ใน virtualbox
ip = 192.168.56.101# ระบุชื่อของ Snapshot สำหรับการ Restore ของเครื่อง Guest ใช้ใน virtualbox
snapshot = fresh
- reporting.conf
สำหรับการ config เกี่ยวกับ report หลังจาก analyze
[mongodb]
# enable mongodb สำหรับการใช้งาน web interface ของ cuckoo
enabled = yes
- memory.conf
สำหรับการทำ memory analysis นั้นจะใช้ volatility ซึ่งมี plugins เยอะมาก และบาง plugins นั้นใช้เวลาค่อนข้างนาน หากต้องการใช้จะต้องทำการ enable ดังนี้
processing.conf
[memory]
enabled = yes
cuckoo.conf
memory_dump = yes
memory.conf
สำหรับ guest_profile อื่นๆสามารถดูเพิ่มเติมได้ที่ Volatility ครับ โดยเราจะใช้ Guest ที่เป็น Windows 7 SP1 x86
จึงใช้เป็น Win7SP1x86
ครับ และควรกำหนดให้ลบ memdump ออกหลังจากทำงานเสร็จ เพื่อประหยัดพื้นที่บนเครื่องครับ และในไฟล์ config นี้เราสามารถเลือก enable/disable plugin ต่างๆของ volatility ได้ตามหัวข้อต่างๆเลยครับ เช่น malfind, pslist, dllist, modscan, netscan
# Basic settings
[basic]
# กำหนด profile ของเครื่อง guest สำหรับการใช้ volatility
guest_profile = Win7SP1x86# กำหนดให้ลบ mem ที่ได้ทำการ dump ออกหลังจากการใช้ volatility เสร็จ
delete_memdump = yes
5. Network Routing
เราจะใช้ host-only adapter สำหรับ guest ที่อยู่ใน virtualbox เพื่อแยก network ออกและใช้ iptables ในการสร้าง rules , nat สำหรับการ connection ตามคำสั่งด้านล่าง
สำหรับ interfaces ที่ใช้สำหรับออก internet นั้นจะต้องดูให้ดี ของผมเป็น ens33 ซึ่งถ้าของเพื่อนๆไม่เหมือนกันจะต้องเปลี่ยนด้วยครับ
$ vboxmanage hostonlyif create
$ vboxmanage hostonlyif ipconfig vboxnet0 --ip 192.168.56.1$ sudo iptables -t nat -A POSTROUTING -o ens33 -s 192.168.56.0/24 -j MASQUERADE
# Default drop.
$ sudo iptables -P FORWARD DROP
# Existing connections.
$ sudo iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
# Accept connections from vboxnet to the whole internet.
$ sudo iptables -A FORWARD -s 192.168.56.0/24 -j ACCEPT
# Internal traffic.
$ sudo iptables -A FORWARD -s 192.168.56.0/24 -d 192.168.56.0/24 -j ACCEPT
# Log stuff that reaches this point (could be noisy).
$ sudo iptables -A FORWARD -j LOG$ echo 1 | sudo tee -a /proc/sys/net/ipv4/ip_forward
$ sudo sysctl -w net.ipv4.ip_forward=1
ต้องการให้ iptables เป็น Permanent (แบบ Reboot แล้วใช้งานได้เหมือนเดิมไม่หาย)จะต้องลง iptables-persistent ตามนี้
# apt-get install iptables-persistent
ซึ่งหลังจากที่เรากำหนด rules สำหรับ iptables เสร็จ จะต้องใช้คำสั่งเพื่อบันทึก rules สำหรับ iptables ดังนี้
# sudo su root
# iptables-save > /etc/iptables/rules.v4
และหากเราต้องการให้ IP Forwarding เป็น Permanent (แบบ Reboot แล้วใช้งานได้เหมือนเดิมไม่หาย) จะต้องไปแก้ค่าที่ไฟล์ /etc/sysctl.conf ดังนี้
net.ipv4.ip_forward = 1
Installation — Preparing the guest
ต่อกันด้วยการสร้างเครื่อง guest ครับ โดยเราจะใช้ Windows7 32 bit ครับ เริ่มจาก
1. เปิด Virtual box ขึ้นมาด้วยคำสั่ง
$ virtualbox
2. สร้าง Virtual Machine สำหรับ Guest
โดยคลิกที่ new จากนั้น ใส่ Name เป็น cuckoo1
(ให้ตรงกับที่เราไป config cuckoo ไว้) และเลือก Version เป็น Windows 7 (32-bit)
3. ใส่ ISO สำหรับ Install windows
จากนั้น Next และแบ่งพื้นที่สร้าง Disk ให้เสร็จ จากนั้นให้ไปที่
Settings > Storage > Empty > Virtual Optical Disk File..
จากนั้นเลือกไฟล์ ISO สำหรับติดตั้ง Windows ตามภาพด้านล่าง
4. ตั้ง Network Adapter
ตั้ง Network Adapter โดยไปที่ แถบ Network และตั้งค่าดังนี้
Attached to : Host-only Adapter
Name : vboxnet0
จากนั้นกด OK และ Start เครื่อง Guest ขึ้นมา และติดตั้ง Windows ให้เรียบร้อย
5. ตั้ง IP, Subnet Mask, Gateway, DNS
เข้าไปที่
Control Panel\Network and Internet\Network Connections
และเลือก Local Area Connection > Properties > Internet Protocol Version 4 จากนั้น ตั้งค่าตามภาพด้านล่างครับ (ตามที่เราได้ config ไว้ใน cuckoo conf ครับ)
IP Adress : 192.168.56.101
Subnet mask : 255.255.255.0
Default gateway : 192.168.56.1
DNS : 8.8.8.8
จากนั้นเราลองทดสอบ Connection ดูครับ
6. ทำการติดตั้ง VirtualBox Guest Additions
ติดตั้ง VirtualBox Guest Additions บนเครื่อง Guest เพื่อที่จะสามารถถ่ายโอนไฟล์จากเครื่อง host ไปที่ guest ได้ ไปที่
Devices > Insert Guest Additions CD image…
จากนั้นจะมี Drive CD มา Mount ที่เครื่อง จากนั้นให้ทำการติดตั้งให้เรียบร้อยโดย ใช้ไฟล์ VBoxWindowsAdditions.exe
หลังจาก Install เรียบร้อยแล้วจะต้องทำการ Restart 1 รอบเพื่อให้สามารถใช้งานได้
7. ทำการติดตั้ง Python และ Pillow
ต้องเลือกใช้ Versions ของ Python และ Pillowให้ตรงกับ OS versions ที่ใช้ด้วย
โดยผมนั้นใช้ Windows 7 SP1 (32-bits) ดังนั้นผมจะใช้
Python : Windows x86 MSI Installer (2.7.0)
Pypill : Pillow-6.0.0.win32-py2.7.exe
8. ติดตั้ง Additional Software
ทำการติดตั้ง Additional Software ที่จะใช้สำหรับการ Execute, Run ไฟล์ต่างๆ เช่น
Browsers, PDF readers, Office suites หรือโปรแกรมอื่นๆที่จะใช้ในการเปิดไฟล์ และปิด Auto-Update ของโปรแกรมต่างๆด้วย
9. Turn off Firewall และ UAC
เข้าไปปิด Firewall ที่ :
Control Panel\System and Security\Windows Firewall\Customize Settings
และเข้าไปปิด UAC ที่ User Account Control Settings > Never notify
10. ติดตั้ง Agent บนเครื่อง Guest
โดย Path ของ Agent นั้นอยู่บนเครื่อง Host ใน $CWD/agent/ ซึ่งของเรานั้นจะเป็น
~/.cuckoo/agent
ให้ทำการ Copy agent ไปที่เครื่อง Guest โดยเราจะใช้ Shared Folder, Shared Clipboard หรือ Drag and drop ก็ได้ (ใช้ได้หลังจากลง VirtualBox Guest Additions) โดยตั้งเป็น Bidirectional
จากนั้น rename ไฟล์ agent.py เป็น agent.pyw เพื่อ Run แบบไม่ให้มี Console window ขึ้นมา จากนั้นทำการ Double-click เพื่อ Run ขึ้นมา
11. ทำ Snapshot เครื่อง Guest
ทำ Snapshot เครื่อง Guest โดยเลือกที่ Machine > Take Snapshot
ตั้งชื่อ Snapshot ให้เป็น fresh (ตาม config cuckoo)
จากนั้นปิด guest และเลือก Power off the machine และ Restore current snapshot ‘fresh’
Starting Cuckoo
หลังจากที่เราติดตั้งทั้ง Host และ Guest เสร็จหมดแล้ว มาเริ่มใช้งานกันเลยครับ
1. Start cuckoo
$ cuckoo -d
$ cuckoo web runserver
2. ใช้งาน Web interface
เข้าไปที่ http://localhost:8000 หรือ http://127.0.0.1:8000 เพื่อใช้งาน Web Interface จะได้หน้าตาประมาณนี้
3. Submit files
สามารถ Sumbit files ได้ที่หน้านี้ หรือจะกด Submit ที่ tab ด้านบนก็ได้ โดยหากเลือก Submit files โดยใช้ tab ด้านบนจะสามารถใช้เป็นค่า URL หรือ Hash ของไฟล์ได้ด้วย
โดยเราจะไปหา Malware มาลอง Submit กัน ผมจะใช้ wannacry (theZoo/malwares/Binaries/Ransomware.WannaCry)โดยใช้ Repository ของ theZoo ซึ่งเป็นแหล่งที่เก็บ Malware ไว้เยอะมากเราสามารถเอามา Analyze ได้เลย
ควรระวัง ห้ามพลาดไปทำให้มัน Execute หรือ Run นะครับบนเครื่องอื่นที่ไม่ใช่ Guest นะครับ (เขาอัด zip และใส่ password มาให้เบื้องต้นแล้ว)
หลังจากเราทำการ Submit file จะเข้าสู่หน้า กำหนด Options โดยจะแบ่งออกเป็น 3 panel หลักประกอบไปด้วย
- Global Advanced Options (ด้านซ้าย)
- File List (ตรงกลาง)
- Options ของไฟล์ ซึ่งเราสามารถ Set Options แยกกันได้ในแต่ละไฟล์(ด้านขวา)
หากเราใช้ FullMemory Dump จะใช้เวลาค่อนข้างสูง ซึ่งมันจะใช้ Plugins ตามที่เรา Config ไว้ใน memory.conf ในการ Analyze และ Generate ออกมาเป็น Report ให้เรา
4. Report
หลังจากเรา SET Options ต่างๆเสร็จเรียบร้อย ให้ไปที่ Analyze มันจะเริ่มทำงาน จะเข้าสู่ Running state
เราสามารถดูการทำงานของมันได้ที่หน้า Terminal ที่เรา Run : cuckoo -d ที่เป็น Verbose mode ไว้
หลังจากการ Analyze ทุกอย่างเสร็จสิ้น State จะเปลี่ยนเป็น reported และได้เป็น Report ออกมา
สามารถเข้าไปดูรายละเอียดได้ โดยจะมีออกมาเป็น Score ให้ด้วย โดย Score นั้นจะขึ้นอยู่กับว่า Match ตาม Signatures ได้มากน้อยเพียงใด
Signatures ที่พบ
Capture Screenshot หลังจากที่ได้ Execute,Run ไฟล์ และ Network Connection
Process Tree ทั้งหมดหลังจาก Execute,Run ไฟล์
และอื่นๆอีกมากมาย ลองเล่นดูครับบ
สุดท้าย
สำหรับบทความนี้ ก็จบเพียงเท่านี้ครับ สำหรับ Cuckoo นั้นมันช่วยในการ Analyze Malware แบบ Dynamic ซึ่งช่วยทำให้เราเห็นพฤติกรรมการทำงานต่างๆ และใช้เวลาในการ Analyze ค่อนข้างน้อยได้ผลเร็ว ทำให้สามารถ Action ได้เร็ว แต่ก็ไม่ได้หมายความว่าการที่ Sandbox Analyze ไม่พบความผิดปกติ อาจไม่เป็น Malware แต่ว่า Malware บางตัวนั้นมีความสามารถในการ หลบเลี่ยง Sandbox ได้ ซึ่งหากมันตรวจพบว่าเป็น Sandbox พฤติกรรมมันอาจจะเปลี่ยน (ไม่ทำพฤติกรรมที่เสี่ยงต่อการตรวจจับ) ดังนั้นเราไม่ควรที่จะใช้ Sandbox เป็นทุกๆอย่างของการ Analyze Malware นะครับ เราควรจะใช้หลายๆวิธีการ Analyze Malware เพื่อตรวจสอบให้แน่ใจ และสิ่งที่สำคัญที่สุดคือไม่หยุดที่จะเรียนรู้ครับ
หวังว่าเพื่อนๆคงจะสนุกกับการทำ Malware Analysis นะครับ หากผิดพลาดประการใดขออภัยด้วยครับ
Reference
https://cuckoo.sh/docs/index.html