1. Trang chủ
  2. » Luận Văn - Báo Cáo

Khóa luận tốt nghiệp An toàn thông tin: IMIDS: Xây dựng hệ thống phát hiện xâm nhập thông minh trong ngữ cảnh IoT

87 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 đề IMIDS: Xây dựng hệ thống phát hiện xâm nhập thông minh trong ngữ cảnh IoT
Tác giả Tran Trong Dat, Tran Ngoc Duan
Người hướng dẫn TS. Le Kim Hung
Trường học Trường Đại Học Công Nghệ Thông Tin
Chuyên ngành An Toàn Thông Tin
Thể loại Khóa luận tốt nghiệp
Năm xuất bản 2021
Thành phố TP. Ho Chi Minh
Định dạng
Số trang 87
Dung lượng 44,15 MB

Nội dung

Phát hiện tắn công dựa trên signature thông qua các quy tắc được tạo ra từ các mẫu điển hình của các cuộc tấn công đã biết và nó xác định mối đe dọa nếu các sự kiện quan sát phù hợp với

Trang 1

ĐẠI HỌC QUOC GIA TP HO CHÍ MINH

TRUONG DAI HOC CONG NGHE THONG TIN KHOA MANG MAY TINH VA TRUYEN THONG

TRAN TRONG DAT TRAN NGOC DUAN

KHOA LUAN TOT NGHIEP

IMIDS: XAY DUNG HE THONG PHAT HIEN XAM NHAP THONG MINH TRONG NGU CANH IOT

IMIDS: AN INTELLIGENT INTRUSION DETECTION

SYSTEM AGAINST CYBER THREATS IN IOT

KY SU NGANH AN TOAN THONG TIN

TP HO CHi MINH, 2021

Trang 2

ĐẠI HỌC QUOC GIA TP HO CHÍ MINH

TRUONG DAI HOC CONG NGHE THONG TIN

KHOA MANG MAY TINH VA TRUYEN THONG

TRAN NGỌC DUAN - 18520609 TRAN TRỌNG DAT -— 18520263

KHOA LUAN TOT NGHIEP

IMIDS: XAY DUNG HE THONG PHAT HIEN XAM

NHAP THONG MINH TRONG NGU CANH IOT

IMIDS: AN INTELLIGENT INTRUSION DETECTION

SYSTEM AGAINST CYBER THREATS IN IOT

KY SU NGANH AN TOAN THONG TIN

GIANG VIEN HUONG DAN

TS LE KIM HUNG

TP HO CHi MINH, 2021

Trang 3

THÔNG TIN HỘI ĐÒNG CHÁM KHÓA LUẬN TÓT NGHIỆP

Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số

T8ầy của Hiệu trưởng Trường Đại học Công nghệ Thông tin.

1.Chủ tịch.

2.Thư ký.

3.Ủy viên.

4.Ủy viên.

Trang 4

Đầu tiên, chúng tôi bày tỏ lời cảm ơn trân trọng nhất dành cho thay giáo, Tiến sĩ Lê Kim Hùng - người thầy trực tiếp hướng dẫn nghiên cứu, phát triển khoá luận Thầy đã truyền cảm hứng nghiên cứu khoa học đến không chỉ chúng tôi mà với nhiều bạn sinh viên khác, thầy luôn hướng dẫn tận tình, giúp đỡ chúng tôi trong trong không những việc học

hỏi, nghiên cứu mà còn hỗ trợ cân bằng việc học với công việc, cuộc sống.

Bên cạnh đó chúng tôi muốn dành lời cảm ơn tới các thầy cô ở khoa Mạng Máy Tính và Truyền Thông đã giảng dạy những kiến thức quý báu dé chúng tôi có thé hoàn thành khoá luận này, đồng thời gửi lời cảm ơn tới những người bạn, đặc biệt các bạn ở lớp ATTN2018, đã luôn đồng hành cùng chúng tôi trong suốt hành trình học đại học Chúng

tôi cũng gửi lời cảm ơn tới bạn Nguyễn Minh Huy lớp KHTN2019 đã cùng chúng tôi trong

suốt quá trình làm nghiên cứu khoa học và khóa luận tốt nghiệp.

Cuối cùng, chúng tôi muốn gửi lời cảm ơn tới bố mẹ, gia đình, người thân của chúng tôi, những người đã luôn đồng hành, tin tưởng và quan tâm giúp đỡ trong những lúc khó khăn nhất Thiếu đi những sự giúp đỡ quý giá đó, chúng tôi sẽ không thể có được ngày hôm nay.

Trang 5

DANH MUC BANG 61157 8

DANH MỤC TU VIET TẮTT -22+£222EEV222+++222EEE2ES+++ttE2E22EEYErrrrrtrrrrvrrrrrrrrrrrkx 9

Chương 1 MỞ ĐẦU -222222222222E222111222211112221111 222111 111cc 2

1.1 Tên đềtài 5⁄2 VN ¬ 2

1.3 Mục tiêu của để tài .22c¿+22222 222 2222222111112272222111112 2211111112 xe 4

1.4 Đối tượng và phạm vi nghiên cứu .:-¿¿222++++222E2Ev+vrrrtttrrrrrrrrrerree 6

1.4.1 _ Đối tượng nghiên cứu -c¿52222vvvccrrecccvvvvrrrrrrrrrrrrrrcee 6

1.4.2 _ Phạm vi nghiên cứu - ¿+ ++‡ESt+k+kEEEEEErkrkerrrrrrkrkeerree 6

Chương 2 Tổng quan -¿+©V2+++2EEE+++22EES+vtEEEEvrrttrkrrrrrrrrrcree 7

2.1 Cơ sở lý thuyết

2.1.1 Tổng quan về hệ thống phát hiện xâm nhập -c-¿¿-:cccc+2 7

2.1.2 Kỹ thuật học máy trong phát hiện xâm nhap

2.1.3 Tổng quan về mạng sinh đối kháng ++++z++22+zz+rrxscee 12 2.1.4 Tổng quan về các thư viện sử dụng trong module web

2.2 Các công trình liên quan - ¿+ + 5% +E2E£E£ESEEEEkEEEEEEEEEEEEEEEErkrkrkrkrree 17 Chương3 Nội dung và phương pháp.

3.1 Tổng quan giải pháp - -22++2222+2+t2222++EE22111222111122121111221111 E21 re 21

Trang 6

3.2 Các bộ dữ liệu -.cccccctrnrhnHrtHrHhH.Herrrrrerrrree 23

3.3 Mô hình phát hiện và phân loại các cuộc tấn công : -¿ ++ 24

3.3.1 Tiền xử lí dữ liệu 22 rrtthEtrrirrrrrirrrrrree 24

3.3.2 Huấn luyện mô hình học sâu đề phát hiện các cuộc tan công mạng 33

3.3.3 Chỉ số đánh giá mô hình phát hiện và phân loại các cuộc tan công 36

3.4 Mô hình mạng sinh dữ liệu - + S313 it 37

3.5 HG théng Web hố ẽ.ẽ ẽẽẽ4434HH 40

Chuong 4 Thực nghiệm va đánh gia eeseeesseeeseseeeseneeseeeseeeeeseneeeeeneeerseaeeeneeeeee 40 4.1 Môi trường thực nghiém - - + ¿5+5 SE 1c rree 45

4.2 Kết quả nghiên cứu -2222::+222+2++2222222122211112122111222111 222111211 ccrrrkr 46

4.2.1 Kết quả huấn luyện mô hình học sâu ¿-z22+cz+::vs+czz+ 46

4.2.2 Kết quả huấn luyện bổ sung GAN -ccc¿c¿2222cvvvceesrrrrrrrreercee 50

4.2.3 So sánh kết quả hệ thống với nghiên cứu khác - 51

42.4 Kết quả thực tế thông qua giao điện web ¿-cc+ccszcc+rz 54

Chương 5 Tổng kết và hướng phat triỂn -:¿-22vv2c+++222vvvvverrerrrrrr 64

5.I Kết luận 2222222 tr re 64

5.2 Ý nghĩa khoa hỌC -22E+22t22E2L22t222111222211122711112277112 2.011 E1 cceer 65

5.3 Hiệu quả về mặt kinh tế - xã hdi.

5.4 Hướng phát triển trong tương lai +©2++2222+++ttEEEvrrttrrrvrrerrrrrrrrrr 67

Tài liệu tham khảo

Trang 7

3.2 Tổng số giá tri null trong các featUres -. -+¿++22E++zt2t2z+zerrrzrverrrrrke 24

3.3 1552862 null attack_cat được chuyền thành normal -: -¿c5s+ 25

