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

Nghiên cứu phương pháp phát hiện mã độc dựa trên các kỹ thuật học máy tt

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 (974.06 KB, 26 trang )

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
---------------------------------------

NGUYỄN THỊ NGỌC ANH

NGHIÊN CỨU PHƯƠNG PHÁP PHÁT HIỆN MÃ ĐỘC
DỰA TRÊN CÁC KỸ THUẬT HỌC MÁY

Chuyên ngành: HỆ THỐNG THÔNG TIN
Mã số: 8.48.01.04

TÓM TẮT LUẬN VĂN THẠC SĨ

HÀ NỘI - 2019


Luận văn được hoàn thành tại:
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

Người hướng dẫn khoa học: TS. Hoàng Xuân Dậu

Phản biện 1: PGS.TS. Phạm Văn Cường

Phản biện 2: PGS.TS. Trần Nguyên Ngọc

Luận văn sẽ được bảo vệ trước Hội đồng chấm luận văn thạc sĩ tại Học viện Công nghệ Bưu chính
Viễn thông
Vào lúc: 9 giờ 00 ngày 19 tháng 1 năm 2019
Có thể tìm hiểu luận văn tại:
- Thư viện của Học viện Công nghệ Bưu chính Viễn thông



i

MỤC LỤC
MỤC LỤC .................................................................................................................................i
MỞ ĐẦU ..................................................................................................................................1
CHƯƠNG 1 - TỔNG QUAN VỀ MÃ ĐỘC VÀ PHÁT HIỆN MÃ ĐỘC ..............................3
1.1

Tổng quan về mã độc ..................................................................................................3

1.1.1

Khái niệm mã độc ................................................................................................3

1.1.2

Các dạng mã độc ..................................................................................................4

1.2

Các phương pháp phát hiện mã độc............................................................................6

1.2.1

Phương pháp phát hiện dựa trên chữ ký ..............................................................6

1.2.2

Phương pháp phát hiện dựa trên hành vi .............................................................7


1.3

Sự cần thiết của học máy trong phát hiện mã độc ......................................................7

1.4

Các nghiên cứu liên quan............................................................................................8

1.5

Kết luận chương ..........................................................................................................8

CHƯƠNG 2 - PHÁT HIỆN MÃ ĐỘC DỰA TRÊN HỌC MÁY ...........................................9
2.1

Khái quát về các kỹ thuật học máy .............................................................................9

2.1.1

Tổng quan về học máy .........................................................................................9

2.1.2

Một số kỹ thuật học máy....................................................................................10

2.2

Mô hình phát hiện mã độc dựa trên học máy ...........................................................12


2.3

Kết luận chương ........................................................................................................13

CHƯƠNG 3 - CÀI ĐẶT VÀ THỬ NGHIỆM .......................................................................14
3.1

Thu thập và tiền xử lý dữ liệu ...................................................................................14

3.1.1

Dữ liệu mẫu ........................................................................................................14

3.1.2

Cuckoo Sandbox ................................................................................................14

3.1.3

Trích xuất đặc trưng ...........................................................................................14

3.1.4

Lựa chọn đặc trưng ............................................................................................15


ii
3.2

Huấn luyện và kiểm thử mô hình .............................................................................15


3.3

Kết quả và đánh giá ..................................................................................................15

3.3.1

K-Nearest Neighbor ...........................................................................................15

3.3.2

Support Vector Machines ..................................................................................16

3.3.3

J48 Decision Tree ..............................................................................................16

3.3.4

Naïve Bayes .......................................................................................................17

3.3.5

Random Forest ...................................................................................................17

3.4

Nhận xét ....................................................................................................................18

3.5


Kết luận chương ........................................................................................................19

KẾT LUẬN VÀ KIẾN NGHỊ ................................................................................................20
TÀI LIỆU THAM KHẢO ......................................................................................................21


1

MỞ ĐẦU
1. Lý do chọn đề tài
Hiện nay, sự phát triển nhanh chóng của công nghệ thông tin và không gian mạng đã
đem lại rất nhiều lợi ích trong đời sống xã hội. 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 và tổ chức trên 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 mới, các phương pháp
phát hiện mã độc dựa trên hành vi được nghiên cứu và triển khai. Để nâng cao hiệu quả của
quá trình xây dựng hồ sơ phát hiện mã độc, các phương pháp học máy được sử dụng để huấn
luyện các đặc trưng hành vi của mã độc cho việc xây dựng bộ phát hiện. Ưu điểm của việc
ứng dụng học máy trong phát hiện mã độc là có thể tự động hóa quá trình xây dựng hồ sơ
phát hiện và cải thiện khả năng phát hiện các dạng mã độc mới. Theo hướng nghiên cứu này,
đề tài luận văn “Nghiên cứu phương pháp phát hiện mã độc dựa trên các kỹ thuật học máy”
tiến hành nghiên cứu ứng dụng các kỹ thuật học máy để tìm ra phương pháp phát hiện mã độc
cho hiệu quả cao nhất.

