1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Bài tập lớn phát hiện những xâm nhập bất thường trên không gian mạng dựa trên các mô hình học máy áp dụng cho bộ dữ liệu unsw nb15

14 1 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Bài Tập Lớn Phát Hiện Những Xâm Nhập Bất Thường Trên Không Gian Mạng Dựa Trên Các Mô Hình Học Máy Áp Dụng Cho Bộ Dữ Liệu UNSW-NB15
Tác giả Vương Tuấn Cường, Nguyễn Hoàng Linh Phương, Nguyễn Quốc Khánh
Người hướng dẫn Trịnh Thành
Trường học Trường Đại Học Phenikaa
Chuyên ngành Công Nghệ Thông Tin
Thể loại Bài Tập Lớn
Năm xuất bản 2022
Thành phố Hà Nội
Định dạng
Số trang 14
Dung lượng 577,72 KB

Nội dung

Do đó, điều quan trọng là phải phát triển các hệ thống phát hiện xâmnhập mạng NIDS có thể xác định và ngăn chặn kịp thời và đáng tin cậy cáccuộc tấn công độc hại vào mạng IoT.Các bộ dữ l

Trang 1

Trường Đại học Phenikaa

Khoa Công nghệ thông tin

Data Mining

Bài tập lớn Phát hiện những xâm nhập bất thường trên không gian mạng dựa trên các mô hình học máy: Áp dụng cho bộ dữ

liệu UNSW-NB15

Giảng viên:

Trịnh Thành

Hà Nội 28/11/2022

Trang 2

Mục lục

3 Tổng quát về tập dữ liệu UNSW-NB15 3

5.1 Decision tree 5

5.2 Random forest 6

6.1 Tổng quát về các chỉ số đánh giá mô hình 7

6.2 Binary classification 7

6.3 Multiclass classification 8

Trang 3

1 Mở đầu

Internet of Things (IoT) gần đây đã chứng kiến sự phát triển bùng nổ trong một phạm vi rộng rãi trong cuộc sống hàng ngày và các ứng dụng công nghiệp [1, 2] Các mạng IoT nhằm mục đích cung cấp kết nối internet để truyền dữ liệu giữa các thiết bị IoT khổng lồ, sử dụng thông tin liên lạc có dây hoặc không dây Tuy nhiên, hầu hết các thiết bị IoT này đều có chi phí thấp, công suất thấp và tài nguyên hạn chế, khiến chúng rất dễ bị tấn công mạng cũng như các hoạt động xâm nhập Do đó, điều quan trọng là phải phát triển các hệ thống phát hiện xâm nhập mạng (NIDS) có thể xác định và ngăn chặn kịp thời và đáng tin cậy các cuộc tấn công độc hại vào mạng IoT

Các bộ dữ liệu này thường chứa một số các tính năng, trong đó có một số tính năng không liên quan hoặc dư thừa, ảnh hưởng xấu đến cả độ phức tạp và

độ chính xác của các thuật toán học máy

Trong thử nghiệm này chúng tôi trình bày các phương pháp tiền xử lý dữ liệu được sử dụng, sau đó sử dụng các dữ liệu đã qua xử lý truyền vào các phương pháp học máy để phát hiện những xâm nhập bất thường, từ đó phát hiện ra được các cuộc tấn công mạng Phát hiện xâm nhập bất thường nhằm nâng cao khả năng bảo toàn thông tin cũng như hỗ trợ giám sát và bảo vệ hệ thống mạng Kết quả của những thí nghiệm này sẽ cho chúng ta sự so sánh giữa một số phương pháp học máy trên tập dữ liệu UNSW-NB15, từ đó có thể lựa chọn phương pháp hợp lý thông qua tập dữ liệu chúng tôi sử dụng

UNSW-NB15

Testing set

● One-hot encoding

● Min-max normalization

● Stratify sampling

Attack type

Attack Classification

30%

Hình 1: Các bước tiến hành

Giải pháp mà chúng tôi đưa ra để giải quyết bài toán NIDs là việc sử dụng các phương pháp học máy (ML) để có thể phát hiện ra các cuộc tấn công mạng

