Thu thập dữ liệu

Một phần của tài liệu Nghiên cứu xây dựng hệ thống VSandbox trong phân tích và phát hiện mã độc IoT Botnet. (Trang 38 - 45)

6. Bố cục của luận án

1.3. Quy trình phát hiện mã độc IoT Botnet

1.3.2. Thu thập dữ liệu

Trong tồn bộ quy trình phát hiện mã độc, thu thập dữ liệu là bước quan trọng, ảnh hưởng lớn tới khả năng và độ chính xác của phương pháp/mơ hình đề xuất. Dữ liệu thu thập được phải mơ tả đầy đủ nhất về chức năng, mục đích của mã độc. Trên cơ sở này, các phương pháp tiền xử lý dữ liệu và phân tích dữ liệu được áp dụng để phát hiện chính xác các hành vi độc hại của mã độc. Cách thức thu thập dữ liệu là điểm khác biệt cơ bản giữa q trình phân tích tĩnh và phân tích động trong bài tốn phát hiện mã độc (như trong Hình 1.6).

Đối với quy trình phát hiện mã độc IoT Botnet mà nghiên cứu sinh lựa chọn (phân tích động), loại dữ liệu cần thu thập là dữ liệu động. Trong phát hiện mã độc nĩi chung, dữ liệu động là các dữ liệu được phát sinh trong quá trình mẫu mã độc thực thi. Các dữ liệu này chính là các tương tác của tệp thực thi đối với mơi trường xung quanh. Cụ thể, theo kết

quả khảo sát, cĩ 3 nhĩm dữ liệu động chính được thu thập bao gồm: Gĩi tin gửi và nhận trong hệ thống mạng [32–35]; Lời gọi hệ thống được mã độc kích hoạt [36, 37]; Các tương tác với tài nguyên của thiết bị mục tiêu [38]. Tĩm tắt về việc sử dụng các nhĩm dữ liệu này được trình bày tại Bảng 1.3.

Trong bài tốn phát hiện mã độc IoT Botnet, các nhà nghiên cứu đã sử dụng các loại dữ liệu động khác nhau để phân tích phát hiện. Các nghiên cứu này cĩ thể được phân chia thành hai loại chính gồm: phát hiện dựa trên dữ liệu từ luồng mạng (NIDS) và phát hiện dựa trên dữ liệu từ máy chủ (HIDS). Cụ thể:

- Tác giả Rohan Doshi và các cộng sự [32] trình bày mơ hình NIDS phát hiện các cuộc tấn cơng từ chối dịch vụ phân tán (DDoS) của mã độc IoT Botnet trong luồng mạng giữa các thiết bị IoT với các thuật tốn học máy phở biến như KNN, SVM, DT, RF. Mơ hình Rohan Doshi đề xuất cĩ độ chính xác trên tập thực nghiệm là ACC = 98%. Tác giả này đề xuất sử dụng các đặc trưng được trích xuất từ luồng mạng như: Packet size, Inter- packet Interval, Protocol, Bandwidth, IP destination address,…

- Tác giả Lê Kim Hùng và các cộng sự [40] trình bày mơ hình NIDS phát hiện các cuộc tấn cơng hướng tới các thiết bị IoT được đặt tên là IMIDS, sử dụng mạng neural tích chập (CNN) để phân loại các gĩi tin độc hại. Để thử nghiệm, tác giả sử dụng bộ dữ liệu các gĩi tin luồng mạng UNSW-NB15 [41] và CICIDS2017 [42] cho kết quả phát hiện tấn cơng mạng với độ chính xác trên 95%. Tuy nhiên, khả năng phân loại kiểu tấn cơng của mơ hình đề xuất chưa thực sự hiệu quả, cịn nhầm lẫn giữa các hình thức tấn cơng cơ bản như Backdoor với DDoS.

- Tác giả Alrashdi và các cộng sự [33] đề xuất sử dụng các đặc trưng từ bộ dữ liệu UNSW-NB15 [41] để xây dựng NIDS phát hiện hiệu quả mạng lưới IoT Botnet lây nhiễm trong các thiết bị tại thành phố thơng minh (Smart City). Tác giả đã áp dụng thuật tốn học máy Random Forest với 12 đặc trưng được lựa chọn từ UNSW-NB15 dataset cho kết quả phát hiện mã độc IoT Botnet cĩ độ chính xác ACC = 99,34%. Các đặc trưng trích xuất từ dữ liệu luồng mạng được tác giả lựa chọn gồm: srcip, dstip, dur, dsport, ct- dst-src-ltm, ct- rsv-dst, ct-dst-ltm, ct-srcltm, ct-src-dport-ltm, dbytes, proto, is-ftp-login.

