Bộ dữ liệu thực nghiệm

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 97 - 100)

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

3.4. Thực nghiệm và đánh giá

3.4.1. Bộ dữ liệu thực nghiệm

Để đánh giá kết quả hoạt động của đặc trưng đề xuất, tập dữ liệu chứa 8911 mẫu tệp thực thi chạy thành cơng từ V-Sandbox bao gồm 5023 IoT Botnet và 3888 mẫu lành tính đa nền tảng kiến trúc vi xử lý (gồm MIPS, ARM, x86, PowerPC,…) đã được thu thập và sử dụng cho thực nghiệm. Các mẫu mã độc được thu thập từ ba nguồn chính từ IoTPOT [43], Virustotal [99] và VirusShare [109]. Các mẫu lành tính được trích xuất từ hình ảnh phần sụn của các thiết bị IoT giới hạn tài nguyên trên mạng như bộ định tuyến khơng dây (Router Wifi), camera IP, TV smart box,… Mơ tả về các mẫu trong tập dữ liệu được mơ tả trong Bảng 3.1.

Bảng 3.1 Mơ tả chi tiết về Dataset

Loại Số lượng

Mirai 1510

Bashlite 2786

Mã độc IoT Botnet khác

(Tsunami, Spike, Dofloo, MrBlack,…)

727

3.4.2. Triển khai thử nghiệm

Để thử nghiệm, nghiên cứu sinh sử dụng máy tính với CPU Intel Xeon E5-2689 2.6 GHz với 16GB RAM, ở cứng cĩ dung lượng lưu trữ 2 TB. Mơi trường ảo hĩa V- Sandbox được cài đặt theo mã nguồn được nghiên cứu sinh chia sẻ tại Github [100]. Các thuật tốn nhúng đồ thị được tham khảo mã nguồn được tác giả chia sẻ tại Github gồm: FEATHER [110], LDP [111] và Graph2vec [112]. Các thuật tốn học máy được thử nghiệm như SVM, KNN, Decision Tree, Random Forest,… được cài đặt thơng qua ngơn ngữ Python với sự hỗ trợ từ thư viện Scikit-learn [113]. Với các giá trị đặc trưng được trích xuất từ đồ thị DSCG, các vetor đặc trưng được đưa vào các bộ học máy phở biến như SVM, KNN, Decision Tree, Random Forest,… để huấn luyện và đánh giá khả năng phân loại của đặc trưng được đề xuất. Các thuật tốn học máy kể trên được nghiên cứu sinh lựa chọn để thử nghiệm với hai lý do chính. Thứ nhất, dựa trên kết quả khảo sát các nghiên cứu về phát hiện mã độc IoT Botnet bằng trí tuệ nhân tạo tại mục 1.3.4, các nhà nghiên cứu trong và ngồi nước thường sử dụng các thuật tốn học máy này và cho kết quả mơ hình phát hiện với độ chính xác tương đối cao. Thứ hai, để cĩ cơ sở đánh giá hiệu quả của đặc trưng đề xuất với các đặc trưng của các tác giả khác đã cơng bố, nghiên cứu sinh lựa chọn bộ dữ liệu thử nghiệm và thuật tốn học máy cĩ đặc điểm tương đồng để đánh giá.

Trong quá trình tiến hành huấn luyện và đánh giá khả năng phân loại của đặc trưng được trích rút từ đồ thị DSCG, nghiên cứu sinh đồng thời tiến hành điều chỉnh các tham số chính của các mơ hình học máy ở trên để tìm ra mơ hình phù hợp nhất cĩ thể. Các tham số chính mà nghiên cứu sinh tiến hành điều chỉnh được mơ tả như trong Bảng

3.2. Các tham số cịn lại thì sử dụng theo mặc định.

Bảng 3.2 Các tham số mơ hình học máy được điều chỉnh

Thuật tốn Tham số Mơ tả

KNN

n_neighbors Số lượng điểm gần nhất được sử dụng để phân lớp weights Hàm đánh trọng số các điểm được sử dụng trong

dự đốn nhãn

n_jobs Số lượng tác vụ sẽ chạy xử lý song song Decision Tree randoom_state Khởi tạo quá trình lấy mẫu ngẫu nhiên

Thuật tốn Tham số Mơ tả

criterion Độ đo lựa chọn thuộc tính phân loại splitter Tiêu chuẩn phân chia tại mỗi nút Random

Forest

n_estimators Số lượng cây trong tập hợp cây quyết định (forest) random_state Khởi tạo quá trình lấy mẫu ngẫu nhiên

