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

phân tích phần mền độc hại và ứng dụng trong phòng chống hack game

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 (854.23 KB, 37 trang )

Ket-noi.com diễn đàn công nghệ, giáo dục

ĐỀ TÀI THỰC TẬP
Phân tích phần mềm độc hại và ứng dụng trong phòng chống hack game

Giảng viên hướng dẫn: Đỗ Xuân Chợ

LỜI CẢM ƠN

Page 1


Ket-noi.com diễn đàn công nghệ, giáo dục

Lời đầu tiên em xin bày tỏ lòng biết ơn sâu sắc tới thạc sĩ Đỗ Xuân Chợ, người thầy đã
tận tình hướng dẫn chỉ bảo em trong suốt thời gian thực tập. Nhờ sự quan tâm và định
hướng của thầy, em đã có nhiều thong tin bổ ích cũng như phương pháp hoàn thành tốt
báo cáo thực tập này.
Tiếp đến em xin chân thành cảm ơn các thầy, cô khoa công nghệ thông tin, Học
viện Công nghệ Bưu chính Viễn thông Hà Nội đã tận tình dạy dỗ, trang bị những kiến
thức bổ ích trong những năm học vừa qua.
Em xin cảm ơn các anh, chị trong công ty VTC Intecom nói chung và các anh chị
bên phòng RD sản phẩm nói riêng, những người đã giúp đỡ nhiệt tình cho em trong thời
gian thực tập ở công ty.
Em xin chân thành cảm ơn!
Hà Nội, ngày 25 tháng 07 năm 2015

MỤC LỤC

Page 2



Ket-noi.com diễn đàn công nghệ, giáo dục

MỞ ĐẦU
Với sự phát triển mạnh mẽ của Internet, vấn đề an ninh, an toàn các hệ thống máy tính
ngày càng trở nên cấp thiết khi các hệ thống máy tính được kết nối với nhau và với mạng
Internet, chúng phải đối diện với nhiều nguy cơ bị tấn công lấy cắp thông tin hoặc phá
hoại hệ thống. Trong số các tác nhân tấn công phá hoại các hệ thống máy tính và mạng,
các phần mềm độc hại là một trong các tác nhân gây nhiều thiệt hại nhất do khả năng lan
truyền nhanh chóng. Các phần mềm độc hại được phát triển ngày càng tinh vi, nên rất
khó phát hiện với các kỹ thuật nhận dạng thông thường, như kỹ thuật phân tích tĩnh và
phân tích động. Các kỹ thuật phân tích tĩnh và phân tích động giúp chúng ta phân tích,
nhận dạng được các phần mềm độc hại dựa trên các đặc trưng của chúng dưới dạng các
mẫu hoặc chữ kí. Tuy nhiên, khi các kỹ thuật viết chương trình ngày càng phát triển, các
phần mềm độc hại có khả năng tự biến đổi thành một dạng mới rất khó phân tích, nhận
dạng.

Page 3


Ket-noi.com diễn đàn công nghệ, giáo dục

Dựa trên các đặc tính, tính chất của các phần mềm độc hại, phương pháp phân tíchhành
vi tỏ ra có lợi thế trong nhận dạng và phòng ngừa các nguy cơ do các phần mềmđộc hại
gây ra, đặc biệt khi có những sự biến đổi của kỹ thuật viết chương trình phầnmềm độc hại
để tránh các phương pháp phân tích nhận dạng truyền thống. Đề tài thực tập này tập trung
nghiên cứu phương pháp phân tích, nhận dạng các phần mềm độc hại dựa trên hành vi
với mục đích nâng cao khả năng nhận dạng các phần mềm độc hại.
Đề tài bao gồm 3 chương với các nôi dung chính sau:



Chương 1: Tổng quan về phần mềm độc hại.

Giới thiệu tổng quan về các phần mềm độc hại, định nghĩa phần mềm độc hại, phân loại
chúng theo NIST, tác hại của phần mềm độc hại đối với hệ thống và người dùng, lịch sử
hình thành và phát triển của các phần mềm độc hại.


Chương 2: Các phương pháp phân tích phần mềm độc hại.

Trình bày các phương pháp phân tích phần mềm độc hại: phân tích tĩnh, phân tích động
và phân tích hành vi. Các bước thực hiện các phương pháp phân tích kể trên. So sánh ưu
nhược điểm của các phương pháp phân tích phần mềm độc hại.


Chương 3: Xây dựng công cụ chống hack game ứng dụng phương pháp phân
tích và nhận dạng phần mềm độc hại dựa trên hành vi.

Phương pháp phân tích và nhận dạng phần mềm độc hại dựa trên hành vi. Chương này
trình bày tổng quan về games, hành vi hack game cũng như kỹ thuật hack game cơ bản.
Ứng dụng phương pháp phân tích nhận dạng phần mềm độc hại dựa trên hành vi để xây
dựng một công cụ chống hack game.

Page 4


Ket-noi.com diễn đàn công nghệ, giáo dục

CHƯƠNG I – TỔNG QUAN VỀ PHẦN MỀM ĐỘC HẠI
Chương 1 giới thiệu tổng quan về các phần mềm độc hại, định nghĩa phần mềm độc hại,

phân loại chúng theo NIST, tác hại của phần mềm độc hại đối với hệ thống và người
dùng, lịch sử hình thành và phát triển của các phần mềm độc hại.
1.

Định nghĩa về phần mềm độc hại

