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

Mô hình kết hợp giữa học máy và giải thuật di truyền trong phát hiện mã độc

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

JOURNAL OF SCIENCE OF HNUE
Educational Sci., 2015, Vol. 60, No. 7A, pp. 189-195
This paper is available online at

DOI: 10.18173/2354-1075.2015-0066

MÔ HÌNH KẾT HỢP GIỮA HỌC MÁY VÀ GIẢI THUẬT DI TRUYỀN
TRONG PHÁT HIỆN MÃ ĐỘC
Lương Thế Dũng
Khoa An tồn Thơng tin, Học viện Kỹ thuật Mật mã
Tóm tắt. Bài báo đề xuất một phương pháp phân lớp mã độc hiệu quả dựa trên sự kết hợp
giữa kĩ thuật phân lớp dữ liệu với giải thuật di truyền. Quá trình thực nghiệm và phân tích
trên cùng một tập dữ liệu huấn luyện đã chỉ ra rằng phương pháp đã đề xuất cho kết quả
phân lớp chính xác hơn phương pháp phân lớp khi chưa kết hợp với giải thuật di truyền.
Từ khóa: Mã độc, phát hiện mã độc, học máy, giải thuật di truyền, cây quyết định.

1.

Mở đầu

Mã độc đang là một trong những hiểm họa lớn nhất đối với các hệ thống thơng tin trong
thời kì hiện nay. Cùng với sự phát triển mạnh mẽ và tinh vi của các loại mã độc, thì phát hiện mã
độc đã trở thành một trong những vấn đề quan trọng nhất trong lĩnh vực An tồn thơng tin.
Các phương pháp phát hiện mã độc truyền thống thường sử dụng kĩ thuật đối sánh mẫu,
việc phát hiện được dựa trên một cơ sở dữ liệu các mẫu về mã độc đã định nghĩa trước, vì vậy
có độ chính xác cao cũng như ít đưa ra các cảnh bảo nhầm. Tuy nhiên, với sự bùng nổ mạnh mẽ
của mã độc, các cơ sở dữ liệu mẫu mã độc ngày càng có kích thước lớn hơn, nên việc sử dụng
phương pháp này có các hạn chế là làm giảm hiệu năng của hệ thống và không thể phát hiện được
các mã độc mới chưa được định nghĩa trong cơ sở dữ liệu hoặc các mã độc đa hình, siêu đa hình.
Để khắc phục các hạn chế trên, nhiều phương pháp phát hiện mã độc mới đã được đề xuất, đặc
biệt là phương pháp dựa trên các mơ hình học máy và khai phá dữ liệu như: Phương pháp dựa trên


Mạng Bayes [10], Máy Vecto hỗ trợ [12] và Cây quyết định [13]. Tuy nhiên các phương pháp này
gặp phải một số hạn chế nhất định trong việc phân loại chính xác mã độc khi các mã độc được
lai ghép, hoặc có sử dụng các giải thuật thông minh, vấn đề này đã được nhiều tác giả đề cập như
trong [1,15].
Ngoài ra sự biến đổi của các kĩ thuật thiết kế mã độc như làm rối mã, sử dụng mã hóa mã
nguồn hay nén mã nguồn. . . làm cho các đặc tính của mã độc khó bị phát hiện trong mã nguồn.
Do đó, các kĩ thuật khai phá dữ liệu thơng thường khơng cịn hiệu quả trong việc xác định loại mã
độc nếu chỉ dựa trên tập đặc tính dấu hiệu đại diện duy nhất, dẫn đến việc phân tích và xử lí mã
độc trở nên khó khăn hơn [1]. Bài báo này đưa ra một kĩ thuật phân loại mã độc mới, hiệu quả hơn
Ngày nhận bài: 8/7/2015. Ngày nhận đăng: 15/11/2015.
Liên hệ: Lương Thế Dũng, e-mail:

189


Lương Thế Dũng

dựa trên việc kết hợp giữa kĩ thuật phân lớp cây quyêt đinh và giải thuật di truyền, áp dụng trên bộ
dữ liệu các cuộc gọi hàm API của chương trinh mã độc.
Nội dung bài báo được trình bày gồm 5 phần: Phần2 - trình bày việc phân tích và trích rút
dữ liệu các hàm API; Phần 3 - trình bày phương pháp kết hợp giưa kĩ thuật phân lớp và giải thuật
di truyền trong việc phát hiện mã độc; Phần 4 - trình bày kết quả thử nghiệm và đánh giá phương
pháp; Phần 5 - kết luận của bài báo.