Luận văn bao gồm 3 chương:
Chương 1: Tổng quan về mã độc và phát hiện mã độc
Chương này sẽ giới thiệu tổng quan về mã độc, bao gồm khái niệm, các dạng mã độc,
lịch sử phát triển và tác hại của mã độc. Bên cạnh đó, chương cũng giới thiệu về các phương
pháp phát hiện mã độc, sự cần thiết của học máy trong việc phát hiện mã độc và chỉ ra một
số nghiên cứu liên quan.
Chương 2. Phát hiện mã độc dựa trên học máy
Giới thiệu tổng quát về học máy, trình bày một số kỹ thuật học máy cụ thể và đưa ra
mô hình phát hiện mã độc dựa trên học máy.
Chương 3. Cài đặt và thử nghiệm


2
Tiến hành thử nghiệm mô hình phát hiện mã độc ở chương 2. Bao gồm: thu thập và
tiền xử lý dữ liệu, huấn luyện và kiểm thử, cuối cùng là đưa ra kết quả và đánh giá.
2. Mục đích nghiên cứu
-

Nghiên cứu các phương pháp trích chọn đặc trưng dùng trong việc trích xuất đặc trưng
hành vi của mã độc để làm đầu vào cho các thuật toán học máy.

-

Thử nghiệm và đánh giá một số thuật toán học máy dùng để phân loại, phát hiện mã
độc.

3. Đối tượng và phạm vi nghiên cứu
-

Đối tượng:

 Các kỹ thuật học máy: K-Nearest Neighbors (KNN), Cây quyết định, Naïve
Bayes, Support Vector Machine (SVM) và Random Forest.
 Công cụ sử dụng: Cuckoo Sandbox
 Tập dữ liệu mẫu bao gồm các mẫu mã độc thu thập được từ Internet.

-

Phạm vi:
 Giới hạn trong việc phân loại các mẫu mã độc trong tập dữ liệu mẫu.
 Tập trung nghiên cứu các kỹ thuật học máy K-Nearest Neighbors (KNN), Cây
quyết định, Naïve Bayes, Support Vector Machine (SVM) và Random Forest.

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


3

CHƯƠNG 1 - TỔNG QUAN VỀ MÃ ĐỘC VÀ PHÁT HIỆN MÃ ĐỘC
1.1 Tổng quan về mã độc
1.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 đó.
Năm 2017 là năm bùng nổ của các loại mã độc tống tiền (ransomware) và các loại mã
độc đào tiền ảo. Theo thống kê từ Symatec [26], số lượng mã độc đào tiền ảo được phát hiện

trong năm 2017 tăng 8,500% so với các năm trước. Liên quan tới đào tiền ảo, các thiết bị IoT
cũng là một mục tiêu được nhắm đến. Cũng theo Symatec, số lượng các cuộc tấn công nhằm
vào thiết bị IoT tăng 600%, tức là tội phạm mạng có thể lợi dụng mối liên kết giữa các thiết
bị này để đào tiền ảo trên diện rộng.
Quá trình phát triển của mã độc có thể được chia làm 3 giai đoạn chính [23]:
-

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


4


1.1.2 Các dạng mã độc
a) 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.
b) 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.
c) 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.
d) 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 yê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.
e) 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


5
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.
f) 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 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.
g) 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ủ.
h) 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.
i) 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 toán để khôi phục
lại dữ liệu về bình thường. Phương thức thanh toá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.


6

1.2 Các phương pháp phát hiện mã độc
1.2.1 Phương pháp phát hiện dựa trên chữ ký
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 [21]:
1. 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.
2. 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.
3. Lưu vết: trước khi thực hiện phân tích cần tính toá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.
4. 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.
5. 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.
Ưu điểm của phân tích tĩnh là có thể tìm ra tất cả kịch bản thực thi có thể có của mã
độc mà không bị hạn chế về bất kỳ điều kiện gì. Hơn nữa, phân tích tĩnh an toàn hơn phân
tích động bởi không cần thực thi mã độc trực tiếp, vì thế sẽ không gây nguy hiểm cho hệ

thống. Tuy nhiên phân tích tĩnh lại tốn rất nhiều thời gian, vì thế phân tích tĩnh thường không
được sử dụng trong thực tế mà thường dùng để nghiên cứu, ví dụ khi nghiên cứu chữ ký cho
các mã độc zero-day [21].
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ó.


7

1.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 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
quá 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 [8].
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
[11]. 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.

1.3 Sự cần thiết của học máy trong phát hiện mã độc
Phương pháp phát hiện mã độc dựa trên chữ ký chỉ phù hợp với các mã độc phổ biến,
đã được phát hiện bởi các nhà phát triển phần mềm diệt virus. Nó không thể phát hiện các mã
độc đa hình – mã độc có khả năng thay đổi chữ ký, cũng như các mã độc mới chưa có chữ ký.
Khi sử dụng phương pháp heuristics, cần phải có một số ngưỡng để xác định mã độc,
định ra một số lượng heuristics cần để một phần mềm được coi là độc hại. Tuy nhiên việc này