Phần mềm độc hại (tên tiếng anh là Malware viết tắt của từ Malicious Software) được
định nghĩa là một loại phần mềm hay chương trình thường được bí mật đưa vào hệ thống
với mục đích làm ảnh hưởng đến tính bí mật, tính toàn vẹn và tính sẵn sàng của dữ liệu,
ứng dụng, hay hệ điều hành (OS). Trong những năm 80 của thế kỷ trước, phần mềm độc
hại viết ra đôi khi gây khó chịu hoặc bất tiện cho các cá nhân và tổ chức nhưng đến ngày
hôm nay, phần mềm độc hại là mối đe dọa bên ngoài nguy hiểm nhất đối với hầu hết các
hệ thống, gây thiệt hại trên diện rộng và đòi hỏi sự nỗ lực làm việc phòng chống, phục
hồi của hầu hết các tổ chức. Không chỉ vậy các phần mềm độc hại tấn công vào các dữ
liệu thông tin nhậy cảm, vi phạm quyền riêng tư của người dùng cũng đã trở thành một
mối quan tâm lớn cho các tổ chức

Page 5


Ket-noi.com diễn đàn công nghệ, giáo dục

2.

Phân loại phần mềm độc hại

Đề tài này sẽ phân loại phần mềm độc hại theo NIST (National Institute of Standards and
Technology : viện tiêu chuẩn và công nghệ quốc gia Hoa Kỳ) [1, pp. 15 - 23]. Theo đó
các phần mềm độc hại được chia thành tám nhóm chính, bao gồm: Virus, Trojan horse,
Worm, Malicious mobile code, Blended attack, Tracking cookies, Attacker tools và NonMalware Threats.

Lọai phần mềm độc hại
Virus

Malicious

Worm

Software

Ví dụ

Compiled Virus

Michelangelo,Stoned,
Jerusalem...

Interpreted Virus

Melisa...

Network Service
Worm

Sasser...

Mass Mailing
worm

Netsky, Mydoom...


Trojan Horse
Malicious Mobile

Nimda...

Code
Blended attacks

Nimda...

Tracking Cookies
Backdoor

Back
Orifice,NetBus...

Page 6


Ket-noi.com diễn đàn công nghệ, giáo dục

Attacker tools

Keylogger

KeySnatch,
KeyLogger Pro...

Rootkits


Hack Defender,
Adore...

Web browser plus-in
Attacker toolkit

Non-malware
Threats

Post
scanner,Password
cracker,Attacks...

Phishing

Virus Hoaxes
Bảng 1.2. Phân loại phần mềm độc hại theo NIST

2.1. Virus
Virus hay virus máy tính được định nghĩa là những chương trình hay đoạn mã được thiết
kế để tự nhân bản và sao chép chính nó vào các đối tượng lây nhiễm khác (file, ổ đĩa,
máy tính,...). Virus được chia làm 2 loại:


Compiled Virus: là virus mà mã thực thi của nó đã được dịch hoàn chỉnh bởi một
trình biên dịch để nó có thể thực thi trực tiếp từ hệ điều hành. Các loại boot virus
như Michelangelo và Stoned, file virus như Jerusalem rất phổ biến trong những
năm 80 của thế kỉ trước là virus thuộc nhóm này. Ngoài ra compiled virus cũng có
thể là pha trộn bởi cả boot virus và file virus trong cùng một phiên bản.




Interpreted Virus: là một tổ hợp của mã nguồn mã chỉ thực thi được dưới sự hỗtrợ
của một ứng dụng cụ thể hoặc một dịch vụ cụ thể trong hệ thống. Virus kiểu này
chỉ là một tập lệnh, cho đến khi ứng dụng gọi thì nó mới được thực thi. Macro
Virus và scripting Virus là những Virus thuộc loại này. Virus Melisa là một đại
diện nôi bật cho loại Virus này.

Page 7


Ket-noi.com diễn đàn công nghệ, giáo dục

2.2. Worm
Worm hay sâu máy tính tương tự như virus cũng là một chương trình có khả năng tựnhân
bản và tự lây nhiễm trong hệ thống. Tuy nhiên điểm khác biệt là worm có thể hoạt động
mà không cần có sự tác động của người dùng, điều đó có nghĩa là worm không cần phải
có file chủ để mang nó khi nhiễm vào hệ thống. Mục tiêu của worm bao gồm làm lãng
phí nguồn lực băng thông của mạng và phá hoại hệ thống như xoá file, tạo backdoor, cài
đặt keylogger... Tấn công của Worm có đặc trưng là lan rộng cực kỳ nhanh chóng do
không cần tác động của con người. Worm có thể chia làm 2 loại:


Network Service Worm lan truyền bằng cách lợi dụng các lỗ hổng bảo mật
củamạng, của hệ điều hành hoặc của ứng dụng. Một ví dụ điển hình cho loạiworm
này là Sasser.



Mass Mailing Worm là loại worm tập trung tấn công qua dịch vụ mail, tuy nhiên

nó tự đóng gói để tấn công và lây nhiễm chứ không bám vào vật chủ là email. Khi
sâu này lây nhiễm vào hệ thống, nó thường cố gắng tìm kiếm sổ địa chỉ và tự gửi
bản thân nó đến các địa chỉ thu nhặt được. Việc gửi đồng thời cho toàn bộ các địa
chỉ thường gây quá tải cho mạng hoặc cho máy chủ mail. Netsky, Mydoom là ví
dụ điển hình cho loại worm này.

2.3. Trojan Horse
Trojan Horse là loại mã độc hại, tên của nó xuất phát từ điển tích nổi tiếng con ngựathành
Troy trong thần thoại Hi Lạp. Khác với Virus hay Worm, Trojan horse không tựnhân
bản, nó lây vào hệ thống với biểu hiện rất ôn hoà nhưng thực chất bên trong có ẩn chữa
các đoạn mã với mục đích gây hại.
Trojan thường ẩn mình dưới dạng một chương trình hữu ích và có những chức năng
mong muốn, hay ít nhất chúng trông như có các tính năng này. Một cách bí mật, nó lại
tiến hành các thao tác khác không mong muốn. Những chức năng mong muốn chỉ làphần
bề mặt giả tạo nhằm che giấu cho các thao tác này. Trong thực tế, nhiều Trojan horse
chứa đựng các phần mềm gián điệp nhằm cho phép máy tính thân chủ bị điều khiển từ xa
qua hệ thống mạng.
2.4. Malicious Mobile Code
Malicious Mobile Code là một dạng mã phần mềm có thể được gửi từ xa vào để chạytrên
một hệ thống mà không cần đến lời gọi thực hiện của người dùng hệ thống đó. Điểm
khác biệt của malicious mobile code với virus, worm là nó không nhiễm vào file và cũng
không tìm cách tự phát tán. Loại phần mềm độc hại này lại tập trung khai thác vào
cácđiểm yếu bảo mật của hệ thống, kiểu tấn công này thường tác động đến hệ thống bằng

