banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận virus, trojan, spyware, worm... Các bước xây dựng một hệ thống phân tích malware tự động  XML
  [Document]   Các bước xây dựng một hệ thống phân tích malware tự động 07/11/2009 06:56:15 (+0700) | #1 | 197762
seamoun
Advisor

Joined: 04/01/2002 14:05:10
Messages: 357
Offline
[Profile] [PM]
Như các bạn đã biết, hiện nay có rất nhiều malware xuất hiện, do vậy với lượng malware ngày càng nhiều như vậy thì việc phân tích chúng cũng rất mất nhiều thời gian, chưa kể đến những malware phức tạp. Bài viết này với mong muốn giúp các bạn có thể hiểu sơ lược về hoạt động malware và cách thức xây dựng một hệ thống phân tích malware tự động như thế nào ? Theo ý kiến của seamoun thì không tham vọng xây dựng một hệ thống phân tích malware tự động mà có thể phân tích được tất cả malware xuất hiện, bởi vì malware hiện nay xuất hiện với nhiều hình thức khác nhau và hoạt động của chúng thì rất phức tạp (người phân tích soi còn không ra huống gì hệ thống tự động !!! smilie smilie ), thứ hai mà hệ thống có thể phân tích được tất cả các malware xuất hiện thì seamoun chắc nộp đơn xin nghỉ việc, vì mình chẳng có việc gì phải làm smilie smilie smilie smilie smilie smilie . Nhưng tại sao vẫn phát triển hệ thống phân tích malware tự động ? bởi vì hệ thống này sẽ giúp đỡ cho người phân tích bớt thời gian hơn cho những công đoạn mà người phân tích malware và cũng có cái nhìn tổng quát về những hành động, hành vi ban đầu của malware.

Ví dụ: Khi có một malware mới xuất hiện thì ban đầu để phân tích chúng thì phải chạy malware cho một môi trường độc lập (tức là môi trường khi mà malware thực hiện sẽ không gây hại gì cho hệ thống), môi trường như vậy người ta gọi là sandbox. Tiếp đến người phân tích sử dụng các công cụ phân tích sơ bộ rằng malware thực hiện những hành động gì khi chạy chúng (lưu registry key nào, tạo file gì mới trên hệ thống, thay đổi , tiêm nhiễm gì ....) sau đó sử dụng các công cụ như Ollydbg, IDA, ... để tiến hành phân tích code ... (ngồi đọc code và phân tích mấy con malware này chắc hacnho, mrro, ... các anh em khác trong HVA chắc rành hơn, còn seamoun nhìn thấy là hoa cả mắt smilie smilie ). Như vậy có một số hoạt động phân tích sơ bộ về malware lặp đi lặp lại trong quá trình phân tích malware thì có thể chuyển nó cho một hệ thống phân tích tự động trước khi người phân tích malware tiến hành phân tích sâu hơn.

Ý tưởng và triển khai như sau:
Sẽ có một máy Linux làm master, trên Linux sẽ thực hiện cài đặt một máy ảo (sử dụng VMWare) có cài đặt Windows XP (đây là môi trường để malware chạy và thực hiện phân tích). Linux và máy ảo chỉ kết nối Host-only, tức là chỉ có máy Linux và WMware nói chuyện được với nhau, để khi thực thi malware sẽ không làm ảnh hưởng đến các hệ thống khác. Trên máy Linux sẽ có một kịch bản shell được viết với mục đích thực hiện các phân tích ban đầu đối với malware (sẽ giải thích rõ hơn phần sau), tiếp đến sẽ thực hiện tự động bật VMware lên và đẩy malware vào môi trường VMWare, trên VMware sẽ có sẵn một số công cụ phân tích malware và thực hiện gọi script phân tích (sử dụng AutoIt Script) gọi các công cụ phân tích trên môi trường VMWare để tiến hành phân tích và tất cả các kết quả sau khi phân tích được xuất ra và gửi trở lại cho môi trường Linux và kết thúc quá trình phân tích.

Trên đây mình chỉ giới thiệu sơ bộ, chi tiết các bạn sẽ theo dõi phần sau đây:

I. Các bước xây dựng một Automatic Malware Ananlysis
I.1. Sử dụng một master script, script này sẽ chạy trên môi trường Linux và trên Linux có cài đặt sẵn WMWare có Windows XP SP2 (Sử dụng máy ảo này như một sandbox).

I.2. Trên Windows XP SP2 của máy ảo trong Linux nên chuẩn bị như sau:
Cấu hình IP Address tĩnh và để card mạng chỉ là Host-only
Tạo một thư mục chia sẻ VMWare để giao tiếp giữa Linux và WindowsXP
Đặt user và pass cho máy Windows XP
Firewall của Windows XP phải tắt
Windows XP Simple File Sharing nên tắt
Chuẩn bị công cụ SysInternal’s Process Monitor và RegShot, … có thể thêm công cụ phục vụ phân tích tùy thích.
Cài đặt AutoIT để cho kịch bản AutoIt có thể chạy được.


