
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI HANOI UNIVERSITY OF INDUSTRY Tập san SINH VIÊN NGHIÊN CỨU KHOA HỌC Số 14 ● 2024 54
NGHIÊN CỨU MỘT SỐ KỸ THUẬT CẢI THIỆN ĐỘ CHÍNH XÁC
CHO BÀI TOÁN PHÂN LOẠI MÃ ĐỘC SỬ DỤNG HỌC MÁY
STUDYING SOME TECHNIQUES TO IMPROVE ACCURACY FOR MALICIOUS
CODE CLASSIFICATION PROBLEM USING MACHINE LEARNING
Nguyễn Tuấn Anh1, Nguyễn Trọng Hoàng1, Lê Thị Anh2,*
1Lớp KHMT 01 - K15, Khoa Công nghệ thông tin, Trường Đại học Công nghiệp Hà Nội
2Khoa Công nghệ thông tin, Trường Đại học Công nghiệp Hà Nội
*Email: leanh@haui.edu.vn
TÓM TẮT
Mã độc là một chương trình đặc biệt được thiết kế để gây hại cho các thiết bị đầu cuối và hệ thống thông tin với mục
đích đánh cắp thông tin, phá hủy dữ liệu và hệ thống, theo dõi hoạt động của người dùng. Được coi là công cụ không thể
thiếu của các cuộc tấn công an ninh mạng, mã độc với các biến thể khác nhau, sự gia tăng về số chủng loại và cách thức
gây hại của mã độc ngày càng gây ra những hậu quả nghiêm trọng đối với các hệ thống thông tin cũng như người dùng.
Việc thu thập, phát hiện, nhận dạng mã độc là những bước đầu tiên trong phòng chống, phân tích hành vi của mã độc. Bên
cạnh đó, với sự phát triển của các kỹ thuật học máy đã tăng cường hiệu quả và cải thiện độ chính xác cho các bài toán phân
loại và ứng dụng rộng rãi trong nhiều lĩnh vực khác nhau. Phân loại mã độc sử dụng kỹ thuật học máy đã góp phần vào
thực hiện phát hiện các mẫu mã độc hại, đặc biệt là phát hiện cả những mẫu mã độc mới. Trong bài báo này, chúng tôi đã
thu thập dữ liệu mã độc, thực hiện tiền xử lý, chỉnh sửa các trọng số của dữ liệu và sử dụng các mô hình học máy khác
nhau để phân loại các mẫu mã độc. Kết quả đánh giá cho thấy, với các kỹ thuật mà chúng tôi đề xuất đã cải thiện đáng kể
độ chính xác cho bài toán phân loại mã độc.
Từ khóa: Mã độc; Phân loại mã độc; Học máy.
ABSTRACT
Malware is a special program designed to harm end devices and information systems by stealing information,
destroying data and systems, and monitoring user activities. Malware is considered an indispensable tool for cyber security
attacks, with its different variations, an increase in the number of types and harmful methods of malware is increasingly
causing severe consequences for information systems and users. Collecting, detecting, and identifying malicious code are
the first steps in preventing and analyzing the behavior of malicious code. Moreover, developing machine learning
techniques has increased efficiency and improved accuracy for classification problems and widespread applications in
many fields. Classifying malicious code using machine learning techniques has contributed to detecting malicious code
samples, especially detecting new malicious code samples. In this paper, we collected samples of malicious code types,
performed preprocessing, edited the data weights, and used different machine-learning models to classify malicious code
samples. Evaluation results show that our proposed techniques have significantly improved the accuracy of the problem
of classifying malware.
Keywords: Malware; Malware classification; Machine learning.
1. GIỚI THIỆU
Mã độc (Malware- Malicious software) là tên gọi chung
cho các phần mềm được thiết kế, lập trình đặc biệt để gây
hại cho máy tính hoặc làm gián đoạn môi trường hoạt động
mạng. Mã độc có thể được phát triển với các mục tiêu độc
hại như đánh cắp thông tin cá nhân, gây hỏng hóc hệ thống,
hoặc theo dõi hoạt động người dùng mà không được sự cho
phép của họ [1].
Theo phân loại của Viện tiêu chuẩn quốc gia của Mỹ
(NIST), mã độc được phân loại thành nhiều loại khác nhau
dựa vào hành vi và cách thức lây nhiễm của mã độc [2]. Đầu
tiên phải kể đến là vi-rút (virus), đây là một loại mã độc hại
có khả năng tự nhân bản và lây nhiễm chính nó vào các file,
chương trình hoặc máy tính. Loại mã độc tiếp theo là sâu
máy tính (worm), 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 nó có khả năng
“tự đóng gói”, điều đó có nghĩa là sâu máy tính không cần

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI HANOI UNIVERSITY OF INDUSTRY Tập san SINH VIÊN NGHIÊN CỨU KHOA HỌC Số 14 ● 2024 55phải có “file chủ” để mang nó khi nhiễm vào hệ thống. Mã
độc cửa hậu (Backdoor) là một loại mã độc được thiết kế để
tạo ra một lối vào bí mật vào hệ thống hoặc ứng dụng mà
không được phát hiện. Thông qua lối vào này, tin tặc có thể
có quyền truy cập và kiểm soát hệ thống từ xa mà không
cần thông qua cơ chế xác thực bình thường. Mã độc ghi
nhận thông tin từ bàn phím (keylogger), được thiết kế để
ghi lại tất cả hoặc một phần các phím được nhấn trên bàn
phím của máy tính mà không được sự cho phép của người
sử dụng. Mã độc tiếp theo là ngựa troy (trojan horse), là loại
loại mã độc được giấu trong các chương trình hoặc tệp tin
hợp lệ, thường được phân phối qua email độc hại hoặc các
trang web độc hại. Bên cạnh đó còn có mã độc tống tiền
(ransomware), loại mã độc mã hoá dữ liệu của nạn nhân và
yêu cầu một khoản tiền chuộc để giải mã. Khi máy tính bị
nhiễm ransomware, tất cả hoặc một phần lớn dữ liệu của
người dùng sẽ bị mã hoá và trở nên không thể truy cập được
cho đến khi thanh toán một khoản tiền chuộc cho tin tặc.
Ngoài ra còn nhiều loại mã độc khác mà NIST cũng phân
loại như mã độc quảng cáo (adware), mã độc gián điệp
(spyware), mã độc botnet, mã độc rootkit, downloader...
Phần mềm mã độc đang ngày một gia tăng về số lượng,
chủng loại với các kỹ thuật và phương thức tấn công ngày
càng tinh vi hơn. Để thực hiện các cuộc tấn công an ninh
mạng, mã độc là công cụ không thể thiếu, theo thống kê của
Cybersecurity Ventures, trong năm 2023, thiệt hại bởi các
vụ tấn công mạng là khoảng 8 nghìn tỷ USD tương đương
gần 196 triệu tỷ VNĐ trên toàn thế giới [3]. Cũng ghi nhận
con số trong năm 2023, hãng bảo mật Checkpoint đã thống
kê sự tấn công rộng khắp của mã độc mã hóa tống tiền
Ransomware đã khiến cho nhiều trường đại học ở Mỹ, các
cơ sở y tế, bệnh viên, phải tạm thời đóng cửa [4]. Mặc dù
các quốc gia, chính phủ, và các tổ chức đang nỗ lực xây
dựng các giải pháp bảo vệ và các cơ chế an ninh, nhưng các
phần mềm độc hại vẫn lây nhiễm và là mối đe dọa hàng đầu
với các hệ thống máy tính. Vì vậy tiến hành phân loại, phát
hiện mã độc thu thập mã độc, và phân loại mã độc, sau đó
phân tích mã độc để nhận diện hành vi của mã độc, đưa ra
những cảnh báo và biện pháp phòng chống để giảm thiệt hại
do mã độc gây ra là nhiệm vụ cực kỳ quan trọng của ngành
An toàn thông tin.
Bài toán phân loại mã độc sử dụng các kỹ thuật khác
nhau đã được công bố trong nước cũng như trên thế giới.
Cụ thể, các tác giả trong [3] đã nghiên cứu bài toán phân
loại và phát hiện mã độc sử dụng lập trình Gen. Trong [4],
các tác giả cũng đề xuất ứng dụng học máy cho bài toán
phân loại mã độc với kỹ thuật n-gram. Thêm vào đó, các
tác giả trong [7] cũng đã công bố bài toán phân loại các mã
độc dựa vào PE32 sử dụng Import table và các mạng nơ-
ron học sâu. Hầu hết các nghiên cứu đều đề xuất các giải
pháp khác nhau cho bài toán phân loại và phát hiện mã độc,
tuy nhiên vẫn còn một số hạn chế về bộ dữ liệu mã độc và
trích chọn đặc trưng.
Trong bài báo này, chúng tôi dựa vào bộ dữ liệu có sẵn
[7] và bộ dữ liệu có sẵn trên Kaggle - một nền tảng trực
tuyến cho cộng đồng Machine Learning (ML) và Khoa học
dữ liệu. Trước khi sử dụng bộ dữ liệu, chúng tôi đã tiến hành
một số kỹ thuật để tiền xử lý dữ liệu trước khi đưa vào huấn
luyện trong một số mô hình học máy. Kết quả cho thấy với
bộ dữ liệu được xử lý và chỉnh sửa các trọng số dữ liệu đã
mang lại kết quả chính xác hơn với bộ dữ liệu gốc.
2. CÁC MÔ HÌNH HỌC MÁY CHO BÀI TOÁN PHÂN
LOẠI MÃ ĐỘC
2.1. Mạng nơ-ron tích chập CNN (Convolutional Neural
Network)
Mạng nơ-ron tích chập CNN là một dạng kiến trúc mạng
nơ-ron nhân tạo được thiết kế đặc biệt cho việc xử lý dữ liệu
có cấu trúc ruỗng như hình ảnh [8]. CNN nổi tiếng với khả
năng phát hiện và trích xuất các đặc trưng từ dữ liệu hình
ảnh một cách hiệu quả, từ đó giúp trong các nhiệm vụ như
nhận diện, phân loại và phát hiện vật thể trong hình ảnh.
Mô hình hoạt động của mạng nơ-ron tích chập được mô
tả trong hình 1 và cụ thể như sau:
● Lớp tích chập (Convolutional layer): Lớp này sử dụng
các bộ lọc (filters) để trượt qua từng vùng của ảnh đầu vào
và tính toán các đặc trưng ở mỗi vùng đó. Quá trình này tạo
ra một bản đồ đặc trưng (feature map) biểu diễn các đặc
trưng quan trọng của hình ảnh.
● Lớp gộp (Pooling layer): Lớp này giúp giảm kích
thước của bản đồ đặc trưng bằng cách chọn ra giá trị quan
trọng nhất từ các vùng của bản đồ đặc trưng. Phổ biến nhất
là lớp gộp theo max (max pooling) hoặc lớp gộp theo trung
bình (average pooling).
●
Lớp kích hoạt (Activation layer): Lớp này áp dụng một
hàm kích hoạt phi tuyến tính (thường là hàm ReLU) vào các
giá trị của bản đồ đặc trưng sau khi tích chập và gộp.
●
Lớp kết nối đầy đủ (Fully connected layer): Lớp này
kết nối các nút của lớp trước với tất cả các nút của lớp sau,
giúp học các mối quan hệ phức tạp giữa các đặc trưng đã
được trích xuất.
●
Lớp đầu ra (Output layer): Lớp này tính toán xác suất
hoặc điểm số của các lớp đối tượng mong muốn dựa trên
đầu ra của lớp kết nối đầy đủ.
Hình 1. Cấu trúc hoạt động của CNN
2.2. Mạng nơ-ron hồi tiếp RNN (Recurrent Neural
Network)
Mạng nơ-ron hồi tiếp RNN là một dạng kiến trúc mạng
nơ-ron nhân tạo được thiết kế để xử lý dữ liệu dạng chuỗi

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI HANOI UNIVERSITY OF INDUSTRY Tập san SINH VIÊN NGHIÊN CỨU KHOA HỌC Số 14 ● 2024 56hoặc tuần tự [8]. RNN có khả năng xử lý thông tin từ dữ
liệu đầu vào và lưu trữ trạng thái bên trong để giúp dự đoán
hoặc phân loại dữ liệu tiếp theo trong chuỗi.
Mô hình hoạt động của mạng nơ-ron hồi tiếp được mô
tả trong Hình 2 và cụ thể như sau:
●
Đầu vào: Dữ liệu từ mỗi bước thời gian trong chuỗi
được truyền vào mạng nơ-ron RNN qua các lớp nơ-ron. Mỗi
nút trong lớp này biểu diễn cho một đặc trưng hoặc phần
của dữ liệu đầu vào.
●
Trạng thái ẩn: RNN lưu trữ một trạng thái ẩn hoặc bộ
nhớ bên trong mạng để lưu trữ thông tin từ các bước thời
gian trước đó. Trạng thái ẩn được tính toán dựa trên đầu vào
hiện tại và trạng thái ẩn từ bước thời gian trước đó.
●
Cập nhật trạng thái ẩn: Trạng thái ẩn mới được tính
toán dựa trên đầu vào hiện tại và trạng thái ẩn trước đó, kết
hợp với các trọng số được học trong quá trình huấn luyện.
● Đầu ra: Kết quả dự đoán hoặc phân loại được tính toán
dựa trên trạng thái ẩn và đầu vào hiện tại. Đầu ra này có thể
được sử dụng để dự đoán các giá trị tiếp theo trong chuỗi
hoặc để phân loại dữ liệu.
Hình 2. Cấu trúc hoạt động của mạng RNN
2.3. Mạng nơ-ron hồi tiếp với nút có cổng GRU (Gated
Recurrent Unit)
GRU là một dạng kiến trúc mạng nơ-ron hồi tiếp (RNN)
được thiết kế để giải quyết các vấn đề biến mất gradient và
cải thiện hiệu suất so với các kiến trúc RNN truyền thống
[8]. GRU cung cấp một cách tiếp cận đơn giản hóa so với
LSTM, nhưng vẫn giữ được khả năng học các phụ thuộc dài
hạn trong dữ liệu chuỗi.
Hoạt động của GRU được mô tả trong hình 3 và chi tiết
như sau:
●
Cổng cập nhật (Update gate): Cổng này quyết định
thông tin nào từ trạng thái trước đó sẽ được cập nhật và
thông tin nào sẽ bị loại bỏ. Nó có vai trò tương tự như cổng
quên trong LSTM.
●
Cổng khôi phục (Reset gate): Cổng này quyết định
thông tin nào trong trạng thái trước đó sẽ được bỏ qua để
học các biểu diễn mới. Nó giúp mô hình quyết định xem
nên xem xét thông tin cũ hay nên cập nhật thông tin mới.
● Trạng thái ẩn (Hidden state): Trạng thái ẩn của GRU
biểu diễn thông tin trạng thái tạm thời của mạng nơ-ron. Nó
được cập nhật dựa trên đầu vào hiện tại và trạng thái trước
đó, và được sử dụng để tạo ra đầu ra của mạng.
●
Các hàm kích hoạt: GRU sử dụng các hàm kích hoạt
như hàm sigmoid để kiểm soát các cổng cập nhật và khôi
phục, cũng như hàm tanh để tạo ra đầu ra.
Hình 3. Cấu trúc hoạt động của GRU
2.4. Các hàm kích hoạt [8]
- Hàm ReLU (Rectified Linear Activation)
Công thức hàm ReLu : ()=(0, )
Hàm kích hoạt ReLu có ưu điểm là đơn giản, hiệu quả
tính toán, khá chống lại hiện tượng biến mất đạo hàm. Tuy
nhiên, nhược điểm là nơ-ron có thể bị "chết" khi đầu vào
âm (vanishing gradient).
- Hàm Sigmoid
Công thức hàm kích hoạt Sigmoi: ()=
Hàm Sigmoid có ưu điểm là chuyển đổi đầu vào thành
một phạm vi từ 0 đến 1, thích hợp cho việc dự đoán xác
suất. Tuy nhiên, nhược điểm là dễ bị tắc nghẽn ở hai đầu
phạm vi, dễ xảy ra hiện tượng biến mất đạo hàm (vanishing
gradient) khi đầu vào có giá trị lớn.
- Hàm Tanh (Hyperbolic Tangent)
Công thức hàm kích hoạt Tanh: ()=
Hàm kích hoạt Tanh có ưu điểm là chuyển đổi đầu vào
thành một phạm vi từ -1 đến 1, tương tự như sigmoid nhưng
có phạm vi đầu ra lớn hơn. Tuy nhiên, việc sử dụng hàm
Tanh có thể gặp vấn đề về hiện tượng biến mất đạo hàm
(vanishing gradient).
- Hàm Softmax
Công thức hàm kích hoạt Softmax: ()=
∑
Hàm Softmax có ưu điểm là có thể chuyển đổi các giá
trị thành một phân phối xác suất, thích hợp cho bài toán
phân loại nhiều lớp. Tuy nhiên, nhược điểm là dễ bị tắc
nghẽn khi một giá trị đầu vào lớn hơn các giá trị khác.
2.5. Kỹ thuật SMOTE (Synthetic Minority Over-
sampling Technique)
Phương pháp SMOTE là một kỹ thuật quan trọng trong
xử lý bất cân bằng dữ liệu, đặc biệt là trong bài toán phân

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI HANOI UNIVERSITY OF INDUSTRY Tập san SINH VIÊN NGHIÊN CỨU KHOA HỌC Số 14 ● 2024 57loại. SMOTE được thiết kế để xử lý vấn đề khi một trong
các lớp (hay nhãn) của tập dữ liệu có số lượng mẫu ít hơn
đáng kể so với lớp khác, gây ra hiện tượng mô hình phân
loại thiên về lớp đa số và bỏ qua lớp thiểu số.
Kỹ thuật SMOTE hoạt động cụ thể như sau:
● Xác định lớp thiểu số: Đầu tiên, cần xác định lớp thiểu
số trong tập dữ liệu của bạn, tức là lớp có ít mẫu hơn và cần
được cân bằng.
● Tìm lân cận gần nhất: Đối với mỗi mẫu trong lớp thiểu
số, sử dụng một độ đo khoảng cách (thường là khoảng cách
Euclid) để tìm các mẫu gần nhất từ lớp cùng chiều với mẫu
đó. Thông thường, một số lân cận (k) được chọn trước để
xác định số lượng mẫu gần nhất cần được sử dụng.
● Tạo ra mẫu tổng hợp: Đối với mỗi mẫu trong lớp thiểu
số, chọn một trong các mẫu láng giềng gần nhất và tạo ra
một mẫu tổng hợp mới bằng cách kết hợp các đặc trưng của
mẫu gốc và mẫu láng giềng theo một tỷ lệ ngẫu nhiên.
Công thức tạo mẫu tổng hợp là:
_
=
_
+
×(
_
ℎ
−
_
) Trong đó:
o new_sample là mẫu dữ liệu tổng hợp mới.
o sample_original là mẫu dữ liệu gốc từ lớp thiểu số.
o sample_neighbor là mẫu láng giềng gần nhất từ lớp
cùng chiều.
o α là một số ngẫu nhiên trong khoảng [0, 1].
● Lặp lại quá trình: Quá trình này được lặp lại cho đến
khi số lượng mẫu trong lớp thiểu số đạt đến một mức mong
muốn.
2.6. Kỹ thuật cGAN sinh dữ liệu mới (Conditional
Generative adversarial networks)
GAN viết tắt cho Generative Adversarial Networks.
Generative giống như ở trên, Network có nghĩa là mạng
(mô hình), còn Adversarial là đối nghịch. Tên gọi như vậy
là do GAN được cấu thành từ 2 mạng gọi là Generator và
Discriminator, luôn đối nghịch đầu với nhau trong quá trình
train mạng GAN. GAN là mô hình có khả năng sinh ra dữ
liệu mới. Trong khi Generator sinh ra các dữ liệu giống như
thật thì Discriminator cố gắng phân biệt đâu là dữ liệu được
sinh ra từ Generator và đâu là dữ liệu thật có.
Tóm lại GAN là mạng để sinh dữ liệu mới giống với dữ
liệu trong dataset có sẵn và có 2 mạng trong GAN là
Generator và Discriminator. Kiến trúc của cGAN cũng bao
gồm hai mạng Generator (hình 4) và Discriminator (hình 5).
Hình 4. Mô hình Generator cGAN
cGAN - Conditional GAN vẫn là mô hình GAN ban đầu
cộng thêm điều kiện y ở đầu vào, y là một số nguyên giúp
cho mô hình sinh ra dữ liệu theo đúng thứ tự của mã độc.
Hình 5. Mô hình Generator cGAN
3. THỰC NGHIỆM VÀ ĐÁNH GIÁ
3.1. Công cụ thực nghiệm
Kết quả của bài báo được thực hiện trên Google Colab -
một phiên bản lưu trữ trên đám mây giống với Jupyter
Notebook do Google Research phát triển (hình 4). Với ưu
điểm là không cần cài đặt và nâng cấp phần cứng máy tính
cá nhân mà vẫn có thể xử lý các công việc nặng về
CPU/GPU trong Python. Colab cung cấp miễn phí quyền
truy cập vào các hạ tầng điện toán đám mây như bộ lưu trữ,
bộ nhớ, GPU (đơn vị xử lý đồ hoạ), CPU (bộ não máy chủ)
và TPU (đơn vị xử lý tensor).
Hình 6. Giao diện của Google Colab
Cấu hình các bộ xử lý trong Google Colab được mô tả
trong bảng 1.
Bảng 1. Các bộ xử lý trong Google Colab
CPU GPU TPU
Bộ xử lý Intel
Xeon với 2 core
hoạt động ở tốc
độ 2.30 GHz và
bộ nhớ RAM
13GB
Up to GPU Tesla
K80 với 12GB bộ
nhớ VRAM
GDDR5, bộ xử lý
Intel Xeon với 2
core hoạt động ở
tốc độ 2.20 GHz
và bộ nhớ RAM
13 GB
Cloud TPU với
180 teraflops
công suất tính
toán, bộ xử lý
Intel Xeon với 2
core hoạt động ở
tốc độ 2.30 GHz
và bộ nhớ RAM
13GB
Ngoài ra, chúng tôi còn sử dụng GPU để thực hiện
chương trình bởi ngoài khả năng tính toán song song một
cách nhanh chóng nó còn có ưu điểm của về việc hiển thị
hình ảnh và đồ họa trên màn hình cũng như các đồ thị và
mô hình một cách hiệu quả.

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI HANOI UNIVERSITY OF INDUSTRY Tập san SINH VIÊN NGHIÊN CỨU KHOA HỌC Số 14 ● 2024 583.2. Mô tả dữ liệu mã độc
Chúng tôi đã tiến hành thu thập và nghiên cứu dựa trên
hai bộ dữ liệu khác nhau, bộ dữ liệu đầu tiên [7] là bộ dữ
liệu chứa các mẫu mã độc khác nhau, trích xuất đặc trưng
dựa vào các hàm Import trong file PE32 để tạo ra bộ dữ liệu,
các đặc trưng của bộ dữ liệu được lưu trong tập tin
‘data.csv’ và bộ thứ hai là bộ dữ liệu
‘malimg_paper_dataset_imgs’ bộ dữ liệu này chứa dữ liệu
của mã độc đã chuyển đổi sang dạng ảnh [9]. Chi tiết về mô
tả các bộ dữ liệu được giới thiệu dưới đây.
- Bộ dữ liệu mã độc dựa vào tập tin PE32
Bộ dữ liệu bao gồm 387 mẫu và 1859 thuộc tính mô tả
như trong hình 7.
Hình 7. Dữ liệu trong file excel
Số lượng mẫu của Bộ dữ liệu này còn ít, nên để sử dụng
bộ dữ liệu này, chúng tôi đã tạo ra một bộ dữ liệu mới từ bộ
dữ liệu gốc. Sử dụng phương pháp tạo sinh dữ liệu, nhóm
đề tài đã lựa chọn phương pháp SMOTE để tạo mới bộ dữ
liệu. Bộ dữ liệu mới chứa 10000 mẫu và chuẩn hóa các
thuộc tính dữ liệu ở các số nguyên.
Đối với bộ dữ liệu này, chúng tôi thực hiện tiền xử lý dữ
liệu bằng việc chuẩn hóa dữ liệu sử dụng phương pháp
StandardScaler (hình 8).
Hình 8. Chuẩn hóa dữ liệu bằng phương pháp StandardScaler
- Bộ dữ liệu mã độc dạng ảnh
Bộ dữ liệu này chứa dữ liệu dạng byte và dạng ảnh PNG
(hình 9) của 25 loại mã độc khác nhau cụ thể được chứa
trong 25 thư mục, tên của thư mục cũng chính là tên của
loại mã độc đó (hình 10).
Hình 9. Ví dụ minh họa về một loại mã độc dưới dạng byte và
dưới dạng ảnh PNG
Hình 10. Mô tả 25 thư mục chứa 25 loại mã độc khác nhau
Với dữ liệu ban đầu được biểu diễn dưới dạng hệ thập
lục phân được mã hóa từ file nhị phân. Mục tiêu là chuyển
đổi những file này về dạng ảnh PNG. Hình 11 mô tả hàm
thực hiện chuyển đổi dữ liệu từ dạng thập lục phân về dạng
ảnh PNG.
Hình 11. Hàm chuyển đổi về dạng ảnh
Với bộ dữ liệu dạng ảnh này, chúng tôi đã tiến hành
thống kê dữ liệu (hình 12), kết quả cho thấy mức độ chênh
lệch khá lớn về tỷ lệ của số lượng từng loại mã độc trong
bộ dữ liệu. Cụ thể, từ biểu đồ trên có thể nhận ra rằng bộ
data này đang mất cân bằng về số lượng các loại mã độc
trong khi hầu hết mã độc thuộc về class 2: Allaple.A và
class 3: Allaple.L trong khi class 5: Autorun.K và class 19:
Skintrim.N thì lại ngược lại. Kết quả này sẽ kéo theo sự mất
cân bằng trong quá trình huấn luyện và mô hình sẽ có xu
hướng học nhiều hơn từ những loại mã độc chiếm đa số
trong bộ dữ liệu và cần phải khắc phục bằng cách điều chỉnh