Page 8


Ket-noi.com diễn đàn công nghệ, giáo dục

cách tận dụng các quyền ưu tiên ngầm định để chạy mã từ xa. Các công cụ lập trình như

Java, ActiveX, JavaScript, VBScript là môi trường tốt cho malicious mobile code.
Mộttrong những ví dụ nổi tiếng của kiểu tấn công này là Nimda, sử dụng JavaScript.
2.5. Blended attacks
Blended attacks là dạng tấn công hỗn hợp, nó sẽ sử dụng pha trộn nhiều hình thức
tấncông, nhiều phương thức lây nhiễm hay nhiều phương thức truyền dẫn từ các loại
phần mềm độc hại khác nhau để sử dụng. Sâu Nimda thực sự là một ví dụ kinh điển của
loại phần mềm độc hại này, tuy được gọi là sâu Nimda nhưng thực tế nó là sự kết hợp
củaworm, virus và malicious mobile code.
2.6. Tracking Cookies
Tracking cookie là một phần mềm độc hại thông qua cookie để thực hiện việc theo dõi
nắm bắt các hành vi duyệt web của người sử dụng. Như đã biết cookie là một file dữ liệu
được tạo ra bởi web browser lưu thông tin liên quan đến sử dụng trình duyệt web của
người dùng như thông tin tài khoản, mật khẩu, lịch sử truy cập... Cookie được chia thành
2 loại:


Session cookies: Loại tạm thời này chỉ có giá trị cho 1 phiên làm việc duy nhất.
Khi bạn tắt trang web: session cookie mất hiệu lực.



Persistent cookies: Là loại cookies lưu trữ lâu dài trên máy của bạn (cho tới khi
bạn xóa). Mục tiêu của việc duy trì các cookie trong hệ thống máy tính nhằm căn
cứ vào đó để tạo ra giao diện, hành vi của trang web sao cho thích hợp và tương
ứng với từng web-client, mục đích để phục vụ người dùng được tốt hơn.

2.7. Attacker Tools
Attacker Tools đúng như cái tên nó là tập hợp các công cụ được sử dụng bởi
attackernhằm mục đích tấn công vào hệ thống của người dùng sau đó gài phần mềm độc
hại lên đó. Các công cụ này thể giúp cho attacker có thể truy nhập vào hệ thống một cách

bất hợp pháp làm cho hệ thống bị lây nhiễm mã độc hại... Attacker tool có thể nằm trong
một đoạn mã nào đó của một phần mềm độc hại (ví dụ như được built-in trong một
trojan) hoặc được tải vào sau khi phần mềm độc hại nằm trong hệ thống.
Dưới đây là một số loại attacker tools thường gặp:


Backdoor là một thuật ngữ chung chỉ các phần mềm độc hại thường trú và
đợilệnh điều khiển từ bên ngoài thông qua các port dịch vụ như TCP, UDP...
Đaphần các loại Backdoors sẽ cho phép một attacker thực thi các hành vi bất

Page 9


Ket-noi.com diễn đàn công nghệ, giáo dục

hợppháp trên hệ thống của nạn nhân như truyền file, dò mật khẩu, thực hiện
mãlệnh,...


Keylogger hay có tên đầy đủ là Keystroke logger. Keylogger được sử dụng đểbí
mật ghi lại các phím đã được nhấn bằng bàn phím rồi gửi tới attacker, phầnmềm
này có thể ghi lại toàn bộ hoặc có chọn lọc những thông tin mà nạn nhânđã nhập,
ngoài ra một số keyloggers còn có khả năng ghi lại các thông tin bổsung khác,
như ảnh chụp màn hình...Các keylogger nổi tiếng là KeySnatch,KeyLogger Pro.



Rootkits là tập hợp của các files được cài đặt lên hệ thống nhằm biến đổi cácchức
năng chuẩn của hệ thống thành các chức năng tiềm ẩn các nguy cơ tấncông nguy
hiểm.




Web Browser Plug-In là các phần mềm độc hại được cài đặt và thực thi tronglòng
trình duyệt web. Attacker sẽ lợi dụng các plug-in có thể được nạp tự độnglên web
browser khi chúng khởi động sau đó mã độc hại sẽ được cài đặt lên web browser.
Nhờ loại mã độc hại này attacker sẽ có thể đánh cắp thông tin bímật thông qua
việc theo dõi tất cả các hành vi duyệt web của người dùng



Email Generators là một dạng chương trình cho phép tạo ra và gửi đi một sốlượng
lớn các email. Sau khi Email Generators được cài đặt vào hệ thống chúng sẽ làm
nhiệm vụ gửi một lượng lớn các loại email nguy hiểm tới một vài địa chỉ định sẵn
nào đó hoặc có thể là các địa chỉ trong máy tính nạn nhân.Trên email đó cũng có
thể chứa các loại mã độc hại khác như worm, chươngtrình gián điệp...



Attacker Toolkit là tập hợp các công cụ có sẵn (có thể download được ở
trênmạng) hoặc do chính attacker lập trình nên trước đó (để tiện dùng cho
nhữnglần sau).