3.4 Chỉnh sửa feature c(_tp_ Cmid ¿+ S1 E2 ng ướt 25

3.5 Chỉnh sử feature is_tp_ÏOgin ¿5:55 + 22222 12x cxe 26

3.6 Service feature trước (bên trái) và sau khi chỉnh sửa (bên phải) 26 3.7 Gop hai loại label “backdoor” và “backdOOTS”” - + +5++c+s+ssxe+szx+cs> 26

3.8 Correlation matrix

3.9 Cac Feature có độ tương quan lớn hơn ( - ¿5 ++5x+cc>xexzxerxererxeree 27

3.10 Loại bỏ một số feature có độ tương quan lớn hơn 0.95 -. -+++ 28

3.11 Các features không cần thiết cho classification : zz++ 28

3.12 Tạo network_bytes feature c5: S: S222 tt 222 12121 11kg 28

3.13 Các cột numerical sau khi apply log] p - - - << + 5++x++c+xercrrxexer 28

3.14 Standardlize dữ lIỆu - 6 Sàn 1k 1H TH HH TH nghiệt 29

3.15 Dữ liệu sau one-hot encoding.

3.16 Tổng số features sau khi preprocessing -¿ 22cz+22c2cvvvzcrrrrrrz 29

3.17 Thay thé các kí tự không xác định -¿-2+222++++2t2+zrtttzrvrrerrxer 30

3.18 Loại bỏ các records chỉ gồm NaN values -. :2¿c222+zcvcvvvvvcerrree 30

3.19 Hop mht cac file 7n ẽ 31

3.20 Chi tiết số records các loại tan công sau khi hợp nhất 8 file csv 31

3.21 Loại bỏ feature Fwd Header Length ¿-¿- 552 5+s+>t+++rvxerrerterer 32

Trang 8

Hình 3.22 Các features chỉ có một giá trị bi loại ĐỎ ¿- - - ++++£+x+x+xrx+xzrerexxee 32

Hình 3.23 Các features không cần thiết cho classification -¿-sccz+cc5sce2 32

Hình 3.24 Xử lí inf và nan values.

Hình 3.25 Chuẩn hóa tat cả các features bằng min-max normalize :- 33

Hình 3.26 Dữ liệu sau khi hoàn tat quá trình preprocessing -:-++++ 33

Hình 3.27 Cấu trúc của model CNN được sử dụng trong IDS :c+¿ 34

Hình 3.28 Tổng quan mô hình mạng sinh dữ liệu ¿2++22+zz++cvssc+2 38

Hình 4.1 Mô hình triển khai thực nghiệm hệ thống với Web interface 45

Hình 4.2 Confusion matrix trên dataset UNSW-NBI5 2c+cccccccccee 47

Hình 4.3 Confusion matrix trên dataset CICIDS2017

Hình 4.4 Biều đồ trước và sau khi thêm dữ liệu tạo mới từ CTGAN 50

Hình 4.5 Confusion matrix sau khi retrain với synthetic samples cua Backdoors 51

Hình 4.6 Giao diện chính của trang Web ccccecsceseseeeseseeeeeeseseseeenessseseeeeseseseeeseeneee 54

Hình 4.7 Tính năng phân tích dữ liệu - ¿525 S+2SSx‡£‡xEErkerkerrrkerrrrrrree 54

Hình 4.8 Chọn tập dữ liệu mong muốn bằng cách bam vào “Choose file” button 55

Hình 4.9 Cat_sttl sau khi được phân tich - ¿c5 6S St *#ekEkeErkrkekrrrrkrrke 55 Hình 4.10 Cat_sintpkt sau khi được phân tích

Hình 4.11 Cat_ackdat sau khi được phân tÍch - ¿+ +5 + stsv£vkexexexeervrrerree 56

Hình 4.12 Tính năng huấn luyện hoặc phân loại dữ liệu ¿- - + +5+++s+c+s+s+ 57

Hình 4.13 Giao diện chính của tinh năng train/evaluate, người dùng có thé lựa chon giữa

hai tập dữ liệu UNSW hoặc CICIDS22017 +52 5c25++++‡£etxerterrtrtrrkerxerrrree 57 Hình 4.14 Training phase (backend) ¿- + +55 2*2x£k#EEEkkkrrkrrkerrrrree 58

Hình 4.15 Confusion matrix được tra về cho client sau khi hoàn tat training 58

Trang 9

Hình 4.16 Tinh năng “Network Capture” thực hiện phân tích dữ liệu mạng 59

Hình 4.17 Chon Capture Traffic để thực hiện bắt gói tin -¿- 2+ 5z+cs+xz+zxcres 59

Hình 4.18 Sau khi thu thập xong dữ liệu, hệ thống sẽ trả về file sau khi đã trích xuất các

thuộc tính, chuẩn bị sẵn sảng cho giai đoạn phân loại dữ liệu tiếp theO 60

Hình 4.19 Kết quả “preprocessed_traffic.csv” được chúng ta capture 60

Hình 4.20 Thông số cơ bản của các featLIre - + +c2cz+2k2EEeEEEEEeEkerkerrrrrrrres 61

Hình 4.21 Kết quả phân tích khi người dùng chỉ lướt web bình thường 62

Hình 4.22 Kết quả phân tích sau khi thực hiện tắn công portscan . - 2+: 62

Hình 4.23 Kết quả phân tích sau khi thực hiện tắn công DDOS 2-2 5+: 63

DANH MỤC BANG

Bang 2.1 Đặc trưng của các loại phương pháp phát hiện cuộc tấn công [14] 9

Bang 4.1 Các chỉ số đánh giá trên 2 tập đataset - + ++22+2++Ek+ExeEEeEEerkerkrrerreereee 47

Bảng 4.2 So sánh độ chính xác phân loại các loại tấn công giữa IMIDS và các mô hình gầnGay ChO IDS 1117 3 52

Bảng 4.3 So sánh độ chính xác khi phân loại các loại tan công giữa IMIDS và các nghiên

cứu gần đâyy -:- + xxx 2k 21211211211211211717111 1111.2111111 11 1.11011111111111 ke 53

Trang 10

DANH MỤC TU VIET TAT

Số thứ tự | Thuật ngữ Mô tả

1 Al Artificial Intelligence

2 CNN Convolutional Neural Network

3 CPU Central Processing Unit

4 API Application Programming Interface

5 DDOS Distributed Denial-Of-Service

11 FPR False Positive Rate

12 GPU Graphics Processing Unit

13 HIDS Host-Based Intrusion Detection System

14 IDS Intrusion Detection System

15 IOT Internet Of Thing

16 IP Internet Protocol,

17 KNN K-Nearest Neighbors

18 ML Machine Learning

19 NIDS Network-Based Intrusion Detection System

20 PCA Principal Component Analysis

21 RF Random Forest

22 RNN Recurrent Neural Network

23 SDN Software-Defined Networking

24 SVM Support Vector Machine

25 TCP Transmission Control Protocol

Trang 11

TOM TAT KHÓA LUẬN

Sự phổ biến ngày càng tăng của Internet of Things (IoT) đã tác động đáng kế đến cuộc sống hàng ngày của chúng ta trong vài năm qua Một mặt, nó mang lại sự tiện lợi, đơn giản và hiệu quả cho chúng ta; mặt khác, các thiết bị dễ bị tắn công mạng do thiếu cơ chế bảo mật vững chắc và hỗ trợ bảo mật phần cứng.

Trong khóa luận này, chúng tôi trình bày IMIDS, một hệ thống phát hiện xâm nhập thông minh (IDS) để phòng chống các mối nguy hiểm từ các hệ thống IoT Cốt lõi của IMIDS là một mô hình mạng nơ-ron tích hợp nhẹ có nhiệm vụ phân loại các mối đe dọa mạng Để khác phục vấn đề thiếu dữ liệu dao tao, chúng tôi cũng dé xuất một trình tạo dữ liệu tấn công được cung cấp bởi một mạng sinh đối kháng Trong thử nghiệm, chúng tôi chứng minh rằng IMIDS có thé phát hiện 9 kiểu tắn công mạng từ tập dữ liệu UNSWNB15

và 14 kiểu tấn công mạng từ tập dữ liệu CICIDS2017 với chi số F1 trung bình lần lượt là 97,22% và 96,32%, vượt trội hơn so với các đối thủ cạnh tranh Hơn nữa, hiệu suất phát hiện của IMIDS được cải thiện đáng kể sau khi được đào tạo thêm bởi đữ liệu do trình tao

dữ liệu tắn công của chúng tôi tạo ra Những kết quả này chứng minh rằng IMIDS có thé

là một IDS thực tế cho kịch bản IoT.

Trang 12

Chương 1 MỞ ĐẦU

1.1 Tên đề tài

Tên tiếng Việt: IMIDS: XÂY DỰNG HỆ THÓNG PHÁT HIỆN XÂM NHẬP THÔNG MINH TRONG NGỮ CẢNH IOT.

Tên tiếng Anh: IMIDS: AN INTELLIGENT INTRUSION DETECTION SYSTEM

AGAINST CYBER THREATS IN IOT.

1.2 Đặt vấn đề

Những năm gan đây đã chứng kiến sự phát triển mạnh mẽ của Internet of Things nhằm dua mọi đối tượng vật lý đến với thé giới kỹ thuật số, dẫn đến hàng tỷ thiết bị IoT được kết nối với Internet IoT được dự đoán sẽ cung cấp các giải pháp sáng tạo dé tăng lợi nhuận trong một số ngành (ví dụ: chăm sóc sức khỏe, sản xuất, bán lẻ, an ninh và giao thông vận tải) Theo một nghiên cứu gần đây [1], tong thị trường IoT trên toàn thế giới trị giá khoảng 389

tỷ đô la Mỹ vào năm 2020 và dự kiến đạt hơn một nghìn tỷ đô la Mỹ vào năm 2030.

Sự bùng nổ của các thiết bi IoT mang đến những thách thức không nhỏ về bảo mật do thiếu các cơ chế an toàn và hỗ trợ bảo mật phần cứng Thật vậy, khả năng tính toán hạn chế của các thiết bị IoT khiến chúng không đủ cho các phương pháp bảo vệ truyền thống Do đó, đơn giản hóa các phương pháp này là một giải pháp phổ biến, nhưng nó có thẻ dẫn đến lỗi bảo mật nghiêm trọng ở nhiều mức độ [2] Ví dụ: giao diện vật lý không an toàn, Sybil mức thấp va các cuộc tấn công giả mạo ở cấp hệ điều hành; replay attacks, wormholes ở cấp độ mạng Nghiêm trong hơn, những kẻ tan công có thể khai thác những lỗ hồng này dé tạo ra các mạng botnet và khởi chạy các cuộc tấn công Từ chối Dịch vụ Phân tán (DDoS) [3] để làm gián đoạn các dịch vụ Internet bằng cách áp đảo khả năng xử lý của mục tiêu

với một lượng lớn lưu lượng truy cập Internet.

Vi dụ: vi-rút Mirai đã lây nhiễm hơn 65.000 thiết bị IoT trong 20 giờ đầu tiên sau khi bùng phát vào ngày 1 tháng 8 năm 2016 và đạt 200.000-300.000 lần lây nhiễm [4] [5] Vào tháng

Trang 13

9 năm 2016, một trang web tư vấn bảo mật có tên Brian Krebs đã bị tắn công với 620 Gbps lưu lượng truy cập bằng mạng botnet Mirai Trong khi đó, một cuộc tấn công DDoS quan trọng hơn đã nhắm vào nhà cung cấp dịch vụ đám mây của Pháp là OVH [5], đạt đỉnh điểm

là 1,1 Tbps Chỉ một tháng sau, vào tháng 10 năm 2016, một biến thé của Mirai đã đóng cửa hàng trăm trang web trong vài giờ [6], bao gồm Twitter, Netflix, Reddit, Github Sau khi Mirai được phát hành vào thang 8 năm 2016, các cuộc tan công DdoS [7] xảy ra thường xuyên hơn Các vi dụ trên chỉ ra rằng các thiết bị IoT sở hữu nhiều lỗ héng mà những kẻ tan công có thé khai thác dé xâm nhập và tạo ra các mang botnet cho các mục đích bat hợp pháp Theo báo cáo từ Security Today và Threat Post, số lượng thiết bị loT vào năm 2020

là khoảng 31 tỷ thiết bị, nhưng một nửa trong số đó dễ bị tan công nghiêm trong [8] Vì vậy, một cơ chế phòng thủ hiệu quả và mạnh mẽ đối với các cuộc tan công mạng là cần thiết.

Để giảm thiểu các mối đe đọa bảo mật từ các thiết bị IoT, việc triển khai các hệ thống phát hiện xâm nhập vào mạng là một giải pháp tiềm năng IDS phát hiện bat kỳ đấu hiệu tấn công mạng nào bằng cách liên tục theo dõi lưu lượng mạng vào và ra do các thiết bị IoT tạo ra Phương pháp phát hiện tan công của nó được phân loại thành dựa trên signature và dựa trên abnormality Phát hiện tắn công dựa trên signature thông qua các quy tắc được tạo

ra từ các mẫu điển hình của các cuộc tấn công đã biết và nó xác định mối đe dọa nếu các

sự kiện quan sát phù hợp với các quy tắc này Ngược lại, một phương pháp dựa trên sự bất thường (abnormality) đào tạo một mô hình bằng cách sử dụng các hành vi bình thường của

hệ thống Mô hình này sau đó được sử dụng dé phát hiện cuộc tan công bằng cách tính toán

sự khác biệt giữa các hành vi được quan sát so với lúc được training Vấn dé chính của các phương pháp này là chúng chỉ hoạt động hiệu quả trên một số lượng hạn chế các hành vi trong hệ thống, không đủ cho các mạng IoT, nơi bao gồm nhiều loại thiết bị không đồng

nhất Thật vậy, các loại thiết bị khác nhau có thé tạo ra các hành vi mạng khác nhau, dẫn

đến độ chính xác của việc phát hiện tan công bị giảm sút Được thúc day bởi sự thành công của học sâu trong một số lĩnh vực, người ta dự kiến rằng IDS dựa trên học sâu có thé khắc

Trang 14

phục các vấn đề hiện có và nâng cao chất lượng phát hiện tấn công Thật vậy, mô hình học

sâu rất tốt trong việc học các đặc trưng phức tạp trong lưu lượng mạng, làm cho nó hiệu

quả hơn các thuật toán học máy khác Tuy nhiên, việc dao tạo các mô hình này đòi hỏi mộtlượng lớn dit liệu có nhãn, bao gồm cả lưu lượng mạng bình thường và bất thường Quátrình đán nhãn tốn nhiều thời gian và công sức; do đó, việc duy trì liên tục các tập dữ liệuđược gắn nhãn là không thực tế Hơn nữa, khó có được các tập dữ liệu chất lượng cao dédao tao IDS, mặc dù chúng đóng một vai trò thiết yếu trong việc nâng cao hiệu suất pháthiện IDS Lý do chính cho sự thiếu hụt này là các lo ngại về quyền riêng tư [9, 10, 11] Sau[12] việc làm giàu thông tin mạng cho tập dữ liệu IDS đòi hỏi phải bỏ qua các van đề vềquyên riêng tư và bảo mật Do đó, các bộ dit liệu này được tùy chỉnh dé loại bỏ thông tinmạng nhạy cảm trước khi công bố, dẫn đến một số lỗi trong các luồng mạng Hơn nữa, hầuhết các bộ đữ liệu IDS hiện có đều đã lỗi thời và thiếu các cuộc tấn công được gắn nhãn

[13] Ví dụ: worms attack trong bộ dữ liệu UNSW-NBI5, chỉ có 174 mẫu so với 44525

mẫu của exploits Điều này làm suy giảm đáng kể hiệu quả của quá trình đào tạo

1.3 Mục tiêu của đê tài

Động lực của nghiên cứu này xuất phát từ yêu cầu: nâng cao chất lượng phát hiện cuộc

tấn công trong khi vẫn giữ được tính đơn giản của mô hình Nhận định này có đượckhi đọc một số tài liệu nghiên cứu về IDS, trong đó các tác giả có xu hướng giới thiệu các

mô hình phát hiện tấn công mới dé tăng độ chính xác phát hiện bất kể độ phức tạp của

chúng, nhưng chúng tôi tin rằng dữ liệu đào tạo chất lượng cao cũng đóng một vai trò quantrọng trong việc đạt được mô hình hiệu quả Do đó, mục tiêu kỹ thuật chính của bài báonày là phát hiện chính xác các cuộc tấn công mạng khác nhau bằng cách cung cấp một IDShiệu quả cùng với một phương pháp nhân tạo dé tạo ra dữ liệu dao tạo có giá trị Các mục

tiêu của chúng tôi có thê được miêu tả như sau:

e Hệ thống hoàn thiện, hoạt động hiệu quả — Sản phẩm được thiết kế phải có day

đủ các module từ thu thập các gói tin cho đến giao diện web dé sử dụng hệ thống

Cụ thể hơn, module bắt gói tin sẽ trả đữ liệu về dạng pcap và chuyên sang module

4

Trang 15

tiếp theo là Feature extractor dé xử lí các gói dữ liệu thô và trích xuất các đặc

trưng của dit liệu Sau đó, dữ liệu sẽ được chuyển đến module IDS dé thực hiệnhuấn luyện hoặc phân loại dit liệu, phân loại các cuộc tấn công Cuối cùng sẽ là

chuyền các thông tin sau khi phân loại đến web interface giúp người dùng theodõi Các module phải được thiết kế tường minh, mục đích hỗ trợ cho các nghiên

cứu về sau dé dàng kế thừa, phát triển.

e _ Khắc phục hạn chế về mặt dữ liệu bằng mô hình mang sinh — các tập dữ liệu

được công bồ phan lớn đều gặp phải tình trạng mat cân bằng trong dữ liệu, từ đóchúng tôi muốn áp dụng các mô hình mang sinh dé khắc phục hạn chế về dữ liệu.Chúng tôi đặt mục tiêu thử nghiệm nhiều mô hình sinh dữ liệu khác nhau dé đềxuất một mô hình tốt nhất Mô hình sẽ được đánh giá thông qua kết quả đánh giácủa IDS sau khi được huấn luyện với dữ liệu tạo bởi mô hình của chúng tôi

e Sử dụng linh hoạt các thư viện máy học dé giúp các nghiên cứu về sau có nhiều

lựa chọn hơn cho các kỹ thuật cũng như các công cụ dé tiếp tục phát triển Từ đó,

chúng tôi muốn tận dụng được các công nghệ kỹ thuật hiện có của các nghiên

cứu về máy học kết hợp với các công nghệ kỹ thuật mới dé áp dung cho hệ thong

như phản ứng kịp thời với các cuộc tấn công Do đó, chúng tôi sẽ thiết kế và huấn luyện

mô hình này trên nhiều tập dữ liệu uy tín khác nhau với mức kì vọng về độ chính xác cũngnhư tốc độ xử lý cao đối với cả việc phát hiện và phân loại các cuộc tấn công khác nhau.

Đề làm được điều đó, chúng tôi cần nghiên cứu các loại dữ liệu hỗ trợ phân tích và giámsát theo luồng để tối ưu về tốc độ Từ đó đề xuất một loại dữ liệu tốt nhất và chọn ra nhữngtrường đặc trưng cơ bản thường được sử dụng dé phản ánh tông quan về các cuộc tan công

Trang 16

trong hệ thống.

1.4 Đối tượng và phạm vi nghiên cứu

1.4.1 Đối tượng nghiên cứu

- MG hình phát hiện va phân loại các cuộc tấn công mạng dựa trên thuật toán học sâu

- _ Mô hình sinh dữ liệu tan công dựa trên kĩ thuật mạng sinh

- Hoàn thiện mô hình kiến trúc hệ thống có khả năng phân tích giám sát dữ liệu, bắt

đầu từ lắng nghe, giám sát hệ thống, đến trình bày kết quả phân tích thông qua giao

Bên cạnh đó, dé giải quyết vấn dé mat cân bằng trong dữ liệu, chúng tôi đã thiết kế môhình sinh dữ liệu dựa trên kiến trúc mang sinh đối kháng Lượng dit liệu bổ sung có thégiúp tăng hiệu suất phát hiện một số loại tan công của hệ thống phát hiện tan công màchúng ta không cần can thiệp vào cấu trúc thuật toán phân tích dữ liệu

Trang 17

Chương 2 Tổng quan

2.1 Cơ sở lý thuyết

2.1.1 Tổng quan về hệ thống phát hiện xâm nhập

Hệ thống phát hiện xâm nhập, hay còn gọi là Intrusion Detection System (IDS), đóng

một vai trò quan trọng trong việc giữ gìn sự an toàn cho môi trường mạng máy tính của

một công ty, doanh nghiệp IDS hỗ trợ theo dõi các đữ liệu ra vào mạng của một hệ thống nhất định tùy vào vị trí và nhiệm vụ được thiết lập sẵn của chúng, có thể là theo dõi hệ thống của toàn doanh nghiệp, hoặc có thé là một thiết bị máy tính đơn lẻ Từ đây, các định nghĩa về HIDS và NIDS được công nhận và trở nên phé biến: trong khi HIDS là những hệ thống phát hiện xâm nhập được cài đặt và thực thi trên máy chủ, để bảo vệ máy chủ, NIDS mang vai trò bảo vệ hệ thống tại những cửa ngõ mạng, theo dõi bán hoặc toàn phần hệ thống của một doanh nghiệp.

Ngoài phương pháp phân loại IDS dựa trên vị trí trién khai như trên, chúng ta còn có thé

phân loại IDS theo phương pháp phát hiện xâm nhập Hiện nay, dựa trên phương pháp phát

hiện xâm nhập, IDS được chia ra các loại chính như sau: phương pháp dựa trên dấu hiệu, phương pháp dựa trên sự bất thường, và phương pháp kết hợp dựa trên ca dấu hiệu tan công và sự bất thường.

Tổng quan về phân loại IDS được mô tả như hình sau đây:

/sss phát hiện

xâm nhập

Dựa trên vị trí triển khai Dựa trên phương pháp

phát hiện tấn công

Dựa trên sự Dựa trên Phương pháp

HIDS NIDS bất thường dấu hiệu kết hợp

7

Trang 18

Hình 2.1 Phân loại hệ thống phát hiện xâm nhập IDS dựa trên dấu hiệu phát hiện cuộc tan công thông qua kết quả phân tích điểm đặc trưng của những cuộc tan công trước, mang lại hiệu quả cao trong phát hiện những cuộc tan công biết trước và có tỉ lệ dương tính giả (FPR) rất thấp [14] Phương pháp phát hiện tắn công này gap một số điểm hạn chế như sau [15]:

- IDS dựa trên dấu hiệu chỉ có thé phát hiện các cuộc tắn công đã từng xảy ra, cùng

với đó phải có sự phân tích kĩ càng cho từng loại tan công Vì vậy, với các cuộc tan công mới, hệ thống sẽ khó có khả năng phát hiện hay ngăn chặn sớm, mà phải đối mặt với rủi ro trong một thời gian, ít nhất cho đến khi phân tích thành công loại tan

công đó.

- Ngày càng nhiều cuộc tấn công mới và các điểm đặc trưng cho các loại tan công

cũng nhiều lên, điều này khiến việc dò tìm điểm tương đồng giữa dữ liệu và đặc điểm tan công trở nên tốn thời gian hơn và từ đó giảm hiệu suất của IDS.

- IDS dựa trên dấu hiện thường cần sự giúp đỡ từ các chuyên gia để hỗ trợ phân tích

các đặc trưng cuộc tấn công Đối với một số cuộc tấn công phức tạp, việc tìm ra đặc trưng là không dễ dàng và có thể mắt rất nhiều thời gian.

IDS dựa trên sự bat thường quan sát hành vi từ mạng của doanh nghiệp và đưa ra nhận định về sự bình thường Tắt cả các hành vi khác với sự quan sát ban đầu của hệ thống này đều sẽ được đánh đấu là hành vi bất thường, sự tấn công hay xâm nhập Phương pháp phát hiện dựa trên sự bất thường có thể sử dụng các thuật toán máy học không giám sát đề phát hiện các cuộc tấn công mới mà không cần thông tin trước về sự tấn công, nhưng đổi lại là

tỉ lệ dương tính giả sẽ có xu hướng tăng lên [14] Phương pháp phát hiện này có độ chính

xác cao trong phát hiện các cuộc tan công ở lớp mang, ví dự như: SYN flood, Teardrop, DOS, Nhưng đổi lại là giảm độ chính xác khi phát hiện các cuộc tan công khai thác như Remote to Local (R2L) va User to Root (U2R) Tắt cả các IDS dựa trên sự bat thường đều

sử dụng các trường từ header của gói tin ví dụ như các cờ, port number, địa chỉ IP, vi

vậy chúng sẽ hoạt động hiệu quả đối với các cuộc tấn công liên quan tới sự thay đổi của

8

Trang 19

các trường này.

Ngoài ra, phương pháp kết hợp dựa trên cả dấu hiệu tan công và sự bất thường được phát

triển để hạn chế điểm yêu của hai phương pháp phát hiện kể trên Phương pháp nay day

mạnh độ chính xác cũng như giảm tỉ lệ FPR để cung cấp sự bảo vệ tốt nhất đến cho hệ

thống của doanh nghiệp [14].

Tổng quan về đặc trưng của các loại phương pháp phát hiện cuộc tấn công:

Phương pháp phát hiện | Tỉ lệ dương Ấn đã Hao tốn tài Độ linh Độ tin

An tẾn ak re Toc độ Ạ N VÀ

cuộc tần công tính giả ' nguyên hoạt cậy

Dựa trên sự bat thường Cao Không tôi Cao Cao Trung

ưu bình

Dựa trên dấu hiệu Thấp Tối ưu Thấp Thấp Cao

Ket hop gia sự bat thường Trung binh | Trung binh Cao Cao Cao

va dau hiéu

Bang 2.1 Đặc trưng của các loại phương pháp phát hiện cuộc tan công [14]

2.1.2 Ky thuật học máy trong phát hiện xâm nhập

Với sự phát triển trong học máy (Machine Learning), các hệ thống IDS đã có khả năng tự

động hóa trong việc xác định được các dấu hiệu hay đặc tính của dữ liệu, giảm thiểu sự can

thiệp hay phân tích từ con người [16] Các kĩ thuật học máy được công nhận rộng rãi trong

giới nghiên cứu trong việc tăng tỷ lệ phát hiện, giảm tỷ lệ cảnh báo sai, một số mô hình

còn giảm được mức độ phức tạp trong tính toán, tăng hiệu suất phát hiện [16] Có nhiều

phương pháp phân loại các mô hình học máy, trong đó phổ biến nhất là phương pháp dua

trên việc dán nhãn của tập dữ liệu đâu vào.

- Học có giám sát: Các tập dữ liệu đầu vào được yêu cầu gắn nhãn trước khi đưa vào

huấn luyện cho mô hình máy học Học có giám sát là thuật toán dự đoán đầu ra của một đữ liệu dựa trên các cặp đầu vào và kết quả đã biết trước Đây là phương pháp huấn luyện phổ biến nhất trong học máy Ví dụ về các thuật toán học máy bao gồm

Support Vector Machine (SVM) được sử dụng cho các bài toán phân loại hoặc

9

Trang 20

Random Forest được sử dụng trong cả bài toán phân loại và hồi quy Một số đặc tính của SVM bao gồm: tính toán hiệu quả trong tập dữ liệu có số chiều lớn, tính linh hoạt được sử dụng dé giải quyết nhiều van đề thực tiễn, và nhược điểm tiêu tốn lượng lớn tài nguyên, đòi hỏi khả năng xử lí tính toán và bộ nhớ lớn Đối với Random Forest, ưu điểm là khả năng xử lí hiệu quả tập dữ liệu lớn và mat cân bằng, nhưng bên cạnh đó là khả năng sẽ overfitting đối với một số bài toán phân loại.

Học không giám sát: Trong thuật toán này, tập dữ liệu đầu vào không được dán nhãn trước khi đưa vào huấn luyện mô hình Các thuật toán học không giám sát sẽ học cấu trúc của dữ liệu để thực hiện một số công việc cụ thể, ví dụ như phân nhóm (clustering) hoặc giảm số chiều của tập dữ liệu Một bài toán phân nhóm sẽ chia toàn bộ tập dữ liệu X thành các nhóm nhỏ dựa trên sự liên quan giữa các dữ liệu trong nhóm, chẳng hạn như thuật toán Kmeans Clustering có thé được áp dung dé chia tập dữ liệu network thành hai loại dữ liệu bình thường và dữ liệu bất bình thường Ngoài ra, bài toán giảm số chiều dữ liệu có thé là minh họa của thuật toán Principal Component Analysis (PCA) PCA là thuật toán được sử dụng để tối ưu việc học các đặc trưng trong IDS thông qua giảm số đặc trưng của dữ liệu Nhiều nhà nghiên cứu đã sử dụng PCA để lựa chọn đặc trưng trước khi áp dụng các thuật

toán phân loại.

Học bán giám sát: Các bài toán khi chúng ta có một lượng lớn dữ liệu X nhưng chỉ

một phan trong số chúng được dán nhãn Những mô hình này sử dụng cả hai tập dữ liệu dán nhãn và không dãn nhãn để tối ưu hóa nhiệm vụ của chúng Ví dụ điển hình của nhóm này là chỉ một phan dữ liệu mạng được gán nhãn, và phan lớn các dữ liệu mạng còn lại chưa được gán nhãn do thu thập từ internet Trong thực tế, có rất nhiều bài toán học máy được huấn luyện dựa trên phương pháp này, do những khó khăn trong việc gán nhãn cho dữ liệu Một loại mô hình tiêu biểu liên quan đến học bán giám sát có thé ké đến những mô hình mạng sinh Các mô hình mang sinh sẽ học từ

dữ liệu dán nhãn dé tạo ra những giả định riêng, và sử dụng những dữ liệu chưa dán nhãn dé kiểm chứng các giả định đó Nếu giả định của mô hình mang sinh là đúng,

10

Trang 21

điều đó có nghĩa mô hình ban đầu đã học tốt các đặc trưng của dữ liệu, nếu ngược

lại, giả định của mô hình sai với các dữ liệu chưa được dán nhãn, độ chính xác của

mô hình sẽ giảm và sẽ phải củng cố những giả định mà chúng đã học được.

Thuật toán học sâu (Deep Learning) là một tập con của học máy, được phát triển để bắt

chước hoạt động của não bộ người trong việc xử lí dữ liệu và tạo ra các đặc tính một cách

tự nhiên Học sâu cho phép biểu diễn một tập dữ liệu thành nhiều mức độ tổng quát hóa khác nhau Trong quá trình huấn luyện, các thuật toán bóc tách những đặc trưng từ dữ liệu,

phân nhóm các đối tượng và ghi nhớ những tính chất quan trọng của dữ liệu [17, 18] Một

số các thuật toán học sâu phổ biến hiện nay bao gồm: Convolutional Neural Networks

(CNN), Long Shorterm Memory (LSTM), Recurrent Neural Networks (RNN), Generative Adversarial Networks (GAN)

CNN hay còn được biết đến là ConvNets, được cấu thành từ nhiều lớp và được sử dụng chủ yếu cho xử lý hình ảnh và phân loại đồ vật [18] CNN được phát triển lần đầu năm 1988 bởi Yann LeCun [19] và được gọi là LeNet, được sử dụng để nhận diện các mã ZIP hoặc nhận diện chữ sé Ngày nay, CNN được sử dụng rộng rãi trong nhận diện hình ảnh vệ tỉnh, hình ảnh trong y tế và phát hiện các bất thường trong dữ liệu mạng [19] Một mô hình CNN sẽ bao gồm nhiều lớp được sử dụng dé

xử lí và trích xuất các thuộc tính từ dữ liệu Các lớp trong mô hình CNN có thê được

kể đến như: convolution, ReLU, Max Pooling, Fully connected layer với mỗi nhiệm

vụ và chức năng khác nhau.

Long Short Term Memory (LSTM) là một loại Recurrent Neual Network, chúng có

thể học và ghi nhớ mối liên kết giữa các đặc tính trước đó Việc ghi nhớ và học hỏi

dựa trên những thông tin trước là một đặc tính mặc định có trong LSTM Vì lí do

kể trên, LSTM được sử dụng hiệu quả trong các bài toán phân loại khi dữ liệu chứa các đặc trưng phụ thuộc vào chuỗi thời gian, nhận diện giọng nói, nghiên cứu về âm

nhac,

Generative Adversarial Networks (GAN) là những mang học sâu ghi nhớ từ tap dữ

11

Trang 22

liệu sẵn có và từ đó tạo ra tập dữ liệu tương tự so với tập ban đầu GAN bao gồm hai thành phan chính là generator và discriminator Trong khi generator sẽ sinh những dữ liệu giả để qua mặt discriminator, discriminator sẽ học và cải tiến khả năng phân loại giữa dữ liệu gốc ban đầu và dữ liệu được tạo ra bởi generator Mô hình GAN ngày càng được ứng dụng rộng rãi Chúng có thể được sử dụng các nghiên cứu về thiên văn học dé tăng cường độ sắc nét trong hình ảnh hoặc sử dụng trong công nghiệp game đề chuyển các game 2D, phân giải thấp thành những game

độ phân giải cao hơn.

2.1.3 Tổng quan về mạng sinh đối kháng

Mạng sinh đối kháng (Generative Adversarial Network) là một mô hình học máy được thiết kế boi lan Goodfellow và đồng nghiệp của ông vào tháng 6 năm 2014 [20] Mạng sinh đối kháng học cách tạo ra dữ liệu mới với những phân phối giống với tập dữ liệu ban đầu.

Ví dụ, một GAN được đào tạo về ảnh có thể tạo ra những bức ảnh mới nhìn bề ngoài chúng

ta sẽ nghĩ nó là một bức ảnh thực tế nhưng thật sự hoàn toàn do máy tính tạo ra Mặc dù ban đầu được dé xuất như một dạng mô hình chung cho việc học không giám sát, GAN cũng cho thấy sự hiệu quả trong việc học bán giám sát, học có giám sát và học tăng cường (reinforcement learning).

Mô hình GAN bao gồm hai thành phan chính là discriminator va generator Ý tưởng cốt lõi của GAN dựa trên việc đào tạo gián tiếp thông qua thành phần discriminator Đây là một mạng nơ-ron có thể cho biết một mẫu đầu vào có phải “thật” hay không Bản thân discriminator sẽ được cập nhật một cách tự động để cải thiện khả năng phân loại thật — giả trong suốt quá trình huấn luyện Về cơ bản, điều này có nghĩa là thành phần generator không được dao tạo đề giảm thiểu sự khác biệt với dữ liệu “that” ban đầu, mà chỉ dang phát triển dé đánh lừa thành phan Discriminator Điều này đã cho phép GAN học theo phương

pháp học không giám sát.

Thanh phan generator tạo ra các đữ liệu giả trong khi discriminator thực hiện đánh giá trên

các dữ liệu đó Mục tiêu đào tao của mang generator là tăng tỷ lệ dự đoán sai của mang

12

Trang 23

discriminator bằng cách tạo ra những dữ liệu hoàn hảo mà discriminator không thể phân biệt được đó là dữ liệu giả Tập dữ liệu ban đầu sẽ đóng vai trò là dữ liệu huấn luyện cho

discriminator.

GAN thường phải chịu trạng thái “mode collapsed”, khi đó chúng không thé học một cách chính xác, từ đó không thể hiện được nhiễu các thuộc tính của dit liệu Ví dụ mô hình GAN được train sử dụng tập dữ liệu MNIST là hình ảnh các chữ số có khả năng sẽ bỏ qua một tập chữ số nhất định và chỉ sinh các chữ số còn lại Một số các nhà nghiên cứu cho rằng nguyên nhân chính là do discriminator hoạt động thiếu hiệu quả, một số khác nghĩ rằng do việc lựa chọn hàm loss không đúng dẫn đến kết quả trên Nhiều giải pháp đã được đề xuất

để giải quyết vấn đề trên, song về việc hội tụ của mô hình GAN, đến hiện tại vẫn đang là

chủ đề mở trong giới khoa học.

Những phát triển sau này của GAN đã cải thiện tốc độ và hiệu suất đào tạo Arjovsky và cộng sự đã giới thiệu mô hình Wasserstein [21], đây là một mô hình GAN cải tiến sử dụng các số đo Wasserstein-1 dé từ đó tính toán một ham loss hiệu quả hơn Trong các ứng dụng khác nhau, chủ yếu tập trung vào hình ảnh [22], GAN đã cho thấy những kết quả đáng chú

ý Ngoài ra, liên quan đến việc tạo ra các dữ liệu độc hại đối kháng, GAN đã được thử

nghiệm trong một số nghiên cứu Trong [23], các tác giả tạo các bản ghi lưu lượng độc hại bằng cách sử dụng GAN, tương tự loại mô hình đó cũng được sử dụng trong [24] để tổng hợp các ví dụ về phần mềm độc hại.

Trong lĩnh vực tạo các dữ liệu dạng bảng, các thuật toán như TGAN [25] và CTGAN [26]

đã cho thay sự hiệu quả hơn GAN va các phương pháp cô điển Nhiều mô hình GAN đã được sử dụng đề xử lý dữ liệu dạng bảng, ví dụ như Kunar và cộng sự đã giới thiệu CTAB- GAN [27], một mô hình GAN có thê mô hình hóa các kiểu dữ liệu dạng bảng với các phân phối phức tạp Trong [28], dữ liệu Tên của hành khách được tổng hợp bằng cách sử dụng Cramer GAN, categorical feature embedding và kiến trúc Cross-Net Các tác giả trong [29]

sử dụng GAN để tạo chuỗi thời gian liên tục trên dữ liệu Hồ sơ sức khỏe điện tử (EHR), trong khi ở [30], MedGAN, kết hợp autoencoder với GAN, được đề xuất dé tạo các biến

13

Trang 24

rời rạc nhiều chiều EHR TableGAN [31] bao gồm lớp Convolutional Discriminator và

deconvvolutional Discriminator dé tăng tính toàn vẹn của dit liệu được tổng hợp Trong[26], CTGAN được đề xuất, sử dung generator có điều kiện dé tạo các dữ liệu dạng bảng.Ngoài ra, CopulaGAN [32] là một biến thể của mô hình CTGAN sử dụng CumulativeDistribution Function (CDF) dé cải tiễn việc đào tạo mô hình CTGAN

2.1.4 Tống quan về các thư viện sử dung trong module web

2.1.4.1 Tensorflow

Tensorflow là một thư viện phần mềm mã nguồn mở hỗ trợ mạnh mẽ các phép toán học détính toán trong machine learning va deep learning, cung cấp khả năng xử lý tính toán sốhọc dựa trên biểu đồ mô tả sự thay đổi của dữ liệu, trong đó các node là các phép tính toán

học còn các cạnh biểu thị luông dữ liệu

Tất cả các kiểu dit liệu khi đưa vào trong tensorflow thì đều được gọi là Tensor Có 3 thuộctính cơ bản là rank, shape và type Rank là số bậc của tensor, khi tensor có rank bang 0chúng được gọi là Scalar, khi tensor có rank bang 1 chúng được gọi là Vector, Matrix làmột Tensor rank 2 (hay mảng hai chiều theo khái niệm của python), khi rank của Tensor

lớn hơn 2, chúng được gọi chung là N-Tensor.

2.1.4.2 CICFlowMeter

CICFlowMeter là thư viện giúp chúng ta tao và phân tích lưu lượng mạng một cách hiệu

quả Nó có thể được sử dụng đề tạo các luồng dữ liệu, trong đó gói đầu tiên xác định các

hướng chuyên tiếp (nguồn tới đích) và ngược (đích đến nguồn), do đó có hơn 70 tinh nănglưu lượng truy cập mạng thống kê như Duration, Number of packets, Number of bytes,Length of packets, vv có thé được tính riêng theo hướng tiến và lùi Các chức năng bồ sungbao gồm, chọn các tính năng từ danh sách các tính năng hiện có, thêm các tính năng mới

và kiểm soát thời hạn của flow timeout Đầu ra của ứng dung là tệp định dang CSV có sáucột được găn nhãn cho mỗi luồng (FlowID, SourceIP, DestinationIP, SourcePort,DestinationPort va Protocol) với hon 70 tinh năng phan tích lưu lượng mang Các luồng

14

Trang 25

TCP thường được kết thúc khi kết thúc sự cố kết nối (bằng gói FIN) trong khi các luồng

UDP bị cham dứt bởi thời gian chờ luỗng Giá trị thời gian chờ dòng có thé được gan tùy

ý bởi sơ đồ riêng, ví dụ: 600 giây cho cả TCP và UDP

Do CICFlowMeter là một thư viện được build sẵn trên pip, nên các feature không phù hợpvới đầu vào của model IDS, nên chúng tôi sẽ tiến hành cập nhật code của flow.py dé có

được những feature phù hợp

2.1.4.3 Django

Django là một framework bậc cao của Python có thé thúc day việc phát trién phần mềmmột cách tinh gọn Được xây dựng bởi nhiều lập trình viên kinh nghiệm, Django tập trunglớn những van dé phát triển Web, có thé phát triển trang web mà không cần xây dựng từnhững căn bản Ngoài ra, Django được phát triển là một framework mã nguồn mở và hoàn

toàn miền phí.

Django đạt tính hoàn thiện cao một phần nhờ vào quá trình phát triển theo tư tưởng

"Batteries included" (có thé hiểu ý nghĩa là đã tích hợp toàn bộ, chi cần gọi ra mà dùng).Framework cung cấp mọi thứ cho developer không cần phải đắn đo, cân nhắc sử dụngnhững thư viện ngoài Chúng ta chỉ cần tập trung vào sản phẩm, tất cả đều hoạt động liềnmạch với nhau Ngoài ra, về tính đa năng, Django có thê được dùng dé xây dựng hau hết

các loại website, từ hệ thống quản lý nội dung, cho đến các trang mạng xã hội hay web tin

tức Nó có thé làm việc với framework client-side, và chuyển nội dung hầu hết các loại

format (HTML, RESS, JSON, XML, ).

Về mặt bảo mật, Django giúp các developer trang bị phương pháp phòng chống các lỗi bảo

mật thông thường bằng cách cung cấp framework có những thao tác mà người dùng bắtbuộc tuân thủ dé chúng ta dé dang bảo vệ website Ví du: Django cung cấp bảo mật quan

lý tên tài khoản và mật khẩu, tránh các lỗi cơ bản như dé thông tin session lên cookie, mãhóa mật khẩu thay vì lưu thắng vào cơ sở dữ liệu

15

Trang 26

2.1.4.4 Keras

Keras được coi là một thư viện ‘high-level’ với phan ‘low-level’ (còn được gọi là backend)

có thé là TensorFlow, CNTK, hoặc Theano (sắp tới Theano sẽ không được duy trì nângcấp nữa) Keras có cú pháp đơn giản hơn TensorFlow rất nhiều Một số ưu điểm của Keras:

ưu tiên trải nghiệm của người lập trình, hỗ trợ huấn luyện trên nhiều GPU phân tán và dễdàng giúp biến các thiết kế thành sản phẩm

2.1.4.5 Scapy

Scapy là một chương trình Python cho phép người dùng gửi, ngửi và phân tích và gia maogói tin mang Kha năng này cho phép xây dựng các công cụ có thé thăm dò, quét hoặcmạng tấn công Nói cách khác, Scapy là một công cụ mạnh mẽ có khả năng thao tác vớicác gói tin mạng Nó có thê giả mạo hoặc bắt các gói giải mã của một số lượng lớn cácgiao thức, tạo gói tin và nhiều hơn nữa Scapy có thé dễ dàng xử ly các nhiệm vụ đơn giảnnhư quét, tra dấu, thăm dò, kiểm tra các cuộc tấn công hoặc phát hiện mạng Nó có thé thaythé hping, arpspoof, arp-sk, arping, p0f và thậm chí một số bộ phận của Nmap, tcpdump,

và tshark) Scapy cũng thê hiện rất tốt trên rất các nhiệm vụ cụ thể khác mà nhiều công cụ