2.
2.1.

Nội dung nghiên cứu
Phát hiện mã độc dựa trên mơ hình học máy


2.1.1. Xây dựng tập dữ liệu học từ các cuộc gọi hàm API của mã độc
Dù mã nguồn của chương trình độc hại có bị biến đổi và sử dụng kĩ thuật nào đi nữa thì một
nguyên tắc chung là chúng đều phải thực thi các hành vi mục tiêu chẳng hạn như: Sao chép tệp,
gửi gói tin,. . . Hầu hết các hành vi này đều được thực hiện thông qua các lời gọi hàm API, chính
vì vậy, việc phân tích các lời gọi hàm API là một kĩ thuật quan trọng trong việc phát hiện và phân
loại mã độc. Một số phương pháp phân tích các lời gọi API được đưa ra trong [6 - 8].
Bước 1: Giải nén các phần mềm độc hại
Các phần mềm độc hại thường thực hiện việc che dấu bằng kĩ thuật đóng gói nhằm chống
lại q trình dịch ngược chương trình, dẫn đến rất khó bị phát hiện, vì vậy bước này sử dụng các
cơng cụ và kinh nghiệm để thực hiện các giải nén toàn bộ phần mềm nhằm xác định chính xác các
thơng tin của các tệp thực thi.
Bước 2: Trích rút các cuộc gọi hàm API
Bước này sử dụng một công cụ dịch ngược phần mềm tự động nhận dạng ra các lời gọi API
cho các trình biên dịch khác nhau. Cơng cụ này sau đó thực hiện trích xuất các thơng tin từ dạng
nhị phân. Mỗi một phần sẽ bao gồm các thông tin khác nhau về nội dung nhị phân như tất cả các
hàm API, chiều dài, các mã lệnh (OP), địa chỉ của chúng và các địa chỉ khối. Danh sách các API
được tham khảo từ Microsoft - (MSDN) được sử dụng xác định các hàm API windows. Để liệt kê
tất cả các cuộc gọi API có liên quan đến mã độc hại, việc thu thập được thực hiện bằng cách sử
dụng các opcodes của các mã lệnh Jump và lệnh Call như là một kiểu hàm.
Bước 3. Lựa chọn thuộc tính
Bài báo này sử dụng phương pháp trích chọn các thuộc tính là các hàm API của Pujari và
các cộng sự [8]. Mục đích là để xác định một bộ các cuộc gọi API phổ biến nhất trong các phần
mềm độc hại và một bộ các cuộc gọi API phổ biến đối với các phần mềm khơng phải độc hại, việc
trích rút này được thực hiện thơng qua q trình lựa chọn những bộ hàm API có tần suất xuất hiện
nhiều nhất.

2.1.2. Xây dựng bộ phân lớp mã độc dựa trên học máy
Sau khi đã có tập dữ liệu, một phương pháp học máy sẽ được sử dụng để thực hiện quá trình
học và đưa ra các bộ phân lớp. Bộ phân lớp này sau đó được dùng để dự đốn xác định lớp mã độc
của một chương trình chưa biết. Theo Bishop [7], q trình học này được mơ tả như việc đưa ra

một kết luận từ kinh nghiệm sẵn có. Dưới đây là một số mơ hình học máy so và sự sánh tương đối
190


Mơ hình kết hợp giữa học máy và giải thuật di truyền trong phát hiện mã độc

giữa các mơ hình trong việc thực thi phân lớp dữ liệu nói chung và phân lớp mã độc nói riêng.
Có thể thấy các thuật tốn đều có những ưu nhược điểm riêng, trong bài báo chúng tôi lựa
chọn giải thuật cây quyết định kết hợp với giải thuật di truyền để nâng cao hiệu quả và độ chính
xác của hệ thống.

2.2.

Ứng dụng cây quyết định và thuật giải di truyền trên tập dữ liệu hàm API
để phân loại mã độc

