Tiền xử lý 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 45 - 54)

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

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

1.3.3. Tiền xử lý dữ liệu

Với những dữ liệu động thu thập được từ các nguồn chủ yếu là luồng mạng, chuỗi lời gọi hệ thống và tương tác với tài nguyên của hệ thống (tệp tin, thư mục, thanh ghi CPU, RAM,…) sẽ cĩ những phương pháp tiền xử lý dữ liệu phù hợp để phân tích và phát hiện mã độc IoT Botnet một cách hiệu quả.

1.3.3.1. Tiền xử lý dữ liệu luồng mạng

Với đặc điểm của mã độc IoT Botnet lây nhiễm và thực hiện hành vi độc hại dựa trên kết nối mạng Internet, nhiều nhà nghiên cứu đã tập trung tìm hiểu và sử dụng dữ liệu luồng mạng để phát hiện loại mã độc này. Đối với những dữ liệu mạng thu thập được (chủ yếu dưới dạng lưu lượng các gĩi tin được chặn bắt lưu trữ dưới dạng tệp pcap), tồn tại hai phương pháp tiền xử lý dữ liệu chính là biến đởi thành các bảng dữ liệu đặc trưng dựa trên đặc điểm tần xuất hoặc tuần tự của dữ liệu mạng. Các bảng dữ liệu đặc

trưng này thường được cơng bố cơng khai phục vụ cơng tác nghiên cứu và phát triển các hệ thống tự động phát hiện xâm nhập dựa trên dữ liệu mạng (NIDS). Tiêu biểu cho những dữ liệu này là các dataset như KDD99 [55], NSL-KDD [56], UNSW-NB15 [41], CSE-CIC-IDS2018 [57] và N-BaIoT [58].

Dataset KDD99 [55] là tập dữ liệu sử dụng để huấn luyện và kiểm tra các NIDS được cơng bố tại Hội nghị quốc tế lần thứ 3 về Cơng cụ khai thác dữ liệu và khai phá dữ liệu (KDDMTC). Bộ dữ liệu này là phiên bản tiền xử lý dữ liệu của tập dữ liệu thơ DARPA (chứa các tệp tin pcap chặn bắt luồng mạng). KDD99 chứa các bản ghi tĩm lược thơng tin luồng mạng được ghi nhận từ mơi trường mạng quân sự với các cuộc tấn cơng được mơ phỏng. Các cuộc tấn cơng được mơ phỏng thuộc bốn kiểu chính gồm: Tấn cơng từ chối dịch vụ; Chiếm quyền điều khiển từ xa; Leo thang đặc quyền; Tấn cơng thăm dị. Bộ dữ liệu KDD99 được trích xuất dựa trên 41 đặc trưng cho mỗi kết nối với sự trợ giúp của cơng cụ Bro-IDS. Các đặc trưng này gồm 4 nhĩm chính theo thứ tự là:

- Nhĩm 1 (các đặc trưng từ 1 đến 9): Các đặc trưng cơ bản của các kết nối TCP riêng lẻ;

- Nhĩm 2 (các đặc trưng từ 10 đến 22): Các đặc trưng nội dung trong kết nối với máy chủ bị tấn cơng;

- Nhĩm 3 (các đặc trưng từ 23 đến 31): Các đặc trưng về lưu lượng truy cập trong khoảng thời gian 2 giây.

- Nhĩm 4 (các đặc trưng từ 32 đến 41): Các đặc trưng về lưu lượng truy cập trong khoảng thời gian lớn hơn 2 giây (thường lên tới 256 giây).

Bộ dữ liệu KDD99 được sử dụng cho nhiều nghiên cứu và ứng dụng thực tế xây dựng NIDS [59–61]. Các nghiên cứu này đa số sử dụng lại 41 đặc trưng được tiền xử lý của bộ dữ liệu KDD99 để xây dựng, phát triển NIDS. Trong đĩ, cĩ một số nghiên cứu lựa chọn một tập con cĩ liên quan từ 41 đặc trưng này để nâng cao hiệu quả phát hiện mã độc. Tuy nhiên, một vài nghiên cứu [62–64] đã chỉ ra những nhược điểm của bộ dữ liệu này, cụ thể bao gồm:

- Phân phối tỉ lệ các mẫu trong bộ huấn luyện và kiểm thử là khơng thống nhất và bị mất cân bằng trong từng bộ con này.

- Bộ dữ liệu đã lỗi thời, khơng đáp ứng với sự phát triển của thiết bị IoT và mã độc IoT Botnet.

- Cĩ các kiểm nghiệm chứng minh rằng tỉ lệ mẫu trong bộ dữ liệu quá lệch dẫn tới kết quả phát hiện lưu lượng bất thường bị sai quá nhiều.

Dataset NSL-KDD [56] là bộ dữ liệu nâng cấp dựa trên KDD99 để khắc phục các nhược điểm của bộ dữ liệu cũ này. Đầu tiên, các bản ghi trùng lặp trong bộ dữ liệu huấn luyện và kiểm thử được loại bỏ. Tác giả điều chỉnh lại phân phối xác suất các mẫu tấn cơng cho cân bằng để đạt hiệu quả phân loại cao hơn. Tuy nhiên, vấn đề chính của bộ dữ liệu dựa trên KDD99 nĩi chung và NSL-KDD nĩi riêng là thiếu cập nhật các kịch bản tấn cơng của mã độc IoT Botnet hiện nay.

Dataset UNSW-NB15 [41] được tạo ra vào năm 2015 bởi Phịng thí nghiệm CyberRange của Trung tâm An ninh mạng Úc (ACCS) với sự trợ giúp của cơng cụ IXIA PerfectStorm. Mục tiêu của nĩ là tạo ra bộ dữ liệu lưu lượng mạng cập nhật các hoạt động bình thường và tấn cơng mạng hiện đại. Trong bộ dữ liệu này tồn tại 9 kiểu tấn cơng mạng gồm: Fuzzers, Analysis, Backdoor, DoS, Exploits, Generic, Reconnaissance, Shellcode và Worm. Các dữ liệu được tiền xử lý từ 100GB lưu lượng mạng dưới dạng tệp pcap được thu bắt với cơng cụ Tcpdump.

Dataset N-BaIoT [58] là bộ dữ liệu luồng mạng phục vụ phát hiện IoT Botnet dựa trên hai mẫu mã độc phở biến là Mirai và Bashlite. Tác giả thực hiện việc kích hoạt hai phiên bản mã độc IoT Botnet kể trên trong mơi trường thí nghiệm với các phần cứng thiết bị IoT thật như IP Camera, chuơng cửa, cảm biến nhiệt độ phịng, Webcam. Sau đĩ, tiến hành thu giữ các luồng gĩi tin truyền qua thiết bị định tuyến khơng dây bằng kỹ thuật Port mirroring kết hợp với phần mềm Wireshark. Các luồng dữ liệu được lưu trữ dưới dạng tệp pcap thơng dụng và đưa vào tiền xử lý. Mỗi một luồng mạng sẽ được trích xuất nhanh với 23 đặc trưng cơ bản cho 5 cửa sở trượt khác nhau (100ms, 500ms, 1.5s, 10s và 60s). Bộ dữ liệu này cĩ số lượng chiều tập đặc trưng sau tiền xử lý là 115 đặc trưng. Tuy nhiên, do cĩ sự lặp lại của 23 đặc trưng cơ bản với 5 khoảng thời gian khác nhau nên dữ liệu phản ánh trong bộ dữ liệu N-BaIoT cĩ sự trùng lặp, dẫn tới thiếu chính xác cho q trình huấn luyện và kiểm thử.

Dataset CSE-CIC-IDS2018 [57] là một bộ dữ liệu được phát triển nhằm thay thế các dataset đã cĩ cho NIDS. Tác giả thực hiện 7 loại tấn cơng phở biến bao gồm: Brute-