khác hầu như không thê xử lý như gửi các frame không hợp lệ, 802,11 injection, kết hợp

nhiều kỹ thuật như VLAN hopping + ARP cache poisoning, giải mã VOIP trên kênh mã

hóa WEP

2.1.4.6 Scikit-learn

Scikit-learn (Sklearn) là thư viện mạnh mẽ dành cho các thuật toán học máy được viết trênngôn ngữ Python Thư viện cung cấp một tập các công cụ xử lý các bài toán machinelearning và statistical modeling gồm: classification, regression, clustering, vadimensionality reduction Thư viện được cấp phép bản quyền chuẩn FreeBSD và chạy đượctrên nhiều nền tảng Linux Ngoài ra, Scikit-learn hỗ trợ mạnh mẽ trong việc xây dựng cácsản phẩm Nghĩa là thư viện nay tập trung sâu trong việc xây dựng các yếu tố: dé sử dụng,

dễ code, dé tham khảo, dễ làm việc, hiệu quả cao Scikit-learn hỗ trợ mạnh mẽ trong việc

16

Trang 27

xây dựng các sản phẩm Nghĩa là thư viện này tập trung sâu trong việc xây dựng các yếutô: dé sử dụng, dé code, dê tham khảo, dé làm việc, hiệu quả cao