- Tác giả Prokofiev và các cộng sự [34] đã xây dựng mơ hình NIDS sử dụng thuật tốn học máy Logistic Regression để phát hiện mã độc IoT Botnet với độ chính xác ACC = 97,3%. Các đặc trưng từ luồng mạng được Prokofiev lựa chọn bao gồm: destination port,

source ports, number of requests, even number of requests, mean interval between requests, requests on other ports, mean size of packets, delta for packet size, mean entropy of packets, alphanumeric.

- Tác giả Wu và các cộng sự [35] đề xuất mơ hình học máy phát hiện mã độc IoT Botnet (cĩ ACC = 90%) với các đặc trưng được trích xuất từ chuỗi các lệnh điều khiển của C&C Server cĩ thể đọc hiểu trong các gĩi tin mạng. Các chuỗi lệnh này được thu thập thơng qua hệ thống Honeypot IoTPOT [43] dưới phương thức giám sát các cởng điều khiển từ xa như Telnet, SSH,…

- Tác giả Breitenbacher và các cộng sự [36] trình bày mơ hình HIDS phục vụ phát hiện mã độc IoT Botnet dựa trên các đặc trưng từ lời gọi hệ thống. Các đặc trưng mà Hades- IoT IDS sử dụng bao gồm tên lời gọi, địa chỉ thanh nhớ và tham số của các lời gọi hệ thống.

- Tác giả Massimo Ficco và các cộng sự [37] tiến thành thu thập các chuỗi lời gọi hệ thống để phục vụ xây dựng mơ hình học máy phát hiện mã độc IoT Botnet với chuỗi Markov. Mơ hình tác giả đề xuất cĩ độ chính xác là 89%.

- Tác giả Amin Azmoodeh và các cộng sự [38] đề xuất sử dụng mơ hình học máy phát hiện mã độc IoT Botnet dựa trên dữ liệu giám sát tiêu thụ điện năng của các thiết bị IoT. Thuật tốn KNN được áp dụng cho xây dựng mơ hình phát hiện với độ chính xác 95,65%.

- Tương tự, tác giả Woosub Jung và cộng sự [44] cũng trình bày mơ hình phát hiện mã độc IoT Botnet dựa trên dữ liệu giám sát điện năng tiêu thụ của thiết bị. Tác giả thu thập dữ liệu tiêu thụ điện năng thơng qua việc sử dụng thiết bị giám sát điện năng Monsoon để theo dõi máy tính nhúng Raspberry Pi. Thuật tốn học sâu CNN được áp dụng với độ chính xác 96,5%.

- Tác giả Shabtai và cộng sự [45] đã trình bày phương pháp phát hiện mã độc dựa trên các dữ liệu sử dụng tài nguyên hệ thống bao gồm: mức chiếm dụng bộ vi xử lý CPU, số tiến trình đang chạy trong hệ thống, mức tiêu hao nguồn năng lượng của thiết bị, dung lượng bộ nhớ RAM được yêu cầu, các thay đởi về tệp và thư mục trong hệ thống, biến động giá trị các thanh ghi (registers) CPU,… Mơ hình tác giả đề xuất cĩ độ chính xác 91,22% với bộ phân loại dựa trên thuật tốn học máy Nạve Bayes.

Bảng 1.3 Các nguồn dữ liệu động được thu thập cho phát hiện mã độc IoT Botnet thập cho phát hiện mã độc IoT Botnet

Tác giả Dữ liệu động được thu thập Thuật tốn học máy áp dụng Độ chính xác (ACC) Bộ dữ liệu thử nghiệm Doshi [32] Luồng mạng

Random Forest 99,80% Tự thu thập

Alrashdi [33] Random Forest 99,34% UNSW-NB15

Prokofiev [34] Logistic Regression 97,30% Tự thu thập

Wu [35] N-gram 90% IoTPOT

Breitenbacher [36]

Lời gọi hệ thống

Rule-base ≈100% Tự thu thập

Ficco [37] Markov chain

behavioral model

89% Tự thu thập Azmoodeh [38] Thơng tin chiếm

dụng tài nguyên của thiết bị mục

tiêu

KNN 95,65% Tự thu thập

Jung [44] CNN 90% Tự thu thập

Shabtai [45] Nạve Bayes 91,22% Tự thu thập

