MỞ ĐẦU. 1
1. Tính cấp thiết của luận án. 1
2. Mục tiêu nghiên cứu của luận án. 1
3. Đối tượng và phạm vi nghiên cứu . 1
4. Nội dung và phương pháp nghiên cứu . 1
5. Bố cục luận án . 2
CHƯƠNG 1. CƠ SỞ LÝ THUYẾT. 2
1.1. Khái niệm và đặc điểm thiết bị IoT. 2
1.2. Khái niệm mã độc IoT botnet. 3
1.3. Sự tiến hóa của mã độc IoT botnet. 3
1.4. Sự khác biệt giữa mã độc botnet truyền thống và IoT botnet. 4
CHƯƠNG 2. PHƯƠNG PHÁP PHÁT HIỆN MÃ ĐỘC IOT BOTNET . 5
2.1. So sánh phân tích tĩnh và phân tích động. 5
2.2. So sánh, đánh giá các phương pháp dựa trên phân tích tích trong phát hiện mã độc IoT botnet . 5
2.2.1. Xây dựng bộ cơ sở dữ liệu thử nghiệm . 7
2.2.2. Kết quả thực nghiệm và nhận xét . 8
CHƯƠNG 3. ĐẶC TRƯNG ĐỒ THỊ PSI TRONG PHÁT HIỆN MÃ ĐỘC IOT BOTNET. 9
3.1. Phát biểu bài toán . 9
3.2. Giải thích bài toán . 9
3.3. Sơ đồ và ý tưởng phương pháp đề xuất. 9
3.4. Đồ thị lời gọi hàm trong phát hiện mã độc IoT botnet. 10
3.5. Xây dựng đồ thị PSI . 11
3.6. Đánh giá thực nghiệm . 13
3.6.1. Môi trường thực nghiệm. 13
3.6.2. Mô hình đánh giá. 13
3.6.3. Các kết quả thực nghiệm và thảo luận. 15
CHƯƠNG 4. ĐẶC TRƯNG ĐỒ THỊ CON PSI CÓ GỐC TRONG PHÁT HIỆN MÃ ĐỘC IOT
BOTNET . 16
4.1. Phát biểu bài toán . 16
4.2. Xây dựng đặc trưng đồ thị PSI-rooted subgraph. 17
30 trang |
Chia sẻ: honganh20 | Ngày: 04/03/2022 | Lượt xem: 497 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Tóm tắt Luận án Nghiên cứu đề xuất đặc trưng đồ thị psi trong phát hiện mã độc botnet trên các thiết bị iot, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
có ý nghĩa quan trọng.
Bảng 2.2. Mô tả tập dữ liệu mẫu để thử nghiệm
Family Name Variants Sample Number ARM MIPS
Mirai 7 1,765 331 301
Bashlite 5 3,720 762 646
Other botnet 9 680 152 103
Benign - 3,845 561 533
Total 10,010 1806 1583
Tập dữ liệu có 10010 mẫu gồm 6165 mẫu mã độc IoT botnetvà 3845 mẫu lành tính IoT và tập dữ liệu
có kiến trúc đa dạng gồm ARM, MIPS, PowerPC, Sparc, SuperH,
Luận án sử dụng chiến lược bỏ phiếu [17], [81] để quyết định xem một tập tin là mã độc hoặc lành
tính, thể hiện qua đẳng thức (2.1). Trong đó 𝐸i(𝑆) là các bộ dò quét mã độc thứ i trên VirusTotal (ví dụ như
Kaspersky, Norton, BKAV,).
𝐶𝑙𝑎𝑠𝑠𝑙𝑏 = {
𝑀ã độ𝑐, 𝑛ế𝑢 (𝐸1(𝑆) ∨ 𝐸2(𝑆) ∨ 𝐸𝑛(𝑆))
𝐿à𝑛ℎ 𝑡í𝑛ℎ, 𝑛ế𝑢 (! (𝐸1(𝑆)) ∧ ! (𝐸2(𝑆)) ∧ ! (𝐸𝑛(𝑆))
(2.1)
Để tiến hành các thực nghiệm trong Chương này, luận án chia tập dữ liệu thành 2 tập con với tỷ lệ là:
70% tập dữ liệu là tập huấn luyện và 30% còn lại là để kiểm thử. Thực nghiệm được xây dựng với ngôn ngữ
Python và thư viện Scikit-Learn (một thư viện về học máy phổ biến hiện nay, được viết trên ngôn ngữ Python)
trên nền tảng hệ điều hành Ubuntu 16.04 sử dụng chip Intel Core i5-8500, 3.0GHz và bộ nhớ RAM 32 GB.
8
2.2.2. Kết quả thực nghiệm và nhận xét
Kết quả tổng hợp, đánh giá các hướng tiếp cận dựa trên đặc trưng tĩnh trong phát hiện mã độc IoT được
thể hiện ở Bảng 2.3. Ở đây luận án tiến hành thực nghiệm lại các nghiên cứu đã có và sử dụng lại chính xác
các bộ phân lớp mà các nghiên cứu đã sử dụng, vì vậy các thuật toán phân lớp là khác nhau. Mục đích nhằm
đánh giá độ tin cậy, tính chính xác của các nghiên cứu đã có trên cùng bộ dữ liệu đã mô tả ở mục 2.2.1
Bảng 2.3. Kết quả thực nghiệm các hướng tiếp cận dựa trên đặc trưng tĩnh hiện nay trong phát hiện mã độc
IoT botnet
Hướng tiếp cận
dựa trên đặc
trưng tĩnh
Bộ phân
lớp
Độ chính
xác
FPR (False
Positive Rate
- dương tính
giả)
FNR (False
Negative
Rate - âm
tính giả)
Thời gian
trích xuất
đặc trưng và
tiền xử lý
Thời
gian
phân
lớp
ELF-header [96]
RIPPER 99,8 0,2 0,2
1h50m
0,75s
PART 99,8 0,2 0,2 1,27s
DT (J48) 99,6 0,5 0,3 1s
String-based [70]
SVM 98 0,9 2,2
4m47s
12,4s
kNN 99,8 0,4 0,2 1s
DT (J48) 99,4 0,4 0,6 8,75s
RF 99.7 0,3 0,4 9,71s
Image-based [25]
Neural
Network
89,1 12,7 1,4 14m19s 2m19s
CFG-based [32]
SVM 89 33,8 4,4
5 days
1,45s
LR 85 15,1 19,0 0,5s
RF 95 7,5 5,9 1,75s
Từ bảng kết quả 2.3, có thể thấy các nghiên cứu biểu diễn tập tin thực thi bằng đặc trưng không có cấu
trúc đồ thị sẽ phụ thuộc nhiều vào giá trị của các đặc trưng (ví dụ lời gọi hàm inet_toa) và sẽ không thể mô tả
thông tin ngữ nghĩa phức tạp giữa các đặc trưng (ví dụ như dữ liệu phụ thuộc trong vòng đời mã độc IoT có
khả năng tấn công từ chối dịch vụ phân tán, gọi tắt là IoT botnet). Bên cạnh đó các nghiên cứu sử dụng đặc
trưng không có cấu trúc đồ thị thường khá yếu với mã độc sử dụng kỹ thuật gây rối như mã hóa, chèn dữ liệu.
Trong khi đó, hướng tiếp cận dựa trên đồ thị có khả năng đánh giá tổng quát và biểu diễn được các thông tin
có cấu trúc, thông tin phức tạp về hành vi của mã độc botnet.
Kết luận Chương 2: Kết quả nghiên cứu của Chương này cung cấp động cơ thúc đẩy cho các phương
pháp đề xuất của luận án sau này khi thấy rằng phân tích tĩnh khả quan trong bài toán phát hiện mã độc IoT
botnet, đồng thời các đặc trưng có cấu trúc đồ thị đem lại hiệu quả cao và triển vọng trong bài toán phát hiện
mã độc IoT botnet.
Những đóng góp của Chương 2: Đánh giá và đưa ra sự khác biệt giữa mã độc botnet trên máy tính
truyền thống và thiết bị IoT, từ đó làm cơ sở đề xuất phân tích tĩnh phù hợp đối với phát hiện mã độc IoT
botnet; Xây dựng bộ cơ sở dữ liệu có độ tin cậy phục vụ bài toán phát hiện mã độc botnet trên thiết bị IoT;
Thực nghiệm lại và đánh giá khách quan các nghiên cứu hiện nay dựa trên phân tích tĩnh với cùng bộ cơ sở dữ
liệu và môi trường thực nghiệm. Kết quả nghiên cứu đã công bố và trình bày trên Kỷ yếu Hội nghị và Tạp chí
uy tín trong nước và quốc tế (tại [B3], [B4], [B5] trong danh mục các công trình của tác giả).
9
CHƯƠNG 3. ĐẶC TRƯNG ĐỒ THỊ PSI TRONG PHÁT HIỆN MÃ ĐỘC IOT BOTNET
3.1. Phát biểu bài toán
Bài toán nghiên cứu của Chương này được phát biểu như sau:
- Cho 𝐿 = {𝑙1, 𝑙2, , 𝑙𝑛} là tập hợp gồm 𝑛 tập tin thực thi, trong đó 𝑙𝑖 ∈ {0,1} có thể là các tập tin thực
thi mã độc (giá trị 1) hoặc các tập tin thực thi lành tính (giá trị 0) với 𝑖 = 1, 𝑛̅̅ ̅̅̅
- Cho 𝐹 = {𝑓𝐴𝑙ℎ𝑎𝑛𝑎ℎ𝑛𝑎ℎ, 𝑓𝑆𝑢, 𝑓𝐻𝑎𝑑𝑑𝑎𝑑 , 𝑓𝐴𝑧𝑚𝑜𝑜𝑑𝑒ℎ𝑃𝑎𝑗𝑜𝑢ℎ, 𝑓Alasmary } là tập hợp các đặc trưng trừu tượng
trong bài toán phát hiện mã độc botnet trên thiết bị IoT và có kết quả khả quan trong thời gian gần đây. Như
vậy ∃𝑓𝑇𝑟𝑢𝑛𝑔 ∉ 𝐹 sao cho 𝑓𝑇𝑟𝑢𝑛𝑔(𝐿) đơn giản hơn 𝑓𝑗 ∈ 𝐹 , về mặt cấu trúc đồ thị thì việc đơn giản hơn được
định lượng thông qua số lượng cạnh và số lượng đỉnh đồ thị. Mặc dù đơn giản hơn về mặt cấu trúc nhưng
𝑓𝑇𝑟𝑢𝑛𝑔 cho kết quả tốt hơn các 𝑓𝑗 ∈ 𝐹 về độ chính xác, thời gian thực thi.
3.2. Giải thích bài toán
Luận án lựa chọn cách tiếp cận dựa trên phân tích tĩnh trong phát hiện mã độc botnet trên thiết bị IoT.
Hiện nay đã có những nghiên cứu theo hướng tiếp cập này, có thể kể đến như Alhanahnah và cộng sự [4], Su
và cộng sự [25], HaddadPajouh và cộng sự [14], Azmoodeh và cộng sự [36], Hisham Alasmary và cộng sự
[33]. Cụ thể Mohannad Alhanahnah và cộng sự kết hợp các đặc trưng tĩnh khác nhau như các chuỗi (string),
đồ thị luồng điều khiển (CFG) và thông tin thống kê cấu trúc tập tin để sinh ra các chữ ký dùng cho phân lớp
mã độc IoT đa kiến trúc. Su và cộng sự đã đề xuất một phương pháp nhẹ (light) để phân biệt các mẫu mã độc
IoT và các mẫu lành tính IoT dựa trên ảnh đa mức xám, và bằng cách đưa các ảnh đa mức xám này vào mô
hình mạng nơ-ron tích chập để phát hiện mã độc IoT. Hamed HaddadPajouh và cộng sự, Azmoodeh và cộng
sự đã đề xuất một phương pháp phát hiện mã độc IoT sử dụng chuỗi opcode. Hisham Alasmary và cộng sự đã
thực hiện một nghiên cứu chuyên sâu về đồ thị của mã độc Android và IoT botnet. Với mô tả chi tiết các đặc
trưng của các công trình nghiên cứu tiêu biểu trong phân tích tĩnh phát hiện mã độc botnet trên thiết bị IoT,
đặc trưng mới trong phát biểu bài toán nghiên cứu tại Chương này sẽ tận dụng được các điểm mạnh cũng như
giải quyết được những hạn chế của các đặc trưng đã có, từ đó đem lại hiệu quả cao trong bài toán phát hiện
mã độc IoT botnet với các thuật toán học máy, học sâu.
3.3. Sơ đồ và ý tưởng phương pháp đề xuất
Bài toán nghiên cứu trong Chương này của luận án sẽ theo các giả thiết sau: Sự khác biệt cơ bản giữa
mã độc botnet và các loại mã độc khác là luôn cần sự kết nối tới máy chủ C&C để gửi/nhận lệnh tấn công từ
tin tặc. Quá trình lây nhiễm, tấn công của mã độc botnet trên thiết bị IoT đã được nghiên cứu nhiều, và thấy
rằng thường diễn ra theo quy trình chung. Mỗi bước trong trạng thái vòng đời mã độc IoT botnet thường liên
quan đến những thông tin được biểu diễn dưới dạng các chuỗi như các câu lệnh chỉ thị của tin tặc, các địa chỉ
IP/tên miền của máy chủ C&C,
Trước khi đi vào sơ đồ phương pháp đề xuất, để hiểu rõ hơn vấn đề, các định nghĩa sau được quy định
trong luận án này.
Định nghĩa 3.1: Một đồ thị lời gọi hàm (function-call graph) là một đồ thị có hướng, biểu diễn bởi
𝐺 = (𝑉, 𝐸). Trong đó 𝑉 là tập các đỉnh 𝑉 = 𝑉(𝐺) biểu diễn các hàm và tập các cạnh 𝐸 = 𝐸(𝐺), ở đó 𝐸(𝐺) ⊆
𝑉(𝐺) × 𝑉(𝐺), tương ứng với các lời gọi hàm. Với mỗi đỉnh 𝑣 ∈ 𝑉, hai hàm được định nghĩa 𝑉𝑛(𝑣) và 𝑉𝑓(𝑣)
cung cấp tên hàm và loại hàm của hàm biểu diễn bởi 𝑣. Loại hàm 𝑡 ∈ {0,1} có thể là hàm cục bộ (giá trị 0)
hoặc hàm mở rộng (giá trị 1).
10
Định nghĩa 3.2: Một PSI (Printable String Information) là một chuỗi thông tin có thể in được
(printable) xuất hiện trong các tập tin thực thi, có thể ở dạng tường minh (ví dụ “10.1.1.2”) hoặc mã hóa (ví
dụ “eGAIM”).
Định nghĩa 3.3: Đồ thị PSI là một đồ thị có hướng được biểu diễn như sau 𝐺𝑃𝑆𝐼 = (𝑉, 𝐸), trong đó:
– 𝑉 là tập các đỉnh được thiết lập bằng các hàm mà các hàm đó được trích xuất từ đồ thị lời gọi
hàm (function-call graph) và có chứa các PSI
– 𝐸 là tập các cạnh có hướng {(𝑉𝑖,𝑉𝑗), (𝑉𝑘,𝑉ℎ), } , phản ánh mối liên kết giữa hai caller và
callee (hàm gọi – hàm được gọi)
Để chứng minh cho giả thiết trên và trả lời cho bài toán nghiên cứu đã đặt ra, phương pháp luận án đề
xuất có sơ đồ cấu trúc như sau:
Hình 3.1. Quy trình phương pháp đề xuất phát hiện mã độc IoT botnet
Luận án đưa ra mô hình tổng quát phương pháp đề xuất gồm 02 pha xử lý chính: pha huấn luyện và pha
sử dụng, minh họa ở hình 3.1. Trong đó, pha huấn luyện và pha sử dụng có quy trình xử lý tương đối giống
nhau, chỉ khác biệt ở khối Phân lớp.Với dữ liệu đầu vào là các tập tin thực thi trên thiết bị IoT, bao gồm cả các
tập tin mã độc và lành tính, thì quy trình thực hiện gồm 4 bước như sau: Pha sinh đồ thị FCG, Pha sinh đồ thị
PSI, Pha tiền xử lý và trích chọn đặc trưng, và cuối cùng là Phân lớp.
3.4. Đồ thị lời gọi hàm trong phát hiện mã độc IoT botnet
Một đồ thị lời gọi hàm (FCG – Function Call Graph) là một đồ thị luồng điều khiển liên thủ tục, ở đó
biểu diễn lời gọi quan hệ giữa các hàm hoặc chương trình con trong một chương trình thực thi. Định nghĩa một
cách chính thức được thể hiện như định nghĩa 3.1.
Trước khi xây dựng đồ thị lời gọi hàm thì cần kiểm tra và tiền xử lý các kỹ thuật tự vệ của các tập tin
thực thi để đảm bảo tính đúng đắn của đồ thị lời gọi hàm. Để kiểm tra các tập tin có sử dụng kỹ thuật đóng gói
không, luận án sử dụng công cụ xác định trình đóng gói DiE (Detect It Easy) [115] để kiểm tra tập tin có bị
đóng gói không và nếu có thì kỹ thuật đóng gói sử dụng là gì. Phân tích trên tập dữ liệu thử nghiệm của luận
án gồm 10010 mẫu, thấy rằng chỉ khoảng 2% số lượng mẫu có sử dụng kỹ thuật gây rối, và đại đa số là kỹ
thuật đóng gói UPX. Sau khi xác định được trình đóng gói thì hiện nay có rất nhiều công cụ hỗ trợ việc unpack
như công cụ UPX [121]. Các tập tin thực thi không thể unpack bằng công cụ UPX thì sẽ được loại bỏ khỏi tập
dữ liệu. Sau quá trình unpack, luận án lựa chọn IDA Pro là công cụ hỗ trợ quá trình dịch ngược bởi đây là công
11
cụ hỗ trợ đa nền tảng hệ điều hành. Sau khi thực hiện phân tách các tập tin nhị phân bằng công cụ IDA Pro,
luận án thu được mã hợp ngữ của tập tin. Thuật toán xây dựng đồ thị lời gọi hàm (thuật toán 3.1) được luận án
triển khai kế thừa từ nghiên cứu của Ming Xu và cộng sự [108].
Thuật toán 3.1: Xây dựng đồ thị lời gọi hàm (Function Call Graph – FCG)
Input: Các hàm ở dạng mã hợp ngữ của tập tin 𝐹,
Output: Đồ thị lời gọi hàm 𝐺𝐹 của tập tin F
// Khởi tạo ban đầu
1: 𝑮𝑭.𝑉 = 𝝓 and 𝑮𝑭.𝐸 = 𝝓
2: EntryFuncSet = 𝝓, FuncSet = 𝝓, FuncQ = 𝝓, VerSet = 𝝓
//Trích xuất các hàm từ mã hợp ngữ
3: FuncSet = SplitFuncs(𝐹)
4: EntryFuncSet = IdentifyEntryPointFuncs(𝑀)
5: FuncQ = InitQ(EntryFuncSet)
//Xây dựng mối quan hệ caller-callee
6: while(FuncQ is not empty)
7: baseVertex = Dequeue(FuncQ)
8: Insert baseVertex in 𝑮𝑭
9: baseVertex.enQFlag = true
//Trích xuất các callee của tập baseVertex
10: VerSet = getCallee(baseVertex)
11: for each vertex in VerSet
12: if((vertex ∩ FuncSet) ≡ 𝝓) // Các đỉnh không có trong FuncSet
13: continue
14: endif
15: headVertex = vertex
16: // Xây dựng cạnh kết nối giữa baseVertex và headVertex
17: if(𝑒 ∈ 𝑮𝑭.𝐸)
18: baseVertex.outDeg++
19: headVertex.inDeg++
20: else
21: Insert headVertex in 𝑮𝑭
22: Insert edge 𝑒 in 𝑮𝑭
23: endif
24: if(headVertex.enQFlag == false)
25: Enqueue headVertex in FuncQ
26: headVertex.enQFlag = true
27: endif
28: next vertex
29: end while
30: return 𝑮𝑭
31: end
Đồ thị lời gọi vẫn có độ phức tạp cao bởi số lượng đỉnh và số lượng cạnh lớn, do đó thường tốn kém chi
phí tính toán và bộ nhớ lưu trữ [97]. Nếu độ phức tạp của một đồ thị dựa trên số cạnh và đỉnh thì độ phức tạp
sẽ là 𝛰(|𝑉| ∗ |𝐸|) với |𝑉| là số cạnh và |𝐸| là số đỉnh. Chính vì thế, dựa trên cơ sở đồ thị lời gọi hàm, luận án
hướng tới xây dựng một đặc trưng đồ thị mới, có hiệu quả cao (độ phức tạp thấp khi có thể giảm số lượng đỉnh
và số lượng cạnh của đặc trưng đồ thị nhưng vẫn đảm bảo tỷ lệ phát hiện chính xác cao) trong bài toán phát
hiện mã độc IoT botnet khi áp dụng với các kỹ thuật học máy, học sâu.
3.5. Xây dựng đồ thị PSI
Trước khi xây dựng đồ thị PSI (định nghĩa 3.3), luận án trích xuất toàn bộ PSI (định nghĩa 3.2) tồn tại
bên trong tập tin thực thi bằng một đoạn mã plugin của công cụ IDAPro. Cân bằng giữa độ chính xác của kết
12
quả phân lớp và độ phức tạp tính toán, luận án lựa chọn các hàm chứa PSI có độ dài tối thiểu từ 3 ký tự trở lên.
Những PSI này có thể ở dạng tường minh hoặc mã hóa và thường chứa nhiều thông tin ngữ nghĩa có liên quan
đến mục đích của kẻ tấn công
Sau khi đã xây dựng được đồ thị lời gọi hàm, cũng như xác định được các đỉnh chứa PSI, luận án tiến
hành duyệt đồ thị lời gọi hàm để xây dựng đồ thị PSI, tiến trình thực hiện như trong thuật toán 3.2.
Thuật toán 3.2: PSI-Graph Generation (FCG)
1 𝑉 = [ ], 𝐸 = [ ]
2 For each vertice 𝑣𝑖 in FCG do:
3 If exist psi in 𝑣𝑖 and do:
4 𝑉 = 𝑉 ∪ 𝑣𝑖
5 End if
6 For each edge 𝑒𝑗(𝑣𝑖, 𝑣𝑘) do:
7 If exist psi in 𝑣𝑘 and 𝑣𝑘 ∉ 𝑉 and 𝑒𝑗(𝑣𝑖 , 𝑣𝑘) ∉ 𝐸 do:
8 𝑉 = 𝑉 ∪ 𝑣𝑘
9 𝐸 = 𝐸 ∪ 𝑒𝑗(𝑣𝑖 , 𝑣𝑘)
10 End If
11 Enf for
12 End for
13 Return 𝑉, 𝐸
Quá trình xây dựng đồ thị PSI là dựa trên việc cắt tỉa đồ thị FCG nhằm giảm số lượng cạnh và số lượng
đỉnh, như vậy độ phức tạp của thuật toán sinh đồ thị PSI là 𝑂(|𝑉| ∗ |𝐸|) cũng sẽ giảm. Bảng 3.1 cho thấy kết
quả so sánh kích thước giữa đồ thị PSI và đồ thị lời gọi hàm. Có thể thấy, đồ thị PSI có kích thước nhỏ hơn
nhiều so với đồ thị lời gọi hàm về số lượng đỉnh và cạnh ở cả các tập tin mã độc và lành tính. Vì vậy việc sử
dụng đồ thị PSI như đặc trưng để phát hiện mã độc có thể giảm độ phức tạp (tăng tốc độ xử lý, giảm chi phí
thời gian tính toán) so với việc sử dụng đồ thị lời gọi hàm.
Bảng 3.1. So sánh giữa đồ thị PSI và đồ thị lời gọi hàm FCG
Lớp Trung bình các
đỉnh trong đồ thị
PSI
Trung bình các
cạnh trong đồ thị
PSI
Trung bình các
đỉnh trong đồ thị
FCG
Trung bình các
cạnh trong đồ thị
FCG
Mã độc 147.1 1110.5 254.5 3075.5
Lành tính 167.8 1693.9 530.9 2962.2
Có thể thấy ở hình 3.2, số lượng các đỉnh trong đồ thị PSI tập trung chủ yếu trong dải [1, 300] cho cả
các tập tin mã độc và lành tính. Mặc dù, có sự khác biệt nhỏ trong phân bố, nhưng sự khác biệt này không đủ
rõ ràng để thiết lập một ngưỡng giá trị để phân biệt các mẫu mã độc IoT và lành tính.
Hình 3.2. Số lượng các cạnh và đỉnh giữa các lớp mẫu
13
Để dễ hình dung kết quả hoạt động của thuật toán sinh đồ thị PSI, quan sát hình 3.3 ví dụ về đồ thị lời
gọi hàm của mẫu Linux.Bashlite, có thể thấy rõ ràng đồ thị PSI đơn giản hơn nhiều so với đồ thị lời gọi hàm.
Trung bình, một đồ thị PSI chỉ chứa khoảng 16 đỉnh và 60 cạnh so với 156 đỉnh và 360 cạnh của đồ thị lời gọi
hàm.
Hình 3.3. Đồ thị lời gọi hàm (trái) và đồ thị PSI (phải) của mẫu mã độc Linux.Bashlite
Như vậy, đặc trưng đồ thị PSI mà luận án thu được có những đặc điểm sau:
- Được xây dựng dựa trên phương pháp tĩnh;
- Có thể phản ánh “hành vi vòng đời” hay có thể gọi là mô phỏng quá trình lây nhiễm của mã độc IoT
botnet;
- Chỉ xét đến cấu trúc của các chuỗi thông tin có giá trị (printable string information – PSI), không xét
đến giá trị các chuỗi;
- Được xây dựng dựa trên đồ thị lời gọi hàm
3.6. Đánh giá thực nghiệm
3.6.1. Môi trường thực nghiệm
Sử dụng tập dữ liệu thực nghiệm đã được trình bày ở mục 2.2.1 của bản tóm tắt luận án này, để tiến
hành các thực nghiệm, luận án chia tập dữ liệu thử nghiệm thành 2 tập con là: tập huấn luyện và tập kiểm thử.
Các tập con của Tập huấn luyện chứa số lượng mẫu như nhau là 2690 mẫu cho cả lớp mã độc và lớp lành tính.
Tập con kiểm thử chứa phần còn lại của tập dữ liệu là 4630 mẫu. Thực nghiệm được xây dựng với ngôn ngữ
Python và bộ framework PyTorch trên hệ điều hành Ubuntu 16.04 sử dụng chip Intel Core i5-8500, 3.0GHz,
thẻ đồ họa NVIDIA GeForce GTX1080Ti và bộ nhớ RAM 32 GB.
3.6.2. Mô hình đánh giá
Để đánh giá tính hiệu quả của đặc trưng đồ thị PSI trong bài toán phát hiện mã độc IoT botnet, luận án
tiến hành đưa các đặc trưng đồ thị PSI vào mô hình đánh giá như hình 3.4, trong đó đầu vào là vector 1x1024,
HL là các lớp ẩn, FC là các lớp kết nối đầy đủ, Conv là các lớp tích chập. Luận án tiếp cận dựa trên việc phân
tích và biểu diễn toàn bộ cấu trúc đồ thị PSI thành giá trị vector số có độ dài cố định, luận án sử dụng graph2vec
[39] trong quá trình tiền xử lý dữ liệu đồ thị PSI.
14
Hình 3.4. Mô hình đánh giá đặc trưng đồ thị PSI trong phát hiện mã độc IoT botnet
Graph2vec là một kỹ thuật học không giám sát để chuyển đổi một đồ thị thành dạng vector số. Graph2vec
dựa trên ý tưởng hướng tiếp cận doc2vec [82] sử dụng mạng skip-gram. Graph2vec học cách biểu diễn các đồ
thị bằng cách xem toàn bộ 01 đồ thị như một văn bản và các đồ thị con như các từ tạo nên văn bản đó.
Thuật toán 3.3: Graph2vec (𝒢, 𝐷, 𝛿, 𝔢, 𝛼)
Input: 𝒢 = {𝐺1, 𝐺2, , 𝐺𝑛}: Tập hợp các đồ thị sao cho mỗi đồ thị 𝐺𝑖 = (𝑉𝑖, 𝐸𝑖 , 𝜆𝑖) đã được
học
𝐷: bậc tối đa của các đồ thị con có gốc được xem xét cho việc học trong không gian
nhúng. Điều này sẽ tạo ra một từ vựng các đồ thị 𝑆𝐺𝑣𝑜𝑐𝑎𝑏 = {𝑠𝑔1, 𝑠𝑔2, } từ tất cả
các đồ thị trong 𝒢
𝛿: số chiều không gian (kích thước không gian nhúng)
𝔢: số lượng epoch
𝛼: tỷ lệ học
Output: Ma trận vector biểu diễn của đồ thị Φ ∈ ℝ|𝒢| × 𝛿
1: Initialization: Sample Φ from ℝ|𝒢| × 𝛿
2: for 𝔢 = 1 to 𝔢 do
3: 𝜔 = 𝑆h𝑢𝑓𝑓𝑙𝑒(𝒢)
4: for each 𝐺𝑖 ∈ 𝜔 do
5: for each 𝑣 ∈ 𝑉𝑖 do
6: for 𝑑 = 0 to 𝐷 do
7: 𝑠𝑔𝑣
(𝑑)
:= GetWLSubgraph(𝑣, 𝐺𝑖 , 𝑑)
8: 𝒥(Φ) = − log Pr( 𝑠𝑔𝑣
(𝑑)|Φ(𝒢))
9: Φ = Φ − 𝛼
𝜕𝒥
𝜕Φ
10: Return Φ
Nguyên lý hoạt động của graph2vec như sau: toàn bộ đồ thị được xem như một văn bản, khi đó các đồ
thị con trong đồ thị đang xét được xem như các câu văn mà mỗi đỉnh trong đồ thị được xử lý như một từ
(word). Sau đó sử dụng kỹ thuật duyệt đồ thị “duyệt trung thứ tự cây con”, tức là theo thứ tự “duyệt các đỉnh
bên trái – sau đó duyệt đỉnh gốc – rồi tới duyệt đỉnh bên phải”. Khi đã xây dựng được văn bản thì sử dụng đến
kỹ thuật skipgram để biểu diễn đồ thị này. Do phải dự đoán các đồ thị con, tức là các đồ thị với các đồ thị con
tương đồng và cấu trúc tương đồng thì có phép nhúng tương đồng. Kết quả của bước này là tập các vector one-
hot với độ dài tùy ý biểu diễn tập các đồ thị. Trong nghiên cứu đề xuất, luận án biểu diễn các đồ thị PSI như
15
vector số có độ dài 1024 được sử dụng cho việc phân lớp sau này. Dữ liệu đã thu thập sau bước tiền xử lý đồ
thị PSI sẽ được sử dụng để ra quyết định xem một tập tin có tính độc hại hay không bằng cách sử dụng bộ phân
lớp mạng nơ-ron học sâu. Để xây dựng mạng nơ-ron tích chập, luận án đã kế thừa mô hình mạng đề xuất bởi
Kim [75]. Lớp đầu tiên của mạng nơ-ron là lớp đầu vào, lớp tiếp theo thực hiện các phép tích chập sử dụng
nhiều kích thước bộ lọc. Đầu ra của lớp này được chuyển đến một hàm phi tuyến, gọi là hàm kích hoạt ReLU,
được định nghĩa là 𝑓(𝑥) = max(0, 𝑥), bởi vì hàm kích hoạt ReLU có độ tính toán đơn giản hơn so với hàm
kích hoạt sigmoid (hàm kích hoạt này thường yêu cầu độ phức tạp tính toán theo số mũ) [100]. Tiếp đó, lớp
max-pooling được sử dụng để giảm chiều dữ liệu từ lớp tích chập, vì thế độ phức tạp và tài nguyên tính toán
của quá trình xử lý có thể được giảm và có thể mở rộng dữ liệu. Cuối cùng, lớp kết nối đầy đủ (fully connected)
thực hiện phân lớp các kết quả đầu ra được sinh ra từ lớp tích chập và lớp pooling.
3.6.3. Các kết quả thực nghiệm và thảo luận
Nhằm đánh giá tính hiệu quả của đặc trưng đồ thị PSI trong phát hiện mã độc IoT botnet, luận án đã
thực nghiệm và đưa ra bảng kết quả trong đó tập trung vào 02 đặc trưng là đồ thị PSI và đặc trưng đồ thị FCG
với các giá trị độ đo gồm độ chính xác, FNR, FPR và chi phí thời gian xử lý.
Bảng 3.2. Kết quả phát hiện mã độc IoT botnet bằng đồ thị PSI và đồ thị lời gọi hàm
Độ đo
Đặc trưng
Accuracy
(%)
FNR
(%)
FPR
(%)
Time (m)
PSI-graphs 98,7 1,83 0,78 88
FCGs 95,3 5,81 4,13 545
Từ kết quả ở bảng 3.2 có thể thấy phương pháp đề xuất sử dụng các đặc trưng đồ thị PSI thực hiện tốt
hơn so với đồ thị lời gọi hàm. Kết quả cho thấy phương pháp đề xuất đạt độ chính xác cao hơn 1,7% so với
việc sử dụng đồ thị lời gọi, đồng thời thời gian thực thi cũng ít hơn 457 phút. Bên cạnh đó, tỷ lệ âm tính giả
(false nagative/tỷ lệ loại trừ nhầm) trong phương pháp đề xuất đạt 1,83% trong khi phương pháp FCG đạt
5,81%. Trong khi đó, với các bài toán phát hiện mã độc thì tỷ lệ âm tính giả càng thấp thì có nghĩa là bộ phân
lớp gán nhãn sai mã độc là các tập tin lành tính càng thấp. Bên cạnh đó, phương pháp đề xuất của luận án vẫn
có tỷ lệ sai rất nhỏ trong gán nhãn sai các tập tin lành tính là mã độc. Điều này xảy ra ở việc một số tập tin
lành tính có cấu trúc đồ thị PSI giống với cấu trúc đồ thị của một số mẫu mã độc Linux.Bashlite. Qua phân
tích thủ công những tập mẫu đó thấy rằng các tập tin thực thi khác nhau, có đồ thị FCG và mã hợp ngữ thu
được là khác nhau nhưng vẫn có cấu trúc đồ thị PSI giống nhau. Tuy nhiên, tỷ lệ phát hiện sai này chỉ ở mức
0,78%, một tỷ lệ rất nhỏ.
Bảng 3.3. Kết quả so sánh giữa các phương pháp phát hiện IoT botnet
Phương pháp Các thuật toán Bộ mẫu thử nghiệm
Độ chính xác
(Accuracy %)
Su và cộng sự [25] Deep neural network (CNN) Bộ dữ liệu mẫu mô tả
ở mục 2.2.1 gồm 6943
mẫu (trong đó 3098
mã độc từ IoTPOT)
95.13
HaddadPajouh và
cộng sự [14]
Recurrent neural network (RNN) 97.88
PSI-Graph Deep neural network (CNN) 98.7
Từ bảng kết quả 3.3 có thể thấy các phương pháp nghiên cứu của Su và cộng sự [25], HaddadPajouh và
cộng sự [14] đều cho kết quả khả quan. Mặc dù các kết quả đạt được của các nghiên cứu hiện nay đều khả
quan, nhưng việc không có sẵn bộ dữ liệu thử nghiệm và mã nguồn các mô hình thử nghiệm khiến cho việc
thử nghiệm lại và đánh giá kết quả đó khá khó khăn. Luận án cố gắng xây dựng lại những phương pháp đó
thông qua các học liệu, bài báo đã công bố của các phương pháp trên. Kết quả đạt được cho thấy phương pháp
đề xuất của luận án đạt độ chính xác tốt hơn phương pháp của Su và HaddadPajouh lần lượt là 3,57% và 0,82%.
16
Bảng 3.4. Kết quả đánh giá tính quá khớp
Phương pháp Các thuật toán Bộ mẫu thử nghiệm
Độ chính xác
(Accuracy %)
PSI-Graph Deep neural network (CNN)
Bộ dữ liệu mẫu mô tả ở
mục 2.2.1 gồm 10,010
(trong đó 6165 mã độc từ
IoTPOT and VirusShare)
97,8
Cuối cùng, vấn đề quá khớp (over-fitting) thường xảy ra với các thuật toán học sâu. Điều này xảy ra khi
mô hình quá khớp với tập dữ liệu huấn luyện nhưng không thực hiện tốt khi thực thi trên các tập con mở rộng.
Để đánh giá vấn đề quá khớp trong mô hình đề xuất, luận án đã thêm 3067 mẫu mã độc được thu thập từ
VirusShare vào tập kiểm thử và tính toán lại độ chính xác. Như kết quả thể hiện ở bảng 3.4, khi thêm các mẫu
mã độc từ VirusShare vào tập dữ liệu mẫu thì độ chính xác trong phát hiện mã độc có giảm nhẹ (giảm 0,9%).
Như vậy, từ các kết quả thực nghiệm, luận án thấy rằng phương pháp đề xuất đạt kết quả khả quan trong phát
hiện mã độc IoT, đồng thời giải quyết được vấn đề quá khớp trong khoảng giá trị chấp nhận được.
Kết luận Chương 3
Dựa trên việc phân tích, đánh giá các đặc trưng của mã độc IoT botnet và nhằm giải quyết các hạn chế
của các nghiên cứu trước trong phát hiện mã độc IoT botnet dựa trên đặc trưng có cấu trúc đồ thị, luận án đã
đề xuất một hướng tiếp cận nhẹ (light) dựa trên đặc trưng mức cao, được gọi là đồ thị PSI nhằm phát hiện mã
độc IoT botnet. Phương pháp đề xuất khai phá vòng đời của mã độc IoT botnet để sinh đặc trưng đồ thị PSI,
áp dụng các ưu điểm của phương pháp học sâu để đạt độ chính xác tới 98,7% cùng độ quá khớp trong khoảng
giá trị chấp nhận được với bài toán phát hiện mã độc IoT botnet. Tuy nhiên, phương pháp đề xuất chỉ tập trung
vào khai thác cấu trúc tổng thể của đồ thị PSI, và vẫn có độ phức tạp chi phi thời gian khá lớn.
Những đóng góp của Chương 3
Đề xuất một đặc trưng mới có cấu trúc đồ thị, hiệu quả trong bài toán phát hiện mã độc botnet đa kiến
trúc trên thiết bị IoT, gọi là đồ thị PSI. Kết quả nghiên cứu đã công bố và trình bày trên Kỷ yếu Hội nghị và
Tạp chí uy tín trong nước và quốc tế (tại [B1], [B6], [B7] trong danh mục các công trình của tác giả).
CHƯƠNG 4. ĐẶC TRƯNG ĐỒ THỊ CON PSI CÓ GỐC TRONG PHÁT HIỆN MÃ ĐỘC IOT
BOTNET
4.1. Phát biểu bài toán
Phương pháp phát hiện mã độc IoT botnet dựa trên đặc trưng đồ thị PSI đã cho thấ
Các file đính kèm theo tài liệu này:
- tom_tat_luan_an_nghien_cuu_de_xuat_dac_trung_do_thi_psi_tron.pdf