Non-malware Threats :Phần này tập trung nói về 2 mối nguy cơ tiềm ẩn là
phishing và virus hoaxes,tuy bản chất chúng không phải là một phần mềm độc
hại, nhưng khi kết hợpvới phần mềm độc hại sự ảnh hưởng của nó là rất lớn. Hai
hiểm họa này có tên gọi kỹ thuật chung gọi là Social Engineering, một thuật ngữ
ám chỉ kẻ tấn công dùng các phương thức để lừa mọi người tiết lộcác thông tin

nhạy cảm hoặc thực hiện một hành động nào đó chẳng hạn nhưmở một email có
chứa worm, một file một đường dẫn có chữa mã độc …

Page 10


Ket-noi.com diễn đàn công nghệ, giáo dục

3. Tác hại của phần mềm độc hại
Như đã nêu ở phần định nghĩa mục tiêu chung của tất cả các loại phần mềm độc hại là
gây tổn hại đến tính bí mật, tính toàn vẹn và tính sẵn sàng của hệ thống. Một cách cụ thể
hơn:


Tiêu tốn tài nguyên, giảm hiệu năng hệ thống

Đa phần các máy tính bị nhiễm phần mềm độc hại đều gây tiêu tốn tài nguyên nhưCPU,
RAM, bộ nhớ dũng lượng đĩa cứng, từ đó làm giảm hiệu năng xử lý, chương trình hệ điều
hành bị treo, báo lỗi lập đi lập lại.... Không mở được task manager, CPU RAM luôn bị sử
dụng ở mức 80, 90%, thông báo lỗi hiện lên khắp nơi là dấu hiệu hiển nhiên cho thấy
máy tính bạn đang bị nhiễm phần mềm độc hại. Rõ ràng việc làm tiêu tốn tài nguyên,
giảm hiểu năng hệ thống gây ảnh hưởng không nhỏ đến tínhsẵn sàng của hệ thống. Nguy
hiểm hơn một số phần mềm độc hại còn được thiết kếvới mục đích phá hoại hoặc làm
ngưng hoạt động của hệ thống máy tính.


Phá hủy hệ thống, dữ liệu

Ở một mức độ nguy hiểm hơn một số loại phần mềm độc hại cố tình phá hủy hệ thống
(phá hủy BIOS, làm giảm tuổi thọ của ổ cứng, ...), một số khác khi được xâydựng thì

người thiết kế nó không cố ý đưa vào các đoạn mã làm hỏng hệ thống, tuynhiên quá trình
hoạt động của phần mềm độc hại trong thực tế đôi lúc ngoài dự kiếncủa họ, Phần mềm
độc hại bắt đầu hoạt động bất ổn, thậm chí sinh ra những lỗi làm tê liệt hệ thống. Từ đó,
dẫn tới dữ liệu thông tin quan trong lưu trong hệ thống của bạn cũng có thể bị phá hủy,
tính toàn vẹn và sẵn sàng của hệ thống cũng bị ảnh hưởngnghiêm trọng. Tuy nhiên các
loại phần mềm độc hại hiện nay thường không đơn giảnchỉ có vậy nó có thể thực hiện các
hành vi tinh vi hơn và thậm chí nạn nhân còn không hay biết là mình đã bị nhiễm phần
mềm độc hại.


Đánh cắp dữ liệu thông tin bí mật

Như đã nói ở trên một trong những hành vi cực kì nguy hiểm gây hậu quả vô cùng tolớn
đó là đánh cắp thông tin qua các phần mềm độc hại. Vô số phần mềm độc hạiđược thiết
kế với mục đích bí mật truy cập máy tính của bạn đánh cắp thông tin bímật. Thông tin tài
khoản mật khẩu, số chứng minh thư, tài khoản ngân hàng và vô vàn các thông tin nhạy
cảm khác đều có thể bị đánh cắp. Các hành vi trộm cắp thôngtin như vậy thường có lý do
tài chính, nhưng kẻ trộm cũng có thể làm chứng minh thư giả với thông tin cá nhân của
bạn. Thông tin cá nhân trộm cắp có thể được sử dụng để xin hưởng các phúc lợi xã hội,
khai hồ sơ thuế gian lận hoặc đơn giản là một ID giả để qua mặt cảnh sát khi bị bắt. Từ
đó có thể thấy tính bí mật và toàn vẹn của hệ thống cũng sẽ không được đảm bảo. Ở đây

Page 11


Ket-noi.com diễn đàn công nghệ, giáo dục

chúng ta cũng nhận thấy một điềuhết sức rõ ràng, ban đầu các phần mềm độc hại chỉ
nhằm mục đích chứng tỏ bản thân, rồi tiêu tốn tài nguyên, phá hủy hệ thống từ đó gây
thiệt hại cho nạn nhân, nhưng saunày nó đã có một bước tiến mới không chỉ là gây thiệt

hại cho nạn nhân mà còn có thể làm giàu cho kẻ tấn công.


Thiệt hại tài chính

Hiển nhiên từ các tác hại trên dù trực tiếp hay gián tiếp chúng đều gây nên thiệt hại tài
chính đối với nạn nhân, các công ty tổ chức và xã hội. Theo thống kê của Bkav trong
vòng 12 tháng từ cuối năm 2012 đến cuối năm 2013, người sử dụng ở Việt Namđã phải
chịu tổn thất lên đến gần 8 nghìn tỷ đồng, khoảng 40 triệu USD [2]. Đây không phải là
một con số nhỏ với một nước đang phát triển như chúng ta, thiệt hại vềmặt tài chính mà
phần mềm độc hại đem lại là vô cùng to lớn.
4. Mô tả bài toàn giải quyết
Với sự phát triển mạnh mẽ của phần mềm độc hại cũng như tác hại to lớn mà chúng gây
ra, việc nghiên cứu các kỹ thuật phân tích nhận diện phần mềm độc hại là vô cùng quan
trọng. Đồ án này tập trung giải quyết các phần việc sau:


Giới thiệu các phương pháp phân tích phần mềm độc hại tiêu biểu và đặc biệt sẽ đi
sâu nghiên cứu và tìm hiểu về phương pháp phân tích và nhận diện phần mềm độc
hại dựa trên hành vi.