force attacks; DoS attacks; Web attacks; Local network infiltration attacks; Botnet attacks; DDoS+PortScan attacks. Với mơi trường mơ phỏng được xây dựng gồm 50 nút mạng với 30 máy chủ và 420 thiết bị đầu cuối. Tác giả đã trích xuất từ dữ liệu luồng mạng được thu thập thành 80 đặc trưng cơ bản với sự trợ giúp của cơng cụ CICFlowMeter-V3. Với việc sử dụng bộ dữ liệu này, nhiều nghiên cứu về xây dựng NIDS phục vụ phát hiện mã độc IoT Botnet nĩi riêng và luồng mạng bất thường nĩi chung đã được cơng bố trong thời gian gần đây [65]–[68]. Điều này đã chứng minh tính hiệu quả của bộ dữ liệu này với cách thức tiền xử lý đưa ra 80 đặc trưng phù hợp. Vì vậy, cách tiền xử lý dữ liệu này sẽ được nghiên cứu sinh lựa chọn áp dụng cho việc tiền xử lý dữ liệu luồng mạng được đề cập trong Chương 4 của luận án.

1.3.3.2. Tiền xử lý dữ liệu lời gọi hệ thống

Lời gọi hệ thống là tham số đầu vào cĩ hiệu quả trong việc phát hiện các loại tấn cơng phân tán trên thiết bị IoT như DoS, DDoS, đánh cắp thơng tin, đánh cắp mật khẩu, quét cởng [69]. Cĩ nhiều nghiên cứu đã mơ tả các phương pháp tiền xử lý dữ liệu lời gọi hệ thống phục vụ cho mơ hình học máy/học sâu phát hiện mã độc nĩi chung. Tuy nhiên, để cĩ cơ sở so sánh với mơ hình đề xuất thì nghiên cứu sinh sẽ tiến hành khảo sát, đánh giá các nghiên cứu cùng sử dụng bộ dữ liệu thử nghiệm (dataset) từ Honeypot IoTPOT [43]. Đây được coi là dataset được sử dụng phở biến trong các nghiên cứu về phát hiện IoT Botnet. Đặc biệt, ngồi việc thu thập được dữ liệu luồng mạng, tác giả cịn thu thập được các mẫu ELF của các IoT Botnet phở biến như Mirai, Bashlite,… Tĩm tắt về nội dung phương pháp và đánh giá của nghiên cứu sinh về các nghiên cứu này được trình bày dưới đây.

Tác giả Alhaidari và cộng sự [70] trình bày phương pháp phát hiện mã độc IoT Botnet dựa trên mơ hình Markov ẩn (Hidden Markov Model – HMM). Tác giả xây dựng thuật tốn tự động lựa chọn lại các đặc trưng đầu vào phù hợp cho mơ hình HMM để tăng khả năng phát hiện chính xác loại mã độc này. Đối với dataset IoTPOT, tác giả lựa chọn 31/41 đặc trưng cĩ sẵn để đánh giá mơ hình HMM với độ chính xác ACC = 94.67%, FPR = 1.88%, TPR = 47.86%, F-measure = 0.5519. Tuy độ chính xác đạt trên 90% nhưng tỉ lệ TPR dưới 50% cho thấy hạn chế của mơ hình HMM tác giả đề xuất. Mơ hình này khơng phát hiện được các mẫu thực sự là mã độc IoT Botnet với tỉ lệ trên 50%. Vì vậy, mơ hình phát hiện mã độc IoT Botnet này chưa thực sự tốt.

Tác giả Alhanahnah và các cộng sự [71] trình bày phương pháp phát hiện mã độc IoT Botnet dựa trên mơ hình phân cụm K-means với các chuỗi ký tự in được (printable string) của mã nguồn tệp đầu vào. Các chuỗi ký tự in được này được trích xuất bằng cách dịch ngược mã nguồn với cơng cụ IDA Pro. Sau đĩ, thuật tốn n-gram được áp dụng với các chuỗi ký tự này để trích xuất đặc trưng tuần tự. Cuối cùng, tác giả áp dụng mơ hình phân cụm K-means để phân cụm các dữ liệu đã cĩ và phân loại dữ liệu mới. Với K = 100 (tham số của K-means) và N = 4 (tham số của n-gram), mơ hình đề xuất cĩ khả năng phát hiện mã độc IoT Botnet với độ chính xác ACC = 85.2%.