Giải thuật di truyền là giải thuật được thiết kế để giải các bài tốn tối ưu tổ hợp và tìm kiếm
dựa trên việc mơ phỏng q trình chọn lọc và tiến hóa trong tự nhiên. Thuật toán di truyền chuẩn
được biểu diễn bằng các phép lai ghép và đột biến giữa các chuỗi nhị phân. Thuật tốn di truyền
giúp cho việc tìm kiếm các phương án giảm thiểu so với việc duyệt qua tất cả các tập ràng buộc
của dữ liệu, thường được sử dụng để tiếp cận giải các bài tốn tìm kiếm số, chẳng hạn sinh ra các
phương án tối ưu cho bài tốn tìm kiếm [19]. Trong giải thuật di truyền, một dãy các chuỗi được
mã hóa thành các phương án chấp nhận đươc cho một bài toán tối ưu và được tiến hóa theo hướng
ngày càng tốt hơn. Ta có thể mơ tả giải thuật di truyền sơ bộ như sau:
Sinh ra phương án khởi đầu
G(0);
Đánh giá độ thích nghi của G(0);
t := 0;
Bước lặp
t := t + 1;

Sinh ra G(t) từ G(t − 1);
Đánh giá độ thích nghi của G(t);
Cho đến khi tìm được phương án cần tìm
Với tập các dữ liệu về hàm API của chương trình ứng dụng đã được thu thập và tiền xử lí,
thuật toán di truyền được sử dụng trong bài báo này nhằm cải tiến việc phân loại các mã độc khi
chúng sử dụng kĩ thuật che dấu. Bằng việc kết hợp thuật tốn di truyền với kĩ thuật học máy có thể
cho phép phát hiện chính xác các mã độc mới chưa có trong cơ sở dữ liệu mẫu, bao gồm cả các
dạng mã độc lai giữa các loại khác nhau, ví dụ: Những mã độc hoạt động giống cả Logic bomb
và Trojan. Bằng cách mô phỏng sự lai ghép giữa các loại mã độc như toán tử lai và hoán vị trong
thuật toán di truyền [20]. Kĩ thuật mới này có thể tiên đốn sự xuất hiện của các mã độc, phát hiện
được các mã độc sử dụng các kĩ thuật che dấu phức tạp.
Các mã độc được phân tích và trích rút thành dãy các hàm API, được tiền xử lí và thu được
một dãy nhị phân. Ở đây ta coi mỗi dãy nhị phân đại diện cho dãy các hàm API là một nhiễm sắc
thể của mã độc. Để thực hiện thuật toán di truyền, đầu tiên ta sinh một phương án khởi đầu bằng
cách chọn một mẫu trong bộ dữ liệu mẫu, tiến hành lai ghép các đoạn trong mẫu. Sau quá trình lai
ghép ta thu được một thế hệ con, mỗi thế hệ này cần phải được đánh giá bởi một giá trị thích nghi.
Ở đây ta định nghĩa hàm thích nghi của mỗi cá thể như sau:
191


Lương Thế Dũng

Thuật tốn

Tốc độ

Độ chính xác

Hàng xóm
K-gần nhất


Chậm

Trung bình

Máy vector
h tr

Nhanh

Cao

Naăve Bayes

Rt nhanh

Cao

Nhanh, d hn vi cỏc
d liu bn vững.

Cao

Dễ hiểu, dễ sinh luật
và giảm thiểu độ phức
tạp tính tốn

Cây
định


quyết

Rất nhanh

Ưu điểm
iệu quả khi biến độc
lập có nhiều hơn hai
giá trị và tập dữ liệu
lớn
Các kết quả có tính hồi
quy và dày, hiệu quả
tốt hơn trong phân lớp
văn bản, đoạn mẫu

Nhược điểm
Độ phức tạp tính tốn
cao

Chi phí và thời gian
huấn luyện dài
Nhạy cảm với những
thuộc tính có tương
quan
Xảy ra sai lầm ở các
mức cao hơn do các
kết quả sai ở mức dưới

Trong một chuỗi nhị phân đại diện cho sự xuất hiện của các hàm API, mỗi hàm API ta gán
nó các giá trị trọng số wij, mỗi trọng số đại diện cho giá trị xác suất xuất hiện của một hàm API thứ
j trong một loại mã độc thứ i : i = 1(V irus), i = 2(T rojan), i = 3(W orm), i = 4(Backdoor)

