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
Bạn đang xem 30 trang mẫu của tài liệu "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", để 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:
Nguyễn Huy Trung - Quyển Luận án tiến sĩ.pdf
3. Đóng góp mới - Tiếng Anh (2 bản).docx
3. Đóng góp mới - Tiếng Việt (2 bản).docx
DongGopMoi_TiengAnh.pdf
DongGopMoi_TiengViet.pdf
Nguyễn Huy Trung - Tóm tắt luận án - TAnh.pdf
Nguyễn Huy Trung - Tóm tắt luận án - TViet.pdf
Nội dung tài liệu: 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
- BỘ GIÁO DỤC VÀ ĐÀO TẠO VIỆN HÀN LÂM KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM HỌC VIỆN KHOA HỌC VÀ CÔNG NGHỆ NGUYỄ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 Hệ thống thông tin số: 9 TÓM TẮT LUẬN ÁN TIẾN SĨ Hà Nội
- Công trình đượ ạ ọ ệ ọ ệ ệ ọ ệ ệ Người hướ ẫ ọ ốc Dũng Người hướ ẫ ọ ễ ỳ ả ệ ả ệ ả ệ ậ đượ ả ệ trướ ội đồ ấ ọ ệ ọ ạ ọ ệ ọ ệ ệ ọ ệ ệ ồ . ờ năm ể ể ậ ạ Thư việ ọ ệ ọ ệ Thư v ệ ố ệ
- MỤC LỤC 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 25
- 4.3. Thực nghiệm và đánh giá kết quả 18 4.3.1. Môi trường thực nghiệm 18 4.3.2. Mô hình đánh giá 19 4.3.2. Các kết quả thực nghiệm và thảo luận 19 KẾT LUẬN VÀ KIẾN NGHỊ 23 26
- MỞ ĐẦU 1. Tính cấp thiết của luận án Cuộc cách mạng công nghiệp 4.0 hay còn được gọi với những cái tên như Vạn vật kết nối Internet (Internet of Things - IoT) hay công nghiệp Internet (Industrial Internet) làm biến đổi nhanh chóng nền công nghiệp ở mọi quốc gia, diễn ra trên toàn cầu. Với nhiều tên gọi khác nhau nhưng đặc điểm nổi bật nhất của cuộc cách mạng công nghiệp lần thứ 4 đó là việc dịch chuyển các hệ thống máy móc sản xuất truyền thống sang các hệ thống tự động hoá có khả năng tự hành một cách thông minh dựa trên nền tảng lõi là các thiết bị IoT. Thông qua cuộc các mạng công nghiệp 4.0 mà giáo dục, y tế, chính trị, xã hội, kinh tế đã có những thành tựu vượt bậc trong thời gian ngắn. Bên cạnh những tiện ích mà cuộc cách mạng công nghiệp 4.0 mang lại thì an toàn thông tin trên không gian mạng ngày càng trở nên phức tạp, tiềm ẩn nhiều nguy cơ ảnh hưởng trực tiếp tới an ninh quốc gia, tới lợi ích hợp pháp của người dân. Khảo sát, thống kê các nghiên cứu đã công bố từ 2016 – 2018 tại các tạp chí uy tín của các nhà xuất bản lớn trên thế giới như Elsivier, IEEE, Hindawi and Springer [6] cho thấy xác thực vẫn là giải pháp phổ biến trong đảm bảo an ninh, an toàn thiết bị IoT và quản lý tin cậy vẫn đang tiếp tục được đẩy mạnh sự đầu tư nghiên cứu. Ngoài ra có thể kể đến một số nghiên cứu về giải pháp mã hóa nhẹ (light), giao thức và cơ chế truyền thông an toàn đối với IoT. Trong khi đó, một trong những nguy cơ đe dọa nguy hiểm nhất đối với các thiết bị IoT là mã độc botnet. Chính vì lý do đó, luận án với đề tài “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” nhằm nghiên cứu các giải pháp phát hiện mã độc IoT botnet hiện nay có ý nghĩa về mặt thực tiễn và khoa học, đáp ứng đòi hỏi ngày càng cao của công tác bảo đảm an ninh, an toàn thông tin cho các thiết bị IoT nói riêng và không gian mạng nói chung. 2. Mục tiêu nghiên cứu của luận án Từ việc phân tích tính cấp thiết của đề tài đã trình bày ở trên, luận án xác định mục tiêu nghiên cứu nhằm đề xuất một đặc trưng có cấu trúc đồ thị mới và hiệu quả (độ chính xác cao, độ phức tạp thấp) trong phát hiện mã độc IoT botnet, có khả năng xử lý mã độc IoT botnet đa kiến trúc. 3. Đối tượng và phạm vi nghiên cứu - Đối tượng nghiên cứu của đề tài: đối tượng nghiên cứu của luận án là các tập tin thực thi trên thiết bị IoT, có tính đa kiến trúc và có nền tảng trên các hệ điều hành Linux Kernel 2.6 hoặc 3.2. - Phạm vi nghiên cứu của đề tài: luận án tập trung vào bài toán phát hiện mã độc có thể xem như bài toán phân loại hai lớp (nhị phân) với phạm vi nghiên cứu sau: chỉ tập trung nghiên cứu, phát hiện mã độc IoT botnet; tập trung vào các thiết bị IoT ràng buộc (resource-constrained IoT) về tài nguyên (hay còn gọi là các thiết bị IoT cỡ nhỏ/thiết bị IoT SOHO (Small Office/Home Office) như năng lượng tiêu thụ thấp, bộ nhớ lưu trữ hạn chế, khả năng tính toán hạn chế ; chỉ tập trung vào phân tích tĩnh. 4. Nội dung và phương pháp nghiên cứu *) Nội dung nghiên cứu: Để đạt được mục tiêu nghiên cứu đã đề ra ở trên, luận án sẽ tập trung phân tích, đánh giá một số nội dung sau: - Nghiên cứu sự phát triển, tiến hóa và đặc điểm của mã độc IoT botnet cũng như các phương pháp phát hiện mã độc IoT botnet hiện nay. - Khảo sát, phân tích và đánh giá lại các phương pháp phát hiện mã độc IoT botnet hiện nay dựa trên phân tích tĩnh trên cùng bộ cơ sở dữ liệu lớn và môi trường thử nghiệm. - Nghiên cứu và đề xuất đặc trưng mới có cấu trúc đồ thị trong phát hiện mã độc IoT botnet 1
- - Đánh giá đặc trưng đã đề xuất về độ chính xác và độ phức tạp trong phát hiện mã độc IoT botnet bằng cách sử dụng tập dữ liệu lớn và đáng tin cậy, so sánh với những phương pháp hiện tại cùng hướng tiếp nghiên cứu *) Phương pháp nghiên cứu Phương pháp nghiên cứu lý thuyết kết hợp với nghiên cứu thử nghiệm. - Nghiên cứu lý thuyết: Tiến hành nghiên cứu, khảo sát, tổng hợp, đánh giá các công trình nghiên cứu liên quan ở trong và ngoài nước tại các kho dữ liệu trực tuyến như: Google Scholar, ScienceDirect, ACM Digital Library, IEEE Xplore, một số hội thảo về an toàn thông tin trong lĩnh vực công nghiệp uy tín hàng đầu như Blackhat, USENIX, DEF CON, Trong đó, tập trung nghiên cứu lý thuyết về các đặc trưng hành vi, vòng đời lây nhiễm của mã độc botnet, nghiên cứu các đoạn mã dịch ngược của các tập mẫu thực thi trên thiết bị IoT. - Nghiên cứu thực nghiệm: Dựa trên tập dữ liệu gồm hơn 10000 mẫu gồm cả mã độc botnet và mẫu lành tính trên thiết bị IoT và chia thành tập huấn luyện và kiểm thử theo tỷ lệ 70:30, sử dụng kỹ thuật cross- validation, luận án tiến hành các thí nghiệm, thực nghiệm xây dựng đặc trưng mã độc IoT botnet bằng các phương pháp phát hiện mã độc IoT botnet, trên tập dữ liệu các tập tin thực thi trên IoT (mã độc, lành tính). Thực nghiệm đánh giá tính hiệu quả của đặc trưng đồ thị PSI mà luận án đề xuất với học sâu. Thực nghiệm xây dựng và đánh giá đặc trưng đồ thị con PSI có gốc (PSI-rooted subgraph) với các thuật toán học máy để nâng cao hiệu quả trong bài toán phát hiện mã độc IoT botnet. 5. Bố cục luận án Luận án gồm phần mở đầu, bốn chương, phần kết luận và kiến nghị, tài liệu tham khảo với 126 trang thuyết minh, trong đó có 17 bảng, 59 hình vẽ, đồ thị và 123 tài liệu tham khảo. Mở đầu: Trình bày tính cấp thiết và cấu trúc của luận án Chương 1: Cơ sở lý thuyết Chương 2: Phương pháp phát hiện mã độc IoT botnet Chương 3: Đặc trưng đồ thị PSI trong phát hiện mã độc IoT botnet Chương 4: Đặc trưng đồ thị con PSI có gốc trong phát hiện mã độc IoT botnet Kết luận và kiến nghị Tài liệu tham khảo CHƯƠNG 1. CƠ SỞ LÝ THUYẾT 1.1. Khái niệm và đặc điểm thiết bị IoT Thuật ngữ Vạn vật kết nối Internet (IoT - Internet of Things) lần đầu được đưa ra định nghĩa bởi Kevin Ashton - nhà khoa học ở Viện công nghệ Massachusets, Mỹ. Kể từ đó có rất nhiều cách giải thích hay khái niệm khác nhau về IoT được đưa ra. Tuy nhiên các khái niệm của các cá nhân, tổ chức đã đưa ra thì đều cơ bản xoay quanh việc kết nối các đồ vật qua mạng Internet. Chính vì thế, luận án cho rằng có thể hiểu đơn giản “IoT là nền tảng bao gồm các“vật” (vật lý và ảo hóa) được tích hợp trên các vật dụng, con người, môi trường và có khả năng kết nối, chia sẻ và xử lý dữ liệu phục vụ các mục đích khác nhau”. Trong phạm vi nghiên cứu, luận án định nghĩa “thiết bị IoT là những “vật” (gồm vật lý và ảo hóa) đa kiến trúc, hạn chế về tài nguyên (có năng lực xử lý thấp, bộ nhớ lưu trữ nhỏ, nguồn điện năng thấp, ) có khả năng kết nối, chia sẻ, truyền tải và xử lý dữ liệu phục vụ các mục đích khác nhau”. Trong đó, đại đa số các thiết bị IoT chạy trên nền tảng biến 2
- thể của hệ điều hành Unix. Những biến thể đó rất phổ biến bởi chúng chứa nhiều tiện ích phổ biến, và nhiều khả năng của Unix trong một tập tin thực thi. Đó cũng sẽ là lý do luận án này chỉ tập trung vào các tập tin thực thi trên Linux, có định dạng phổ biến là ELF (Executable Linkable Format). Thiết bị IoT có những đặc điểm khác biệt với những công nghệ điện toán truyền thống hiện nay, như: - Môi trường không được kiểm soát: các thiết bị IoT có tính di động và tự hành cao - Tính không đồng nhất: các thiết bị IoT sử dụng một cách đa dạng các kiến trúc vi xử lý như: MIPS, ARM, PowerPC, MIPSEL, - Tài nguyên hạn chế: các thiết bị IoT cũng bị hạn chế về tài nguyên như bộ nhớ thấp, năng lực tính toán nhỏ, dung lượng năng lượng pin thấp. - Trạng thái động: Trạng thái của các thiết bị IoT thay đổi linh hoạt phụ thuộc vào hoàn cảnh của các thiết bị gồm vị trí, chức năng và tốc độ di chuyển. - Tính kết nối: Thông qua IoT, mọi vật có thể được kết nối, tương tác với cơ sở hạ tầng thông tin và truyền thông toàn cầu thường xuyên, liên tục. 1.2. Khái niệm mã độc IoT botnet Mã độc botnet được thiết kế để lây nhiễm các thiết bị cụ thể (ví dụ như máy tính, thiết bị di động hoặc thiết bị IoT) và biến những thiết bị đó thành một phần trong hệ thống mạng máy tính ma – đó là một mạng máy tính gồm nhiều thiết bị đã bị lây nhiễm mã độc botnet và được điều khiển bởi kẻ tấn công, thường được gọi là bot-master. Điểm khác biệt giữa mã độc botnet với các mã độc khác là mã độc botnet chỉ thực hiện các hành vi độc hại khi nhận được chỉ thị từ các máy chủ C&C của kẻ tấn công. Trong luận án này, mã độc IoT botnet được xem như là mã độc botnet lây nhiễm trên các thiết bị IoT cho rằng có thể hiểu đơn giản như sau “mã độc IoT botnet là mã độc botnet có khả năng tự lây nhiễm trên các thiết bị IoT, bị kết nối và điều khiển bởi tin tặc”. Hình 1.1. Mối quan hệ giữa một số mã độc IoT botnet 1.3. Sự tiến hóa của mã độc IoT botnet Dựa trên phân tích, đánh giá các nghiên cứu đã có về mã độc IoT cũng như thực hiện phân tích mẫu mã độc thực tế, luận án đưa ra một biểu đồ ngắn gọn về sự phát triển, tiến hóa của mã độc IoT được sử dụng để 3
- thực hiện tấn công từ chối dịch vụ phân tán gần đây. Tuy nhiên, danh sách các loại mã độc dưới đây vẫn chưa đầy đủ bởi tội phạm mạng thường xuyên sửa đổi và cập nhật các loại mã độc đã biết để tạo ra các loại mã độc mới, khai thác nhiều loại thiết bị IoT. 1.4. Sự khác biệt giữa mã độc botnet truyền thống và IoT botnet Kết quả so sánh giữa mã độc botnet trên máy tính truyền thống và thiết bị IoT được tổng hợp như tại bảng 1.1. dưới đây: Bảng 1.1. So sánh mã độc botnet trên máy tính truyền thống và IoT Tiêu chí Mã độc botnet trên PC Mã độc botnet trên IoT Hình thức tấn Đa dạng với nhiều hình thức tấn công Tập trung chủ yếu là hình thức tấn công từ công như mã hóa dữ liệu, đánh cắp dữ liệu chối dịch vụ phân tán bởi đặc điểm số riêng tư, tấn công từ chối dịch vụ . lượng thiết bị IoT lớn và phân tán toàn cầu Nền tảng Nền tảng kiến trúc mã độc botnet trên So sự đa dạng của các thiết bị IoT nên mã không đồng máy tính truyền thấp có sự đa dạng độc botnet trên các thiết bị IoT rất đa dạng nhất thấp, chủ yếu tập trung vào các kiến trúc về kiến trúc như ARM, MIPS, PowerPC, x86_64 Sparc, để đảm bảo khả năng lây nhiễm thành công nhiều loại thiết bị Đa dạng các Mã độc trên máy tính truyền thống rất Do xu hướng thiết bị IoT mới nổi, cũng loại mã độc đa dạng về chủng loại, tinh vi và phức như các đặc trưng khác biệt của thiết bị IoT tạp nên người viết mã độc lây nhiễm trên IoT đa phần là chỉnh sửa cơ bản dựa trên mã nguồn của các loại mã độc đã công bố công khai trước đó. Vì thế sự đa dạng của mã độc trên IoT thấp Kỹ thuật gây Do tài nguyên và năng lực tính toán của Do tài nguyên của các thiết bị IoT bị hạn rối máy tính truyền thống lớn nên người chế nên người viết mã độc ít khi sử dụng viết mã độc thường sử dụng các kỹ các kỹ thuật gây rối phức tập, hoặc chỉ sử thuật gây rối phức tạp để bảo vệ mã độc dụng một số kỹ thuật gây rối đơn giản như khỏi bị phát hiện, phân tích. Nguyên UPX, XOR. nhân là do mã độc có đủ tài nguyên để xử lý các kỹ thuật gây rối phức tạp trước khi thực thi hành vi độc hại Phát hiện trên Dễ dàng phát hiện dấu hiệu mã độc Khó phát hiện bởi các thiết bị IoT có tính hệ thống thông qua biểu hiện của máy tính truyền hoạt động độc lập cao, ít tương tác với thống người dùng nên không phát hiện được các dấu hiệu bất thường trên hệ thống Khả năng Dễ dàng triển khai phân tích với môi Khó triển khai phân tích với môi trường an thực thi trên trường phân tích an toàn như sandbox toàn như sandbox bởi phải đáp ứng yêu cầu môi trường trên máy tính truyền thống về có khả năng xử lý tính đa kiến trúc ảo 4
- Tính thường Có thể lây nhiễm và thường trú tại các Sau khi lây nhiễm sẽ xóa bỏ các tập tin thực trú vị trí bộ nhớ bền vững trên máy tính, thi và chỉ chạy trên các bộ nhớ không bền cũng như lưu lại các tập tin thực thi độc vững, tức là có tính không thường trú. hại trên máy tính. Tìm và ngăn Do tài nguyên lớn nên trên máy tính Do tài nguyên hạn chế nên mã độc IoT chặn mã độc truyền thường có khả năng bị lây nhiễm thường có cơ chế tìm và ngăn chặn mã độc khác nhiều loại mã độc đồng thời khác sau khi lây nhiễm thành công Kết luận Chương 1: Luận án trình bày tổng quan về mã độc IoT botnet gồm khái niệm về thiết bị IoT và mã độc IoT botnet, sự tiến hóa của mã độc IoT botnet, kiến trúc vòng đời lây nhiễm của mã độc IoT botnet. Đồng thời, luận án cũng đánh giá đặc điểm và sự khác biệt của mã độc botnet trên thiết bị IoT so với mã độc botnet trên máy tính truyền thống. Những nội dung đã thảo luận trên giúp luận án củng cố luận cứ trong xác định phương pháp phát hiện mã độc IoT botnet phù hợp CHƯƠNG 2. PHƯƠNG PHÁP PHÁT HIỆN MÃ ĐỘC IOT BOTNET 2.1. So sánh phân tích tĩnh và phân tích động Cả phân tích tĩnh và phân tích động đều có những ưu điểm và hạn chế nhất định. Bảng 2.1 tổng hợp các ưu nhược điểm của mỗi phương pháp nêu trên. Bảng 2.1. So sánh các phương pháp phân tích, phát hiện mã độc IoT botnet Phân tích động Phân tích tĩnh - Quan sát thực thi cụ thể của một chương - Phân tích một cách chi tiết các tập tin và đưa trình để quyết định tập tin là mã độc dễ ra được cái nhìn tổng quát về tất cả các khả Điểm dàng năng kích hoạt của chúng mạnh - Phân tích động hiệu quả hơn đối với mã - Không cần phải thực thi mã độc nên không độc gây rối bị ảnh hưởng bởi tính đa kiến trúc khi xây dựng môi trường thực thi - Chỉ có thể giám sát đơn luồng thực thi - Phân tích tĩnh phụ thuộc nhiều vào công - Làm lộ quá trình phát hiện và phân tích nghệ dịch ngược mã độc - Khó khăn khi xử lý mã độc sử dụng kỹ thuật Hạn - Có thể gây nguy cơ mất an toàn cho mạng gây rối chế và hệ thống - Khó mô phỏng đầy đủ thiết bị IoT (tính đa kiến trúc) Để phù hợp với nội dung nghiên cứu, luận án thấy rằng với đầu vào là một tập tin thực thi có tính đa kiến trúc thì cần lựa chọn phương pháp có khả năng xử lý vấn đề này hiệu quả và hiệu suất, do đó luận án lựa chọn phân tích tĩnh trong đề xuất hướng tiếp cận giải quyết bài toán nghiên cứu, trong đó luận án khai thác điểm mạnh của phân tích tĩnh và hạn chế được điểm yếu của phương pháp này. Phần tiếp theo luận án sẽ tập trung phân tích, đánh giá các nghiên cứu hiện nay dựa trên phân tích tĩnh trong phát hiện mã độc IoT botnet. 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 Các nghiên cứu dựa trên phân tích tĩnh trong phát hiện mã độc thường sử dụng những đặc trưng phổ biến như: tiêu đề tập tin (header), các lời gọi hàm system-calls, lời gọi API (Application Programming 5
- Interfaces), PSI (Printable Strings Information), FLF (Function Length Frequency), các thư viện liên kết, OpCode (trích xuất từ mã assembly), Dịch ngược là hướng tiếp cận phổ biến để trích xuất những thông tin đặc trưng trên từ một tập tin thực thi. Cách thức trích xuất và xử lý những đặc trưng đó ảnh hưởng lớn đến độ chính xác và phức tạp của các phương pháp phát hiện mã độc IoT, những đặc trưng đó có thể được chia thành 02 nhóm: dựa trên các đặc trưng có cấu trúc đồ thị và dựa trên các đặc trưng không có cấu trúc đồ thị, như minh họa ở hình 2.1. Hình 2.1. Phân loại các đặc trưng tĩnh trong phát hiện mã độc IoT botnet Các phương pháp phát hiện mã độc sử dụng các đặc trưng không có cấu trúc đồ thị nhằm xây dựng các mô hình phát hiện chứa các thuộc tính của cấu trúc tập tin nhị phân để phân loại một tập tin nhị phân là mã độc hay lành tính. Những phương pháp này dựa trên trích xuất các đặc trưng gồm Opcode, Strings hoặc cấu trúc tập tin phân biệt các mẫu mã độc. Những đặc trưng này có thể được chia thành 2 nhóm: đặc trưng mức cao và đặc trưng mức thấp. Cụ thể, các đặc trưng mức thấp có thể được thu thập trực tiếp từ trong cấu trúc của tập tin, trong khi đó các đặc trưng mức cao cần sử dụng các công cụ hỗ trợ phân tách (disassembler) như IDA Pro hoặc Radare2. Những nghiên cứu biểu diễn các tập tin thực thi bằng các đặ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 rác Việc so sánh các phương pháp phát hiện mã độc IoT botnet dựa trên biểu diễn dữ liệu đặc trưng tĩnh được tổng hợp dưới đây cho thấy các nghiên cứu hiện đại (state-of-art) sử dụng các đặc trưng tĩnh trong phát hiện mã độc IoT botnet còn những hạn chế. - Các nghiên cứu theo hướng sử dụng biểu diễn dữ liệu dạng Opcode tiêu biểu như Hamed HaddadPajouh [14], Ensieh Modiri Dovom [57], Darabian [52], Amin Azmoodeh et al. [36] sử dụng các cơ chế chủ yếu như xác định mã độc thông qua chuỗi opcode, áp dụng fuzzy pattern tree để phát hiện mẫu mã độc, phát hiện mã độc dựa trên tần xuất opcode. Những nghiên cứu này có hạn chế như chỉ sử dụng tập mẫu dựa trên kiến trúc ARM, tập dữ liệu không đủ lớn 6
- - Nghiên cứu của Mohannad Alhanahnah [4] biểu diễn dữ liệu dạng Strings cho phép sinh chữ kỹ để phân loại mã độc. Tuy nhiên, nghiên cứu có hạn chế bởi độ phức tạp tính toán lớn và chỉ sử dụng cho 4 loại mã độc. - Nghiên cứu của F. Shahzad et al. [96] biểu diễn dữ liệu dạng ELF header nhằm trích xuất các đặc trưng từ section của tập tin nhị phân để phát hiện mã độc. Tuy nhiên, hạn chế của nghiên cứu bởi cấu trúc của tập tin nhị phân dễ dàng bị chỉnh sửa. - Nghiên cứu của Jiawei Su et al. [25] biểu diễn dữ liệu dạng Grayscale image cho phép biểu diễn các mẫu nhị phân như ảnh đa mức xám để phát hiện mã độc. Tuy nhiên, nghiên cứu có hạn chế vì thiếu độ chính xác khi các mẫu sử dụng kỹ thuật gây rối hoặc mã hóa. - Nghiên cứu của Hisham Alasmary et al. [32] biểu diễn dữ liệu dạng CFG để tính toán 23 thuộc tính lý thuyết đồ thị của CFG để phân biệt các mẫu mã độc và lành tính. Tuy nhiên, nghiên cứu có độ phức tạp tính toán lớn và xác định các tính chất chưa chính xác. Dựa trên khảo sát, đánh giá các nghiên cứu hiện nay về vấn đề phát hiện mã độc IoT botnet, thấy rằng các nghiên cứu đều có những ưu điểm và hạn chế. Tuy nhiên, mỗi phương pháp nghiên cứu lại thực nghiệm trên các bộ cơ sở dữ liệu và môi trường khác nhau. Trên cơ sở đó, luận án tiến hành đánh giá một cách khách quan các nghiên cứu hiện nay với cùng môi trường thử nghiệm và trên cùng bộ cơ sở dữ liệu. Phần tiếp theo luận án sẽ trình bày chi tiết về bộ cơ sở dữ liệu, bộ cơ sở dữ liệu này không chỉ dùng để thực nghiệm cho phần đánh giá ở Chương này mà còn được sử dụng thử nghiệm ở các Chương sau của luận án. 2.2.1. Xây dựng bộ cơ sở dữ liệu thử nghiệm Để phục vụ các nghiên cứu thực nghiệm của luận án một cách tin cậy, đúng đắn thì việc xây dựng tập dữ liệu các tập tin thực thi mã độc và lành tính trên thiết bị IoT 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(푆) ∨ 푛(푆)) (2.1) 푙 푠푠푙 = { 퐿à푛ℎ 푡í푛ℎ, 푛ế (! ( 1(푆)) ∧ ! ( 2(푆)) ∧ ! ( 푛(푆)) Để 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. 7
- 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 FPR (False FNR (False Thời gian Thời Hướng tiếp cận Bộ phân Độ chính Positive Rate Negative trích xuất gian dựa trên đặc lớp xác - dương tính Rate - âm đặc trưng và phân trưng tĩnh giả) tính giả) tiền xử lý lớp RIPPER 99,8 0,2 0,2 0,75s ELF-header [96] PART 99,8 0,2 0,2 1h50m 1,27s DT (J48) 99,6 0,5 0,3 1s SVM 98 0,9 2,2 12,4s kNN 99,8 0,4 0,2 1s String-based [70] 4m47s DT (J48) 99,4 0,4 0,6 8,75s RF 99.7 0,3 0,4 9,71s Neural Image-based [25] 89,1 12,7 1,4 14m19s 2m19s Network SVM 89 33,8 4,4 1,45s CFG-based [32] LR 85 15,1 19,0 5 days 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ả). 8
- 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). 9
- Đị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 10
- 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 11
- 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 Trung bình các Trung bình các Trung bình các đỉnh trong đồ thị cạnh trong đồ thị đỉnh trong đồ thị cạnh trong đồ thị PSI PSI FCG 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 12
- Để 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. 13
- 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ư 14
- 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 Accuracy FNR FPR Time (m) Đặc trưng (%) (%) (%) 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 Độ chính xác Phương pháp Các thuật toán Bộ mẫu thử nghiệm (Accuracy %) Su và cộng sự [25] Deep neural network (CNN) Bộ dữ liệu mẫu mô tả 95.13 HaddadPajouh và ở mục 2.2.1 gồm 6943 Recurrent neural network (RNN) 97.88 cộng sự [14] mẫu (trong đó 3098 PSI-Graph Deep neural network (CNN) mã độc từ IoTPOT) 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%. 15
- Bảng 3.4. Kết quả đánh giá tính quá khớp Độ chính xác Phương pháp Các thuật toán Bộ mẫu thử nghiệm (Accuracy %) Bộ dữ liệu mẫu mô tả ở mục 2.2.1 gồm 10,010 PSI-Graph Deep neural network (CNN) 97,8 (trong đó 6165 mã độc từ IoTPOT and VirusShare) 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ấy tính khả thi và đạt hiệu quả cao. Tuy nhiên, phương pháp đề xuất này tập trung vào khai thác cấu trúc tổng thể của đồ thị PSI và không khai thác các đường đi trong đồ thị PSI, nói cách khác phương pháp tập trung vào việc xét đồ thị PSI như một đồ thị đơn. Thực tế là xu hướng phát triển của các tập tin thực thi mã độc botnet trên thiết bị IoT ngày càng phức tạp, do đó cấu trúc đồ thi PSI cũng sẽ phức tạp theo. Trong khi đó, các hành vi độc hại thường xuất hiện trong vòng đời mã độc IoT botnet có thể là các đường đi trong đồ thị PSI, minh họa như ở hình 4.1 thì đó có thể là các đường đi màu xanh lá hoặc màu đỏ, còn các đường đi khác là dữ liệu dư thừa. Dựa trên điều đó, bài toán nghiên cứu của Chương này được phát biểu như sau: Xây dựng một đặc trưng mới dựa trên đặc trưng đồ thị PSI, nhưng tập trung khai phá các đường đi trong đồ thị PSI, từ đó xây dựng đặc trưng đồ thị mới, gọi là đồ thị con PSI có gốc biểu diễn các hành vi độchại của mã độc IoT botnet, nâng cao hiệu quả phát hiện mã độc IoT botnet với các thuật toán học máy đơn giản. 16
- Hình 4.1. Minh họa ý tưởng bài toán dùng đồ thị con PSI có gốc 4.2. Xây dựng đặc trưng đồ thị PSI-rooted subgraph Định nghĩa 4.1 (Đồ thị con PSI có gốc): Giả sử 푠 = ( , , 휃, ) biểu diễn một đồ thị con PSI có gốc, có hướng và không có chu trình, đồ thị này được sinh ra từ đồ thị 푃푆 có gốc ở đỉnh ∅; trong đó ∈ 푃푆 là tập các đỉnh mà ở đó độ dài giữa (∅, 푖) thỏa mãn 0≤ (∅, 푖) ≤ , và là tập các cạnh có hướng giữa các đỉnh trong . Sau khi đã xây dựng được đồ thị PSI, cũng như xác định được các đỉnh trong PSI, luận án tiến hành duyệt đồ thị PSI với đỉnh gốc của các đồ thị con lần lượt là các đỉnh trong đồ thị PSI, tiến trình thực hiện như trong thuật toán 4.1. Thuật toán 4.1: 푡 푡푅표표푡푒 푆 ℎ(풢, ) 풢 = { , , , }: Tập hợp đồ thị PSI = ( , ) biểu diễn cho các tập tin ELF 퐈퐧퐩퐮퐭 1 2 푛 푖 푖 푖 : Bậc của đồ thị con PSI có gốc 풮풢 = {푆 , 푆 , , 푆 }: Tập hợp đồ thị con PSI có gốc 푆 = ( ′, ′, 푣, ) được Output 1 2 푛 푖 푖 푖 trích xuất từ 풢 1: 푰풏풊풕풊 풍풊풛 풕풊풐풏: 풮풢 = ∅ 2: 풇풐풓 풆 풉 푖 ∈ 풢 풅풐 3: 풇풐풓 풆 풉 푣 ∈ 푖 풅풐 4: 풇풐풓 = 0 푡표 풅풐 5: 푆 푖 ≔ 푒푡푊퐿푆 ℎ(푣, 푖, ) 6: 풮풢 ≔ 풮풢 ∪ 푆 푖 7: 푒푡u 푛 풮풢 Thuật toán 4.1 chọn lấy tất cả các hàng xóm của một đỉnh để trích xuất đồ thị con (dò theo chiều rộng). Tiến trình trích xuất đồ thị con PSI có gốc dựa trên thuật toán tìm kiếm theo chiều rộng (BFS – Breadth First Search) sẽ hiệu quả hơn thuật toán tìm kiếm theo chiều sâu (Depth First Search). Lý do chính là BFS bắt đầu ở đỉnh gốc và khai thác tất cả các đỉnh lân cận ở cùng độ sâu trước khi đi tới độ sau tiếp theo trong khi DFS khai thác các nút có độ sâu nhất trước khi quay lui tìm kiếm. Với độ sâu cố định (hay gọi là bậc) của một đồ thị con có gốc thì thuật toán BFS rõ ràng phù hợp hơn cho trích xuất các đồ thị con có gốc. Để lựa chọn được độ sâu đồ thị con phù hợp, luận án đã tiến hành thử nghiệm với các độ sâu lần lượt là = 2, = 3 và = 4. Để cân đối giữa độ chính xác và độ phức tạp, luận án lựa chọn độ sâu = 3 để xử lý đồ thị con PSI. 17
- Trong đó, thuật toán 4.1 thực hiện lấy đỉnh gốc 푣, đồ thị 푖 và - bậc của đồ thị con như các giá trị đầu vào và trả về kết quả là đồ thị con 푆 푖, như tại dòng lệnh 5, quá trình thực hiện được xử lý với hàm GetWLSubGraph. Hàm GetWLSubGraph tại thuật toán 4.2, được luận án kế thừa từ nghiên cứu của Annamalai Narayanan và cộng sự [89]. Thuật toán 4.2: GetWLSubGraph (푣, , ) 푣: Đỉnh là gốc của đồ thị con PSI Input: = ( , ) : Đồ thị PSI được sử dụng để trích xuất các đồ thị con : Bậc của các đỉnh lân cận được xem xét để trích xuất đồ thị con PSI ( ) Output: 푠 푣 : Đồ thị con có gốc với bậc quanh đỉnh 푣 ( ) 1 푠 푣 = ∅ //khởi tạo tập đồ thị con có gốc là rỗng 2 If = 0 then ( ) 3 푠 푣 ≔ (푣) 4 else ′ ′ 5 푣 ≔ {푣 |(푣, 푣 ) ∈ } ( ) ′ ′ 6 푣 ≔ { 푊퐿푆푈 푅 푃 (푣 , , − 1)| 푣 ∈ 푣 ( ) ( ) 푠 푣 ≔ 푠 푣 ∪ 푊퐿푆푈 푅 푃 7 ( ) (푣, , − 1) ⊕ 푠표 푡( 푣 ) ( ) 8 Return 푠 푣 Để minh họa cho quá trình xây dựng đồ thị con PSI có gốc, luận án duyệt đồ thị PSI (trong hình 4.1) để tìm một ví dụ đồ thị con có gốc ở đỉnh 11 với độ sâu d bằng 2, kết quả được hiển thị trong bảng 4.1. Bảng 4.1. Một ví dụ sinh đồ thị con PSI có gốc với độ sâu bằng 2 Degree Vertexes d=0 11 d=1 0, 8, 10, 7, 9 d=2 18, 0, 0, 7, 0, 5, 6, 15, 16 Quá trình duyệt được mô tả như sau: tại d = 0 thì chỉ có duy nhất đỉnh 11; tiếp đó tại d = 1 thì sẽ lấy từng đỉnh tại d = 0 để duyệt, khi đó kết quả sẽ có các đỉnh liên kết với đỉnh 11 là {0,8,10,7,9}; tương tự tại d = 2 thì lấy từng đỉnh tại d = 1 để duyệt, như đỉnh {0} thì liên kết với đỉnh {18}, đỉnh {8} liên kết với đỉnh {0}, Cứ tiếp tục cho đến khi duyệt hết các đỉnh tại d = 1 thì sẽ có danh sách các đỉnh ở d = 2. Kết quả đồ thị con PSI có gốc ở đỉnh 11 là một danh sách {11, 0, 8, 10, 7, 9, 18, 0, 0, 7, 0, 5, 6, 15, 16}. Tiếp tục quá trình duyệt toàn bộ đồ thị PSI với các gốc là các đỉnh khác trong đồ thị, khi đó sẽ thu được danh sách các đồ thị con PSI có gốc, như vậy sẽ thấy dữ liệu thu được có dạng như một rừng có nhiều cây (bởi quá trình duyệt sinh đồ thị con đã bỏ đi các chu trình nên đồ thị con sẽ có cấu trúc giống một cây). Sau đó, cần xác định tập đồ thị con PSI có gốc, mà những đồ thị con đó có chứa hành vi trong vòng đời của mã độc IoT botnet. 4.3. Thực nghiệm và đánh giá kết quả 4.3.1. Môi trường thực nghiệm Sử dụng tập dữ liệu và môi trường thực nghiệm đã được trình bày ở mục 1.2 của 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ử. Trong đó sử dụng 70% tập dữ liệu để thực hiện huấn luyện và 30% còn lại để thực hiện kiểm thử. Để giảm thiểu khả năng xảy ra hiện tượng quá khớp trong quá trình thử nghiệm, luận án sử dụng đánh giá chéo (cross- validation) k-fold. Trong luận án sử dụng giá trị k bằng 5, tức là trong bộ dữ liệu huấn luyện sẽ được chia làm năm phần, trong đó bốn phần dùng để huấn luyện và một phần dùng để đánh giá nhằm tìm được các tham số phù hợp nhất cho mô hình huấn luyện. 18
- 4.3.2. Mô hình đánh giá Để đánh giá tính hiệu quả của đặc trưng đồ thị con PSI có gốc 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ị con PSI có gốc vào mô hình đánh giá như hình 4.2. Hình 4.2. Mô hình đánh giá đặc trưng đồ thị con PSI có gốc trong phát hiện mã độc IoT botnet Dữ liệu đầu vào là dữ liệu đồ thị con PSI có gốc, thu được từ quá trình xử lý đồ thị PSI. Trước khi đưa dữ liệu này vào các bước thực thi thì luận án tiến hành xử lý đồ thị con PSI có gốc dựa trên kỹ thuật nhúng các từ (word embedding). Để phù hợp với cách tiếp cận của luận án, luận án sử dụng cách xử lý dựa trên tần số xuất hiện, cụ thể là xét mỗi đồ thị PSI như một văn bản và các đồ thị con PSI có gốc như một từ trong văn bản đó. Thực hiện đếm sự xuất hiện các từ trong mỗi văn bản, khi đó tần số xuất hiện của mỗi đồ thị con có gốc được xem như một đặc trưng. Như vậy có thể thấy vector đại diện của một tập tin thực thi chính là tần số xuất hiện của đồ thị con PSI có gốc trong đồ thị PSI tương ứng của tập tin thực thi đó. Vector này được xem là một mẫu đa biến số và dữ liệu này có thể được biểu diễn ở dạng ma trận với hàng (biểu diễn đồ thị) và cột (biểu diễn đồ thị con có gốc xuất hiện trong tập dữ liệu đồ thị). Luận án thấy rằng ma trận thu được có các đặc trưng với nhiều khoảng giá trị khác nhau nên cần chuẩn hóa để đảm bảo kết quả phân loại, quá trình chuẩn hóa theo công thức (4.1), ở đó tử số là giá trị vector đại diện cho một mẫu trong tập dữ liệu đồ thị con PSI có gốc, còn mẫu số là độ dài vector đó (ở đây là một số thực) tính bằng khoảng cách Euclid. 푛표 푙푖 푒 = (4.1) ∥ ∥2 Tiếp đó, luận án tiếp cận kỹ thuật lựa chọn đặc trưng theo phương pháp Wrapper, tức là đánh giá dựa trên một thuật toán học máy cụ thể để tìm các đặc trưng tối ưu, thuật toán mà luận án sử dụng là SVM tuyến tính (SVM linear) vì SVM tuyến tính hiệu quả tốt trong việc xây dựng một đường phân chia các lớp để chọn các đặc trưng có tầm ảnh hưởng, thứ hai SVM tuyến tính có khả năng tính được độ quan trọng của đặc trưng và thứ ba là SVM tuyến tính tương đối nhanh. Với dữ liệu đặc trưng thu được, luận án lựa không sử dụng các thuật toán học máy phức tạp mà chọn một số thuật toán học máy phổ biến trong bài toán phát hiện mã độc [99] như SVM, Decision Tree, Random Forest, cùng với nhưng thuật toán học máy đơn giản, ít được sử dụng như Bagging và kNN, để chứng tỏ tính mạnh mẽ và hiệu quả của đặc trưng đồ thị con PSI có gốc trong bài toán phát hiện mã độc IoT botnet. 4.3.2. 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ị con PSI có gốc trong phát hiện mã độc IoT botnet, luận án đã thực nghiệm và đưa ra các bảng kết quả 4.2, 4.3 và 4.4. Trong đó, bảng kết quả 4.2 được thực hiện 19
- trên toàn bộ tập dữ liệu, còn hai bảng kết quả 4.3 và 4.4 chỉ thực hiện với các tập tin có kiến trúc ARM và MIPS theo thứ tự. Bảng 4.2. Kết quả của các bộ phân loại với đặc trưng đề xuất Classifier TPR FPR Accuracy AUC F1-score (%) (%) (%) (%) DT 97 0.043 96.3 96.4 97 RF 98 0.03 97.2 97.1 98 SVM 98 0.041 97 96.8 98 Bagging 98 0.04 97.3 97.1 98 kNN 97 0.044 96.8 96.7 98 Hình 4.3. Đường cong ROC của Bagging, RF, DT, kNN và SVM trên tập dữ liệu Bảng 4.3. Kết quả đánh giá phát hiện mã độc với tập dữ liệu kiến trúc ARM Classifier TPR FPR Accuracy AUC F1-score (%) (%) (%) (%) DT 99 0.019 98.3 98.3 98 RF 99 0.01 98.8 98.8 99 SVM 100 0.01 99.3 99.3 99 Bagging 99 0.01 98.8 98.8 99 kNN 98 0.019 97.8 97.8 98 Hình 4.4. Đường cong ROC của Bagging, RF, DT, Hình 4.5. Đường cong ROC của Bagging, RF, DT, kNN và SVM trên tập dữ liệu kiến trúc ARM kNN và SVM trên tập dữ liệu kiến trúc MIPS 20
- Qua các kết quả trên có thể thấy rằng phương pháp đề xuất có tỷ lệ phát hiện cao đối với mỗi bộ phân lớp sử dụng bộ cơ sở dữ liệu kết hợp từ các tập tin đa kiến trúc như trong bảng 4.2. Random Forest đã được chứng minh có kết quả cao hơn so với những bộ phân lớp khác với TPR đạt 98% và các độ đo khác có kết quả khá khả quan. Hơn nữa, AUC của các bộ phân lớp được sử dụng trong các thực nghiệm trên cho thấy các kết quả đều lớn hơn 96%. Giá trị AUC đồng nghĩa với việc hệ thống phát hiện mã độc IoT botnet đem lại kết quả tốt, ở đó bộ phân lớp Random Forest là tốt nhất như thể hiện trong hình 4.3, 4.4 và 4.5. Bảng 4.4. Kết quả đánh giá phát hiện mã độc với tập dữ liệu dựa kiến trúc MIPS Classifier TPR FPR Accuracy AUC F1-score (%) (%) (%) (%) DT 98 0.007 99 98.7 98 RF 99 0.005 99.3 99.1 98 SVM 100 0.007 99.4 99.6 99 Bagging 96 0.011 98.3 97.6 96 kNN 99 0.004 99.4 99.2 99 Bên cạnh đó, luận án cũng thực hiện các độ đo với 2 tập dữ liệu chỉ dựa trên kiến trúc ARM và kiến trúc MIPS, kết quả thể hiện trong bảng 4.3 và 4.4. Bởi vì mỗi tập dữ liệu chỉ chứa các tập tin kiến trúc ARM hoặc MIPS nên bộ phân lớp SVM có kết quả cao hơn những bộ phân lớp khác. SVM đạt tỷ lệ dương tính đúng ở mức 100% ở cả hai tập dữ liệu. Như đã đề cập ở phía trước, độ đo precision là tỷ lệ các thể hiện được định danh chính xác từ tất cả các dữ liệu. Nói cách khác, độ đo precision cho biết khả năng một bộ phân lớp trong dự đoán các thể hiện mã độc. Trong khi đó, độ đo F-score được tính toán từ Precision, do đó, bộ phân lớp RF và SVM đã đạt độ đo F-score lớn hơn 98%, nghĩa là các bộ phân lớp này dự đoán các thể hiện mã độc khả quan. Kết quả thực nghiệm được hiển thị trong bảng 4.5 cho thời gian xử lý khi sử dụng trích chọn đặc trưng và không trích chọn đặc trưng có sự khác biệt lớn. Khi sử dụng toàn bộ 530,155 đặc trưng thì thời gian xử lý là 9305,2 giây; trong khi đó với việc lựa chọn đặc trưng thì thời gian xử lý giảm xuống còn 69,18 giây đối với bộ phân lớp RF. Tuy nhiên, các bộ phân lớp khác cũng cho thấy thời gian xử lý giảm khi sử dụng lựa chọn đặc trưng. Do đó, thời gian xử lý của các bộ phân lớp tỷ lệ thuận với kích thước dữ liệu đặc trưng. Bảng 4.5. So sánh thời gian xử lý Classifier Processing Time (second) Processing time with feature selection DT 1.84 RF 69.18 Bagging 144.64 kNN 12.83 SVM 237.78 Processing time without feature selection DT 18.49 RF 9305.21 Bagging 5225.02 kNN 19.60 SVM 1705.33 Bên cạnh đó, luận án cũng so sánh phương pháp đề xuất với phương pháp của Hamed HaddadPajouh và cộng sự [14] khi sử dụng các chuỗi Opcode là đặc trưng. Có 2 lý do chính để luận án lựa chọn để so sánh là: thứ nhất là, sử dụng hướng tiếp cận đặc trưng tĩnh với các tập tin thực thi IoT; thứ hai là, đánh giá thực nghiệm sử dụng học máy. 21
- Bảng 4.6. So sánh độ chính xác của các bộ phân lớp học máy truyền thống trong phát hiện IoT botnet Accuracy (%) Classifier Proposed method Hamed et al. [14] Random Forest 98.8 92.37 SVM 99.3 82.21 kNN 97.8 94 Decision Tree 97.8 92.36 Phương pháp của Hamed và cộng sự thực nghiệm trên tập dữ liệu gồm các mẫu là các tập tin thực thi IoT chỉ có kiến trúc ARM. Do đó, luận án sử dụng kết quả thực nghiệm trên tập dữ liệu ARM, như trình bày ở bảng 4.3. Kết quả cho thấy, phương pháp đề xuất của luận án vượt trội hơn hẳn. Do đó, đặc trưng đồ thị con PSI có gốc có tính hiệu quả trong việc phát hiện mã độc IoT botnet khi sử dụng học máy. Cuối cùng, đánh giá độ phức tạp so với phương pháp sử dụng đặc trưng đồ thị PSI thấy rằng cách tiếp cận dựa trên đặc trưng đồ thị con PSI có gốc có độ phức tạp thấp hơn. Trước hết xét độ phức tạp của phương pháp dựa trên đặc trưng đồ thị PSI thấy rằng quá trình xử lý đồ thị PSI dựa trên Graph2vec, mà trong đó chủ yếu là kỹ thuật học sâu skipgram. Xét mô hình mạng skipgram trong xử lý dữ liệu với kỹ thuật nhúng như hình 4.6. Độ phức tạp của skipgram phụ thuộc vào tích của số epoch, số iteration (là số lan truyền ngược thực hiện để cập nhật trọng số) và độ phức tạp trong một iteration. Xem thuật toán xử lý của Graph2vec tại thuật toán 3 trong luận án này và quá trình xử lý chi tiết được luận án kề thừa từ nghiên cứu của Annamalai Narayanan và cộng sự [40], thấy rằng: - Trong một iteration: độ phức tạp phụ thuộc vào số phép tính được thực hiện, quan sát mô hình mạng ở hình 4.6 có thể thấy độ phức tạp phụ thuộc vào bước tính lớp ẩn và 푒 và cập nhật các trọng số 푊푖푛 푡, 푊표 푡 푡 + Tính lớp ẩn và trọng số 푊푖푛 푡 chỉ phụ thuộc vào hàng thứ V của trọng số 푊푖푛 푡 nên độ phức tạp sẽ là ( ) + Cập nhật 푊표 푡 푡 cũng chỉ cập nhật K+1 cột của 푊표 푡 푡 nên độ phức tạp là ( ∗ (퐾 + 1)) + Tính 푒 phụ thuộc vào phép nhân ma trận 푊표 푡 푡 (có độ phức tạp là ( ∗ (퐾 + 1) vì kỹ thuật negative sampling chỉ cập nhật (퐾 + 1) cột của 푊표 푡 푡) và tính softmax (có độ phức tạp là ( )). Như vậy, độ phức tạp bằng max( ∗ (퐾 + 1), ), tức là ( ∗ (퐾 + 1)) Suy ra độ phức tạp một interation phụ thuộc max ( , ∗ (퐾 + 1)), tức là ( ∗ (퐾 + 1)) - Số iteration do Graph2vec sử dụng kỹ thuật SGD (Stochastic gradient descent) nên sẽ phụ thuộc vào số mẫu cần huấn luyến, vì thế S = {graph_id, )}, trong đó sampled_word được lấy ngẫu nhiên từ một cửa sổ trong đồ thị đó. Trong nghiên cứu này, luận án có tập từ vựng đồ thị con có gốc khá lớn (khoảng 500.000), vì thế kích thước |S| có thể đạt tới hàng triệu bậc hoặc thậm chí lớn hơn. Tiến trình này diễn ra nhiều lần để cập nhật lại trọng số. Mỗi lần chạy sẽ có độ phức tạp là ( ∗ (퐾 + 1) ∗ |푆|). - Số epoch: là giá trị siêu tham số được thiết lập Như vậy độ phức tạp của phương pháp luận án đề xuất dựa trên đặc trưng đồ thị PSI là 푒 ∗ | | ∗ | | ∗ max ( , ∗ |푆| ∗ ∗ (퐾 + 1)), tức là (푒 ∗ | | ∗ | | ∗ ∗ |푆| ∗ ∗ (퐾 + 1) 22
- Hình 4.6. Cấu trúc mô hình Skipgram với trường hợp từ trung tâm là “passes” [114] Trong khi đó, xét độ phức tạp sinh đặc trưng đồ thị PSI rooted-subgraph tại thuật toán 4.1 và 4.2 thì trong trường hợp xấu nhất sẽ phải duyệt hết tất cả các các đỉnh hàng xóm của một đỉnh trong đồ thị PSI. Cụ thể, tại dòng lệnh thứ 4 của thuật toán 4.1 có thể thấy độ phức tạp sẽ là ( ), trong đó D là bậc của đồ thị con PSI và là số lượng hàng xóm tối đa của đỉnh gốc trong đồ thị con PSI (bởi đây là một thuật toán vét cạn, sẽ xét tất cả các đỉnh kề đỉnh gốc cho đến khi đạt được cây có độ sâu D). Bên cạnh đó cần xét đến độ phức tạp của quá trình xử lý dữ liệu đồ thị con PSI có gốc tại bước vector hóa, với đầu ra sau khi thực hiện vector hóa là ma trận thưa nên độ phức tạp chỉ phụ thuộc vào kích thước đầu vào, cụ thể là (| | ∗ 푅), trong đó G là tập đồ thị PSI và R là số lượng đồ thị con PSI có gốc lớn nhất trong toàn bộ các đồ thị. Như vậy, độ phức tạp của phương pháp đề xuất đặc trưng đồ thị con PSI có gốc bằng ( | | ∗ | | ∗ | | ∗ ), | | ∗ 푅), tức là (| | ∗ | | ∗ | | ∗ ). So sánh với độ phức tạp trên thì thấy rằng độ phức tạp của phương pháp dựa trên đặc trưng đồ thị con PSI có gốc đơn giản hơn so với phương pháp dựa trên đặc trưng đồ thị PSI. Kết luận Chương 4: Luận án đã trình bày một phương pháp mới dựa trên đồ thị con PSI có gốc trong phát hiện mã độc IoT botnet, phương pháp này trích xuất các đặc trưng mới từ đồ thị PSI của các tập tin ELF. Những đặc trưng này được áp dụng vào các bộ phân loại trong học máy như một bộ phát hiện mã độc đều đạt độ chính xác trên 97% và bộ phân lớp Random Forest đã được chứng minh là có kết quả tốt hơn những bộ phân lớp khác. Thêm vào đó, khi so sánh với những phương pháp đã có, kết quả thực nghiệm cũng cho thấy phương pháp đề xuất của luận án hiệu quả hơn. Những đóng góp của chương 4: Dựa trên đồ thị PSI, luận án đã đề xuất phương pháp khai phá đồ thị PSI để trích xuất đặc trưng mới hiệu quả trong phát hiện mã độc IoT botnet, gọi là đặc trưng đồ thị con PSI có gốc. 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 [B2], [B8] trong danh mục các công trình của tác giả). KẾT LUẬN VÀ KIẾN NGHỊ 1) Những kết quả chính của luận án: Nội dung của luận án đã tập trung nghiên cứu phương pháp phát hiện mã độc IoT botnet. Qua quá trình học tập, nghiên cứu thực hiện luận án, các kết quả chính đạt được như sau: Đóng góp 1: Thực nghiệm, phân tích và đánh giá các phương pháp phát hiện mã độc IoT hiện nay với cùng bộ cơ sở dữ liệu lớn các tập tin thực thi trên IoT (gồm mã độc và lành tính), trong đó có các mẫu mã độc 23
- thực tế, quá trình thực nghiệm các phương pháp đó thực hiện trên cùng một cấu hình hệ thống. Kết quả đạt được góp phần đem lại một đánh giá tổng quan về các phương pháp dựa trên phân tích tĩnh trong phát hiện mã độc IoT hiện nay, từ đó, các nhà nghiên cứu có thể lựa chọn hướng tiếp cận phù hợp cho bài toán phát hiện mã độc IoT nói chung và IoT botnet nói riêng. Đóng góp 2: Luận án đề xuất được một đặc trưng mới, gọi là đồ thị PSI (Printable String Information) có thể mô phỏng quá trình lây nhiễm của mã độc IoT botnet. Phương pháp đề xuất có độ phức tạp thấp nhưng vẫn đảm bảo độ chính xác cao trong phát hiện mã độc IoT botnet. Đóng góp 3: Luận án đề xuất cải tiến phương pháp phát hiện mã độc IoT botnet dựa trên đồ thị PSI bằng đặc trưng mới, gọi là đồ thị con có gốc PSI (PSI-rooted subgraph), đặc trưng đồ thị con PSI có gốc đã chứng minh được tính hiệu quả trong phát hiện mã độc IoT botnet. 2) Hướng phát triển tương lai của luận án: - Phương pháp đề xuất của luận án hiện đang thử nghiệm với mã độc IoT botnet, trong khi đó còn những loại mã độc IoT khác như Trojan, Worm. Trong tương lai, cần tiếp tục thử nghiệm phương pháp đề xuất của luận án với nhiều loại mã độc IoT khác. - Quá trình trích xuất các đặc trưng động là phức tạp và tốn kém thời gian nhưng có khả năng giải quyết hạn chế của phân tích tĩnh. Do đó, nghiên cứu tương lai của luận án đó là kết hợp giữa phân tích tĩnh và phân tích động cải tiến khai phá đặc trưng đồ thị PSI trong phát hiện mã độc IoT. - Quá trình duyệt đồ thị con PSI có gốc vẫn còn phức tạp, nghiên cứu tương lai có thể tiếp cận hướng khai phá thuật toán học tăng cường (Reinforcement Learning) để tăng khả năng xác định các hành vi độc hại của mã độc IoT botnet, từ đó việc duyệt đồ thị con PSI có gốc sẽ có độ phức tạp thấp. Hướng tiếp cận này đã được NCS nghiên cứu, thực nghiệm và công bố kết quả tại công trình [B9]. - Luận án đã sử dụng một tập dữ liệu với số lượng mẫu phù hợp để tiến hành thực nghiệm, đánh giá nhưng các thực nghiệm tương lai có thể thực hiện với tập dữ liệu lớn hơn. Kết quả với tập dữ liệu lớn hơn sẽ tăng độ tin cậy của phương pháp đề xuất của luận án. - Kết hợp với những đặc trưng phi cấu trúc đồ thị: luận án tiếp cận theo hướng sử dụng các đặc trưng vector được chuyển đổi từ đặc trưng đồ thị PSI nên có thể dễ dàng kết hợp với các đặc trưng vector khác (ví dụ như nối chuỗi vector). Mô hình ứng dụng thực tế của phương pháp phát hiện IoT botnet sử dụng đặc trưng đồ thị PSI 24
- Danh mục các công trình của tác giả Bài báo đăng trên Tạp chí khoa học [B1]. Huy-Trung Nguyen, Quoc-Dung Ngo, and Van-Hoang Le. "A novel graph- based approach for IoT botnet detection." International Journal of Information Security, Vol. 19, pp. 567-577, 2020. (SCIE index, Q2). ISSN: 1615-5262 (Print) 1615-5270 (Online) DOI: 10.1007/s10207-019-00475-6 [B2]. Huy-Trung Nguyen, Quoc-Dung Ngo, Doan-Hieu Nguyen, and Van-Hoang Le. "PSI-rooted subgraph: A novel feature for IoT botnet detection using classifier algorithms.", ICT Express Journal, 6(2), pp. 128-138, 2020. (ESCI/SCOPUS index, Q1), ISSN: 2405-9595 DOI: 10.1016/j.icte.2019.12.001 [B3]. Quoc-Dung Ngo, Huy-Trung Nguyen, Van-Hoang Le, Doan-Hieu Nguyen, “A survey of IoT malware and detection methods based on static features”, ICT Express Journal, In press, 2020. (ESCI/SCOPUS index, Q1), ISSN: 2405-9595 DOI: 10.1016/j.icte.2020.04.005 Bài báo đăng trên Kỷ yếu Hội thảo [B4]. Nguyễn Huy Trung, Ngô Quốc Dũng, Nguyễn Anh Quỳnh, Trần Nghi Phú, Nguyễn Ngọc Toàn, Nguyễn Mạnh Sơn. “Phát triển phương pháp lai trong phát hiện mã độc Botnet trên thiết bị định tuyến”, Hội thảo quốc gia lần thứ XX: Một số vấn đề chọn lọc của Công nghệ thông tin và truyền thông, Quy Nhơn, 23- 24/11/2017. [B5]. Sử Ngọc Anh, Lê Hải Việt, Nguyễn Huy Trung, Ngô Quốc Dũng, “Xây dựng mô hình thu thập phát hiện tấn công mạng sử dụng thiết bị IoT”, Hội thảo quốc gia lần thứ II: Một số vấn đề chọn lọc về an toàn an ninh thông tin, 2017.
- [B6]. Sử Ngọc Anh, Nguyễn Huy Trung, Nguyễn Anh Quỳnh, Phạm Văn Huấn. “Phát hiện mã độc IoT botnet”, Hội thảo quốc gia lần thứ III: Một số vấn đề chọn lọc về an toàn an ninh thông tin, Đà Nẵng, 12/2018. (Kỷ yếu Hội thảo được xuất bản trên Tạp chí Thông tin và Truyền thông, ISSN 1859-3550, trang 89-94, 2018) [B7]. Huy-Trung Nguyen, Quoc-Dung Ngo, and Van-Hoang Le. "IoT Botnet Detection Approach Based on PSI graph and DGCNN classifier." In IEEE International Conference on Information Communication and Signal Processing (ICICSP), pp. 118-122, 2018. (SCOPUS Index) DOI: 10.1109/ICICSP.2018.8549713 [B8]. Huy-Trung Nguyen, Doan-Hieu Nguyen, Quoc-Dung Ngo, Vu-Hai Tran, and Van-Hoang Le. "Towards a rooted subgraph classifier for IoT botnet detection." In Proceedings of the 7th International Conference on Computer and Communications Management, pp. 247-251. 2019. (SCOPUS index) DOI: 10.1145/3348445.3348474 [B9]. Quoc-Dung Ngo, Huy-Trung Nguyen, Hoang-Long Pham, Hoang Hanh- Nhan Ngo, Doan-Hieu Nguyen, Cong-Minh Dinh, Xuan-Hanh Vu “A graph-based approach for IoT botnet detection using Reinforcement Learning”, In: 12th International Conference on Computational Collective Intelligence (ICCCI), DaNang, Vietnam. Lecture Notes in Artificial Intelligence, Springer Cham, pp. 1- 14, 2020. [Accepted]