Từ các nội dung đã khảo sát cho thấy, các nghiên cứu về phát hiện mã độc IoT Botnet trên thế giới tập trung vào thu thập ba loại dữ liệu động chính gồm: lời gọi hệ thống (system calls), các gĩi tin được trao đởi qua mạng (network traffic) và thơng tin chiếm dụng tài nguyên của thiết bị mục tiêu (host performance). Các dữ liệu động này cĩ thể được thu thập thơng qua việc giám sát mơi trường thực thi mã độc. Mơi trường thực thi này cĩ thể là mơi trường thực tế được xây dựng dựa trên nền tảng hạ tầng phần cứng thật như giải pháp Honeypot (tiêu biểu như IoTPOT [43]) hay sử dụng các thiết bị đo chuyên dụng tích hợp với thiết bị mơ phỏng hoạt động thiết bị IoT [44]. Bên cạnh đĩ, để phịng tránh tác động của mã độc tới thiết bị thật (như trong Honeypot), mơi trường ảo hĩa được xây dựng để giám sát các hoạt động của mã độc. Các giải pháp này thường được biết đến với những cái tên như Cuckoo Sandbox [46], CWSandbox [47], IoTBOX [43], REMnux [48]… Phân tích về các đặc điểm, ưu điểm và nhược điểm của các IoT Sandbox đã được cơng bố được trình bày trong nội dung dưới đây (tĩm lược được trình bày trong Bảng 1.4):

Oktavianto [49] đã phát triển Cuckoo Sandbox, hệ thống phân tích động mã độc IoT bao gồm hai thành phần chính: Cuckoo host, quản lý tác vụ và phân tích đầu vào mẫu; Analysis VM là một máy ảo riêng biệt, nơi mẫu được thực thi và gửi kết quả phân tích trở lại Cuckoo Host. Kiến trúc của Cuckoo Sandbox được mơ tả trong Hình 1.7. Phân tích được

thực hiện tự động bằng cách sử dụng các tập lệnh dựng sẵn mà Cuckoo Host yêu cầu thực hiện trong q trình phân tích ứng dụng đích. Ngồi ra, Cuckoo hỗ trợ phân tích URL trong máy khách, thêm khả năng xác định xem trang web đang truy cập cĩ độc hại hay khơng. Cuckoo phụ thuộc nhiều vào sự hỗ trợ của ngơn ngữ Python và một số ứng dụng Python cần thiết để chạy Cuckoo đúng cách (Magic, Pydeep, Yara, Pefile). Do đĩ, sử dụng Cuckoo với các mơi trường khơng hỗ trợ đầy đủ Python sẽ gặp một vài khĩ khăn. Cuckoo Sandbox cho phân tích kết quả tốt cho kiến trúc i386. Để phân tích IoT Botnet, Cuckoo Sandbox cho thấy khả năng hạn chế với các kiến trúc khác ngồi i386. Liu [50] đã sử dụng Cuckoo Sandbox thực hiện phân tích động để trích xuất các hành vi máy chủ và hành vi mạng của các mẫu IoT Botnet (Mirai, Satori, OMG và Wicky). Tuy nhiên, kết quả trích xuất từ Cuckoo Sandbox chủ yếu thu được các hành vi mạng.

Hình 1.7 Kiến trúc cơ bản của Cuckoo Sandbox [49]

Yin [43] đã đề xuất một IoT honeypot (IoTPot) và IoT Sandbox (IoTBox), thu hút và phân tích các cuộc tấn cơng vào dịch vụ Telnet của các thiết bị IoT trên 8 kiến trúc CPU khác nhau như MIPS, MIPSEL, PowerPC, SPARC, ARM, MIPS64, SH4 và x86. Kiến trúc của IoTBox được hiển thị trong Hình 5. Yin đã sử dụng QEMU để xây dựng các mơi trường mơ phỏng cho các kiến trúc CPU khác nhau. Ngồi ra, một nền tảng hệ điều hành OpenWrt được chỉnh sửa tương ứng để chạy trên mơi trường CPU được mơ phỏng. Sau đĩ, sử dụng Virtual Switch và Access Controller để tạo mơi trường mạng ảo. Thơng qua mơi trường

mạng ảo này, IoTBox cĩ thể thu thập lưu lượng mạng được tạo bởi các mẫu. IoTBox phân tích 52 mẫu mã độc được chọn của ARM, MIPS và MIPSEL. Mặc dù kiến trúc hộp cát được đề xuất để chạy trên nhiều nền tảng CPU, nhưng trên thực tế, tác giả chỉ chạy 52 mẫu trên 3 nền tảng CPU, trong đĩ cĩ 5 mẫu khơng chạy được (do thiếu thư viện). Ngồi ra, IoTBox chỉ tập trung vào giám sát hành vi mạng, các hành vi cịn lại (lời gọi hệ thống, tạo tệp và thư mục,…) khơng được đề cập.

Hình 1.8 Kiến trúc của IoTBox [43]

