Phát hiện malware dựa trên header của tập tin PE sử dụng Machine learning - Nguyên lý điều hành - Học Viện Kỹ Thuật Mật Mã

Trong bài báo này, chúng tôi dựa vào cấu trúc phần PE header của các tập tin PE để đề xuất một hướng tiếp cận khác trong việc sử dụng Machine learning để phân loại các tập tin này, là tập tin mã độc hay tập tin lành tính. Kết quả thực nghiệm cho thấy, tiếp cận đề xuất vẫn sử dụng thuật toán Random Forest cho bài toán phân loại nhưng độ chính xác và thời gian thực thi được cải thiện so với một số công bố gần đây (độ chính xác đạt 99.71%). Tài liệu giúp bạn tham khảo và đạt kết quả tốt. Mời bạn đọc đón xem!

lOMoARcPSD|1 6072870
Phát hiện malware dựa trên header của tập tin PE
sử dụng Machine learning
Malware detection based on PE file header by using Machine learning
Nguyễn Kim Tuấn
a
*, Nguyễn Hoàng Hà
b
*
a,
Trường Đại học Duy Tân, 03 Quang Trung, Đà Nẵng, Việt Nam
b
Trường Đại học Khoa học Huế, 77 Nguyễn Huệ, Huế, Việt Nm
a
nguyenkimtuan@duytan.edu.vn,
b
nhha76@gmail.com,
Tóm tắt
Trong bài báo này, chúng tôi dựa vào cấu trúc phần PE header của các tập tin PE đ đ xuất một hướng tiếp cận
khác trong việc sử dụng Machine learning để phân loại các tập tin này, tập tin mã độc hay tập tin lành tính. Kết
quả thực nghiệm cho thấy, tiếp cận đề xuất vẫn sử dụng thuật toán Random Forest cho bài toán phân loại nhưng
độ chính xác thời gian thực thi được cải thiện so với một số công bố gần đây (độ chính xác đạt 99.71%).
Từ khóa: Tập tin PE; Trường; Đặc trưng; độc; Thuật 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. Giới thiệu
Trong những năm trở lại đây, độc
(malware) đã trở thành mối đe dọa đáng kể
đối với vấn đề bảo mật trên không gian mạng.
Malware thể tồn tại trong các thiết bị đầu
cuối, thể truyền đi trên đường truyền mạng
thể đính m/ẩn trong các tập tin có thể
thực thi, đặc biệt là trong các tập tin PE của
hệ điều hành Windows. Hiện 2 kỹ thuật
được sử dụng để phát hiện malware [6]. Kỹ
thuật dựa trên chữ (Signature based
detection) tuy cho độ chính xác cao nhưng
gặp nhiều khó khăn trước sự đa dạng khả
năng biến hình của các loại malware hiện nay.
Kỹ thuật không dựa trên chữ (Non-
signature based detection) thể giải quyết
khó khăn này, thường được sử dụng để
phát hiện được các loại malware “chưa được
biết đến” (unknown), các loại malware khả
năng biến dạng cao xuất hiện gần đây… Kỹ
thuật này giúp việc phân loại, phát hiện
malware hiện nay đạt hiệu quả cao khi được
triển khai theo hướng tiếp cận Machine
learning.
Tập tin PE (Portable Executable)
các
lOMoARcPSD|1 6072870
tập tin hoạt động trên môi trường hệ điều hành
Windows, thể các tập tin thực thi
(executable files) hoặc các tập tin chứa
nhị phân được sử dụng bởi các tập tin thựcthi
khác. Vùng thông tin định dạng (format
information) của tập tin PE [1] chứa những
thông tin cần thiết hệ điều hành sử dụng để
điều khiển việc thực thi của tập tin khi chúng
được nạp vào main memory. Tất cả cáctập tin
PE đều cùng cấu trúc cùng s lượng
trường (field) trong PE header, n chúng ta
thể trích xuất các field này, để làmtập đặc trưng
(feature) đầu vào cho quá trìnhxây dựng
hình phân loại malware của các tập tin này
theo cách sử dụng các thuật toán Machine
learning.
Chúng ta đều biết, thông tin chứa trong
PE header của các tập tin PE lành tính
(benign) đều dạng đã được chuẩn hóa bởi
hệ điều hành Windows. Nếu một tập tin PE
nào đó dữ liệu chứa trong các field trong
PE header của sự “sai khác” so với các
tập tin PE lành tính thì nhiều khả năng đó
tập tin malware. Như vậy, chúng ta thể
1
lOMoARcPSD|1 6072870
phân loại một tập tin PE, tập tin malware
hay tập tin lành tính, bằng cách xem xét dữ
liệu chứa trong các field của PE header của
nó. số lượng field trong PE header lớn,
dữ liệu tại các field lại quan hệ với nhau,
hầu hết các field đều thể bị làm “sai khác”,
những mức độ khác nhau… nên bài toán
phát hiện malware đây cần tiếp cận theo
hướng sử dụng c thuật toán Machine
learning thì mới đạt được độ chính xác cao
nhất thể [1], [2], [4], [5], [6].
Chúng ta có thể thu thập một lượng lớn
các mẫu PE header của các tập tin lành nh
tập tin malware, sau đó trích xuất các đặc
trưng của mỗi field, rồi so sánh để tìm ra sự
khác biệt đáng kể nhất giữa tập tin lành tính
tập tin malware, làm sở cho việc phân
loại về sau. Đây hướng tiếp cận chúng
tôi thực nghiệm đề xuất trong bài bào này.
2. Các nghiên cứu liên quan
Hiện khá nhiều hướng tiếp cận cho 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 c, về tỉ
lệ phát hiện 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 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 giám sát khác nhau,
Decision Tree, K-NN, SVMs Random
Forest, trên cùng một tập dữ liệu, chỉ với 28
đặc trưng (feature) nh. Random Forest
hình Vyas chọn, đạt tỉ lệ phát hiện
malware - backdoor, virus, trojan worn -
trung bình 98.7%, tỷ lệ phát hiện dương
tính 1.8%.
Tiếp cận được đề xuất bởi Hellal
Lotfi Ben Romdhane [2] sự kết hợp giữa 2
kỹ thuật, phân tích nh khai phá đồ thị
(static analysis graph mining). Họ đề xuất
một thuật toán mới thể tự động trích xuất
các mẫu hành vi malware tính phổ biến
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ớ giảm thời gian quét
bằng cách tạo ra một lượng chữ (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
dạng cao tỷ lệ dương tính giả thấp với độ
chính xác 92%.
Jinrong Bai 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 tập tin này [1]. Kỹ thuật
“in-depth analysis” được nhóm tác giả chọn
để phân 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 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.
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 ý
nghĩa nhất giữa các tập tin malware tập tin
lành tính. trích xuất các icon trong tập tin
PE để tìm ra các icon phổ biến (prevalent)
nhất, 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 6875 mẫu,
trong đó gồm 5598 mẫu header của tệp tin
độc hại 1237 mẫu header của tệp tin thực
thi lành 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 n 0,2%
dương tính gi trong vòng chưa đầy 20 phút.
Theo tác giả, 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.
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
hình được nào cho chung nhất, tối ưu
nhất để phát hiện phân loại malware sử
dụng Machine learning đạt độ chính xác cao
nhất. 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
lOMoARcPSD|1 6072870
3. Tiếp cận đề xuất
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 96.083 mẫu
lành tính. Dataset này được chúng tôi thu thập
từ website virusshare.com các tập tin PE
lành tính trên môi trường hệ điều hành
Windows.
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 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 nh phân loại
Machine learning sao cho độ chính xác cao
với thời gian huấn luyện chấp nhận được.
Với những thông tin đượ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ả chúng tôi
được khi sử dụng lần lượt thuật toán
Random Forest Extra Tree để đánh giá
mức độ nh hưởng của các field, chính xác
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:
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
T
T
Trường trong PE
header
Mức độ
ảnh
hưởng
1
ImageBase
0.193689
2
SizeOfStackReserve
0.103419
3
VersionInformationSize
0.075304
4
MinorImageVersion
0.065888
5
ResourcesMinSize
0.058338
6
Characteristics
0.052923
3
7
ExportNb
0.052831
8
Subsystem
0.049870
9
MajorOSVersion
0.045429
10
ResourcesNb
0.037733
41
SectionsMeanVirtualsize
0.001965
42
SectionMaxRawsize
0.001697
43
SectionsMeanRawsize
0.001697
44
ImportsNbOrdinal
0.001600
45
LoadConfigurationSize
0.001275
46
FileAlignment
0.001175
47
SectionAlignment
0.001167
48
SizeOfHeaders
0.001088
49
SizeOfUninitializedData
0.001036
50
BaseOfCode
0.000832
51
SizeOfHeapReserve
0.000401
52
SizeOfHeapCommit
0.000225
53
NumberOfRvaAndSizes
0.000008
54
LoaderFlags
0.000002
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 hình
phân loại, còn giảm thời gian huấn luyện
nh, với 54 feature 13.04s , với 44
feature 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.
4. Kết quả thực nghiệm
4.1. Thực nghiệm 1
Chúng tôi chia ngẫu nhiên dataset thành
2 phần, 80% tập huấn luyện (Training set)
20% 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) thời gian huấn luyện
(training time) của các nh Machine
learning theo 5 thuật toán khác nhau. Kết quả
nhận được cho Bảng 2.
lOMoARcPSD|1 6072870
Thuật toán
Độ
chính
xác
Thời
gian
huấn
luyện
AdaBoost
99.12%
12.83 s
GradientBoosting
99.30%
30.76 s
DecisionTree
99.34%
0.98 s
ExtraTree
99.69%
9.74 s
RandomForest
99.71%
13.17s
Thuật
toán
Độ
chính
xác
trung
bình
Độ
chính
xác
thấp
nhất
Độ
chính
xác
cao
nhất
AdaBoost
99.11%
99.05%
99.17%
Gradient-
Boosting
99.31%
99.24%
99.37%
Decision-
Tree
99.34%
99.26%
99.42%
ExtraTree
99.71%
99.67%
99.75%
Random-
Forest
99.72%
99.66%
99.76%
thực nghiệm 2, chúng tôi chọn thuật toán
Random Forest để xây dựng nh phân
loại cho đề xuất của mình, độ chính xác
cung cấp cao nhất (99.71% 99.72%)
với thời gian huấn luyện hợp lý.
4.3. Thực nghiệm 3
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
hình theo Random Forest làm cho độ chính
xác tăng hay không, từ đó tìm ra số lượng
Tree vừa đủ để hình thể làm việc nhanh
hơn với độ chính xác cao hơn.
Đầu tiên chúng tôi thử tạo ra 10 hình
Random Forest chỉ 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 thời gian
huấn luyện của 10 nh. Kết quả cho 2
biểu đồ như nh bên dưới (H.1a H.1b):
Hình 1a: Biểu đồ Thời gian huấn luyện của
hình khi tăng số lượng Tree
Hình 1b: Biểu đồ Độ chính xác của nh
khi tăng số lượng Tree
Độ chính xác khi số Tree ít hơn 20 rất
thấp, sau 50 bắt đầu tăng dần độ chính xác
4
lOMoARcPSD|1 6072870
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
100) thì hình cũng đã 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 tiết kiểm được
tài nguyên hệ thống. Đây là điều cần ghi
nhận.
4.4. Thực nghiệm 4
Với việc chỉ chọn 44 đặc trưng, tương
đương 44 trường trong PE header của các tập
tin PE, hình phân loại Machine learning
theo Ramdom Forest của chúng tôi được tỉ
lệ chính xác trung bình thời gian huấn
luyện đáng ghi nhận, lần lượt 99.72%
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 thời gian huấn luyện
hình 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
99.63% thời gian huấn luyện 3.88s.
Thực nghiệm này cho thấy, khi giảm số
lượng đặc trưng đến mức thể t 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 đá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 tăng hiệu
suất của hệ thống.
Hình 2: So nh độ chính xác của đề xuất này
so với một số công bố gần đây.
Như vậy, 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
ghi nhận so với một số công bố gần đây (H.2).
5. Kết luận
Qua bài 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
đó 44.214 tập tin malware 96.083 tập
tin 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 việc loại bỏ các trường ít quan trọng
đã cải thiện được tốc độ huấn luyện hình
- giảm 70%, cải thiện tốc độ phát hiện
malware giảm tài nguyên hệ thống.
Tài liệu tham khảo
[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.
[5]
Vyas, R. Luo, X. McFarland, N. Justice,
"Investigation of malicious portable
executable file detection on the network
using supervised learning techniques",
lOMoARcPSD|1 6072870
IFIP/IEEE Symposium on Integrated
Network and Service Management (IM),
pp.941–946, 2017.
[6]
Ajit Kumara, K.S. Kuppusamya,
G.Aghilab, A learning model to detect
maliciousness of portable executable
using integrated feature set”, Journal of
King Saud University - Computer and
Information Sciences, vol.31,
iss.2, p.252-265, 2019.
6
| 1/7

Preview text:

lOMoARcPSD|16072870
Phát hiện malware dựa trên header của tập tin PE sử dụng Machine learning
Malware detection based on PE file header by using Machine learning
Nguyễn Kim Tuấna*, Nguyễn Hoàng Hàb*
a,Trường Đại học Duy Tân, 03 Quang Trung, Đà Nẵng, Việt Nam
bTrường Đại học Khoa học Huế, 77 Nguyễn Huệ, Huế, Việt Nm
anguyenkimtuan@duytan.edu.vn, bnhha76@gmail.com, Tóm tắt
Trong bài báo này, chúng tôi dựa vào cấu trúc phần PE header của các tập tin PE để đề xuất một hướng tiếp cận
khác trong việc sử dụng Machine learning để phân loại các tập tin này, là tập tin mã độc hay tập tin lành tính. Kết
quả thực nghiệm cho thấy, tiếp cận đề xuất vẫn sử dụng thuật toán Random Forest cho bài toán phân loại nhưng
độ chính xác và thời gian thực thi được cải thiện so với một số công bố gần đây (độ chính xác đạt 99.71%).
Từ khóa: Tập tin PE; Trường; Đặc trưng; Mã độc; Thuật 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. Giới thiệu
Trong những năm trở lại đây, mã độc
Tập tin PE (Portable Executable) là
(malware) đã trở thành mối đe dọa đáng kể các
đối với vấn đề bảo mật trên không gian mạng.
Malware có thể tồn tại trong các thiết bị đầu
cuối, có thể truyền đi trên đường truyền mạng
và có thể đính kèm/ẩn trong các tập tin có thể
thực thi, đặc biệt là trong các tập tin PE của
hệ điều hành Windows. Hiện có 2 kỹ thuật
được sử dụng để phát hiện malware [6]. Kỹ
thuật dựa trên chữ ký (Signature based
detection) tuy cho độ chính xác cao nhưng
gặp nhiều khó khăn trước sự đa dạng và khả
năng biến hình của các loại malware hiện nay.
Kỹ thuật không dựa trên chữ ký (Non-
signature based detection) có thể giải quyết
khó khăn này, nó thường được sử dụng để
phát hiện được các loại malware “chưa được
biết đến” (unknown), các loại malware có khả
năng biến dạng cao xuất hiện gần đây… Kỹ
thuật này giúp việc phân loại, phát hiện
malware hiện nay đạt hiệu quả cao khi được
triển khai theo hướng tiếp cận Machine learning. lOMoARcPSD|16072870
tập tin hoạt động trên môi trường hệ điều hành
(feature) đầu vào cho quá trìnhxây dựng mô
Windows, nó có thể là các tập tin thực thi
hình phân loại malware của các tập tin này
(executable files) hoặc là các tập tin chứa mã
theo cách sử dụng các thuật toán Machine
nhị phân được sử dụng bởi các tập tin thực thi learning.
khác. Vùng thông tin định dạng (format
Chúng ta đều biết, thông tin chứa trong
information) của tập tin PE [1] chứa những
PE header của các tập tin PE lành tính
thông tin cần thiết mà hệ điều hành sử dụng để
(benign) đều ở dạng đã được chuẩn hóa bởi
điều khiển việc thực thi của tập tin khi chúng
hệ điều hành Windows. Nếu một tập tin PE
được nạp vào main memory. Tất cả cáctập tin
nào đó mà dữ liệu chứa trong các field trong
PE đều có cùng cấu trúc và cùng số lượng
PE header của nó có sự “sai khác” so với các
trường (field) trong PE header, nên chúng ta có
tập tin PE lành tính thì nhiều khả năng đó là
thể trích xuất các field này, để làmtập đặc trưng
tập tin malware. Như vậy, chúng ta có thể 1 lOMoARcPSD|16072870
phân loại một tập tin PE, là tập tin malware
dạng cao và tỷ lệ dương tính giả thấp với độ
hay tập tin lành tính, bằng cách xem xét dữ chính xác 92%.
liệu chứa trong các field của PE header của
nó. Vì số lượng field trong PE header là lớn,
 Jinrong Bai và cộng sự đề xuất một
dữ liệu tại các field lại có quan hệ với nhau,
hướng tiếp cận cho việc phát hiện malware
hầu hết các field đều có thể bị làm “sai khác”,
trong các tập tin PE bằng cách khai phá thông
ở những mức độ khác nhau… nên bài toán
tin định dạng của các tập tin này [1]. Kỹ thuật
phát hiện malware ở đây cần tiếp cận theo
“in-depth analysis” được nhóm tác giả chọn
hướng sử dụng các thuật toán Machine
để phân tích vùng thông tin định dạng của các
learning thì mới đạt được độ chính xác cao
tập tin PE. Đầu tiên, họ cho trích xuất ra 197
nhất có thể [1], [2], [4], [5], [6].
đặ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
Chúng ta có thể thu thập một lượng lớn
số lượng xuống còn 19 hoặc 20 đặc trưng.
các mẫu PE header của các tập tin lành tính
Tập đặc trưng được chọn sẽ được training bởi
và tập tin malware, sau đó trích xuất các đặc
4 thuật toán phân lớp J48, Random Forest,
trưng của mỗi field, rồi so sánh để tìm ra sự
Bagging và Adaboost. Kết quả thực nghiệm
khác biệt đáng kể nhất giữa tập tin lành tính
cho thấy, tiếp cận này đạt độ chính xác cao
và tập tin malware, làm cơ sở cho việc phân
nhất, 99.1%, ở thuật toán phân loại Random
loại về sau. Đây là hướng tiếp cận mà chúng Forest.
tôi thực nghiệm và đề xuất trong bài bào này.
 Yibin Liao khai thác cấu trúc của các
2. Các nghiên cứu liên quan
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
Hiện có khá nhiều hướng tiếp cận cho bài
header, rồi so sánh để tìm ra sự khác biệt có ý
toán phân loại malware sử dụng kỹ thuật
nghĩa nhất giữa các tập tin malware và tập tin
Machine learning. Trong phần này, chúng tôi
lành tính. Và trích xuất các icon trong tập tin
điểm lại những kết quả, về độ chính xác, về tỉ
PE để tìm ra các icon phổ biến (prevalent)
lệ phát hiện và tốc độ huấn luyện, mà một số
nhất, có tính lừa bịp nhất (misleading) từ các
tiếp cận được công bố gần đây đạt được.
tập tin malware. Yibin Liao thực nghiệm tiếp
 Trong [5], Rushabh Vyah và cộng sự
cận đề xuất trên một tập dữ liệu có 6875 mẫu,
đã đề xuất một quy trình phát hiện malware
trong đó gồm 5598 mẫu header của tệp tin
trong tập tin PE trên môi trường mạng. Họ áp
độc hại và 1237 mẫu header của tệp tin thực
dụng 4 thuật toán học có giám sát khác nhau,
thi lành tính. Kết quả cho thấy tiếp cận này
Decision Tree, K-NN, SVMs và Random
đạt tỷ lệ phát hiện hơn 99% với ít hơn 0,2%
Forest, trên cùng một tập dữ liệu, chỉ với 28
dương tính giả trong vòng chưa đầy 20 phút.
đặc trưng (feature) tĩnh. Random Forest là mô
Theo tác giả, có thể phát hiện malware bằng
hình mà Vyas chọn, nó đạt tỉ lệ phát hiện
cách chỉ xem xét một vài đặc trưng/trường
malware - backdoor, virus, trojan và worn -
chính trong PE header của các tập tin PE hoặc
trung bình là 98.7%, tỷ lệ phát hiện dương
xem xét các prevalent icon, các misleading tính là 1.8%.
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
 Tiếp cận được đề xuất bởi Hellal và
malware trên các tập tin PE.
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ị
Hiện chúng tôi chưa tìm thấy một
(static analysis – graph mining). Họ đề xuất
phương pháp, một cách tiếp cận hay một mô
một thuật toán mới có thể tự động trích xuất
hình được nào cho là chung nhất, là tối ưu
các mẫu hành vi malware có tính phổ biến và
nhất để phát hiện và phân loại malware sử
khác biệt, nhưng lặp lại, từ các tập tin nghi
dụng Machine learning đạt độ chính xác cao
ngờ. Đề xuất này quan tâm đến việc tiết kiệm
nhất. Vì thế, chúng tôi đề xuất một cách tiếp
dung lượng bộ nhớ và giảm thời gian quét
cận khác, tập trung vào các trường có ảnh
bằng cách tạo ra một lượng chữ ký (signature)
hưởng cao trong phần PE header của các tập
hạn chế, điều này không như các phương
tin PE, như là sự đóng góp nhỏ cho hướng
pháp hiện có. Tiếp cận trong [2] đạt tỷ lệ nhận nghiên cứu này. 2 lOMoARcPSD|16072870
3. Tiếp cận đề xuất 7 ExportNb 0.052831
Tiếp cận của chúng tôi được thực nghiệm 8 Subsystem 0.049870
trên tập dữ liệu (dataset) khá lớn, gồm 9 MajorOSVersion 0.045429
140.297 mẫu PE header của tập tin PE, trong
đó có 44.214 mẫu malware và 96.083 mẫu 10 ResourcesNb 0.037733
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
41 SectionsMeanVirtualsize 0.001965 Windows. 42 SectionMaxRawsize 0.001697
Chúng tôi sử dụng các thuật toán 43 SectionsMeanRawsize 0.001697
Machine learning như: AdaBoost, Gradient 44 ImportsNbOrdinal 0.001600
Boosting, Decision Tree, Extra Tree,
Random Forest, để xây dựng các mô hình 45 LoadConfigurationSize 0.001275
phân loại tập tin PE - tập tin malware hay tập 46 FileAlignment 0.001175
tin lành tính - từ dataset này theo hướng chỉ 47 SectionAlignment 0.001167
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 48 SizeOfHeaders 0.001088
nghiệm là để chọn ra một mô hình phân loại 49 SizeOfUninitializedData 0.001036
Machine learning sao cho có độ chính xác cao
với thời gian huấn luyện chấp nhận được. 50 BaseOfCode 0.000832
Với những thông tin có được từ việc khảo 51 SizeOfHeapReserve 0.000401
sát các field trong phần PE Header của các tập 52 SizeOfHeapCommit 0.000225
tin này, chúng tôi tiến hành loại bỏ các field 53 NumberOfRvaAndSizes 0.000008
ít bị tác động bởi malware nhất, như LoaderFlags, NumberOfRvaAndSizes, 54 LoaderFlags 0.000002
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
Việc giảm bớt một số field của mỗi mẫu
có được khi sử dụng lần lượt thuật toán
PE header không chỉ giúp làm giảm kích
Random Forest và Extra Tree để đánh giá
thước của dataset, dẫn đến giảm được tài
mức độ ảnh hưởng của các field, chính xác là
nguyên của hệ thống dùng trong quá trình
các feature, trong PE header của 140.297 mẫu
thực hiện chương trình xây dựng mô hình
PE header trong dataset. Bảng sau cho thấy
phân loại, mà còn giảm thời gian huấn luyện
mức độ ảnh hưởng của các field theo Random
mô hình, với 54 feature là 13.04s , với 44 Forest: feature là 12.52s.
Bảng 1: Mức độ ảnh hưởng các field trong
Phần còn lại trong hướng tiếp cận của
PE header của các tập tin PE theo thuật toán
chúng tôi được thực hiện theo đúng trình tự 4 Random Forest
thực nghiệm ở phần sau đây. T Trường trong PE Mức độ
4. Kết quả thực nghiệm T header ảnh hưởng 4.1. Thực nghiệm 1 1 ImageBase 0.193689
Chúng tôi chia ngẫu nhiên dataset thành 2 SizeOfStackReserve 0.103419
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ữ 3 VersionInformationSize 0.075304
liệu này được sử dụng để đánh giá độ chính 4 MinorImageVersion 0.065888
xác (accuracy) và thời gian huấn luyện 5 ResourcesMinSize 0.058338
(training time) của các mô hình Machine
learning theo 5 thuật toán khác nhau. Kết quả 6 Characteristics 0.052923
nhận được cho ở Bảng 2. 3 lOMoARcPSD|16072870
Bảng 2. Độ chính xác và thời gian huấn
thực nghiệm 2, chúng tôi chọn thuật toán
luyện của của các mô hình Machine learning
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à Độ Thời
nó cung cấp là cao nhất (99.71% và 99.72%) Thuật toán chính gian
và với thời gian huấn luyện hợp lý. xác huấn luyện 4.3. Thực nghiệm 3 AdaBoost 99.12% 12.83 s
Trong thực nghiệm này, chúng tôi sẽ tìm GradientBoosting 99.30% 30.76 s
hiểu xem liệu tăng số lượng Tree trong mô DecisionTree 99.34% 0.98 s
hình theo Random Forest có làm cho độ chính
xác tăng hay không, từ đó tìm ra số lượng ExtraTree 99.69% 9.74 s
Tree vừa đủ để mô hình có thể làm việc nhanh RandomForest 99.71% 13.17s
hơn với độ chính xác cao hơn.
Thực nghiệm này cho thấy, mô hình
Đầu tiên chúng tôi thử tạo ra 10 mô hình
được xây dựng bởi thuật toán Random Forest
Random Forest chỉ có một tree sau đó tăng
cho độ chính xác cao nhất, lên đến hơn
dần lên đến 500 tree, cứ mỗi lần tăng chúng
99.71%, với thời gian huấn luyện đạt mức
tôi sẽ tính trung bình độ chính xác và thời gian
trung bình, so sánh với 4 thuật toán còn lại.
huấn luyện của 10 mô hình. Kết quả cho ở 2
Mô hình theo Extra Trees thì có thời gian
biểu đồ như hình bên dưới (H.1a và H.1b):
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. Thực nghiệm 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
Hình 1a: Biểu đồ Thời gian huấn luyện của
quyết vấn đề overfit/unoverfit. Kết quả nhận
mô hình khi tăng số lượng Tree được cho ở Bảng 3.
Bảng 3: Độ chính xác của các mô hình
machine learning theo k-fold với K = 10 Độ Độ Độ Thuật chính chính chính toán xác xác xác trung thấp cao bình nhất nhất AdaBoost 99.11% 99.05% 99.17% Gradient- Boosting 99.31% 99.24% 99.37% Decision- Tree 99.34% 99.26% 99.42% ExtraTree 99.71% 99.67% 99.75%
Hình 1b: Biểu đồ Độ chính xác của mô hình Random- khi tăng số lượng Tree Forest 99.72% 99.66% 99.76%
Độ 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 lOMoARcPSD|16072870
bắt đầu đạt ngưỡng ở mức 100 Tree trở đi,
ghi nhận so với một số công bố gần đây (H.2).
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 5. Kết luận
số lượng tree vừa đủ (trong trường hợp này là
Qua bài báo này, chúng tôi đề xuất một
100) thì mô hình cũng đã có thể đạt được độ
hướng tiếp cận khác cho việc phát hiện
chính xác cao. Giảm số số lượng tree giúp làm
malware trên các tập tin PE. Đề xuất của
giảm thời gian huấn luyện và tiết kiểm được
chúng tôi được thực nghiệm trên dataset rất
tài nguyên hệ thống. Đây là điều cần ghi
lớn, gồm header của 149.297 tập tin PE, trong nhận.
đó có 44.214 tập tin malware và 96.083 tập 4.4. Thực nghiệm 4
tin lành tính. Kết quả thực nghiệm cho thấy:
Với việc chỉ chọn 44 đặc trưng, tương
Không cần xem xét tất cả các trường trong
đương 44 trường trong PE header của các tập
header, loại bỏ các trường ít ảnh hưởng nhất,
tin PE, mô hình phân loại Machine learning
thuật toán Random Forest vẫn cho độ chính
theo Ramdom Forest của chúng tôi có được tỉ
xác khá cao, lên đến 99,71%, với thời gian
lệ chính xác trung bình và thời gian huấn
huấn luyện đạt mức trung bình, 13.17s, so với
luyện đáng ghi nhận, lần lượt là 99.72% và
4 thuật toán khác; Độ chính xác của Random
13.17s. Chúng tôi thực nghiệm việc tiếp tục
Forest phụ thuộc vào việc chọn số lượng Tree
giảm số lượng đặc trưng được chọn, để xem
sao cho phù hợp chứ không cần phải chọn
tỉ lệ chính xác và thời gian huấn luyện mô
càng nhiều Tree càng tốt; Việc giảm số lượng
hình có bị thay đổi hay không. Kết quả như
Tree và việc loại bỏ các trường ít quan trọng
sau, khi số đặc trưng được chọn trong khoảng
đã cải thiện được tốc độ huấn luyện mô hình
từ 13 đến 15 thì tỉ lệ chính xác trung bình đạt
- giảm 70%, cải thiện tốc độ phát hiện
là 99.63% và thời gian huấn luyện là 3.88s.
malware và giảm tài nguyên hệ thống.
Thực nghiệm này cho thấy, khi giảm số Tài liệu tham khảo
lượng đặc trưng đến mức có thể thì tỉ lệ chính
[1] J. Bai, J. Wang, G. Zou, "A Malware
xác trung bình chỉ giảm một lượng không
Detection Scheme Based on Mining
đáng kể, 0.09%, nhưng độ giảm của thời gian
Format Information", The Scientific
huấn luyện giảm là đáng ghi nhận, 9.29s
World Journal, vol.2014, Article ID
(70%), so với ban đầu. Việc giảm số lượng 260905, p.1-11, 2014.
đặ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
[2] A. Hellal, L. B. Romdhane, "Minimal
trường từ PE header của các tập tin PE, giúp
Contrast Frequent Pattern Mining for
tăng tốc độ phát hiện malware và tăng hiệu
Malware Detection", Computers & suất của hệ thống.
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,
Hình 2: So sánh độ chính xác của đề xuất này U.S.A, 2012.
so với một số công bố gần đây.
[5] Vyas, R. Luo, X. McFarland, N. Justice,
Như vậy, mô hình phân loại malware dựa
"Investigation of malicious portable
vào E header của các tập tin PE theo hướng
executable file detection on the network
tiếp cận của chúng tôi đạt độ chính xác được
using supervised learning techniques", 5 lOMoARcPSD|16072870
IFIP/IEEE Symposium on Integrated
maliciousness of portable executable
Network and Service Management (IM),
using integrated feature set”, Journal of pp.941–946, 2017.
King Saud University - Computer and
[6] Ajit Kumara, K.S. Kuppusamya, Information Sciences, vol.31,
G.Aghilab, “A learning model to detect iss.2, p.252-265, 2019. 6
Document Outline

  • Malware detection based on PE file header by using
    • Tóm tắt
    • Abstract
    • 1.Giới thiệu
    • 2.Các nghiên cứu liên quan
    • 3.Tiếp cận đề xuất
    • 4.Kết quả thực nghiệm
    • 4.2.Thực nghiệm 2
    • 4.3.Thực nghiệm 3
    • 4.4.Thực nghiệm 4
    • 5.Kết luận
    • Tài liệu tham khảo