Dữ liệu mà chúng tôi sử dụng để có thể đánh giá mô hình của mình là bộ dữ liệu

tôi sẽ dùng để huấn luyện mô hình và để kiểm tra mô hình đã sử dụng, như Hình

và tốc độ phát hiện cuộc tấn công mạng phải nhanh nhất

tăng lên từ 49 thuộc tính lên 206 thuộc tính Sau đó, chúng tối sử dụng thuật toán stratify sampling, để sinh ra training set phục vụ cho huấn luyện mô hình

và testing set sử dụng cho kiểm thử mô hình Sau khi đã có hai bộ training set

Trang 4

và testing set, chúng tôi sẽ tiến hành huấn luyện các thuật toán phân loại ở phần

hai loại nhãn: binary classification và multiple classification

Bảng 1: Số lượng tệp chứa tập dữ liệu UNSW-NB15

Tập dữ liệu UNSW-NB15 được giới thiệu lần đầu tiên trong [3], cung cấp tốt hơn các nhãn lưu lượng mạng hiện đại so với các bộ dữ liệu NIDS trước

đó như KDD99 [4] và NSLKDD [5] Tổng cộng 2, 5 triệu mẫu dữ liệu được bao gồm trong tập dữ liệu UNSW-NB15, và được chia thành 4 tệp csv như trong

generated features, và labeled features là sáu nhóm tính năng (group features), bao gồm tổng số trong số 49 tính năng trong dữ liệu gốc [3] Trong tập dữ liệu này, có 3 loại dữ liệu khác nhau: categorical: proto, state, service, attack_cat ; binary: is_sm_ips_ports, is_ftp_login và numerical: những thuộc tính còn lại

(a) Multi-class distribution (b) binary-class distribution

Hình 2: Phân phối lớp trong tập dữ liệu UNSW-NB15 được sử dụng

Trong thí nghiệm lần này, vì tài nguyên có hạn chúng tôi sử dụng khoảng 45% mẫu dữ liệu của tập dữ liệu này được bao gồm trong hai tệp UNSWNB15_3.csv

các lớp trong tập dữ liệu chúng tôi sử dụng, điều này giúp chúng tôi nhận ra rằng:

số lượng lớp không cân bằng, trong đó có một lớp bình thường (normal) và chín lớp tấn công (abnormal): Analysis, Backdoor, DoS, Exploits, Fuzzers, Generic, Reconnaissance, Shellcode, và Worms

Trang 5

4 Tiền xử lý dữ liệu UNSW-NB15

chứa phương thức

với user và password

N: Nominal, I: Integer, B: Binary Bảng 2: Chi tiết các thuộc tính được xử lý trong dữ liệu

features, và đều nằm trong hai tệp UNSWNB15_3.csv và UNSWNB15_4.csv

Do vậy, để đọc được dữ liệu chúng tôi phải nối hai bảng với nhau đồng thời

bổ sung tên các thuộc tính với thứ tự lần lượt theo tệp NUSWNB15_featues được cung cấp bởi tác giả Do trong thuộc tính attack_cat - chứa các tên của các lớp - không bao gồm lớp Normal, do đó những giá trị Null trong thuộc tính attack_cat sẽ được thay thế bằng giá trị chuỗi "Normal" Đối với thuộc tính ct_flw_http_mthd, do nó chứa những luồng không có http, do vậy những giá trị NaN trong thuộc tính chúng tôi sẽ chuyển nó thành giá trị 0 Bên cạnh đó, thuộc tính is_ftp_login là thuộc tính dạng nhị phân, tuy nhiên giá trị thuộc tính vẫn chứa 2,4; do đó với những giá trị lớn hơn 1, chúng tôi sẽ chuyển nó thành giá trị 1 để đúng với kiểu dữ liệu Trong thuộc tính ct_ftp_cmd, có chứa giá trị khoảng trắng, chúng tôi sẽ chuyển các khoảng trắng thành giá trị 0 Trong thuộc tính service, chứa tên các phương thức và các phương thức còn lại có giá trị là (-) do đó, chúng tôi sẽ chuyển các giá trị (-) thành None Ngoài ra, vì tập dữ liệu chỉ chứa 9 lớp tấn công, tuy nhiên trong thuộc tính attack_cat chứa hai tên Backdoors và Backdoor khiến số giá trị thành 10 lớp tấn công, do đó chúng tôi chuyển các giá trị Backdoors và Backdoor thành Backdoor Từ thuộc tính sbytes