Ứng dụng phương pháp phân tích phần mềm độc hại dựa trên hành vi vào
xâydựng công cụ chống hack game.

5. Kết chương
Chương 1 đề cập đến các khái niệm cơ bản về phần mềm độc hại, định nghĩa và phân loại
phần mềm độc hại, quá trình hình thành và phát triển của phần mềm độc hại cũng như tác
hại của chúng đối với hệ thống và người dùng. Từ đó giúp cho chúng ta cónhững nhìn

nhận ban đầu về phần mềm độc hại, sự nguy hiểm của nó đến chính chúng ta những
người đã và đang hằng ngày sử dụng hệ thống máy tính, cũng như định hướng giải quyết,
phòng ngừa và khắc phục hậu quả do phần mềm độc hại gây ra.

Page 12


Ket-noi.com diễn đàn công nghệ, giáo dục

CHƯƠNG II – CÁC PHƯƠNG PHÁP PHÂN TÍCH PHẦN MỀM
ĐỘC HẠI
Chương 2 trình bày khái quát về phân tích phần mềm độc hại, các phương pháp phân tích
phần mềm độc hại: phân tích tĩnh, phân tích động và phân tích hành vi. Các bước thực
hiện phương pháp phân tích trên. So sánh ưu nhược điểm của các phương pháp phân tích
phần mềm độc hại.
1.Khái quát về phân tích phần mềm độc hại
Phân tích phần mềm độc hại là quá trình thực hiện các biện pháp nghiệp vụ để thu thập,
tìm hiểu nghiên cứu mọi thông tin về mã độc từ đó xác định đặc tính, hành vi của mãđộc,
cũng như ảnh hưởng và tác hại của nó để đưa ra các biện pháp phòng chống và ngăn
chặn.
Mục đích của phân tích mã độc là để cung cấp các thông tin đầy đủ nhất về mãđộc, từ đó
xây dựng biện pháp xử lý. Cụ thể, phân tích phần mềm độc hại để xác địnhchính xác
những gì đã xảy ra, chúng làm việc gì, gây ảnh hưởng thế nào đến hệ thốngđến máy
tính...
Các phương pháp phân tích phần mềm độc hại:

Page 13


Ket-noi.com diễn đàn công nghệ, giáo dục


Có hai phương pháp cơ bản để phân tích phần mềm độc hại: phân tích tĩnh và phân tích
động (static and dynamic analysis). Đúng như tên gọi, phân tích tĩnh sử dụngcác phương
pháp kiểm tra danh sách các chuỗi kỹ tự, xác định các thuộc tính, sinh chữký cho phần
mềm... để thu thập thông tin liên quan đến các phần mềm độc hại mà không cần chạy nó.
Ngược lại phân tích động tìm hiểu phần mềm độc hại thông qua việc chạy nó.
Ngoài ra trong đồ án này còn tập trung nghiên cứu một phương pháp thứ 3 là phương
pháp phân tích và nhận dạng phần mềm độc hại dựa trên hành vi. Phương pháp này đầu
tiên sẽ tập trung phân tích phần mềm nghi ngờ là phần mềm độc hại từ đó xác định các
hành vi, phân cụm chúng và tạo thủ tục xử lý vùng nhiễm độc.
2.Các phương pháp phân tích phần mềm độc hại
2.1. Phương pháp phân tích tĩnh
2.1.1.Giới thiệu
Phân tích tĩnh là phương pháp thu thập thông tin hữu ích về các phần mềm độc hại thông
qua quá trình phân tích mã hoặc cấu trúc của một chương trình từ đó xác định chức năng
của chúng, đây thường là bước đầu tiên trong việc nghiên cứu phần mềm độc hại.
2.1.2.Các kỹ thuật phân tích tĩnh cơ bản
a. Sử dụng các công cụ Anti-virus quét chữ ký của phần mềm độc hại
Quét chữ ký phần mềm độc hại dựa trên các công cụ Anti-virus là bước đầu tiên trongquá
trình phân tích phần mềm độc hại nhằm mục đích thu thập các thông tin ban đầu về phần
mềm độc hại nếu có. Tuy nhiên, như chúng ta đã biết các công cụ chống virus chủ yếu
dựa trên việc so sánh chữ ký của các phần mềm độc hại nằm trong bộ cơ sở dữ liệu nhận
dạng của phần mềm. Rõ ràng việc xác định phần mềm độc hại dựa trên các công cụ
chống virus là không hoàn hảo, nó phụ thuộc quá nhiều vào cơ sở dữ liệu nhận dạng của
phần mềm chưa kể đến việc các phần mềm độc hại ngày nay càng ngày càng tinh vi và
được tích hợp khả năng biến hình từ đó việc thu thập một cơ sở dữ liệu chữ ký đầy đủ và
cập nhật thường xuyên là không hề đơn giản.
b. Sử dụng hàm băm sinh chữ ký cho phần mềm được phân tích
Như đã nói ở trên mỗi một phần mềm độc hại thì sẽ có chữ ký tương ứng để nhận biết và
phát hiện ra nó. Hàm băm (hashing) là một phương pháp phổ biến được sử dụng

trongchương trình chống Virus để tạo ra chữ ký cho phần mềm độc hại. Các nhà phân
tích sẽ sử dụng một chương trình băm nào đó để tạo chữ ký cho phần mềm độc hại. Một
trong những thuật toán băm phổ biến nhất được sử dụng để lấy chữ ký phần mềm độc hại

Page 14


Ket-noi.com diễn đàn công nghệ, giáo dục

là MD5 (The Message - Digest Algorithm 5). WinMD5 là ví dụ điển hình cho một
chươngtrình băm sử dụng thuật toán MD5.

