Tải bản đầy đủ (.pdf) (12 trang)

Dynamic (behavior) analysis <>

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (570.34 KB, 12 trang )

Dynamic (behavior) analysis
Phân tích động là phân tích các hành động của mã độc sau khi được thực thi.
Là bước tiếp theo sau phân tích động trong q trình phân tích mã độc. Bước
này thường được thực hiện sau quá trình phân tích tĩnh. Sử dụng kĩ thuật này
có thể bỏ qua các bước unpacked, unobfuscated
Phân tích tĩnh giúp chúng ta làm rõ các nghi ngờ trong quá trình phân tích tĩnh,
xác định xem các hành vi của mã độc có gây nguy hiểm hay khơng
Tuy vậy, chúng ta nên thực thi việc phân tích động sau khi đã có đầy đủ các thơng
tin từ q trình phân tích tĩnh, đồng thời cần thực hiện phân tích động trong các
mơi trường thích hợp để đảm bảo khơng gây ra các ảnh hưởng tiêu cực tới mơi
trường thực.
Hạn chế:
- Phân tích động trong môi trường cũng như điều kiện không hợp lí một số
chức năng của mã độc khơng được thực hiện đúng
- Một số mã độc nhân ra được nó đang chạy trên máy ảo nên nó khơng thực
thi
Vì vậy cần kết hợp phân tích tĩnh với phân tích động, tạo ra các mơi trường điều
kiện hợp lí để phân tích đạt kết quả tốt nhất

Sử dụng Sanbox
Có tương đối nhiều các phần mềm cho pháp phân tích động mức cơ bản và hầu
hết đều sử dụng công nghệ sandbox. Đây là cơng nghệ cho phép chạy các chương
trình trong một mơi trường thực thi an tồn, khơng sợ bị ảnh hưởng tới môi trường
thực tế. Sandbox hội tụ đầy đủ các yếu tố, kể cả kết nối mạng để chương trình
được chạy trong một mơi trường tương tự mơi trường thực tế.
Sử dụng sandbox để phân tích mã độc
Có rất nhiều sanbox hỗ trợ phân tích mã độc: Cuckoo Sandbox, Norman
SandBox, GFI Sandbox, Anubis, Joe Sandbox, ThreatExpert, BitLaze, Comodo
Instant Malware Analysis. Trong đó Cuckoo Sandbox, Norman SandBox và GFI
Sandbox là các công cụ phổ biến nhất được các chuyên gia sử dụng.



Đặc điểm của các Sandbox này là kết quả đầu ra được phân chia chi tiết theo từng
nhóm thơng tin và rất dễ theo dõi. Một số sandbox cịn tích hợp cả việc quét mã
độc bằng các phần mềm antivirus nên rất tiện lợi cho người dùng.
Hầu hết các sanbox đều hoạt động theo cùng một nguyên lí chung, trong đó đi
phân tích và theo dõi các thơng tin:







Phân tích tổng quan: Liệt kê các thơng tin phân tích tĩnh và tổng quan kết
quả phan tích động.
Hành vi về file: Danh sách các file được mở, được tạo mới, được sửa hay
bị xóa.
Các ngữ cảnh được tạo ra: Danh sách các ngữ cảnh được mã độc tạo ra.
Hành vi lên registry: Danh sách các thay đổi trên registry domã độc gây ra.
Hành vi liên quan tới mạng: Các hành vi mở cổng, truy vấn tên miền,
truyền/tải dữ liệu.
Kết quả quét từ VirusTotal: Danh sách kết quả quét mã độc từ VirusTotal.

Nhược điểm của Sandbox
Sử dụng sandbox phân tích mã độc sẽ có một số nhược điểm:










Sandbox chạy mã độc ở mức lời gọi thông thường, bỏ qua các tham số có
thể cần thiết cho việc thực thi các chức năng chính của mã độc.
Sandbox khơng thể ghi lại tất cả các hành vi hoặc thời gian có thể sẽ rất
lâu. Ví dụ đối với các mẫu mã độc phát hiện môi trường sandbox và thực
hiện vào 1 đoạn mã cho phép chương trình “ngủ” và khơng thực hiện bất
cứ hành vi nào.
Một số mã độc yêu cầu một số giá trị trên registry mà chỉ tồn tại trên môi
trường thật.
Nếu mã độc ở dạng DLL, việc thực thi mã độc tự động bằng sandbox gần
như là không thể.
Nhiều mã độc được thiết kế cho các môi trường xác định (Hệ điều hành,
phiên bản…), nếu khơng có mơi trường phù hợp, mã độc sẽ lập tức ngừng
thực thi.
Sandbox chỉ cung cấp các thông tin cơ bản và thường chưa đủ thông tin để
kết luận về hành vi thực sự của mã độc

Chạy mã độc
Chạy mã độc là một bước hết sức quan trọng trong q trình phân tích động. Mã
độc trên hệ điều hành Windows được biên dịch sang 02 loại file chính (.dll, .exe).
Với các mã độc loại .exe, chúng ta có thể thực thi bằng cách click trực tiếp hoặc
chạy qua cửa sổ dòng lệnh (cmd).


Với mã độc loại .dll, để chạy mã độc chúng ta sử dụng chương trình rundll32.exe
hoặc thay đổi thơng tin PE header để hệ điều hành gọi file .dll như file .exe.
Cú pháp chạy:

rundll32.exe DLLname, Export arguments
Export arguments: tên hàm hoặc thứ tự hàm trong bảng export functions.
Lưu ý: Một số DLL để thực thi cần được cài đặt dưới dạng dịch vụ, do đó cần
chú ý q trình chạy các DLL dạng này để xử lí cho phù hợp.
Giám sát các tiến trình sử dụng Process Monitor
Process Monitor hay procmon là công cụ giám sát cho hệ điều hành Windows, sử
dụng để giám sát các hành vi tương tác trên registry, file hệ thống, mạng, tiến
trình, luồng. Đây là cơng cụ kết hợp và nâng cao tính năng của hai bộ công cụ:
FileMon và RegMon.
Mặc dù vậy, promon cũng khơng ghi lại được tồn bộ thơng tin, đặc biệt là các
thông tin vào/ra, các hành vi tương tác lên mạng.

Lưu ý:





Promon theo dõi được tất cả các lời gọi hàm ngay khi nó xảy ra và sử dụng
bộ nhớ trong RAM để thực hiện cơng việc này, do đó cần cung cấp đủ
RAM khi sử dụng.
Trong Promon có nhiều tùy chọn các tính năng (các cột) để xem, chúng ta
nên chỉ chọn những trường cần thiết để tránh thông tin bị lỗng.
Có thể thực hiện hành vi lọc (Filter) với nhiều tùy chọn để tìm được các
thơng tin hữu ích nhanh nhất.

Xem các tiến trình sử dụng Process Explorer


Process Explorer cho phép xem các tiến trình và thơng tin liên quan về các tiến

trình đang chạy trên hệ thống:






Danh sách tiến trình.
Danh sách DLL được load bởi một tiến trình.
Các thuộc tính liên quan tới tiến trình.
Danh sách tiến trình con, thơng tin tiến trình cha.
Tắt một tiến trình, đăng xuất người dùng, chạy hoặc xác nhận các tiến trình
khác có phải tiến trình hợp lệ hay khơng.

Ngồi ra, sử dụng Process Explorer trong một số trường hợp có thể hỗ trợ việc
phát hiện mã độc:






So sánh chuỗi: So sánh chuỗi trong “String tab” trong Process
Properties giữa file trên ổ cứng và file đang thực thi trên bộ nhớ nếu có sự
khác biệt chứng tỏ tiến trình đang chạy là một tiến trình thay thế, rất có
thể là một mã độc.
Tìm kiếm các thành phần liên quan: Từ Process Explorer có thể thực thi
các thành phần liên quan hoặc tìm các DLL được sử dụng, qua đó hiểu rõ
hơn về kiến trúc phần mềm và đánh giá các thành phần liên quan để quyết
định mức độ nguy hiểm của phần mềm đang phân tích.