và i = 5 (Normal - phần mềm không độc hại). Tổng các trọng số bằng 1 cho mỗi hàm API trong
mỗi mấu được trích xuất. Khi đó ta định nghĩa hàm thích nghi của cá thể X là:
F (X) = max

wij
số vị trí có giá trị là 1

Sắp xếp cá thể X vào lớp i, khi đó các cá thể được kết luận là phần mềm thông thường sẽ
không tiếp tục sinh sản nữa, còn các cá thể thuộc lớp mã độc sẽ tiếp tục được lai ghép và phát sinh
các thế hệ mới.
Sau quá trình trên, ta thu được một tập dữ liệu mẫu được phân loại di truyền. Tập mẫu này
sau đó được sử dụng để để học bộ phân lớp dựa trên thuật toán học cây quyết định để sử dụng cho
quá trình phân loại các mẫu mới chưa biết. Q trình phân tích bằng thực nghiệm cho thây thuật
toán cây quyết định C4.5 cho hiệu quả cao hơn các thuật toán cây quyết định khác.

2.3.

Thử nghiệm

Để thử nghiệm mơ hình đề xuất, bài báo sử dụng bộ dữ liệu học bao gồm 1000 mẫu, trong
đó 600 mẫu là các tệp chứa mã độc lấy từ kho mã độc vxheaven.com và 200 mẫu là các tệp chương
trình khơng nhiễm mã độc lấy từ windows system. Dữ liệu kiểm thư bao gồm 200 mẫu hỗn hợp,
trong đó có 50 mẫu là tệp không nhiễm mã độc và 150 mẫu là tệp nhiễm mã độc. Thực hiện các
thực nghiệm với sự thay đổi với số lượng mẫu khác nhau của tập huấn luyện lấy từ tập đã xây dựng
cho thấy kết quả chính xác của phương pháp như bảng dưới đây:

192


Mơ hình kết hợp giữa học máy và giải thuật di truyền trong phát hiện mã độc


Số mẫu
400
480
560
640
720

Độ chính xác của mơ hình
93.8%
94.1%
95.6%
97.3%
97.5%

Dưới đây là biểu đồ so sánh kết quả của việc phân lớp sau khi kết hợp cây quyết định và
giải thuật di truyền với việc chỉ sử dụng cây quyết định:

Kết quả cho thấy khi kích thước của tập dữ liệu càng lớn thì độ chính xác của phương pháp
đã đề xuất trong bài báo đưa ra kết quả càng tốt hơn phương pháp chỉ sử dụng thuật tốn cây quyết
định cho q trình học.

3.

Kết luận

Bài báo đề xuất phương pháp tốt hơn cho việc phát hiện và phân loại mã độc dựa trên sự kết
hợp kĩ thuật cây quyết định và giải thuật di truyền. Kết quả thử nghiệm cho thấy độ chính xác cao
hơn khi chỉ sử dụng một mình giải thuật cây quyết định. Phương pháp đã đề xuất có thể áp dụng
cho việc phát hiện và phân lớp các mã độc mới và các mã độc lai ghép dựa trên dữ liệu các cuộc

gọi hàm API của chương trình mã độc.
TÀI LIỆU THAM KHẢO
[1]

OECD Ministerial Meeting Report, Malicious Software (Malware): A Security Threat
to the Internet Economy, Korean Communication Commision, Final draft, May 2007,
/>193


Lương Thế Dũng

[2]

Vinod, P. Laxmi, V. and M. S. Gaur. 2009, Survey on Malware Detection Methods, In
Proceedings of the Hacker 2009, pp. 74-79.

[3]

Zhu Kenan, Yin Baolin, 2012, Malware Behavior Classification Approach Based on Naive
Bayes, Journal of Convergence Information Technology (JCIT) Volume7, pp. 218-315.

[4]

Gavrilut, D., Cimpoesu, M.; Anton, D.; Ciortuz, L. 2009, Malware Detection Using
Perceptrons and Support Vector Machines, Future Computing, Service Computation,
Cognitive, Adaptive, Content, Patterns.

[5]