2.2 Các công trình liên quan

An ninh mạng gan đây đã thu hút nhiều sự chú ý hơn do sự phát triển của công nghệ thôngtin, vì vậy lĩnh vực triển khai các hệ thống IDS và tìm cách cải thiện chúng bằng học máy

đã được nghiên cứu rất nhiều [33] Mojtaba và cộng sự đề xuất Passban IDS, một hệ thốngphát hiện xâm nhập được tối ưu hóa việc học tập không giám sát dé phát hiện các điểm batthường và được áp dụng trên một môi trường phần cứng hạn chế [16] Trong [34], các tácgiả đã giới thiệu IDS để phát hiện xâm nhập trực tuyến bằng thuật toán AutoEncoders Cáctác giả trong [35] đã đánh giá ANN, cũng như các thuật toán phân loại khác, cho vấn đềphát hiện xâm nhập mạng và đề xuất một giải pháp dựa trên một nhóm các bộ phân loại sử

dụng các phương pháp dựa trên kết nói Trong [36], các tác giả đã trình bày phương pháptiếp cận phân cấp bao gồm nhiều lớp, chăng hạn như lớp phát hiện bất thường được tạo bởi

một loạt các bộ phân loại ANN Các tác giả trong [37] đã sử dụng nhiều bộ phân loại họcmáy để phát hiện một số kiểu tấn công Các tác giả trong [38] đã trình bày cau trúc phân

