Tải bản đầy đủ (.docx) (52 trang)

Phân tích ransomware wanacry

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 (2.84 MB, 52 trang )

MỤC LỤC

1


DANH MỤC HÌNH VẼ

LỜI MỞ ĐẦU
Thế giới đang chứng kiến những thay đổi lớn và sự phát triển nhanh
chóng về mọi mặt, nhất là trong ngành công nghệ thông tin. Tuy nhiên bên cạnh
những lợi ích mã khơng gian mạng mang lại, vẫn còn nhiều nguy cơ gây ảnh
hưởng đến các hệ thống thông tin và người dùng – điển hình là sự xuất hiện và
gia tăng nhanh chóng của các loại mã độc nhằm đánh cắp thông tin, tống tiền, do
thám,… các cá nhân tổ chức trong không gian mạng. Các loại mã độc ngày càng
đa dạng và tinh vi hơn, có khả năng lẩn tránh các phần mềm anti-virus thông qua
các kỹ thuật nén, xáo trộn mã, tự thay đổi mã nguồn,... dẫn đến việc sử dụng
phương pháp rà quét phát hiện dựa trên chữ ký không thực sự hiệu quả. Hơn
nữa, để tạo được chữ ký của một mẫu mã độc, các chuyên gia phải tiêu tốn rất
nhiều thời gian và công sức, khiến cho việc cập nhật các phần mềm anti-virus
chậm hơn, khó có khả năng phát hiện mã độc kịp thời.
Để cải thiện khả năng nhận dạng và phát hiện các mẫu mã độc, các
phương “ pháp phát hiện mã độc dựa trên phân tính động” cũng là những
phương giúp cải thiện khả năng bị mã độc tấn công.
Trong những loại mã độc hiện nay, có mã độc tống tiền Ransomware là
loại mã độc nguy hiểm bậc nhất hiện nay, đặc biệt là mã độc Wanacry. Trong bài
tiểu luận này, em sẽ trình bày về “mơi trường phân tích và các bước thực hiện
phân tích động mã độc Wanacry” để hiểu rõ hơn về loại mã độc này.
2


*Bài tiểu luận gồm 3 phần:


+Tổng quan về mã độc và phát hiện mã độc
+Phương pháp phát hiện mã độc dựa trên phân tích động
+Xây dựng mơi trường phân tích và các bước thực hiện phân tích
mã độc Wanacry
*Phương pháp nghiên cứu: Phương pháp nghiên cứu là nghiên cứu lý
thuyết kết hợp với thực nghiệm và phân tích, đánh giá kết quả.

CHƯƠNG I: TỔNG QUAN VỀ MÃ ĐỘC VÀ PHÁT HIỆN MÃ ĐỘC
1.

Tổng quan về mã độc
1.1. Khái niệm mã độc
Mã độc là các phần mềm được thiết kế một cách có chủ đích, dùng để
gây thiệt hại tới máy tính cá nhân, máy chủ hoặc hệ thống mạng máy tính.
Mục đích của mã độc là thực thi các hành vi bất hợp pháp như: truy cập trái
phép, đánh cắp thơng tin người dùng, lây lan thư rác, thậm chí thực hiện các
hành vi tống tiền, tấn công và gây tổn thương cho các hệ thống máy tính…
nhằm chuộc lợi cá nhân, hoặc các lợi ích về kinh tế, chính trị hay đơn giản
chúng có khi được tạo ra chỉ là một trị đùa ác ý nào đó.
Q trình phát triển của mã độc có thể được chia làm 3 giai đoạn
chính:


Những năm đầu (1971 – 1999): thời kỳ này mã độc vẫn còn sơ
khai, chủ yếu lây lan qua đĩa mềm truyền từ máy tính này sang
máy tính khác một cách thủ công. Khi mạng và internet phát
triển, người viết mã độc cũng nhanh chóng thích nghi và tận




dụng phương tiện truyền thông mới này
Tỉ lệ lây nhiễm bắt đầu gia tăng (2000 – 2010): trong khoảng
thời gian này, mã độc đã gia tăng đáng kể, về cả số lượng và tốc
3