Konrad Rieck, Philipp Trinius, Carsten Willems, and Thorsten Holz, 2011, Automatic

Analysis of Malware Behaviorusing Machine Learning, Journal of Computer Security (JCS),
19 (4), 639–668, IOSPress.

[6]

Manoun Alazab, Robert Layton, Sitalakshmi Venkataraman, Paul Watters, 2013, Malware
Detection Based on Structural and Behavioural Features of API Calls, In ternational Journal
of Electronic Security and Digital Forensics Volume 5 Issue 2, p. 90-109.

[7]

Veeramani R, Nitin Rai, 2012, Windows API based Malware Detection and Framework
Analysis, International Journal of Scientific & Engineering Research Volume 3, Issue 3.

[8]

Mamoun Alazab, Sitalakshmi Venkatraman, Paul Watters, 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 (AusDM’11), Ballarat,
Australia, pp. 171-182.

[9]

Wang. C, Pang. J, Zhao. R, Fu., Liu. X, 2009, Malware Detection Based on Suspicious
Behavior Identification; First International Workshop on Education

[10] Technology and Computer Science, pp. 198-202. Wuhan, Hubei: IEEE.
[11] Dewan Md Farid, Nouria Harbi, Mohammad Zahidur Rahman., 2010, Combining Naive
Bayes and Decision Tree for adaptive Intrusion Detection. Vol. 2, No. 2, pp. 12–25.
[12] Mezghani, D., Boujelbene, S., Ellouze, N., 2010, Evaluation of SVM Kernels and

Conventional Machine Learning Algorithms for Speaker Identification, International Journal
of Hybrid Information Technology, Vol. 3, No. 3, pp. 23-34.
[13] Komashinskiy, D., Kotenko, I., 2010, Malware Detection by Data Mining Techniques Based
on Positionally Dependent Features, InternationalConference on Parallel, Distributed and
Network-Based Processing, pp. 617-623. Pisa.
[14] Hall, P., Park, B., Samworth, R., 2008, Choice of neighbor order in nearest-neighbor
classification, An Official Journal of the Institute of Mathematical Statistics, Vol. 36, No.
5, pp. 2135–2152.
[15] Mohd Najwadi Yusoff, Aman Jantan, 2011, Optimizing Decision Tree in Malware
Classification System by using Genetic Algorithm, International Journal on New Computer
Architectures and Their Applications (IJNCAA) 1(3): 694-713
[16] Shrenik Shah, DNA Computation and Algorithm Design, Harvard University ’09 Cambridge,
194


Mơ hình kết hợp giữa học máy và giải thuật di truyền trong phát hiện mã độc

MA 02138
[17] Noreen, S., Murtaza, S., Shafiq, M., Farooq, M. 2009, Evolvable Malware; 11th Annual
Conference on Genetic and Evolutionary Computation. pp. 1569–1576. Montreal, Quebec,
Canada: ACM.
[18] Preda, M., Christodorescu, M., Jha, S., Debray, S.; 2008, A Semantics-Based Approach to
Malware Detection; Transactions on Programming Languages and Systems, Vol 30, No 5, pp
25-54.
[19] D. Krishna Sandeep Reddy, Arun K. Pujari, 2006, N-gram analysis for computer virus
detection, Journal in Computer Virology, 231-239, Volume 2, Number 1, pp. 231-239.
[20] Mehdi, S., Tanwani, A., Farooq, M.; 2009, IMAD:In-Execution Malware Analysis and
Detection; 11th Annual Conference on Genetic and Evolutionary Computation. New York,
USA: ACM, pp. 1553-1560.
[21] Mohamad Fadli Zolkipli, Aman Jantan.; 2010, Malware Behavior Analysis: Learning and

Understanding Current Malware Threats; Second International Conference on Network
Applications, Protocols and Services. pp. 218–221. Kedah, Malaysia: IEEE.
ABSTRACT
Combining machine learning and generic algorithms for malware detection
In this paper the author proposes a novel method of classifying malwares that combines
data classification techniques and genetic algorithms. Experiments done show that classification
using the proposed method is better than the classification obtained when genetic algorithms are
not used.
Keywords: Malware, Malware detection, Machine learning, Genetic algorithm,
Decision tree.

195



×