II. Triển khai ứng dụng
II.1. Cài đặt Backtrack trên hard disk
Sử dụng tiện ích ubiquity

II.2. Cài đặt VMWare Workstation trên Linux
Sử dụng phiên bản: VMware-Workstation-6.5.3-185404.i386.bundle
Số serial : MVDUJ-TF4DT-284DV-4W9Z7

II.3. Cấu hình network trên Linux và máy ảo Windows XP
Linux
eth0 ip: 192.168.1.234
vmnet1:192.168.32.1
Windows
Eth0 ip: 192.168.32.2
Gateway: 192.168.32.1

II.4. Cài đặt InetSim trên Linux
II.4.1. Giới thiệu
InetSim là một gói mà chứa các kịch bản Perl được sử dụng để mô phỏng các dịch vụ thông dụng như DNS, HTTP và FTP. Khi chạy, InetSim sẽ đợi những kết nối và log bất kỳ những gì mà nó nhận được trong định dạng log chuẩn, dễ đọc khi phân tích các kết nối ra ngoài của malware.

II.4.2. Cài đặt
Địa chỉ trang Web: http:/www.inetsim.org.
Xem yêu cầu cần thiết trước khi cài đặt InetSim: http://www.inetsim.org/requirements.html
Giải nén và cài đặt tại /usr/local/inetsim.
Tạo nhóm sử dụng cho InetSim
# groupadd inetsim
# ./setup.sh
Cấu hình
File cấu hình sẽ nằm tại thư mục sau: /usr/local/inetsim/conf/
Thiết lập hai tham số service_bind_address và dns_default_ip là địa chỉ của vmnet1.

II.5. Cài đặt Volatility Framework trên Linux
II.5.1. Giới thiệu
Để phục vụ cho việc Memory Analysis thì phải cần phải cài đặt Volatility Framework. Vì sao phải thực hiện Memory Analysis ? Bởi vì nhiều chương trình mã độc sử dụng packer để che dấu malware và làm khó khăn trong việc phân tích chúng. Tuy nhiên, packed malware phải unpacked trong bộ nhớ để thực thi. Bằng việc dumping một chương trình malware trong bộ nhớ, có thể kiểm tra nó mà không cần một packer.
Do chúng ta sử dụng máy ảo cho nên việc ngừng tạm thời hoạt động của máy ảo thì chúng ta có thể phân tích memory của máy ảo thông qua file có phần mở rộng là .vmem.

II.5.2. Cài đặt
Địa chỉ Volatility Framework: https://www.volatilesystems.com/default/volatility

II.6. Download PEiD và WinExe cho Linux
PeiD
Địa chỉ: http://blog.didierstevens.com/
WinExe
winexe thực hiện giống chức năng của chương trình psexec trên Windows, cho phép thực hiện lệnh từ xa.
Địa chỉ: http://eol.ovh.org/winexe/

II.7. Cài đặt AutoIt, Regshot, TCPView trên Windows
Cài đặt AutoIt
Địa chỉ: http://www.autoitscript.com/autoit3/
Cài đặt Regshot
Địa chỉ: http://sourceforge.net/projects/regshot
Cài đặt TCPView
Địa chỉ: http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx
Lưu ý: công cụ Regshot và TCPView được tải về và cài đặt tại cùng một thư mục sau: c:\tools\
Hiện tại demo chỉ hai công cụ, có thể tích hợp nhiều công cụ khác và khi đó chỉ cần thêm kịch bản chạy trong AutoIt.


III. Kịch bản trên Linux (analyze.sh)
III.1. Giải thích biến khởi tạo
Code:
Tên biến	Mục dích
ANALYSIS_DIR	Thư mục để chứa các report về malware, mỗi thư mục cấp dưới với md5 của malware là thư mục report về malware đã phân tích.
SHARED_FOLDER	Thư mực sử dụng để chia sẻ malware cần phân tích giữa mỗi trường Linux và Windows. Malware sẽ được copy đến đây và từ đây sẽ map sang môi trường Windows.
INETSIM_DIR	Thư mục cài đặt InetSim
VM_LOAD_TIMEOUT	Biến sử dụng để định thời gian load của máy ảo, tùy thuộc vào khả năng load của máy ảo có thể tăng hoặc giảm thời gian timeout, đơn vị thời gian là giây
MALWARE_RUNTIME	Là thời gian cho phép malware sẽ thực hiện trên máy ảo, đơn vị tính là giây
TIMEOUT	Số lượng thời gian mà script sẽ đợi cho việc dynamic analysis hoàn tất
…	Một số biến khác sẽ rõ trong quá trình giải thích chi tiết kịch bản.