Tác giả Karanja và cộng sự [72] trình bày phương pháp phát hiện mã độc IoT Botnet dựa trên các thuật tốn học máy phở biến (KNN, Random Forest, Nạve Bayes) với các đặc trưng được trích xuất từ hình ảnh đa mức xám của tệp nhị phân mã độc. Mỗi tệp nhị phân mã độc được chuyển thành vector 8-bit và lưu trữ dưới dạng mảng hai chiều. Mảng hai chiều này tương tự như một bức ảnh xám đa mức với giá trị điểm ảnh trong khoảng [0,255]. Từ ảnh đa mức xám này, năm giá trị đặc trưng được trích xuất bao gồm Entropy, Contrast, Correlation, ASM và IDM. Phương pháp đề xuất được đánh giá với bộ dữ liệu IoTPOT cho kết quả tốt nhất khi sử dụng thuật tốn Random Forest với các chỉ số ACC = 95.38%, AUC = 0.97, F-measure = 0.95.

Tác giả Meidan và cộng sự [58] đã trình bày phương pháp phát hiện IoT Botnet dựa trên Deep Autoencoder để xử lý dữ liệu hành vi mạng thu thập được. Với mỗi mẫu mã độc, tác giả cho thực thi trực tiếp trên 9 loại thiết bị thật và thu bắt luồng dữ liệu mạng được sinh ra. Từ dữ liệu luồng mạng này, 115 giá trị đặc trưng được trích xuất. Sau đĩ, tác giả sử dụng mạng học sâu Deep Autoencoder để “nén” vector đặc trưng đầu vào. Việc “nén” này nhằm hai mục đích gồm giảm chiều vector và tìm kiếm các ràng buộc với những đặc trưng cĩ độ lợi về thơng tin khi thực hiện phân loại mẫu. Kết quả huấn luyện mạng học sâu này với bộ dataset IoTPOT cho tỉ lệ FPR = 1.7%.

Tác giả Shobana và cộng sự [73] đề xuất sử dụng mạng học sâu hồi quy RNN để phát hiện mã độc IoT Botnet dựa trên dữ liệu lời gọi hệ thống. Các lời gọi hệ thống sau khi được thu thập thơng qua mơi trường máy ảo được tiền xử lý bằng thuật tốn N- gram và TF-IDF (Term Frequencyinverse Document Frequency). Trọng số n=10 được áp dụng cho cả thuật tốn N-gram và TF-IDF để xử lý dữ liệu lời gọi hệ thống. Sau khi thực hiện trích xuất đặc trưng từ lời gọi hệ thống, vector đặc trưng này được đưa vào mạng

RNN để huấn luyện và đánh giá. Sau khi huấn luyện với dataset 5 lần (Epoch=5), mơ hình đề xuất cho kết quả đánh giá ACC=98.71%. Tuy nhiên, do hạn chế của mơi trường máy ảo dùng để thực thi và thu thập lời gọi hệ thống, tác giả mới chỉ sử dụng được 200 mẫu mã độc và 200 mẫu lành tính trong bộ Dataset IoTPOT để đánh giá mơ hình đề xuất.

Tác giả Nguyễn Huy Trung và cộng sự [74] trình bày phương pháp sử dụng kỹ thuật nhúng đồ thị là Subgraph2vec để tiền xử lý đồ thị lời gọi hàm cho các thiết bị IoT phục vụ việc phát hiện IoT Botnet. Tác giả sử dụng phân tích tĩnh mã nguồn của tệp tin thực thi và lựa chọn các lời gọi hàm chứa các ký tự in được (Printable String Information

– PSI) để xây dựng nên đồ thị PSI-graph. Sau đĩ tiến hành trích xuất đồ thị con PSI- Rooted từ đồ thị PSI-graph này để loại bỏ nhiễu. Cuối cùng, tác giả áp dụng kỹ thuật Subgraph2vec để giảm chiều vector đặc trưng của PSI-Rooted graph từ 533564 xuống cịn 140 chiều. Phương pháp đề xuất đã chứng minh tính hiệu quả với các giá trị đo ACC=97%, AUC=0.96. Tuy nhiên, phương pháp xây dựng đồ thị này phụ thuộc hồn tồn vào phân tích tĩnh nên tồn tại các hạn chế như phụ thuộc vào khả năng dịch ngược mã nguồn, thu thập mẫu. Ngồi ra, việc lựa chọn xây dựng đồ thị biểu chỉ từ những hàm cĩ chứa PSI dẫn tới khả năng cĩ thể bỏ sĩt các hàm cĩ tham số được mã hĩa hoặc khơng chứa PSI. Bên cạnh đĩ, việc xây dựng đồ thị con từ PSI-graph theo thuật tốn vét cạn với tất cả các đỉnh và độ sâu d tăng dần sẽ khiến độ phức tạp khi xử lý đồ thị này ngày càng tăng.

