HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

---------------------------------------

Nguyễn Thanh Hoàng

NGHIÊN CỨU GIẢI PHÁP PHÁT HIỆN TẤN CÔNG TRONG MẠNG VẠN VẬT KẾT NỐI SỬ DỤNG HỌC MÁY

ĐỀ ÁN TỐT NGHIỆP THẠC SĨ KỸ THUẬT

(Theo định hướng ứng dụng)

HÀ NỘI - 2023

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG ---------------------------------------

Nguyễn Thanh Hoàng

NGHIÊN CỨU GIẢI PHÁP PHÁT HIỆN TẤN CÔNG TRONG MẠNG VẠN VẬT KẾT NỐI SỬ DỤNG HỌC MÁY

Chuyên ngành: Kĩ thuật viễn thông

Mã số: 8.52.02.08

ĐỀ ÁN TỐT NGHIỆP THẠC SĨ KỸ THUẬT

(Theo định hướng ứng dụng)

NGƯỜI HƯỚNG DẪN KHOA HỌC

TS. Nguyễn Minh Tuấn

HÀ NỘI - NĂM 2023

i

LỜI CAM ĐOAN

Tất cả nội dung trong đề tài Đề án “Nghiên cứu giải pháp phát hiện tấn công

trong mạng vạn vật kết nối sử dụng học máy” được nghiên cứu độc lập dưới sự hướng

dẫn, chỉ bảo, góp ý của TS. Nguyễn Minh Tuấn, giảng viên Khoa Viễn thông 1, Học

viện Công nghệ Bưu chính Viễn thông. Kết quả thể hiện trong đề án là trung thực và

không sao chép dưới mọi hình thức. Các tài liệu tham khảo trong đề án được trích dẫn

đầy đủ, rõ ràng. Tôi xin chịu toàn toàn trách nhiệm với nội dung và hình thức của đề án

Tác giả đề án

Nguyễn Thanh Hoàng

ii

LỜI CẢM ƠN

Lời đầu tiên tôi xin chân thành cảm ơn TS. Nguyễn Minh Tuấn cùng các thầy cô

giáo của khoa Viễn Thông 1 – Học viện Công nghệ Bưu chính Viễn thông đã hỗ trợ,

góp ý, chỉ bảo trong toàn bộ quá trình thực hiện đề án. Đề văn là kết quả của sự nỗ lực

học hỏi, phấn đấu, khắc phục khó khăn dưới sự chỉ bảo, giúp đỡ tận tình của giảng viên

hướng dẫn. Tôi cũng xin cảm ơn gia đình và bạn bè đã tạo điều kiện thuận lợi để tôi có

thể hoàn thành khoá học một cách tốt nhất.

Sau cùng, tôi xin cảm ơn các anh và các bạn học viên của lớp M21CQTE01-B đã

luôn sát cánh và đồng hành cùng tôi trong quá trình học tập tại tại trường và hoàn thành

đề án.

iii

MỤC LỤC LỜI CAM ĐOAN ........................................................................................................ i LỜI CẢM ƠN ............................................................................................................ ii DANH SÁCH BẢNG ................................................................................................. v DANH SÁCH HÌNH VẼ ........................................................................................... vi DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT ............................................... vii MỞ ĐẦU .................................................................................................................... 1 CHƯƠNG 1: GIỚI THIỆU VỀ AN TOÀN THÔNG TIN TRONG IoT ...................... 3

1.1. Tổng quan về công nghệ, hệ thống IoT .............................................................. 3

1.1.1. Công nghệ IoT ............................................................................................. 3 1.1.2. Hệ thống IoT ............................................................................................... 6

1.2. Vấn đề an toàn thông tin trong hệ thống IoT ...................................................... 8

1.2.1. Các lỗ hổng bảo mật của phần mềm và phần sụn ......................................... 9 1.2.2. Truyền thông không an toàn ...................................................................... 10 1.2.3. Rò rỉ dữ liệu từ hệ thống IoT ..................................................................... 10 1.2.4. Rủi ro từ các phần mềm độc hại................................................................. 11 1.2.5. Tấn công mạng .......................................................................................... 12

1.3. Các giải pháp phát hiện tấn công trong hệ thống IoT........................................ 13

1.3.1. Quản lý sự tin cậy ...................................................................................... 13 1.3.2. Sự xác thực ................................................................................................ 15 1.3.3. Hệ thống phát hiện xâm nhập .................................................................... 16 1.3.3.1. Các thành phần chính của một hệ thống IDS........................................... 17 1.3.3.2. Phân loại các hệ thống phát hiện xâm nhập ............................................. 18

1.4. Kết luận chương 1 ............................................................................................ 21

CHƯƠNG 2: GIẢI PHÁP PHÁT HIỆN TẤN CÔNG MẠNG .................................. 22

2.1. Tổng quan về giải pháp IDS trong IoT sử dụng học máy ................................. 22

2.2. Giới thiệu các thuật toán học máy và học sâu sử dụng trong nghiên cứu ....... 25

2.2.1. Rừng ngẫu nhiên ....................................................................................... 25 2.2.2. Đóng bao ................................................................................................... 27 2.2.3. Thúc đẩy.................................................................................................... 29

iv

2.2.4. k láng giềng gần nhất ................................................................................. 31

2.3. Đề xuất mô hình và kiến trúc tổng thể phát hiện tấn công IDS sử dụng học máy ............................................................................................................................... 32

2.4. Giới thiệu về bộ dữ liệu NSL-KDD dùng cho xây dựng, thiết kế IDS .............. 33

2.5. Kết luận chương 2 ............................................................................................ 36

CHƯƠNG 3: THỬ NGHIỆM, ĐỀ XUẤT IDS ......................................................... 37 ỨNG DỤNG TRONG IoT ........................................................................................ 37

3.1. Xử lý và tiền xử lý dữ liệu ............................................................................... 37

3.1.1 Tiền xử lý dữ liệu ....................................................................................... 37 3.1.2. Chuẩn hóa nhỏ nhất – lớn nhất .................................................................. 39

3.2. Lựa chọn đặc tính tối ưu của dữ liệu ................................................................ 40

3.2.1. Loại bỏ đặc tính đệ quy ............................................................................. 40 3.2.2. Xác thực chéo k lần ................................................................................... 42 3.2.3. Triển khai lựa chọn đặc tính tối ưu của dữ liệu .......................................... 43

3.3. Thiết lập, mô phỏng, thử nghiệm hệ thống IDS dựa trên học máy .................... 44

3.4. Phân tích kết quả, so sánh hiệu năng của các IDS sử dụng các thuật toán học máy khác nhau ............................................................................................................... 46

3.4.1. Loại bỏ đặc tính đệ quy ............................................................................ 46 3.4.2. Đánh giá mô hình ...................................................................................... 47 3.4.3. So sánh hiệu năng IDS đề xuất với các nghiên cứu khác ứng dụng học máy, học sâu ................................................................................................................ 49

3.5. Lựa chọn IDS tối ưu áp dụng cho hệ thống IoT ................................................ 51

3.6. Những giới hạn của phương pháp đề xuất ........................................................ 52

3.7. Kết luận chương 3 ............................................................................................ 54

KẾT LUẬN .............................................................................................................. 55 DANH MỤC TÀI LIỆU THAM KHẢO ................................................................... 57 PHỤ LỤC ................................................................................................................. 62

v

DANH SÁCH BẢNG

Bảng 2.1. Số lượng bản ghi của KDDTrain+, KDDTest+, KDDTest-21 ................... 34

Bảng 2.2. Các kiểu tấn công của từng lớp ................................................................. 35

Bảng 2.3. Phân bố dữ liệu của tập huấn luyện và kiểm tra......................................... 35

Bảng 2.4. Các giao thức được các hình thức tấn công sử dụng .................................. 36

Bảng 3.1. Xếp hạng đặc tính dựa vào độ quan trọng .................................................. 46

Bảng 3.2. Hiệu suất xác thực cao nhất của các mô hình ML trên tập dữ liệu xác thực47

Bảng 3.3. Ma trận nhầm lẫn của bộ phân loại Rừng Ngẫu Nhiên .............................. 48

Bảng 3.4. So sánh kết quả mô hình được đề xuất với các nghiên cứu khác................ 50

vi

DANH SÁCH HÌNH VẼ

Hình 1.1. Các ứng dụng phổ biến của IoT .................................................................. 5

Hình 1.2. Sơ lược lịch sử phát triển của IoT ................................................................ 5

Hình 1.3. Kiến trúc của môi trường IoT ...................................................................... 8

Hình 1.4. Một số thách thức IoT phải đối mặt ............................................................. 8

Hình 1.5. Các vấn đề chính về bảo mật trong hệ thống IoT ......................................... 9

Hình 1.6. 5 loại tấn công mạng phổ biến trong hệ thống IoT ..................................... 12

Hình 1.7. Một số hình thức tấn công phổ biến ở các lớp khác nhau của hệ thống IoT 13

Hình 1.8. Các loại quản lý sự tin cậy trong IoT ......................................................... 14

Hình 1.9. Các loại xác thực trong IoT ....................................................................... 16

Hình 1.10. Các thành phần chính của IDS ................................................................. 17

Hình 1.11. Phân loại IDS .......................................................................................... 18

Hình 2.1. Mã giả thuật toán RF cho phân loại và hồi quy .......................................... 26

Hình 2.2. Hình ảnh minh họa cho một bộ phân loại RF ............................................. 27

Hình 2.3. Hình minh họa thuật toán BG .................................................................... 28

Hình 2.4. Hình minh họa thuật toán BS..................................................................... 29

Hình 2.5. Minh họa cho luật k láng giềng gần nhất ................................................... 31

Hình 2.6. Mô hình tổng quan về các bước của phương pháp được đề xuất ................ 32

Hình 2.7. Tấn công theo giao thức bên trong bộ dữ liệu KDDTrain+ ........................ 36

Hình 3.1. Những nhiệm vụ chính trong quá trình tiền xử lý dữ liệu………………… 38

Hình 3.2. Một số phương pháp giảm chiều dữ liệu để lựa chọn đặc tính.................... 41

Hình 3.3. Mô hình hoạt động của xác thực chéo k lần ............................................... 43

Hình 3.4. Thủ tục RFE được thực hiện ...................................................................... 45

Hình 3.5. Đường cong AUC-ROC ............................................................................ 45

Hình 3.6. Đường cong ROC của thuật toán được đề xuất .......................................... 49

vii

DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT

Thuật

ngữ viết Tiếng Anh Nghĩa tiếng Việt

ANN

Artificial neural network

Mạng thần kinh nhân tạo

ARM

Advanced RISC Machine

Máy RISC tiên tiến

AUC

Area Under the Curve

Khu vực dưới đường cong

Adaptive Voting

AV

Bỏ phiếu thích ứng

Bagging

BG

Đóng bao

Boosting

BS

Thuật toán thúc đẩy

CNN

Convolutional Neural Network

Mạng thần kinh tích chập

Cloud Service Provider

CSP

Nhà cung cấp dịch vụ đám mây

Cross Validation

CV

Xác thực chéo

DNN

Deep Neural Network

Mạng thần kinh sâu

DoS

Denial of Service

Tấn công từ chối dịch vụ

DoSL

Denial of Sleep

Tấn công từ chối giấc ngủ

Decision Tree

DT

Cây quyết định

False Negative

FN

Âm tính sai

False Positive

FP

Dương tính sai

False Positive Rate

FPR

Tỉ lệ âm tính đúng

Genetic Algorithms

GA

Thuật toán di truyền

Host-based

Intrusion Detection

Hệ thống phát hiện xâm nhập dựa trên

System

HIDS

máy chủ

ICMP

Internet Control Message Protocol Giao thức thông báo kiểm soát Internet

tắt

viii

IDS

Intrusion Detection System

Hệ thống phát hiện xâm nhập

IoT

Internet of Things

Mạng vạn vật kết nối

KNN

K Nearest Neighbors

K láng giềng gần nhất

LSTM

Long short-term memory

Mạng bộ nhớ dài-ngắn

M2M

Machine to Machine

Máy với Máy

MAC

Media Access Control

Điều khiển truy cập phương tiện

Microprocessor without Interlocked

Bộ vi xử lý không có giai đoạn đường

MIPS

Pipeline Stages

ống ăn khớp với nhau

MitM

Man-in-the-Middle

Tấn công xen giữa

Message

Queuing

Telemetry

MQTT

Transport

Vận chuyển tin nhắn hàng đợi từ xa

MT

Multi Tree

Đa cây

Network-based Intrusion Detection

Hệ thống phát hiện xâm nhập dựa trên

NIDS

System

mạng

PCA

Principal component analysis

Phân tích thành phần chính

PLC

Programmable logic controller

Bộ điều khiển logic khả trình

Probe

Probing

Thăm dò

QoS

Quality of Service

Chất lượng dịch vụ

R2L

Root to Local

Từ nguồn đến địa phương

REST

REpresentational State Transfer

Đại diện cho sự chuyển đổi dữ liệu

RF

Random Forest

Rừng ngẫu nhiên

RFE

Recursive Feature Elimination

Loại bỏ đặc tính đệ quy

RISC

Reduced Instruction Set Computer Tập lệnh máy tính thu gọn

RNN

Recurrent Neural Network

Mạng thần kinh tái phát

ROC

Receiver operating characteristic

Đặc thù vận hành bên nhận

RTOS

Real-time Operating System

Hệ điều hành thời gian thực

SVM

Support Vector Machine

Véc tơ máy hỗ trợ

ix

TCP

Transmission Control Protocol

Giao thức điều khiển truyền dẫn

True Negative

TN

Âm tính đúng

True Positive

TP

Dương tính đúng

True Positive Rate

TPR

Tỉ lệ dương tính đúng

User to Root

U2R

Người dùng đến nguồn

User Datagram Protocol

UDP

Giao thức gói dữ liệu người dùng

WPAN

Wireless Personal Area Network

Mạng khu vực cá nhân không dây

WSN

Wireless Sensor Networks

Mạng cảm biến không dây

1

MỞ ĐẦU

Những tiến bộ gần đây trong công nghệ truyền thông, chẳng hạn như IoT, đã vượt

xa rất nhiều so với các phương pháp cảm biến môi trường xung quanh truyền thống. Các

công nghệ ứng dụng trong IoT cho phép chất lượng cuộc sống của con người được cải

thiện đáng kể thông qua khả năng thu thập, định lượng, phân tích và cung cấp kiến thức,

hiểu biết về môi trường xung quanh [1]. Có thể thấy trong những năm gần đây, IoT là

lĩnh vực mới, phát triển nhanh nhất trong lịch sử điện toán, với ước tính có khoảng 50

tỷ thiết bị vào cuối năm 2020 [3, 4]. Một mặt, các công nghệ IoT đóng một vai trò quan

trọng trong việc cung cấp môi trường cho sự phát triển các ứng dụng thông minh phục

vụ con người như chăm sóc sức khỏe từ xa, nhà thông minh, giao thông thông minh và

giáo dục thông minh. Mặt khác, việc triển khai hệ thống IoT ở quy mô lớn với sự đa

dạng các chủng loại thiết bị mạng, đầu cuối đã đặt ra những thách thức to lớn cho sự an

toàn thông tin trên hệ thống IoT.

Có thể nói, hệ thống IoT là rất phức tạp, được cấu thành từ rất nhiều các thành

phần khác nhau. Do đó, các yêu cầu về vận hành, bảo trì và an toàn thông tin trên quy

mô rộng lớn của toàn hệ thống IoT là rất khó khăn và thách thức không nhỏ cho các nhà

quản lý, điều hành, khai thác hệ thống. Chính vì vậy, giải pháp xây dựng, vận hành hệ

thống mạng IoT phải được xem xét một cách toàn diện để đảm bảo yêu cầu an toàn

thông tin. Hơn nữa, các thiết bị IoT chủ yếu hoạt động một cách tự động, không giám

sát, chủ yếu kết nối qua mạng không dây và không thể hỗ trợ bảo mật phức tạp do bị

hạn chế bởi phần cứng thiết bị [5]. Đặc điểm này đã tạo điều kiện cho kẻ xâm nhập truy

cập trực tiếp vào các thiết bị để đánh cắp thông tin. Do vậy, để giảm thiểu khả năng bị

tấn công, hệ thống IoT đã được thiết kế với tính linh hoạt cao để thích nghi với các điều

kiện bị tấn công không thể dự đoán trước chẳng hạn như các hệ thống y tế thông minh.

Thông thường, sự tấn công, truy cập trái phép xảy ra giữa các thành phần trong

hệ thống IoT mà các thành phần này có sự liên kết hoặc phụ thuộc lẫn nhau. Do vậy,

nguy cơ mất an toàn thông tin là cao hơn nhiều so với các hệ thống mạng máy tính

truyền thống. Hơn nữa, các giải pháp về an toàn thông tin truyền thống cũng trở lên

không hiệu quả đối với sự tấn công bên trong hệ thống IoT [7, 8].

2

Giải pháp hệ thống phát hiện xâm nhập là một cơ chế an toàn thông tin tiên tiến

nhất hiện nay nhằm bảo vệ các thành phần, hệ thống mạng máy tính trong IoT chống lại

sự tấn công, truy cập trái phép, đánh cắp dữ liệu, thông tin trên phạm vi rộng, thời gian

thực. IDS được chia thành IDS dựa trên máy chủ và IDS dựa trên mạng [9]. HIDS sử

dụng các tệp nhật ký để phát hiện tấn công trong khi NIDS sử dụng các mẫu dữ liệu thu

thập trên hệ thống IoT để phát hiện sự xâm nhập trái phép. Việc xây dựng hệ thống IDS

hiệu quả đang gặp rất nhiều thách thức, khó khăn bởi yêu cầu ngày càng cao về độ chính

xác phát hiện tấn công trong khi nội dung và hình thức tấn công trên hệ thống IoT ngày

càng đa dạng, biến đổi nhanh chóng.

Do vậy, với mục tiêu nghiên cứu, tìm hiểu và nắm bắt các giải pháp IDS hiệu quả

ứng dụng trên hệ thống IoT, nội dung đề án tập trung nghiên cứu, xây dựng mô hình hệ

thống IDS thông minh ứng dụng các thuật toán học máy tiên tiến nhất có khả năng xử

lý khối lượng dữ liệu lớn, đáp ứng các yêu cầu về an toàn thông tin trên hệ thống mạng

IoT hiện nay.

Đề án được trình bày theo 03 chương với nội dung chính như sau:

o Chương 1 – Giới thiệu về an toàn thông tin trong IoT: Giới thiệu tổng quan về công nghệ, hệ thống IoT; vấn đề an toàn thông tin trong hệ thống IoT cũng

như các giải pháp phát hiện tấn công trong hệ thống IoT.

o Chương 2 – Giải pháp phát hiện tấn công mạng: Giới thiệu tổng quan về giải pháp phát hiện xâm nhập IDS cho hệ thống, đồng thời trình bày các kỹ thuật học

máy cơ bản đã và đang được sử dụng để xây dựng các hệ thống IDS thông minh

dò tìm, phát hiện tấn công mạng trong hệ thống IoT. Bên cạnh đó dữ liệu dùng

để xây dựng, thử nghiệm cũng được mô tả chi tiết trong chương này.

o Chương 3 – Thử nghiệm, đề xuất IDS ứng dụng trong IoT: Trình bày xử lý dữ liệu tấn công mạng cũng như ứng dụng thuật toán tối ưu RFE nhằm lựa chọn

các đặc tính tiêu biểu nhất đại diện cho dữ liệu tấn công và dữ liệu bình thường.

Ngoài ra, một số thuật toán học máy cũng được mô phỏng sử dụng dữ liệu tấn

công mạng nhằm so sánh, đánh giá và lựa chọn ra mô hình học máy hiệu quả nhất

cho hệ thống IDS ứng dụng trong IoT.

3

CHƯƠNG 1: GIỚI THIỆU VỀ AN TOÀN THÔNG TIN TRONG

IoT

1.1. Tổng quan về công nghệ, hệ thống IoT

1.1.1. Công nghệ IoT

IoT được viết tắt bởi cụm từ Internet of Things – Công nghệ Internet vạn vật,

mang ý nghĩa kết nối mọi thứ với Internet. Trong đó mọi vật đều sẽ được cung cấp các

định danh khác nhau, có khả năng tự động truyền tải dữ liệu qua một mạng lưới không

cần thông qua tương tác giữa máy tính với con người hay con người với con người. Có

thể khái quát rằng IoT đề cập đến những thiết bị vật lý ở tất cả mọi nơi có khả năng kết

nối với nhau, với Internet để biến mọi thứ trở nên chủ động, thông minh hơn. IoT đã ảnh

hưởng đến xã hội hiện đại ở nhiều khía cạnh khác nhau, bao gồm từ các dịch vụ chăm

sóc sức khỏe cá nhân đến các sản phẩm sản xuất trong các ngành công nghiệp [10].

Ngoài ra, những tiến bộ về công nghệ như học máy, học sâu,… đã đóng góp không nhỏ

dẫn đến sự phát triển của công nghệ IoT.

Một số ứng dụng phổ biến trong IoT hiện có là hệ thống tự hành dành cho các

phương tiện giao thông tự động, lưới điện siêu nhỏ phân tán để quản lý, phẩn bổ tài

nguyên năng lượng, các máy bay không người lái để giám sát hoạt động trong các thành

phố thông minh. Có thể thấy, một hệ thống lưới điện siêu nhỏ đại diện cho một ví dụ

điển hình về hệ thống mạng ở lớp vật lý: nó liên kết tất cả các nguồn năng lượng phân

tán với nhau để cung cấp một giải pháp năng lượng toàn diện cho một khu vực địa lý.

Ngoài ra, IoT cũng len lỏi, góp phần làm cho những lĩnh vực quen thuộc với đời

sống hàng ngày của chúng ta trở nên hiện đại hơn, thông minh và thuận tiện hơn. Giáo

dục không chỉ giới hạn trong những cách tiếp cận truyền thống, đặc biệt là sau đại dịch