tầng của ANN để phát hiện nhiều lớp (CANIDS) Mô hình được đánh giá bằng cách sử

dụng tập dữ liệu UNSW-NBI5 và KDD99, cho độ chính xác tông thé lần lượt là 86,40 %

và 94,96 % Al-Zewairi và cộng sự đã sử dụng bộ phân loại học sâu dựa trên mạng no-ronnhân tạo truyền thăng nhiều lớp được tối ưu hóa bằng cách nhân giống ngược và giảm độdốc ngẫu nhiên một cách chi tiết hơn [39] Nhằm mục đích tối ưu hóa mô hình ANN, cáctác giả trong [40] giảm chi phí tài nguyên tốn kém của thuật toán bang cách sử dụng một

thuật toán lựa chọn đặc trưng hiệu quả tối ưu hơn Kết quả đánh giá trên bộ dữ liệu

UNSW-NB15 và NSL-KDD cho thay mô hình ANN được đề xuất đạt độ chính xác 95,45 % vàvượt trội hơn so với các thuật toán hiện đại.

Đề bảo vệ mạng mô hình, Nguyen et al đã đề xuất một mô hình phát hiện tấn công áp dụngmột tang đa lớp của ANN [41] Các kết quả trên tập dir liệu UNSW-NB15 và KDD99 có

