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
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
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
71