Hình 1.10 Đồ thị con PSI-Rooted graph từ đỉnh 11 với độ sâu d=2Bảng 1.6 Các nghiên cứu liên quan sử dụng đồ thị lời gọi hệ thống Bảng 1.6 Các nghiên cứu liên quan sử dụng đồ thị lời gọi hệ thống

Tác giả Kỹ thuật tiền xử lý dữ liệu

Số chiều vector đặc trưng được trích xuất Thuật tốn phân loại áp dụng ACC (%) FPR (%) TPR (%) AUC Alhaidari

[70] Feature pruningmethod 31 HMM 94.67 1.88 47.86 - Alhanahnah

[71] N-gram stringfeatures 400 ClusteringK-means 85.20 - - - Karanja [72] texture featuresHaralick image 20 RF 95.38 - - 0.97 Meidan [58] traffic statisticsExtracting 115 autoencoderDeep - 1.7 - -

Shobana

[73] N-gram, TFIDF 184 RNN 98.31 - - -

Nguyen [74] Subgraph2Vec 140 RF 97.00 - - 0.96

Dựa trên khảo sát các nghiên cứu trên, phương pháp tiền xử lý dữ liệu lời gọi hệ thống tồn tại hai xu hướng chính là:

- Coi dữ liệu lời gọi hệ thống là những dữ liệu cĩ thuộc tính rời rạc (categorical attribute), độc lập khơng cĩ liên quan tới nhau. Tức là dữ liệu này được sinh ra từ

những phân phối độc lập và giống hệt nhau (independently and identically distributed). - Coi dữ liệu lời gọi hệ thống là những dữ liệu cĩ thuộc tính tuần tự (sequential

attribute), cĩ mối liên hệ mật thiết, cĩ thứ tự trước sau.

Với gĩc nhìn thứ nhất, các nhà nghiên cứu áp dụng các phương pháp xử lý dữ liệu cĩ đặc trưng rời rạc để trích xuất đặc trưng phục vụ quá trình huấn luyện mơ hình phân lớp [75]. Thuộc tính rời rạc thường cĩ một tập xác định giá trị cĩ thể (domain) và là tập hợp các giá trị rời rạc nằm trong “domain” này. Việc phân lớp mẫu dữ liệu mới A phụ thuộc vào cách kiểm tra các giá trị thuộc tính rời rạc của mẫu A cĩ thuộc tập giá trị

D(X) của thuộc tính rời rạc lớp X hay khơng: �����(�) ∈ �(�). Cách kiểm tra này

là một phép logic đơn giản, tốn ít tài nguyên tính tốn. Tuy nhiên, do tập hợp cĩ tính hốn vị, nên đặc điểm thứ tự xuất hiện của các giá trị thuộc tính của mẫu A sẽ bị loại bỏ trong quá trình xử lý dữ liệu với gĩc nhìn này. Sự mất mát này cĩ thể dẫn tới vấn đề thiếu chính xác trong kết quả phân lớp của mơ hình mặc dù tiêu tốn ít tài nguyên tính tốn.

Đối lập với cách nhìn thứ nhất, các nhà nghiên cứu coi dữ liệu lời gọi hệ thống cĩ thứ tự trước sau rõ ràng, cĩ sự ràng buộc mật thiết. Giống như các “từ” trong một đoạn văn được viết theo một trình tự nhất định. Nếu các từ trong đoạn văn đĩ bị hốn vị một cách ngẫu nhiên (khơng ảnh hưởng tới tần xuất xuất hiện trong đoạn văn) thì sẽ khĩ để nắm bắt ý nghĩa của nĩ. Tương tự với các dữ liệu kiểu chuỗi thời gian (time- series data) như tín hiệu âm thanh trong một cuộc hội thoại, các khung hình trong một đoạn video,… đều cần một cách thức xử lý dữ liệu để khơng làm mất đặc trưng tuần tự mà máy tính cĩ thể học được. Cách xử lý phở biến nhất là biến đởi các “từ” thành

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 45 - 54)

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

(143 trang)
w