Hình 2.2-1 Chương trình hàm băm WinMD5
c. Các kỹ thuật đóng gói và xáo trộn mã của phần mềm độc hại và các phương pháp
vượt qua nó
Đa số các phần mềm chương trình hiện này đều được đóng gói hoặc xáo trộn (Packedand
Obfuscated) để nhằm giảm thiểu các nguy cơ như là bị crack, bị hack, đánh cắp ýtưởng...
Tương tự các phần mềm độc hại cũng thường sử dụng đóng gói hoặc xáo trộn để tránh bị
phát hiện cũng như gây khó khăn hơn trong việc phân tích thu thập thông tin. Xáo trộn
chương trình là cách thực hiện trộn lẫn các thông tin để làm khó, ẩn thông tin cần phân
tích. Chương trình đóng gói là một tập hợp con của chương trình xáo trộn mà trong đó

Page 15


Ket-noi.com diễn đàn công nghệ, giáo dục

các chương trình độc hại được nén và không thể phân tích được. Thông qua hai kỹ thuật
này hiệu quả của phương pháp phân tích tĩnh giảm đi đáng kể.
Một điểm đáng chú ý là các phần mềm độc hại đã được đóng gói hoặc được xáo trộn

chứa rất ít chuỗi, đôi khi là còn quá ít kể cả đối với một chương trình rất nhỏ. Thông
thường ta sẽ chỉ thấy được một phần của chuỗi. Muốn phân tích và thu thập được nhiều
thông tin hơn ta cần phải giải mã chương trình đó. PEiD là một chương trình phát
hiệnđóng gói nổi tiếng và rất hiệu quả, nhưng nó đơn thuần sẽ chỉ làm nhiệm vụ phát hiện
và cho chúng ta một cái tên. Sau đó việc giải mã chương trình còn phụ thuộc vào trình
độcủa người phân tích cũng như là độ khó của thuật toán đóng gói và xáo trộn. Tuy
nhiênkể cả đối với những người không có nhiều kinh nghiệm trong việc giải mã chương
trình cũng có thể thông qua google để tìm kiếm những công cụ được xây dựng sẵn hỗ trợ
giải mã.

Hình 2.2-2 Sử dụng PEID phát hiện đóng gói
d. Thu thập thông tin về các hàm, các thư viện liên kết của phần mềm độc hại
90% các loại phần mềm độc hại được viết trên môi trường windows việc thu thập
cácthông tin về các hàm (function), các thư viện liên kết tĩnh (Static linking library),
thưviện liên kết động (Dynamic Link Library), các hàm imports, các hàm exports là bước
rất quan trong trọng quá trình phân tích tĩnh. Để thực hiện được bước này người phân tích
cần có kiến thức về nền tàng windows, cấu trúc tập tin PE file cũng như các thư viện liên
kết, các hàm import,export...

Page 16


Ket-noi.com diễn đàn công nghệ, giáo dục

 Cấu trúc cơ bản PE file

Hình 2.2-3 Cấu trúc File PE
Cấu trúc PE có thể gồm nhiều section, trong đó tối thiểu cần 2 section: data và code.
Một số section thông dụng hay được gặp ở các chương trình:



Executable Code Section, có tên là .text (Micro$oft) hoặc là CODE
(Borland).



Data Sections, có nhng tên nh .data, .rdata hoc .bss (Micro$oft) hay
DATA(Borland).



Resources Section, có tên là .rsrc.

Page 17


Ket-noi.com diễn đàn công nghệ, giáo dục



Export Data Section, có tên là .edata.



Import Data Section. có tên là .idata.



Debug Information Section, có tên là .debug.


Cấu trúc các section trên bộ nhớ và trên ổ đĩa là như nhau, tuy nhiên khi được nạplên bộ
nhớ, các Windows loader sẽ quyết định thứ tự và vị trí nạp các phần, do đó vị trí các phần
trên ổ đĩa và trên bộ nhớ sẽ có sự khác biệt.
 Hàm và thư viện liên kết

Để hiểu rõ hơn về các hàm trong windows chúng ta cần tìm hiểu một số khái niệm cơ bản
liên quan.
API - Application Programming Interface tạm dịch là giao diện lập trình ứng dụng. API
cung cấp hầu hết các tính năng thông dụng cho tất cả các chương trình chạy trên nền
Window. Hầu hết các hàm API thường được chứa trong file DLL trong thư mục hệ thống
Window thường là C:\Windows\System.
Các hàm (Function) là thành phần chính của Windows API, chúng được chứa trong các
file DLL, và có thể được truy xuất một các dễ dàng bởi các chương trình trênnền
Window. Hàm được chia làm 2 loại:


Hàm import (Imported Functions): Các tiêu đề tập tin PE cũng bao gồm
thông tin về các hàm cụ thể được sử dụng thực thi ở một chức năng trong
chương trình. Tên của các hàm Windows có thể cung cấp cho ta một ý
tưởng về những gì chương trình thực thi. Microsoft cung cấp tài liệu API
Windows thông qua thư viện MSDN.



Hàm export (Exported Functions): Giống như các hàm imports, các hàm
exports để tương tác với các chương trình khác. Thông thường, một DLL
thực hiện một hoặc nhiều hàm và exports để một tập tin thực thi có thể
imports và sử dụng chúng.

Ở đây có một khái niệm mới DLL nó là viết tắt của Dynamic linking library hay được

dịch là thư viện liên kết động. Trong lập trình windows hỗ trợ thư viện mã có thể liên kết
tĩnh khi biên dịch, hoặc liên kết động khi thực hiện. Thư viện liên kết là một trong những
phần tử cấu trúc quan trong nhất trong windows. Khi phân tích tĩnh phần mềm độc hại
thư viện liên kết cũng là một phần rất quan trong hiểu rõ về nó chung ta có thể thu thập
được những thông tin hết sức quan trong từ đó có thể xác định được các hàm (vì các hàm

Page 18


Ket-noi.com diễn đàn công nghệ, giáo dục

nằm trong DLL) cũngnhư có cái nhìn rõ nét hơn về chức năng của phần mềm độc hại.
Thư viện mã có thể liên kết theo 2 cách:


Liên kết tĩnh là phương pháp thường được sử dụng nhất của các thư viện liên kết,
xảy ra trong quá trình biên dịch ứng dụng. Tại giai đoạn liên kết (linking) của quá
trình biên dịch, thư viện liên kết tĩnh sẽ được nhúng vào file chương trình, sau đó
Trình biên dịch sẽ copy đoạn mã lệnh của hàm thư viện vào trong những module
gọi của chương trình. Ưu điểm của liên kết tĩnh là dễ thực hiện, chương trình có
thể chạy độc lập, không cần các file kèm theo, ngược lại nó cũng có khá nhiều
nhược điểm: đoạn mã lệnh được nhúng vào file chương trình nên kích thước
chương trình thường sẽ lớn, gây tốn bộ nhớ, đoạn mã lệnh được nhúng vào nhiều
file chương trình khác nhau rõ ràng là không tối ưu và cũng không tiết kiệm bộ
nhớ, khi muốn thay đổi hàm thư viện chúng ta cần phải biên dịch lại toàn bộ các
file chương trình.



Khác với liên kết tĩnh, liên kết động xảy ra trong quá trình thực hiện chương trình.

Các phần mềm độc hại thường sử dụng các thư viện liên kếtđộng này, đặc biệt là
trong đóng gói và xáo trộn mã. Các đoạn mã trong thư viện chỉ được nạp vào
chương trình khi thực sự cần thiết, sau khi sử dụng xong có thể giải phóng chúng.
Phương pháp này khắc phục được các nhượcđiểm của liên kết tĩnh, ưu điểm của
nó là giảm kích thước của chương trình, nhiều chương trình có thể dùng chung 1
DLL do đó tiết kiệm bộ nhớ(thông thường, các ứng dụng có data riêng, nhưng có
thể chia xẻ mã lệnh), khi không còn sử dụng, có thể giải phóng DLL khỏi bộ nhớ,
khi cần nâng cấp chỉ cần thay thế file DLL, các file chương trình khác không bị
ảnh hưởng.

2.2. Phương pháp phân tích động
2.2.1. Giới thiệu
Nếu ở phương pháp phân tích tĩnh tập trung thu thập tìm kiếm thông tin sau đó thông qua
các hàm các thư viện liên kết phóng đoán chức năng của phần mềm độc hại,ngược lại
phân tích động sẽ cho chúng ta cái nhìn rõ ràng và chuẩn xác hơn về chức năng của phần
mềm độc hại thông qua việc thực thi chúng. Ví dụ, phân tích một Keylogger, phân tích
động có thể cho phép xác định vị trí tập tin lưu thông tin của Keylogger trên hệ thống,
khám phá các loại hồ sơ nó lưu giữ, cũng như giải mã thông tin nó gửi đi. Rõ ràng nó sẽ
cho chúng ta cái nhìn rõ nét hơn nhiều so với phương pháp phân tích tĩnh.
Các bước trong quá trình thực hiện phân tích động:


Thiết lập môi trường ảo phân tích.

Page 19


Ket-noi.com diễn đàn công nghệ, giáo dục




Sử dụng Sandbox.



Thực thi phần mềm nghi ngờ độc hại.



Giám sát tiến trình của phần mềm nghi ngờ độc hại.



Giám sát mạng khi chạy phần mềm nghi ngờ độc hại.

2.2.2. Các bước trong quá trình phân tích động
a. Thiết lập môi trường phân tích
Một trong những nhược điểm của phân tích động là gây nguy hiểm cho hệ thống vì vậy
thiết lập một môi trường an toàn là tối quan trọng. Các phần mềm độc hại ngày nayngày
càng nguy hiểm và nếu ta chạy nó trên một máy vật lý có kết nối mạng, một số phần
mềm độc hại hoàn toàn có thể nhanh chóng lây lan vào những máy khác trên mạng.khi đó
không chỉ có máy tính của bạn mà toàn bộ hệ thống đều có thể bị ảnh hưởng, hậu quả của
nó là vô cùng nghiêm trọng. Một môi trường an toàn sẽ giảm thiểu ở mức thấp nhất rủi ro
mà vẫn có thể tiến hành phân tích phần mềm độc hại một cách có hiệu quả. Để xây dựng
một môi trường phân tích chúng ta có 2 cách: sử dụng máy vật lý (máy tính cá nhân của
bạn) hoặc sử dụng máy ảo. Sử dụng máy vật lý nằm trong một mạng được cô lập, không
có kết nối LAN hay kết nối internet giảm thiểu nguy cơ lây lan của phần mềm độc hại.
Tuy nhiên, việc thiếu một kết nối Internet có thể khiến nhiều phần của phần mềm độc hại
không được thực hiện do một số tính năng phụ thuộc vào kết nối trực tiếp Internet. Một
điểm bất lợi nữa là sẽ không hề đơn giản khi muốn loại bỏ phần mềm độc hại đó khỏi

trên máy tính cá nhân của bạn. Thông thường để tránh giảm thiểu nguy cơ, hầu hết khi
thử nghiệm phần mềm độc hại trên các máy vật lý sử dụng một công cụ như Norton
Ghost để quản lý các hình ảnh sao lưu của hệ điều hành, khôi phục lại trên máy sau khi
đã hoàn thành phân tích.

Page 20


Ket-noi.com diễn đàn công nghệ, giáo dục