độ lây lan. Toolkits bắt đầu xuất hiện, các bộ công cụ nhắm vào
các websites cũng trở nên phổ biến, khiến cho số lượng


websites bị tấn cơng ngày càng nhiều.
Được chính phủ tài trợ, tinh vi hơn và hướng đến lợi nhuận
(2010 – nay): các nhóm tội phạm có tổ chức và được tài trợ bởi
chính phủ vẫn đang tiếp tục phát triển các loại mã độc tiên tiến,
có khả năng vượt qua các hệ thống diệt virus thông thường. Mã
độc được sử dụng để tấn công các doanh nghiệp, hệ thống quân
sự, và việc kiếm tiền từ các phần mềm độc hại này cũng đang
gia tăng nhanh chóng, thơng qua ransomware và các phần mềm
bất hợp khác.

1.2.

Các dạng mã độc
• Virus máy tính
Đặc điểm chính của virus máy tính là có khả năng tự nhân bản. Nó
thường tấn cơng và lây nhiễm vào các tệp tin trên hệ thống nạn nhân. Sau
khi lây nhiễm vào tệp tin, virus sẽ tự động tải và chạy mà không cần
quyền từ người dùng. Khi được thực thi nó sẽ cố gắng sao chép chính nó
vào bên trong một mã thực thi khác. Các mã lây nhiễm khi chạy có thể
tiếp tục lây nhiễm sang các mã mới.

Ngoài khả năng đánh cắp và làm hỏng dữ liệu, virus còn tiêu tốn
tài nguyên hệ thống – khiến cho hệ thống máy chủ trở nên chậm chạp
hoặc thậm chí bị vơ hiệu hóa. Một đặc điểm thường gặp ở virus là chúng
được che giấu khá kĩ, khiến cho chúng khó có thể bị phát hiện.


Worm
Cũng như virus, worm có khả năng tự nhân bản chính nó. Tuy

nhiên, worm khơng cần phải lây nhiễm vào một tệp tin cụ thể. Worm có
thể phát tán thơng qua hệ thống mạng, dựa vào lỗi bảo mật để truy cập
vào máy tính của nạn nhân, sau đó đánh cắp hoặc xóa dữ liệu. Nhiều
worm được thiết kế chỉ để tự phát tán chính nó mà khơng gây tổn hại đến
hệ thống mà nó đi qua.
4




Trojan
Mã độc Trojan Horse là một cái tên được xuất phát từ một điển tích

“Con ngựa thành Troy” trong thần thoại Hy Lạp. Tội phạm mạng sẽ cải
trang trojan thành các phần mềm hữu ích và thuyết phục người dùng cài
đặt nó. Do vậy, cách phát tán chính của trojan là sử dụng social
engineering.


Adware
Adware là chương trình được thiết kế để hiển thị quảng cáo trên


máy tính của người dùng, sau đó chuyển hướng u cầu tìm kiếm của
người dùng tới các website quảng cáo và thu thập dữ liệu tiếp thị của
người dùng. Ví dụ, adware sẽ thu thập thông tin về các website mà người
dùng truy cập, sau đó hiển thị quảng cáo phù hợp với nhu cầu của người
dùng. Adware thường được coi như là một nhánh con của spyware và
khơng gây nhiều thiệt hại nghiêm trọng.


Spyware
Spyware là phần mềm dùng để theo dõi người dùng. Spyware được

thiết kế để giám sát và chặn bắt lịch sử duyệt web cũng như các hoạt động
khác của người dùng, sau đó bán các thơng tin này cho các nhà quảng cáo
hoặc bên thứ ba. Spyware có nhiều chức năng hơn so với adware, ví dụ,
thu thập các dữ liệu nhạy cảm như tài khoản ngân hàng, mật khẩu, hoặc
thông tin thẻ tín dụng.


Rootkit
Rootkit là một bộ các cơng cụ phần mềm độc hại cho phép một

người dùng trái phép có quyền truy cập vào máy tính. Khi rootkit được
cài đặt, kẻ tấn cơng có thể điều khiển từ xa để thực thi các tệp tin và thay
đổi cấu hình hệ thống trên máy nạn nhân. Rootkit khơng có khả năng tự
nhân bản. Chúng phải được cài đặt và thực thi ở lớp thấp của hệ điều
hành, ở kernel, hoặc trong hệ thống vào ra của thiết bị (BIOS) với quyền
truy cập đặc quyền, do đó, chúng rất khó để phát hiện và gỡ bỏ. Khi phát
5



