Phát hiện malware dựa trên header của tập tin PE sử dụng Machine learning

Phát hin malware da trên header ca tp tin PE  
sdng Machine learning  
Malware detection based on PE file header by using Machine learning  
Nguyn Kim Tuna*, Nguyn Hoàng Hàb*  
a,Trường Đại học Duy Tân, 03 Quang Trung, Đà Nẵng, Vit Nam  
bTrường Đại hc Khoa hc Huế, 77 Nguyn Hu, Huế, Vit Nm  
anguyenkimtuan@duytan.edu.vn, bnhha76@gmail.com,  
__________________________________________________________________________________________  
Tóm tt  
Trong bài báo này, chúng tôi da vào cu trúc phn PE header ca các tập tin PE để đề xut một hướng tiếp cn  
khác trong vic sdụng Machine learning để phân loi các tp tin này, là tập tin mã độc hay tp tin lành tính. Kết  
quthc nghim cho thy, tiếp cận đề xut vn sdng thut toán Random Forest cho bài toán phân loi nhưng  
độ chính xác và thi gian thực thi được ci thin so vi mt scông bgần đây (độ chính xác đạt 99.71%).  
Tkhóa: Tp tin PE; Trường; Đặc trưng; Mã độc; Thut toán Random Forests;  
Abstract  
In this paper, we rely on the PE header structure of PE files to propose another approach in using Machine  
learning to classify these files, as malware files or benign files. Experimental results show that the proposed  
approach still uses Random Forest algorithm for the classification problem but the accuracy and execution time  
are improved compared to some recent publications (accuracy reaches 99.71%).  
Keywords: PE header, Field; Feature, Malware, Random Forsest Algorithm.  
1. Gii thiu  
Trong những năm trở lại đây, mã độc  
(malware) đã trở thành mối đe dọa đáng kể  
đi vi vấn đề bo mt trên không gian mng.  
Malware có thtn ti trong các thiết bị đầu  
cui, có thtruyền đi trên đường truyn mng  
và có thể đính kèm/n trong các tp tin có thể  
thc thi, đặc bit là trong các tp tin PE ca  
hệ điều hành Windows. Hin có 2 kthut  
được sdụng để phát hin malware [6]. Kỹ  
thut da trên chký (Signature based  
detection) tuy cho độ chính xác cao nhưng  
gp nhiều khó khăn trước sự đa dạng và khả  
năng biến hình ca các loi malware hin nay.  
Kthut không da trên chký (Non-  
signature based detection) có thgii quyết  
khó khăn này, nó thường được sdụng để  
phát hiện được các loại malware “chưa được  
biết đến” (unknown), các loi malware có khả  
năng biến dng cao xut hin gần đây… Kỹ  
thut này giúp vic phân loi, phát hin  
malware hiện nay đạt hiu quả cao khi được  
triển khai theo hướng tiếp cn Machine  
learning.  
tp tin hoạt động trên môi trường hệ điều  
hành Windows, nó có thlà các tp tin thc  
thi (executable files) hoc là các tp tin cha  
mã nhphân được sdng bi các tp tin thc  
thi khác. Vùng thông tin định dng (format  
information) ca tp tin PE [1] cha nhng  
thông tin cn thiết mà hệ điều hành sdng  
để điều khin vic thc thi ca tp tin khi  
chúng được np vào main memory. Tt ccác  
tập tin PE đều có cùng cu trúc và cùng số  
lượng trường (field) trong PE header, nên  
chúng ta có thtrích xut các field này, để làm  
tp đặc trưng (feature) đầu vào cho quá trình  
xây dng mô hình phân loi malware ca các  
tp tin này theo cách sdng các thut toán  
Machine learning.  
Chúng ta đều biết, thông tin cha trong  
PE header ca các tp tin PE lành tính  
(benign) đều dạng đã được chun hóa bi  
hệ điều hành Windows. Nếu mt tp tin PE  
nào đó mà dữ liu cha trong các field trong  
PE header ca nó có sự “sai khác” so với các  
tp tin PE lành tính thì nhiu khả năng đó là  
tp tin malware. Như vậy, chúng ta có thể  
Tp tin PE (Portable Executable) là các  
1
phân loi mt tp tin PE, là tp tin malware  
hay tp tin lành tính, bng cách xem xét dữ  
liu cha trong các field ca PE header ca  
nó. Vì số lượng field trong PE header là ln,  
dliu ti các field li có quan hvi nhau,  
hu hết các field đều có thbị làm “sai khác”,  
nhng mức độ khác nhau… nên bài toán  
phát hin malware ở đây cần tiếp cn theo  
hướng sdng các thut toán Machine  
learning thì mới đạt được độ chính xác cao  
nht có th[1], [2], [4], [5], [6].  
dạng cao và tỷ lệ dương tính giả thấp với độ  
chính xác 92%.  
Jinrong Bai và cộng sự đề xuất một  
hướng tiếp cận cho việc phát hiện malware  
trong các tập tin PE bằng cách khai phá thông  
tin định dạng của các tập tin này [1]. Kỹ thuật  
“in-depth analysis” được nhóm tác giả chọn  
để phân tích vùng thông tin định dạng của các  
tập tin PE. Đầu tiên, họ cho trích xuất ra 197  
đặc trưng từ vùng thông tin định dạng này,  
sau đó thực hiện việc chọn đặc trưng để giảm  
số lượng xuống còn 19 hoặc 20 đặc trưng.  
Tập đặc trưng được chọn sẽ được training bởi  
4 thuật toán phân lớp J48, Random Forest,  
Bagging và Adaboost. Kết quả thực nghiệm  
cho thấy, tiếp cận này đạt độ chính xác cao  
nhất, 99.1%, ở thuật toán phân loại Random  
Forest.  
Chúng ta có ththu thp một lượng ln  
các mu PE header ca các tp tin lành tính  
và tp tin malware, sau đó trích xuất các đặc  
trưng của mi field, rồi so sánh để tìm ra sự  
khác biệt đáng kể nht gia tp tin lành tính  
và tp tin malware, làm cơ sở cho vic phân  
loi về sau. Đây là hướng tiếp cn mà chúng  
tôi thc nghiệm và đề xut trong bài bào này.  
Yibin Liao khai thác cấu trúc của các  
tập tin PE theo một hướng tiếp cận khác [4].  
Ông trích xuất đặc trưng của mỗi trường trong  
header, rồi so sánh để tìm ra sự khác biệt có ý  
nghĩa nhất giữa các tập tin malware và tập tin  
lành tính. Và trích xuất các icon trong tập tin  
PE để tìm ra các icon phổ biến (prevalent)  
nhất, có tính lừa bịp nhất (misleading) từ các  
tập tin malware. Yibin Liao thực nghiệm tiếp  
cận đề xuất trên một tập dữ liệu có 6875 mẫu,  
trong đó gồm 5598 mẫu header của tệp tin  
độc hại và 1237 mẫu header của tệp tin thực  
thi lành tính. Kết quả cho thấy tiếp cận này  
đạt tỷ lệ phát hiện hơn 99% với ít hơn 0,2%  
dương tính giả trong vòng chưa đầy 20 phút.  
Theo tác giả, có thể phát hiện malware bằng  
cách chỉ xem xét một vài đặc trưng/trường  
chính trong PE header của các tập tin PE hoặc  
xem xét các prevalent icon, các misleading  
icon được nhúng trong các tập tin này. Điều  
này giúp rút ngắn được thời gian phát hiện  
malware trên các tập tin PE.  
2. Các nghiên cu liên quan  
Hiện có khá nhiều hướng tiếp cận cho bài  
toán phân loại malware sử dụng kỹ thuật  
Machine learning. Trong phần này, chúng tôi  
điểm lại những kết quả, về độ chính xác, về tỉ  
lệ phát hiện và tốc độ huấn luyện, một số  
tiếp cận được công bố gần đây đạt được.  
Trong [5], Rushabh Vyah và cộng sự  
đã đề xuất một quy trình phát hiện malware  
trong tập tin PE trên môi trường mạng. Họ áp  
dụng 4 thuật toán học có giám sát khác nhau,  
Decision Tree, K-NN, SVMs và Random  
Forest, trên cùng một tập dữ liệu, chỉ với 28  
đặc trưng (feature) tĩnh. Random Forest là mô  
hình mà Vyas chọn, nó đạt tỉ lệ phát hiện  
malware - backdoor, virus, trojan và worn -  
trung bình là 98.7%, tỷ lệ phát hiện dương  
tính là 1.8%.  
Tiếp cận được đề xuất bởi Hellal và  
Lotfi Ben Romdhane [2] là sự kết hợp giữa 2  
kỹ thuật, phân tích tĩnh và khai phá đồ thị  
(static analysis graph mining). Họ đề xuất  
một thuật toán mới có thể tự động trích xuất  
các mẫu hành vi malware có tính phổ biến và  
khác biệt, nhưng lặp lại, từ các tập tin nghi  
ngờ. Đề xuất này quan tâm đến việc tiết kiệm  
dung lượng bộ nhớ và giảm thời gian quét  
bằng cách tạo ra một lượng chữ ký (signature)  
hạn chế, điều này không như các phương  
pháp hiện có. Tiếp cận trong [2] đạt tỷ lệ nhận  
Hiện chúng tôi chưa tìm thấy một  
phương pháp, một cách tiếp cận hay một mô  
hình được nào cho là chung nhất, là tối ưu  
nhất để phát hiện và phân loại malware sử  
dụng Machine learning đạt độ chính xác cao  
nhất. Vì thế, chúng tôi đề xuất một cách tiếp  
cận khác, tập trung vào các trường có ảnh  
hưởng cao trong phần PE header của các tập  
tin PE, như là sự đóng góp nhỏ cho hướng  
nghiên cứu này.  
2
3. Tiếp cận đề xut  
7
8
9
ExportNb  
0.052831  
0.049870  
0.045429  
0.037733  
Tiếp cận của chúng tôi được thực nghiệm  
trên tập dữ liệu (dataset) khá lớn, gồm  
140.297 mẫu PE header của tập tin PE, trong  
đó 44.214 mẫu malware và 96.083 mẫu  
lành tính. Dataset này được chúng tôi thu thập  
từ website virusshare.com và các tập tin PE  
lành tính trên môi trường hệ điều hành  
Windows.  
Subsystem  
MajorOSVersion  
10 ResourcesNb  
… …  
41 SectionsMeanVirtualsize 0.001965  
42 SectionMaxRawsize  
43 SectionsMeanRawsize  
44 ImportsNbOrdinal  
45 LoadConfigurationSize  
46 FileAlignment  
0.001697  
0.001697  
0.001600  
0.001275  
0.001175  
0.001167  
0.001088  
Chúng tôi sử dụng các thuật toán  
Machine learning như: AdaBoost, Gradient  
Boosting, Decision Tree, Extra Tree,  
Random Forest, để xây dựng các mô hình  
phân loại tập tin PE - tập tin malware hay tập  
tin lành tính - từ dataset này theo hướng chỉ  
dựa vào đa số các trường trong phần PE  
header của các tập tin này. Mục tiêu thực  
nghiệm để chọn ra một mô hình phân loại  
Machine learning sao cho có độ chính xác cao  
với thời gian huấn luyện chấp nhận được.  
47 SectionAlignment  
48 SizeOfHeaders  
49 SizeOfUninitializedData 0.001036  
50 BaseOfCode  
0.000832  
0.000401  
0.000225  
0.000008  
0.000002  
51 SizeOfHeapReserve  
52 SizeOfHeapCommit  
53 NumberOfRvaAndSizes  
54 LoaderFlags  
Với những thông tin có được từ việc khảo  
sát các field trong phần PE Header của các tập  
tin này, chúng tôi tiến hành loại bỏ các field  
ít bị tác động bởi malware nhất, như  
LoaderFlags,  
NumberOfRvaAndSizes,  
SizeOfHeapCommit, SizeOfHeapReserve…  
ra khỏi dataset, chỉ giữ lại 44 field. Điều này  
hoàn toàn trùng hợp với kết quả mà chúng tôi  
có được khi sử dụng lần lượt thuật toán  
Random Forest và Extra Tree để đánh giá  
mức độ ảnh hưởng của các field, chính xác là  
các feature, trong PE header của 140.297 mẫu  
PE header trong dataset. Bảng sau cho thấy  
mức độ ảnh hưởng của các field theo Random  
Forest:  
…  
Việc giảm bớt một số field của mỗi mẫu  
PE header không chỉ giúp làm giảm kích  
thước của dataset, dẫn đến giảm được tài  
nguyên của hệ thống dùng trong quá trình  
thực hiện chương trình xây dựng mô hình  
phân loại, mà còn giảm thời gian huấn luyện  
mô hình, với 54 feature là 13.04s , với 44  
feature là 12.52s.  
Phần còn lại trong hướng tiếp cận của  
chúng tôi được thực hiện theo đúng trình tự 4  
thực nghiệm ở phần sau đây.  
Bảng 1: Mức độ ảnh hưởng các field trong  
PE header của các tập tin PE theo thuật toán  
Random Forest  
Mức độ  
nh  
hưởng  
4. Kết quthc nghim  
4.1. Thc nghim 1  
T
T
Trường trong PE  
header  
Chúng tôi chia ngẫu nhiên dataset thành  
2 phần, 80% là tập huấn luyện (Training set)  
và 20% là tập kiểm thử (Test set). Hai tập dữ  
liệu này được sử dụng để đánh giá độ chính  
xác (accuracy) và thời gian huấn luyện  
(training time) của các mô hình Machine  
learning theo 5 thuật toán khác nhau. Kết quả  
nhận được cho ở Bảng 2.  
1
2
3
4
5
6
ImageBase  
0.193689  
0.103419  
0.075304  
0.065888  
0.058338  
0.052923  
SizeOfStackReserve  
VersionInformationSize  
MinorImageVersion  
ResourcesMinSize  
Characteristics  
3
Bng 2. Độ chính xác và thi gian hun  
luyn ca ca các mô hình Machine learning  
thực nghiệm 2, chúng tôi chọn thuật toán  
Random Forest để xây dựng mô hình phân  
loại cho đề xuất của mình, vì độ chính xác mà  
nó cung cấp là cao nhất (99.71% và 99.72%)  
và với thời gian huấn luyện hợp lý.  
Thi  
gian  
hun  
luyn  
Độ  
chính  
xác  
Thut toán  
4.3. Thc nghim 3  
AdaBoost  
99.12%  
12.83 s  
30.76 s  
0.98 s  
Trong thực nghiệm này, chúng tôi sẽ tìm  
hiểu xem liệu tăng số lượng Tree trong mô  
hình theo Random Forest có làm cho độ chính  
c tăng hay không, từ đó tìm ra số lượng  
Tree vừa đủ để mô hình có thể làm việc nhanh  
hơn với độ chính xác cao hơn.  
GradientBoosting 99.30%  
DecisionTree  
ExtraTree  
99.34%  
99.69%  
99.71%  
9.74 s  
RandomForest  
13.17s  
Đầu tiên chúng tôi thử tạo ra 10 mô hình  
Random Forest chỉ có một tree sau đó tăng  
dần lên đến 500 tree, cứ mỗi lần tăng chúng  
tôi sẽ tính trung bình độ chính xác và thời gian  
huấn luyện của 10 mô hình. Kết quả cho ở 2  
biểu đồ như hình bên dưới (H.1a và H.1b):  
Thực nghiệm này cho thấy, mô hình  
được xây dựng bởi thuật toán Random Forest  
cho độ chính xác cao nhất, lên đến hơn  
99.71%, với thời gian huấn luyện đạt mức  
trung bình, so sánh với 4 thuật toán còn lại.  
Mô hình theo Extra Trees thì có thời gian  
huấn luyện nhanh hơn, nhưng độ chính xác  
thấp hơn so với Random Forest. Thuật toán  
Decision Tree cho mô hình có tốc độ huấn  
luyện rất cao, nhưng độ chính xác không như  
mong muốn.  
4.2. Thc nghim 2  
Cách chia tập dữ liệu thành 2 phần một  
cách ngẫu nhiên như ở thực nghiệm 1, tuy  
đơn giản nhưng độ chính xác của mô hình có  
thể bị ảnh hưởng nếu xảy ra hiện tượng  
overfit. Trong thực nghiệm này, chúng tôi sử  
dụng thuật toán k-fold [3], với K= 10, để giải  
quyết vấn đề overfit/unoverfit. Kết quả nhận  
được cho ở Bảng 3.  
Hình 1a: Biểu đồ Thi gian hun luyn ca  
mô hình khi tăng số lượng Tree  
Bảng 3: Độ chính xác của các mô hình  
machine learning theo k-fold với K = 10  
Độ  
chính  
xác  
Độ  
chính  
xác  
Độ  
chính  
xác  
Thut  
toán  
trung  
bình  
99.11% 99.05%  
thp  
nht  
cao  
nht  
99.17%  
AdaBoost  
Gradient-  
Boosting  
99.37%  
99.31% 99.24%  
Decision-  
Tree  
ExtraTree  
Random-  
Forest  
99.42%  
99.75%  
99.76%  
99.34% 99.26%  
99.71% 99.67%  
99.72% 99.66%  
Hình 1b: Biểu đồ Độ chính xác ca mô hình  
khi tăng số lượng Tree  
Độ chính xác khi số Tree ít hơn 20 là rất  
Từ kết quả có được ở thực nghiệm 1 và  
thấp, sau 50 bắt đầu tăng dần và độ chính xác  
4
bắt đầu đạt ngưỡng ở mức 100 Tree trở đi,  
thời gian huấn luyện tăng dần theo số lượng  
Tree. Điều này cho thấy, chúng ta chỉ cần một  
số lượng tree vừa đủ (trong trường hợp này là  
100) thì mô hình cũng đã có thể đạt được độ  
chính xác cao. Giảm số số lượng tree giúp làm  
giảm thời gian huấn luyện và tiết kiểm được  
tài nguyên hệ thống. Đây là điều cần ghi  
nhận.  
ghi nhận so với một số công bố gần đây (H.2).  
5. Kết lun  
Qua bài báo này, chúng tôi đề xuất một  
hướng tiếp cận khác cho việc phát hiện  
malware trên các tập tin PE. Đề xuất của  
chúng tôi được thực nghiệm trên dataset rất  
lớn, gồm header của 149.297 tập tin PE, trong  
đó có 44.214 tập tin malware và 96.083 tập  
tin lành tính. Kết quả thực nghiệm cho thấy:  
Không cần xem xét tất cả các trường trong  
header, loại bỏ các trường ít ảnh hưởng nhất,  
thuật toán Random Forest vẫn cho độ chính  
xác khá cao, lên đến 99,71%, với thời gian  
huấn luyện đạt mức trung bình, 13.17s, so với  
4 thuật toán khác; Độ chính xác của Random  
Forest phụ thuộc vào việc chọn số lượng Tree  
sao cho phù hợp chứ không cần phải chọn  
càng nhiều Tree càng tốt; Việc giảm số lượng  
Tree và việc loại bỏ các trường ít quan trọng  
đã cải thiện được tốc độ huấn luyện mô hình  
- giảm 70%, cải thiện tốc độ phát hiện  
malware và giảm tài nguyên hệ thống.  
4.4. Thc nghim 4  
Vi vic chchn 44 đặc trưng, tương  
đương 44 trường trong PE header ca các tp  
tin PE, mô hình phân loại Machine learning  
theo Ramdom Forest của chúng tôi có được tỉ  
lệ chính xác trung bình và thời gian huấn  
luyện đáng ghi nhận, lần lượt là 99.72% và  
13.17s. Chúng tôi thực nghiệm việc tiếp tục  
giảm số lượng đặc trưng được chọn, để xem  
tỉ lệ chính xác và thời gian huấn luyện mô  
hình có bị thay đổi hay không. Kết quả như  
sau, khi số đặc trưng được chọn trong khoảng  
từ 13 đến 15 thì tỉ lệ chính xác trung bình đạt  
là 99.63% và thời gian huấn luyện là 3.88s.  
Tài liu tham kho  
Thực nghiệm này cho thấy, khi giảm số  
lượng đặc trưng đến mức có thể thì tỉ lệ chính  
xác trung bình chỉ giảm một lượng không  
đáng kể, 0.09%, nhưng độ giảm của thời gian  
huấn luyện giảm là đáng ghi nhận, 9.29s  
(70%), so với ban đầu. Việc giảm số lượng  
đặc trưng còn giúp giảm kích thước tập dữ  
liệu, giảm thời gian cho việc phân tách các  
trường từ PE header của các tập tin PE, giúp  
tăng tốc độ phát hiện malware và tăng hiệu  
suất của hệ thống.  
[1] J. Bai, J. Wang, G. Zou, "A Malware  
Detection Scheme Based on Mining  
Format Information", The Scientific  
World Journal, vol.2014, Article ID  
260905, p.1-11, 2014.  
[2] A. Hellal, L. B. Romdhane, "Minimal  
Contrast Frequent Pattern Mining for  
Malware Detection", Computers &  
Security, vol.62, p.19-32, 2016.  
[3] Davide Anguita, Luca Ghelardoni,  
Alessandro Ghio, Luca Oneto and  
Sandro Ridella, “The ‘K’ in K-fold Cross  
Validation”, European Symposium on  
Artificial  
Neural  
Networks,  
Computational Intelligence and Machine  
Learning. Bruges (Belgium), p.25-27,  
2012.  
[4] Y. Liao, "Pe-Header-Based Malware  
Study and Detection", Security &  
Privacy Workshop, San Francisco, CA,  
U.S.A, 2012.  
Hình 2: So sánh độ chính xác của đề xuất này  
so với một số công bố gần đây.  
[5] Vyas, R. Luo, X. McFarland, N. Justice,  
"Investigation of malicious portable  
executable file detection on the network  
using supervised learning techniques",  
Như vậy, mô hình phân loại malware dựa  
vào E header của các tập tin PE theo hướng  
tiếp cận của chúng tôi đạt độ chính xác được  
5
IFIP/IEEE Symposium on Integrated  
Network and Service Management (IM),  
pp.941946, 2017.  
maliciousness of portable executable  
using integrated feature set”, Journal of  
iss.2, p.252-265, 2019.  
G.Aghilab, “A learning model to detect  
6
pdf 6 trang baolam 10/05/2022 3040
Bạn đang xem tài liệu "Phát hiện malware dựa trên header của tập tin PE sử dụng Machine learning", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfphat_hien_malware_dua_tren_header_cua_tap_tin_pe_su_dung_mac.pdf