Covid-19 vừa rồi làm cho các lớp học trực tuyến trở nên ngày càng phổ biến. Bây giờ,

chỉ với các thiết bị thông minh được kết nối mạng, cả giáo viên và học sinh đều thuận

tiện hơn cho việc triển khai, tiếp cận các bài giảng từ bất cứ đâu mà không cần phải gặp

mặt trực tiếp, có thể tiết kiệm rất nhiều thời gian cho việc di chuyển. Bên cạnh đó, các

nền tảng giáo dục hiện đại đang điều chỉnh các thiết bị như sách điện tử có thể tải xuống

và có sẵn các tính năng thu phóng và lưu, bảng thông minh thay vì bảng đen có thể được

4

sử dụng làm bảng trắng để viết bằng bút dạ và cũng có thể hiển thị hình ảnh liên quan

đến chủ đề và đồ họa cho học sinh [11]. Ngoài ra, các ứng dụng dùng để triển khai học

trực tuyến đều có các chức năng quản lí thời gian ra vào lớp học của học sinh dẫn đến

Tự động

Đo lường thông

Thông báo thông

Nơi ở người

Quản lý cảm biến

Quản lý năng lượ

ế ậ

Bảo vệ

Giải trí

Kết nối phòng ọBảo vệ trường ọ

Giáo dục thông

Lưới điện thông

Quản lý năng lượ

Theo dõi hoạt động

Thiết bị đeo thông

sự thuận tiện hơn cho giảng viên về vấn đề quản lí lớp học.

Quần áo thông

Chống trộm

Ứng dụng IoT

Nông nghiệp

Quản lý chất lượng đấQuản lý nước Tự động hoá

Thành phố thông

Giao thông

Ô tô tự lái

Chăm sóc sức khoẻ thông

Quản lý rác ảQuản lý chất lượng không

Lịch sử thăm Chăm sóc người

Bảo vệ thông

Chẩn đoán từ

Quản lý bệnh nhân ừ

CV2X

Quản lý đội Giải

Thông tin thời gian

Hình 1. 1: Các ứng dụng phổ biến của IoT

Bên cạnh giáo dục, lĩnh vực chăm sóc sức khỏe cũng đã thay đổi với sự ra đời

của IoT, những thiết bị đeo được dùng để quản lí tình trạng sức khỏe của người sử dụng

được ứng dụng rộng rãi. Vòng đeo thể dục, vòng bít theo dõi nhịp tim, vòng đo huyết

áp, máy đo đường huyết và các thiết bị chăm sóc sức khỏe thông minh tiên tiến hơn

được ra đời nhằm cung cấp cho bệnh nhân tình trạng sức khỏe được cá nhân hóa theo

thời gian thực. Những thiết bị này nhắc nhở bệnh nhân kiểm tra thường xuyên mức tiêu

thụ calo của họ, cải thiện thói quen tập thể dục, xác định xu hướng thay đổi huyết áp,

v.v. Đối với bệnh nhân cao tuổi, điều quan trọng là phải theo dõi tình trạng sức khỏe của

họ hàng ngày và các thiết bị chăm sóc sức khỏe thông minh giúp cuộc sống của họ dễ

5

dàng hơn bằng cách cho họ biết trước mọi nguy cơ có thể xảy ra. Các thiết bị này được

tích hợp cảm biến IoT nhằm hỗ trợ các bác sĩ theo dõi tình trạng chẩn đoán y tế của bệnh

nhân một cách hiệu quả. Việc lập kế hoạch điều trị cho bệnh nhân, cảnh giác về những

bệnh nhân cần điều trị y tế ngay lập tức đều có thể được thực hiện một cách dễ dàng.

Với các cảm biến chất lượng vượt trội, các thiết bị đeo này thu thập dữ liệu từ các thiết

bị khác nhau được yêu cầu để theo dõi mọi cải thiện hoặc diễn biến xấu đi dù nhỏ nhất

liên quan tới sức khỏe của bệnh nhân. Chuyên gia chăm sóc sức khỏe có thể nhận thức

rõ hơn về bệnh nhân và có thể chủ động kết nối với họ. Bên cạnh đó, các thiết bị IoT

giúp lưu giữ hồ sơ có hệ thống và đơn giản về tiền sử bệnh trước đây của từng bệnh

nhân để từ đó xác định phương pháp điều trị tốt nhất cho bệnh nhân [12].

Hình 1. 2. Sơ lược lịch sử phát triển của IoT

Một lĩnh vực khác cũng quan trọng không kém đó là nông nghiệp cũng có những

bước chuyển mình rõ rệt với những ứng dụng của các thiết bị IoT. Nông nghiệp thông

minh dựa trên công nghệ IoT cho phép người trồng trọt giảm chất thải và nâng cao năng

suất, cho phép sử dụng hiệu quả các nguồn tài nguyên như nước, điện,.... [13]. Những

điều này có được là nhờ một hệ thống được xây dựng để giám sát cánh đồng trồng trọt

với sự trợ giúp của các cảm biến và tự động hóa hệ thống tưới tiêu. Nông dân có thể

theo dõi các điều kiện đồng ruộng từ bất cứ đâu. Họ cũng có thể chọn giữa các tùy chọn

thủ công và tự động để thực hiện các hành động cần thiết dựa trên dữ liệu này. Ví dụ,

nếu độ ẩm của đất giảm, người nông dân có thể triển khai các cảm biến để bắt đầu tưới

tiêu. Nông nghiệp thông minh có hiệu quả cao khi so sánh với phương pháp thông

thường. Có thể thấy được những lợi ích to lớn mà IoT mang lại đã góp phần làm cho

6

cuộc sống trở nên hiện đại và tiện lợi hơn ở mọi lĩnh vực. Sơ lược lịch sử phát triển của

IoT được thể hiện ở hình 1. 2.

1.1.2. Hệ thống IoT

Kiến trúc IoT dựa trên hệ thống 4 lớp bao gồm một lớp nhận thức/ phần cứng,

một lớp mạng/ giao tiếp và một lớp giao diện/dịch vụ. Các yếu tố tạo nên lên một hệ

thống IoT là các phần cứng/thiết bị, các giao thức truyền thông và giao diện/dịch vụ

[14].

Lớp nhận thức: Lớp nhận thức bao gồm các cảm biến và các thiết bị truyền động.

Các cảm biến cảm nhận môi trường xung quanh chúng trong khi đó các thiết bị truyền

động đóng vai trò là bộ điều khiển để thực hiện các hành động. Các cảm biến còn được

gọi là các nút.

 Lớp mạng: Lớp mạng gửi thông tin từ lớp cảm biến để xử lý thêm cho các

đơn vị tính toán.

 Lớp hỗ trợ: Lớp hỗ trợ hoạt động giữa lớp mạng và lớp ứng dụng. Lớp này

giúp trong việc phân bổ tài nguyên, tính toán và lưu trữ dữ liệu

 Lớp ứng dụng: Lớp ứng dụng chứa các ứng dụng thông minh như thành phố

thông minh, nhà thông minh, các dịch vụ chăm sóc sức khỏe thông minh,…

Lớp này tương tác trực tiếp với người sử dụng các thiết bị, thường thông qua

các ứng dụng phần mềm.

Phần cứng, chẳng hạn như các cảm biến và bộ truyền động, bao gồm hầu hết các

yếu tố quan trọng nhất trong IoT. Bộ vi xử lý điển hình được sử dụng ở lớp phần cứng

thường dựa trên ARM, kiến trúc MIPS hoặc X86. Để bảo vệ các thiết bị này, các nhà

phát triển nên kết hợp bảo mật phần cứng, có thể bao gồm bộ xử lý mật mã hoặc chip

bảo mật.

Đối với hệ điều hành phần cứng, các thiết bị IoT thường sử dụng RTOS bao gồm

một hạt nhân nhỏ, lớp trừu tượng phần cứng, trình điều khiển giao tiếp và các khả năng

như cách ly quy trình, khởi động an toàn và hộp cát ứng dụng. Đối với lớp phần mềm

ứng dụng, có các ứng dụng tùy chỉnh, giao thức mật mã, thư viện và trình điều khiển

của bên thứ ba.

7

Đặc biệt, lựa chọn phần cứng là rất quan trọng để bảo mật các thiết bị IoT. Mối

quan tâm liên quan đến phần cứng IoT là khả năng xác thực, mã hóa lưu lượng từ đầu

đến cuối, tải khởi động an toàn quy trình, thực thi chữ ký số trong quá trình cập nhật

chương trình cơ sở và thực hiện các giao dịch minh bạch.

Thành phần quan trọng tiếp theo của hệ thống IoT bao gồm các giao thức truyền

thông và tin nhắn. Một mạng lưới các thành phần thông minh có thể giao tiếp trực tiếp

với hệ thống đám mây thông qua một cổng vào, hay thông qua dịch vụ đám mây như

Amazon Kinesis. Tuy nhiên, nội dung quan trọng của IoT là việc đang triển khai WSN

trở thành công nghệ truyền thông chính trong IoT. WSN có các giao thức nhẹ để các

thiết bị có thể giao tiếp với các thiết bị khác và với các cổng vào ở rìa. Hơn nữa, WSN

hỗ trợ truyền thông động, thường luôn luôn dựa trên chuẩn 802.15.4. Trong số các giao

thức IEEE, 802.15.4 dành cho WPAN tầm thấp, phù hợp với yêu cầu đối với hệ thống

IoT. Một số lợi thế của giao thức này là khả năng mở rộng của nó và thực tế là nó có thể

tự duy trì, sử dụng ít năng lượng và có chi phí vận hành thấp. Tuy nhiên, Bluetooth,

ZigBee, PLC, WiFi, 4G và 5G cũng có thể được chọn làm giao thức truyền thông, để

phù hợp với nhu cầu của quy trình IoT.

Một thành phần quan trọng khác trong IoT là bộ tổng hợp, có thể là cổng vào cho

một kiến trúc IoT, chẳng hạn như thiết bị định tuyến wifi. Các cổng vào cung cấp khả

năng kết nối xuôi dòng cho nhiều nguồn, thiết bị, hệ thống khác nhau. Đám mây là một

yếu tố cốt lõi khác trong hệ thống IoT. Một số CSP phổ biến là Amazon Web Services,

Microsoft Azure, Google Cloud Platform và IBM Cloud. Đám mây cung cấp các dịch

vụ cho IoT, bao gồm tin nhắn, lưu trữ, xử lý và phân tích dữ liệu. Ngoài ra, các tính năng

mới được hỗ trợ đang được cung cấp bởi các CSP, cung cấp và hỗ trợ MQTT, thường

được sử dụng trong giao tiếp M2M và giao thức truyền thông REST [15].

Ngoài các dịch vụ hiện tại, sự xuất hiện của các công nghệ truyền thông mới,

chẳng hạn như 5G, sẽ làm cho vai trò của các dịch vụ đám mây trở nên quan trọng hơn

nữa. Kết nối di động 4G và 5G cho phép giao tiếp không dây tầm xa. Hơn nữa, khả năng

làm cho tất cả các thiết bị IoT có thể xác định địa chỉ bằng cách sử dụng IPV6, cho phép

các thiết bị IoT được kết nối trực tiếp với các hệ thống, dịch vụ đám mây. Hình 1.3 mô

8

tả kiến trúc của một hệ thống IoT cơ bản trong thực tế.

Hình 1.3. Kiến trúc của môi trường IoT

1.2. Vấn đề an toàn thông tin trong hệ thống IoT

Hình 1.4. Một số thách thức IoT phải đối mặt

Bên cạnh những mặt tích cực mà IoT mang lại, cũng vẫn tồn tại rất nhiều cần phải

giải quyết để tiếp tục duy trì sự phát triển của IoT. Một số vấn đề nổi trội cần phải

khắc phục của hệ thống IoT được thể hiện ở Hình 1.4.

Một trong những vấn đề lớn nhất của các hệ thống IoT chính là vấn đề bảo mật và

an toàn thông tin. Có 2 mục tiêu chính trong việc triển khai các giải pháp bảo mật cho

9

hệ thống IoT:

 Đảm bảo tất cả dữ liệu được thu thập, lưu trữ, xử lí và vận chuyển an toàn.  Phát hiện và loại bỏ những các lỗ hổng bảo mật trong các thành phần của hệ

thống.

1.2.1. Các lỗ hổng bảo mật của phần mềm và phần sụn

Việc đảm bảo tính bảo mật của các hệ thống IoT rất phức tạp, chủ yếu là do rất

nhiều thiết bị thông minh bị hạn chế về tài nguyên và có khả năng tính toán hạn chế. Do

đó, việc triển khai các chức năng bảo mật mạnh mẽ, tiên tiến, ngốn tài nguyên trên các

thiết bị này là không khả thi và có khả năng có nhiều lỗ hổng hơn các thiết bị không

phải IoT.

Hình 1.5. Các vấn đề chính về bảo mật trong hệ thống IoT

Nhiều hệ thống IoT có lỗ hổng bảo mật vì những lý do sau:  Thiếu khả năng tính toán để tích hợp các giải pháp bảo mật một cách hiệu

quả.

 Kiểm soát truy cập chưa tốt trong các hệ thống IoT.  Tài nguyên hạn chế để kiểm tra đúng cách và cải thiện bảo mật đệm.  Thiếu các bản vá và cập nhật thường xuyên do tài nguyên hạn chế và những

giới hạn về mặt kỹ thuật của thiết bị IoT.

 Người dùng có thể không cập nhật thiết bị của họ, dẫn đến sự hạn chế cho

việc vá các lỗ hổng.

10

 Theo thời gian, các bản cập nhật phần mềm có thể không khả dụng cho các

thiết bị cũ hơn.

 Gặp khó khăn khi đối mặt, xử lý các cuộc tấn công vật lý: kẻ tấn công có thể đến đủ gần để thêm chip của chúng hoặc hack thiết bị bằng sóng vô tuyến.

Mục tiêu của các tác nhân độc hại là nhằm tận dụng các lỗ hổng mà chúng tìm

thấy trong hệ thống IoT để xâm phạm hoạt động liên lạc của hệ thống, cài đặt các phần

mềm độc hại và đánh cắp dữ liệu có giá trị. Ví dụ: việc sử dụng các thông tin đăng nhập

dễ bị tấn công như mật khẩu yếu hay mật khẩu mặc định đã cho phép tin tặc tấn công

một số loại máy ảnh thông minh. Họ thậm chí còn có thể giao tiếp với nạn nhân từ xa

bằng micrô và loa của máy ảnh.

1.2.2. Truyền thông không an toàn

Hầu hết các cơ chế bảo mật hiện ban đầu được thiết kế cho các máy tính cá nhân

và rất khó triển khai trên các thiết bị IoT bị hạn chế về tài nguyên. Đó là lý do tại sao

các biện pháp bảo mật truyền thống không hiệu quả khi nói đến việc bảo vệ thông tin

liên lạc của các thiết bị IoT.

Một trong những mối đe dọa nguy hiểm nhất do liên lạc không an toàn gây ra là

khả năng của tấn công MitM. Tin tặc có thể dễ dàng thực hiện các cuộc tấn công MitM

để xâm phạm quy trình cập nhật và chiếm quyền kiểm soát thiết bị của bạn nếu thiết bị

không sử dụng cơ chế xác thực và mã hóa an toàn. Những kẻ tấn công thậm chí có thể

cài đặt phần mềm độc hại hoặc thay đổi chức năng của thiết bị. Ngay cả khi thiết bị của

bạn không trở thành nạn nhân của cuộc tấn công MitM, dữ liệu mà thiết bị trao đổi với

các thiết bị và hệ thống khác vẫn có thể bị tội phạm mạng thu thập nếu thiết bị của bạn

gửi dữ liệu đó dưới dạng tin nhắn văn bản rõ ràng.

Các thiết bị được kết nối dễ bị tấn công từ các thiết bị khác. Chẳng hạn, chỉ cần kẻ

tấn công giành được quyền truy cập vào một thiết bị trong hệ thống mạng của một gia

đình hay một tổ chức, chúng có thể dễ dàng xâm phạm tất cả các thiết bị không bị cô lập

khác trong đó và đánh cắp thông tin, làm tê liệt hệ thống, ....

1.2.3. Rò rỉ dữ liệu từ hệ thống IoT

Nhiều nghiên cứu đã xác định rằng bằng cách thu thập các tin nhắn không được

11

mã hóa từ một hệ thống IoT, tin tặc có thể truy cập vào dữ liệu mà nó lưu trữ và xử lý.

Những dữ liệu này có thể bao gồm cả các dữ liệu cá nhân quan trọng như vị trí, chi tiết

tài khoản ngân hàng và hồ sơ sức khỏe của bạn,… Tuy nhiên, tận dụng những thông tin

liên lạc được bảo mật kém không phải là cách duy nhất mà kẻ tấn công có thể thu thập

dữ liệu có giá trị.

Tất cả dữ liệu được chuyển qua và lưu trữ trên đám mây, đồng thời các dịch vụ

được lưu trữ trên đám mây cũng có thể gặp phải các cuộc tấn công từ bên ngoài. Do đó,

rò rỉ dữ liệu có thể xảy ra từ chính cả thiết bị và môi trường đám mây mà chúng được

kết nối.

Các dịch vụ của bên thứ ba trong hệ thống IoT có thể là một nguồn rò rỉ dữ liệu

khác. Chẳng hạn, một số thiết bị IoT bị phát hiện gửi dữ liệu khách hàng đến các công

ty như Facebook và Google mà không có sự đồng ý của khách hàng. Sự cố này xuất

hiện do các dịch vụ theo dõi của bên thứ ba được bật trong các ứng dụng tương tác với

người sử dụng dành cho thiết bị di động, máy tính bảng, …

1.2.4. Rủi ro từ các phần mềm độc hại

Các thiết bị có nguy cơ bị phần mềm độc hại tấn công cao nhất là hộp giải mã tín

hiệu số, TV thông minh và đồng hồ thông minh.

Nếu những kẻ tấn công tìm cách đưa phần mềm độc hại vào hệ thống IoT, chúng

có thể thay đổi chức năng của hệ thống, thu thập dữ liệu cá nhân và thực hiện các cuộc

tấn công khác. Hơn nữa, một số thiết bị có thể bị nhiễm vi-rút ngay lập tức nếu nhà sản

xuất không đảm bảo bảo mật phần mềm đầy đủ.

Một số tổ chức đã tìm ra cách đối phó với phần mềm độc hại nhắm các hệ thống

IoT này. Chẳng hạn, một nhân viên FBI đã chia sẻ cách cơ quan này ngăn chặn các cuộc

tấn công mạng botnet Mirai và Microsoft đã phát hành hướng dẫn về cách chủ động bảo

vệ hệ thống của bạn trước mạng botnet Mozi IoT.

Tuy nhiên, những kẻ tiếp tục phát minh ra những cách mới để lạm dụng mạng và

thiết bị IoT. Vào năm 2021, các nhà nghiên cứu đã phát hiện ra rằng BotenaGo, phần

mềm độc hại được viết bằng Golang, có thể khai thác hơn 30 lỗ hổng khác nhau trong

thiết bị thông minh.

12

1.2.5. Tấn công mạng

Hình 1.6. 5 loại tấn công mạng phổ biến trong hệ thống IoT

Ngoài các cuộc tấn công phần mềm độc hại và MitM đã thảo luận ở trên, các hệ

thống IoT cũng có thể dễ bị ảnh hưởng bởi nhiều hình thức tấn công mạng khác nhau.

Dưới đây là danh sách các kiểu tấn công mạng phổ biến nhất trên thiết bị IoT:

 DoS: Các thiết bị IoT có khả năng xử lý hạn chế, khiến chúng rất dễ bị ảnh hưởng bởi tấn công từ chối dịch vụ. Trong một cuộc tấn công DoS, khả năng

phản hồi các yêu cầu hợp pháp của thiết bị bị ảnh hưởng do quá nhiều lưu

lượng truy cập giả mạo.

 DoSL: Là một phân loại đặc biệt của tấn công DoS. Các cảm biến được kết nối với mạng không dây sẽ liên tục theo dõi môi trường, vì vậy chúng thường

được cấp nguồn bằng pin không cần sạc thường xuyên. Nguồn pin được bảo

toàn bằng cách giữ thiết bị ở chế độ ngủ trong hầu hết thời gian. Chế độ ngủ

và thức được điều khiển theo nhu cầu liên lạc của các giao thức khác nhau,

chẳng hạn như MAC. Những kẻ tấn công có thể khai thác các lỗ hổng của

giao thức MAC để thực hiện một cuộc tấn công DoSL. Kiểu tấn công này làm

cạn kiệt năng lượng pin và do đó vô hiệu hóa cảm biến.

 Giả mạo thiết bị: Cuộc tấn công này có thể xảy ra khi một thiết bị đã triển khai chữ ký số và mã hóa không đúng cách. Chẳng hạn, một cơ sở hạ tầng

khóa công cộng kém có thể bị tin tặc khai thác để “giả mạo” một thiết bị mạng

và làm gián đoạn quá trình triển khai IoT.

 Xâm nhập vật lý: Mặc dù hầu hết các cuộc tấn công được thực hiện từ xa, nhưng cũng có thể xâm nhập vật lý vào thiết bị nếu thiết bị bị đánh cắp. Kẻ

tấn công có thể can thiệp vào các thành phần của thiết bị để khiến chúng hoạt

13

động theo cách ngoài ý muốn.

 Các cuộc tấn công dựa trên ứng dụng: Những kiểu tấn công này có thể xảy ra khi có lỗ hổng bảo mật trong chương trình cơ sở của thiết bị hoặc

phần mềm được sử dụng trên hệ thống nhúng hoặc điểm yếu trong máy chủ

đám mây hoặc ứng dụng phụ trợ.

Với nhiều yếu điểm và thách thức về mặt bảo mật của hệ thống IoT, có thể thấy

được việc tìm ra những giải pháp mới, phù hợp, triển khai không tốn quá nhiều tài

nguyên để bảo vệ và duy trì các hệ thống IoT ngày càng trở nên cấp thiết, đặc biệt là khi

