Phân tích tĩnh

Một phần của tài liệu (LUẬN văn THẠC sĩ) phát hiện sớm mã độc IOT BOTNET trên các thiết bị IOT (Trang 26 - 28)

Phân tích tĩnh là phương pháp phân tích nội dung của mã nguồn mà không cần thực thi các tệp tin để phát hiện các hành vi nghi vấn. Phương pháp phân tích tĩnh cho ph p chi tiết hóa toàn bộ luồng điều khiển (Control Flow Graph – CFG) và luồng dữ liệu (Data Flow Graph – DFG) thông qua các công cụ dịch ngược mã nguồn như IDA Pro, BinDiff để phát hiện mã độc bằng phân tích đặc trưng như mã thực thi (Opcode), lời gọi hàm hệ thống (API calls) hay các chuỗi ký tự có nghĩa trong mã nguồn (Printable Strings Information – PSI). Phương pháp này cho ph p phân tích chi tiết các tệp tin và đưa ra các khả năng kích hoạt của mã độc [26].

Theo hướng tiếp cận này có thể kể đến phương pháp của Costin [27] đã đề xuất một framework để thu thập, lọc, unpack và phân tích tĩnh firmware quy mô rộng từ đó giúp phát hiện lỗ h ng bảo mật, mã độc. Tuy nhiên, nghiên cứu trên chỉ sử dụng các đặc trưng rời rạc mà không đi vào sự tương tác, liên quan giữa các đặc trưng Trong khi đó, mã độc IoT botnet luôn có quy trình hoạt động khá tương đồng nhau và có sự tương tác với nhau [15], [28].

Yan Shoshitaishvili và cộng sự [29] cũng đã đề xuất framework Angr trong bảo mật IoT. Angr có khả năng xử lý, phân tích các firmware thành các đồ thị luồng điều khiển và đồ thị luồng dữ liệu và sử dụng biểu đồ này để tạo ra các lát cắt xác

thực bắt đầu từ entry-point đến các điểm xác thực của chương trình giúp phát hiện mã độc được nhúng hoặc các lỗ h ng trên firmware. Phương pháp này cho ph p chi tiết hóa toàn bộ luồng điều khiển CFG và luồng dữ liệu DFG cho từng tập tin hệ thống trong firmware để từ đó phát hiện mã độc bằng kỹ thuật phân tích đặc trưng (symbolic execution). Tuy nhiên, phương pháp sử dụng Symbolic Execution chỉ phù hợp với việc phân tích các tập tin hệ thống nhỏ, và không khả thi với các tập tin lớn do độ phức tạp cao khi xây dựng các đồ thị liên quan và thực thi Symbolic Execution [27].

Azmoodhe [30] đã đề xuất một phương pháp phát hiện mã độc trên thiết bị IoT cho quân sự bằng học sâu (Internet of battlefield things - IoBT) dựa trên đồ thị mã Opcode. Đầu tiên, họ sử dụng Objdump để trích xuất chuỗi opcode và lựa chọn opcode 2 gram làm đặc trưng đầu vào. Sau đó, Azmoodhe xây dựng đồ thị mã Opcode từ các mã Opcodes đã chọn dựa trên biểu đồ luồng kiểm soát dữ liệu (Control Flow Graph - CFG) cho từng mẫu. Tác giả đã đánh giá phương pháp được đề xuất với tập dữ liệu bao gồm 128 mẫu mã độc và 1078 mẫu lành tính (tất cả các tệp thực thi chạy trên kiến trúc ARM) và có kết quả phát hiện đúng là 99,68%. Điểm hạn chế của đề xuất này là dataset bị giới hạn về số lượng mẫu và vấn đề đa kiến trúc không được xem x t vì kết quả thử nghiệm chỉ đưa ra đánh giá cho tập dữ liệu cho vi xử lý ARM. Bên cạnh đó, các chuỗi opcode có thể bị gián đoạn bởi các biến thể mã đơn giản do các tùy chọn biên dịch khác nhau cho đa kiến trúc vi xử lý trên thiết bị IoT.

Tiếp đó, Haddad Pajouh [31] cũng đề xuất phương pháp phát hiện mã độc IoT Botnet dựa trên học sâu RNN khi phân tích các OpCodes của mã nguồn (t ng quan về mô hình đề xuất như hình 1.5). Trong nghiên cứu này, tác giả chủ yếu phân tích các mẫu mã độc được thực thi trên phần cứng sử dụng bộ vi xử lý ARM. Sau đó, tác giả đánh giá hiệu suất của phương pháp đưa ra với các bộ phân loại học máy thông thường như SVM, KNN, Nave Bayes, Decision Tree, Random Forest, Ada- Boost và phương pháp đề xuất đã cho kết quả phát hiện tốt. Tuy nhiên, phương pháp của Haddad Pajouh phụ thuộc rất nhiều vào khả năng dịch ngược mã nguồn và

trích xuất chuỗi Opcode từ tệp tin ELF. Hơn nữa, phương pháp đề xuất chỉ thử nghiệm đánh giá chủ yếu trên các thiết bị sử dụng vi xử lý ARM, do đó không đáp ứng được yêu cầu thực nghiệm trên đa nền tảng kiến trúc vi xử lý.

H nh 3. Mô hình phát hiện IoT Botnet của Haddad Pajouh [31]

Với những nghiên cứu được khảo sát ở trên đã cho thấy, phân tích tĩnh đem lại kết quả khả quan trong bảo mật IoT nói chung và phát hiện mã độc IoT nói riêng. Tuy nhiên, phân tích tĩnh vẫn tồn tại nhiều hạn chế cho việc phân tích, phát hiện mã độc IoT Botnet như: Khó áp dụng đối với mã độc sử dụng kỹ thuật gây rối (obfuscation) hoặc đóng gói (pack) phức tạp do hạn chế của công cụ Unpack và Debug; Khó thu thập mẫu mã độc do mã độc chỉ lưu trữ trên RAM thiết bị, và biến mất khi khởi động lại thiết bị; Kết quả dịch ngược có thể không chính xác do các tùy chọn biên dịch khác nhau của công cụ dịch ngược đối với các nền tảng CPU đa dạng của các thiết bị IoT. Vì vậy, với bài toán phát hiện mã độc IoT Botnet trên các thiết bị IoT hiện nay, hướng tiếp cận dựa trên phân tích tĩnh trở nên khó thực hiện.

Một phần của tài liệu (LUẬN văn THẠC sĩ) phát hiện sớm mã độc IOT BOTNET trên các thiết bị IOT (Trang 26 - 28)

Tải bản đầy đủ (PDF)

(75 trang)