Hình 2.2-4. Ứng dụng chạy trên máy vật lý và trên máy ảo
Cách thứ 2 là sử dụng máy ảo. Hiện nay có rất nhiều phần mềm hỗ trợ ảo hóa hệđiều
hành ngày trên máy tính của bạn như VMWare, VirtualBox... Cách này sẽ khắcphục
được nhược điểm của sử dụng máy vật lý máy tính cá nhân sẽ hoàn toàn được an toàn
khỏi các phần mềm độc hại. Thông qua các chức năng hỗ trợ của phần mềm ảo hóa như
thay đổi card mạng nhà phân tích có thể hoàn toàn cô lập hoặc tạo kết nối ra ngoài mà
không gây ảnh hướng tới hệ thống mạng của bạn. Sử dụng snapshot việc quản lý xác định
các chức năng của phần mềm độc hại sẽ dễ dàng hơn. Nhược điểm của máy ảo là không
thể tạo được một môi trường thực như sử dụng máy vật lý, dẫn tới kết quả phân tích có
thể bị ảnh hưởng. Thậm chí một số phần mềm độc hại còn có khả năng phát hiện ra môi
trường ảo tuy nhiên xét về mặt tổng thể trong phân tích động máy ảo vẫn được sử dụng
phổ biến hơn. Ngoài ra có thể tạo máy ảo thông qua sử dụng sandbox - công cụ này sẽ
được trình bày cụ thể hơn ở mục tiếp theo.
b. Sử dụng Sandbox

Page 21


Ket-noi.com diễn đàn công nghệ, giáo dục


Như đã nói ở trên ngoài phương pháp ảo hóa hệ điều hành, hiện nay các nhà phân tích
còn sử dụng một phương pháp khác khá phổ biến đó là sandbox. Sandbox là xây dựng
một môi trường an toàn, cộng với cơ chế bảo mật cho phép chạy các chương trình không
nghi ngờ độc hại mà không sợ gây ra nguy hiểm cho hệ thống của bạn. Thực chất
Sandbox cũng tự tạo ra một môi trường ảo để thực thi phần mềm nghi ngờ độc hại nhưng
khác với ảo hóa hệ điều hành, sandbox xây dựng theo cơ chế khác nó mô phỏng các hành
động, các dịch vụ, kể cả các liên kết mạng để đảm bảo rằng các phần mềm nằm trên nó
đều có thể hoạt động bình thường. Hiện tại có rất nhiều các phần mềm sandbox khác
nhau như Norman SandBox, GFI Sandbox, Anubis, Cuckoo sandbox, và Comodo Instant
đa phần là các phần mềm miễn phí. Norman SandBox và GFI Sandbox là 2 phần mềm
phổ biến nhất trong các Sandbox bảo mật máy tính.

Hình 2.2-5. Sử dụng Cuckoo Sandbox phân tích mã độc

c. Thực thi phần mềm nghi ngờ độc hại

Page 22


Ket-noi.com diễn đàn công nghệ, giáo dục

Thực thi phần mềm độc hại là một trong những bước quan trọng trong quá trình phân tích
động. Trong quá trình chạy EXE và DLL là các tệp tin thực thi quan trọng chúng ta
thường phải quan tâm. Thông thường chúng ta hay nhấp đúp chuột để chạy các tệp tin
hoặc chạy các tập tin qua cửa sổ command prompt bằng các dòng lệnh, tuy nhiên đối với
các file định dạng DLL việc thực thi chúng sẽ hơi khác vì Windows không biết làm thế
nào để chạy chúng một cách tự động.
d. Giám sát tiến trình của phần mềm nghi ngờ độc hại
Sau khi thực thị phần mềm nghi ngờ độc hại, các nhà phân tích cần giám sát tiền trình
hoạt động của nó. Process Monitor và Process Explorer là hai công cụ giám sát tiến trình

tiêu biểu do Windows cung cấp. Chức năng chính là hỗ trợ theo dõi registry, tập tin hệ
thống, mạng, tiến trình, và luồng hoạt động.
Giao diện chính của Process Monitor hiển thị thông tin chi tiết về các tiến trình bao gồm
cả số thứ tự (PID), dấu thời gian của sự kiện, tên của tiến trình gây ra sựkiện, sự kiện hoạt
động, đường dẫn được sử dụng bởi sự kiện này và kết quả của sự kiện.

Hình 2.2-6. Giao diện Process Monitor

e. Giám sát mạng khi chạy phần mềm nghi ngờ độc hại

Page 23


Ket-noi.com diễn đàn công nghệ, giáo dục

Với sự phát triển của internet ngày nay, các phần mềm độc hại không chỉ lây lan qua các
thiết bị lưu trữ mà còn có thể lây lan mạnh mẽ qua mạng. Việc giám sát mạng thi thực thi
một phần mềm nghi ngờ độc hại là rất cần thiết. Wireshark là một trong những công cụ
giám sát mạng dễ sử dụng hiệu quả và cũng rất trực quan kể cả với những người mới sử
dụng. Chức năng chính của Wireshark theo dõi lưu lượng mạng bắt gói tin cũng như hiện
thị thông tin chi tiết các gói tin.

Hình 2.2-7. Bắt gói tin trên card wifi sử dụng Wireshark
Wireshark cung cấp rất nhiều chức năng hiệu quả trong quá trình phân tích giám sát
mạng như tạo bộ lọc bắt các gói tin dựa trên thông tin cho trước như địa chỉ nguồn, địa
chỉ đích, giao thức...

Page 24



Ket-noi.com diễn đàn công nghệ, giáo dục

Wireshark cho phép kiểm tra nội dung của một phiên TCP/UDP, bằng cách kích chuột
phải vào bất kỳ vào gói TCP/UDP và chọn Follow UDP/TCP Stream. Có thể thấy trong
hình 2.2-20, cả luồng được hiển thị theo thứ tự phiên, có màu sắc hiển thị của kết nối.

Hình 2.2-8. Wireshark chụp theo luồng TCP
Kết thúc quá trình phân tích động kết quả thu được sẽ là thông tin về các hoạt động cũng
như chức năng của phần mềm nghi ngờ độc hại khi chạy trong hệ thống. Các thông tin về
hoạt động chính được giám sát: thông tin hoạt động các tiến trình, hoạtđộng của registry
và dịch vụ trong hệ thống, hoạt động của mạng.

Page 25


×