8
không phải lúc nào cũng chính xác. Một số hành vi có thể nguy hiểm hơn các hành vi khác,
ví dụ, “thay đổi quyền” thường dẫn đến nhiều tác động nghiêm trọng đến hệ thống hơn là
“thay đổi registry key”. Vì thế một số hành vi khi kết hợp với nhau sẽ đáng ngờ hơn khi nó
thực thi một mình. Các kỹ thuật học máy có thể được áp dụng để tính toán các số liệu này và
đưa ra kết quả chính xác hơn.
Ngoài ra, học máy cũng giúp tự động hóa quá trình phát hiện mã độc. Dựa trên việc
“học” các đặc trưng mẫu, các kỹ thuật học máy có thể tự động thêm các đặc trưng mới và tối
ưu hóa tập đặc trưng, loại bỏ các đặc trưng dư thừa. Tuy nhiên, với lượng dữ liệu khổng lồ,
để có kết quả tốt nhất, học máy cần kết hợp với các công nghệ khác như Big Data và Điện

toán đám mây.

1.4 Các nghiên cứu liên quan
Dragos Gavrilut [10] đã đề xuất hệ thống phát hiện mã độc dựa trên các thuật toán
perceptron cải tiến. Thuật toán có độ chính xác cao nhất cũng có nhiều kết quả dương tính sai
nhất. Thuật toán cân đối nhất có tỉ lệ dương tính sai thấp và có độ chính xác là 93.01%.
Singhal và Raul đã thảo luận về phương pháp phát hiện dựa trên thuật toán Random
Forest cải tiến kết hợp với Information Gain để biểu diễn đặc trưng tối ưu hơn [22]. Tỉ lệ phát
hiện là 97% và tỉ lệ dương tính sai là 0.03.
Baldangombo và cộng sự đã giới thiệu phương pháp trích chọn đặc trưng dựa trên tiêu
đề PE, các thư viện DLL và các hàm chức năng API [2]. Thuật toán có kết quả tốt nhất là J48,
với tỉ lệ chính xác lên tới 99%.
Alazab [1] đã đề xuất phương pháp sử dụng API để biểu diễn đặc trưng của mã độc.
Thuật toán Support Vector Machine cho kết quả tốt nhất với tỉ lệ 97.6%, tỉ lệ dương tính sai
là 0.025.

1.5 Kết luận chương
Với sự phát triển nhanh chóng của mã độc, các phương pháp phát hiện dựa trên chữ
ký và dựa trên heuristics dần không còn thực sự hiệu quả. Vì thế việc phát triển một phương
pháp phát hiện mới đang là yêu cầu cấp thiết hiện nay. Một phương pháp đang được đề xuất
là kết hợp phân tích động và các kỹ thuật học máy để tăng độ chính xác trong quá trình trích
chọn đặc trưng và phát hiện. Phương pháp này có độ chính xác cao hơn và có khả năng phát
hiện được cả mã độc đa hình và mã độc zero-day. Chương 2 của luận văn sẽ giới thiệu về các
kỹ thuật học máy được sử dụng phổ biến và mô hình phát hiện mã độc dựa trên học máy.


9

CHƯƠNG 2 - PHÁT HIỆN MÃ ĐỘC DỰA TRÊN HỌC MÁY
2.1 Khái quát về các kỹ thuật học máy

2.1.1 Tổng quan về học máy
2.1.1.1 Khái niệm cơ bản
Theo wikipedia, Học máy là một lĩnh vực của Trí tuệ nhân tạo liên quan đến việc
nghiên cứu và xây dựng các kĩ thuật cho phép các hệ thống "học" tự động từ dữ liệu để giải
quyết những vấn đề cụ thể [31].
Quy trình chung của một tiến trình học máy thường bao gồm 5 bước sau:
1. Nhập dữ liệu. Đầu tiên, tập dữ liệu được tải lên từ tệp tin và lưu vào bộ nhớ.
2. Xử lý dữ liệu. Tại bước này, dữ liệu được tải lên từ bước 1 sẽ được chuyển đổi,
làm sạch và chuẩn hóa để phù hợp với thuật toán. Quá trình trích xuất và lựa chọn
đặc trưng cũng diễn ra ở bước này. Sau đó, dữ liệu được chia ra thành hai tập – ‘tập
huấn luyện’ và ‘tập thử nghiệm’. Dữ liệu từ tập huấn luyện được dùng để xây dựng
mô hình, sau đó sẽ được đánh giá thông qua tập thử nghiệm.
3. Huấn luyện mô hình. Xây dựng mô hình dựa trên thuật toán đã lựa chọn.
4. Thử nghiệm mô hình. Mô hình đã được xây dựng và huấn luyện ở bước 3 sẽ được
thử nghiệm thông qua tập dữ liệu thử nghiệm, và kết quả sinh ra được dùng để xây
dựng nên một mô hình mới, quá trình diễn ra lặp đi lặp lại này được gọi là “học”
từ các mô hình trước đó.
5. Triển khai mô hình. Ở bước này, mô hình tốt nhất sẽ được lựa chọn để triển khai
(sau một số bước lặp nhất định hoặc khi đạt được kết quả cần thiết).

