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

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

CHƯƠNG 1 TỔNG QUAN VỀ THIẾT BỊ IOT VÀ MÃ ĐỘC IOT BOTNET

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

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

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ụ q 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ị

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 pruning method 31 HMM 94.67 1.88 47.86 - Alhanahnah [71] N-gram string features 400 K-means Clustering 85.20 - - -

Karanja [72] Haralick image

texture features 20 RF 95.38 - - 0.97 Meidan [58] Extracting traffic statistics 115 Deep autoencoder - 1.7 - - Shobana [73] N-gram, TFIDF 184 RNN 98.31 - - - Nguyen [74] Subgraph2Vec 140 RF 97.00 - - 0.96

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 vector số (word to vector) đặc trưng cho ý nghĩa của nĩ trong ngữ cảnh được gọi là “word

embedding”. Kỹ thuật này này đảm bảo rằng các từ tương tự nhau sẽ cĩ giá trị vector

gần giống nhau.

Tiêu biểu cho kỹ thuật này là Word2vec, là một mạng nơ-ron 2 lớp với duy nhất một lớp ẩn, đầu vào là một “corpus” lớn và sinh ra khơng gian vector cĩ số chiều lên tới vài trăm. Với mỗi từ duy nhất trong “corpus” được gắn với một vector tương ứng trong khơng gian vector này. Các vector đại diện cho “từ” được xác định sao cho những từ cĩ chung ngữ cảnh trong “corpus” được đặt gần nhau trong khơng gian này (được minh họa tại Hình 1.12). Dự đốn về nghĩa của một từ dựa trên những lần xuất hiện trước đĩ trong “corpus”. Cĩ hai cách phở biến để xây dựng word2vec là: Sử dụng ngữ cảnh để dự đốn mục tiêu (Continuos Bag of Words - CBOW) và sử dụng một từ để dự đốn ngữ cảnh mục tiêu (Skip-gram). Mơ hình chung của word2vec (cả CBOW và Skip-gram) đều dựa trên một mạng nơ-ron khá đơn giản. Gọi V là tập các tất cả các từ hay vocabulary với n từ khác nhau. Lớp đầu vào (layer input) biểu diễn dưới dạng one-hot encoding với n node đại diện cho n từ trong vocabulary. Hàm kích hoạt (Activation function) chỉ cĩ tại lớp cuối là softmax function, hàm mất mát (loss function) sử dụng cross entropy loss. Ở giữa 2 lớp đầu vào/ra là lớp ẩn với kích thước size = k, chính là vector sẽ được sử dụng để biểu diễn các từ sau khi huấn luyện mơ hình.

Hình 1.11 Mơ hình CBOW và Skip-gram

Hình 1.12 Minh họa kết quả biểu diễn khơng gian các từ trong word2vec

Tuy nhiên, word2vec tồn tại một số nhược điểm gồm:

- Khơng nhận diện được những “từ” khơng cĩ trong tập dữ liệu huấn luyện. Để khắc phục vấn đề này, khơng gian từ điển cần xây dựng cho “từ” thường lớn, tiêu tốn nhiều tài nguyên để lưu trữ, xử lý.

- Mạng nơ-ron cĩ kích thước lớn: giả sử vector từ cĩ 300 thuộc tính và số lượng từ vựng là 1000 từ thì mạng nơ-ron cĩ kích thước ma trận trọng số là 300×1000=300.000

- Thực hiện thuật tốn Gradient Descent tìm cực trị sẽ chậm về mặt thời gian.

Với các tìm hiểu và đánh giá các phương pháp tiền xử lý dữ liệu lời gọi hệ thống nêu trên, nghiên cứu sinh đã lựa chọn xử lý lời gọi hệ thống như những dữ liệu cĩ thuộc tính tuần tự nhằm tránh mất mát đặc trưng quan trọng về tính tuần tự của các lời gọi. Với cơ sở lý thuyết, hành vi của một chương trình cĩ thể được mơ hình hĩa dựa trên thơng tin từ lời gọi hệ thống khi chúng tương tác với hệ điều hành. Tuy nhiên, trong khi các cách biểu diễn chuỗi các lời gọi hệ thống sẽ khĩ sắp xếp lại hoặc bở sung một hoặc nhiều lời gọi hệ thống, thì một biểu diễn linh hoạt hơn cĩ thể nắm bắt các mối quan hệ giữa chúng, như một đồ thị thể hiện mối quan hệ giữa các lời gọi, cĩ thể giải quyết vấn đề đĩ. Những đồ thị như vậy thường được gọi là đồ thị lời gọi hệ thống (System Call Graph – SCG).

Do đĩ, để tăng hiệu quả phát hiện mã độc IoT Botnet, nghiên cứu sinh đề xuất đặc trưng đồ thị lời gọi hệ thống cĩ hướng (Directed System Call Graph - DSCG) để cấu trúc hố một cách tuần tự các lời gọi hệ thống. Phương pháp tiền xử lý dữ liệu lời gọi hệ thống được đề xuất sẽ 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. Nội dung cụ thể của đề xuất sẽ được trình bày tại Chương 3 của luận án.

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

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

(139 trang)
w