Phân tích mã độc các file tài liệu: Chạy các file và theo dõi tiến trình thực
thi các file, nếu có tiến trình con được tạo ra thì rất có thể file ban đầu đã
chứa mã độc.

So sánh sự thay đổi Registry với công cụ Regshot


Regshot cho phép so sánh nội dung Registry qua các bản ảnh được ghi lại. Các
điểm khác biệt trên Registry có thể giúp chúng ta tìm ra những thơng tin Registry
bị thêm, sửa, xóa trong q trình thực thi mã độc.

Giả lập mạng
Các mã độc hoặc ngay cả những phần mềm thông thường cũng đều cần đến các
kết nối mạng. Để cung cấp một mơi trường có kết nối mạng có 2 phương pháp
chính:



Kết nối trực tiếp: Mã độc sẽ được tham gia và mạng thực tế, phương pháp
này có nguy cơ cao gây ra ảnh hưởng cho hệ thống thực.
Giả lập mạng: Giả lập mạng vừa cung cấp môi trường kết nối mạng, vừa
giảm thiểu tác động tới hệ thống thật.

Chặn và xem gói tin sử dụng Wireshark
Wireshark là cơng cụ chặn và phân tích gói tin rất hiệu quả. Wireshark có khả
năng phân tích các gói tin với nhiều loại giao thức khác nhau. Chúng ta có thể sử
dụng Wireshark để xem các tên miền được truy vấn, xem thơng tin dữ liệu truyền
qua mạng…
Lưu ý:




Wireshark cho phép theo dõi trên từng card mạng riêng biệt nên khi sử
dụng cần chú ý chọn đúng card mạng.
Wireshark bản thân có nhiều lỗ hổng do đó cần cài đặt trong một mơi
trường an tồn để tránh bị ảnh hưởng tới hệ thống thật.


Sử dụng INetSIM
INetSIM là cơng cụ miễn phí chạy trên nền Linux, công cụ này cung cấp các giả
lập cho các dịch vụ mạng. INetSIM cung cấp nhiều dịch vụ mạng

Với các cơng cụ trên, chúng ta có thể thực hiện các bước để tiến hành q trình
phân tích động như sau:


Chạy promon và thiết lập filter theo tên mã độc








Chạy process explorer
Sử dụng Regshot để thu thập trạng thái đầu tiên
Thiết lập mạng ảo sử dụng INetSim và ApateDNS (Xem hình vẽ bên dưới).
Cấu hình ApateDNS để forward tồn bộ truy vấn sang máy ảo Linux cài
INetSim.

Cấu hình chặn và phân tích gói tin sử dụng Wireshark

Sau khi thiết lập môi trường xong, ta tiến hành chạy mã độc trên máy ảo phân
tích. Sau một khoảng thời gian chúng ta dừng quá trình giám sát bằng promon và
thực hiện thu thập trạng thái tiếp theo bằng Regshot. Tiếp theo, chúng ta có thể
thực hiện theo dõi một số thơng tin:







Xem các thơng tin truy vấn DNS trên ApateDNS.
Xem kết quả từ procmon để biết các file hệ thống có thay đổi.
So sánh hai trạng thái trước và sau khi chạy mã độc bằng Regshot.
Sử dụng Process Explorer để theo dõi các tiến trình và giám sát các mutex
được tạo ra.
Xem thông tin log trên INetSim để biết được các truy vấn và các dịch vụ
chương trình sử dụng.
Xem thơng tin trên Wireshark để xem quá trình kết nối từ chương trình cần
giám sát ra bên ngồi.

Chạy thử nghiệm các mã độc trên máy ảo
Link mã độc chạy thử nghiệm:
/>
MD5: a5f12bc0f61133c1a38ad3e83dcd0847


MD5: 306b8771fdfa2c0498e67ba28eeddc2d



Md5: cd2cba9e6313e8df2c1273593e649682


Đăng ký tài khoản trên một số sanbox
/>

/>
/>

/>
http:// index.php?pg=news&cat=<script>alert(document.cookie)</script>



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×