2.1.1.2 Trích chọn đặc trưng
Quá trình trích xuất dữ liệu từ tệp tin được gọi là trích xuất đặc trưng. Mục đích của
quá trình này là thu được một tập dữ liệu chi tiết và không dư thừa. Các đặc trưng phải biểu
diễn thông tin quan trọng và liên quan tới tập dữ liệu nếu không kết quả dự đoán sẽ không
chính xác. Với mỗi lĩnh vực, đặc trưng của dữ liệu cũng khác nhau, nên không có phương
pháp chung cho việc trích xuất đặc trưng.
Một yêu cầu quan trọng khác đối với một tập đặc trưng hợp lệ là không dư thừa. Có
các đặc trưng dư thừa như các đặc trưng nói về cùng một thông tin, hoặc các thuộc tính dư
thừa, có thể gây ảnh hưởng đến thuật toán, từ đó dẫn đến kết quả không chính xác.



10
Ngoài ra, nếu dữ liệu đầu vào quá lớn (quá nhiều đặc trưng), nó có thể được chuyển
đổi thành các vector đặc trưng nhỏ hơn (giảm bớt số đặc trưng). Quá trình này gọi là chọn lọc
đặc trưng. Kết quả của quá trình này là lựa chọn ra các đặc trưng bao quát nhất từ tập dữ liệu
mà không làm giảm độ chính xác.

2.1.1.3 Học có giám sát và học không giám sát
Đối với học có giám sát, việc học được dựa trên các dữ liệu được dán nhãn. Trong
trường hợp này, chúng ta sẽ dự đoán đầu ra (outcome) của một dữ liệu mới (new input) dựa
trên các cặp (input, outcome) đã biết từ trước.
Học có giám sát được chia nhỏ thành hai loại chính:
 Phân lớp (Classification). Dựa vào tập dữ liệu đã được dán nhãn, với mỗi nhãn định
nghĩa một lớp, dự đoán xem một dữ liệu mới chưa biết thuộc vào lớp nào.
 Hồi quy (Regression). Nhãn không được chia thành các nhóm mà là một giá trị thực
cụ thể.
Ngược lại với học có giám sát, trong học không giám sát, dữ liệu không được dán
nhãn. Ở đây, mục tiêu là tìm một số mẫu trong tập dữ liệu chưa được phân loại, thay vì dự
đoán một số giá trị. Một bài toán quen thuộc của học không giám sát là phân cụm (clustering).
Phân cụm là việc tìm kiếm điểm chung giữa các dữ liệu trong tập dữ liệu và chia chúng thành
các cụm tương ứng dựa vào điểm chung này.

2.1.2 Một số kỹ thuật học máy
2.1.2.1 K-Nearest Neighbors
K-Nearest Neighbors (KNN) là một trong những thuật toán đơn giản nhất (mà hiệu
quả trong một vài trường hợp) trong số các thuật toán của học máy. KNN là một thuật toán
phi tham số, tức là nó không đưa ra bất kỳ dự đoán nào về cấu trúc của dữ liệu. Khi huấn
luyện, thuật toán này không học một điều gì từ dữ liệu huấn luyện (đây cũng là lý do thuật
toán này được xếp vào loại lazy learning).
Hạn chế của thuật toán KNN là hiệu suất kém trên các bộ dữ liệu được phân phối

không đồng đều. Nếu một lớp có nhiều điểm dữ liệu hơn các lớp khác, một điểm dữ liệu mới
sẽ có nhiều điểm lân cận thuộc lớp đó và từ đó dẫn đến kết quả dự đoán không chính xác [14].

2.1.2.2 Support Vector Machines
Support Vector Machines (SVM) là một thuật toán phổ biến thường được dùng trong
các bài toán phân lớp. Ý tưởng chính là tìm kiếm một siêu mặt phẳng phân chia các lớp một


11
cách tối ưu nhất. Cụm từ ‘support vector’ chỉ các điểm nằm gần siêu mặt phẳng nhất, ảnh
hưởng đến vị trí của siêu mặt phẳng nếu bị xóa bỏ. Khoảng cách giữa support vector và siêu
mặt phẳng được gọi là biên (margin). Mục đích của SVM là tìm một siêu mặt phẳng sao cho
biên là lớn nhất.
Thuật toán SVM thường cho kết quả khá chính xác, đặc biệt là đối với các tập dữ liệu
“sạch”. Hơn nữa, nó còn phù hợp với các tập dữ liệu nhiều chiều, kể cả khi số chiều nhiều
hơn số lượng mẫu. Nó cũng hiệu quả với các tập dữ liệu có nhiều nhiễu hoặc chồng chéo
nhau. Tuy nhiên, thời gian huấn luyện có thể rất lâu [24].

