Hình 3.4 Lưu trữ đồ thị DSCG dưới định dạng “gexf”
3.3. Tiền xử lý dữ liệu đờ thi DSCG
Để cĩ thể đưa dữ liệu đồ thị DSCG vào các bộ phân loại học máy/học sâu thì cần biểu diễn tồn bộ đồ thị dưới dạng vector đặc trưng cĩ độ dài cố định. Tuy nhiên, mỗi một đồ thị trong thực tế cĩ số lượng đỉnh và cạnh khơng giống nhau, mang đặc trưng riêng cho từng mẫu đầu vào. Do đĩ, cần cĩ một kỹ thuật biến đởi dữ liệu đồ thị cĩ độ phức tạp cao thành vector đặc trưng thống nhất cĩ độ dài cố định. Một trong những kỹ thuật giải quyết vấn đề này được sử dụng phở biến hiện nay là nhúng đồ thị (graph embedding). Kỹ thuật nhúng đồ thị ánh xạ đồ thị vào khơng gian Euclid, nơi các đồ thị cĩ cấu trúc hoặc các thành phần đồ thị con tương tự nhau sẽ nằm gần nhau. Từ đĩ, mỗi một đồ thị sẽ được biểu diễn bởi một vector đặc trưng. Thơng qua kỹ thuật này, các vector đặc trưng được trích xuất từ đồ thị và đưa vào các bộ phân loại học máy. Để đánh giá hiệu quả biểu diễn dữ liệu lời gọi hệ thống qua đồ thị DSCG, các kỹ thuật nhúng đồ thị được thử nghiệm trong luận án này bao gồm FEATHER [106], LDP [107] và Graph2vec [108].
Rozemberczki [106] trình bày phương pháp FEATHER được sử dụng để xây dựng các hàm đặc trưng (characteristic functions) của đồ thị dựa trên mối quan hệ phân bố các nút lân cận (node neighborhoods). Tác giả chứng minh rằng, các đồ thị đẳng hình (isomorphic) cĩ cùng một giá trị hàm đặc trưng (pooled characteristic function) là giá trị trung bình của đặc trưng cho các nút (node characteristic functions). Do đĩ, cĩ thể sử dụng một hàm giá trị đặc trưng FEATHER đại diện cho đồ thị trong bài tốn phân loại cũng như phân cụm. Hàm FEATHER mức đồ thị được tởng hợp bằng trung bình cộng các giá trị FEATHER mức nút.
Cai [107] trình bày phương pháp Local Degree Profile (LDP) trong trích xuất đặc trưng của đồ thị dựa trên “bậc” (degree) của đỉnh với các đỉnh lân cận đầu tiên (được nối bởi một cạnh). Tác giả ký hiệu đồ thị là G(V, E) với V là tập các đỉnh và E là tập các cạnh. Với mỗi một đỉnh v thuộc V, ký hiệu DN(v) là tập hợp các giá trị “bậc” của các đỉnh u lân cận đỉnh v: ��(�) = {������(� (�)| , �) ∈ }� . Mỗi một đỉnh v thuộc đồ thị G sẽ trích xuất 5 giá trị đặc trưng gồm: degree(v), min(DN(v)),
max(DN(v)), mean(DN(v)) và std(DN(v)). Quá trình này được lặp lại cho tất cả các
đỉnh của đồ thị G. Các giá trị đặc trưng của nút cĩ chiều mặc định là 32, được nối lại với nhau theo thứ tự thành vetor đặc trưng cĩ 5×32 = 160 chiều. Đây là vetor đặc trưng đầu vào cho các thuật tốn học máy phân loại như SVM.
Các cơng bố gần đây về tiền xử lý cho dữ liệu cĩ cấu trúc đồ thị chủ yếu tập trung vào việc nghiên cứu các cách biểu diễn phân tán của các cấu trúc đồ thị như các nút và đồ thị con. Tuy nhiên, nhiều vấn đề phân tích đồ thị để phục vụ học máy như phân loại và phân cụm đồ thị yêu cầu biểu diễn tồn bộ đồ thị dưới dạng vectơ đặc trưng cĩ độ dài cố định. Trong khi các cách tiếp cận nĩi trên đương nhiên là khơng cần thiết để thực hiện các cách biểu diễn như vậy, thì việc sử dụng các hạt nhân đồ thị (graph kernels) vẫn là cách hiệu quả nhất để trích xuất đặc trưng. Tuy nhiên, các hạt nhân đồ thị này sử dụng các đặc trưng được tạo thủ cơng (ví dụ: đường dẫn ngắn nhất, đồ thị liên thơng,…) và do đĩ bị cản trở bởi các vấn đề như tởng quát hĩa kém, khĩ tự động hĩa quá trình tìm kiếm hạt nhân đồ thị. Để giải quyết hạn chế này, Narayanan đề xuất một phương pháp đồ thị nhúng cĩ tên là graph2vec [108] để tìm hiểu các biểu diễn phân tán theo hướng dữ liệu của các đồ thị cĩ kích thước tùy ý. Tác giả coi các đồ thị tương tự như các văn bản được cấu tạo bởi các đồ thị con cĩ gốc (rooted subgraphs) và mở rộng phương pháp
Skipgram cho văn bản (Doc2vec) sang ứng dụng cho xử lý đồ thị. Các phép nhúng của graph2vec được huấn luyện theo phương pháp học khơng giám sát (unsupervised learning). Do đĩ, chúng cĩ thể được sử dụng cho bất kỳ tác vụ nào như phân loại đồ thị, phân cụm và thậm chí cho các phương pháp học máy cĩ giám sát. Các thử nghiệm của Narayanan cho thấy graph2vec đạt được những cải tiến đáng kể về độ chính xác phân loại và phân cụm so với các phương pháp tiếp cận học biểu diễn cấu trúc con và cạnh tranh với các phương pháp phân tích đồ thị hiện đại.
Hình 3.5 So sánh Doc2vec và Graph2vec
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
3.4.3. Các chỉ số đánh giá
Trong phần này, luận án sử dụng 4 chỉ số đánh giá hiệu quả mơ hình gồm: Accuracy (ACC), True Positive Rate (TPR), False Positive Rate (FPR) và Area Under the Curve (AUC). Nghiên cứu sinh sử dụng TPR và FPR để đánh giá mơ hình chính xác hơn với bộ dữ liệu cĩ sự mất cân bằng giữa nhĩm mã độc và nhĩm lành tính. Các chỉ số này được xác định và tính tốn bằng các cơng thức tiêu chuẩn sau:
+ ACC = (TP + TN) / (TP + TN + FP + FN); (3.1) + TPR = TP / (TP + FN); (3.2)
+ FPR = FP / (FP + TN); (3.3)
+ AUC = Diện tích nằm dưới đường cong ROC; (3.4) Trong đĩ:
+ TP (True Positive): cho biết rằng các mẫu mã độc được dự đốn chính xác. + TN (True Negative): cho biết các mẫu lành tính được dự đốn chính xác. + FP (False Positive): cho biết rằng các mẫu lành tính được dự đốn là mã độc. + FN (False Negative): cho biết rằng mẫu mã độc được dự đốn là lành tính.
3.4.4. Kết quả thử nghiệm và đánh giá
Kết quả thử nghiệm được mơ tả thơng qua các giá trị của các chỉ số đánh giá được trình bày trong Bảng 3.4, trong đĩ mơ tả giá trị đánh giá đối với bộ phân lớp học máy cho kết quả tốt nhất. Tại các hình 3.7-3.9 mơ tả đường ROC (cùng với giá trị AUC) của các bộ phân lớp Decision Tree, SVM, KNN, Random Forest với đầu vào là vector đặc trưng được trích xuất từ các thuật tốn nhúng đồ thị Graph2vec (a), Feather (b) và LDP (c) tương ứng 3 kịch bản huấn luyện/kiểm thử đã trình bày. Số chiều vector đặc trưng được trích xuất từ đồ thị DSCG với thuật tốn Graph2vec là 128, Feather – 250 và LDP – 160.
Từ kết quả thử nghiệm trên đã cho thấy, các đặc trưng được trích xuất từ đồ thị DSCG đạt được hiệu quả tốt đối với bài tốn phát hiện mã độc IoT Botnet
(ACC≈96.89%, TPR≈94.97%, FPR≈1.4%, AUC≈0.989). Đặc trưng này hoạt động tốt
với các bộ phân loại học máy đơn giản và phở biến như KNN, SVM, Decision Tree, Random Forest. Trong phạm vi bài tốn phát hiện mã độc IoT Botnet với dataset đã được xây dựng, thuật tốn Random Forest cho thấy ưu thế khi sử dụng kết hợp với đặc trưng DSCG được đề xuất. Trong các kịch bản thử nghiệm đã tiến hành, cĩ 6/9 trường hợp sử dụng thuật tốn Random Forest cho kết quả vượt trội hơn các thuật tốn phở biến khác. Ưu thế của đặc trưng được đề xuất là số chiều của vector đặc trưng được trích xuất từ đồ thị cũng ít hơn so với các nghiên cứu đã cơng bố, gĩp phần làm giảm độ phức tạp tính tốn khi áp dụng vào các mơ hình phát hiện, phân lớp mã độc IoT Botnet. So sánh cụ thể đối với các nghiên cứu liên quan được trình bày cụ thể tại Bảng 3.5.
Bảng 3.4 Giá trị các chỉ số đánh giá mơ hình đề xuất Kich bản Tập huấn luyện Tập kiểm thử Thuật tốn nhúng đờ thi ACC TPR FPR AUC Bộ phân lớp cho kết quả tốt nhất 1 Bashlite + Mã độc khác + Lành tính Mirai + Lành tính Graph2vec 0.9649 0.9474 0.0087 0.9895 SVM Feather 0.9627 0.9453 0.0109 0.9923 RF LDP 0.9757 0.9669 0.0109 0.9792 DT 2 Bashlite + Mirai + Lành tính Mã độc khác + Lành tính Graph2vec 0.9809 0.9944 0.0294 0.9971 RF Feather 0.9355 0.863 0.0087 0.9932 RF LDP 0.933 0.8573 0.0087 0.9632 KNN 3 Mã độc khác + Mirai Bashlite + Lành tính Graph2vec 0.9854 0.9896 0.0272 0.9961 RF Feather 0.99 0.9906 0.012 0.9972 RF LDP 0.9919 0.9924 0.0098 0.9981 RF (a) (b) (c)
(a) (b)
(c)
Hình 3.8 Đồ thị ROC đối với kịch bản thứ hai
(a) (b)
(c)
Bảng 3.5 So sánh mơ hình đề xuất và các nghiên cứu liên quan
Tác giả tượng nghiênDataset/Đối cứu 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] NSL-KDD, IoTPOT[40], UNSW NB15/IoT Botnet Feature pruning method 31 HMM 94.67 1.88 47.86 - Alhanahnah [71] Kaspersky, IoTPOT [40], tự thu thập thêm/ IoT Malware (chủ yếu là Botnet) N-gram string
features 400 ClusteringK-means 85.20 - - -
Karanja [72] IoTPOT [40]/IoT Botnet Haralick image texture features 20 RF 95.38 - - 0.97 Meidan
[58] [40]/IoT BotnetIoTPOT
Extracting traffic statistics 115 Deep autoencoder - 1.7 - - Shobana
[73] [40]/IoT BotnetIoTPOT N-gram,TFIDF 184 RNN 98.31 - - -
Nguyen [74] IoTPOT [40], Virustotal [96], VirusShare [106]/IoT Botnet Subgraph2Vec 140 RF 97.00 - - 0.96 Mơ hình đề xuất IoTPOT [40], Virustotal [96], VirusShare [106]/IoT Botnet DSCG 128 SVM, Decision Tree, Random Forest, KNN 96,89* 1.4* 94.97* 0.989*
*Giá trị trung bình dựa trên 3 kịch bản thử nghiệm
3.5. Kết luận Chương 3
Trong chương này, nghiên cứu sinh đề xuất đặc trưng đồ thị lời gọi hệ thống cĩ hướng DSCG để cấu trúc hố một cách tuần tự các lời gọi hệ thống thu được. Phương pháp tiền xử lý dữ liệu lời gọi hệ thống được đề xuất cĩ độ phức tạp thấp, dễ áp dụng với những thuật tốn học máy đơn giản.
Ý tưởng và kết quả thực nghiệm của phương pháp đề xuất trong chương này đã được trình bày, cơng bố trên các Tạp chí, Kỷ yếu Hội thảo uy tín trong và ngồi nước. Cụ thể là:
- “Iot Botnet Detection Using System Call Graphs and One-Class CNN Classification”, International Journal of Innovative Technology and Exploring
Engineering (IJITEE), vol. 8, no. 10, pp. 937–942, Aug. 2019, (SCOPUS index), ISSN: 2278-3075, DOI: 10.35940/ijitee.J9091.0881019.