độ chính xác 83,40 % và 79,19 % khi thực hiện đánh giá Để phát hiện các cuộc tấn công

17

Trang 28

ứng dụng web, Moustafa et al đã trình bày một hệ thống phát hiện dựa trên sự bat thường

[42] bao gồm một bộ thu thập dữ liệu mạng trong thế giới thực, một mô-đun lựa chọn tính

năng động cho dữ liệu ứng dụng web bằng cách sử dụng association rule mining, và mộtmô-đun phân loại Outlier Gaussian Mixture đã được tối ưu hóa

Trong [43], các tác giả đã đề xuất một IDS đề bảo vệ các hệ thống vật lý mạng IDS được

dé xuất kết hợp mô hình Markov ẩn và mô hình hỗn hợp beta dé phát hiện các mối đe dọa

bao mật Hiệu suất mô hình trên tập dữ liệu UNSW-NBI5 đạt tỷ lệ phát hiện 95,89 %, độchính xác 96,32 % và ty lệ dương tính gia 3,82 %.

Chowdhury và cộng sự đã trình bày một mô hình dựa trên sự kết hợp giữa SimulatedAnnealing và Support Vector Machine [44] Độ chính xác phát hiện của mô hình được đềxuất là khoảng 98,76 %, cao hon SVM ban đầu, chỉ là 88,03 % Các tác giả trong [45] đãđánh giá một số thuật toán nổi tiếng, bao gồm Decision Tree và Reggression Tree, NaiveBayes và SVM, cho thấy sự các IDS không thực sự hiệu quả trong môi trường thực tiễn.Kết quả đánh giá trên bộ dữ liệu UNSW-NBI5 và ISOT chỉ ra rằng hiệu suất phát hiện tancông của các IDS hiện tại có thé khác nhau trong các môi trường đánh giá khác nhau

Nghiên cứu về việc áp dung Generative Adversarial Networks van đang ở giai đoạn pháttriển Trong [46], Chuanlong Yin et al đã sử dung GAN dé xây dựng Bot-GAN, một [47]

dé phát hiện các cuộc tấn công Botnet Trong Bot-GAN, generative model được sử dụng

để tạo ra lượng dữ liệu có thể vượt qua IDS ban dau Trong [47], cac tac gia da dé xuất một

framework dựa trên GAN dé đánh giá các cuộc tan công mạng vào lưới năng lượng thông

minh Framework sử dụng bộ tạo GAN để tạo ra lưu lượng truy cập bất thường nhằm đánh

giá trình bảo vệ hệ thống hiện có JooHwa Lee và cộng sự đã trình bày một hệ thống pháthiện xâm nhập mạng hiệu suất cao dựa trên mô hình GAN kết hợp unsupervised learningmodel autoencoder (AE-CGAN) [48] AE-CGAN sử dung unsupervised learning

autoencoder va GAN dé giải quyết sự mat cân bằng giữa lưu lượng bình thường va bat

thường nhằm tăng hiệu suất phát hiện Tương tự, mô hình Flow-WGAN đã được giới thiệu trong [49] dé tạo di liệu lưu lượng mạng mới từ các tập dữ liệu sốc nhằm nâng cao lượng

18

Trang 29

dữ liệu đào tạo và bảo vệ quyền riêng tư của người dùng Các tác giả trong [50] đã đề xuất

G-IDS để giải quyết việc thiếu dữ liệu đào tao cho IDS trong ngữ cảnh hệ thống vật lýmạng (CPS) Trong G-IDS, GAN chịu trách nhiệm tạo ra các mẫu tổng hợp, sau đó được

kết hop với dữ liệu thực dé huấn luyện mô hình phát hiện tan công [51] đã giới thiệu based FID-GAN, một hệ thống phát hiện xâm nhập không giám sát dành cho CPS sử dụng