2.1.2.3 Naïve Bayes
Naïve Bayes là thuật toán phân lớp dựa trên định lý Bayes về lý thuyết xác suất. Nó có
thể được dùng cho các bài toán nhị phân hoặc phân lớp nhiều lớp. Ý tưởng chính của thuật
toán là xử lý từng đặc trưng một cách độc lập. Naïve Bayes tính toán xác suất của mỗi đặc
trưng, sau đó đưa ra dự đoán dựa trên định lý Bayes.
Ưu điểm của thuật toán là đơn giản và dễ hiểu. Hơn nữa, nó phù hợp với các tập dữ
liệu có nhiều đặc trưng khác nhau, bởi dự đoán phụ thuộc vào xác suất của các đặc trưng.
Ngoài ra, thuật toán tiêu tốn ít tài nguyên, có hiệu năng cao, không cần tính toán các hệ số
phụ như các thuật toán khác. Tuy nhiên, như đã đề cập, các đặc trưng được xử lý độc lập nên
kết quả có thể không chính xác trong một số trường hợp [5].

2.1.2.4 J48 Decision Tree

J48 Decision Tree (Cây quyết định J48) là một cây phân cấp có cấu trúc được dùng để
phân lớp các đối tượng dựa vào dãy các luật. Khi cho dữ liệu về các đối tượng gồm các thuộc
tính cùng với lớp (classes) của nó, cây quyết định sẽ sinh ra các luật để dự đoán lớp của các
đối tượng chưa biết. Mục đích của thuật toán là đạt được kết quả chính xác nhất với số lần
lựa chọn ít nhất.
Thuật toán thường dùng trong cây quyết định là ID3 (Iterative Dichotomiser 3). Thuật
toán này dựa trên khái niệm Entropy và Information Gain (Độ lợi thông tin). J48 là thư viện
cài đặt của thuật toán ID3 có trong gói ngôn ngữ R, được sử dụng ở chương 3.
Cây quyết định là một thuật toán phổ biến bởi nó đơn giản và có thể xử lý tốt các tập
dữ liệu lớn và có nhiều dữ liệu nhiễu. Một ưu điểm khác của cây quyết định là người ta có thể
theo dõi quá trình lựa chọn một cách tường minh.


12

2.1.2.5 Random Forest
Random Forest là một trong các thuật toán thông dụng nhất trong học máy. Ý tưởng
cơ bản của thuật toán là xây dựng các cây quyết định dựa trên các tập con độc lập nhau thuộc
tập dữ liệu cho trước. Tại mỗi nút, một số giá trị đặc trưng sẽ được lựa chọn ngẫu nhiên cho
tới khi tìm thấy cách phân chia tốt nhất.
Random Forest thừa kế rất nhiều ưu điểm của thuật toán cây quyết định. Random
Forest có thể dùng cho cả hai bài toán phân loại và hồi quy, bởi nó đơn giản và dễ thích nghi,
kết quả đưa ra cũng chính xác hơn. Tuy nhiên, không như cây quyết định, cấu trúc của
Random Forest rất phức tạp nên không thể hiểu được cơ chế hoạt động bên trong của thuật
toán. Ngoài ra, Random Forest cũng ổn định hơn so với cây quyết định. Đối với cây quyết
định, chỉ cần dữ liệu bị sửa đổi một chút thì cả cây cũng sẽ bị thay đổi, làm giảm độ chính
xác. Còn với thuật toán Random Forest, do nó được kết hợp từ rất nhiều cây quyết định nên
nó sẽ ổn định hơn [16].

2.2 Mô hình phát hiện mã độc dựa trên học máy

Mô hình tổng quan của phương pháp phát hiện mã độc dựa trên học máy bao gồm các
thành phần sau:


Dữ liệu: Tập dữ liệu mẫu được chia thành hai tập con: tập dữ liệu huấn luyện (chiếm
2/3) và tập dữ liệu thử nghiệm (chiếm 1/3). Việc phân chia được tiến hành ngẫu nhiên.
Tập dữ liệu mẫu bao gồm các tệp tin mã độc và các tệp tin thông thường có định dạng:
.exe, .pdf, .docx,…

 Cuckoo Sandbox: Thành phần chính của Cuckoo bao gồm một máy chủ (phần mềm
quản lý) và một số máy khách (máy ảo hoặc máy thật dùng để phân tích). Sau khi
thống kê được hành vi của tệp tin, Cuckoo Sandbox sẽ đưa ra mức độ độc hại của tệp
tin dựa trên một số chữ ký đã được định nghĩa sẵn.
 Trích xuất đặc trưng: Một số đặc trưng được trích xuất từ sandbox có thể là:
-

Hành vi đối với các tệp tin: thông tin về các hành vi mở tệp, ghi tệp, tạo tệp đều
được ghi lại.

-

Các khóa registry: trên các hệ thống Windows, registry lưu trữ các cài đặt hệ thống
mức thấp của hệ điều hành và ứng dụng. Bất kỳ mẫu nào gây ra nhiều thay đổi trên
registry – bao gồm mở, đọc, ghi, xóa các khóa registry – đều đáng ngờ.

-

Các tiến trình được tạo ra: thông thường các mẫu mã độc sẽ sinh ra một tiến trình
riêng, tuy nhiên một số mã độc có thể tự chạy trong tiến trình hệ thống.



13
-