IoT xuất hiện ở gần như tất cả các lĩnh vực, cả trong đời sống hàng ngày cũng như các

hoạt động công nghiệp. Ngoài ra, một số hình thức tấn công phổ biến của các lớp của

một hệ thống IoT cũng được thể hiện ở Hình 1.7.

Hình 1.7. Một số hình thức tấn công phổ biến ở các lớp khác nhau của hệ thống IoT

1.3. Các giải pháp phát hiện tấn công trong hệ thống IoT

Với nhiều hạn chế về mặt bảo mật có thể kìm hãm sự phát triển và khả năng ứng

dụng IoT vào các lĩnh vực khác, việc nghiên cứu để đưa ra các giải pháp phát hiện tấn

công trở thành một chủ đề nóng. Hiện nay cũng đã có nhiều phương pháp tiếp cận để

giải quyết vấn đề này, tiêu biểu như:

1.3.1. Quản lý sự tin cậy

Trong bảo mật IoT, quản lý sự tin cậy là rất quan trọng. Những người sử dụng có

14

thể được hưởng lợi từ những thành phần quản lí tin cậy để giúp họ vượt qua những nguy

hiểm và những thứ không chắc chắn liên quan đến IoT. Sự tin cậy có thể được coi là

một thuật ngữ bao gồm cả quyền riêng tư và bảo mật [17].

Nhiều nghiên cứu chỉ ra rằng quản lý sự tin cậy được thảo luận như một yêu cầu

đối với IoT và thừa nhận rằng sự tin cậy đề cập đến cảm giác của mọi người khi tương

tác với các thiết bị IoT. Nghĩa là, người tiêu dùng có quyền quản lý tài nguyên của họ

bất kỳ lúc nào và từ bất kỳ vị trí nào, cũng như các tiện ích cho phép họ hiểu được sự

tương tác của mình với các hệ thống IoT. Hơn nữa, họ tuyên bố rằng quản lý tốt có thể

thúc đẩy sự tin cậy vào các thiết bị, hệ thống IoT.

Hình 1.8. Các loại quản lý sự tin cậy trong IoT

Các loại quản lí sự tin cậy chính trong IoT bao gồm:  Các thành phần tin cậy: Đề cập đến các thành phần được xem xét trong tính toán tin cậy và nó liên quan đến hai mô-đun chính là: QoS và tin cậy xã

hội.

 Hình thành sự tin cậy: Điều này đề cập đến việc tính toán độ tin cậy dựa trên một thuộc tính tin cậy (đơn tin cậy) hay sử dụng nhiều thuộc tính (đa tin

cậy).

 Tuyên truyền sự tin cậy: Truyền tin cậy đề cập đến cách truyền thông tin

tin cậy cho các thực thể khác.

 Tổng hợp sự tin cậy: Đề cập đến phương pháp tổng hợp thông tin tin cậy phù hợp nhất, sau đó được đánh giá bởi chính thực thể đó (đánh giá trực tiếp)

15

hoặc bởi các thực thể khác (đánh giá gián tiếp). Thành phần này tổng hợp

thông tin bằng trọng số, có thể là tĩnh hoặc động.

 Cập nhật sự tin cậy: Thành phần này quyết định thời điểm cập nhật các giá trị của sự tin cậy. Việc cập nhật thông tin tin cậy diễn ra định kỳ (theo thời

gian) bằng cách áp dụng tập hợp tin cậy hoặc sau khi một giao dịch hoặc sự

kiện ảnh hưởng đến QoS (theo sự kiện).

1.3.2. Sự xác thực

Xác thực là quá trình xác định người dùng và thiết bị trong một mạng và cấp

quyền truy cập cho những người được ủy quyền và các thiết bị không bị thao túng. Xác

thực là một cách để giảm thiểu các cuộc tấn công đến các hệ thống IoT như tấn công trả

lời, tấn công MitM, tấn công mạo danh và tấn công mạo nhận. Phương pháp này cấp

quyền truy cập cho người dùng tại lớp ứng dụng và cũng cấp quyền truy cập vào thiết

bị trong mạng IoT [15].

Vì người dùng và thiết bị trong môi trường IoT tạo ra giao tiếp hai chiều nên có

sự giao tiếp lẫn nhau giữa thiết bị và máy chủ. Thiết bị sẽ gửi dữ liệu đến máy chủ cũng

như nhận dữ liệu điều khiển do máy chủ truyền về. Như vậy, xác thực lẫn nhau là rất

quan trọng trong hệ thống IoT để kiểm tra tính hợp lệ của cả thiết bị và máy chủ.

Có 3 loại xác thực chính có thể triển khai trong IoT:  Xác thực phân tán một chiều: Bất cứ khi nào hai thiết bị quyết định kết nối, chẳng hạn như cảm biến IoT và cổng, giao thức sẽ ra lệnh rằng chỉ một thiết

bị tự xác thực với thiết bị kia và thiết bị thứ hai sẽ không được xác thực. Một

thiết bị đăng ký là hợp lệ với thiết bị thứ hai thông qua hàm băm mật khẩu

hoặc chứng chỉ kỹ thuật số. Khi thiết bị đầu tiên cố gắng kết nối, thiết bị thứ

hai sẽ kiểm tra mật khẩu hoặc chứng chỉ và so sánh nó với thông tin được lưu

trữ. Nếu thông tin khớp, thiết bị sẽ cho phép kết nối. Xác thực một chiều hoạt

động tốt nhất cho các thiết bị chỉ kết nối với một thiết bị khác. Các thiết bị

này vẫn cần cơ chế bảo mật, nhưng không cần giám sát liên tục.

 Xác thực phân tán hai chiều: Còn được gọi là xác thực lẫn nhau, giao thức này được sử dụng khi cả hai thiết bị xác thực lẫn nhau trước khi chúng giao

16

tiếp. Mỗi thiết bị phải có một danh tính kỹ thuật số duy nhất được lưu trữ cho

thiết bị kia và sau đó so sánh danh tính. Các thiết bị chỉ có thể kết nối khi thiết

bị thứ nhất tin cậy chứng chỉ số của thiết bị thứ hai và ngược lại. Giao thức

bảo mật tầng vận tải trao đổi và so sánh các chứng chỉ số. Các giao dịch

thương mại điện tử trực tuyến và truyền dữ liệu có độ nhạy cao thường sử

dụng giao thức này.

Hình 1.9. Các loại xác thực trong IoT

 Xác thực tập trung ba chiều: Theo phương pháp này, quản trị viên đăng ký thiết bị với cơ quan trung tâm hoặc máy chủ và liên kết thiết bị với chứng chỉ

kỹ thuật số hợp lệ. Cơ quan trung tâm tạo điều kiện thuận lợi cho việc bắt tay

an toàn giữa hai thiết bị muốn liên lạc. Trong xác thực tập trung ba chiều,

chứng chỉ bảo mật không được lưu trữ trên thiết bị và bọn tội phạm không thể

đánh cắp, nhưng thiết bị vẫn có bảo mật mạnh. Cách tiếp cận này hoạt động

tốt nhất cho các thiết bị luôn được kết nối hoặc những thiết bị có quyền truy

cập internet theo yêu cầu vì nó loại bỏ bất kỳ độ trễ xác thực nào. Dịch vụ

quản lý vòng đời của chứng chỉ và khóa có thể quản lý tập trung các chứng

chỉ và kết nối với bất kỳ thiết bị nào trên mạng cần xác minh.

1.3.3. Hệ thống phát hiện xâm nhập

Tấn công mạng là một trong những thách thức lớn nhất của vấn đề bảo mật các hệ

thống IoT. Các kỹ thuật an ninh mạng chủ yếu bao gồm phần mềm chống vi-rút, tường

lửa và hệ thống phát hiện xâm nhập. Những kỹ thuật này bảo vệ mạng khỏi các cuộc tấn

17

công từ các tác nhân cả trong và ngoài. Trong các kỹ thuật này, IDS là giải pháp phổ

biến nhất được ứng dụng trong các hệ thống IoT. IDS là một loại hệ thống phát hiện

đóng vai trò chính trong việc bảo vệ an ninh mạng bằng cách giám sát trạng thái của

phần mềm và phần cứng đang hoạt trong mạng để từ đó đưa ra những cảnh báo khi phát

hiện các hoạt động bất thường.

Đối với IDS, xâm nhập có nghĩa là nỗ lực truy cập thông tin về hệ thống máy tính

hoặc để làm hỏng hoạt động của hệ thống một cách bất hợp pháp hoặc trái phép. IDS là

một ứng dụng bảo mật máy tính nhằm mục đích phát hiện một loạt các hành vi vi phạm

an ninh, từ các nỗ lực đột nhập bởi những người bên ngoài để thâm nhập hệ thống hay

sự lạm dụng bởi những người bên trong hệ thống. Các chức năng chính của IDS là để

giám sát máy chủ và mạng, phân tích hành vi của hệ thống máy tính, tạo cảnh báo và

phản hồi đến những hành vi đáng ngờ. Bởi vì chúng giám sát các máy chủ và mạng liên

quan, IDS thường được triển khai gần các nút mạng được bảo vệ (ví dụ: các thiết bị

chuyển mạch trong các phân đoạn mạng chính)

1.3.3.1. Các thành phần chính của một hệ thống IDS

IDS bao gồm 3 thành phần chính sau:  Thành phần thu thập gói tin  Thành phần phân tích gói tin  Thành phần phản hồi: khi gói tin được phát hiện ra là một cuộc tấn công

Hình 1.10. Các thành phần chính của IDS

18

1.3.3.2. Phân loại các hệ thống phát hiện xâm nhập

Hình 1.11. Phân loại IDS

Có hai loại phương pháp phân loại IDS: phương pháp dựa trên phát hiện và phương

pháp dựa trên nguồn dữ liệu. Trong số các phương pháp dựa trên phát hiện, IDS có thể

được chia thành phát hiện lạm dụng và phát hiện bất thường. Trong số các phương pháp

dựa trên nguồn dữ liệu, IDS có thể được chia thành các phương pháp dựa trên máy chủn

và các phương pháp dựa trên mạng. Ngày này, cách phân loại dựa vào nguồn dữ liệu

thường được sử dụng hơn.

1.3.3.3. Phân loại dựa trên phương pháp phát hiện

Phát hiện sự lạm dụng còn được gọi là phát hiện dựa trên chữ ký. Ý tưởng cơ bản là

sử dụng chữ ký đại diện cho hành vi tấn công. Quá trình phát hiện sẽ đối sánh chữ ký

của các mẫu bằng chữ ký có trong cơ sở dữ liệu. Vấn đề chính trong việc xây dựng các

hệ thống phát hiện lạm dụng là thiết kế một cơ sở dữ liệu các chữ ký một cách hiệu quả.

Ưu điểm của phát hiện dựa vào chữ ký là nó có tỷ lệ cảnh báo sai thấp và báo cáo các

loại tấn công cũng như các lý do có thể có một cách chi tiết; nhược điểm là nó có tỉ lệ

báo động trượt khá cao, thiếu khả năng phát hiện các cuộc tấn công không xác định hoặc

chưa từng xuất hiện trong cơ sở dữ liệu chữ ký, đồng thời yêu cầu duy trì một cơ sở dữ

liệu chữ ký khổng lồ và cần cập nhật liên tục cơ sở dữ liệu này để đối đầu với các hỉnh

thức tấn công mới.

19

Ý tưởng thiết kế đằng sau phân loại phát hiện bất thường là thiết lập một hồ sơ hành

vi bình thường và sau đó xác định các hành vi bất thường theo mức độ sai lệch của chúng

so với hồ sơ bình thường. Như vậy, chìa khóa để thiết kế một hệ thống phát hiện bất

thường là xác định rõ ràng một cấu hình bình thường. Những lợi ích của phát hiện bất

thường là khả năng khái quát hóa mạnh mẽ và khả năng nhận ra các cuộc tấn công chưa

biết. Tuy nhiên, điểm yếu của phát hiện bất thường là tỷ lệ cảnh báo sai cao và không

có khả năng cung cấp các lý do có thể xảy ra cho sự bất thường.

Trong phân loại dựa trên phương pháp phát hiện, phát hiện sự lạm dụng bao gồm

mẫu phương pháp dựa trên đối sánh, hệ thống chuyên gia và các phương pháp dựa vào

máy hữu hạn. Phát hiện bất thường bao gồm các phương pháp dựa trên mô hình thống

kê, dựa trên học máy và dựa trên chuỗi thời gian.

1.3.3.4. Phân loại dựa trên nguồn dữ liệu

Một lợi thế của IDS dựa trên máy chủ là nó có thể xác định vị trí xâm nhập một cách

chính xác và bắt đầu phản hồi, bởi vì các IDS như vậy có thể giám sát hành vi của các

đối tượng quan trọng (ví dụ: tệp nhạy cảm, chương trình và cổng). Nhược điểm là HIDS

chiếm tài nguyên máy chủ, phụ thuộc về độ tin cậy của máy chủ và không thể phát hiện

các cuộc tấn công mạng. IDS dựa trên mạng thường được triển khai trên các máy chủ

hoặc thiết bị chuyển mạch chính. Phần lớn các NIDS độc lập với hệ điều hành, do đó,

chúng có thể được áp dụng trong các môi trường hệ điều hành khác nhau. Hơn nữa,

NIDS có thể phát hiện các loại tấn công mạng và giao thức cụ thể. Nhược điểm của

NIDS là nó chỉ giám sát lưu lượng đi qua một phân đoạn mạng cụ thể.

HIDS sử dụng nhật ký kiểm tra làm nguồn dữ liệu. Các phương pháp phát hiện nhật

ký là chủ yếu là kết hợp dựa trên quy tắc và học máy, dựa trên các tính năng nhật ký và

sử dụng các phương pháp dựa trên phân tích văn bản. NIDS làm nguồn dữ liệu - thường

là các gói tin, là các đơn vị cơ bản của truyền thông mạng. Luồng là tập hợp các gói tin

trong một cửa sổ thời gian, phản ánh môi trường mạng. Phiên là một chuỗi gói được kết

hợp trên cơ sở mạng thông tin 5-tuple (IP máy khách, cổng máy khách, IP máy chủ,

cổng máy chủ, giao thức). Một phiên đại diện cho thông tin ngữ nghĩa cấp cao của lưu

lượng. Các gói tin chứa các tiêu đề và tải trọng của gói; vì thế, phát hiện gói bao gồm

20

các phương pháp dựa trên phân tích cú pháp và dựa trên phân tích tải trọng. Dựa trên

trích xuất đặc tính, phát hiện luồng có thể được chia thành dựa trên kỹ thuật đặc tính và

dựa trên học sâu các phương pháp. Ngoài ra, nhóm lưu lượng là một cách tiếp cận đọc

nhất trong phát hiện luồng. Dựa trên liệu thông tin trình tự được sử dụng, phát hiện phiên

có thể được chia thành dựa trên đặc tính thống kê và các phương pháp dựa trên đặc tính

trình tự.

Sự tăng lên của số lượng các kết nối của môi trường kinh doanh và cơ sở hạ tầng có

nghĩa là chúng đòi hỏi các hệ thống và kỹ thuật có tính bảo mật cao để thiết lập các

đường liên lạc đáng tin cậy. Trong các phương pháp trên, hệ thống phát hiện xâm nhập

là phương pháp được sử dụng phổ biến nhất bởi vì nó có thể tận dụng được sự phát triển

vượt bậc của lĩnh vực trí tuệ nhân tạo, áp dụng các kĩ thuật học máy, học sâu để nâng

cao hiệu suất phát hiện, cảnh báo xâm nhập và có một vai trò quan trọng trong các chiến

lược an ninh mạng hiện đại để bảo vệ các tổ chức khỏi tin tặc cố gắng truy cập trái phép

vào mạng và đánh cắp dữ liệu của công ty.

Ngoài ra, IDS còn là phương pháp nổi bật nhất nhờ những lợi ích mà nó mang lại.

Các giải pháp IDS mang lại lợi ích lớn cho các tổ chức, chủ yếu xung quanh việc xác

định các mối đe dọa bảo mật tiềm ẩn đang gây ra cho mạng và người dùng của họ. Một

vài lợi ích phổ biến của việc triển khai IDS bao gồm:

 Hiểu biết về rủi ro: Công cụ IDS giúp doanh nghiệp hiểu được số lượng các cuộc tấn công nhắm vào họ, các loại tấn công và mức độ phức tạp của rủi ro

mà họ gặp phải.

 Định hình chiến lược bảo mật: Hiểu được rủi ro là rất quan trọng để thiết lập và phát triển một chiến lược an ninh mạng toàn diện có thể đứng vững trước

bối cảnh các mối đe dọa hiện đại. IDS cũng có thể được sử dụng để xác định

các lỗi và lỗ hổng tiềm ẩn trong các thiết bị và mạng của tổ chức, sau đó đánh

giá và điều chỉnh hệ thống phòng thủ của chúng để giải quyết các rủi ro mà

chúng có thể gặp phải trong tương lai.

 Tuân thủ quy định: Các tổ chức hiện phải đối mặt với một danh sách ngày

càng dài các quy định ngày càng nghiêm ngặt mà họ phải tuân thủ. Một công

21

cụ IDS cung cấp cho họ khả năng hiển thị về những gì đang xảy ra trên hệ

thống mạng của họ, giúp giảm bớt quá trình đáp ứng các quy định này. Thông

tin mà nó thu thập và lưu trong nhật ký cũng rất quan trọng đối với các doanh

nghiệp để chứng minh rằng họ đang đáp ứng các yêu cầu tuân thủ của mình.  Thời gian phản hồi nhanh hơn: Các cảnh báo tức thời mà các giải pháp IDS

khởi tạo cho phép các tổ chức phát hiện và ngăn chặn những kẻ tấn công

nhanh hơn so với việc giám sát mạng của họ theo cách thủ công. Các cảm

biến mà IDS sử dụng cũng có thể kiểm tra dữ liệu trong các gói mạng và hệ

điều hành, điều này cũng nhanh hơn so với việc thu thập thông tin này theo

cách thủ công.

1.4. Kết luận chương 1

Ở chương 1, các khái niệm cũng như góc nhìn tổng quan về vấn đề an toàn thông

tin trong IoT đã được khảo sát. Có thể thấy được, với sự phát triển không ngừng của

IoT, vấn đề bảo mật cho IoT ngày càng trở nên quan trọng hơn bao giờ hết. Các hình

thức tấn công, xâm nhập nhắm vào IoT ngày càng trở nên tinh vi và phức tạp hơn rất

nhiều. Một trong các phương pháp bảo mật cho IoT có hiệu suất cao và được ứng dụng

rộng rãi chính là IDS. Phương pháp này được sử dụng nhiều bởi vì khả năng tận dụng

sức mạnh của các thuật toán học máy, học sâu để phát hiện các loại tấn công, từ đó đưa

ra cảnh báo sớm nhất có thể cho hệ thống IoT để có biện pháp phòng ngừa, giảm thiểu

thiệt hại về mức tối thiểu.

22

CHƯƠNG 2: GIẢI PHÁP PHÁT HIỆN TẤN CÔNG MẠNG

2.1. Tổng quan về giải pháp IDS trong IoT sử dụng học máy

Gần đây, các hệ thống IDS đã nổi lên như một phương pháp hiệu quả nhất cho an

ninh mạng được áp dụng trong IoT và mạng máy tính. Sự xâm nhập bên ngoài và bên

trong được IDS giải quyết ngay lập tức, sau đó IDS sẽ gửi cảnh báo đến các hệ thống

IRS để thực hiện các hoạt động bảo vệ mạng tiếp theo. Một số lượng lớn các phương

pháp nâng cao đã được sử dụng cho thiết kế IDS để cải thiện hiệu suất liên quan đến

phân loại các kiểu tấn công nổi tiếng như DoS, U2R, Probe và R2L.

Thật vậy, học máy đã được sử dụng rộng rãi cho các thiết kế IDS, chẳng hạn như

các mô hình học tập đồng bộ khác nhau để khai thác hiệu suất kết hợp của các công cụ

ước tính để cải thiện khả năng khái quát hóa. Ở đây, thuật toán cây phân loại và hồi quy

được sử dụng để lựa chọn đặc tính, góp phần đáng kể vào hiệu suất phân loại cuối cùng

của năm bộ phân loại tập hợp. Hơn nữa, một số lượng lớn các thuật toán lựa chọn tính

năng cụ thể là thông tin tương hỗ, C.45 và bộ phân loại mạng Bayesian kết hợp với thuật

toán đom đóm, được triển khai trong [20]. Độ quan trọng cũng được sử dụng để làm

điểm số để xếp hạng các đặc tính trong đó tập hợp con chứa các đặc tính tối ưu sẽ được

chọn ra bởi phương pháp bỏ phiếu. Hơn nữa, phép đo tương quan, tính nhất quán, thông

tin và khoảng cách được sử dụng làm tham số đo để giải quyết các tính năng tối ưu, sau

đó được sử dụng làm đầu vào của bộ phân loại rừng ngẫu nhiên [21].

Do lợi thế của việc không yêu cầu áp dụng phương pháp trích xuất đặc tính, các

kĩ thuật xử lý đặc tính và lựa chọn đặc tính dựa trên việc xếp hạng các đặc tính, nhiều

nghiên cứu hiện đã áp dụng phương pháp học sâu để xây dựng IDS hiệu quả. Các tác

giả của [22] đề xuất thuật toán xây dựng IDS bao gồm CNN làm trình trích xuất đặc

trưng và sử dụng kết hợp với BG. GA được sử dụng để tính điểm nhằm xếp hạng các

đặc tính. Ngoài ra, các tính năng đầu vào được chuyển đổi thành hình ảnh quang phổ

bằng kỹ thuật biến đổi Fourier thời gian ngắn, sau đó được sử dụng làm đầu vào của

IDS dựa trên CNN [23]. Dữ liệu gốc, được gọi là luồng mạng, được biểu diễn dưới dạng

lưới pixel 2D bằng quy trình phân cụm và phương pháp tìm kiếm hàng xóm gần nhất