fog-GAN để phát hiện các cuộc tấn công mạng với yêu cầu độ trễ thấp Đề bảo vệ các mạng

đặc biệt, Huang và cộng sự đã đề xuất một IDS dựa trên imbalanced generative adversarialnetwork (IGAN-IDS) [52] Trong IGAN-IDS, các tac gia đã thêm các bộ loc dữ liệu khôngcân bằng và các lớp chập vào một mô hình GAN điển hình dé tạo ra nhiều mẫu dữ liệu honcho các lớp thiêu số Zhao, Shuang và cộng sự đã sử dụng GAN để tạo ra generative attacks

dé chống lại black box IDS [53]

Các nghiên cứu trong [54, 55] đã chi ra tầm quan trọng của các hệ thống bao vệ cho cácthiết bị IoT, bao gồm cả việc phát triển một IDS hiệu quả, cùng với việc đảm bảo quyền

riêng tư của dữ liệu Mặt khác, việc nghiên cứu và thử nghiệm IDS trên các tập dữ liệu

chưa hoàn chỉnh có thê mang lại kết quả không chính xác [56] [57] trong trường hợp cáctập dữ liệu này không cân bằng, dé giải quyết sự mat cân bằng trong dữ liệu đào tạo, các

nhà nghiên cứu tập trung vào việc lựa chọn các đặc trưng, cụ thể như trong [56, 58, 10]

Nhiều nhóm nghiên cứu đã tiếp nối thành công của học máy, tích hợp học máy vào NIDS

dé nâng cao chất lượng phát hiện tấn công [55, 59] đã cung cấp tong quan chỉ tiết về cáccông nghệ máy học được áp dụng trong an ninh mạng trong thập kỷ qua, bao gồm pháthiện xâm nhập, phát hiện phần mềm độc hại, phát hiện spam, bao gồm cả hệ thống IoT và

hệ thống IoT cũ Đánh giá ngắn gọn về các mô hình học máy trên tập dữ liệu IDS đã đượctrình bày trong [60, 61] [37] đã đề xuất một bộ phân loại mạng hai lớp, REP Tree được sửdụng đầu tiên, thuật toán JRip, Forest PA được sử dụng thứ hai, lấy các tính năng ban đầu

và kết quả lớp đầu tiên làm đầu vào [62, 63] đã nối tiếp thành công của mạng nơ-ron phứchợp trong môi trường mạng và hình ảnh, đề xuất một IDS dựa trên mô hình LeNet-5 CNN,

áp dung normalization và One hot encoding dé cải thiện độ ôn định, độ chính xác tổng thể

19

Trang 30

là 97,53 %, được đánh giá trên tập dữ liệu KDD Cup99 [54] đã giới thiệu một IDS dựa

trên mạng DNN Các tác giả trong [17] đã triển khai tính tốn phân tán Apache Spark, tíchhop với thư viện deep learning Keras và các kỹ thuật tổng hop Apache Spark MachineLearning, độ chính xác cao nhất cho phân loại multiclass là DNN, đạt 97,01 % trên tập dữliệu UNSW-NBI5 và 99,56 % trên tập dữ liệu CICIDS2017.

Các tác giả trong [10] đã thực hiện so sánh giữa một số thuật tốn Học máy và Học sâu,

bao gồm Deep Learning algorithms, including Decision Tree, Random Forest, K-nearestNeighbors, Logistic Regression, Naive Bayes, Support Vector Machine, va ANN Tuy

nhiên, nhĩm tác gia tập trung nhiều hơn vào bài tốn Feature Selection nên các thuật tốnphân loại trên chưa được đánh giá một cách kĩ lưỡng So sánh giữa nhiều mơ hình Họcmáy được thực hiện trong [64], kết quả được đánh giá trên UNSW-NBI5 Trong đĩ,REPTree cĩ độ chính xác tơng thê tốt nhất là 87,37 % và Tỷ lệ báo động sai thấp nhất [65]

đã cung cấp một nhĩm các thuật tốn học máy xếp chồng lên nhau, bao gồm lớp đầu tiêncủa Random Forest, Logistic Regression, KNN và lớp thứ hai được tối ưu hĩa bằng SVM.Kết quả cho thay độ chính xác 94,27 % trong phân loại nhị phân UNSW-NBI5 và độ chínhxác 82,22 % trong phân loại multiclass [66] cũng đề xuất phát hiện xâm nhập mang haigiai đoạn trên tập dữ liệu UNSW-NBI5 Giai đoạn đầu tiên sử dụng các kỹ thuật khai thác

dữ liệu như Logistic Regression, Gradient Boost Machine va Support Vector Machine déthực hiện phân loại nhị phân; giai đoạn thứ hai triển khai các bộ phân loại đa thức để phânloại các kiểu tấn cơng bằng cách sử dụng Cây quyết định (C5.0), Nạve Bayes và Máyvectơ hỗ trợ đa thức Độ chính xác đạt được cho mỗi mơ hình lần lượt là 72,72 %, 60,70

% và 70,21 % [67] đã đề xuất Dendron IDS, đánh giá Cây quyết định và Thuật tốn di

truyền dé tạo ra các quy tắc phát hiện mới Các thử nghiệm được thực hiện trên KDDCup99,NSL-KDD và UNSW-NBI5 lần lượt cho thay 98,85 %, 97,55 % và 84,33 %

20

Trang 31

Chương 3 Nội dung và phương pháp

3.1 Tổng quan giải pháp

Network NetworkNetwork Flow Feature Features

i> Trained Models

21

Trang 32

được minh họa trong hình 2, bao gồm luéng chạy của dữ liệu và các thành phan chính trong

từng giai đoạn Cụ thé, IMIDS sẽ bao gồm các thành phan chính sau đây:

Khối thu thập dữ liệu (Network capture block) có nhiệm vụ lang nghe các gói dữliệu trực tiếp từ một interface va trả kết quả về dang pcap Trong mô hình hiện tại,

khối network capture được thiết kế băng thư viện Scapy.

Khối trích xuất thuộc tính (Feature extraction) sẽ nhận các gói tin pcap được gửi từ

Network Capture Trong khối trích xuất thuộc tinh, các dữ liệu sẽ được tổng hợp lạitheo từng flow, theo từng source, dest IP, source, dest port, Ngoài ra, các thuộctính khác cũng sẽ được tong hop theo tiéu chuẩn của các tập dữ liệu được sử dụngrộng rãi, ví dụ như CICIDS2017 Sau khi qua lớp trích xuất thuộc tính, đữ liệu sẽphù hợp với mô hình học sâu nhằm thực hiện huấn luyện và phân tích các cuộc tấn

công.

Khối huấn luyện / phân tích các cuộc tấn công tương ứng với hai chế độ hoạt độngcủa mô hình học sâu Trong giai đoạn phân tích dữ liệu, mô hình phân tích sử dụng

thuật toán học sâu sẽ phát hiện các hoạt động bất thường trên kết quả dữ liệu được

trả về bởi khối Feature extraction Trong khi đó, ở giai đoạn huấn luyện các tập dữliệu bổ sung sẽ được sử dụng dé cập nhật các parameter của mô hình học sâu, đượcthực hiện khi chúng ta có sự thay đổi trong mang và muốn thiết lập các trạng tháibình thường mới Sau quá trình huấn luyện, các thông số của mô hình sẽ được lưulại vào bộ nhớ và được lay ra dé sử dụng trong giai đoạn phân tích tan công Đề duytrì hiệu suất của IDS, chúng ta có thé thường xuyên cập nhật các parameter và cáccuộc tan công mới bang cách huấn luyện bổ sung cho mô hình thông qua giao diện

web Mục tiêu hiện tại là huấn luyện offline, có nghĩa khi thực hiện huấn luyện thì

mô hình sẽ ở trạng thái không được sử dụng dé phát hiện tan công Việc thu thập

các dữ liệu, gán nhãn và huấn luyện sẽ được thực hiện trong khoảng thời gian đó.Sau khi đã hoàn thành việc huấn luyện, mô hình đã được cập nhật thông số và sẵnsàng phân tích các dữ liệu mạng tiếp theo với hiệu suất cao hơn thông qua giao diện

22

Trang 33

Ngoài ra, để bé sung cho vấn đề thiếu dit liệu trong những doanh nghiệp vừa và nhỏ,

chúng tôi đã đặt mục tiêu thiết kế một hệ thống sinh dit liệu mạng hiệu suất cao Chúngtôi sẽ đánh giá mô hình mạng sinh dựa trên sự gia tăng về hiệu suất của IDS sau khi

huân luyện với dữ liệu tạo ra bởi mạng sinh của chúng tôi.

tcpdump được sử dụng dé ghi lại 100 GB raw traffic Bộ dữ liệu này có chin kiểu tấn công,

cụ thể là Fuzzers, Analysis, Backdoor, DoS, Exploits, Generic, Reconnaissance, Shellcode

va Worms Các công cu Argus, Bro-IDS được sử dung và mười hai thuật toán được pháttriển dé tạo ra tông thé 49 features với các class label Cac features nay được mô tả trong

tệp UNSW-NB15_features.csv Tổng số records là 2540044 được lưu trong 4 file csv, lần

lượt là NB15_l.csv, NB15_2.csv, NB15_3.csv, NB15_4.csv Nhãn thật được lưu trong file UNSW-NB15_GT.csv và một list các sự kiệnđược lưu trong UNSW-NB15_LIST_EVENTS csv Một phần nhỏ của datasets được tríchxuất ra để sử dụng như training set và testing set và được lưu lần lượt trongUNSW_NBI15_training-set.csv và UNSW_NB15_testing-set.csv Nhưng vì có một số loạitan công có quá ít samples, nên nhóm tác giả sẽ xử lí toàn bộ 2540044 trong 4 file csv détạo một full dataset chuẩn bị cho quá trình training va testing sau này

UNSW-CICIDS2017: CICIDS2017 bao gồm các dữ liệu bình thường (benign) và các cuộc tấncông mới nhất hiện tại, giống với dit liệu trong thế giới thực Nó cũng bao gồm kết quảphân tích lưu lượng mạng bằng CICFlowMeter với các luồng được gán nhãn dựa trên timestamp, souce IP, destination IP, Khoảng thời gian thu thập dir liệu bat đầu va lúc 9 giờ