Địa chỉ IP và truy vấn DNS: Cuckoo có thể bắt các luồng lưu lượng mạng dưới
dạng PCAP, từ đó có thể trích xuất thông tin về địa chỉ IP cũng như các truy vấn
DNS.

-

Các lời gọi API: các lời gọi API liên quan tới tất cả các hoạt động diễn ra trong hệ
điều hành, bao gồm các hành động trên tệp tin, registry, mutexes, tiến trình và các
đặc trưng đã đề cập ở trên. Các lời gọi API này có thể được biểu diễn dưới dạng số
học, các thuộc tính sẽ được định nghĩa bởi một giá trị API duy nhất và trả về các
mã.

 Biểu diễn đặc trưng: Với số lượng đặc trưng rất lớn, cần phải biểu diễn chúng một cách
rõ ràng, nhỏ gọn và không dư thừa. Luận văn sử dụng phương pháp biểu diễn dưới
dạng ma trận tần suất. Ma trận tần suất sẽ thể hiện tần suất của các lời gọi API.
 Lựa chọn đặc trưng: Mục tiêu của việc lựa chọn đặc trưng là loại bỏ các đặc trưng dư
thừa, không quan trọng ra khỏi tập đặc trưng khi nó trở nên quá lớn. Tập đặc trưng quá
lớn sẽ gây tiêu tốn một lượng lớn tài nguyên vì thế việc loại bỏ các đặc trưng dư thừa
là cần thiết. Ba phương pháp thường dùng trong quá trình lựa chọn đặc trưng là phương
pháp lọc (filter), phương pháp đóng gói (wrapper) và phương pháp nhúng (embedded)
[13].
-

Phương pháp lọc: thống kê điểm của các đặc trưng. Đặc trưng có điểm cao sẽ được
giữ lại, đặc trưng có điểm thấp sẽ bị loại bỏ.


-

Phương pháp đóng gói: các đặc trưng được kết hợp thành các bộ khác nhau và thử
nghiệm trên mô hình dự đoán. Bộ đặc trưng cho kết quả chính xác nhất sẽ được lựa
chọn.

-

Phương pháp nhúng: đánh giá thuộc tính được sử dụng khi xây dựng mô hình.

2.3 Kết luận chương
Chương 2 đưa ra cái nhìn tổng quan nhất về khái niệm học máy và giới thiệu một số
thuật toán được sử dụng trong luận văn, bao gồm KNN, SVM, Naïve Bayes, cây quyết định,
Random Forest. Mô hình phương pháp phát hiện mã độc dựa trên học máy được giới thiệu ở
cuối chương, bao gồm các bước: thu thập dữ liệu, trích xuất đặc trưng, biểu diễn đặc trưng,
lựa chọn đặc trưng và đưa vào mô hình học máy.


14

CHƯƠNG 3 - CÀI ĐẶT VÀ THỬ NGHIỆM
3.1 Thu thập và tiền xử lý dữ liệu
3.1.1 Dữ liệu mẫu
Luận văn đã thu thập được 1503 files dữ liệu mẫu, trong đó có 1077 files mã độc và
426 files bình thường. Các files bình thường bao gồm các định dạng: .doc, .jar, .xls, .pdf,
.exe,… chạy trên nền Windows; các files mã độc được thu thập từ trang “Contagio” [17] và
“VX Heaven” [28], bao gồm các dạng mã độc: worm, trojan, virus, và các dạng khác
(backdoor, adware, spyware, ransomware…).

3.1.2 Cuckoo Sandbox

Cuckoo Sandbox được cấu hình như sau:
 Máy chủ:
-

Hệ điều hành Ubuntu 16.04 x64

-

Ram 4Gb

-

Kết nối Internet

-

Sử dụng Virtualbox để cài đặt máy khách

 Máy khách:
-

Hệ điều hành Windows 7 Professional x86

-

Ram 1Gb

-

Adobe PDF reader


-

Adobe Flashplayer

-

Microsoft Office 2007

-

Java JRE 7

-

.NET framework 4.0

3.1.3 Trích xuất đặc trưng
Các thuộc tính sẽ được biểu diễn dưới dạng ma trận tần suất, bao gồm tần suất các lời
gọi API thành công, lời gọi API thất bại và mã trả về của chúng. Dữ liệu này được trích xuất
từ báo cáo phân tích của sandbox. Các báo cáo thu được sau khi phân tích files bằng sandbox
(có định dạng .JSON) sẽ được xử lý bằng một đoạn script để xuất ra một file tổng hợp (có
định dạng .csv) chứa các đặc trưng được biểu diễn dưới dạng ma trận. Số lượng API tối thiểu
sẽ được định nghĩa trong chương trình, ví dụ các files có ít hơn 5 lời gọi API sẽ được bỏ qua.


15

3.1.4 Lựa chọn đặc trưng
Việc lựa chọn đặc trưng nhằm đảm bảo loại trừ dư thừa và các đặc trưng không liên