n_jobs Số lượng tác vụ sẽ chạy xử lý song song

SVM

random_state Khởi tạo quá trình lấy mẫu ngẫu nhiên probability Lựa chọn ước tính xác suất

C Tham số chính quy hĩa (regularization)

gama Tham số của hàm Radial Basic Function (RBF) Các tham số được nghiên cứu sinh tinh chỉnh trong quá trình thử nghiệm được minh họa trong mã nguồn như trong Hình 3.6.

Hình 3.6 Các kịch bản thử nghiệm điều chỉnh tham số các mơ hình học máy

Do số lượng mẫu mã độc IoT Botnet cho thiết bị IoT hạn chế tài nguyên thu thập được cịn ít nên để tránh hiện tượng Overfitting và kiểm tra khả năng phát hiện các biến thể mới của mã độc IoT Botnet thì cần một phương án chia tập dữ liệu thử nghiệm thành SEED = 42 ALGO = [‘KNN’, ‘DT’, ‘RF’, ‘SVM’] CLF NAME = { ‘KNN’: ‘K-Nearest Neighbors’, ‘DT’: ‘Decision Tree’, ‘RF’: ‘Random Forest’, ‘SVM’: ‘SVM’, } CLASSIFIERS = { ‘KNN’: KneighborsClassifier(n_jobs=-1), ‘DT’: DecisionTreeClassifier(random_state=SEED), ‘RF’: RandomForestClassifier(random_state=SEED, n_jobs=-1), ‘SVM’: SVC(random_state=SEED, probability=True), } HYPER_GRID = {

‘KNN’: {“n_neighbors”: [10, 100, 1000], “weights”: [“uniform”, “distance”]}, ‘DT’: {“criterion”: [“gini”, “entropy”], “splitter”: [“best”, “random”]},

‘RF’: {“n_estimators”: [10, 100, 1000]},

‘SVM’: {“C”: np.logspace(-1, 1, 3), “gamma”: np.logspace (-1, 1, 3)}, }

các tập nhỏ hơn để huấn luyện và đánh giá hiệu quả hơn (validation). Nghiên cứu sinh đã sử dụng 3 kịch bản phân chia tập dữ liệu thử nghiệm như sau để huấn luyện và đánh giá đặc trưng đề xuất. Với kịch bản đầu tiên, tập huấn luyện bao gồm mã độc Bashlite, mã độc IoT Botnet khác và tệp lành tính; tập kiểm thử bao gồm chủ yếu mã độc Mirai và tệp lành tính. Mục tiêu của kịch bản đầu tiên là kiểm tra khả năng phát hiện họ mã độc IoT Botnet mới (Mirai) của phương pháp đề xuất khi mà tập huấn luyện chỉ chứa chủ yếu họ mã độc IoT Botnet đã xuất hiện trước đĩ theo thời gian. Tương tự, mục tiêu của kịch bản thứ 2 nhằm kiểm tra, đánh giá khả năng phát hiện các biến thể khác nhau của mã độc IoT Botnet khi mà tập huấn luyện chỉ tập trung vào 2 họ mã độc IoT Botnet chính là Bashlite và Mirai. Mục tiêu của kịch bản thứ 3 nhằm kiểm tra, đánh giá khả năng phát hiện các mẫu mã độc IoT Botnet đã xuất hiện trước đĩ (Bashlite) dựa trên việc huấn luyện với họ mã độc xuất hiện sau (Mirai) và một số các biến thể các họ mã độc khác. Bên cạnh đĩ, kịch bản thứ 3 cũng phục vụ việc kiểm tra, đánh giá khả năng Overfiting của phương pháp đề xuất.

Bảng 3.3 Kịch bản phân chia tập dữ liệu thử nghiệm

Kich bản Tập huấn luyệnLoại Số lượng LoạiTập kiểm thửSố lượng

1 Bashlite 2786 Mirai 1510 Mã độc IoT Botnet khác 727 Lành tính (ngẫu

nhiên) 3088 Lành tính (ngẫunhiên) 800 2

Bashlite 2786 Mã độc IoT

Botnet khác 727

Mirai 1389

Lành tính (ngẫu

nhiên) 3088 Lành tính (ngẫunhiên) 800 3 Mirai 1510 Bashlite 2786 Mã độc IoT Botnet khác 727 Lành tính (ngẫu

nhiên) 3088 Lành tính (ngẫunhiên) 800

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 97 - 100)

w