23

trong [24]. Sau đó, mô hình CNN 2D được áp dụng cho thiết kế IDS bằng cách sử dụng

biểu diễn hình ảnh 2D của dữ liệu đầu vào. Các mô hình RNN được đề xuất như là các

thuật toán xây dựng IDS hiệu quả bằng cách sử dụng phương pháp máy trạng thái tiếng

vọng nhiều lớp để lấy mẫu và tính toán trọng số [25]. Mặt khác, cấu trúc RNN tối ưu

được chọn bởi một cơ chế tối ưu hóa, góp phần đáng kể vào việc cải thiện hiệu suất phân

loại. Các tác giả của [26] đề xuất một cấu trúc mạng nơ-ron nhân tạo phân tán trong đó

mô hình được đào tạo riêng trong các nút mạng riêng lẻ. Hơn nữa, các thông số của mỗi

nút hợp tác được cập nhật cho nút chính điều phối, sau đó chia sẻ kết quả cập nhật trở

lại các nút riêng lẻ. Cấu trúc học sâu tối ưu đóng một vai trò quan trọng trong việc cải

thiện hiệu suất phát hiện, giống như đã được thể hiện trong [27], trong đó sự ảnh hưởng

của độ sâu và số lượng nút được khảo sát để xây dựng DNN chuyển tiếp tốt nhất bằng

cách sử dụng tập hợp con các đặc tính được lựa chọn bởi đơn vị trích xuất đặc tính dựa

trên thông tin có được. Hiệu suất xác thực của mô hình DNN chuyển tiếp được triển

khai với một tập dữ liệu riêng biệt, dẫn đến các giá trị cao hơn so với của các mô hình

học máy. Tuy nhiên, những mô hình DNN chuyển tiếp khác nhau được đề xuất cho các

phân loại nhị phân và phân loại nhiều lớp, điều này có thể gây ra những khó khăn cho

sự phát triển hơn nữa trong môi trường thực tiễn. Một bộ dữ liệu quy mô rất lớn được

sử dụng để ước tính hiệu suất của mô hình DNN 5 lớp, mô hình này được thiết kế cho

cả NIDS và HIDS [28]. Các tác giả thực hiện một tìm kiếm toàn diện để lựa chọn các

tham số cấu trúc chẳng hạn như các đơn vị ẩn, tỷ lệ học tập, các hàm kich hoạt tanh và

sigmoid cho mô hình DNN tối ưu. Kết quả của nghiên cứu này cũng đã chỉ ra hiệu suất

phát hiện của mô hình DNN được đề xuất tốt hơn đáng kể so với các mô hình phát hiện

học máy. Hiệu suất phát hiện của các bộ phân loại ứng dụng học sâu khác nhau được

xác định với một tập hợp con các đặc tính, những đặc tính này được lựa chọn bởi các

thuật toán lựa chọn đặc tính tuần tự và thuật toán cây quyết định được sử dụng trong

[29]. Phương pháp được đề xuất đã giảm thời gian thực hiện và yêu cầu bộ nhớ với độ

chính xác phân loại tương đối cao.

Tuy nhiên, khó khăn đầu tiên và cũng là vấn đề khó giải quyết nhất khi ứng dụng

khả năng của các thuật toán học sâu là sự cần thiết của việc tối ưu hóa các thuật toán để

24

tìm kiếm các tham số và xây được cấu trúc với các tham số tối ưu nhất cho các mô hình

học sâu, đây là một quy trình tốn nhiều thời gian và cực kỳ phức tạp. Hơn nữa, các kỹ

thuật học sâu ứng dụng cho các hệ thống phát hiện xâm nhập yêu cầu một lượng dữ liệu

xâm nhập rất lớn để đạt được hiệu quả cao trong việc học tập và phát hiện tấn công, vì

vậy việc thu thập đủ dữ liệu là một trở ngại lớn để triển khai các kỹ thuật học sâu. Một

đặc điểm quan trọng khác là các thuật toán lựa chọn đặc tính đã được chứng minh tính

hiệu quả của chúng đối với việc lựa chọn các tập con chứa các đặc tính liên quan nhất

và nhiều thông tin nhất, chẳng hạn như thuật toán cây phân loại và hồi quy [19]. Lựa

chọn đặc tính dựa trên bộ lọc sử dụng thông tin tương hỗ và lựa chọn đặc tính dựa vào

thuật toán thông tin tương hỗ Firefly [20], thuật toán bỏ phiếu sử dụng bộ phân loại học

máy [21]. Ngoài ra, để giảm thời gian xây dựng IDS trong khi vẫn duy trì hiệu suất phát

hiện cao, một IDS mới sử dụng phương pháp học sâu được đề xuất trong nghiên cứu

này để phát hiện các mẫu bất thường từ dữ liệu thông thường của IoT và mạng máy tính.

IDS được đề xuất bao gồm bộ phân loại tăng cường và tập hợp con đặc tính, được lựa

chọn cẩn thận bằng RFE kết hợp với mô hình BS [30]. Một phương pháp đã được phát

triển để lựa chọn dữ liệu cho quá trình đào tạo và kiểm tra từ một tập dữ liệu đầu vào rất

lớn, sau đó được sử dụng làm đầu vào của SVM bình phương nhỏ nhất để kiểm tra hiệu

suất phân loại với các tình huống khác nhau, chẳng hạn như trường hợp một chống lại

một hay trường hợp một chống lại tất cả [31]. Nghiên cứu này cho thấy sự quan trọng

của các mẫu dữ liệu đại diện cho việc đào tạo một mô hình hiệu quả về mặt cải thiện

hiệu suất phát hiện. Hơn nữa, bằng cách đào tạo với dữ liệu gia tăng, thuật toán đề xuất

cũng được thực hiện cho một tập dữ liệu tĩnh. Phương pháp phân cụm thành các phần

phần nhỏ K-means cũng được sử dụng hiệu quả trong các hệ thống phát hiện xâm nhập

[32]. Thuật toán được so sánh với K-mean truyền thống dựa vào thời gian phân cụm và

chỉ báo Calinski-Harabasz để cải thiện hiệu suất. Tuy nhiên, không có sự so sánh nào

được tiến hành dựa trên độ chính xác hoặc tỷ lệ phát hiện đối với các cuộc tấn công, chỉ

dựa vào thời gian phân cụm để so sánh. Các kỹ thuât nghiên cứu được đề cập ở trên đều

dựa trên cùng một tập dữ liệu đo lường, sử dụng cho cả quá trình đào tạo và đánh giá

các mô hình của họ và những mô hình này thường không khái quát hóa trong việc phát

25

hiện các cuộc tấn công có tính chất tương tự nhưng có thêm một số đặc tính khác. Một

cách tiếp cận tiên tiến khác ứng dụng khả năng của các thuật toán học sâu nhằm giải

quyết các vấn đề lớn bộ nhớ, thời gian đào tạo dài và độ trễ phân loại cao cho một hệ

thống IDS phát hiện bất thường được nghiên cứu trong [33]. Việc triển khai thuật toán

RF tận dụng các phương pháp tập hợp dựa trên DT đang nỗ lực để giảm bớt những

nhược điểm gây ra bởi quá trình phát hiện bất thường một cách hiệu quả nhất. Trong

nghiên cứu [34], thuật toán DT, RF và SVM đã được sử dụng vì chúng đủ nhanh và là

một trong những phương pháp học sâu phổ biến cho mục đích phân loại. Đây là các bộ

phân loại máy học tiêu chuẩn và phổ biến được đào tạo và áp dụng cho bộ dữ liệu CSE-

CICIDS2018. Thử nghiệm diễn ra trên các bộ dữ liệu đã bị xóa khỏi nhật ký .pcap. Nó

đã phát hiện ra rằng các bản ghi có thể có các giá trị đặc tính khác nhau khi được tạo

bằng một cuộc tấn công tương tự các chương trình nhưng với các tham số riêng biệt

hoặc với một số khác biệt về thời gian. DT cho thấy hiệu suất tối đa, nhưng trong trường

hợp này, có vẻ như các mô hình được đào tạo không áp dụng được trong đời thực.

Nghiên cứu này cũng đề xuất một cải tiến trong giai đoạn tiền xử lý và chuẩn hóa của

tập dữ liệu, thử nghiệm các thuật toán học máy mới, cải thiện các mô hình đã phát triển.

2.2. Giới thiệu các thuật toán học máy sử dụng trong nghiên cứu

2.2.1. Rừng ngẫu nhiên

Rừng ngẫu nhiên là một sửa đổi đáng kể của thuật toán BG nhằm xây dựng một

bộ sưu tập lớn các cây không tương quan với nhau, sau đó lấy giá trị trung bình. Trong

nhiều vấn đề, hiệu suất của RF rất giống với thuật toán BS, và đơn giản hơn trong việc

đào tạo và tinh chỉnh. Kết quả là rừng ngẫu nhiên trở nên phổ biến và được ứng dụng,

vận hành trong nhiều gói khác nhau [35].

Đây là một thuật toán học máy mạnh mẽ có thể được sử dụng cho nhiều nhiệm vụ

khác nhau bao gồm hai bài toán chính là: hồi quy và phân loại. Đó là một phương pháp

học tập hợp, nghĩa là một mô hình rừng ngẫu nhiên được tạo thành từ một số lượng lớn

các cây quyết định nhỏ hơn, được gọi là các công cụ ước tính, mỗi cây đưa ra các dự

đoán của riêng chúng. Mô hình rừng ngẫu nhiên kết hợp các dự đoán của các công cụ

26

ước tính để đưa ra dự đoán chính xác hơn.

Thuật toán Rừng ngẫu nhiên cho Phân loại và Hồi quy

1. Lựa chọn ngẫu nhiên “k” đặc tính từ tổng “m” đặc tính ( k rất nhỏ so

với m )

2. Trong số “k” đặc tính, tính nút “d” bằng cách sử dụng điểm phân

tách tốt nhất.

3. Tách nút thành các nút con bằng cách sử dụng phân tách tốt nhất 4. Lặp lại từ 1 đến 3 bước cho đến khi đạt đến số nút “l”. 5. Xây dựng rừng bằng cách lặp lại các bước từ 1 đến 4 với “n” lần để

tạo ra số lượng “n” cây. Đầu ra của tập hợp các cây là

𝐵 𝑇𝑏1

Để tạo ra một dự đoán tại một điểm x mới:

Hồi quy:

1 𝐵 𝑏=1 là lớp dự đoán của cây rừng ngẫu nhiên thứ b. Vì 𝐵 ∑

𝐵 ̂ (𝑥) = 𝑓𝑟𝑓

Phân loại: Xem 𝑇𝑏(𝑥)

𝐵 ̂ (𝑥) 𝐶𝑟𝑓

𝐵 𝐶𝑏̂ (𝑥)1

thế, sẽ bằng kết quả của việc bình chọn đa số của 𝐶𝑏̂ (𝑥)

Hình 2.1. Mã giả thuật toán RF cho phân loại và hồi quy

Các bộ phân loại DT tiêu chuẩn có nhược điểm là chúng dễ bị phù hợp quá mức với

tập dữ liệu đào tạo. Thiết kế tập hợp của RF cho phép nó có thể bù đắp cho điều này và

khái quát hóa tốt phần dữ liệu không nhìn thấy, bao gồm cả dữ liệu có giá trị bị thiếu.

RF cũng rất tốt trong việc xử lý các bộ dữ liệu lớn với các loại đặc tính không đồng nhất

và có nhiều chiều (ví dụ: nếu một cột là phân loại và một cột khác là số).

RF rất tốt cho các vấn đề phân loại nhưng kém hơn một chút trong các vấn đề hồi

quy. Trái ngược với hồi quy tuyến tính, một bộ hồi quy RF không thể đưa ra dự đoán

bên ngoài phạm vi dữ liệu huấn luyện của nó.

RF cũng là hộp đen: trái ngược với một số thuật toán học máy truyền thống hơn, rất

khó để nhìn vào bên trong một bộ phân loại RF và hiểu lý do đằng sau các quyết định

của nó. Ngoài ra, chúng có thể huấn luyện và chạy chậm lại, đồng thời tạo ra các tệp có

kích thước lớn.

Bởi vì chúng cực kỳ mạnh mẽ, dễ bắt đầu và có khả năng xử lý tốt các loại dữ liệu

27

không đồng nhất và có rất ít siêu tham số, nên thuật toán RF thường là điểm đến đầu

tiên của nhà khoa học dữ liệu khi phát triển hệ thống học máy mới, vì chúng cho phép

các nhà khoa học dữ liệu có được một cái nhìn tổng quan nhanh chóng về độ chính xác

có thể đạt được đối với một vấn đề cần giải quyết, ngay cả khi giải pháp cuối cùng có

thể không liên quan đến RF.

Hình 2.2. Hình ảnh minh họa cho một bộ phân loại RF

Khi được sử dụng thuật toán RF với mục đích giải quyết bài toán phân loại, các cây

quyết định con có trong RF sẽ đưa ra những phiếu bầu riêng biệt, sau đó sẽ thực hiện

biểu quyết đa số để thu được kết quả phân loại cuối cùng của bộ phân loại. Trong khi

đó, khi được sử dụng với mục tiêu giải quyết bài toán hồi quy, dự đoán từ mỗi cây tại

một điểm mục tiêu x được tính trung bình một cách đơn giản. Ngoài ra, các nhà nghiên

cứu đã đưa ra các khuyến nghị sau [35]:

 Cho bài toán phân loại, giá trị mặc định cho m là [ ] và kích thước cực tiểu

của nút là một. √𝑝

 Cho bài toán hồi quy, giá trị mặc định cho m là [ ] và kích thước cực tiểu

của nút là năm. 𝑝/3

2.2.2. Đóng bao

Đóng bao - một cái tên bắt nguồn từ “khởi động tổng hợp” - sử dụng nhiều phiên

28

bản của tập huấn luyện, mỗi phiên bản được tạo bằng cách vẽ n’ < n mẫu từ D với các

sự thay thế. Mỗi bộ dữ liệu khởi động này được sử dụng để huấn luyện một bộ phân loại

thành phần khác và quyết định phân loại cuối cùng dựa trên phiếu bầu của từng bộ phân

loại thành phần. Thông thường, các bộ phân loại thành phần có cùng dạng chung - ví dụ

như, tất cả các mô hình Markov ẩn, hoặc tất cả các mạng thần kinh hoặc tất cả các cây

quyết định - đơn thuần là các giá trị tham số cuối cùng giữa chúng thay đổi bởi vì số

lượng các mẫu của các tập dữ liệu huấn luyện được sử dụng [36].

Đây là một tập kỹ thuật học đồng bộ giúp cải thiện hiệu suất tốt và độ chính xác

của các thuật toán học máy. Nó được sử dụng để giải quyết vấn đề liên quan đến sự đánh

đổi sai lệch – phương sai và giảm phương pháp sai của một mô hình dự đoán. BG giúp

tránh khớp dữ liệu quá mức và giống như thuật toán RF, thuật toán BG có thể áp dụng

để giải quyết các vấn đề cho cả mô hình hồi quy và mô hình phân loại, đặc biệt cho các

thuật toán có phương sai cao như cây quyết định, như cây phân loại và cây hồi quy.

Hình 2.3. Hình minh họa thuật toán BG

Một sự kết hợp thuật toán phân loại/học tập được gọi một cách không chính thức

là không ổn định nếu những thay đổi “nhỏ” trong dữ liệu huấn luyện dẫn đến những sự

thay đổi đáng kể của các bộ phân loại và cũng như sự thay đổi tương đối “lớn” về độ

chính xác. Một bộ phân loại DT được huấn luyện bởi một thuật toán tham lam có thể

không ổn định - một thay đổi nhỏ ở vị trí của một điểm đào tạo có thể dẫn đến một cây

hoàn toàn khác. Nhưng khi có sự xuất hiện của thuật toán BG, cải thiện các bộ phân loại

29

không ổn định vì nó tính trung bình một cách hiệu quả đối với những điểm không liên

tục.

Kết quả tổng thể cuối cùng của bộ phân loại sử dụng thuật toán BG sẽ dựa trên

kết quả đầu ra của các bộ phân loại thành phần được huấn luyện song song với nhau.

Quy tắc quyết định tổng thể cho thuật toán BG - một cuộc bỏ phiếu đơn giản giữa các

bộ phân loại thành phần - là quy tắc quan trọng nhất và đồng thời cũng là phương pháp

cơ bản để tổng hợp hoặc tích hợp các đầu ra của các bộ phân loại thành phần.

2.2.3. Thúc đẩy

Không giống như nhiều mô hình học sâu tập trung vào dự đoán và phân loại được

thực hiện bởi một mô hình duy nhất, các thuật toán thúc đẩy tìm cách cải thiện khả năng

dự đoán bằng cách đào tạo một chuỗi các mô hình yếu, mỗi mô hình bù đắp những điểm

yếu của các mô hình tiền nhiệm. Ý tưởng để lặp lại các mô hình phù hợp sao cho việc

huấn luyện mô hình ở một bước nhất định phụ thuộc vào các mô hình đã được huấn

luyện ở các bước trước đó. BS là cách tiếp cận nổi tiếng nhất trong số những cách tiếp

cận này và nó tạo ra một mô hình tập hợp thường ít thiên vị hơn so với những mô hình

học yếu tạo ra nó.

Hình 2.4. Hình minh họa thuật toán BS

Mục tiêu của việc sử dụng thuật toán BS là cải thiện độ chính xác của bất kỳ thuật

toán học tập nhất định nào. Trong thuật toán này, trước tiên một bộ phân loại có độ chính

xác trên tập huấn luyện lớn hơn giá trị trung bình được tạo ra, sau đó các bộ phân loại

thành phần mới được thêm vào để tạo thành một tập hợp liên kết có luật quyết định

30

chung có độ chính xác tùy ý cao trên tập huấn luyện. Trong trường hợp như vậy chúng

ta nói hiệu suất phân loại đã được “thúc đẩy”. Nhìn chung, kỹ thuật đào tạo các bộ phân

loại thành phần liên tiếp với một tập hợp con của dữ liệu huấn luyện có “nhiều thông tin

nhất” với bộ phân loại thành phần hiện tại. Sự phân loại một điểm kiểm tra x dựa trên

kết quả đầu ra của các bộ phân loại thành phần [36].

Điều quan trọng cần phải xác định đó là thúc đẩy là một thuật toán có mục đích

chung chứ không phải là một mô hình cụ thể. Khi sử dụng thuật toán này, cần phải xác

định một mô hình yếu (ví dụ: hồi quy, cây quyết định nông, v.v.) và sau đó cải thiện mô

hình yếu đó.

Có ba cách chính để thực hiện thuật toán thúc đẩy:  Adaptive Boosting hoặc AdaBoost: Phù hợp với một chuỗi những mô hình học yếu trên các dữ liệu huấn luyện có trọng số khác nhau. Bắt đầu bằng cách

dự đoán tập dữ liệu gốc và đưa ra trọng số bằng nhau cho mỗi quan sát. Nếu

dự đoán khi sử dụng mô hình học đầu tiên không chính xác, trọng số cao hơn

sẽ được đưa vào cho quan sát đã được dự đoán không chính xác. Quá trình

này lặp đi lặp lại, tiếp tục thêm những mô hình học cho đến khi đạt đến giới

hạn về số lượng mô hình hoặc độ chính xác.

 Gradient Boosting: Các mô hình sẽ được huấn luyện một cách tuần tự. Mỗi mô hình mới dần dần giảm thiểu hàm tổn hao (y = ax + b + e, e cần đặc biệt

chú ý vì đây là một thuật ngữ sai số) của toàn hệ thống bằng phương pháp

giảm độ dốc. Quy trình học liên tục phù hợp với các mô hình mới để cung cấp

ước tính chính xác hơn của biến phản hồi. Ý tưởng chính đằng sau thuật toán

này là xây dựng những mô hình học cơ sở mới có thể tương quan tối đa với

độ dốc âm của hàm tổn hao, được liên kết với toàn bộ tập hợp.

 XGBoost: XGBoost phụ thuộc vào hiệu suất của mô hình và tốc độ tính toán. Nó cung cấp nhiều lợi ích khác nhau, chẳng hạn như tính toán song song, điện

toán phân tán, tối ưu hóa bộ đệm và điện toán ngoài lõi.

31

2.2.4. k láng giềng gần nhất

Thuật toán k-láng giềng gần nhất, còn được gọi là KNN, là một thuật toán phân loại

học có giám sát phi tham số, sử dụng khoảng cách ở gần để phân loại hoặc dự đoán về

nhóm của một điểm dữ liệu riêng lẻ. Mặc dù nó có thể được sử dụng cho các vấn đề hồi

quy hoặc phân loại, nhưng nó thường được sử dụng như một thuật toán phân loại, dựa

trên giả định rằng các điểm tương tự có thể được tìm thấy gần nhau.

Hình 2.5. Minh họa cho luật k láng giềng gần nhất

Luật k láng giềng gần nhất phân loại x bằng cách gán nhãn cho nó bởi nhãn có tần

số xuất hiện nhiều nhất trong số k mẫu gần nhất; nói cách khác, một quyết định được

đưa ra bằng cách kiểm tra các nhãn trên k điểm gần nhất và thực hiện một cuộc bầu

chọn. Truy vấn k-láng giềng gần nhất bắt đầu tại điểm kiểm tra và phát triển một vùng

hình cầu cho đến khi nó chứa k mẫu huấn luyện và dán nhãn điểm cần kiểm tra đó theo

kết quả của bình chọn đa số. Ví dụ như ở Hình 2.5, với k = 5 thì vùng hình cầu sẽ chứa

5 điểm và điểm kiểm tra x sẽ được dán nhãn phân loại của các điểm đen [36].

Cụ thể, đối với các bài toán phân loại, việc dán nhãn được chỉ định trên cơ sở biểu

quyết đa số, tức là nhãn được xuất hiện thường xuyên nhất xung quanh một điểm dữ