hiện rootkit, các chuyên gia khuyến cáo nên xóa sạch ổ cứng và cài lại hệ
điều hành từ đầu.


Backdoor
Backdoor là một dạng malware cung cấp cho kẻ tấn công một

“cổng vào” bí mật tới hệ thống. Backdoor khơng bao giờ được sử dụng
một cách riêng lẻ. Nó thường hỗ trợ cho các dạng tấn cơng khác.
Đơi khi các lập trình viên cũng tạo ra một backdoor trong chương
trình của mình nhằm bỏ qua bước xác thực khi debug trên máy chủ.


Keylogger
Keylogger sẽ ghi lại tất cả những phím được bấm trên một máy tính

mà người dùng khơng hề biết. Keylogger được công nhận là một công cụ
giám sát chuyên nghiệp hợp pháp. Tuy nhiên, keylogger thường được sử
dụng với mục đích xấu, như thu thập thơng tin nhạy cảm, bao gồm tài
khoản, mật khẩu, câu trả lời của các câu hỏi bảo mật và thơng tin tài
chính.


Ransomware
Ransomware là một dạng mã độc sẽ khóa tất cả dữ liệu trên máy

tính nạn nhân, thường là bằng cách mã hóa. Nạn nhân sẽ phải trả tiền để
kẻ tấn công giải mã dữ liệu và trả lại quyền truy cập.
Động cơ chính của tấn công ransomware là tiền. Một khi bị tấn

công, máy tính sẽ bị “đóng băng”, người dùng khơng thể truy cập bất cứ
tệp tin nào, và không như các dạng tấn công khác, người dùng sẽ được
thông báo và được hướng dẫn cách thanh tốn để khơi phục lại dữ liệu về
bình thường. Phương thức thanh tốn thường là các loại tiền ảo, như
Bitcoin, nhằm giữ kín danh tính của kẻ tấn công.
2.

Các phương pháp phát hiện mã độc
2.1. Phương pháp phát hiện dựa trên chữ ký

6


Cơ sở của phương pháp này là phân tích tĩnh, phân tích mã nguồn mà
khơng cần thực thi tệp tin. Phân tích tĩnh tức là đọc mã nguồn của mã độc và
cố gắng suy luận các tính chất của nó từ mã nguồn.
Một số kỹ thuật dùng trong phân tích tĩnh bao gồm:


Kiểm tra định dạng tệp: metadata của tệp tin có thể cung cấp các thơng



tin hữu ích.
Trích xuất chuỗi: liên quan đến việc kiểm tra đầu ra của phần mềm
(thông điệp trạng thái hoặc thông điệp báo lỗi) và suy luận về hoạt



động của mã độc.

Lưu vết: trước khi thực hiện phân tích cần tính tốn giá trị băm của tệp



tin, nhằm xác minh xem tệp tin đã bị chỉnh sửa chưa.
Quét bằng phần mềm diệt virus: nếu tệp tin đang phân tích là một mã
độc đã biết, hầu hết phần mềm diệt virus có thể phát hiện được nó.



Cách này thường được dùng để kiểm tra lại kết quả phân tích.
Disassembly: liên quan đến việc đảo ngược mã máy thành hợp ngữ
(assembly language) và từ đó biết được logic và mục đích của phần
mềm.
Phát hiện dựa trên chữ ký là phương pháp tĩnh dựa trên các chữ ký đã

được định nghĩa sẵn. Chữ ký có thể là chuỗi băm của tệp tin mã độc (MD5
hoặc SHA1), một chuỗi cố định hoặc metadata của tệp tin. Khi một nhà cung
cấp giải pháp anti-malware xác định một đối tượng là độc hại, chữ ký của nó
sẽ được thêm vào cơ sở dữ liệu. Phương pháp phát hiện này chỉ phù hợp với
các dạng mã độc phổ biến, có chữ ký cố định được lưu trong cơ sở dữ liệu.
Ngoài ra, các loại mã độc hiện nay cịn có khả năng thay đổi chữ ký nhằm
tránh bị phát hiện; chữ ký được tạo ra bởi việc kiểm tra các thành phần bên
trong, và mã độc chỉ cần thay đổi các phần này mà không làm ảnh hưởng
đến chức năng và hành vi của nó.
2.2.