và thuộc tính dbytes chúng tôi tạo một thuộc tính mới network_bytes được suy diễn bởi hai thuộc tính trên, đồng thời sau đó, chúng tôi sẽ loại bỏ hai thuộc tính

đó Ngoài ra, có những thuộc tính chỉ mang ý nghĩa là định nghĩa mà không có ý nghĩa trong quá trình phát hiện điểm bất thường, chúng tôi cũng sẽ loại bỏ như

’srcip’, ’sport’, ’dstip’, ’dsport’

Sau quá trình xử lý dữ liệu ở trên, tập dữ liệu còn lại của chúng tôi chỉ còn chứa hai loại dữ liệu đó là: nominal và numerical Trong đó, với kiểu dữ liệu nominal, bao gồm 4 thuộc tính: attack_cat, proto, service, state Ngoại trừ thuộc tính attack_cat, ba thuộc tính còn lại chúng tôi sử dụng phương pháp one-hot encoding để chuyển các giá trị thuộc tính sang numerical Ví dụ, xét thuộc tính proto có tổng cộng 3 giá trị khác nhau, tên là, A, B và C, sau đó kết quả của

Trang 6

Bảng 3: Ví dụ của one-hot encoding dành cho nominal feature

là, sau quá trình tiền xử lý dữ liệu số lượng của features sẽ tăng từ 49 features trong tăng lên thành 206 features Lưu ý, chúng tôi cũng đã sử dụng phương pháp min-max normalization để chuẩn hóa giá trị các thuộc tính, tuy nhiên tỏng quá trình thực nghiệm, chúng tôi nhận thấy phương pháp không giúp tăng hiệu quả của việc phát hiện điểm bất thường, mà còn làm giảm hiệu quả đi rất nhiều như Hình

Trong thí nghiệm này chúng tôi chia bộ dữ liệu làm 2 phần: training data, testing data với tỷ lệ 7:3

5.1 Decision tree

Hình 3: Sơ đồ xây dựng mô hình decision tree

Decision Tree là một thuật toán supervised learning, có thể dùng trong bài toán classification và regression [6, 7], nhờ vào việc phân chia các thuộc tính theo từng điều kiện Dcision tree được tạo bởi các node, với mỗi node tương ứng với

1 giả thiết, mỗi node con của node giải thiết là một trường hợp kết quả cho giả thiết đó Decision tree với trường hợp mỗi node chỉ có đúng 2 node con được gọi

là binary decision tree Sau mỗi giả thiết, dữ liệu được phân chia vào từng child node tương ứng với các câu trả lời cho giả thiết đó Mỗi giả thiết ở đây chính là một thuộc tính, câu trả lời chính là giá trị của thuộc tính đó Để đánh giá chất lượng của một cách phân chia, chúng ta cần một phép đo Có nhiều phép đo được

sử dụng như Gini index, Gain Ratio Criterion,

Trong thí nghiệm này, chúng tôi sử dụng Gini index để chọn node chia và sử dụng điều kiện dừng chọn cây quyết định phù hợp với bộ data Gini index dùng

để đánh giá mức độ hỗn loạn của dữ liệu Gini index được tính bằng công thức:

n

X

j=1

Trang 7

Với p2j là tần suất xuất hiện của đối tượng được phân loại trong data Ti

n là số lượng class trong bộ data, với thí nghiệm này n = 2

Trong thí nghiệm này, chúng tôi sử dụng binary decision tree, với mỗi bộ data

Ginisplit(Ti) = n1

n2

Chỉ số gini split thấp nhất (=0) khi node đó chỉ chứa dữ liệu của 1 lớp duy nhất, chỉ số gini cao nhất khi dữ liệu các lớp ở trong node đó cân bằng Chúng

ta mong muốn khi phân tách thì chỉ số gini ở những lớp con thấp, tuy nhiên với Ginisplit(Ti) = 0 thì hiện tượng overfitting sẽ xảy ra Thuộc tính cho gini split nhỏ nhất sẽ được chọn để chia node