liệu nhất định sẽ được sử dụng. “Biểu quyết đa số” về mặt kỹ thuật yêu cầu đa số lớn

hơn 50%, điều này chủ yếu hoạt động khi thực hiện một phân loại nhị phân (trường hợp

chỉ phân loại 2 lớp). Khi thực hiện một phân loại nhiều lớp (số lớp lớn hơn 2), số phần

trăm phiếu bầu không nhất thiết cần 50% để đưa ra kết luận phân loại; tỉ lệ phiếu bầu để

có thể dán nhãn với số phiếu bầu lớn hơn 25%.

32

Còn đối với bài toán hồi quy, cũng sử dụng một khái niệm tương tự như bài toán

phân loại, nhưng trong trường hợp này, giá trị trung bình của k hàng xóm gần nhất được

lấy để đưa ra dự đoán về một lớp. Sự khác biệt chính ở đây là phân loại được sử dụng

cho các giá trị rời rạc, trong khi hồi quy được sử dụng với các giá trị liên tục.

Cũng cần lưu ý rằng thuật toán KNN cũng là một phần của họ mô hình “học lười

biếng”, nghĩa là nó chỉ lưu trữ một tập dữ liệu huấn luyện thay vì trải qua một giai đoạn

huấn luyện. Điều này cũng có nghĩa là tất cả các tính toán xảy ra khi phân loại hoặc dự

đoán đang được thực hiện. Vì nó chủ yếu dựa vào bộ nhớ để lưu trữ tất cả dữ liệu đào

tạo của nó, nên nó còn được gọi là phương pháp học tập dựa trên thông số hoặc dựa trên

bộ nhớ.

2.3. Đề xuất mô hình và kiến trúc tổng thể phát hiện tấn công IDS sử dụng

học máy

Hình 2.6. Mô hình tổng quan về các bước của phương pháp được đề xuất

Phương pháp bao gồm ba bước. Trong bước đầu tiên, dữ liệu sẽ được làm sạch và xử

lý trước để loại bỏ một số giá trị không cần thiết cũng như một số đặc tính không có

nhiều ảnh hưởng đến mục đích của nghiên cứu. Bởi vì đầu vào của các thuật toán học

máy và học sâu ngày nay đều là số, cho nên các đặc tính chưa ở dạng số được chuyển

33

đổi thành các đặc tính số. Sau đó, chuẩn hóa tối thiểu - tối đa được sử dụng để giảm

khoảng cách giữa các giá trị đặc tính. Trong bước thứ hai, phương pháp RFE được sử

dụng với mô hình BS và phương pháp CV để tính toán tầm quan trọng cho các đặc tính

riêng lẻ. Toàn bộ các đặc tính đầu vào sau đó được xếp hạng theo giá trị độ quan trọng

của các tính năng. Ở bước cuối cùng, tất cả các đặc tính kết hợp được đưa vào các mô

hình học máy khác nhau để ước tính hiệu suất phát hiện của các mô hình học máy. Hình

2.6 cho thấy chi tiết phương pháp được thực hiện để đề xuất thiết kế tối ưu cho mô hình

IDS.

2.4. Giới thiệu về bộ dữ liệu NSL-KDD dùng cho xây dựng, thiết kế IDS

Khi đề cập đến xây dựng, thiết kế IDS thì bộ dữ liệu gốc KDD cup 99 là 1 trong

các bộ dữ liệu được sử dụng nhiều nhất để huấn luyện các thuật toán học máy, học sâu

trong lĩnh vực này. Đây là một tập dữ liệu con của bộ dữ liệu DARPA-98. Bộ dữ liệu

KDD cup 99 là một bộ dữ liệu đa dạng. Bộ dữ liệu này chứa 4,8 triệu thông số. Tuy

nhiên, những nhược điểm cố hữu trong bộ dữ liệu KDD cup 99 đã được chỉ ra bởi các

thống kê khác nhau rằng chúng ảnh hưởng đến độ chính xác của kết quả phân loại, phát

hiện xâm nhập của nhiều mô hình IDS trên nhiều công trình nghiên cứu. Vì vậy, NSL-

KDD ra đời như một phiên bản tinh chỉnh của KDD cup 99, giữ lại các điểm mạnh của

KDD cup 99 và giải quyết các vấn đề vốn có của bộ dữ liệu gốc [38].

NSL-KDD chứa các bản ghi thiết yếu của bộ dữ liệu KDD hoàn chỉnh. Các điểm

mạnh của NSL-KDD bao gồm:

 Các bản ghi dư thừa được loại bỏ để cho phép bộ phân loại tạo ra một kết quả

không thiên vị.

 Đủ số lượng bản ghi có sẵn trong huấn luyện và kiểm tra các bộ dữ liệu, số lượng này là hợp lý và cho phép thực hiện các thí nghiệm trên một tập hoàn

chỉnh.

 Số lượng bản ghi được chọn từ mỗi nhóm cấp độ khó khác nhau tỷ lệ nghịch

với phần trăm bản ghi trong bộ dữ liệu KDD gốc.

 NSL-KDD có ít điểm dữ liệu hơn KDD-99, tất cả đều là duy nhất. Điều này

giúp ít tốn kém hơn về mặt tính toán để sử dụng cho việc huấn luyện các mô

34

hình máy học.

NSL-KDD chứa KDDTrain+, KDDTest+, KDDTest-21, được sử dụng cho dữ liệu

huấn luyện, xác thực và kiểm tra. KDDTest-21 là một tập hợp con của KDDTest+ bao

gồm các bản ghi thông thường khác nhau. Bảng 2.1 đề cập đến số lượng bản ghi của

KDDTrain+, KDDTest+, KDDTest-21.

Bảng 2.1. Số lượng bản ghi của KDDTrain+, KDDTest+, KDDTest-21

Bộ dữ liệu Tấn công Bình thường Tổng số

KDDTrain+ 58.630 67.343 125.973

KDDTest+ 12.833 9.711 22.544

KDDTest-21 9.698 2.152 11.850

Trong mỗi bản ghi có 41 đặc tính khác nhau, cụ thể, các đặc tính từ 1 đến 10 là các

tính năng cơ bản, từ 11 đến 22 là các đặc tính nội dung và từ 23 đến 41 là các đặc tính

lưu lượng truy cập. Có 4 loại tấn công là DoS, R2L, U2R và Probe, sau đó được nhóm

thành lớp tấn công. Phần dữ liệu còn lại được phân loại là lớp bình thường. Cụ thể:

 DoS: Từ chối dịch vụ là một thể loại tấn công hướng đến mục tiêu là làm cạn kiệt tài nguyên của nạn nhân từ đó làm cho nạn nhân không thể xử lý các yêu

cầu và truy cập hợp pháp. Các đặc tính có liên quan: “source bytes” và

“percentage of packets with errors”.

 Probe: Giám sát và các mục tiêu thăm dò tấn công khác để có được thông tin về nạn nhân từ xa, ví dụ: quét cổng. Các tính năng có liên quan: “duration of

connection” và “source byte”.

 U2R: Truy cập trái phép vào đặc quyền của siêu người dùng cục bộ (root) là một kiểu tấn công, theo đó kẻ tấn công sử dụng một tài khoản bình thường để

đăng nhập vào hệ thống nạn nhân và cố gắng giành quyền root/quản trị viên

bằng cách khai thác một số lỗ hổng trong nạn nhân, ví dụ: tấn công tràn bộ

đệm. Các đặc tính có liên quan: “number of file creations” và " number of

shell prompts invoked”.

35

 R2L: Truy cập trái phép từ một máy từ xa, kẻ tấn công xâm nhập vào một máy từ xa và chiếm được truy cập cục bộ ở máy nạn nhân. Ví dụ: đoán mật

khẩu. Các đặc tính liên quan: Các đặc tính ở cấp độ mạng – “duration of

connection” và “service requested” và đặc tính cấp máy chủ - “number of

failed login attempts”.

Bảng 2.2. Các kiểu tấn công của từng lớp

Lớp tấn công

Kiểu tấn công Back, Land, Neptune, Pod, Smurf,Teardrop,Apache2, Udpstorm, DoS Processtable, Worm (10)

Probe Satan, Ipsweep, Nmap, Portsweep, Mscan, Saint (6)

Guess_Password, Ftp_write, Imap, Phf, Multihop, Warezmaster,

U2R Warezclient, Spy, Xlock, Xsnoop, Snmpguess, Snmpgetattack,

Httptunnel, Sendmail, Named (16)

Buffer_overflow, Loadmodule, Rootkit, Perl, Sqlattack, Xterm, Ps R2L (7)

Các loại tấn công tương ứng với 4 lớp này được thể hiện ở Bảng 2.2, phân bố dữ

liệu của tập huấn luyện và đào tạo của NSL-KDD được thể hiện ở Bảng 2.3, các giao

thức được sử dụng trong tập dữ liệu NSL-KDD được thể hiện ở Bảng 2.4

Bảng 2.3. Phân bố dữ liệu của tập huấn luyện và kiểm tra

Phần trăm Tập kiểm tra Phần trăm Lớp tấn công Tập huấn luyện

Normal 67,342 9,710 43.075% 53.458%

DoS 45,927 7,457 33.080% 36.458%

Probe 11,656 2,421 10.740% 9.253%

R2L 995 2,754 12.217% 0.790%

U2R 52 200 0.887% 0.041%

100% 125,972 100% 22,542 Tổng số

36

Bảng 2.4. Các giao thức được các hình thức tấn công sử dụng

Lớp tấn công

DoS

Probe

R2L

U2R

Giao thức

42188

5857

995

49

TCP

892

1664

0

3

UDP

2847

4135

0

0

ICMP

Hình 2.7. Tấn công theo giao thức bên trong bộ dữ liệu KDDTrain+

2.5. Kết luận chương 2

Trong chương 2 này đã tìm hiểu tổng quan về các giải pháp IDS ứng dụng khả

năng của các thuật toán học máy được nghiên cứu và sử dụng cho vấn đề bảo mật IoT.

Các khái niệm cơ bản cũng như giá trị của các thuật toán học máy được sử dụng trong

nghiên cứu cũng được đề cập trong chương này. Bằng việc tận dụng các thuật toán học

máy, mô hình của một IDS hướng đến mục tiêu giải quyết vấn đề bảo mật trong IoT

được đề xuất. Ngoài ra, các đặc trưng, ưu nhược điểm của bộ dữ liệu NSL-KDD cũng

được lựa chọn để huấn luyện và xây dựng IDS cho IoT.

37

CHƯƠNG 3: THỬ NGHIỆM, ĐỀ XUẤT IDS

ỨNG DỤNG TRONG IoT

3.1. Xử lý và tiền xử lý dữ liệu

3.1.1 Tiền xử lý dữ liệu

Trong hầu hết các vấn đề, lĩnh vực ứng dụng khả năng của các thuật toán học máy

hiện nay, các bộ dữ liệu được sử dụng đều cần được xử lý, biến đổi trước khi đưa vào

huấn luyện. Đây là một giai đoạn quan trọng khi làm việc, xử lý các vấn đề liên quan

đến lĩnh vực khoa học dữ liệu bởi vì trên thực tế, gần như tất cả dữ liệu thu thập được

từ các thiết bị thu, các cảm biến đều không “sạch”, không hoàn chỉnh, không nhất quán,

không ở định dạng cho phép để ứng dụng các thuật toán thông minh, nhiễu,... Dữ liệu

không hoàn chỉnh có thể do một số đặc tính không được cung cấp bởi vì những lý do

bất khả kháng, hay một số đặc tính bị bỏ qua vì không được xem là quan trọng tại thời

điểm thu thập dữ liệu, hoặc cũng có thể do sự không thống nhất giữa dữ liệu cũ và mới

chính là tiền đề dẫn đến mất mát dữ liệu. Ngoài ra, vấn đề không hoàn chỉnh hay mất

mát dữ liệu cũng có thể xuất hiện do các yếu tố con người, phần mềm, phần cứng. Những

nguyên nhân như công cụ lựa chọn dữ liệu bị lỗi, đường truyền để truyền tải dữ liệu bị

lỗi, giới hạn về công nghệ hay sự bất đồng trong việc đặt tên và định dạng dữ liệu, đều

có thể khiến dữ liệu bị nhiễu. Ngoài ra, dữ liệu được tập hợp từ nhiều nguồn tin khác

nhau, dữ liệu được biểu diễn bằng những tên gọi khác nhau trong cơ sở dữ liệu và sự vi

phạm phụ thuộc hàm cũng sẽ tạo ra tình trạng không nhất quán ở dữ liệu, khiến cho dữ

liệu ở trạng thái “không sạch”.

Dữ liệu thô chưa được xử lí, chưa làm sạch là nguyên nhân gây ra sự bất ổn trong

quá trình huấn luyện, cho ra kết quả không đáng tin, làm giảm tốc độ cũng như làm giảm

hiệu suất của các thuật toán học máy.

Một số nhiệm vụ chính của quá trình tiền xử lý dữ liệu như:

 Làm sạch dữ liệu: bổ sung những giá trị bị thiếu, làm mịn cũng như loại bỏ các tín hiệu, các thành phần bị nhiễu có trong dữ liệu, xác định và loại bỏ giá

trị sai vị trí và giải quyết vấn đề không nhất quán dữ liệu.

 Tích hợp dữ liệu: kết hợp từ nhiều file, nhiều khối dữ liệu hay nhiều cơ sở dữ

38

liệu khác nhau.

 Chuyển hóa dữ liệu: chuẩn hóa và kết hợp dữ liệu.  Thu gọn dữ liệu: làm giảm kích thước đầu vào hay chiều của dữ liệu với điều kiện vẫn cho ra kết quả tương tự nhưng có thể làm giảm yêu cầu về không

gian và thời gian triển khai.

Hình 3.1. Những nhiệm vụ chính trong quá trình tiền xử lý dữ liệu

Ở bước đầu tiên trong nghiên cứu này, bộ dữ liệu được lựa chọn NSL-KDD được

làm sạch và tiền xử lý. Vì định dạng dữ liệu đầu vào của các thuật toán học máy được

sử dụng trong nghiên cứu này như KNN, RF, BG, BS đều phải ở dạng số, vì vậy các

đặc tính chưa ở định dạng số có trong bộ dữ liệu được chuyển đổi, mã hóa thành các đặc

tính dạng số.

Ngoài ra, các đặc tính có trong bộ dữ liệu đều chưa ở cùng một khoảng giá trị chuẩn,

điều đó dẫn đến ảnh hưởng của giá trị trong từng đặc tính có thể bị suy giảm. Vì vậy, kĩ

thuật chuẩn hóa nhỏ nhất – lớn nhất được sử dụng để đưa khoảng giá trị của tất cả đặc

tính về cùng một khoảng giá trị, làm tiền đề cho việc thu được kết quả tốt hơn khi ứng

dụng các thuật toán học máy.

39

3.1.2. Chuẩn hóa nhỏ nhất – lớn nhất

Cũng giống như tinh chỉnh dữ liệu, vấn đề chuẩn hóa dữ liệu đóng vai trò vô cùng

quan trọng trong việc giải quyết một vấn đề tận dụng khả năng của các thuật toán thông

minh. Bởi lẽ mỗi phương pháp phân tích dữ liệu khác nhau lại tập trung vào các khía

cạnh khác nhau của dữ liệu, nên khi chuẩn hóa và thay đổi các đặc tính của dữ liệu có

thể làm tăng tính hiệu quả của các phương pháp phân tích cụ thể.

Chia tỉ lệ dữ liệu là một phương pháp chuẩn hóa phạm vi của các đặc trưng dữ liệu

và được sử dụng trong suốt quá trình tiền xử lý dữ liệu. Trên thực tế, phạm vi của dữ

liệu thô thường rất rộng, trong khi đó, đối với một số thuật toán học máy và học sâu, các

hàm mục tiêu sẽ không hoạt động đúng như ý và đạt hiệu suất cao nhất khi dữ liệu không

được chuẩn hóa và các đặc tính của bộ dữ liệu có các khoảng giá trị khác nhau. Đối với

trường hợp như vậy, việc chia tỉ lệ các đặc tính của bộ dữ liệu về cùng một khoảng đơn

vị đo cụ thể là vô cùng quan trọng. Một trong các phương pháp phổ biến, thường được

sử dụng rất nhiều trong các nghiên cứu học thuật chính là chuẩn hóa nhỏ nhất – lớn nhất.

Chuẩn hóa nhỏ nhất – lớn nhất là phương pháp đơn giản nhất trong việc chia tỉ lệ

phạm vi của các đặc tính bằng việc chuẩn hóa chúng về một khoảng đặc biệt như [0, 1]

hoặc [-1, 1]. Công thức chung cho chuẩn hóa nhỏ nhất – lớn nhất trong khoảng [0, 1] là:

(3.1)

Trong đó, x là giá trị ban đầu, x’ là giá trị sau chuẩn hóa, min(x) là giá trị nhỏ nhất

của đặc tính và max(x) là giá trị lớn nhất của đặc tính.

Ngoài ra, để có thể thay đổi phạm vi tỷ lệ của một tập [a, b] bất kỳ, công thức tổng

quát được sử dụng cho chuẩn hóa nhỏ nhất – lớn nhất là:

(3.2)

Chuẩn hóa nhỏ nhất, lớn nhất đảm bảo mối quan hệ giữa các giá trị gốc của dữ

liệu. Nó sẽ phát hiện ra được các lỗi vượt giới hạn nếu các dữ liệu đầu vào vượt ra ngoài

khoảng giá trị của X trong tương lai.

40

3.2. Lựa chọn đặc tính tối ưu của dữ liệu

3.2.1. Loại bỏ đặc tính đệ quy

Hầu hết trong các trường hợp phổ biến trong lĩnh vực khoa học dữ liệu, dữ liệu được

sử dụng làm đầu vào cho các thuật toán học máy, học sâu thường ở kích thước rất lớn.

Kết quả là, các mô hình thông minh được triển khai trên những dữ liệu này có độ phức

tạp rất lớn, có yêu cầu về không gian và thời gian huấn luyện rất đặc thù đồng thời những

mô hình này cũng thường chính là nạn nhân của vấn đề thiệt hại liên quan đến chiều dữ

liệu.

Thiệt hại liên quan đến chiều dữ liệu đề cập đến tất cả các vấn đề liên quan đến bộ

dữ liệu có nhiều chiều (kích thước lớn). Ví dụ: khi số chiều của tập dữ liệu quá lớn, có

thể dẫn đến vấn đề dữ liệu quá chi tiết và do đó, thông tin chứa trong một số đặc tính đã

được ghi lại trong các đặc tính khác có trong cùng một tập dữ liệu. Kết quả là, các đặc

tính cuối cùng có mối tương quan cao dẫn đến việc phân loại bị sai lệch so với hiệu suất

thực tế phải thu được.

Mặc dù nhiều thông tin hơn là tốt, nhưng khi dữ liệu chứa thông tin trùng lặp hoặc

có độ chi tiết cao quá mức cần thiết, tốc độ đào tạo của mô hình học máy, học sâu bị

chậm lại.

Một vấn đề khác liên quan đến bộ dữ liệu nhiều chiều là mô hình được đào tạo dựa

vào dữ liệu này thường gặp phải vấn đề phù hợp quá mức và điều này dẫn đến khả năng

khái quát hóa dữ liệu kém.

Ngoài ra, những dữ liệu nhiều chiều này luôn chứa rất nhiều đặc tính, tuy nhiên

không phải tất cả những đặc tính này đều đem lại kết quả tốt hiệu suất dự đoán, phân

loại của các mô hình học máy, học sâu, đôi khi xuất hiện một số đặc tính không liên

quan khiến cho hiệu suất cuối cùng của thuật toán đề xuất bị giảm đi rất nhiều lần.

Những dữ liệu dư thừa này thường liên quan tới dữ liệu khác và bắt buộc phải loại bỏ

để đảm bảo hiệu quả cho các mô hình dự đoán. Việc loại bỏ các đặc tính không liên

quan là cần thiết, giúp giảm độ phức tạp của mô hình, cải thiện hiệu suất phân loại cuối

cùng đồng thời giảm thời gian cho việc đào tạo các mô hình đề xuất.

41

Quá trình lựa chọn đặc tính còn có thể hiểu là quá trình được thực hiện với mục đích

lựa chọn ra những đặc tính phù hợp nhất phù hợp với mục tiêu sử dụng các thuật toán

thông mình. Các thuật toán lựa chọn có thể sử dụng phương pháp xếp hạng để lựa chọn

đặc tính dựa trên mối quan hệ giữa các đặc tính với nhau hoặc tìm ra các tập con đặc

tính bằng cách thử và sai sau đó xây dựng và tính toán mô hình tự động thông qua các

tập con vừa tìm được.

Hình 3.2. Một số phương pháp giảm chiều dữ liệu để lựa chọn đặc tính

Loại bỏ đặc tính đệ quy là một thuật toán lựa chọn đặc tính phổ biến. Đây là phương

pháp lựa chọn đặc tính phù hợp với mô hình và loại bỏ một hoặc nhiều đặc tính yếu nhất

cho đến khi đạt được số lượng đặc tính mong muốn, phương pháp này có thể loại bỏ dư

thừa dữ liệu và tạo các tập hợp con chứa các đặc tính nhỏ gọn hơn [39].

Đầu tiên, các đặc tính được huấn luyện bởi một thuật toán thông minh như RF,

KNN, BG, BS để thu được giá trị đặc trưng cho độ quan trọng của từng đặc tính riêng

biệt. Sau đó, các đặc tính được sắp xếp dựa trên mức độ quan trọng của chúng từ cao

xuống thấp. Cuối cùng, các đặc tính ít quan trọng nhất được loại bỏ đi, sau đó đào tạo

lại mô hình thuật toán đã được lựa chọn để tính độ quan trọng của các đặc tính với các

đặc tính sau khi đã được cập nhật và đạt được hiệu suất phân loại với bộ đặc tính hiện

tại. Đây là một quá trình lặp đi lặp lại cho đến khi bộ đặc tính trống.