Phương pháp phát hiện dựa trên hành vi
Phân tích động khơng giống với phân tích tĩnh ở chỗ, các hành vi của


mã độc được giám sát trong khi nó đang thực thi, từ đó có thể tìm hiểu được
7


thuộc tính và mục đích của mã độc. Thơng thường mã độc sẽ được thực thi
trong môi trường ảo (vd. Sandbox). Trong q trình phân tích sẽ phát hiện
tất cả hành vi của mã độc, như mở tệp tin, tạo mutexes, … và kiểu phân tích
này sẽ nhanh hơn phân tích tĩnh rất nhiều. Tuy nhiên, phân tích động chỉ biết
được hành vi của mã độc trong hệ thống ảo dùng để kiểm tra, ví dụ kết quả
thu được khi thực thi hai mã độc giống nhau trong môi trường Windows 7 và
Windows 8.1 sẽ khác nhau.
Từ phương pháp phân tích động, người ta đã định nghĩa phương pháp
phát hiện dựa trên hành vi.
Phương pháp phát hiện dựa trên hành vi (hay còn gọi là dựa trên
heuristics) sẽ đánh giá một đối tượng dựa trên hành vi của nó. Khi một đối
tượng cố gắng thực thi các hành vi bất thường hoặc khơng được cấp quyền
biểu thị đối tượng đó độc hại hoặc đáng ngờ. Có một số hành vi được coi là
nguy hiểm như vơ hiệu hóa các điều khiển bảo mật, cài đặt rootkits,
autostart, sửa tệp tin host, thiết lập các kết nối đáng ngờ,… Mỗi hành vi có
thể khơng nguy hiểm nhưng kết hợp với nhau có thể làm tăng độ đáng ngờ
của đối tượng. Có một ngưỡng được xác định sẵn, nếu bất kỳ tệp tin nào
vượt qua ngưỡng này sẽ được cảnh báo là mã độc. Phương pháp này được áp
dụng để phát hiện các loại mã độc có khả năng thay đổi chữ ký (đa hình)
hoặc các loại mã độc mới (zero-day).
Mặc dù phương pháp này tốn nhiều thời gian hơn, nhưng nó an toàn
hơn, do tệp tin được kiểm tra trước khi chạy thực tế. Ưu điểm chính của phát
hiện dựa trên heuristics là nó khơng chỉ phát hiện các mã độc đã biết mà cịn
phát hiện được các cuộc tấn cơng zero-day và các loại virus đa hình. Tuy
nhiên, một số loại mã độc có khả năng phát hiện mơi trường ảo, nó sẽ khơng
thực thi các hành vi độc hại trong môi trường sandbox. Hơn nữa, trên thực

tế, với lượng mã độc đang ngày một gia tăng, phương pháp này không thực
sự hiệu quả trước các loại mã độc mới.
3.

Quy trình phân tích mã độc thơng thường
8


Cơng việc phân tích mã độc cần có quy trình cụ thể và rõ ràng, được lên
kế hoạch kĩ lưỡng và phải đạt mức an toan cao, điều này giúp giảm thiểu rủi ro
do mã độc gây ra. Quy trình phân tích mã độc bao gồm đầy đủ các bước sau:

Hình 1: Quy trình phân tích mã độc thơng thường

9


CHƯƠNG II: PHƯƠNG PHÁP PHÁT HIỆN MÃ ĐỘC DỰA TRÊN PHÂN
TÍCH ĐỘNG
1.

Tổng quan về phân tích độnG
Phân tích động là các hành động thực hiện sau khi đã thực thi mã độc.