5.2 Random forest

Hình 4: Sơ đồ sử dụng mô hình random forest

Random Forest là một thuật toán học máy cũng thường được sử dụng, kết hợp đầu ra của nhiều cây quyết định (Decision Trees) để đạt được một kết quả duy nhất Trong bài toán phân loại (Classification) của chúng tôi, việc sử dụng Random forest cho thấy sự phù hợp của nó với một số bộ phân loại cây quyết định trên các tập con khác nhau của tập dữ liệu Các tập con này thu được khi chia nhỏ tập dữ liệu ra bằng cách sử dụng Bootstrap Từ đó mô hình đưa ra dự đoán từ đó nó sẽ lấy đa số phiếu (Voting) cho các lớp dự đoán Bằng cách này, mô hình sẽ cải thiện độ chính xác của dự đoán cùng với việc kiểm soát Over-fiting Tuy nhiên, Random forest có thể sẽ tạo ra nhiều cây nhiễu (noisy trees) làm cho việc dự đoán sai khiến cho độ chính xác giảm

Cũng ở trong thí nghiệm của chúng tôi, các cài đặt thuật toán với cùng với max_depth = 5 và n_estimators = 10, tức là chỉ tạo 10 cây có độ dài bằng 5 Bằng cách này, mô hìnhsẽ phải đánh đổi khi mà thời gian chạy của thuật toán

sẽ được giảm bớt và độ chính xác cũng sẽ thấp đi Các cài đặt khác sẽ được giữ nguyên như max_f eatures sẽ được chia ra bằng cách lấy căn bậc hai của số lượng các features, Criterion là Gini index như của Cây quyết định

Trang 8

6 Kết quả và thảo luận

Trong phần này, chúng tôi sẽ trình bày các ý nghĩa đánh giá mà chúng tôi sử dụng đồng thời là các thiết lập mô hình cũng như thiết lập máy tính trong phần

mà chúng tôi thu được từ thực nghiệm của mình

6.1 Tổng quát về các chỉ số đánh giá mô hình

@ 2.70GHz 2701 Mhz, 4 Core(s), 8 Logical

Scikit-learn, Scikit-plot and Time Bảng 4: Đặc điểm của môi trường và phần cứng

Cấu hình máy tính của chúng tôi sử dụng để đo thời gian chạy của mô hình, cũng như các gói (packages) được sử dụng trong phát hiện xâm nhập hiển thị chi

Chúng tôi xem xét các chỉ số đánh giá sau: precision, recall, F1-score, đặc biệt

là running time Trong tình huống cụ thể, F1-score được tính dựa trên precision

và recall như sau:

được coi là đánh giá hài hòa giữa precision và recall

Trong khi đó, running time bao gồm thời gian huấn luyện của mô hình phân loại và thời gian dự đoán của chúng như sau:

Trong quá trình phân chia tập dữ liệu thành training set và testing set, chúng tôi sử dụng hàm random và thuật toán stratify trong quá trình sinh ra mẫu dữ liệu Để đảm bảo sự công bằng trong việc so sánh hai mô hình, chúng tôi sẽ thực hiện lặp lại quá trình này trong 50 lần

6.2 Binary classification

Đầu tiên, chúng tôi sẽ xem xét so sánh hai mô hình Decision Tree và Random Forest bằng điểm accuracy và running time bằng bài toán phân loại nhị phân

Tree cho ra tốt hơn so với Random forest, không những thế, có một điểm kết quả outlier kết quả của mô hình Decision Tree - không đáng kể, mà khoảng tứ phân

vị của Decision Tree cũng nhỏ hơn so với Random forest điều này cho thấy mô hình Decision Tree ổn định hơn so với Random forest

thông số của Decision Tree đều tốt hơn so với Random forest Tuy nhiên, vì mục

Trang 9

Decision tree Random forest

0.980

0.982

0.984

0.986

0.988

0.990

0.992

Algorithm Comparison based Accuracy

(a) So sánh mô hình dựa trên Accuracy

Decision tree Random forest 11

12 13 14 15

Algorithm Comparison base Running time