RFE quy định phải giữ lại một số đặc tính nhất định, tuy nhiên thường không

biết trước có bao nhiêu đặc tính hợp lệ. Để tìm được đặc tính được tối ưu, RFE thường

42

kết hợp với kĩ thuật xác thực chéo k lần để đánh giá các tập đặc tính khác nhau và lựa

chọn tập đặc tính có điểm phù hợp nhất.

RFE phổ biến vì có cấu hình đơn giản và hiệu quả trong việc chọn đặc tính phù

hợp nhất cho việc dự đoán, phân loại mục tiêu. Hai điều cần lưu ý khi sử dụng thuật toán

RFE là lựa chọn số lượng đặc tính và lựa chọn thuật toán hỗ trợ lựa chọn đặc tính. Cả

hai siêu tham số này đều nên được chú trọng hàng đầu nếu muốn đạt được một bộ dữ

liệu con có hiệu suất tốt nhất.

3.2.2. Xác thực chéo k lần

Xác thực chéo k lần hay kiểm chứng chéo, k lần là phương pháp thống kê dùng để

ước lượng hiệu quả hiệu suất của các mô hình học máy, học sâu, hỗ trợ so sánh và chọn

ra mô hình tốt nhất cho một bài toán. Xác thực chéo k lần chia nhỏ tập dữ liệu để kiểm

chứng hiệu quả của mô hình trên từng phần dữ liệu riêng biệt, áp dụng đối với các trường

hợp không có quá nhiều dữ liệu. Kỹ thuật này đơn giản, dễ thực hiện và cho kết quả

đáng tin cậy hơn hầu hết các phương pháp khác cùng chức năng.

Xác thực chéo k lần là kĩ thuật chia dữ liệu thành k phần, sau đó mô hình được huấn

luyện trên một dữ liệu huấn luyện tổng hợp từ k-1 phần, 1 phần còn lại sẽ được sử dụng

như tập thử nghiệm. Quá trình này cứ thế được lặp đi lặp lại k lần, mỗi lần lại lựa chọn

1 phần dữ liệu khác nhau trong k phần được chia để làm tập thử nghiệm. Sau đó tính

trung bình hiệu suất của mô hình qua k lần lặp để thu được hiệu suất tổng hợp của mô

hình.

Việc sử dụng xác thực chéo lần mang đến nhiều lợi ích cho mô hình được đề xuất.

Trước hết, xác thực chéo k lần giúp tận dụng được khả năng của dữ liệu. Trong trường

hợp có sẵn số lượng dữ liệu rất lớn thì xác thực chéo k lần không quá cần thiết, nhưng

với trường hợp chỉ có một tập dữ liệu nhỏ thì việc chia tập dữ liệu thành tập huấn luyện

và tập kiểm tra với tỷ lệ như 80:20 hay 70:30 thường không có tác dụng nâng cao hiệu

suất của mô hình quá nhiều. Lúc này, khi sử dụng xác thực chéo k lần, tất cả các phần

của dữ liệu đều được sử dụng như một phần của tập thử nghiệm. Bằng cách này, tất cả

dữ liệu từ tập dữ liệu nhỏ có thể sử dụng cho cả đào tạo và thử nghiệm, làm tăng chất

lượng và hiệu suất của mô hình. Ví dụ: Chọn giá trị k = 10, sẽ thu được 10 kết quả sử

43

dụng trong đánh giá hiệu suất mô hình. Nếu sử dụng độ chính xác làm tiêu chuẩn đánh

giá mô hình, có tới 10 kết quả của độ chính xác để tham khảo. Hơn nữa, giai đoạn xác

thực dùng tất cả dữ liệu sẽ luôn cho kết quả đáng tin cậy hơn so với việc sử dụng duy

nhất 1 phần dữ liệu.

Hình 3.3. Mô hình hoạt động của xác thực chéo k lần

3.2.3. Triển khai lựa chọn đặc tính tối ưu của dữ liệu

Trong nghiên cứu này, RFE được kết hợp với mô hình BS để lựa chọn các đặc tính

chứa thông tin nhất liên quan đến việc cải thiện hiệu suất phát hiện dữ liệu xâm nhập.

Hình 3.4 cho thấy quy trình của RFE được sử dụng trong nghiên cứu này. Ban đầu, dữ

liệu huấn luyện được sử dụng để đào tạo mô hình BS, sau đó tạo ra các giá trị đặc trưng

cho độ quan trọng của các đặc tính riêng lẻ. Sau đó, tất cả các đặc tính đầu vào được xếp

hạng dựa vào giá trị độ quan trọng của chúng theo thứ tự từ thấp nhất đến cao nhất. Việc

lặp lại quy trình RFE được thực hiện trong đó một đặc tính có giá trị quan trọng thấp

nhất bị loại bỏ để xây dựng một tổ hợp đặc tính mới trong mỗi lần lặp lại. Có tổng cộng

41 đặc tính, dẫn đến có tổng cộng 41 đặc tính kết hợp.

44

3.3. Thiết lập, mô phỏng, thử nghiệm hệ thống IDS dựa trên học máy

Trong bước này, các mô hình học máy khác nhau được áp dụng với xác thực chéo

5 lần để ước tính hiệu suất phân loại của chúng bằng cách sử dụng các tổ hợp các đặc

tính khác nhau được lựa chọn sau quá trình thực hiện phương pháp RFE. Ở đây,

KDDTest+ được sử dụng làm tập dữ liệu xác thực, được chia ngẫu nhiên thành 5 phần,

trong đó 4 phần được sử dụng để huấn luyện các mô hình học máy và một phần là tập

dữ liệu thử nghiệm. Xác thực chéo 5 lần được lặp lại 5 lần để hoàn thành quy trình tổng

thể. Hiệu suất phát hiện trung bình của các mô hình học máy sau đó được tính toán để

so sánh và phân tích. Trong nghiên cứu này, hai tiêu chí được sử dụng để lựa chọn thuật

toán đề xuất cho IDS giữa các mô hình học máy khác nhau như sau:

 Đối với một mô hình cụ thể, chỉ một tổ hợp đặc tính tương ứng với mô hình đó tạo ra độ chính xác phát hiện xác thực cao nhất mới được chọn trong số 41

tổ hợp đặc tính.

 Trong số các mô hình học máy khác nhau, một mô hình được chọn nếu số lượng đặc tính trong tổ hợp đặc tính tương ứng là nhỏ nhất và độ chính xác

phân loại xác thực là cao nhất hoặc độ chính xác xác thực có thể thấp hơn độ

chính xác cao nhất của mô hình khác nhưng không quá 1%.

Để đánh giá hiệu suất của một thuật toán học máy, sẽ có nhiều tham số đánh giá có

thể được sử dụng. Các tham số thường được sử dụng trong các nghiên cứu học thuật

liên quan đến vấn đề xây dựng IDS lần lượt là:

 TP: Chính là số lượng các mẫu thuộc lớp tấn công được phân loại chính xác vào

lớp tấn công.

 FP: Là số lượng các mẫu không thuộc lớp tấn công nhưng đã bị phân loại nhầm

vào lớp tấn công.

 TN: Là số lượng các mẫu không thuộc lớp tấn công và đã được phân loại đúng.  FN: Là số lượng các mẫu thuộc lớp tấn công nhưng bị phân loại nhầm vào các

lớp không phải là lớp tấn công.

45

Hình 3.4. Thủ tục RFE được thực hiện

 Độ chính xác của mô hình phát hiện được tính theo công thức:

3.3

Acc = TP + TN TP + TN + FP + FN

Hình 3.5. Đường cong AUC-ROC

 Đường cong AUC - ROC là phép đo hiệu suất cho các bài toán phân loại ở các

46

ngưỡng cài đặt khác nhau. ROC là một đường cong xác suất và AUC đại diện

cho mức độ hoặc thước đo khả năng phân tách. Nó cho biết mô hình có khả năng

phân biệt ở mức độ nào giữa các lớp với nhau. AUC càng cao, mô hình càng dự

đoán tốt hay mô hình càng tốt trong việc phân biệt giữa có xâm nhập hay không

có xâm nhập.

3.4. Phân tích kết quả, so sánh hiệu năng của các IDS sử dụng các thuật toán

học máy khác nhau

3.4.1. Loại bỏ đặc tính đệ quy

Toàn bộ các đặc tính đầu vào được xếp hạng theo các giá trị quan trọng của chúng

như trong Bảng 3.1. Đáng chú ý là thứ tự của các đặc tính được xếp hạng từ các giá trị

quan trọng thấp nhất đến cao nhất, được tạo từ mô hình BS được đào tạo trên tập dữ liệu

huấn luyện.

Bảng 3.1. Xếp hạng đặc tính dựa vào độ quan trọng

Đặc tính

Đặc tính

Độ quan trọng

Độ quan trọng

Thứ tự

Thứ tự

urgent, su attempted, num access files, num outbound cmds, is

0

1-5

host login

24

2.13 x10-6

num failed logins 1.65 x10-10

flag

6

25

2.81 x10-6

srv rerror rate

1.28 x10-9

count

7

26

3.13 x10-6

8 wrong fragment

1.79 x10-9

dst host count

27

4.67 x10-6

9

root shell

7.34 x10-9

dst host diff srv rate

28

5.18 x10-6

10 num root

1.30 x10-8

dst host serror rate

29

11

is guest login

dst host srv serror rate

1.44 x10-8

6.52 x10-6

dst host srv rerror

12

30

dst host rerror rate

2.0 x10-8

9.27 x10-6

rate

31

13

num shells

2.14 x10-8

duration

1.19 x10-5

32

14

srv serror rate

dst host srv count

8.69 x10-8

1.20 x10-5

dst host srv diff host

33

15

num compromised 9.88 x10-8

1.52 x10-5

rate

47

2.66 x10-5

16

num file creations 1.01 x10-7

34

logged in

dst host same src port

35

2.98 x10-5

17

serror rate

1.12 x10-7

rate

36

6.79 x10-5

18

srv diff host rate

1.33 x10-7

dst bytes

37

6.82 x10-5

19

rerror rate

1.91 x10-7

hot

20

same srv rate

2.01 x10-7

38

dst host same srv rate

8.03 x10-5

39

1.67 x104

21

land

2.07 x10-7

protocol type

40

1.71 x104

22

srv count

3.76 x10-7

service

41

2.12 x103

23

diff srv rate

4.67 x10-7

src bytes

Như có thể thấy từ Bảng 3.1, hầu hết các giá trị quan trọng đều tương đối thấp. Tuy

nhiên, ba đặc tính hàng đầu là “protocol type”, “service”, and “source bytes” hiển thị

các giá trị độ quan trọng tương đối cao, điều này ngụ ý rằng các đặc tính đó có liên quan

và chứa nhiều thông tin có ý nghĩa nhất. 5 đặc tính đầu tiên có giá trị quan trọng bằng 0

cho thấy chúng không hiệu quả đối với hiệu suất phát hiện xâm nhập cuối cùng. Nói

cách khác, các đặc tính này nên được loại bỏ do có mối tương quan cao với các tính

năng khác.

3.4.2. Đánh giá mô hình

Bảng 3.2. Hiệu suất xác thực cao nhất của các mô hình học máy trên tập dữ liệu

xác thực

Acc (%)

TPR(%)

FPR(%)

Số lượng đặc tính

37

Mô hình học máy BS

98.6

98.5

1.3

40

BG

98.8

98.6

1.1

41

KNN

97.9

97.5

1.7

19

RF

98.7

98.5

1.2

Thuật toán đề xuất bao gồm bộ phân loại RF và tổ hợp 19 đặc tính nằm trong khoảng

từ thứ tự 23 đến 41 của Bảng 3.1. Theo các tiêu chí được đưa ra trong phần trước, thuật

toán đề xuất sử dụng số lượng nhỏ nhất các đặc tính trong tổ hợp đã chọn so với các mô

48

hình học máy khác như trong Bảng 3.2.

Ngoài ra, độ chính xác phát hiện xác thực của thuật toán được đề xuất cho IDS là

98,7%, nhỏ hơn 0,2% so với giá trị cao nhất là 98,8% do bộ phân loại BG đưa ra. Tuy

nhiên, bộ phân loại BG chọn kết hợp 39 đặc tính, lớn hơn đáng kể so với bộ phân loại

RF đã chọn chỉ với 19 đặc tính. Kết quả hiệu suất xác thực của các bộ phân loại BS và

KNN cũng khá cao nhưng số lượng đặc tính trong các bộ tổ hợp được chọn lại lớn, lần

lượt là 36 và 40, dẫn đến sự phức tạp và tốn thời gian cho việc huấn luyện và triển khai

mô hình trong các ứng dụng trong thế giới thực.

Lý do đằng sau việc sử dụng các tiêu chí chính là để cho thuật toán được đề xuất

với mục đích xây dựng IDS cần phải đơn giản nhưng vẫn đảm bảo hiệu suất phát hiện

cao.

 Đối với khía cạnh đơn giản, nghiên cứu này lựa chọn số lượng nhỏ các đặc tính trong các tổ hợp dữ liệu đã chọn, điều này chắc chắn làm giảm thời gian đào tạo

và độ phức tạp trong quá trình xây dựng mô hình.

 Đối với hiệu suất phát hiện, nghiên cứu này lựa chọn mô hình học máy có độ chênh lệch hiệu suất tối đa là 1% so với mô hình khác có hiệu suất cao nhất về

độ chính xác. Thật vậy, tiêu chí này đảm bảo rằng mô hình học máy được lựa

chọn để xây dựng IDS tạo ra khoảng cách không đáng kể về hiệu suất phân loại

so với mô hình học máy tốt nhất, chính là BG trong nghiên cứu này. Mặc dù có

hiệu suất tốt hơn nhưng chúng ta bỏ qua, không lựa chọn mô hình BG do có quá

nhiều đặc tính trong tổ hợp được chọn nên việc xây dựng mô hình trở nên phức

tạp và tốn nhiều thời gian.

Bảng 3.3. Ma trận nhầm lẫn của bộ phân loại Rừng Ngẫu Nhiên

Lớp dự đoán

Bình thường

Tấn công

Lớp thực tế

1973

179

Bình thường

218

9480

Tấn công

49

Một đặc điểm quan trọng khác là quy trình xác thực chéo được áp dụng cho bước

xác thực mô hình, giúp tránh được vấn đề phù hợp quá mức. Ngoài ra, việc triển khai

phương pháp xác thực chéo dẫn đến khả năng thích ứng được cải thiện đáng kể của IDS

được đề xuất với các kịch bản khác nhau trong môi trường thực tế của IoT và mạng máy

tính.

Bảng 3.3 biểu thị ma trận nhầm lẫn của phân loại nhị phân cho bộ phân loại RF

bằng cách sử dụng tổ hợp 19 đặc tính trên bộ dữ liệu thử nghiệm. IDS đề xuất thu được

Acc là 96,7% và AUC là 98,9% trên bộ dữ liệu KDDTest-21. Hình 3.6 thể hiện ROC

của thuật toán được đề xuất cho IDS.

Hình 3.6. Đường cong ROC của thuật toán được đề xuất

3.4.3. So sánh hiệu năng IDS đề xuất với các nghiên cứu khác ứng dụng học

máy, học sâu

Để đánh giá hiệu suất của IDS được đề xuất một cách tổng quan nhất, một số nghiên

cứu về xây dựng và phát triển IDS ứng dụng thuật toán học máy, học sâu được sử dụng

để đối chiếu, so sánh kết quả. Các nghiên cứu được lựa chọn bao gồm:

 Nghiên cứu [19] cũng sử dụng bộ dữ liệu NSL-KDD để xây dựng IDS. Để hiểu được sự phân phối dữ liệu một cách trực quan, nhóm tác giả đã giảm

kích thước của NSL-KDD từ 41 xuống 2 và hy vọng tập dữ liệu 2 chiều đại

diện tiêu biểu nhất cho dữ liệu gốc. PCA được sử dụng để tìm ra khía cạnh

50

quan trọng nhất của dữ liệu. Ở đây, 3 thuật toán được lựa chọn để đánh giá

hiệu suất lần lượt là: MT, DNN, AV.

 Nghiên cứu [20] sử dụng bộ dữ liệu tiền nhiệm của NSL-KDD là KDD CUP 99 để phát triển IDS. Dữ liệu này trải qua giai đoạn lựa chọn đặc tính gồm 3

bước: lựa chọn đặc tính dựa vào việc lọc, lựa chọn đặc tính dựa vào việc gói

và ứng dụng lần lượt thuật toán C4.5 và mạng Bayesian để thu được hiệu suất

phân loại trên tập dữ liệu tối ưu.

 Nghiên cứu [25] được xây dựng trên mạng thần kinh tái phát với máy trạng thái tiếng vọng nhiều lớp để lập mô hình phát hiện xâm nhập. Để đánh giá mô

hình, ba bộ dữ liệu có sẵn công khai, cụ thể là DARPA KDD'99, NSL-KDD

và UNSW NB 15 được sử dụng để đánh giá hiệu suất.

Bảng 3.4. So sánh kết quả mô hình được đề xuất với các nghiên cứu khác trên cùng tập

dữ liệu

Các mô hình

Acc (%)

TPR(%)

FPR(%)

[19]

85,2

85,2

-

[20]

69,9

-

0.7

[24]

93.58

-

-

[25]

98

-

5.1

[43]

97

96.8

-

[44]

83.1485

72.4694

-

[45]

98.1

98.1

-

[46]

86.95

87.25

13.45

98.7

98.5

1.2

Mô hình đề xuất

Từ Bảng 3.4, ta có thể thấy được mô hình được đề xuất có độ chính xác cao nhất,

lên đến 98,7%. Mặc dù giá trị FPR đang thấp hơn một chút so với nghiên cứu [25],

nhưng mô hình được đề xuất có độ chính xác tổng thể vượt trội hơn hẳn so với nghiên

cứu [25] này. Từ kết quả trên, có thể thấy được khả năng phân loại của mô hình IDS

51

được đề xuất trong nghiên cứu này là rất tốt với bộ dữ liệu được sử dụng là NSL-KDD.

3.5. Lựa chọn IDS tối ưu áp dụng cho hệ thống IoT

Truy cập trái phép vào IoT hoặc mạng máy tính là các mối đe dọa an ninh mạng. Vì

vậy, việc xác định chính xác các kiểu tấn công ngay từ đầu là rất quan trọng, giúp các

kỹ thuật viên và nhà quản lý có thể triển khai nhanh chóng các giải pháp bảo vệ mạng

hiệu quả. Hơn nữa, việc cải thiện hiệu suất phát hiện cũng đóng một vai trò quan trọng

trong các ứng dụng IDS thực.

Trong nghiên cứu này, một thuật toán phát hiện nhị phân mới đã được đề xuất, được

áp dụng cho IDS để phát hiện các loại dữ liệu bất thường hay còn được biết đến là các

cuộc tấn công hoặc các hoạt động trái phép có trong mạng IoT. Cụ thể, phương pháp

RFE kết hợp với mô hình BS được sử dụng để huấn luyện dữ liệu để thu được giá trị độ

quan trọng của dữ liệu, để từ đó làm tiền đề tạo ra các tổ hợp đặc tính khác nhau và thu

được bộ dữ liệu con chứa các đặc tính tối ưu nhất.

Qua khảo sát ở các phần trước, khả năng của các thuật toán học máy và học sâu

được rất nhiều nhà nghiên cứu trên toàn thế giới tận dụng để phát triển và xây dựng các

IDS trong IoT. Vì vậy, với mục đích xây dựng một IDS có hiệu suất phát hiện xâm nhập

tốt trong IoT, một tập hợp các mô hình học máy được sử dụng để ước tính hiệu suất

phân loại bằng cách sử dụng các tổ hợp đặc tính trên tập dữ liệu xác thực. Kết quả thực

hiện cho thấy các thuật toán học máy được đề xuất cho IDS khẳng định khả năng của

nó về mặt phát hiện bất thường và có khả năng ứng dụng trong IoT thực tế. Hiệu suất

tốt nhất đạt được với thuật toán RF và tổ hợp 19 đặc tính.

Tuy nhiên, bên cạnh xây dựng thành công một IDS cho IoT có khả năng phát hiện

xâm nhập để đưa ra cảnh báo sớm, vẫn còn những vấn đề có thể tối ưu nhằm cải thiện

thêm về mặt hiệu suất cũng như ứng dụng được nhiều hơn vào các hệ thống IoT ngày

càng phức tạp hơn. Điểm yếu cần khắc phục của nghiên cứu này trong tương lai chính

là bộ dữ liệu được lựa chọn để huấn luyện và đánh giá mô hình: NSL-KDD. Mặc dù bộ

dữ liệu này là một trong những bộ dữ liệu nổi tiếng và phổ biến nhất cũng như đã xây

dựng được nhiều IDS có khả năng phát hiện xâm nhập tốt trong cả các mạng máy tính

thông thường và cả trong mạng IoT, nhưng với sự phát triển của công nghệ, cấu trúc của

52

các hệ thống IoT ngày càng trở nên phức tạp kéo theo vấn đề về mặt bảo mật của các hệ

thống này cũng ngày một khắt khe hơn. Bộ dữ liệu NSL-KDD đã có từ rất lâu, dẫn đến

một vấn đề lớn chính là nó không thể cập nhật được những đặc tính mới thường xuất

hiện trong các cuộc tấn công nhắm đến các hệ thống IoT. Ngoài ra, NSL-KDD không

hoàn toàn là một dữ liệu được thu thập trực tiếp từ mạng IoT, dẫn đến có một số đặc

tính có sẵn trong bộ dữ liệu này cũng không còn phù hợp với các hệ thống IoT hiện tại.

Vì vậy, trong tương lai, các bộ dữ liệu phổ biến được trích xuất từ các hệ thống mạng

IoT như IoT-23, BoT-IoT sẽ được khảo sát và ứng dụng để tối ưu hệ thống IDS được đề

xuất.

Ngoài ra, các nghiên cứu xây dựng IDS cho các hệ thống IoT với các phương pháp

nổi bật cũng được khảo sát để tổng hợp những phương pháp có thể sử dụng để tối ưu

