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

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

pdf30 trang | Chia sẻ: honganh20 | Ngày: 04/03/2022 | Lượt xem: 287 | Lượt tải: 0download
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:

  • pdftom_tat_luan_an_nghien_cuu_de_xuat_dac_trung_do_thi_psi_tron.pdf
Tài liệu liên quan