(b) So sánh mô hình dựa trên Running time

Hình 5: Biểu đồ so sánh hai mô hình dựa trên tập dữ liệu UNSW-NB15 được sử dụng bằng binary classification

tiêu của chúng tôi là phát hiện điểm bất thường trên không gian mạng, do vậy, điều chúng tôi quan tâm là việc mô hình phát hiện các lớp tấn công Dựa vào

công tốt hơn rất nhiều so với Decision Tree

Bảng 5: Kết quả so sánh của mô hình với binary classification

Decision Tree nhanh hơn so với Random forest Điều này cho chúng ta nhận thấy rằng, tuy rằng mô hình Random forest có khả năng phát hiện các cuộc tấn công tốt hơn so với Decision Tree nhưng kết quả tổng quan về accuracy của Decion Tree và thời gian chạy của chúng đều tốt hơn so với Random forest Đặc biệt

của Random forest không có điểm nào Tuy nhiên nếu xét về khoảng tứ phân vị, thì của Decision Tree lại nhỏ hơn so với Random forest

6.3 Multiclass classification

Tiếp theo chúng tôi sẽ so sánh hai mô hình đối với bài toán phân loại nhiều lớp dựa trên kết quả mô hình thu được mà thời gian chạy của mô hình Xét kết

và Random forest đều có hai outlier - không đáng kể Tuy nhiên khoảng tứ phân

vị của Decision Tree nhỏ hơn rất nhiều so với Random forest điều này cho thấy

sự ổn định của mô hình Decision Tree so với Random forest

Cũng giống với phân loại nhị phân, trong phân loại đa lớp, chúng tôi cũng xét mô hình nào có thể phát hiện đa dạng kiểu tấn công hơn, do vậy chúng tôi

Trang 10

0 1 Predicted label

0

1

265992 2126

50000 100000 150000 200000 250000

(a) Decision Tree

Predicted label

0

1

262921 5197

50000 100000 150000 200000 250000

(b) Random forest

Hình 6: Confusion matrix của hai mô hình dựa trên tập dữ liệu UNSW-NB15 được sử dụng với binary classification

không thể phát hiện được kiểu tấn công 6-8, điều này có thể thấy mẫu dữ liệu

về 3 lớp tấn công này là tương đối ít Tuy nhiên, nếu xét 4 kiểu lớp còn lại thì Decision Tree có khả năng phát hiện tốt hơn so với Random forest Trong Bảng

Bảng 6: Kết quả so sánh của hai mô hình với multiple class

vị của Decision Tree nhỏ hơn so với Random forest, tuy nhiên thì Decision Tree

có nhiều điểm outlier hơn so với Random forest Nhìn chung thuật toán Decision Tree có tốc độ phát hiện lớp tấn công nhỉnh hơn một ít so với Random forest Điều này cho thấy rằng, đối với phân loại nhiều lớp, Decision Tree không chỉ cho

ra kết quả phát hiện các lớp tấn công mà độ chính xác cũng như thời gian chạy của Decision Tree cũng tốt hơn tương đối so với Random forest

Trang 11

Decision tree Random forest

0.9550

0.9575

0.9600

0.9625

0.9650

0.9675

0.9700

0.9725

Algorithm Comparison based Accuracy

(a) So sánh mô hình dựa trên Accuracy

Decision tree Random forest 10

11 12 13 14 15

Algorithm Comparison base Running time

(b) So sánh mô hình dựa trên Running time

Hình 7: Biểu đồ so sánh hai mô hình dựa trên tập dữ liệu UNSW-NB15 được sử dụng bằng multiple classification

Predicted label

0

1

2

4

6

7

8

271975 2 3516 6 0 0 0

194 0 853 52976 0 0 0

0 50000 100000 150000 200000 250000

(a) Decision Tree

Predicted label

0 1 2 4 6 7 8

275485 0 12 2 0 0 0

903 0 239 52881 0 0 0

0 50000 100000 150000 200000 250000

(b) Random forest

Hình 8: Confusion matrix của hai mô hình dựa trên tập dữ liệu UNSW-NB15 được sử dụng với multiple classification

Ngày đăng: 27/02/2024, 08:48

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w