III.2. Giải thích chi tiết kịch bản
III.2.1. Giải thích một số đoạn kịch bản ban đầu
Code:
#Kiểm tra nếu như đối số 1 rỗng (tức không chỉ định malware cần phân tích) hoặc file đó không tồn tại và không đọc được thì thông báo và thoát
if [ ! -n "$1" -o ! -r "$1" ]
then
	echo "Usage: 'basename $0' executable"
	exit
fi

if [ ! -d ${SHARED_FOLDER} ]
then
	mkdir -p ${SHARED_FOLDER}
fi

MALWARE="$1"
MD5=`md5sum ${MALWARE} | awk '{print $1}'`
# Malware sẽ được đặt trong thư mục $ANALYSIS_DIR/$MD5 của nó.
if [ -d ${ANALYSIS_DIR}/${MD5} ] ; then
	echo "${ANALYSIS_DIR}/${MD5} already exists. Exiting."
exit
fi
OUTDIR="${ANALYSIS_DIR}/${MD5}"
echo ${MALWARE} ${MD5} >> ${ANALYSIS_DIR}/records.txt
echo `date +"[%F %T]"` Starting analysis on ${MALWARE}.
echo `date +"[%F %T]"` Results will be placed in ${OUTDIR}
echo
mkdir ${OUTDIR}
REPORT=${OUTDIR}/${REPORT_NAME}


III.2.2. Giải thích phần Static Analysis
Trong kịch bản sử dụng dịch vụ của Team Cymru Hash Database. Ý nghĩa của dịch vụ này là gửi MD5 của malware cần phần tích đến dịch vụ và dịch vụ sẽ phản hồi lại: nếu như malware đó được được phát hiện thì nó sẽ hiển thị ngày giờ mà dịch vụ cập nhật và phần trăm phần mềm diệt virus diệt được nó.
Chi tiết về dịch vụ này có thể xem thêm tại:
http://www.team-cymru.org/Services/MHR/
Code:
# Static Analysis
echo -e "Analysis of ${MALWARE}\n" > ${REPORT}
echo "MD5 Hash: ${MD5}" >> ${REPORT}
echo "Team Cymru Hash Database:" >> ${REPORT}
whois -h hash.cymru.com ${MD5} >> ${REPORT}
# grab both ASCII and UNIcode strings from the sample
echo `date +"[%F %T]"` Running strings.
(strings -a -t x ${MALWARE}; strings -a -e l -t x ${MALWARE}) \
| sort > ${OUTDIR}/strings.txt
# run pecheck.py
echo `date +"[%F %T]"` Running pecheck.py.
python pecheck.py -d ${PEID_DB} ${MALWARE} > ${OUTDIR}/pecheck.txt


Tiếp theo là thực hiện grab các ASCII và UNION string có trong malware. Trong file thực thi của malware khi chúng ta thu thập các string này có thể giúp ích có một số thông tin về malware như : có thể địa chỉ url mà malware có thể kết nối đến, các tài nguyên mà malware lấy, … Tuy nhiên việc thu thập này chỉ là phần phụ, nhỏ bởi hầu như các malware hiện nay đều được packed, do vậy string sẽ xuất hiện dưới dạng string không tường minh.
Đoạn mã thực hiện python pecheck.py, pecheck.py là một chương trình Python được viết bởi Didier Stevens để xuất thông tin PE header từ malware. Thông tin này sẽ rất hữu ích bởi vì nó cho biết malware được biên dịch khi nào, các phân đoạn thực thi và các hàm được import vào. Hơn nữa nó còn so sánh với PeiD database để biết được malware được pack bởi loại packer nào.

III.2.3. Khởi động InetSim
Code:
echo `date +"[%F %T]"` Starting InetSim.
CWD=`pwd`
mkdir -p ${OUTDIR}/inetsim
cd ${INETSIM_DIR}
sudo ./inetsim --session inetsim --config ${INETSIM_DIR}/conf/inetsim.conf \
--log-dir ${OUTDIR}/inetsim --report-dir ${OUTDIR} > /dev/null & cd ${CWD}


InetSim phải được chạy dưới quyền root, do vậy sử dụng lệnh sudo. Và ý nghĩa của các tham số như sau:
-session: chỉ định tên cho phiên làm việc.
-config: chỉ định nơi cấu hình được nạp.
-log-dir: chỉ định nơi log.
-report-dir: chỉ định nơi xuất ra report.
Sẽ có ba file log được tạo ra đó là debug.log, service.log và main.log. Ý nghĩa của main.log chỉ đề cập đến hoạt động của InetSim (những vấn đề liên quan đến hoạt động của InetSim). Phần chúng ta quan tâm đó là phần mà malware kết nối ra ngoài sẽ được lưu tại service.log.

III.2.4. Khởi động Tcpdump

Code:
echo `date +"[%F %T]"` Starting tcpdump.
sudo tcpdump -i vmnet1 -n -s 0 -w ${OUTDIR}/tcpdump.pcap &
TCPPID=`jobs -l | grep "sudo tcpdump" | awk '{ print $2 }'`