Cơng nghệ phân tích tĩnh là bước tiếp theo trong q trình phân tích mã độc.
Bước này thơng thường được thực hiện sau q trình phân tích tĩnh mức cơ bản.
Sử dụng kĩ thuật này có thể vượt qua được các hạn chế mà q trình phân tích
mức cơ bản khơng làm được: packed, obfuscated.
Khác với phân tích tĩnh, phân tích động cho phép quan sát các hành vi
thực sự của mã độc và đây cũng là một phương pháp hiệu quả để xác nhận hành

vi có thực sự xảy ra và thực sự 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.
Phân tích động cũng có những mặt hạn chế do khơng phải tất cả các chức năng
của mã độc sẽ được thực thi trong q trình phân tích mà cần có những điều kiện
và mơi trường cụ thể. Do đó, để phân tích mức chun sâu hơn, chúng ta cần có
sự kết hợp từ phân tích động nâng cao cùng các kĩ thuật phân tích tĩnh để có thể
xác định được tồn bộ hành vi của mã độc, từ đó tìm ra đặc trưng và phương
pháp diệt.
Mặc dù các kỹ thuật phân tích động cực kỳ mạnh mẽ, chúng chỉ nên được
thực hiện sau khi hồn thành phân tích tĩnh cơ bản, vì phân tích động có thể
khiến mạng và hệ thống của bạn gặp rủi ro. Các kỹ thuật động có những hạn chế
của chúng, bởi vì khơng phải tất cả các đường dẫn mã có thể thực thi khi một
phần mềm độc hại được chạy. Ví dụ: trong trường hợp phần mềm độc hại dòng
10


lệnh yêu cầu đối số, mỗi đối số có thể thực thi chức năng chương trình khác
nhau và khơng cần biết các tùy chọn mà bạn sẽ có thể kiểm tra động tất cả chức
năng của chương trình. Đặt cược tốt nhất của bạn sẽ là sử dụng các kỹ thuật
động hoặc tĩnh nâng cao để tìm ra cách buộc phần mềm độc hại thực thi tất cả
các chức năng của nó.
2.

Xây dựng mơi trường
Do đặc trưng của cơng việc phân tích mã độc, địi hỏi hệ thống dùng để
phân tích ln ở trạng thái sạch, bên cạnh đó mơi trường phân tích phải phù
hợp với hoạt động của mã độc. Vì việc hiểu cách xây dựng mơi trường phân

tích và các cơng cụ hỗ trợ phân tích mã độc là điều cần thiết. Đối với xây
dựng môi trường, người phân tích có thể dùng máy thật và máy ảo để phân
tích. Nếu sử dụng máy thật thì cần sử dụng thêm các phần mềm như
DeepFreeze để đóng băng ổ cứng để mỗi khi máy tính khởi động lại sẽ trở
lại trạng thái như ban đầu. Bên cạnh đó người phân tích cần xây dựng hệ
thống phân tích mơ phỏng mạng Internet cách ly hẳn với mơi trường Internet
bên ngồi để thực hiện, tránh gây ra việc lây lan mã độc ra Internet. Ngồi
ra, người phân tích cũng có thể xây dựng những hệ thống tự động phân tích
mã độc để hỗ trợ tự động phân tích sử dụng các SandBox, những hệ thống
phân tích tự động của các hãng. Phần dưới đây sẽ trình bày cách thức xây
dựng mơi trường phân tích phù hợp để phân tích mã độc.

11


B1: Chọn máy ảo và thiết lập hệ thống máy ảo

u cầu hệ thống: Mơ hình để xây dựng mơi trường ảo tối thiểu cần
chuẩn bị 2 máy tính:


Máy giả lập Internet là máy ảo Linux server sử dụng phần mềm Inetsim
hỗ trợ các dịch vụ Internet như DNS, Webserver, IRC server, SMTP



server…
Máy phân tích mã độc sử dụng hệ điều hành Windows XP SP2.

Trong mơ hình trên cần xây dựng máy tính ảo phân tích và máy tính ảo giả lập

Internet sử dụng 2 hệ điều hành khác nhau, để tránh tình trạng q trình phân
tích mẫu sẽ lây lan sang môi trường giả lập Internet.
B2: Thiết lập công cụ và môi trường
Sau khi cài đặt xong hệ điều hành, chúng ta cần cài đặt công cụ hỗ trợ q trình
phân tích:


Cơng cụ theo dõi hệ thống và registry: Process Monitor, ProcDOT



Cơng cụ theo dõi các tiến trình: Process Explorer, Process Hacker
12




Công cụ theo dõi mạng: Wireshark



Công cụ phát hiện sự thay đổi trạng thái hệ thống trước và sau khi lây
nhiễm:Regshot



Cơng cụ disassembler và debugger: OllyDBG, IDA Pro




Cơng cụ dump bộ nhớ: Scylla, OllyDumpEx



Cơng cụ phân tích khác: PPEE (puppy), PE Insider, CFF Explorer, File
Analyzer,pestudio



Cơng cụ xem, chỉnh sửa file nhị phân: Hex Editor Neo



Cơng cụ soạn thảo: notepad++



Một phần quan trọng khơng thể kém đó là cài đặt các phần mềm làm mơi
trường hỗ trợ q trình phát hiện mã độc (Tôi hay đặt cái tên “thân thiện”
là các phần mềm bẫy, mục đích để tạo ra các file lây nhiễm theo ý muốn).
Tôi sử dụng một số phần mềm sau để làm bẫy:



Bộ cài đặt: notepad++, Process Monitor, Process Explorer, 7z, wireshark,
foxit reader



Phần mềm: notepad, CFF Explorer, cmd, caculator




Các phần mềm bẫy được đặt ở Desktop và thư mục C:\Atraps là nơi mà
mã độc (Có khả năng lây nhiễm) có thể tìm đến nhanh nhất.

B3: Cấu hình cơ lập mơi trường


Để đảm bảo an tồn cho mơi trường thực tế, tơi thực hiện một số bước cấu
hình để ngăn chặn tối đa khả năng mã độc có thể xâm nhập ra hệ thống



bên ngồi:
Cập nhật hệ điều hành máy vật lí thường xuyên.
Cập nhật thường xuyên bản vá của VMWare, đặc biệt các bản vá liên




quan tới mạng.
Bật firewall ở máy vật lí, thiết lập chặn card ảo
Thiết lập mạng cho VMWare ở dạng host-only hoặc tắt mạng. Hạn chế bật



mạng nếu khơng q cần thiết.
Ngắt các kết nối tới các thiết bị ngoại vi: CD-ROM, USB, Memory




Card…
13


B4: Tạo Snapshots
Ngay sau khi cài đặt và thiết lập chuẩn một máy ảo, ta cần tạo
một snapshot để lưu lại trạng thái sẵn sàng nhất của hệ thống cho việc phân tích
mã độc.
Tạo các snapshot là khái niệm độc đáo của máy ảo. Các snapshot máy ảo của
VMware cho phép lưu lại trạng thái hiện tại của hệ thống và quay lại trạng thái
này bất kì lúc nào, giống như restore point của Windows.

Hình vẽ trên minh họa cách sử dụng các snapshot. Vào lúc 8:00 ta tạo một
snapshot máy ảo của mình. Sau đó ta thực thi một mã độc và tới 10:00 thì quay
trở lại snapshot đã tao lúc 8:00. Hệ điều hành, phần mềm và tất cả các thành
phần khác của máy ảo sẽ trở về trạng thái như lúc 8:00 và mọi thứ xảy ra trong
khoảng thời gian 8:00-10:00 đều bị xóa sạch. Đây như là tính năng Undo giúp
ta tránh việc phải cài lại hệ điều hành khách và cả tá công cụ, phần mềm cũng
như các cấu hình tốn thời gian.

3.

Các phương pháp phân tích
3.1. Phương pháp phân tích động cơ bản
a. Sử dụng Sanboxes – Phân tích mã độc nhanh chóng
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ị

14


ả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ế.
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 qt 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

b.

quả quét từ VirusTotal: Danh sách kết quả quét mã độc từ VirusTotal.

Chạy mã độc
Chạy mã độc là một bước hết sức quan trọng trong quá 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).

15


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:

Cài đặt dường như là một cách có khả năng để khởi chạy rip.dll, vì vậy,
hãy để khởi chạy mal-ware như sau:

Trong trường hợp này, bạn vẫn có thể gọi các hàm đó bằng
rundll32.exe bằng lệnh sau, trong đó 5 là số thứ tự mà bạn muốn gọi, được
thêm vào bằng ký tự #:

Phần mềm độc hại DLL cũng có thể cần được cài đặt như một dịch vụ,
đơi khi có xuất khẩu thuận tiện như InstallService, như được liệt kê trong
ipr32x.dll:

c.

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.
16


Hình 2: Giám sát tiến trình bằng Process Monitor
Tất cả bốn bộ lọc được chọn theo mặc định. Để tắt bộ lọc, chỉ cần nhấp
vào biểu tượng trên thanh công cụ tương ứng với danh mục.


Hình 3: Bộ lọc các tiến trình

d.

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.

17


• 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.

Hình 4: Xem thơng tin các tiến trình bằng Process Explorer

So sánh Strings: Một cách để nhận biết quá trình thay thế là sử dụng tab Strings
trong cửa sổ Process Properties để so sánh các chuỗi có trong đĩa exe-cutable
(hình ảnh) so với các chuỗi trong bộ nhớ cho cùng một lần chạy thực thi trong
bộ nhớ.

18



Hình 5: So sánh các sự thay đổi các Strings

e.

So sánh sự thay đổi với Regshot
Regshot là một tiện ích mã nguồn mở đơn giản có khả năng chụp ảnh
chụp nhanh Windows registry khi cần thiết và có thể so sánh chúng để tìm
bất kỳ thay đổi nào đã xảy ra trong khi các thay đổi được thực hiện trong
hệ thống. Các thay đổi bao gồm bất kỳ khóa hoặc giá trị mới được tạo,
xóa và sửa đổi. Bạn có thể tải xuống Regshot từ trang web chính thức của
Sourceforge.net. Vì nó là một ứng dụng di động, bạn có thể sử dụng nó
mà khơng cần bất kỳ cài đặt nào.

19


Hình 6: So sánh sự thay đổi với Regshot

f.

Tím kiếm gói tin bằng Wireshark
Wireshark là một cơng cụ theo dõi , kiểm tra và phân tích các loại mã độc,

thơng tin mạng được phát triển bởi Gerald Combs. WireShark vượt trội về
khả năng hỗ trợ các giao thức (khoảng 850 loại). Giao diện của Wireshark là
một trong những giao diện phần mềm phân tích gói dễ dùng nhất do đó nó
thân thiện với người dùng. Vì nó có thể bắt đường đi của gói tin, nên nó cịn
được ứng dụng vào q trình phân tích lỗ hổng, mã độc.
Tuy nhiên, điểm yếu lớn nhất của nó khi phân tích các mã độc là khơng

cho biết chính xác ứng dụng nào tạo ra gói tin gửi đi, mà chỉ biết gói tin đó có
thành phần gì, gửi từ đâu, và đến đâu… Vì thế, cần kết hợp với những cơng
cụ khác như Process Monitor.

20


Hình 7: Tìm kiếm gói tin bằng Wireshark

Để sử dụng Wireshark để xem nội dung của phiên TCP, nhấp chuột phải
vào bất kỳ gói TCP nào và chọn Theo dõi luồng TCP.

21


Hình 8: Thơng tin Follow TCP Stream

g.

Sử dụng InetSim
INetSim là bộ phần mềm dựa trên Linux miễn phí để mơ phỏng các dịch

vụ liên mạng phổ biến. Cách dễ nhất để chạy INetSim nếu hệ điều hành cơ sở
của bạn là Microsoft Windows là cài đặt nó trên máy ảo Linux và thiết lập nó
trên cùng một mạng ảo với máy ảo phân tích phần mềm độc hại của bạn.
INetSim là cơng cụ miễn phí tốt nhất để cung cấp dịch vụ giả mạo, cho
phép bạn phân tích hành vi mạng của các mẫu phần mềm độc hại không xác
định bằng cách mô phỏng các dịch vụ dịch thuật như HTTP, HTTPS, FTP,
IRC, DNS, SMTP và các dịch vụ khác


22