quan để tăng độ chính xác cho quá trình dự đoán, đặc biệt là đối với tập đặc trưng lớn ở trong
trường hợp này.
Một thuật toán đơn giản và hiệu quả dùng để lựa chọn đặc trưng là gói thư viện Boruta
nằm trong gói ngôn ngữ R. Tuy nhiên, do số lượng đặc trưng quá lớn, sẽ không đủ tài nguyên
để thuật toán Boruta chạy ổn định. Vì thế, cần chia nhỏ tập dữ liệu thành các tập con để xử
lý. Sau đó, các đặc trưng quan trọng sẽ được thu thập từ các tập con và hợp nhất lại, loại bỏ
các đặc trưng dư thừa. Cuối cùng thực hiện lựa chọn một lần nữa trên tập đặc trưng mới. Từ
tập 14789 đặc trưng, sau khi chạy thuật toán rút gọn còn 99 đặc trưng.

3.2 Huấn luyện và kiểm thử mô hình
Sau khi đã trích xuất và lựa chọn được đặc trưng, tập dữ liệu này sẽ được dùng để đưa
vào huấn luyện các kỹ thuật học máy, bao gồm: KNN, SVM, J48 Decision Tree, Naïve Bayes,
Random Forest.

3.3 Kết quả và đánh giá
3.3.1 K-Nearest Neighbor
Thuật toán KNN cho kết quả tốt với tỉ lệ chính xác lên tới 99.6%. Tỉ lệ FN bằng 0, tức
là không có file mã độc nào bị nhận nhầm thành file bình thường.

Hình 3.1 Kết quả dự đoán của thuật toán KNN


16

3.3.2 Support Vector Machines
Kết quả thực nghiệm của thuật toán được thể hiện trên hình 3.5, với độ chính xác
98.2%. Trong đó, số lượng files bình thường được phát hiện đúng (TN) là 57, số lượng files
mã độc được phát hiện đúng (TP) là 211.

Hình 3.2 Kết quả dự đoán của thuật toán SVM


3.3.3 J48 Decision Tree
Ưu điểm của phương pháp Decision Tree là thực hiện dưới dạng “white box” và chúng
ta có thể nhìn thấy quá trình dự đoán một cách trực quan. Kết quả dự đoán của thuật toán
được thể hiện trên hình 3.6.

Hình 3.3 Kết quả dự đoán của thuật toán J48


17
Độ chính xác của thuật toán là 98.5%, với số lượng files bình thường được nhận dạng
đúng là 57, số lượng files mã độc được nhận dạng đúng là 212.

3.3.4 Naïve Bayes
Thuật toán cho kết quả với độ chính xác khá thấp – 54.2%. Số lượng mã độc được phát
hiện đúng (TP) là 91, số lượng file bình thường được phát hiện đúng (TN) là 57. Thông tin
chi tiết được thể hiện trên hình 3.7.

Hình 3.4 Kết quả dự đoán của thuật toán Naive Bayes

Độ chính xác của thuật toán khá thấp so với các thuật toán trên. Hơn nữa, tỉ lệ các file
mã độc bị nhận nhầm thành file bình thường (FN) là khá cao – 57.5%, có thể dẫn đến thiệt
hại lớn trên thực tế.
Lý do dẫn đến kết quả này là bởi trong thuật toán Naïve Bayes, các đặc trưng được xử
lý một cách độc lập, điều này không đúng trong hầu hết các trường hợp. Các lời gọi APIs hầu
như đều phụ thuộc lẫn nhau. Vì thế, thuật toán Naïve Bayes sẽ cho ra kết quả thiếu chính xác.

3.3.5 Random Forest
Kết quả thực nghiệm của thuật toán Random Forest được thể hiện trên hình 3.8.



18

Hình 3.5 Kết quả dự đoán của thuật toán Random Forest

Thuật toán có độ chính xác 99.3%, gần bằng với thuật toán J48. Số lượng file bình
thường được phát hiện đúng (TN) là 58, số lượng mã độc được phát hiện đúng (TP) là 213.

3.4 Nhận xét
Trên đây luận văn đã trình bày về quá trình thử nghiệm và kết quả thử nghiệm các
thuật toán. Độ chính xác của các thuật toán được thể hiện trên bảng 3.6:
Bảng 3.1 Kết quả thực nghiệm

Thuật toán

Naïve

SVM

Độ chính xác

99.6%

98.1%

54.2%

98.5%

99.3%


TP

214

211

91

212

213

FP

1

2

2

2

1

TN

58

57


57

57

58

FN

0

3

123

2

1

Kết quả

Bayes

J48

Random

KNN

Forest


Mặc dù thuật toán KNN có độ chính xác cao nhất, luận văn kiến nghị sử dụng thuật
toán Random Forest. Bởi kết quả của thuật toán KNN còn phụ thuộc vào việc lựa chọn k và
KNN cũng chỉ phù hợp với tập dữ liệu nhỏ và các lớp phân bố đều – không phù hợp khi mở
rộng bộ dữ liệu mẫu. Đối với thuật toán Random Forest, tỉ lệ FN, tức là khả năng phát hiện
sai file mã độc thành file bình thường là thấp nhất trong các thuật toán còn lại.


19