Tác dụng của TCPDump là một sniffer trên Linux, sử dụng nó để quan sát và ghi lại những hoạt động trao đổi của malware với môi trường ngoài, mà ở đây là Linux, do ta cấu hình Linux và Windows XP là Host-only, nên ta thực hiện sniff trên card vmnet1.

III.2.5. Khởi động VMWare
Code:
# Start up VMWare
# First we revert to our base snapshot
vmrun revertToSnapshot "/root/vmware/MalwareAnalysis/sandbox.vmx" base
# Then we start VMWare running
echo `date +"[%F %T]"` Starting VMWare.
vmrun start "/root/vmware/MalwareAnalysis/sandbox.vmx"
sleep ${VM_LOAD_TIMEOUT}
# Move the malware over to the sandbox
cp ${MALWARE} ${SHARED_FOLDER}/malware.exe
# Set up the share and execute the AutoIT script
echo `date +"[%F %T]"` Setting up network share.
winexe -U WORKGROUP/analysis%analysis --interactive=1 --system //192.168.32.2 'cmd /c net use z: \\192.168.32.1\malware'
echo `date +"[%F %T]"` Starting dynamic analysis script.
winexe -U WORKGROUP/analysis%analysis --interactive=1 --system //192.168.32.2 "c:\progra~1\autoit3\autoit3.exe c:\tools\scripts\analyze.au3  z:\malware.exe z:\ ${MALWARE_RUNTIME}"
sleep ${MALWARE_RUNTIME}
LOOP=0
echo `date +"[%F %T]"` Starting check for finished file.
# Check for finished file - if not there, wait
while [ ! -f ${SHARED_FOLDER}/_analysis_finished ] ; do
	echo Checking...
	sleep ${TIMEOUT}
	LOOP=$(( $LOOP + 1 ))
	if [ ${LOOP} -gt 5 ] ; then
		echo `date +"[%F %T]"` ERROR: Sandbox is hung.
		break;
	fi
done
# Remove the share
echo `date +"[%F %T]"` Removing network share.
winexe -U WORKGROUP/analysis%analysis --interactive=1 --system //192.168.32.2 'cmd /c net use z: /delete'
# Stop the VMWare Image
echo `date +"[%F %T]"` Suspending VMWare.
vmrun suspend "/root/vmware/MalwareAnalysis/sandbox.vmx"


1) Trước khi thực hiện chạy kịch bản ta cần phải Take SnapShot VMWare 1 lần và đặt tên nó là base.

2) vmware revertToSnapShot "/root/vmware/MalwareAnalysis/sandbox.vmx" base sẽ đưa VMWare về trạng thái SnapShot mà chúng ta đã lưu. Cần phải làm như vậy bởi vì VMWare phải luôn đặt trong tình trạng chưa có bất kỳ malware nào thực hiện trước khi chép malware vào máy ảo phân tích.

3) Khởi động VMWare và copy malware cần phân tích vào thư mục shared trên Linux.

4) Sau khi khởi động xong máy ảo Windows XP SP2 (trước đó chúng ta đã tạo một user và pass là analysis) chúng ta sẽ thực hiện map thư mục chia sẻ trên Linux vào máy Windows XP. Lưu ý nếu trên Linux không thể chia sẻ được có thể do chưa cài dịch vụ Samba, do vậy cần phải cài dịch vụ Samba để Linux có thể chia sẻ file.

5) Khởi động script analysis.au3 trên Windows XP để chạy kịch bản phân tích malware tự động trên Windows XP.

6) Chờ đợi kết quả từ máy ảo Windows XP, việc chờ đợi sẽ kết thúc khi máy ảo Windows XP xuất file _analysis_finished.

7) Sau khi kết thúc kịch bản analysis.au3 trên Windows XP thì sẽ gỡ bỏ map ổ đĩa trên Windows XP và suppend máy ảo.

