HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
---------------------------------------
TÔ TRỌNG TÍN
NGHIÊN CỨU CẢI THIỆN
KHẢ NĂNG PHÁT HIỆN TẤN CÔNG MẠNG
BẰNG KỸ THUẬT DEEP LEARNING
Chuyên ngành:
Mã số:
HỆ THỐNG THÔNG TIN
8480104
TÓM TẮT LUẬN VĂN THẠC SĨ
Tp. HỒ CHÍ MINH - NĂM 2018
Luận văn được hoàn thành tại:
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
Người hướng dẫn khoa học: PGS.TS. Trần Văn Lăng
Phản biện 1: .........................................................................
Phản biện 2: .........................................................................
Luận văn sẽ được bảo vệ trước Hội đồng chấm luận văn thạc
sĩ tại Học viện Công nghệ Bưu chính Viễn thông
Vào lúc:
....... giờ ....... ngày ....... tháng ......... năm .........
Có thể tìm hiểu luận văn tại:
- Thư viện của Học viện Công nghệ Bưu chính Viễn thông
1
MỞ ĐẦU
Hệ thống phát hiện tấn công mạng (Intrusion Detection
System) là một công cụ mạnh mẽ và hiệu quả trong công việc phát
hiện và phòng chống tấn công trước các hành vi truy cập mạng của
người sử dụng. Năm 1997 khái niệm về hệ thống IDS được phổ biến
ra toàn thế giới, các hệ thống IDS lúc đó phân tích và dự báo các cuộc
tấn công mạng chủ yếu qua cơ cở dữ liệu bằng cách so sánh các bảng
ghi có sẵn trong CSDL và lưu lượng mạng, để việc phát hiện tấn công
đạt hiệu quả cao thì CSDL này cần phải thường xuyên được cập nhật
(được thực hiện bằng phương pháp thủ công hoặc tự động trong
khoảng thời gian nhất định) điều đó tạo nên sự khó khăn trong điều
kiện bùng nổ lưu lượng mạng như hiện nay. Thêm vào đó các phương
pháp tấn công và virus ngày càng tinh vi khiến việc tạo nên các “bảng
chỉ dẫn” cho hệ thống IDS gặp nhiều khó khăn trong việc cập nhật, từ
năm 2003, các chuyên gia về an toàn máy tính và các học giả đã nghiên
cứu ứng dụng kỹ thuật học máy vào công đoạn phân tích các luồng dữ
liệu lưu thông thay thế cho việc so sánh thụ động trong các phiên bản
cũ, việc này đem lại tốc độ, sự chính xác và quan trọng hơn chính là
khả năng dự đoán các cuộc tấn công của hệ thống IDS. Năm 2006 Geoffrey Hinton đã đưa ra thuật ngữ "deep learning" để giải thích các
thuật toán mới cố gắng để mô hình dữ liệu trừu tượng hóa ở mức cao
bằng cách sử dụng nhiều lớp xử lý với cấu trúc phức tạp hoặc bằng
các cách khác bao gồm nhiều biến đổi phi tuyến. Deep learning hay
“học sâu” là một họ của phương pháp máy học nhưng chúng phân tích
sâu vào cấu trúc xử lý dữ liệu của các kỹ thuật máy học đã có hơn là
2
tạo ra một kiến trúc hoàn toàn mới và kỹ thuật deep learning phổ biến
nhất được xây dựng trên mô hình neural network. Ưu điểm của kỹ
thuật deep learning là chúng xử lý được thông tin ở dạng dữ liệu thô,
vì cấu trúc gồm nhiều lớp xử lý nên mỗi lớp sẽ đóng vai trò như một
feature, dữ liệu không cần thiết sẽ dần bị lọc bớt khi truyền qua đó
ngoài ra bản thân các lớp xử lý sử dụng các thuật toán thống kê với
quy mô lớn chạy xuyên suốt quá trình xử lý nên chúng có thể tự động
điều chỉnh kết quả đầu ra để cải thiện khả năng dự đoán.
Với những ưu điểm và tiện lợi của mạng neural sâu, tôi chọn
đề tài “NGHIÊN CỨU CẢI THIỆN KHẢ NĂNG PHÁT HIỆN
TẤN CÔNG MẠNG BẰNG KỸ THUẬT DEEP LEARNING“ để
nghiên cứu và thử nghiệm một hướng tiếp cận mới về máy học vào
công việc phát hiện tấn công mạng.
3
CHƯƠNG 1 - TỔNG QUAN HỆ THỐNG PHÁT HIỆN
XÂM NHẬP
1.1.
Tổng quan về tấn công mạng
1.1.1.
Khái niệm về tấn công mạng
Tấn công mạng là tác động hoặc là trình tự liên kết giữa các
tác động với nhau để phá hủy, dẫn đến việc hiện thực hóa các nguy cơ
bằng cách lợi dụng đặc tính dễ bị tổn thương của các hệ thống thông
tin. Tấn công phổ biến nhất của hacker hiện nay hướng tới các website,
cơ sở dữ liệu nhằm lợi dụng các loại lỗ hổng bảo mật để cài phần mềm
gián điệp, điều khiển từ xa, xâm nhập, nhằm phá hoại, lấy cắp thông
tin với mục đích chính trị và kinh tế, làm ảnh hưởng tới các tổ chức
doanh nghiệp.
1.1.2.
Các kiểu tấn công mạng
1.2.
Tổng quan về hệ thống phát hiện xâm nhập IDS
IDS là hệ thống phát hiện các dấu hiệu của tấn công xâm nhập,
đồng thời có thể khởi tạo các hành động trên thiết bị khác để ngăn chặn
tấn công. Khác với tường lửa, IDS không thực hiện các thao tác ngăn
chặn truy xuất mà chỉ theo dõi các hoạt động trên mạng để tìm ra các
dấu hiệu của tấn công và cảnh báo cho người quản trị mạng. Bên cạnh
đó IDS sẽ đánh giá sự xâm nhập đáng ngờ khi nó đã, đang và sắp diễn
ra đồng thời phát ra cảnh báo, nó theo dõi được các cuộc tấn công bằng
cách rà soát và tìm kiếm dấu hiệu tấn công từ nội dung gói tin lưu
thông bên trong một hệ thống. Chức năng ban đầu của IDS chỉ là phát
hiện các dấu hiện xâm nhập, do đó IDS chỉ có thể tạo ra các cảnh báo
tấn công khi tấn công đang diễn ra hoặc thậm chí sau khi tấn công đã
4
hoàn tất. Càng về sau, nhiều kỹ thuật mới được tích hợp vào IDS, giúp
nó có khả năng dự đoán được tấn công (prediction) và thậm chí phản
ứng lại các tấn công đang diễn ra (Active response).
1.2.1.
Các thành phần chính của IDS
Hình 1.1: Các thành phần Ids
1. Trung tâm điều khiển (The Command Console)
Trung tâm điều khiển là nơi mà IDS được giám sát và quản lí.
Nó duy trì kiểm soát thông qua các thành phần của IDS, và Trung tâm
điều khiển có thể được truy cập từ bất cứ nơi nào.
2. Bộ cảm biến (Network Sensor)
Bộ cảm biến là chương trình chạy trên các thiết bị mạng hoặc
máy chuyên dụng trên các đường mạng thiết yếu. Bộ cảm biến có một
vai trò quan trọng vì có hàng nghìn mục tiêu cần được giám sát trên
mạng. Khi hệ thống mạng dùng các hub, ta có thể đặt các bộ cảm biến
trên bất kì port nào của hub vì mọi luồng traffic được gửi ra tất cả các
port trên hub, và có thể phát hiện ra các luồng traffic bất thường.
Nhưng khi hệ thống cần sử dụng các switch, các switch chỉ gửi gói tin
đến chính xác địa chỉ cần gửi trên từng port. Để giải quyết vấn đề này,
5
một kỹ thuật thông dụng là sử dụng những con switch có port mở rộng
(expansion port) – khá nhiều thiết bị mạng ngày nay có cái này, và ta
kết nối IDS vào port này. Port này được gọi là Switched Port Analyzer
(SPAN) port. SPAN port cần được cấu hình bởi các chuyên gia bảo
mật để nhân bản mọi luồng dữ liệu của switch.
3. Thành phần cảnh báo
Thành phần cảnh báo có chức năng gửi những cảnh báo tới
người quản trị. Trong các hệ thống IDS hiện đại, lời cảnh báo có thể ở
dưới nhiều dạng như: cửa sổ pop-up, tiếng chuông, email, SNMP.
1.2.2.
Chức năng của IDS
1.2.3.
Quy trình hoạt động của IDS
Hình 1.2: Quy trình hoạt động IDS
6
1.2.4.
Phân loại IDS
Hệ thống IDS được chia làm 2 loại cơ bản:
- Network-based IDS (NIDS): Hệ thống IDS dựa trên mạng
sẽ kiểm tra các giao tiếp trên mạng với thời gian thực (real-time). Nó
kiểm tra các giao tiếp, quét header của các gói tin và có thể kiểm tra
nội dung của các gói đó để phát hiện ra các đoạn mã nguy hiểm.
- Host-based IDS (HIDS): Bằng cách cài đặt một phần mềm
trên máy chủ, IDS dựa trên máy chủ quan sát tất cả những hoạt động
về hệ thống và các file log, lưu lượng mạng thu thập. Hệ thống dựa
trên máy chủ cũng theo dõi OS, những cuộc gọi hệ thống, lịch sử và
những thông điệp báo lỗi trên hệ thống máy chủ.
1.3.
Tiểu kết chương
Chương 1 đã nêu lên những nội dung cơ bản về các cuộc tấn
công mạng và IDS, phân loại tấn công và đặc điểm nhận biết tấn công
mạng, vai trò, đặc điểm và khả năng phát hiện và phòng chống xâm
nhập, giám sát lưu lượng, giám sát trạng thái hoạt động của thiết bị và
dịch vụ trong hệ thống mạng..
7
CHƯƠNG 2 - MÔ HÌNH MẠNG NEURAL
VÀ PHƯƠNG PHÁP HỌC SÂU
2.1.
Tổng quan về mạng Neural
Mạng neural nhân tạo (Artificial Neural Network) bao gồm
các neural ( còn gọi là một đơn vị xử lý hay một node) được nối với
nhau bởi các liên kết neural. Mỗi liên kết kèm theo một trọng số nào
đó đặc trưng cho tính kích hoạt/ ức chế giữa các neural. Nhiệm vụ
chung của quá trình huấn luyện mạng là cập nhật các trọng số khi có
thêm các thông tin về mẫu học.
Thông thường các neural có nhiều đầu vào. Một neural có R
đầu vào p1,p2...,pR sẽ có các trọng số tương ứng w1,w2,...,wR tạo thành
một ma trận W và được gọi là ma trận trọng số. Các neural này có thể
sinh ra một output hoặc không trong ANN. Mối quan hệ giữa hàm kích
hoạt bên trong và kết quả (output) được thể hiện bằng hàm chuyển đổi
(Transfer Function) hay gọi là hàm kích hoạt (Activation Function).
Khi activation function f(.) được áp dụng cho một ma trận
(hoặc vector), ta hiểu rằng nó được áp dụng cho từng thành phần của
ma trận đó. Sau đó các thành phần này được sắp xếp lại đúng theo thứ
tự để được một ma trận có kích thước bằng với ma trận input. Việc lựa
chọn Activation Function có tác động lớn đến kết quả của ANN vì kết
quả xử lý tại các Neural (Output) đôi khi rất lớn, vì vậy activation
function được sử dụng để xử lý output này trước khi chuyển đến layer
tiếp theo.
2.1.1.
Phân loại mạng Neural
2.1.2.
Thuật toán học trong mạng Neural
8
Tiến trình học là tiến trình quan trọng của con người, nhờ học
mà bộ não ngày càng tích luỹ những kinh nghiệm để thích nghi với
môi trường và xử lý tình huống tốt hơn. Mạng neural được xây dựng
lại từ cấu trúc bộ não thì cần phải có khả năng nhận biết dữ liệu thông
qua tiến trình học, với các thông số tự do của mạng có thể thay đổi liên
tục bởi những thay đổi của môi trường và mạng neural ghi nhớ giá trị
đó.
Trong quá trình học, giá trị đầu vào được đưa vào mạng và
theo dòng chảy trong mạng tạo thành giá trị ở đầu ra. Tiếp đến là quá
trình so sánh giá trị tạo ra bởi mạng neural với giá trị ra mong muốn.
Nếu hai giá trị này giống nhau thì không thay đổi gì cả. Tuy nhiên, nếu
có một sai lệch giữa hai giá trị này vượt quá giá trị sai số mong muốn
thì mạng neural sẽ tiến hành chỉnh sửa trọng số sao cho đầu ra đạt
được giá trị mong muốn theo một phương pháp nào đó, phương pháp
chỉnh sửa này được gọi là các thuật toán học. Đây là một quá trình lặp
liên tục và có thể không dừng khi không tìm ra các giá trị W sao cho
đầu ra tạo bởi mạng neural bằng đúng đầu ra mong muốn. Do đó trong
thực tế người ta phải thiết lập tiêu chuẩn dựa trên một giá trị sai số nào
đó của hai giá trị này hay dựa trên một số lần lặp xác định.
Dựa theo cách học mà chúng ta có thể phân ra làm 2 loại đó
chính là học có giám sát (supervised) và học không có giám sát
(unsupervised)
- Học có giám sát : Trong học giám sát, các quy tắc học được
cung cấp bằng một tập mẫu chuẩn (tập huấn luyện).
{p1,t1}, {p2,t2}, ...., {pq,tq}
9
Trong đó pq là một đầu vào của mạng và tq là đầu ra đúng
tương ứng. Khi đầu vào được áp dụng vào mạng, đầu ra của mạng
được so sánh với đích. Quy tắc học sau đó được áp dụng để điều chỉnh
các trọng số và độ lệch của mạng cốt làm cho đầu ra của mạng gần
đích đúng của đầu vào.
- Học không có giám sát : Trong phương pháp học này, mạng
neural không được hướng dẫn trước về cách nhận biết các đối tượng,
mạng phải tự phân tích các đặc trưng, tính chất của đối tượng để phân
loại chúng. Điều này đặc biệt có ích trong các bài toán lượng tử hóa
vectơ.
2.1.3.
Thuật toán lan truyền ngược ( Back propagation)
Thuật toán học Back Propagation là thuật toán học tập tiêu
chuẩn cho mạng neural đa lớp. Phương pháp này tính toán gradient
của hàm tổn thất với tất cả các trọng số có liên quan trong mạng neural
đó. Gradient này được đưa vào phương pháp tối ưu hóa, sử dụng nó
để cập nhật các trọng số, để cực tiểu hóa hàm tổn thất. Thuật toán lan
truyền ngược yêu cầu một đầu ra mong muốn, đã biết cho mỗi giá trị
đầu vào để tính toán gradient hàm tổn thất. Do đó, nó thường được
xem là một phương pháp học có giám sát, là một tổng quát hóa của
quy tắc delta cho các mạng dẫn tiến đa tầng, có thể thực hiện bằng
cách sử dụng quy tắc dây chuyền để tính toán lặp đi lặp lại các gradient
cho mỗi lớp. Truyền ngược yêu cầu các hàm kích hoạt được sử dụng
bởi các neural nhân tạo (hay "node") khả vi.
- Tập mẫu học:
Mạng được cung cấp một tập mẫu chuẩn Q = {p(q), t(q)}.
10
+ Mẫu đầu vào p(q) = [p1, p2,...pR]T, q = 1,2,..., Q ( R là số đầu
vào, Q là số mẫu học).
+ Mẫu đầu ra t(q) = [t1,t2,...tS]T ( S là số đầu ra ). Đầu ra thực
tế của mạng là a(q) = [a1,a2,...,aS]T:
a(q)i = f(wiTp(q)) = f(wijp(q)j), j =1,..,R.
Việc huấn luyện mạng nhằm mục đích có được a(q)i = t(q).
Thuật toán này áp dụng cho các mạng neural truyền thẳng. Với mỗi
cặp mẫu {p(q),t(q)} thuật toán sẽ thực hiện hai quá trình. Đầu tiên mẫu
vào p(q) được đưa vào mạng, lan truyền từ lớp vào cho đến lớp ra, tạo
đầu ra thực sự a(q). Sau đó tính toán sai số E giữa t(q) và a(q) rồi truyền
ngược từ lớp ra trở lại các lớp trước nhằm mục đích cho các lớp tự cập
nhật trọng số theo các thông tin phản hồi đó.
Xét mạng truyền thẳng với M lớp, m =1,2,...,M. Đặt netmi và
ami lần lượt là đầu vào và đầu ra của neural thứ i trong lớp m. Mạng
có R đầu vào và S đầu ra. Ký hiệu wijm là trọng số liên kết giữa neural
thứ j lớp m-1 với neural thứ i lớp m.
Input: Tập mẫu học {p(q) , t(q)} trong đó ta thêm vào mỗi vectơ
p(q) một phần tử biểu diễn độ lệch pR+1 = -1.
Bước 0: Khởi tạo. Chọn > 0 và Emax. Khởi tạo các trọng
số bằng các giá trị ngẫu nhiên nhỏ. Đặt E = 0, q = 1.
Bước 1: Bước lặp. Đưa mẫu vào thứ q cho lớp vào (m = 1)
ami = p(q)i với mọi i
Bước 2: Lan truyền thuận
Lan truyền tín hiệu qua mạng thông qua công thức:
aim = f( netim) = f(wm-1ịj aj)
11
với mọi i, m, cho đến khi nhận được tất cả các đầu ra ami
Bước 3: Tính sai số
Tính giá trị sai số và các tín hiệu sai số mi cho lớp ra.
E=
1
2
S
(ti(q) - aiM)2 + E
i 1
δiM = ( ti(q) - aiM ) f ( netiM )
Bước 4: Lan truyền ngược sai số.
Lan truyền ngược sai số để cập nhật các trọng số và tính toán
tín hiệu sai số mi cho lớp trước đó.
∆mWij = ηm δi m -1 ai
Wmij(new) = f ( neti m-1 ) = f ( ∑jm Wij δim ) m= M, M-1, .,2.
Bước 5: Kiểm tra xem tất cả các mẫu học đã được học hay
chưa. Nếu q < Q thì q = q+1, chuyển đến bước 1. Ngược lại thì chuyển
đến bước 6.
Bước 6: Kiểm tra xem tổng sai số E hiện tại có chấp nhận
được hay không. Nếu E < Emax thì đã học xong, kết thúc quá trình huấn
luyện. Ngược lại, đặt E = 0, q = 1, bắt đầu vòng huấn luyện mới bằng
các chuyển về bước 1.
+ Đánh giá :
Mạng neural nhiều lớp truyền thẳng là cách biểu diễn các đối
tượng dựa trên các giá trị thuộc tính của chúng tương đối hiệu quả, tuy
rằng chưa vét cạn hết mọi khía cạnh khác nhau về đối tượng đó. Cách
tiếp cận mạng loại này tỏ ra khá hiệu quả khi các quan sát có miền giá
trị liên tục. Do vậy, có thể xem là tốt hơn so với những cách tiếp cận
truyền thống dựa trên logic mệnh đề và cây quyết định.
12
2.3. Học sâu ( Deep Learning )
2.3.1. Khái niệm cơ bản
Học sâu là một lớp của các thuật toán máy học mà trong đó
(1) nhiều lớp các đơn vị xử lý phi tuyến và (2) học có giám sát hoặc
không có giám sát để biểu diễn đặc tính ở mỗi lớp, với các lớp hình
thành một hệ thống các tính năng phân cấp từ thấp đến cao cấp. Các
thành phần trong một lớp của các đơn vị xử lý phi tuyến sử dụng một
thuật toán học sâu tùy theo vấn đề cần được giải quyết. Các lớp được
sử dụng trong học sâu bao gồm các lớp ẩn của một mạng neural nhân
tạo và tập các công thức mệnh đề phức tạp.
Đối với các nhiệm vụ học có giám sát, các phương pháp học
sâu sẽ tránh rút trích đặc điểm (feature engineering) bằng cách dịch
các dữ liệu đầu vào thành các đại diện trung gian nhỏ gọn giống như
các thành phần chính vì thế ta lấy được các cấu trúc lớp mà loại bỏ sự
thừa thải trong feature.
2.3.2
Kiến trúc mạng neural hồi quy (RNN)
Mạng neural sâu (DNN) là một mạng neural nhân tạo với
nhiều đơn vị lớp ẩn giữa lớp đầu vào và đầu ra, các mạng neural sâu
có thể mô hình mối quan hệ phi tuyến phức tạp. Ví dụ như phát hiện
và phân tích đối tượng để tạo ra các mô hình hỗn hợp trong đó đối
tượng này được thể hiện như một thành phần được xếp lớp của các dữ
liệu nguyên thủy, các lớp phụ cho phép lấy các thành phần của các đặc
điểm từ các lớp thấp hơn, đem lại tiềm năng của mô hình hóa dữ liệu
phức tạp với các đơn vị ít hơn so với một mạng lưới nông.
13
Các DNN thường được thiết kế trên kiến trúc mạng truyền
thẳng, nhưng nghiên cứu gần đây đã áp dụng thành công kiến trúc học
sâu đối với các mạng neural hồi quy (Recurrent neural network) cho
các ứng dụng chẳng hạn như phân loại chuỗi dữ liệu theo thời gian.
Ý tưởng chính của mạng neural hồi quy (RNN) là sử dụng
chuỗi các thông tin, khác với mạng neural truyền thống là tất cả các
đầu vào và cả đầu ra là độc lập với nhau. Tức là chúng không liên kết
thành chuỗi với nhau, RNN được gọi là hồi quy (Recurrent) bởi lẽ
chúng thực hiện cùng một tác vụ cho tất cả các phần tử của một chuỗi
với đầu ra phụ thuộc vào cả đầu ra của các phép tính trước đó. Nói
cách khác, RNN có khả năng nhớ các thông tin được tính toán trước
đó. Trên lý thuyết, RNN có thể sử dụng được thông tin của một văn
bản rất dài, tuy nhiên thực tế thì nó chỉ có thể nhớ được một vài bước
trước đó mà thôi.
Việc tính toán bên trong RNN được thực hiện như sau:
- xt là đầu vào tại bước t. Ví dụ, là một vec-tơ one-hot tương
ứng với từ thứ 2 của câu.
- st là trạng thái ẩn tại bước t, nó chính là bộ nhớ của mạng. st
được tính toán dựa trên cả các trạng thái ẩn phía trước và đầu vào tại
bước đó: St = f(Uxt + Wst-1)
Hàm f thường là một hàm phi tuyến tính như tang-hyperbolic
(tanh) hay ReLu. Để làm phép toán cho phần tử ẩn đầu tiên ta cần khởi
tạo thêm st−1, thường giá trị khởi tạo được gán bằng 0.
14
- ot là đầu ra tại bước t. Ví dụ, ta muốn dự đoán giá trị tiếp
theo có thể xuất hiện trong chuỗi thì ot chính là một vec-tơ xác xuất
các giá trị trong danh sách các chuỗi giá trị : ot = softmax(Vst)
Với công thức cơ bản của RNN ta có thể phát biểu dưới dạng
như sau : Chuỗi đầu vào được cho bởi x = (x1, x2…xt), chuỗi vec-tơ ẩn
h = (h1, h2…ht) và chuỗi vec-tơ đầu ra y = (y1, y2…yt) với t = 1 đến t
như sau :
ht = σ (Wxhxt + Whhht−1 + bh) (1)
yt = Whyht + by
(2)
Huấn luyện mạng RNN cũng tương tự như các mạng neural
truyền thống, tuy nhiên giải thuật lan truyền ngược (backpropagation)
phải thay đổi một chút. Đạo hàm tại mỗi đầu ra phụ thuộc không chỉ
vào các tính toán tại bước đó, mà còn phụ thuộc vào các bước trước
đó nữa, vì các tham số trong mạng RNN được sử dụng chung cho tất
cả các bước trong mạng. Ví dụ, để tính đạo hàm tại t=4 ta phải lan
truyền ngược cả 3 bước phía trước rồi cộng tổng đạo hàm của chúng
lại với nhau. Việc tính đạo hàm kiểu này được gọi là lan truyền ngược
liên hồi (Backpropagation Through Time), tuy nhiên với các bước phụ
thuộc càng xa thì việc học sẽ càng khó khăn hơn vì sẽ xuất hiện vấn
đề hao hụt/bùng nổ của đạo hàm. Có một vài phương pháp được đề
xuất để giải quyết vấn đề này như thay thế các hàm kích hoạt là tanh
và sigmoid bằng hàm ReLU, do đạo hàm ReLU sẽ là một số hoặc là 0
hoặc là 1, nên có ta có thể kiểm soát được vấn đề mất mát đạo hàm.
Ngoài ra phương pháp phổ biến hơn cả là sử dụng kiến trúc nhớ dài ngắn hạn (Long Short-Term Memory) .
15
2.3.2. Thuật toán lan truyền ngược liên hồi (BPTT)
Mạng RNN có các công thức cơ bản sau :
St = tanh(Uxt + Wst-1)
Y^t = softmax(Vst)
Ta cũng định nghĩa hàm mất mát, hay hàm lỗi dạng crossentropy như sau:
Et(yt, h^y) = -ytlogy^t
E(y, ^(y) = ∑ Et (yt , ĥy )
t
= − ∑ yt log hy
t
Ở đây, yt là đầu ra chính xác ở bước t, còn ŷt là đầu ra mà ta
dự đoán. Ta coi mỗi chuỗi dữ liệu đầy đủ là một mẫu huấn luyện. Vì
vậy tổng số lỗi chính là tổng của tất cả các lỗi ở mỗi bước.
Mục tiêu của chúng ta là tính đạo hàm của hàm lỗi với tham
số U, V, W tương ứng và sau đó học các tham số này bằng cách sử
dụng SGD. Tương tự như việc cộng tổng các lỗi, ta cũng sẽ cộng tổng
các đạo hàm tại mỗi bước cho mỗi mẫu huấn luyện
∂E
∂w
=∑
∂Et
t ∂w
. Để
tính đạo hàm, ta sử dụng quy tắc chuỗi vi phân. Quy tắc này được áp
dụng cho việc truyền ngược lỗi của giải thuật lan truyền ngược.
∂E3 ∂E3 ∂ŷ3
=
=
∂v
∂y3 ∂v
∂E3 ∂ŷ3 ∂z3
= (ŷ3 − y3 ) ⊗ s3
∂∑3 ∂z3 ∂v
Trong đó, z3=Vs3 và ⊗ là phép nhân ngoài của 2 véc-tơ , ta
thấy
∂E3
∂v
chỉ phụ thuộc vào các giá trị ở bước hiện thời: ŷ3, y3, s3 mà
thôi. Nhìn vào công thức đó, ta thấy rằng tính đạo hàm cho V chỉ đơn
16
giản là phép nhân ma trận nhưng với W và U thì phép tính của ta lại
không đơn giản như vậy.
∂E3
∂w
̂ ∂s
∂E ∂y
= ∂ŷ3 ∂s 3 ∂w3
3
3
Với s3 = tanh(Uxt+Ws2) phụ thuộc vào s2, còn s2 lại phụ thuộc
vào W và s1,… Vì vậy với W, ta không thể nào coi s2 là hằng số để
tính toán như với V được. Ta tiếp tục áp dụng quy tắc chuỗi như sau:
∂E3
∂w
̂ ∂s ∂s
∂E ∂y
= ∂ŷ3 ∂s 3 ∂s3 ∂wk
3
3
k
Như vậy, với W ta phải cộng tổng tất cả các đầu ra ở các bước
trước để tính được đạo hàm. Nói cách khác, ta phải truyền ngược đạo
hàm từ t = 3 về tới t = 0. Cách làm này cũng giống hệt như giải thuật
truyền ngược chuẩn trong mạng neural truyền thống. Điểm khác ở đây
là ta cộng tổng các đạo hàm của W tại mỗi bước thời gian, ta có thể
(3)
định nghĩa véc-tơ delta khi lan truyền ngược lại δx =
∂E3 ∂s3 ∂s2
∂s3 ∂s2 ∂z2
∂E3
∂z2
=
với z2 = ux2 + ws1 .
2.3.3. Mô hình mạng LSTM (Long – short term memory)
Mạng bộ nhớ dài - ngắn hạn ( LSTM ) là một dạng đặc biệt
của RNN, nó có khả năng học được các phụ thuộc xa. Việc nhớ thông
tin trong suốt thời gian dài là đặc tính mặc định của chúng, chứ ta
không cần phải huấn luyện nó để có thể nhớ được. Tức là ngay nội tại
của nó đã có thể ghi nhớ được mà không cần bất kì can thiệp nào.
Mọi mạng hồi quy đều có dạng là một chuỗi các mô-đun lặp
đi lặp lại của mạng neural. Với mạng RNN chuẩn, các mô-dun này có
cấu trúc rất đơn giản, thường là một tầng tanh.
17
Hình 2.12: Các mô-đun lặp trong 1 nút mạng RNN
LSTM cũng có kiến trúc dạng chuỗi như vậy, nhưng các môđun trong nó có cấu trúc khác với mạng RNN chuẩn. Thay vì chỉ có
một tầng mạng neural, chúng có tới 4 tầng tương tác với nhau một
cách rất đặc biệt.
Hình 2.13: Các mô-đun lặp trong 1 nút mạng LSTM
Ở sơ đồ trên, mỗi một đường mang một véc-tơ từ đầu ra của
một nút tới đầu vào của một nút khác. Các hình trong màu hồng biểu
diễn các phép toán như phép cộng véc-tơ chẳng hạn, còn các ô màu
vàng được sử dụng để học trong các tầng mạng neural. Các đường hợp
nhau kí hiệu việc kết hợp, còn các đường rẽ nhánh ám chỉ nội dung
của nó được sao chép và chuyển tới các nơi khác nhau. Chìa khóa của
LSTM là trạng thái tế bào (cell state) - chính là đường chạy thông
ngang phía trên của sơ đồ hình vẽ. Trạng thái tế bào là một dạng giống
như băng truyền. Nó chạy xuyên suốt tất cả các mắt xích (các nút
18
mạng) và chỉ tương tác tuyến tính đôi chút. Vì vậy mà các thông tin
có thể dễ dàng truyền đi thông suốt mà không sợ bị thay đổi.
LSTM có khả năng bỏ đi hoặc thêm vào các thông tin cần thiết
cho trạng thái tế bào, chúng được điều chỉnh cẩn thận bởi các nhóm
được gọi là cổng (gate). Các cổng là nơi sàng lọc thông tin đi qua nó,
chúng được kết hợp bởi một tầng mạng sigmoid và một phép nhân.
Tầng sigmoid sẽ cho đầu ra là một số trong khoản [0, 1], mô tả có bao
nhiêu thông tin có thể được thông qua. Khi đầu ra là 0 thì có nghĩa là
không cho thông tin nào qua cả, còn khi là 1 thì có nghĩa là cho tất cả
các thông tin đi qua nó. Một LSTM gồm có 3 cổng như vậy để duy trì
và điều hành trạng thái của tế bào.
Một biến thể khá thú vị khác của LSTM là Gated Recurrent
Unit, hay GRU được giới thiệu bởi Cho et al. (2014). Nó kết hợp các
cổng loại trừ và đầu vào thành một cổng “cổng cập nhập” (update
gate), nó cũng hợp trạng thái tế bào và trạng thái ẩn với nhau tạo ra
một thay đổi khác.
Hình 2.21: Mô hình mạng GRU
19
2.4.
Tiểu kết chương 2
Chương 2 đã nêu lên cách phân loại và đặc điểm của mạng
neural, cách thức dữ liệu được truyền và các thuật toán học trọng tâm
là thuật toán lan truyền ngược. nêu lên khái niệm và nội dung của
mạng neural với hướng tiếp cận học sâu, trong đó trọng tâm là cách
xử lý dữ liệu trong mô hình mạng neural hồi quy và thuật toán lan
truyền ngược liên hồi.
20
CHƯƠNG 3 - THỰC NGHIỆM VÀ ĐÁNH GIÁ
KẾT QUẢ
3.1.
Yêu cầu của hệ thống phát hiện xâm nhập
Phát hiện được các cuộc tấn công mạng một cách chính xác,
nhanh chóng và cung cấp thông tin tốt nhất cho người quản trị.
3.2
Thiết lập thử nghiệm IDS sử dụng mô hình mạng neural
sâu
1) Tìm một bộ trọng số tối ưu để huấn luyện mạng neural, lựa
chọn tiêu chuẩn đánh giá kết quả chung, hàm tối ưu hóa thích hợp với
mạng neural và chuẩn hóa dữ liệu đầu vào.
2) Huấn luyện và ghi nhận hiệu suất từ mạng neural đa lớp,
LSTM-RNN, so sánh và đánh giá các mô hình.
3.2.1. Thư viện hỗ trợ
Các thử nghiệm sử dụng thư viện Keras, thư viện sklearn chạy
trên nền tảng Tensorflow.
3.2.2. Bộ dữ liệu huấn luyện KDD99
Tập dữ liệu KDD99 có tất cả 4,898,431 traffic mạng và mỗi
traffic có 42 chiều, Có 23 kiểu tấn công được phân làm 4 danh mục là
Dos, R2L, U2R và Probe.
Trong đó dùng 50% dữ liệu để huấn luyện và 50% dữ liệu
dùng để kiểm tra, sau quá trình huấn luyện 50% dữ liệu, mạng neural
sẽ dùng chức năng fit model để cố gắng gán nhãn 50% dữ liệu còn lại.
3.2.3. Phương pháp đánh giá
Sử dụng phương pháp Accuracy (độ chính xác) để đánh giá
khả năng phát hiện chính xác tấn công từ tập dữ liệu kiểm thử.
21
Sử dụng phương pháp Confusion Matrix để đánh giá khả năng
phân loại các loại tấn công từ tập dữ liệu kiểm thử.
Sử dụng phương pháp True/False Positive/Negative để định
hướng ứng dụng cho model trong việc đánh giá kết quả với độ nghiêm
trọng của lớp.
3.2.4. Model setup
Trước khi sử dụng tập dữ liệu huấn luyện chúng ta thực hiện
chuẩn hóa tất cả các trường hợp từ 0 đến 1, đầu vào có tất cả 41 feature
và đầu ra có 4 loại tấn công và 1 loại là dữ liệu bình thường.
- Thử nghiệm 1 ta cài đặt mạng neural đa lớp với số lớp là 4,
1 lớp đầu vào có 10 node, lớp ẩn có 2 lớp lần lượt là 50 node, 10 node
và hàm kích hoạt với các lớp là ReLU, lớp đầu ra dùng hàm Softmax.
- Thử nghiệm thứ 2 chúng ta áp dụng kiến trúc RNN và LSTM
vào các lớp ẩn, các tham số time-step, batch-size và epoch lần lượt là
100, 50, 500.
- Hàm output activation : hàm Softmax.
- Trình tối ưu hóa : Stochastic GradientDescent (SGD).
- Hàm Loss và Accuracy : Mean Square Error (MSE).
Learning rate chọn các số trong khoảng 0.0001 và 0.1 và các
chỉ số DR và FAR có tỷ lệ tốt hơn khi learning rate là 0.1 và số lớp ẩn
là 80.
3.3.
Một số kết quả và đánh giá
22
Bảng 3.1: So sánh hiệu suất giữa các thuật toán học
DR
FAR
Accuracy
Bayesian
77,65%
17,57%
88,46%
SVM
87,65%
6,12%
90,4%
MLP
96,33%
7,34%
96,89%
LSTM-
98,8%
10,05%
97,3%
RNN
23
KẾT LUẬN
Luận văn đã đạt được những kết quả sau :
- Nghiên cứu tổng quan về hệ thống IDS và các cuộc tấn công
mạng.
- Tìm hiểu về quá trình lan truyền dữ liệu của mạng neural đa
lớp và mạng neural hồi quy.
- Hướng tiếp cận mới của đề tài là áp dụng mạng neural đa lớp
với hàm kích hoạt là ReLU ( so với các hàm kích hoạt Gradient
Descent và Sigmoid ) và mạng neural hồi quy với mô hình dài-ngắn
hạn (LSTM) trên tập dữ liệu KDD99. Ngoài ra còn áp dụng hàm đo
độ mất mát là MSE với hiệu quả đánh giá trên tổng bình phương của
toàn bộ độ mất mát trên các lớp ẩn.
Kết quả của thực nghiệm tuy đạt hiệu quả ngang nhau đối
với mạng neural đa lớp và mạng hồi quy nhưng do thuật toán được
xây dựng để nghiên cứu chứ không phải vì mục đích thương mại,
không đáp ứng đủ yêu cầu về phần cứng, thời gian huấn luyện cũng
như kích thước tập huấn luyện nên độ chênh lệch thấp. Mô hình mạng
neural hồi quy sẽ đạt hiệu quả cao hơn mạng neural đa lớp nếu được
đặt trong một ngữ cảnh huấn luyện khác.