23

Trang 34

sáng, thứ Hai, ngày 3 tháng 7 năm 2017 và kết thúc lúc 5 giờ chiều vào thứ 6 ngày 7 tháng

7 năm 2017, tổng cộng 5 ngày Tổng số các loại tấn công là 14 (không tính benign), bao

gồm: DoS Hulk, PortScan, DDoS, DoS GoldenEye, FTP-Patator, SSH-Patator, DoS

slowloris, DoS Slowhttptest, Bot, Web Attack-Brute Force, Web Attack-XSS, Infiltration,

Web Attack-Sql Injection, Heartbleed Tổng số records là 2830743 được lưu vào các file

.csv tương Ứng với ngày capture.

3.3 Mô hình phát hiện và phân loại các cuộc tan công

3.3.1 Tiền xử lí dữ liệu

Đối với tập dữ liệu UNSW-NB15: Toàn bộ dữ liệu trong 4 files csv sẽ được join lại thành

1 file thống nhất đề xử lí nhanh hơn, file này gồm 2540044 records Các mô tả xử lí dữ liệu

dưới đây được thực hiện trên training set (testing set tương tự) Dataset bao gồm 49 features

được chia làm 3 loại Categorical: proto, state, service, attack_cat; Binary:

is_sm_ips_ports, is_ftp_login; Numerical: các features con lại

et sry sre

ct_srv_dst

ct_dst_ltm ct_src_1tm ct_src_dport_1tm ct_dst_sport_ltm ct_dst_src_ltm

attack_cat 155286

label

dtype: int64

€@© h) Gœ ŒG@ @ ŒG@œ @œ ŒG@ @ œ

Hình 3.2 Tổng số giá trị null trong các features

Trong attack_cat không có kiểu normal nên ta sẽ thay thé Null bằng normal

24

Trang 35

normal 1552862 generic 150906

exploits 31507 fuzzers 16914

dos 11433 reconnaissance 9764 analysis 1855 backdoor 1242

shellcode 1055

backdoors 374

worms 128

Name: attack_cat, dtype: int64

Hình 3.3 1552862 null attack cat được chuyên thành normal

Sửa các features về đúng format:

Numerical feature:

[ ] # In the research paper it was mentioned that, this is a numerical feature not a categorical

train[ 'ct_ftp_cmd" ].unique(}

array([@, ' ', 1, '1', '@', 5, 2, 3, 4, '4', 6, ‘2°, 8], dtype=object)

[ ] # Removing empty space and converting it to numerical

train[ "ct_ftp_cmd'] = train[ 'ct ftp_cmd'].replace(to replace=' ', value=8).astype(int)

[ ] train['ct ftp_cmd' ].unique(}

array([8, 1, 5, 2, 3, 4, 6, 8])

Hình 3.4 Chỉnh sửa feature ct_ftp_cmd

Binary feature:

[ 1 train['is ftp login'] = np.where(train[‘is_ ftp_login']>1, 1, train['is_ftp_login' ])

O train[ '1s_ftp_login" ].value_counts()

a 1747573

1 38459

Name: is ftp login, dtype: inté4

25

Trang 36

http 144555 http 144555

ftp-data 88318 ftp-data 88318

dhcp 124 dhcp 124

ssl 189 ssl 188

=nmp 81

snmp 81 ñ

: radius 27 radius 27

F irc 28

irc 28

Name: service, dtype: int64 Name: service, đtype: int64

Hình 3.6 Service feature trước (bên trái) và sau khi chỉnh sửa (bên phải)

Có 2 backdoor trong feature attack_cat trong khi mô tả số loại tắn công chỉ chỉ 9, nên ta sédồn lại thành 1 là backdoors:

© train[ 'attack_cat"' ].value_counts(}

@ normal 1552862

generic 1589086

exploits 31587 fuzzers 16914

dos 11433

reconnaissance 9764 analysis 1855

backdoor 1242

shellcode 1855 backdoors 374 worms 128

Name: attack cat, dtype: int64

[ ] train['attack_cat'] = train[ 'attack_cat'].replace( 'backdoors '„ ‘backdoor’, regex=True).apply(lambda x: x.strip().lower())

Hình 3.7 Gộp hai loại label “backdoor” và “backdoors”

Loại bỏ các features có độ tương quan cao (high correlation):

26

Trang 37

sbytes dbytes dbytes sttl sttl dloss swin stime tcprtt tcprtt ct_srv_src ct_srv_src ct_srv_dst ct_dst_ltm ct_dst_ltm ct_src_ltm ct_src_dport_ltm ct_src_dport_1tm

Các feature có độ tương quan lớn hơn 0.9:

sloss Gloss dpkts ct_state_tt1 label

dpkts

dwin ltime synack ackdat ct_srv_dst ct_dst_src_ltm ct_dst_src_ltm ct_src_1tm

ct_src_dport_1tm ct_src_dport_ltm ct_dst_sport_ltm ct_đst_src_1tm

@.9515464133719798

@.9912941785195651 0.97057271897777

@.9214458873937755

@.9169191341145184

Hình 3.9 Cac Feature có độ tương quan lớn hơn 0.9

Loại bỏ một số feature có độ tương quan lớn hơn 0.95:

27

Trang 38

[ ] # Me don"t want to use these features for plotting because these are having high corr

# And most likely have same kind of plots with already plotted feature print(to_drop}

['sloss', "dloss', 'dpkts', 'duin', '1time', 'ct srv dst', 'ct src dport ltm', 'ct dst src ltm']

Hình 3.10 Loại bỏ một số feature có độ tương quan lớn hơn 0.95

Bỏ các feature không cần thiết cho classification như souce ip, dest ip:

[ ] # Dropping columns which are not useful for the classification

# attack cat is for multiclass classification

# all the other columns are address related and not present in sample train data train.drop(["srcip', 'sport", 'dstip', 'dsport';'attack cat†'], axis=1, inplace=True}

Hình 3.11 Các features không cần thiết cho classification

Thêm feature mới network bytes, là sự tổng hợp của source bytes va dest bytes:

[ ] # creating new features

train[ 'network_bytes'] = train['sbytes'] + train["dhytes' ]

Hinh 3.12 Tao network_bytes feature Apply log1p trên các cột numerical:

proto state sttl sjit loglp djit_logip mnetwork_bytes_logip

1778831 tcp FIN 31 9.177559 5.481926 7.754919

Hình 3.13 Cac cột numerical sau khi apply loglp

Standardlize

Do phạm vi của một sô features rat lớn, nên ta sẽ chuân hóa dữ liệu dé tat cả các features

sẽ có giá trị trung bình là 0 và độ lệch chuẩn là 1:

28

Trang 39

[ ] # Standardizing the data

scaler = Standardscaler()

scaler = scaler.fit(x_train[num_col])

[ ] x_train[num_co1] = scaler.transform(x_train[num_co1])

[ ] x train.head()

proto state sttl dttl service swin trans_depth res_bdy_len stime sintpkt dintpkt tcprtt synack ackdat 1s sm ips ports ct_state ttl ct_flw_http_mthd

0 udp INT 2561444 -0.717760 None -1.196045 0.225343 0.089113 -1.172764 -0.057567 -0.055099 -0.136439 -0.128893 -0.123848

udp INT -0037542 -0.717760 dns -1.196045 0.225343 0.089113 0868469 -0.069616 -0.055099 -0136439 -0128893 -0 123846

tp FIN -04286051 -0.041365 None 0.836096 0.225343 -0.089113 -1.157401 -0.069485 -0.054857 -0.121383 -0.107394 -0.118110

tep FIN -0.426051 -0.041365 fip 0.836096 0.225343 0.089113 -1.136357 -0063807 -0.044512 -0.120830 -0.107159 -0.117296

een os tp FIN -0.426051 -0.041365 None 0.836096 0.225343 -0.089113 -1.144197 -0.069180 -0.054358 -0.123351 -0.110421 -0.118624

Hình 3.14 Standardlize dữ liệu

One-hot encoding:

Convert các categorical columns thành numerical columns:

{1

# We are onehot encoding the given colum

# Remove the original categorical colum

for col, ohe in zip(['proto', ‘service’, "state'], [ohe_proto, ohe_service, ohe_state]):

x = ohe.transforn(x_train{col].values.reshape(-1,1))

x train = pd.concat([x_train.drop(col, axis=1), trọ df], axis=1)

Hình 3.15 Dữ liệu sau one-hot encoding

Sau khi quá trình xử lí dữ liệu hoàn tat, ta sẽ có 197 features:

[ ] x train.dtypes

sttl Floate4 dttl floats4

Hình 3.16 Tổng số features sau khi preprocessing

00 00 00 00 00

00 00 00 00 00

Đối với tập dữ liệu CICIDS 2017: Trong 8 file csv của CICIDS2017, file

Thursday-29

Trang 40

WorkingHours-Morning-WebAttacks.pcap_ISCX.csv tồn tại một số kí tự không xác định,

thay thé các kí tự đó bằng kí tự ‘-*:

for old label, new label in labels.items():

df.Label.replace(old label, new_label, inplace=True)

# Renaming labels _renaming class label(df}

Hình 3.17 Thay thé các kí tự không xác địnhXóa các records chỉ bao gồm NaN values trong file Thursday-WorkingHours-Morning-

df = pd.read_csv(file_name, skipinitialspace-True, error_bad_lines-False)

# Show number of NaN rows

print(“Removing {} rows that contains only NaN values ".format(df[df.isna().all(axis-1)].shape[@]))

# Remove NaN rows

df = df[~ df.isna().all(axis=1)]

Plain Text

oca1/1ib/pyth st-packages/IPython/core/interactiveshell.py:2718: DtypeWarning: Columns (Ø,1,3,6,84) have mixed types.Specify dtype option on import

lo low_memory=Fals'

Removing 288602 rows that contains only NaN values

Hình 3.18 Loại bỏ các records chi gồm NaN valuesSau khi thực hiện những bước xử lí cơ bản ban đầu, 8 file sẽ được concat lại dé tạo thành

1 file đồng nhất cho quá trình xử lí:

30

Ngày đăng: 03/11/2024, 18:46