III.2.6. Thực hiện Volatility trên Memory
Code:
# Run Volatility on memory
echo `date +"[%F %T]"` Starting Volatility psscan2.
python /usr/local/src/Volatility-1.3_Beta/volatility psscan2 -f "/root/vmware/MalwareAnalysis/sandbox.vmem" \
> ${OUTDIR}/volatility-psscan.txt
echo `date +"[%F %T]"` Starting Volatility connscan2.
python /usr/local/src/Volatility-1.3_Beta/volatility connscan2 -f "/root/vmware/MalwareAnalysis/sandbox.vmem" \
> ${OUTDIR}/volatility-connscan2.txt
echo `date +"[%F %T]"` Starting Volatility dlllist.
python /usr/local/src/Volatility-1.3_Beta/volatility dlllist -f "/root/vmware/MalwareAnalysis/sandbox.vmem" \
> ${OUTDIR}/volatility-dlllist.txt
echo `date +"[%F %T]"` Starting Volatility modscan2.
python /usr/local/src/Volatility-1.3_Beta/volatility modscan2 -f "/root/vmware/MalwareAnalysis/sandbox.vmem" \
> ${OUTDIR}/volatility-modscan2.txt
# Move Results
echo `date +"[%F %T]"` Cleaning up.
mv ${SHARED_FOLDER}/* ${OUTDIR}


1) Sẽ thực hiện psscan2 module. Điều này rất hữu ích để phân tích các rootkit thường ẩn các tiến trình của malware trên hệ thống. Bằng việc truy vấn trực tiếp vào các danh sách tiến trình từ bộ nhớ, rootkit không thể ẩn tiến trình của chúng và người phân tích có thể quan sát một cách trực quan các tiến trình chạy trên hệ thống đã nhiễm malware.

2) Tiếp đến sẽ thực hiện truy vấn các kết nối trên hệ thống bị nhiễm với connscan2 module. Bởi vì những kết nối cũng có thể ẩn bởi rootkit, do vậy truy vấn trực tiếp lấy những kết nối mạng từ bộ nhớ sẽ cho phép người phân tích thấy được những kết nối trong hệ thống bị nhiễm malware.

3) Cuối cùng sẽ thực hiện xem thử những dll nào được nạp trong quá trình malware thực thi bằng cách sử dụng modscan2, bởi vì malware có thể tự nó nhiễm qua một tiến trình khác như là một DLL hoặc tự nó nạp, …

III.2.7. Kịch bản kết thúc quá trình phân tích
Code:
# Stop tcpdump. Since its running as root we need to sudo to kill it
if [ ! -z ${TCPPID} ]; then
	sudo kill ${TCPPID}
fi
# Stop InetSim
if [ -f /var/run/inetsim.pid ] ; then
	INETPID=`cat /var/run/inetsim.pid`
	sudo kill ${INETPID} > /dev/null
	wait ${INETPID}
fi
# check to see if malware.exe is in the outdir - if so, delete it
if [ -f ${OUTDIR}/malware.exe ]; then
	rm -f ${OUTDIR}/malware.exe
fi
# Reset permissions on the files
sudo chown -R ${WHOAMI} ${OUTDIR}
echo `date +"[%F %T]"` Analysis finished.


IV. Kịch bản trên Windows
Code:
; AutoIT Windows Malware Automation Script
Func startRegshot($logDir)
; Start up regshot as user analysis
RunAs("analysis","","analysis",0,"c:\tools\regshot\regshot.exe")
WinActivate("Regshot")
WinWaitActive("Regshot")
; set to plain text
ControlClick("Regshot","Plain &TXT","Button7")
; set scan dir info
ControlClick("Regshot","&Scan dir1","Button9")
ControlClick("Regshot","",1027)
send("{HOME}")
send("{LSHIFT}+{END}")
send("c:\")
; set output dir
ControlClick("Regshot","",1026)
send("{HOME}")
send("{LSHIFT}+{END}")
send($logDir)
; set the comment
ControlClick("Regshot","",1025)
send("regshot")
; Start the scan
ControlClick("Regshot","&1st shot","Button1")
send("s")
; wait until the scan is done or 30 seconds
WinWaitActive("Regshot","Dirs:",30)
EndFunc
Func stopRegshot()
; WinWaitActive("Regshot")
WinSetState("Regshot","",@SW_RESTORE)
WinActivate("Regshot")
; stop the scan and run the second shot
WinWaitActive("Regshot")
ControlClick("Regshot","&2nd shot","Button2")
send("s")
; now compare
WinActivate("Regshot")
WinWaitActive("Regshot","c&Ompare",10)
send("o")
; Wait for notepad to pop up
WinWait("[CLASS:Notepad]", "")
WinActivate("[CLASS:Notepad]", "")
WinClose("[CLASS:Notepad]", "")
; Close Regshot
WinActivate("Regshot")
WinClose("Regshot")
EndFunc
Func startProcmon()
; Start ProcMon
; Run Procmon as user analysis
RunAs("analysis","","analysis",0,"c:\tools\procmon\procmon.exe")
WinWaitActive("Process Monitor - Sysinternals: www.sysinternals.com")
EndFunc
Func stopProcmon($logDir)
; stop procmon
WinActivate("Process Monitor")
; stop procmon with a CTRL+e and wait for it to finish
Send("^e")
WinWaitActive("Process Monitor - Sysinternals: www.sysinternals.com")
; save the captured data with CTRL+s
Send("^s")
WinActivate("Save To File","Events to save:")
ControlSetText("Save To File","Events to save:",1027,$logDir & "procmon.csv")
; save the output in CSV format
ControlClick("Save To File","Events to save:","Button7")
ControlClick("Save To File","Events to save:",1)
; If the file already exists, overwrite it
if WinWaitActive("Process Monitor","&Yes",1) Then
ControlClick("Process Monitor","&Yes","Button1")
EndIf
WinClose("Process Monitor - Sysinternals: www.sysinternals.com")
EndFunc
; Main Function
; There are 2 options required – make sure they are there
If $CmdLine[0] <> 3 Then
msgbox(4096,"ERROR","Usage: malware.exe dir_to_log pause_time",10)
Exit
EndIf
; The malware to execute is the 1st parameter
$malware=$CmdLine[1]
$runmalware="c:\tools\malware\malware.exe"
; The dir to log to is the 2nd parameter
$logdir = $CmdLine[2]
$saveresult=$logdir
$logdir="c:\tools\malware\"
; The time to pause (in seconds) is the last parameter
$pauseTime = $CmdLine[3]
; start our monitoring tools
filecopy($malware,$runmalware,1)
startRegshot($logdir)
startProcmon()
WinMinimizeAll()
; run the malware as user analysis
RunAs("analysis","","analysis",0,$runmalware)
; wait – note time is in milliseconds
sleep($pauseTime * 1000)
; stop our monitoring tools and save the results
stopProcmon($logdir)
stopRegshot()
FileDelete("z:\*.*")
filecopy("c:\tools\malware\*.*","z:\*.*",1)
; let them know we're finished by creating a FileChangeDir
$file=FileOpen($logdir & "_analysis_finished",10)
FileClose($file)
FileCopy($logdir & "_analysis_finished","z:\_analysis_finished",1)


--------------------------------------------------------------------------------------
From quanta: Bài viết công phu quá. Mình xin phép được enter mấy phát cho dễ đọc.
--vickigroup.com--
[Up] [Print Copy]
  [Document]   Các bước xây dựng một hệ thống phân tích malware tự động 07/11/2009 07:04:25 (+0700) | #2 | 197766
seamoun
Advisor

Joined: 04/01/2002 14:05:10
Messages: 357
Offline
[Profile] [PM]
V. Kết luận
Trong hệ thống chỉ sử dụng hai công cụ phân tích đơn giản là regshot và TCPView, do vậy để hệ thống có thể phân tích tốt hơn và sâu hơn thì sẽ sử dụng những công cụ khác, với nhiều tính tằng hơn và thay đổi kịch bản AutoIt cho tương ứng những công cụ thêm vào.

VI. Video hệ thống đã thực hiện
seamoun đã xây dựng xong và chạy thử nghiệm các bạn có thể download tại đây

Bài viết có tham khảo và sửa đổi kịch bản của tác giả Tyler Hudak
--vickigroup.com--
[Up] [Print Copy]
  [Document]   Các bước xây dựng một hệ thống phân tích malware tự động 08/11/2009 14:44:09 (+0700) | #3 | 197850
FaL
Moderator

Joined: 14/04/2006 09:31:18
Messages: 1232
Offline
[Profile] [PM]
Anh seamoun ơi, file download ko được.
Hãy giữ một trái tim nóng và một cái đầu lạnh
[Up] [Print Copy]
  [Document]   Các bước xây dựng một hệ thống phân tích malware tự động 08/11/2009 22:13:41 (+0700) | #4 | 197854
seamoun
Advisor

Joined: 04/01/2002 14:05:10
Messages: 357
Offline
[Profile] [PM]

FaL wrote:
Anh seamoun ơi, file download ko được. 

Chắc HVA upload có vấn đề, seamoun upload lên đây vậy

http://hotfile.com/dl/16932930/7cfb158/demo.zip.html
--vickigroup.com--
[Up] [Print Copy]
  [Document]   Các bước xây dựng một hệ thống phân tích malware tự động 28/01/2010 16:07:38 (+0700) | #5 | 204075
[Avatar]
mjning
Member

[Minus]    0    [Plus]
Joined: 14/07/2008 22:12:29
Messages: 61
Offline
[Profile] [PM]
link hotfile cũng die rồi anh !
http://nghiadoi.com
[Up] [Print Copy]
  [Document]   Các bước xây dựng một hệ thống phân tích malware tự động 30/01/2010 13:50:00 (+0700) | #6 | 204202
seamoun
Advisor

Joined: 04/01/2002 14:05:10
Messages: 357
Offline
[Profile] [PM]
Đã upload lại ...... smilie smilie smilie
--vickigroup.com--
[Up] [Print Copy]
  [Document]   Các bước xây dựng một hệ thống phân tích malware tự động 29/07/2010 18:56:03 (+0700) | #7 | 216799
huyannet
Member

[Minus]    0    [Plus]
Joined: 21/07/2008 00:42:51
Messages: 83
Offline
[Profile] [PM]
Ý tưởng của bác seamoun có vẻ vận dụng rất nhiều kiến thức,
Cho mình thắc mắc 1 tí: sao không làm 1 hệ thống ngăn chặn Malware mà phải là "Phân tích Malware"
Sau khi đã phân tích thành công thì bước tiếp theo phải như thế nào để diệt malware,
Bằng cách nào để diệt Malware an toàn mà không làm ảnh hưởng đến hệ thống (tự động)?
Nếu như malware nhiễm tràn lan trong LAN thì làm sao để diệt hết (tự động)?

Thật ra mình cũng có 1 ý tưởng tương tự, đó là "Phòng chống virus tự động", tức là ngăn chặn ngay từ đầu.
Mình đang học nên không có nhiều thời gian, hi vọng các cao thủ nào có cùng ý tưởng thì cùng nhau chia sẻ
Cám ơn bài viết của bác seamoun.

Bác có nick yahoo không, nick của mình nè: taplamtrietgia@yahoo.com
Có gì anh em cùng thảo luận nhé.
[Up] [Print Copy]
  [Document]   Các bước xây dựng một hệ thống phân tích malware tự động 29/05/2011 18:51:45 (+0700) | #8 | 238162
[Avatar]
Pham Van Duong_T
Member

[Minus]    0    [Plus]
Joined: 27/05/2011 04:53:26
Messages: 1
Offline
[Profile] [PM]
Đọc bài Anh seamoun biết anh pro tới mức nào.
Em cũng làm bên hệ thống mà thấy mình cùi quá.
Cái hệ thống bên Em bị nhiễm malware quá trời, mà Em đang loay hoay tìm cách diệt đồng thời em cũng muốn xây dựng một hệ thống phân tích malware.
Nhưng Em đang chuối quá, đồng thời lại không biết về linux.
Nên không biết bắt đầu như thế nào?
Anh có thể cho Em cái advice
[Up] [Print Copy]
  [Document]   Các bước xây dựng một hệ thống phân tích malware tự động 10/06/2011 19:51:06 (+0700) | #9 | 240197
snapax
Member

[Minus]    0    [Plus]
Joined: 09/06/2011 20:43:57
Messages: 4
Offline
[Profile] [PM]
Bài viết của bác seamoun rất hay. Sử dụng VMWare và các tool sẵn có để phân tích tự động. Cảm ơn bác nhiều.
@huyannet: thường thì virus luôn luôn có trước, đây là nhu cầu cấp thiết cho việc xử lý virus thôi. Có log của nó rồi thì dựa vào đó mà kết luận có là virus hay không và đưa ra hàm diệt.

Hiện tại em cũng đang nghiên cứu cơ chế của sandbox, ở đây không sử dụng VMware mà sẽ phân tích ngay trên máy thật, nhưng cũng rất là vất vả. Tiếp đó nếu có thể được chúng ta sẽ xây dựng thêm bộ học máy để dựa vào log mà kết luận có phải là virus hay không, lúc đó đúng là sướng thật, smilie)
[Up] [Print Copy]
  [Document]   Các bước xây dựng một hệ thống phân tích malware tự động 11/06/2011 08:45:49 (+0700) | #10 | 240274
[Avatar]
chiro8x
Member

[Minus]    0    [Plus]
Joined: 26/09/2010 00:38:37
Messages: 661
Location: /home/chiro8x
Offline
[Profile] [PM] [Yahoo!]
Cách của bạn làm hay nhưng lại khó có thể ứng dụng vào thực tế, và trên thực tế là không phần mềm diệt virus này sử dụng cách này, vì hiệu suất quá thấp (tớ chưa đề cập tới chất lượng). Tại sao không nghĩ tới việc hook các DLL và tạo nên lớp ảo che lấp (override) các API mà hệ thống cung cấp để tiến hành phân tích hành vi của malware ?.
while(1){}
[Up] [Print Copy]
  [Document]   Các bước xây dựng một hệ thống phân tích malware tự động 11/06/2011 09:36:08 (+0700) | #11 | 240285
TQN
Elite Member

[Minus]    0    [Plus]
Joined: 29/06/2006 22:28:01
Messages: 888
Location: Biết làm chi ?
Offline
[Profile] [PM] [WWW] [Yahoo!]
Các sanboxies đã làm hết các việc này rồi, đừng phát minh lại cái bánh xe.
[Up] [Print Copy]
  [Document]   Các bước xây dựng một hệ thống phân tích malware tự động 12/06/2011 20:15:20 (+0700) | #12 | 240484
snapax
Member

[Minus]    0    [Plus]
Joined: 09/06/2011 20:43:57
Messages: 4
Offline
[Profile] [PM]

TQN wrote:
Các sanboxies đã làm hết các việc này rồi, đừng phát minh lại cái bánh xe. 

Nhưng nếu Sandboxies chịu bán công nghệ của mình thì chúng ta sẽ không phải làm lại "cái bánh xe"!
[Up] [Print Copy]
  [Document]   Các bước xây dựng một hệ thống phân tích malware tự động 19/06/2011 16:41:39 (+0700) | #13 | 241407
vanhao1992
Member

[Minus]    0    [Plus]
Joined: 16/06/2011 08:47:56
Messages: 1
Offline
[Profile] [PM]
This post is set hidden by a moderator because it may be violating forum's guideline or it needs modification before setting visible to members.
[Up] [Print Copy]
  [Document]   Các bước xây dựng một hệ thống phân tích malware tự động 07/09/2011 18:50:44 (+0700) | #14 | 246615
huyjk777
Member

[Minus]    0    [Plus]
Joined: 24/08/2011 02:51:40
Messages: 5
Offline
[Profile] [PM]
This post is set hidden by a moderator because it may be violating forum's guideline or it needs modification before setting visible to members.
[Up] [Print Copy]
  [Document]   Các bước xây dựng một hệ thống phân tích malware tự động 07/09/2011 18:56:30 (+0700) | #15 | 246616
TQN
Elite Member

[Minus]    0    [Plus]
Joined: 29/06/2006 22:28:01
Messages: 888
Location: Biết làm chi ?
Offline
[Profile] [PM] [WWW] [Yahoo!]
Em thì sợ mấy hệ thống phân tích tự động này lắm rồi. Bao nhiêu mẫu mèo què của stl coder up lên, đi qua các hệ thống dạng này, đều 99% là clean hết. Phải mail, năn nỉ, thuyết phục thì tụi AVs đó mới manual analysis.
Không có máy móc nào đủ thông minh bằng con người cả, nhưng con người cũng không "trâu bò" bằng máy móc được. Nên phải kết hợp cả hai !
[Up] [Print Copy]
  [Document]   Các bước xây dựng một hệ thống phân tích malware tự động 08/09/2011 00:16:28 (+0700) | #16 | 246623
kutruoi
Locked

[Minus]    0    [Plus]
Joined: 15/08/2011 12:47:31
Messages: 22
Offline
[Profile] [PM]

a) thank bác seamoun rất cụ thể, rõ ràng và dễ hiểu.
b) đồng ý với anh TQN " fai? kết hợp cả hai" chứ nếu dùng người mãi thì sinh ra máy tính toán hộ làm gì ? cũng như vậy malware được viết bằng máy+người. phân tích hay huỷ diệt nó cũng nên làm bằng người + máy mà .

chụt chịt smilie
mời bạn ghé xem site này hay quá ! http://danlambaovn.blogspot.com
[Up] [Print Copy]
  [Document]   Các bước xây dựng một hệ thống phân tích malware tự động 18/02/2012 00:19:51 (+0700) | #17 | 254311
[Avatar]
chiro8x
Member

[Minus]    0    [Plus]
Joined: 26/09/2010 00:38:37
Messages: 661
Location: /home/chiro8x
Offline
[Profile] [PM] [Yahoo!]

seamoun wrote:

Số serial : MVDUJ-TF4DT-284DV-4W9Z7
 

Em thấy đoạn này không nên.
while(1){}
[Up] [Print Copy]
  [Document]   Các bước xây dựng một hệ thống phân tích malware tự động 05/07/2012 09:13:27 (+0700) | #18 | 266186
chiplin
Member

[Minus]    0    [Plus]
Joined: 20/05/2011 05:19:40
Messages: 9
Offline
[Profile] [PM]
anh seamuon ơi cho em hỏi xây dựng hệ thống cuckoo trên môi trường centos để phân tích malware thì xây dựng như thế nào vậy anh seamuon,mong anh phản hồi sớm cho em.
[Up] [Print Copy]
  [Document]   Các bước xây dựng một hệ thống phân tích malware tự động 10/11/2012 18:31:52 (+0700) | #19 | 270877
freelance
Member

[Minus]    0    [Plus]
Joined: 09/11/2012 21:48:34
Messages: 1
Location: HVA - Hacker
Offline
[Profile] [PM] [Email] [WWW] [Yahoo!] [MSN] [ICQ]
This post is set hidden by a moderator because it may be violating forum's guideline or it needs modification before setting visible to members.
FreeLanCe - Anhvietcr - Lão Đại
[Is me]
[Up] [Print Copy]
  [Document]   Các bước xây dựng một hệ thống phân tích malware tự động 15/03/2013 20:19:48 (+0700) | #20 | 274109
linuxdoanpham
Member

[Minus]    0    [Plus]
Joined: 15/08/2011 20:32:47
Messages: 5
Offline
[Profile] [PM]
thank đại ka nhiều
[Up] [Print Copy]
  [Document]   Các bước xây dựng một hệ thống phân tích malware tự động 01/12/2013 12:25:22 (+0700) | #21 | 279120
Tinyhacker
Member

[Minus]    0    [Plus]
Joined: 24/11/2013 23:30:25
Messages: 1
Location: Hồ Chí Minh
Offline
[Profile] [PM]
Thật là một bài công phu không thể nào chê dc. Tks chủ topic.
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|