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

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



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,

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


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.


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ư

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.

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ì

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


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

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:


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

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



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


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



Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status