IDS được đề xuất trong tương lai. Nhóm tác giả [40] sử dụng bộ dữ liệu IoT-23, chứa

các tệp .pcap sẵn có của dữ liệu được thu thập, nên có thể sử dụng các bộ phân tích mạng

bổ sung để truy xuất các đặc tính bổ sung. Ngoài ra, một khía cạnh thú vị khác có thể

được xem xét để phát hiện các xâm nhập bất thường chính là tìm các đặc tính được chia

sẻ giữa các các cuộc tấn công và có thể phát hiện các cuộc tấn công mới chia sẻ cùng

một đặc tính chung nào đó. Nhiều bộ dữ liệu được trích xuất từ IoT như BoT-IoT, IoT-

23,… được tận dụng trong [41] để thực hiện không chỉ là phân loại nhị phân mà còn

thực hiện cả phân loại nhiều lớp kết hợp với học chuyển tiếp. Nhóm tác giả cũng đã đề

cập về việc phương pháp học tập chuyển tiếp chưa từng được sử dụng để phát hiện bất

thường cho một mô hình đa lớp đào tạo trước đó có thể được sử dụng cho phân loại nhị

phân và phân loại đa lớp, vì vậy đây cũng là một phương pháp có thể được xem xét

trong tương lai để tối ưu IDS cho các hệ thống IoT. Trong [42], kĩ thuật RFE cũng được

sử dụng kết hợp với bộ dữ liệu BoT-IoT. Các tập con chứa một số lượng nhất định các

đặc tính tốt nhất lần lượt được khảo sát để từ đó thu được hiệu suất tốt nhất với các tập

đặc tính tốt nhất, lần lượt chứa 10,20 và 40 đặc tính. Đây cũng là một cách tiếp cận mới

để triển khai kĩ thuật RFE để tối ưu IDS cho IoT được đề xuất trong tương lai.

3.6. Những giới hạn của phương pháp đề xuất

Mặc dù đã xây dựng thành công IDS sử dụng bộ dữ liệu NSL-KDD và các thuật

53

toán học máy để phát hiện xâm nhập cho mạng IoT với hiệu suất rất cao, song vẫn tồn

tại một số yếu điểm cần khắc phục và phát triển trong tương lai. Các giới hạn trong

nghiên cứu này cần được mở rộng, tiếp tục nghiên cứu trong tương lai do điều kiện về

thời gian cũng như khối lượng công việc thực hiện trong đồ án:

 Thứ nhất, đồ án mới xem xét thiết kế thuật toán IDS dựa trên bộ dữ liệu

NSL-KDD mà chưa mở rộng xem xét đến các bộ dữ liệu khác, đặc biệt là

các bộ dữ liệu thu thập gần đây.

 Thứ hai, đồ án mới sử dụng một thuật toán lựa chọn đặc tính. Để có sự lựa chọn đặc tính tốt hơn, chính xác hơn, cần mở rộng xem xét nhiều thuật toán

lựa chọn đặc tính, so sánh đánh giá để kết luận được tập đặc tính tốt nhất đại

diện cho dữ liệu trong việc phân loại, dò tìm, phát hiện tấn công mạng.  Thứ ba, do điều kiện thời gian, đồ án mới chỉ sử dụng các thuật toán học máy, chưa mở rộng ứng dụng, so sánh với các thuật toán học sâu và các

thuật toán lai giữa học máy và học sâu nhằm tăng cường khả năng phân loại,

dò tìm, phát hiện tấn công mạng.

 Mô hình đề xuất trong đồ án này mới chỉ xem xét tới việc phân loại nhị

phân, đó là phát hiện, dò tìm có hay không có tấn công mạng mà chưa xem

xét đến phân loại, dò tìm, phát hiện loại tấn công cụ thể.

Cụ thể hơn, bộ dữ liệu được lựa chọn để xây dựng IDS là NSL-KDD chưa phải là

bộ dữ liệu hoàn hảo. NSL-KDD là một bộ dữ liệu được rất nhiều nhà khoa học sử dụng

để nghiên cứu các mô hình hệ thống phát hiện xâm nhập của họ bởi vì nó chứa rất nhiều

đặc tính phổ biến có thể khái quát cho rất nhiều cuộc tấn công mạng. Tuy nhiên, bởi vì

đã được ra đời quá lâu so với thời điểm hiện tại, bộ dữ liệu này không còn có thể bao

quát được các hình thức tấn công mạng với nhiều biến thể khác nhau, đặc biệt trong các

hệ thống mạng IoT, nơi mà các loại tấn công ngày càng tinh vi cũng như việc triển khai

các phương pháp phòng thủ xâm nhập rất khó khăn vì bị hạn chế về mặt tài nguyên của

các thiết bị IoT.

Tiếp theo, trong nghiên cứu này chỉ mới lựa chọn một phương pháp lựa chọn đặc

54

tính tốt nhất là RFE. Mặc dù bộ dữ liệu con chứa các đặc tính tối ưu của bộ dữ liệu thu

được từ kĩ thuật RFE trong nghiên cứu này cũng giúp mô hình được đề xuất có hiệu suất

cao nhưng nếu kết hợp và sử dụng thêm một số phương pháp lựa chọn đặc tính phổ biến

như: lựa chọn đặc tính chuyển tiếp tuần tự, chênh lệch tuyệt đối trung bình,… thì có thể

sẽ thu được bộ tối ưu hơn bộ dữ liệu đạt được hiện tại trong nghiên cứu này.

Bên cạnh đó, nghiên cứu tuy đã tận dụng tốt các thuật toán học máy nhưng mới chỉ

tận dụng khả năng của từng thuật toán riêng biệt. Hiệu suất phân loại hiện tại tuy cũng

đã ở mức rất cao nhưng mới đạt gần 99%, vẫn có khả năng có thể cải thiện được bằng

các mô hình lai giữa các thuật toán học máy và học sâu, ví dụ như: Adversarial

AutoEncoder và KNN, CNN và RF, …

Một vấn đề cần tiếp tục phát triển cho mô hình chính là đầu ra của mô hình. Hiện

tại mô hình chỉ mới có khả năng thực hiện các phân loại nhị phân để phân loại xem một

hành vi đang thuộc lớp nào trong 2 lớp phân loại: tấn công hay bình thường. Dù kết quả

phát hiện xâm nhập là tốt nhưng mô hình hiện tại không có khả năng phát hiện vào sâu

bên trong hành vi đó để xác định cuộc tấn công đó thuộc loại tấn công nào, có những

đặc điểm nổi bật ra sao để có thể cảnh báo và đưa ra giải pháp hợp lí hơn để xử lí và giải

quyết triệt để, giảm thiểu tối đa ảnh hưởng mà cuộc tấn công mang lại.

3.7. Kết luận chương 3

Trong chương 3, phương pháp chi tiết để xử lý bộ dữ liệu NSL-KDD đã được đề

cập. Bằng cách làm sạch, chuẩn hóa dữ liệu đồng thời kết hợp thêm kĩ thuật loại bỏ đặc

tính đệ quy RFE để thu được bộ dữ liệu con chứa các đặc tính tốt nhất của NSL-KDD,

từ đó giúp tăng cường hiệu suất phân loại của mô hình. Bộ dữ liệu sau khi qua giai đoạn

tiền xử lí dữ liệu sẽ được sử dụng cùng với các thuật toán học máy với mục đích huấn

luyện và kiểm tra nhằm xây dựng được một hệ thống IDS có khả năng phát hiện xâm

nhập với hiệu suất cao trong IoT. Từ kết quả thu được, có thể kết luận rằng mô hình IDS

đề xuất đã được xây dựng thành công với hiệu suất phân loại cao nhất lên đến 98,7% độ

chính xác khi sử dụng thuật toán RF.

55

KẾT LUẬN

Với sự phát triển vượt bậc của các hệ thống IoT, nó đã và đang góp phần giúp

cho rất nhiều lĩnh vực hoạt động ngày càng trở nên thông minh hơn, thuận tiện hơn. Tuy

nhiên, bên cạnh tốc độ phát triển chóng mặt đó, các hệ thống IoT cũng phải đương đầu

với một số vấn đề lớn, nguy hiểm nhất trong số đó chính là vấn đề bảo mật. Việc triển

khai các giải pháp phòng thủ trước các cuộc tấn công trong các hệ thống IoT là điều

không hề dễ dàng, bởi vì vấn đề giới hạn tài nguyên của các thiết bị IoT. Vì vậy, việc

nghiên cứu và phát triển các giải pháp phát hiện xâm nhập trong các hệ thống IoT ngày

càng trở nên thiết yếu hơn bao giờ hết.

Hệ thống phát hiện xâm nhập (IDS) là một trong những giải pháp phổ biến nhất

được sử dụng để phát hiện sớm các cuộc tấn công vì nó có thể tận dụng được khả năng

của các thuật toán thông minh, từ đó chuẩn bị được biện pháp phòng tránh hợp lí sớm

nhất có thể, giảm thiểu thiệt hại xuống mức tối đa.

Trong khuôn khổ luận văn này, học viên tập trung vào làm rõ các vấn đề tổng

quan về những vấn đề bảo mật còn tồn đọng trong các hệ thống IoT cũng như khả năng

của các thuật toán thông minh để giải quyết những vấn đề này, từ đó lựa chọn, xử lí dữ

liệu để xây dựng, đề xuất một hệ thống phát hiện xâm nhập có hiệu suất cao ứng dụng

các thuật toán học máy, học sâu nói trên. Các kết quả đạt được trong luận văn bao gồm:  Tìm hiểu tổng quan về công nghệ cũng như các hệ thống IoT, từ đó làm rõ được

những vấn đề bảo mật các hệ thống IoT phải đối mặt cũng như khảo sát tổng

quan các phương pháp để lựa chọn được phương pháp tối ưu nhất cho vấn đề

phát hiện xâm nhập trong các hệ thống IoT.

 Nghiên cứu về hệ thống phát hiện xâm nhập cũng như khả năng của các thuật

toán học máy và học sâu, từ đó đề xuất mô hình và kiến trúc tổng thể một mô

hình phát hiện xâm nhập có khả năng sử dụng các thuật toán trên để phát hiện

bất thường trong IoT. Bên cạnh đó, những đặc tính quan trọng của bộ dữ liệu

được lựa chọn để xây dựng nên IDS đề xuất cũng được nghiên cứu.

 Ứng dụng triển khai, mô phỏng hệ thống phát hiện xâm nhập với các thuật toán

thông minh cũng như bộ dữ liệu được lựa chọn, từ đó phân tích và đánh giá hiệu

56

năng của mô hình. Kết quả thu được cho thấy, mô hình được đề xuất có hiệu

suất phát hiện xâm nhập lên đến 98,7% khi kết hợp với kĩ thuật loại bỏ đặc tính

đệ quy và thuật toán Rừng ngẫu nhiên, cho thấy nghiên cứu đã xây dựng thành

công mô hình với hiệu suất rất tốt.

Tuy nhiên, mô hình được đề xuất vẫn còn một số yếu điểm nhất định cần phải

khắc phục trong tương lai, cụ thể:

 Cần mở rộng, sử dụng thêm những bộ dữ liệu mới được trích xuất trực tiếp từ

các hệ thống mạng IoT nhằm nâng cao hiệu suất cũng như giúp mô hình có thể

phát hiện thêm nhiều hình thức, biến thể tấn công mới.

 Xem xét thêm một số thuật toán lựa chọn đặc tính như thuật toán lựa chọn đặc tính chuyển tiếp tuần tự, chênh lệch tuyệt đối trung bình,… để có thể tìm ra một

bộ dữ liệu chứa các đặc tính tối ưu hơn bộ dữ liệu hiện tại.

 Xem xét, kết hợp thêm các thuật toán thông minh khác LSTM hay ANN nhằm tạo ra các mô hình lai có thể giúp cải thiện thêm về mặt hiệu suất phát hiện.  Nghiên cứu thực hiện thêm các phân loại nhiều lớp cho mô hình để có thể xác

định chính xác các cuộc tấn công thuộc loại nào để từ đó đưa ra giải pháp xử lý

hữu hiện hơn, giảm thiểu tối đa thiệt hại cho các hệ thống IoT.

57

DANH MỤC TÀI LIỆU THAM KHẢO

[1] A. V. Dastjerdi and R. Buyya, "Fog computing:Helping the Internet of Things realize

its potential,"Computer, vol. 49, no. 8, pp. 112-116, 2016.

[2] Z. Yan, P. Zhang, and A. V. Vasilakos, "A survey on trust management for Internet of

Things," Journal of network and computer applications, vol. 42, pp. 120-134, 2014.

[3] D. Evans, "The internet of things: How the next evolution of the internet is changing

everything," CISCO white paper, vol. 1, no. 2011, pp. 1-11, 2011.

[4] S. Ray, Y. Jin, and A. Raychowdhury, "The changing computing paradigm with

internet of things: A tutorial introduction," IEEE Design & Test, vol. 33, no. 2, pp. 76-

96, 2016.

[5] M. Abomhara, "Cyber security and the internet of things: vulnerabilities, threats,

intruders and attacks," Journal of Cyber Security and Mobility, vol. 4, no. 1, pp. 65-

88, 2015.

[6] D. Serpanos, "The Cyber-Physical Systems Revolution," Computer, vol. 51, no. 3, pp.

70-73, 2018.

[7] E. Bertino and N. Islam, "Botnets and internet of things security," Computer, vol. 50,

no. 2, pp. 76-79, 2017.

[8] S. Raza, L. Wallgren, and T. Voigt, "SVELTE: Realtime intrusion detection in the

Internet of Things," Adhoc networks, vol. 11, no. 8, pp. 2661-2674, 2013.

[9] W. Kong, J. Shen, P. Vijayakumar, Y. Cho, V. Chang, “A practical group blind

signature scheme for privacy protection in smart grid,” J. Parallel Distrib. Comput.,

vol. 136, pp. 29–39, 2020.

[10] M. Eskandari, Z. H. Janjua, M. Vecchio and F. Antonelli, "Passban IDS: An Intelligent

Anomaly-Based Intrusion Detection System for IoT Edge Devices," IEEE Internet of

Things Journal, vol. 7, no. 8, pp. 6882-6897, Aug. 2020.

[11] Abdel‐Basset, Mohamed, et al. "Internet of things in smart education environment:

Supportive

framework

in

the decision‐making process." Concurrency and

Computation: Practice and Experience, vol. 31, 2019.

58

[12] S.B. Baker, W. Xiang and I. Atkinson, "Internet of Things for Smart Healthcare:

Technologies, Challenges, and Opportunities," IEEE Access, vol. 5, pp. 26521-26544,

2017.

[13] Gondchawar, Nikesh, and R.S.Kawitkar. "IoT based smart agriculture." International

Journal of advanced research in Computer and Communication Engineering, vol. 5,

no. 6, pp. 838-842, 2016.

[14] Mishra, Nivedita, and Sharnil Pandya. "Internet of things applications, security

challenges, attacks, intrusion detection, and future visions: A systematic review." IEEE

Access, vol. 9, pp. 59353-59377, 2021.

[15] Hassan, Wan Haslina. "Current research on Internet of Things (IoT) security: A

survey." Computer networks, vol 148, pp. 283-294, 2019.

[16] V. Hassija, V. Chamola, V. Saxena, D. Jain, P. Goyal and B. Sikdar, "A Survey on IoT

Security: Application Areas, Security Threats, and Solution Architectures," IEEE

Access, vol. 7, pp. 82721-82743, 2019.

[17] Alhammadi, Nafea Ali Majeed, and Khalid Hameed Zaboon. "A Review of IoT

Applications, Attacks and Its Recent Defense Methods." Journal of Global Scientific

Research, vol. 7, no. 3, pp. 2128-2134, 2022.

[18] Liu, Hongyu, and Bo Lang. "Machine learning and deep learning methods for intrusion

detection systems: A survey." Applied sciences, vol. 9, no. 20, pp. 4396, 2019.

[19] X. Gao, C. Shan, C. Hu, Z. Niu, Z. Liu, “An adaptive ensemble machine learning

model for intrusion detection,” IEEE Access, vol. 7, pp. 82512–82521, 2019.

[20] B. Selvakumar, K. Muneeswaran, “Firefly algorithm based feature selection for

network intrusion detection,” Comput. Secur., vol. 81, pp. 148–155, 2019.

[21] A. Binbusayyis and T. Vaiyapuri, “Identifying and benchmarking key features for

cyber intrusion detection: An ensemble approach,” IEEE Access, vol 7, pp. 106495–

106513, 2019.

[22] M. T. Nguyen and K. Kim, ‘‘Genetic convolutional neural network for intrusion

detection systems,’’ Future Gener. Comput. Syst., vol. 113, pp. 418–427, 2020.

59

[23] A. S. Khan, Z. Ahmad, J. Abdullah, and F. Ahmad, “A Spectrogram Image-Based

Network Anomaly Detection System Using Deep Convolutional Neural Network,”

IEEE Access, vol. 9, pp. 87979-87093, 2021.

[24] G. Andresini, A. Appice, and D. Malerba. “Nearest cluster-based intrusion detection

through convolutional neural networks,” Knowledge-Based Systems, vol. 216, pp. 1-

15, 2021.

[25] T.A. Tchakoucht, M. Ezziyyani, “Multilayered echo-state machine: A novel

architecture for efficient intrusion detection,” IEEE Access, vol. 6, pp. 72458–72468,

2018.

[26] A.A. Diro, N. Chilamkurti, “Distributed attack detection scheme using deep

learning approach for Internet of Things,” Future Gener. Comput. Syst., vol. 82, pp.

761–768, 2018.

[27] S.M. Kasongo, Y. Sun, “A deep learning method with filter based feature

engineering for wireless intrusion detection system,” IEEE Access, vol. 7, 38597–

38607, 2019.

[28] R. Vinayakumar, M. Alazab, K.P. Soman, P. Poornachandran, A. Al-Nemrat,

S. Venkatraman, “Deep learning approach for intelligent intrusion detection

system,” IEEE Access, vol. 7, pp. 41525–41550, 2019.

[29] T.-T.-H. Le, Y. Kim, H. Kim, “Network intrusion detection based on novel

feature selection model and various recurrent neural networks,” Appl. Sci., vol. 9, pp.

1–29, 2019.

[30] Q. Chen, Z. Meng, X. Liu, Q. Jin, and R. Su, “Decision Variants for the Automatic

Determination of Optimal Feature Subset in RF-RFE,” Genes (Basel), vol. 6, pp. 1-13,

2018.

[31] E. Kabir, J. Hu, H. Wang, G. Zhuo, A novel statistical technique for intrusion

detection systems, Future Gener. Comput. Syst., vol. 79, pp. 303–318, 2018.

[32] K. Peng, V. C. M. Leung, and Q. Huang, ‘‘Clustering approach based on

mini batch Kmeans for

intrusion detection system over big data,’’ IEEE

Access, vol. 6, pp. 11897–11906, 2018.

60

[33] Vargaftik S, Keslassy

I, Ben-Itzhak Y

(2019) Rade: Resource-efficient

supervised

anomaly

detection

using

decision

tree-based

ensemble

methods. arXiv preprint arXiv:1909.11877

[34] LYPA, Borys; IVER, Oleh; KIFER, Viktor. Application of machine learning methods

for network intrusion detection system. Proceeding of Processing, Transmission and

Security of Information, 2019, 233-240.

[35] T. Hastie, R. Tibshirani, and J. Friedman, The Elements of Statistical Learning. New

York, NY, USA: Springer, 2001.

[36] R. O. Duda, P. E. Hart, and D. G. Stork, Pattern Classification, 2nd ed. New York, NY,

USA: Wiley, 2001.

[37] Aghdam, Hamed Habibi, and Elnaz Jahani Heravi. "Guide to convolutional neural

networks." New York, NY: Springer 10.978-973 (2017): 51.

[38] Dhanabal, L., and S. P. Shantharajah. "A study on NSL-KDD dataset for intrusion

detection system based on classification algorithms." International journal of

advanced research in computer and communication engineering, vol. 4, no. 6, pp. 446-

452, 2015).

[39] Samb, Mouhamadou Lamine, et al. "A novel RFE-SVM-based feature selection

approach for classification." International Journal of Advanced Science and

Technology 43.1 (2012): 27-36.

[40] Abdalgawad, Nada, et al. "Generative deep learning to detect cyberattacks for the IoT-

23 dataset." IEEE Access, vol. 10, pp. 6430-6441, 2021.

[41] Ullah, Imtiaz, and Qusay H. Mahmoud. "Design and development of a deep learning-

based model for anomaly detection in IoT networks." IEEE Access, vol. 9, pp. 103906-

103926, 2021.

[42] Ullah, Imtiaz, and Qusay H. Mahmoud. "A technique for generating a botnet dataset

for anomalous activity detection in IoT networks." 2020 IEEE International

Conference on Systems, Man, and Cybernetics (SMC). IEEE, 2020.

[43] Liu, Jinxin, Burak Kantarci, and Carlisle Adams. "Machine learning-driven intrusion

detection

for Contiki-NG-based

IoT networks

exposed

to NSL-KDD

61

dataset." Proceedings of the 2nd ACM workshop on wireless security and machine

learning, 2020.

[44] Taghavinejad, Seyedeh Mahsan, et al. "Intrusion detection in IoT-based smart grid

using hybrid decision tree." 2020 6th International Conference on Web Research

(ICWR). IEEE, 2020.

[45] Rani, Deepa, and Narottam Chand Kaushal. "Supervised machine learning based

network intrusion detection system for Internet of Things." 2020 11th International

Conference on Computing, Communication and Networking Technologies (ICCCNT).

IEEE, 2020.

[46] Li, Yanmiao, et al. "Robust detection for network intrusion of industrial IoT based on

multi-CNN fusion." Measurement 154 (2020): 107450.

62

PHỤ LỤC