Uhricek [51] đã chỉ ra những hạn chế của IoT Sandbox như Limon [52], REMnux [48], Detux, Padawan [53] bao gồm hỗ trợ ít kiến trúc CPU, thu thập thơng tin khơng đầy đủ,… Đĩ là động lực để Daniel Uhricek giới thiệu Linux Sandbox LiSa [51], hỗ trợ phân tích mã độc Linux trên các kiến trúc MIPS, ARM, Intel 80386, x86-64, AArch64. Bằng cách theo dõi các hành vi như lời gọi hệ thống, mở hoặc xĩa tệp, tạo tiến trình, luồng mạng của 150 mẫu botnet IoT (chủ yếu cho các kiến trúc ARM và MIPS), Uhricek chứng minh tính hiệu quả của LiSa. LiSa sử dụng SystemTap để thu thập thơng tin hệ thống để tạo cây tiến trình, theo dõi và đánh dấu các tệp đang mở hoặc bị xĩa. Để thu thập dữ liệu mạng, Uhricek sử dụng các thư viện Scacco và dpkt. Tuy nhiên, vai trị quan trọng của máy chủ C&C để thể hiện đầy đủ hành vi của IoT Botnet khơng được Uhricek quan tâm. Do đĩ, các hành vi của các mẫu IoT botnet được thu thập từ LiSa là khơng đầy đủ. Ngồi ra, các mẫu

yêu cầu thư viện liên kết động (dynamically linked libraries) trên LiSa thường chạy khơng thành cơng do thiếu các thư viện thích hợp.

Trong Bảng 1.4, luận án tĩm tắt chức năng của các IoT Sandbox kể trên. Từ đĩ, luận án chỉ ra các hạn chế chính của các IoT Sandbox này (được minh họa trong Bảng 1.5) bao gồm:

1) Nguồn dữ liệu động phở biến (luồng mạng, lời gọi hệ thống, thơng tin tương tác với tài nguyên thiết bị) khơng được thu thập đầy đủ trong thời gian chạy tệp thực thi;

2) Chưa cung cấp đầy đủ các thành phần cần thiết cho mã độc thể hiện đầy đủ hành vi độc hại như: kết nối và giao tiếp với máy chủ C&C (Command-and-Control server), các thư viện liên kết động (Shared libraries) phù hợp..

Do đĩ, nghiên cứu sinh sẽ xây dựng một IoT Sandbox hiệu quả để giải quyết những nhược điểm này. Phương pháp xây dựng IoT Sandbox đề xuất được trình bày chi tiết trong nội dung Chương 2 của luận án.

Bảng 1.4 Tĩm tắt chức năng các IoT Sandbox

Sandbox Dữ liệu thu thập Hỡ trợ OS Hỡ trợ CPU

Hỡ trợ thư viện liên kết động Dựa trên trình mơ phỏng Cuckoo [49]

System call, File actions, Memory dumps, Network traffic, Screenshots Windows, Linux, Android i386, x86-64, PowerPC, SPARC, ARM, MIPS, MIPSEL Khơng Virtual Box, KVM, VMware IoTBOX [43] Network traffic Linux, OpenWrt MIPS, MIPSEL, ARM Khơng QEMU, OpenWrt Limon [52] Process, File system, Network, Systemcall

Linux i386, x86-64 Khơng VMware REMnux

[48] Syscalls Ubuntu i386, x86-64 Khơng VMware

Detux [54] Network traffic Linux

i386, x86-64, ARM, MIPS,

Sandbox Dữ liệu thu thập Hỡ trợ OS Hỡ trợ CPU Hỡ trợ thư viện liên kết động Dựa trên trình mơ phỏng Padawan [53] Low-level kernel probes and user probes Linux MIPS, ARM, i386, x86-64, SPARC, PPC, Khơng QEMU LiSa [51] Process tree, Trace syscalls, File actions, Network traffic

Linux MIPS, ARM, Intel80386, x86-64, Aarch64

Chưa đầy đủ QEMU

Bảng 1.5 So sánh đặc điểm các IoT Sandbox hiện cĩ

Đặc điểm

IoT Sandbox

Khả năng hỡ trợ Khả năng thu thập dữ liệu động

Tự động sinh báo cáo Đa kiến trúc vi xử Đa hệ điều hành Kết nối tới C&C Server Thư viện liên kết động Luờng mạng Lời gọi hệ thống Tương tác với tệp hệ thống Tương tác tài nguyên thiết bi Cuckoo [49] Y Y N N Y NF Y N Y IoTBOX [43] Y Y N N Y N N N NF Limon [52] N N N N Y Y Y N Y REMnux [48] N N N N N Y N N Y Detux[54] N N N N Y N N N Y Padawan [53] Y Y N N N Y Y N Y LiSa [51] Y Y N NF Y Y Y N Y

(*Ghi chú: Y – Cĩ; N – Khơng; NF – Chưa đầy đủ)

Một phần của tài liệu Nghiên cứu xây dựng hệ thống VSandbox trong phân tích và phát hiện mã độc IoT Botnet. (Trang 38 - 45)

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

(143 trang)
w