Hình 9: Các dịch vụ đang chạy sử dụng InetSim
INetSim cố gắng hết sức để trông giống như một máy chủ thực sự và nó
có nhiều tính năng dễ hình dung để đảm bảo thành cơng. Ví dụ: theo mặc
định, nó trả về biểu ngữ của máy chủ web Microsoft IIS nếu được quét

3.2.

Phương pháp phân tích động nâng cao
a. Debugging
Trình gỡ lỗi là một phần mềm hoặc phần cứng được sử dụng để kiểm
tra hoặc kiểm tra việc thực hiện chương trình khác. Trình gỡ lỗi giúp trong
quá trình phát triển phần mềm, vì các chương trình thường có lỗi trong đó
khi chúng được viết lần đầu tiên. Khi bạn phát triển, bạn cung cấp đầu vào
cho chương trình và xem đầu ra, nhưng bạn khơng thấy chương trình tạo
ra đầu ra như thế nào. Trình gỡ lỗi cung cấp cho bạn cái nhìn sâu sắc về
những gì một chương trình đang làm trong khi nó đang thực thi. Trình gỡ
lỗi được thiết kế để cho phép các nhà phát triển đo lường và kiểm soát
trạng thái nội bộ và thực hiện chương trình.
23


Trình gỡ lỗi cung cấp thơng tin về một chương trình sẽ rất khó, nếu
khơng nói là khơng thể nhận được từ một trình dịch ngược. Disassemblers
cung cấp một ảnh chụp nhanh về một chương trình trơng như thế nào
ngay trước khi thực hiện lệnh đầu tiên. Trình gỡ lỗi cung cấp một cái nhìn
động về một chương trình khi nó chạy. Ví dụ, trình gỡ lỗi có thể hiển thị
các giá trị của địa chỉ bộ nhớ khi chúng thay đổi trong suốt quá trình thực

thi chương trình.
*Các loại Debug


Debugger Mức Mã Nguồn và Mức Hợp Ngữ (source-level và
assembly-level)
Đa số lập trình viên đều quen thuộc với các debugger mức mã nguồn

cho phép debug trong lúc lập trình. Loại debugger này thường được tích
hợp sẵn trong các IDE, chúng cho phép đặt các breakpoint để theo dõi
trạng thái các biến và thực thi chương trình từng dịng code một.
Các debugger mức hợp ngữ, hay debugger mức thấp, hoạt động trên
mã hợp ngữ thay vì mã nguồn của chương trình. Ta cũng có thể thực thi
chương trình từng dịng code một, đặt các breakpoint để dừng lại tại một
dòng code cụ thể và theo dõi các vùng nhớ.



Debug Mức Nhân và Debug Mức Người Dùng (Kernel-Mode và
User-Mode Debugging)
Debug mức nhân khó khăn hơn debug mức người dùng vì ta thường

phải sử dụng hai hệ thống khác nhau khi thực hiện debug mức nhân. Trong
user mode, debugger chạy được trên cùng một hệ thống với code được
debug. Khi thực hiện debug mức người dùng, ta debug trên một trình thực
thi đơn được phân tách rõ ràng với các trình thực thi khác.
24


*Sử dụng một Debugger

Có hai cách để debug một chương trình. Cách thứ nhất là khởi chạy
chương trình với một debugger. Khi chương trình được nạp vào bộ nhớ, nó
sẽ dừng lại ngay trước khi thực thi entry point của mình. Ta có thể kiểm sốt
chương trình bắt đầu từ entry point của nó.
Cách thứ hai là gán một debugger vào một chương trình đang được
thực thi. Tất cả các thread sẽ được tạm dừng và ta có thể debug chúng. Đây
là một cách tốt để debug một chương trình khi nó đang được thực thi hoặc
khi ta muốn thực hiện debug một process liên quan đến mã độc.


Single-Step

Đoạn code dưới đây là một ví dụ mà ta có thể sử dụng single-step để thực
hiện debug:



Step-Over và Step-Into

Khi thực hiện single-step, debugger dừng tại mọi dịng lệnh. Mục đích
chính của phân tích mã độc là nắm được chương trình làm những gì chứ
khơng phải là đi sâu vào chi tiết từng hàm chức năng của nó. Ví dụ, nếu
25


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

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