%code ========================================================= % This file implements the validation of every feature set using BG model %========================================================== === clear; close; clc; path_res = 'D:/my_folder/'; filename = {'BG_RFE_val_F_1'}; [KDD_val] = BG_RFE_validate; file_save = sprintf('%s%s',path_res,filename{1}); save(file_save,'KDD_val'); function [BG_val] = BG_RFE_validate load('BS_RFE_rank_feature.mat'); %#ok num_tr = size(KDD0.teblabel,1); num_fold = 5; tr_indices = crossvalind('Kfold',num_tr,num_fold); BG_val_acc = zeros(41,5); BG_val_fpr = zeros(41,5); BG_val_F1 = zeros(41,5); BG_val_tpr = zeros(41,5); for k = 1:num_fold teInd = (tr_indices == k); trInd = ~teInd; tr_folds = KDD0.tedata(trInd,:); te_folds = KDD0.tedata(teInd,:); tr_label_folds = KDD0.teblabel(trInd,1);te_label_folds = KDD0.teblabel(teInd,1); targ = unique(te_label_folds); nhan = unique(tr_label_folds); if any(targ(:)==0) && any(targ(:)== 1)&& any(nhan(:)==0) && any(nhan(:)== 1) for l=6:41 sprintf('Testing data is fold %d, loop %d',k,2) % BG model trained Model_BG = TreeBagger(BG_para.BG.num_tree,tr_folds(:,2:41),tr_label_folds,... 'Method','classification','MinLeafSize',BG_para.BG.num_leaf,... 'NumPredictorsToSample','all','prior','Empirical'); predict_BG = predict(Model_BG,te_folds(:,2:41)); S = sprintf('%s*', predict_BG{:}); predict_BG = sscanf(S, '%f*'); [~,Result_BG,~]= Matrix_construction(te_label_folds,predict_BG,0); BG_val_acc(1,k) = Result_BG.Accuracy; BG_val_fpr(1,k) = Result_BG.FalsePositiveRate; BG_val_tpr(1,k) = Result_BG.Sensitivity; BG_val_F1(1,k) = Result_BG.F1_score; end end end BG_val.acc = mean(BG_val_acc,2); BG_val.fpr = mean(BG_val_fpr,2); BG_val.F1_score = mean(BG_val_F1,2); BG_val.tpr = mean(BG_val_tpr,2); end function [conf_matrix,Result,RefereceResult]= Matrix_construction(true,pred) if (nargin < 2) error('Not enough input arguments. Need atleast two vectors as input');

63

elseif (nargin > 3) error('Too many input arguments.'); end true = true(:); pred = pred(:); if length(true) ~= length(pred) error('Input have different lengths') end x_true = unique(true); x_pred = unique(pred); condition=length(x_true)==length(x_pred); if ~condition error('Class List is not same in given inputs') end condition=(sum(x_true==x_pred)==length(x_true)); if ~condition error('Class List in given inputs are different') end class_list = x_true; B_true_class_list = {'normal';'attack'}; n_class = length(x_true); conf_matrix = zeros(n_class); pred_class = cell(1,n_class); class_ref = cell(n_class,1); row_name = cell(1,n_class); for i=1:n_class class_ref{i,1} = strcat('class',num2str(i-1),'==>',B_true_class_list(i)); for j=1:n_class val = (true == class_list(i)) & (pred == class_list(j)); conf_matrix(i,j) = sum(val); pred_class{i,j} = sum(val); end row_name{i}=strcat('True_class_',B_true_class_list{i}); end confusion_matrix_table = cell2table(pred_class,'VariableNames',{'Predicted_class_normal' 'Predicted_class_attack'}); confusion_matrix_table.Properties.RowNames = row_name; disp('Confusion Matrix for ML classifier of 2 classses') disp(confusion_matrix_table) [Result,RefereceResult] = getValues(conf_matrix); RefereceResult.Class=[class_ref{:}]'; end %-------------------------------------------------------------------------- function [Result,RefereceResult]= getValues(c_matrix) if (nargin < 1) error('Not enough input arguments. Need atleast two vectors as input'); elseif (nargin > 1) error('Too many input arguments.'); end [row,col] = size(c_matrix); if row ~= col error('Confusion matrix dimention is wrong') end n_class = row;

64

TP = c_matrix(1,1); FN = c_matrix(1,2); FP = c_matrix(2,1); TN = c_matrix(2,2); P = TP + FN; N = FP + TN; accuracy = (TP+TN)/(P+N); Sensitivity = TP./P; Specificity = TN./N; Precision = TP./(TP+FP); FPR = 1-Specificity; F1_score= 2*(Sensitivity.*Precision)./(Precision+Sensitivity) ; RefereceResult.AccuracyInTotal = accuracy'; RefereceResult.Sensitivity = Sensitivity'; RefereceResult.FalsePositiveRate = FPR'; RefereceResult.F1_score = F1_score'; Result.Accuracy = (accuracy); Result.Sensitivity = mean(Sensitivity); Result.FalsePositiveRate = mean(FPR); Result.F1_score = mean(F1_score); end %========================================================= % This file compute the feature importance and then rank the features based % on their important values from highest to lowest %=============================================== clear; close; clc; path_res = 'D:/my_folder/'; filename = {'BS_RFE_rank_feature'}; [KDD0] = BS_RFE; file_save = sprintf('%s%s',path_res,filename{1}); save(file_save,'KDD0'); %-------------------------------------------------------------------------- function [KDD0] = BS_RFE addpath('D:/my_folder/'); load('KDD41MM.mat'); num_tr = size(KDD.trblabel,1); num_fold = 5; tr_indices = crossvalind('Kfold',num_tr,num_fold); for k = 1:num_fold sprintf('Testing data is fold: %d',k) teInd = (tr_indices == k); trInd = ~teInd; tr_folds = KDD.trdata(trInd,:); te_folds = KDD.trdata(teInd,:); tr_label_folds = KDD.trblabel(trInd,1);te_label_folds = KDD.trblabel(teInd,1); targ = unique(te_label_folds); nhan = unique(tr_label_folds); if any(targ(:)==0) && any(targ(:)== 1)&& any(nhan(:)==0) && any(nhan(:)== 1) tree = templateTree('Minleaf',5); Model_BS = fitensemble(tr_folds,tr_label_folds,'RUSBoost',205,tree,... 'LearnRate',0.8,'type','classification'); predict_BS = predict(Model_BS,te_folds); pred_BS = unique(predict_BS); imp(k,:) = predictorImportance(Model_BS); [~,Result_BS,~]= Matrix_construction(te_label_folds,predict_BS,0); BS_Result_acc(k) = Result_BS.Accuracy; BS_Result_fpr(k) = Result_BS.FalsePositiveRate;

65

BS_Result_tpr(k) = Result_BS.Sensitivity; end end accuracy = mean(BS_Result_acc); false_positive_rate = mean(BS_Result_fpr); true_positive_rate = mean(BS_Result_tpr); important_feature = mean(imp,1); [B,I] = sort(important_feature,2); for i = 1:41 fna{i} = KDD.feature_names{I(i)}; end fnames = fna.'; KDD0.fname = fnames; KDD0.trdata = KDD.trdata(:,I); KDD0.tedata = KDD.tedata(:,I); KDD0.tedata21 = KDD.tedata21(:,I); KDD0.trblabel = KDD.trblabel; KDD0.teblabel = KDD.teblabel; KDD0.teblabel21 = KDD.teblabel21; KDD0.imp = B.'; KDD0.imp_ind = I.'; KDD0.acc = accuracy; KDD0.fpr = false_positive_rate; KDD0.tpr = true_positive_rate; end % This file implements the validation of every feature set using BS model %==================================================== clear; close; clc; path_res = 'D:/my_folder/'; filename = {'BS_RFE_val_F_1'}; [KDD_val] = BS_RFE_validate; file_save = sprintf('%s%s',path_res,filename{1}); save(file_save,'KDD_val'); %-------------------------------------------------------------------------- function [BS_val] = BS_RFE_validate load('BS_RFE_rank_feature.mat'); %#ok num_tr = size(KDD0.teblabel,1); num_fold = 5; tr_indices = crossvalind('Kfold',num_tr,num_fold); BS_val_acc = zeros(41,5); BS_val_fpr = zeros(41,5); BS_val_F1 = zeros(41,5); BS_val_tpr = zeros(41,5); for k = 1:num_fold teInd = (tr_indices == k); trInd = ~teInd; tr_folds = KDD0.tedata(trInd,:); te_folds = KDD0.tedata(teInd,:); tr_label_folds = KDD0.teblabel(trInd,1);te_label_folds = KDD0.teblabel(teInd,1); targ = unique(te_label_folds); nhan = unique(tr_label_folds); if any(targ(:)==0) && any(targ(:)== 1)&& any(nhan(:)==0) && any(nhan(:)== 1) for l=6:41 sprintf('Testing data is fold %d, loop %d',k,5)

66

% BS model trained tree = templateTree('Minleaf',13); Model_BS = fitensemble(tr_folds(:,l:41),tr_label_folds,'RUSBoost',... 76,tree,'LearnRate',0.8,'type','classification'); predict_BS = predict(Model_BS,te_folds(:,l:41)); [~,Result_BS,~]= Matrix_construction(te_label_folds,predict_BS,0); BS_val_acc(1,k) = Result_BS.Accuracy; BS_val_fpr(1,k) = Result_BS.FalsePositiveRate; BS_val_tpr(1,k) = Result_BS.Sensitivity; BS_val_F1(1,k) = Result_BS.F1_score; end end end BS_val.acc = mean(BS_val_acc,2); BS_val.fpr = mean(BS_val_fpr,2); BS_val.F1_score = mean(BS_val_F1,2); BS_val.tpr = mean(BS_val_tpr,2); end % This file show the confusion matrix and ROC curve of the proposed model clear; close; clc; load('BS_RFE_rank_feature.mat'); trdata = KDD0.trdata(:,1:41); trblabel = KDD0.trblabel; Model_RF = TreeBagger(175,trdata,trblabel,'Method','classification',... 'MinLeafSize',5,'prior','Empirical'); [predict_RF, score] = predict(Model_RF,KDD0.tedata21(:,1:41)); S = sprintf('%s*', predict_RF{:}); predict_RF = sscanf(S, '%f*'); [confusion_matrix_table,~,~]= Matrix_construction(KDD0.teblabel21,predict_RF) [X,Y,~,AUC] = perfcurve(KDD0.teblabel21,score(:,2),1); figure hold on title('ROC Curves','FontSize',18) xlabel('False positive rate','FontSize',18,'FontName','Times New Roman') ylabel('True positive rate','FontSize',18,'FontName','Times New Roman') plot(X,Y,'b','LineWidth',2); set(gca,'XTick',[0 0.2 0.4 0.6 0.8 1],'FontSize',18,'FontName','Times New Roman'); set(gca,'YTick',[0 0.2 0.4 0.6 0.8 1],'FontSize',18,'FontName','Times New Roman'); ylim([0 1]); xlim([0 1]); hold off; % This file implements the validation of every feature set using KNN model clear; close; clc; path_res = 'D:/my_folder/'; filename = {'KNN_RFE_val_F_1'}; [KDD_val] = KNN_RFE_validate; file_save = sprintf('%s%s',path_res,filename{1}); save(file_save,'KDD_val'); %-------------------------------------------------------------------------- function [KNN_val] = KNN_RFE_validate

67

load('BS_RFE_rank_feature.mat'); %#ok num_tr = size(KDD0.teblabel,1); num_fold = 5; tr_indices = crossvalind('Kfold',num_tr,num_fold); KNN_val_acc = zeros(41,5); KNN_val_fpr = zeros(41,5); KNN_val_F1 = zeros(41,5); KNN_val_tpr = zeros(41,5); for k = 1:num_fold teInd = (tr_indices == k); trInd = ~teInd; tr_folds = KDD0.tedata(trInd,:); te_folds = KDD0.tedata(teInd,:); tr_label_folds = KDD0.teblabel(trInd,1);te_label_folds = KDD0.teblabel(teInd,1); targ = unique(te_label_folds); nhan = unique(tr_label_folds); if any(targ(:)==0) && any(targ(:)== 1)&& any(nhan(:)==0) && any(nhan(:)== 1) for l=6:41 sprintf('Testing data is fold %d, loop %d',k,1) % KNN model trained Model_KNN = fitcknn(tr_folds(:,l:41),tr_label_folds,'NumNeighbors',5,... 'NSMethod','exhaustive','Distance','euclidean','Standardize',1); predict_KNN = predict(Model_KNN,te_folds(:,l:41)); [~,Result_KNN,~]= Matrix_construction(te_label_folds,predict_KNN,0); KNN_val_acc(1,k) = Result_KNN.Accuracy; KNN_val_fpr(1,k) = Result_KNN.FalsePositiveRate; KNN_val_tpr(1,k) = Result_KNN.Sensitivity; KNN_val_F1(1,k) = Result_KNN.F1_score; end end end KNN_val.acc = mean(KNN_val_acc,2); KNN_val.fpr = mean(KNN_val_fpr,2); KNN_val.F1_score = mean(KNN_val_F1,2); KNN_val.tpr = mean(KNN_val_tpr,2); end function [conf_matrix,Result,RefereceResult]= Matrix_construction(true,pred,Disp) if (nargin < 2) error('Not enough input arguments. Need atleast two vectors as input'); elseif (nargin > 3) error('Too many input arguments.'); end true = true(:); pred = pred(:); if length(true) ~= length(pred) error('Input have different lengths') end x_true = unique(true); x_pred = unique(pred); condition=length(x_true)==length(x_pred); if ~condition error('Class List is not same in given inputs') end condition=(sum(x_true==x_pred)==length(x_true)); if ~condition

68

error('Class List in given inputs are different') end class_list = x_true; M_true_class_list = {'normal';'dos';'probe';'r2l';'u2r'}; B_true_class_list = {'normal';'attack'}; n_class = length(x_true); conf_matrix = zeros(n_class); pred_class = cell(1,n_class); class_ref = cell(n_class,1); row_name = cell(1,n_class); %Calculate conufsion for all classes switch n_class case 2 for i=1:n_class %class_ref{i,1} = strcat('class',num2str(i),'==>',num2str(class_list(i))); class_ref{i,1} = strcat('class',num2str(i-1),'==>',B_true_class_list(i)); for j=1:n_class val = (true == class_list(i)) & (pred == class_list(j)); conf_matrix(i,j) = sum(val); pred_class{i,j} = sum(val); end end confusion_matrix_table = cell2table(pred_class,'VariableNames',{'Predicted_class_normal' 'Predicted_class_attack'}); confusion_matrix_table.Properties.RowNames = row_name; disp('Confusion Matrix for ML classifier of 2 classses') disp(confusion_matrix_table) [Result,RefereceResult] = getValues(conf_matrix); %Output Struct for individual Classes RefereceResult.Class=[class_ref{:}]'; otherwise for i=1:n_class class_ref{i,1} = strcat('class',num2str(i-1),'==>',M_true_class_list(i)); for j=1:n_class val = (true == class_list(i)) & (pred == class_list(j)); conf_matrix(i,j) = sum(val); pred_class{i,j} = sum(val); end end confusion_matrix_table = cell2table(pred_class,'VariableNames', ... {'Predicted_class_normal' 'Predicted_class_dos' 'Predicted_class_probe' ... 'Predicted_class_r2l' 'Predicted_class_u2r'}); confusion_matrix_table.Properties.RowNames = row_name; disp('Confusion Matrix for ML classifier of multiple classes') disp(confusion_matrix_table) [Result,RefereceResult] = getValues(conf_matrix); %Output Struct for individual Classes RefereceResult.Class=[class_ref{:}]'; end if Disp if n_class > 2 disp('Multi-Class Confusion Matrix Output') TruePositive = RefereceResult.TruePositive;

69

FalsePositive = RefereceResult.FalsePositive; FalseNegative = RefereceResult.FalseNegative; TrueNegative = RefereceResult.TrueNegative; TFPN = table(TruePositive,FalsePositive,FalseNegative,TrueNegative,... 'RowNames',row_name); disp(TFPN); Param=struct2table(RefereceResult);disp(Param) else disp('Two-Class Confution Matrix') param={'','TruePositive','FalsePositive';'FalseNegative',conf_matrix(1,1),... conf_matrix(1,2);'TrueNegative=TN',conf_matrix(2,1),conf_matrix(2,2)}; disp(param) end disp('Over all values') disp(Result) end end %-------------------------------------------------------------------------- function [Result,RefereceResult]= getValues(c_matrix) if (nargin < 1) error('Not enough input arguments. Need atleast two vectors as input'); elseif (nargin > 1) error('Too many input arguments.'); end [row,col] = size(c_matrix); if row ~= col error('Confusion matrix dimention is wrong') end n_class = row; switch n_class case 2 TP = c_matrix(1,1); FN = c_matrix(1,2); FP = c_matrix(2,1); TN = c_matrix(2,2); otherwise TP = zeros(1,n_class); FN = zeros(1,n_class); FP = zeros(1,n_class); TN = zeros(1,n_class); for i=1:n_class TP(i) = c_matrix(i,i); FN(i) = sum(c_matrix(i,:))-c_matrix(i,i); FP(i) = sum(c_matrix(:,i))-c_matrix(i,i); TN(i) = sum(c_matrix(:))-TP(i)-FP(i)-FN(i); end end P = TP + FN; N = FP + TN; switch n_class case 2 accuracy = (TP+TN)/(P+N); Error = 1 - accuracy; Result.Accuracy = (accuracy); Result.Error = (Error); otherwise accuracy = (TP)./(P+N); Error = (FP)./(P+N); Result.Accuracy = sum(accuracy); Result.Error = sum(Error); end RefereceResult.AccuracyOfSingle = (TP./P)'; RefereceResult.ErrorOfSingle = 1 - RefereceResult.AccuracyOfSingle; Sensitivity = TP./P; %quan tam thong so nay là true positive rate

70

Specificity = TN./N; Precision = TP./(TP+FP); FPR = 1-Specificity; % quan tam thong so nay beta = 1; F1_score=( (1+(beta^2))*(Sensitivity.*Precision) ) ./ ( (beta^2)*(Precision+Sensitivity) ); MCC=[( TP.*TN - FP.*FN ) ./ ( ( (TP+FP).*P.*N.*(TN+FN) ).^(0.5) );... ( FP.*FN - TP.*TN ) ./ ( ( (TP+FP).*P.*N.*(TN+FN) ).^(0.5) )] ; MCC = max(MCC); % This file implements the validation of every feature set using RF model clear; close; clc; path_res = 'D:/my_folder/'; filename = {'RF_RFE_val_F_1'}; [KDD_val] = RF_RFE_validate; file_save = sprintf('%s%s',path_res,filename{1}); save(file_save,'KDD_val'); %-------------------------------------------------------------------------- function [RF_val] = RF_RFE_validate load('BS_RFE_rank_feature.mat'); %#ok num_tr = size(KDD0.teblabel,1); num_fold = 5; tr_indices = crossvalind('Kfold',num_tr,num_fold); RF_val_acc = zeros(41,5); RF_val_fpr = zeros(41,5); RF_val_F1 = zeros(41,5); RF_val_tpr = zeros(41,5); for k = 1:num_fold teInd = (tr_indices == k); trInd = ~teInd; tr_folds = KDD0.tedata(trInd,:); te_folds = KDD0.tedata(teInd,:); tr_label_folds = KDD0.teblabel(trInd,1);te_label_folds = KDD0.teblabel(teInd,1); targ = unique(te_label_folds); nhan = unique(tr_label_folds); if any(targ(:)==0) && any(targ(:)== 1)&& any(nhan(:)==0) && any(nhan(:)== 1) for l=6:41 sprintf('Testing data is fold %d, loop %d',k,23) % RF model trained Model_RF = TreeBagger(25,tr_folds(:,l:41),tr_label_folds,'Method','classification',... 'MinLeafSize',3,'prior','Empirical'); predict_RF = predict(Model_RF,te_folds(:,l:41)); S = sprintf('%s*', predict_RF{:}); predict_RF = sscanf(S, '%f*'); [~,Result_RF,~]= Matrix_construction(te_label_folds,predict_RF,0); RF_val_acc(1,k) = Result_RF.Accuracy; RF_val_fpr(1,k) = Result_RF.FalsePositiveRate; RF_val_tpr(1,k) = Result_RF.Sensitivity; RF_val_F1(1,k) = Result_RF.F1_score; end end end RF_val.acc = mean(RF_val_acc,2); RF_val.fpr = mean(RF_val_fpr,2);

71

RF_val.F1_score = mean(RF_val_F1,2); RF_val.tpr = mean(RF_val_tpr,2); end function [conf_matrix,Result,RefereceResult]= Matrix_construction(true,pred) if (nargin < 2) error('Not enough input arguments. Need atleast two vectors as input'); elseif (nargin > 3) error('Too many input arguments.'); end true = true(:); pred = pred(:); if length(true) ~= length(pred) error('Input have different lengths') end x_true = unique(true); x_pred = unique(pred); condition=length(x_true)==length(x_pred); if ~condition error('Class List is not same in given inputs') end condition=(sum(x_true==x_pred)==length(x_true)); if ~condition error('Class List in given inputs are different') end class_list = x_true; B_true_class_list = {'normal';'attack'}; n_class = length(x_true); conf_matrix = zeros(n_class); pred_class = cell(1,n_class); class_ref = cell(n_class,1); row_name = cell(1,n_class); for i=1:n_class class_ref{i,1} = strcat('class',num2str(i-1),'==>',B_true_class_list(i)); for j=1:n_class val = (true == class_list(i)) & (pred == class_list(j)); conf_matrix(i,j) = sum(val); pred_class{i,j} = sum(val); end row_name{i}=strcat('True_class_',B_true_class_list{i}); end confusion_matrix_table = cell2table(pred_class,'VariableNames',{'Predicted_class_normal' 'Predicted_class_attack'}); confusion_matrix_table.Properties.RowNames = row_name; disp('Confusion Matrix for ML classifier of 2 classses') disp(confusion_matrix_table) [Result,RefereceResult] = getValues(conf_matrix); RefereceResult.Class=[class_ref{:}]'; end