3.5 Kết luận chương
Chương 3 trình bày về quá trình thử nghiệm, bao gồm các bước thực hiện, kết quả thực
nghiệm, đánh giá và nhận xét về các kỹ thuật học máy. Trong năm kỹ thuật đã đề cập ở trên,
luận văn kiến nghị ứng dụng Random Forest vào bài toán phát hiện mã độc thực tế, với độ
chính xác 99.3%, có tỉ lệ FN thấp nhất – 0.05% và phù hợp với các bài toán có tập dữ liệu
lớn.


20

KẾT LUẬN VÀ KIẾN NGHỊ
1. Những đóng góp của luận văn
Luận văn đã nghiên cứu về phương pháp phát hiện mã độc dựa trên các kỹ thuật học
máy và đã đạt được một số kết quả sau:
 Giới thiệu tổng quan về mã độc: khái niệm, phân loại và các phương pháp phát hiện
mã độc truyền thống hiện nay.
 Trình bày cơ sở lý thuyết và đưa ra mô hình phát hiện mã độc dựa trên các kỹ thuật
học máy KNN, SVM, Decision Tree, Naïve Bayes, Random Forest.
 Tiến hành thực nghiệm, đánh giá và so sánh kết quả.
Tóm lại, quá trình thực nghiệm có thể được tóm tắt như sau: sử dụng cuckoo sandbox

để trích xuất đặc trưng và biểu diễn đặc trưng dưới dạng ma trận tần suất các lời gọi API cùng
với mã trả về của chúng. Phương pháp này có thể thể hiện thông tin về các thay đổi trong hệ
thống, bao gồm thay đổi registry, mutexes, tệp tin,… Sau đó sử dụng thư viện Boruta để lựa
chọn các đặc trưng quan trọng và loại bỏ các đặc trưng dư thừa. Cuối cùng là xử lý dữ liệu
mẫu và đưa vào các thuật toán học máy để thực hiện phân lớp.
Thuật toán được kiến nghị sử dụng là Random Forest bởi nó có độ chính xác cao, phù
hợp với tập dữ lớn và có nhiều nhiễu. Ngoài ra, thuật toán cũng cho tỉ lệ FN khá thấp – tức là
hầu như không có file mã độc nào bị nhận sai thành file bình thường.
2. Hướng phát triển tiếp theo
Hiện tại, luận văn sử dụng cuckoo sandbox để trích xuất đặc trưng. Quá trình này tốn
khá nhiều thời gian và tài nguyên hệ thống. Hướng phát triển tiếp theo sẽ là kết hợp quá trình
trích xuất và lựa chọn đặc trưng để tăng hiệu năng cho quá trình trích chọn đặc trưng. Ngoài
ra luận văn cũng sẽ mở rộng tập dữ liệu mẫu, bởi tập dữ liệu hiện tại chỉ chứa một số lượng
nhỏ các dạng mã độc khác nhau. Để tăng độ chính xác cho kết quả phát hiện, cần sử dụng tập
dữ liệu lớn hơn và đa dạng hơn.


21

TÀI LIỆU THAM KHẢO
Tiếng Anh:
[1] Alazab, Mamoun, Sitalakshmi Venkatraman, Paul Watters, and Moutaz Alazab. (2011).
Zero-day Malware Detection based on Supervised Learning Algorithms of API call
Signatures. Proceedings of the 9-th Australasian Data Mining Conference, 171-181
[2] Baldangombo Usukhbayar, Nyamjav Jambaljav, Shi-Jinn Horng. (2013). A Static
Malware Detection System Using Data Mining Methods. Cornell University.
[3] Baskaran, Balaji, Anca Ralescu. (2016). A Study of Android Malware Detection
Techniques and Machine Learning. Proceedings of the 27th Modern Artificial
Intelligence and Cognitive Science Conference.
[4] Biau, G. (2013). Analysis of a Random Forests Model. Journal of Machine Learning

Research, 1063-1095.
[5] Bishop, C. (2006). Pattern Recognition and Machine Learning. New York: Springer.
[6] Cloonan, J. (2017, 04 11). Advanced Malware Detection - Signatures vs. Behavior
Analysis.
[7] Cuckoo Sandbox. (Cuckoo Foundation) Retrieved from
/>[8] Egele, Manuel, Theodoor Sholte, Engin Kirda, Christofer Kruegel. (2012). A Survey on
Automated Dynamic Malware Analysis Techniques and Tools. ACM Computing
Surveys.
[9] First computer virus of Bob Thomas. Retrieved 10 03, 2018, from />[10] Gavrilut, Dragos, Mihai Cimpoesu, Dan Anton, Liviu Ciortuz. (2009). Malware
Detection Using Machine Learning. The International Multiconference on Computer
Science and Information Technology.
[11] Harley, David, Andrew Lee. (2009). Heuristic Analysis — Detecting Unknown Viruses.
[12] Hung, P. V. (2011). An approach to fast malware classification with machine learning
technique.
[13] Isabelle Guyon, Andre Elisseef. (2006). An Introduction to Feature An Introduction to
Feature. New York.
[14] Jorma Laaksonen, Erkki Oja. (1996). Classification with learning k-Nearest Neighbors.


×