Bài viết đề xuất một phương thức phát hiện dấu hiệu bất thường (dPCA) trong lưu lượng mạng dựa trên thuật toán phân tích thành phần chính (PCA). Kết quả thử nghiệm của phương thức phát hiện được đánh giá dựa trên tập dữ liệu tri thức dành cho phát hiện xâm nhập NSL-KDD. Mời các bạn cùng tham khảo!
Trang 1Một Phương Thức Phát Hiện Bất Thường Trong
Lưu Lượng Mạng
Nguyễn Hà Dương
Khoa Công nghệ thông tin, Trường Đại học Xây Dựng Hà Nội Email: duongnh@nuce.edu.vn
Abstract— Phát hiện lưu lượng mạng bất thường có thể giúp phát
hiện sớm những nguy cơ tấn công mạng do hoạt động tấn công
của tin tặc có thể gây ra sự biến đổi không bình thường của lưu
lượng mạng, nghĩa là những thăng giáng của lưu lượng so với lưu
lượng bình thường của mạng Trong bài báo này, tác giả đề xuất
một phương thức phát hiện dấu hiệu bất thường (dPCA) trong
lưu lượng mạng dựa trên thuật toán phân tích thành phần chính
(PCA) Kết quả thử nghiệm của phương thức phát hiện được
đánh giá dựa trên tập dữ liệu tri thức dành cho phát hiện xâm
nhập NSL-KDD
Keywords- lưu lượng bất thường; phát hiện lưu lượng bất
thường; phát hiện xâm nhập; an ninh mạng
I GIỚI THIỆU Phát hiện sớm các nguy cơ tấn công mạng là một nhu cầu
cấp thiết trong thực tế Những hoạt động tấn công thường gây
ra những biến đổi không bình thường, những thăng giáng của
lưu lượng mạng, thậm chí tạo ra lưu lượng đột biến so với lưu
lượng bình thường trên mạng Vì vậy việc phát hiện lưu lượng
bất thường có thể giúp sớm tìm ra những dấu hiệu tấn công,
điển hình là các tấn công DoS, Scan, v.v
Một hệ thống phát hiện tấn công hiện nay thường được gọi
với tên: hệ thống phát hiện xâm nhập (Intrusion Detection
System - IDS) [8-11] Trong IDS, nhìn chung có hai phương
pháp chính để phát hiện tấn công là: phát hiện dựa trên dấu
hiệu và phát hiện bất thường [8] Phương pháp phát hiện dựa
trên dấu hiệu (signature-based detection) thường đòi hỏi phải
biết trước mẫu dấu hiệu tấn công đã lưu trong cơ sở dữ liệu và
so sánh lưu lượng thu được từ mạng với các mẫu dấu hiệu lưu
sẵn Tuy nhiên, phương pháp này chỉ có thể phát hiện được
những dấu hiệu tấn công đã biết mà không phát hiện được các
loại tấn công mới Mặt khác, tin tặc có thể dễ dàng thay đổi
một vài chi tiết để biến tấn công trở thành một kiểu mới, không
còn chứa dấu hiệu biết trước trong cơ sở dữ liệu tập mẫu để
qua đó vượt qua được khả năng phát hiện của phương thức này
Phương pháp thứ hai không đòi hỏi mẫu dấu hiệu biết trước,
cho phép phát hiện xâm nhập dựa trên hành vi bất thường
(hành vi bất thường được hiểu là hành vi tấn công) Vì vậy,
phương pháp này cho phép phát hiện được những kiểu tấn công
mới
Hệ thống chỉ áp dụng phương pháp phát hiện bất thường
còn được gọi với tên hệ thống phát hiện bất thường (Anomaly
Detection System - ADS) [8] ADS không chỉ phát hiện tấn
công mà còn có thể phát hiện những sự kiện bất thường khác,
ví dụ sự tăng đột biến của lưu lượng người dùng tới một dịch
vụ hoặc sự suy giảm đột ngột lưu lượng do sự cố liên quan đến thiết bị mạng Nếu xét riêng trong lĩnh vực an ninh mạng, chức năng của IDS và ADS là như nhau vì cùng có mục tiêu phát hiện tấn công vào hệ thống Trong thực tế, phương pháp phát hiện của IDS thường dựa trên dấu hiệu biết trước của tập mẫu như đã trình bày ở trên mà các hệ thống điển hình là Snort, Bro [10, 11] Trong khi đó, ADS thường dựa trên các phương pháp
và mô hình thống kê, khai phá dữ liệu, học máy v.v [1-8] Trong một số nghiên cứu [1-7], phương pháp phát hiện bất thường trong lưu lượng mạng dựa trên thuật toán PCA đã chứng minh khả năng phát hiện với độ chính xác tương đối cao
và có thể ứng dụng trên mạng trực tuyến Vì vậy, tác giả đã lựa chọn sử dụng PCA đề đề xuất một thuật toán và phương thức phát hiện lưu lượng bất thường trong mục II Mục III trình bày kết quả thử nghiệm của phương thức phát hiện Mục IV là phần kết luận của bài báo
II PHƯƠNG THỨC ĐỀ XUẤT PHÁT HIỆN LƯU LƯỢNG
BẤT THƯỜNG DỰA TRÊN PCA
A Cơ sở thuật toán PCA
Phân tích thành phần chính (Principal Component Analysis – PCA) là một thuật toán thường sử dụng để giảm số chiều dữ liệu nhưng vẫn giữ được phần lớn đặc tính của dữ liệu Mỗi trị riêng của thành phần chính tương ứng một phần với sự biến thiên của các thuộc tính hay biến trong dữ liệu Trị riêng càng lớn thì càng chứa nhiều biến thiên và vector riêng tương ứng phản ánh quy luật biến thiên càng lớn nên càng quan trọng Do vậy, những thành phần chính quan trọng nhất cần được xếp trước các thành phần không quan trọng
Dữ liệu trong PCA được biểu diễn bởi các trục tạo thành bởi các vector riêng Trong dữ liệu dùng để huấn luyện không chứa dữ liệu bất thường, những trục tương ứng được coi là bình thường Những điểm nằm cách xa những trục bình thường này có thể nghi ngờ là bất thường
Gọi X là một tập dữ liệu gồm n quan sát với p biến X 1,
X 2 ,… X p được tổ chức thành ma trận nxp (n hàng, p cột) Mỗi
biến biểu thị một thuộc tính của dữ liệu ban đầu Mỗi quan sát
x=(x1, x2,…,xp)Tchứa p thuộc tính khác nhau Gọi R là ma trận tương quan pxp tính được từ X, ( k , e k) là các cặp trị riêng và
vector riêng của R được sắp xếp theo thứ tự giảm dần của trị
riêng (1 2 … p >0), khi đó thành phần chính thứ i của một quan sát x sẽ được tính như sau:
Trang 21 1 2 2
trong đó: y i là thành phần chính thứ i của quan sát x ban đầu,
i=1…p,e i =(e i1 ,e i2 ,…,e ip)T là vectơ riêng thứ i
z = (z 1 , z 2 ,…,z p)Tlà vectơ đã chuẩn hóa của x theo công thức:
k k
z s
với x là giá trị trung bình, s k k là phương sai của biến thứ k,
k = 1…p.
Đối với bài toán phát hiện bất thường, khi xử lý một lượng
dữ liệu lớn nhiều biến sẽ làm tăng thời gian xử lý dữ liệu và tốn
tài nguyên của hệ thống Vì vậy, áp dụng thuật toán PCA có
thể giảm thiểu số chiều không cần thiết và tăng hiệu quả tận
dụng tài nguyên hệ thống
B Phương thức phát hiện đề xuất (dPCA)
Trong [1-3, 6], các tác giả theo dõi sự thay đổi các giá trị
thành phần chính và phát hiện sự thay đổi bất thường trên các
thành phần chính nhất định Các thành phần chính có thể phân
chia thành những thành phần quan trọng phản ánh quy luật
biến thiên của lưu lượng y (m) trong trạng thái bình thường của
hệ thống và những thành phần dư thừa phản ánh sự biến thiên
không theo quy luật y (p-m) Trong [1, 6], độ lớn của phần dư tái
tạo tương ứng với y (p-m)được phân tích từ đó phát hiện ra những
dấu hiệu bất thường dựa trên mức ngưỡng Một cách tương tự
là tính khoảng cách Euclidean giữa dữ liệu chuẩn hóa z và dữ
liệu tái tạo từ những thành phần chính y (m)[2] Tuy nhiên sự tái
tạo lại z từ những thành phần chính y (m)làm tăng mức độ xử lý
của hệ thống Trong [3], khoảng cách Mahalanobis dựa trên
thành phần chính chủ yếu và thứ yếu được sử dụng để phân
tích dấu hiệu bất thường
Từ những nghiên cứu trên có thể thấy bằng cách theo dõi sự
biến thiên của các thành phần chính trong miền con của PCA
hoặc trong miền gốc ban đầu sau khi tái tạo và so sánh với
đường cơ sở được coi là bình thường, chúng ta có thể phát hiện
ra dấu hiệu bất thường trong lưu lượng của mạng
Theo dõi từng giá trị PCA không hiệu quả khi sự biến thiên
của các biến ban đầu phân tán sang các thành phần chính khác
nhau của không gian con PCA Vì vậy cần kết hợp các thành
phần chính này lại trong thuật toán phát hiện bất thường
Tiếp theo, bài báo đề xuất một thuật toán phát hiện dấu hiệu
bất thường trong không gian con của PCA:
q
c
i i
i r
Trong đó: 1 r q p , w i là trọng số cho thành phần
chính y i được lựa chọn dựa trên thực nghiệm, d là độ lệch hình
thành từ các thành phần chính y i và trọng số tương ứng w i , c là
số mũ của y i c là hằng số, có thể là số thực hoặc số nguyên.
w i , c được lựa chọn dựa trên thực nghiệm.
Tập hợp các giá trị của d được tính trên tất cả các quan sát
với dữ liệu huấn luyện sạch (không chứa bất thường) sẽ tạo nên
đường cơ sở để phát hiện ngoại lai Vì vậy có thể coi d là độ
lệch của mỗi quan sát để xét quan sát đó là bình thường hay bất
thường
Một giá trị ngưỡng d Nđược xác định dựa vào hàm phân bố
tích lũy thực nghiệm của độ lệch d (empirical cumulative
distribute function - ecdf) và được tính trên dữ liệu huấn luyện
Khi có một quan sát mới, giá trị d sẽ được tính dựa trên
những tham số huấn luyện như sau:
Chuẩn hóa dữ liệu dựa trên giá trị trung bình và căn bậc hai của phương sai cho mỗi thuộc tính (biến đầu vào)
Sử dụng vectơ riêng để chuyển mỗi quan sát mới sang các trục của miền con PCA
Tính giá trị d dựa trên (3) và so sánh với ngưỡng đã
thiết lập d Nkhi huấn luyện
Nếu d > d N, quan sát mới được coi là bất thường Ngược lại quan sát đó được coi là bình thường Phương thức phát hiện này trong bài báo được đặt tên là dPCA
III THỬ NGHIỆM PHƯƠNG THỨC PHÁT HIỆN DPCA
A Tập dữ liệu NSL-KDD
KDD (Knowledge Data Mining Data Set) là những tập dữ liệu tri thức thuộc các lĩnh vực khác nhau như: y tế, an ninh mạng, kinh tế được tổng hợp từ những điều kiện thực tế và sử dụng trong các thuật toán, phương pháp khai phá dữ liệu Một tập dữ liệu hay sử dụng để kiểm nghiệm các phương thức phát hiện xâm nhập là KDD-CUP 99 [12] Đây là tập dữ liệu đã qua tiền xử lý từ tập dữ liệu DARPA 1998 KDD-CUP 99 tách ra những trường dữ liệu đặc trưng (thuộc tính) từ các gói tin (một
số thuộc tính như bảng 1) sau đó tổng hợp lại cho từng kết nối Các trường dữ liệu hay thuộc tính trở thành các biến đầu vào cho cơ chế phát hiện tấn công Tổng cộng có 42 trường dữ liệu trong đó trường số 42 đánh nhãn (labeling) mỗi kết nối là bình thường hoặc tên một loại tấn công Dữ liệu được phân loại thành các lớp: Bình thường (Normal) hoặc các lớp tấn công (DoS, PROBE, R2L, U2R)
KDD-CUP 99 tồn tại một số vấn đề mà điển hình là có quá nhiều dữ liệu dư thừa và trùng lặp [12] Điều này ảnh hưởng đến kết quả đánh giá hiệu quả của phương thức phát hiện trong những nghiên cứu sử dụng tập dữ liệu này [2, 3, 6, 12]
Bài báo này sử dụng tập dữ liệu NSL-KDD cho việc thử nghiệm thuật toán phát hiện bất thường NSL-KDD là tập dữ liệu được phát triển từ tập KDD-CUP 99 nhưng đã loại bỏ những kết nối dư thừa hoặc trùng lặp [12] Do đã khắc phục được một số nhược điểm quan trọng trong KDD-CUP 99, NSL-KDD là một tập dữ liệu có độ tin cậy cao hơn KDD-CUP
99 khi thử nghiệm các phương thức phát hiện bất thường
B Các thông số đánh giá trong thử nghiệm
True Positive (TP): Sự kiện một mẫu tấn công được phát hiện chính xác
False Positive (FP): Sự kiện một mẫu bị phát hiện là tấn công nhưng thực tế lại là mẫu bình thường
True Negative (TN): Sự kiện một mẫu bình thường được phát hiện chính xác
False Negative (FN): Sự kiện một mẫu được hệ thống phát hiện là bình thường nhưng thực tế lại là mẫu tấn công
Trang 3Precision (Độ chinh xác): Bằng tỷ lệ số mẫu phát hiện tấn
công chính xác và tổng số mẫu phát hiện là tấn công trong tập
dữ liệu kiểm tra
TP Precision
TP FP
True Positive Rate (TPR) còn gọi là Recall: Tỷ lệ giữa số
mẫu tấn công phát hiện chính xác và số mẫu tấn công thực tế
trong tập dữ liệu kiểm tra
TP TPR
TP FN
False Positive (FPR): Tỷ lệ giữa số mẫu tấn công phát hiện
sai và số mẫu bình thường trong tập dữ liệu kiểm tra
FP FPR
TN FP
Total Accuracy (TA) : Độ chính xác tổng bằng số mẫu phát
hiện chính xác của cả tấn công và bình thường trên số mẫu của
tập dữ liệu
TP TN TA
TP FP TN FN
C Thử nghiệm và kết quả
Quá trình thử nghiệm được thực hiện dựa trên phần mềm
Matlab R2013a Bài báo sử dụng 1000 kết nối bình thường
dùng để huấn luyện; 50000 kết nối cả tấn công và bình thường
được lựa chọn ngẫu nhiên để kiểm tra độ chính xác của phương
thức phát hiện Do tập dữ liệu có rất nhiều thuộc tính nên bài
báo chỉ lựa chọn những thuộc tính cần thiết được liệt kê trong
bảng 1 Quá trình thử nghiệm lựa chọn tất cả các thành phần
chính và một số thành phần chính cuối cùng từ đó thống kê tỷ
lệ phát hiện thành công và cảnh báo sai Kết quả của phương
thức phát hiện bất thường được thống kê trong các bảng 2-6
Giá trị k trong các bảng 2-6 là số thành phần chính
B NG I THUỘC TÍNH DÙNG TRONG THỬ NGHIỆM
duration Thời gian của kết nối
protocol_type Loại giao thức
service Dịch vụ (ví dụ HTTP)
src_bytes Số lượng byte gửi từ nguồn đến đích
dst_bytes Số lượng byte gửi từ đích về nguồn
num_access_files Số lượng truy nhập file điều khiển
count Số lượng kết nối đến cùng địa chỉđích đang xét trong 2s
srv_count Số lượng kết nối đến cùng dịch vụ
đích đang xét trong 2s serror_rate % số kết nối có lỗi đồng bộ SYN
rerror_rate % số kết nối có lỗi đồng bộ REJ diff_srv_rate % số kết nối đến cùng dịch vụ đang
xét dst_host_count Số lượng địa chỉ đích dst_host_srv_count Số lượng kết nối đến cùng địa chỉ
đích đang xét và cùng dịch vụ đích
Bảng 2 thống kê kết quả phát hiện với trọng số wi=1 và
hằng số c =1 Công thức (3) trở thành:
B NG II KẾT QU THỬ NGHIỆM 1
k Precision (%) TPR (%) FPR (%) TA (%)
Do trị riêng iphản ánh mức biến thiên của các trục thành
phần chính tạo nên bởi vectơ riêng e i nên có thể i đưa vào
trọng số w i của công thức (3)
Bảng 3 thống kê kết quả phát hiện với trọng số w i= i và
hằng số c =1 Công thức (3) trở thành:
d = r |y r |+ r+1 |y r+1 |+ …+ q |y q |
B NG III KẾT QU THỬ NGHIỆM 2
k Precision (%) TPR (%) FPR (%) TA (%)
Bảng 4 thống kê kết quả phát hiện với trọng số w i= 1/2
i
và
hằng số c =1 Công thức (3) trở thành:
1 1
B NG IV KẾT QU THỬ NGHIỆM 3
k Precision (%) TPR (%) FPR (%) TA (%)
Bảng 5 thống kê kết quả phát hiện với trọng số w i = 1/ và hằng số c =2 Công thức (3) trở thành: i
2
2 2 1 1
q
y
Trang 4B NG V KẾT QU THỬ NGHIỆM 4
k Precision (%) TPR (%) FPR (%) TA (%)
Bảng 6 thống kê kết quả phát hiện với trọng số w i =
1/ và hằng số c =1 Công thức (3) trở thành: i
1
y y y d
B NG VI KẾT QU THỬ NGHIỆM 5
k Precision (%) TPR (%) FPR (%) TA (%)
Nhận xét: Kết quả thử nghiệm cho thấy khi lựa chọn w i =
1, w i= i , w i= 1/2
i
có sự chênh lệch tỷ lệ TPR rất lớn giữa k =
3 và k = 13 TPR cho biết khả năng phát hiện tấn công trong
tổng số tấn công đưa vào kiểm tra Điều đó cho thấy các giá trị
ngoại lai thường nằm ở những thành phần chính cuối cùng
được coi là phần dư Quy luật biến thiên của hệ thống trong
điều kiện bình thường khi không có tấn công thường nằm ở
những thành phần chính đầu tiên Do vậy khi lựa chọn k = 13,
nếu khuyếch đại các thành phần chính này bằng w i= i , w i=
1/2
i
thì sự chênh lệch của w c
i y giữa những thành phần i
chính đầu tiên và cuối cùng càng lớn và làm mất đi một số giá
trị ngoại lai trong d So với kết quả trong các nghiên cứu [2, 3,
6], tác giả nhận định rằng kết quả đạt được là tương đương
nhưng giảm được mức độ tính toán cho thuật toán của đường
cơ sở với công thức (8), (11) và (12) Công thức (8) có thể áp
dụng cho phần dư khi sự chênh lệch giữa các thành phần chính
cuối cùng là không nhiều Thử nghiệm với công thức (11) và
(12) cho kết quả tương đương nhau nhưng áp dụng công thức
(12) giảm được mức độ tính toán vì trọng số w ilà cố định trong
khi không phải tính bình phương của các thành phần chính
Khi lựa chọn trọng số w i = 1/ , w i i = 1/ coi như chuẩni
hóa y i c trong miền con PCA nên sự chênh lệch TPR không quá
nhiều giữa các giá trị k Đồng thời, kết quả thử nghiệm trong
bài báo có độ tin cậy cao hơn [2, 3, 6] vì sử dụng tập dữ liệu
NSL-KDD đã khắc phục được một số nhược điểm quan trọng
ảnh hưởng đến hiệu quả đánh giá của phương thức phát hiện
với KDD-CUP 99
IV KẾT LUẬN Trên cơ sở những nghiên cứu về phát hiện lưu lượng bất thường dựa trên thuật toán PCA, bài báo đề xuất một thuật toán cho đường cơ sở của phương thức phát hiện lưu lượng bất thường Kết quả thử nghiệm cho thấy sự thay đổi độ chính xác của của phương thức đề xuất với những tham số khác nhau của thuật toán đường cơ sở cũng như số lượng thành phần chính Ngoài ra, kết quả cũng cho thấy việc phát hiện bất thường của phương thức đề xuất (dPCA) có thể thực hiện được với những thành phần chính cuối cùng được coi là phần dư với điều kiện lưu lượng mạng dùng cho dữ liệu tập huấn đầu vào không chứa bất thường (dữ liệu sạch)
TÀI LIỆU THAM KH O [1] A Lakhina, M Crovella, and C Diot, “Diagnosing network-wide traffic anomalies,” in Proc of ACM SIGCOMM, pp 219–230, 2004.
[2] W Wang and R Battiti, “Identifying Intrusions in Computer Networks with Principal Component Analysis,” in Proc of IEEE ARES, 2006 [3] M Shyu, S Chen, K Sarinnapakorn, L Chang, "Principal Componentbased Anomaly Detection Scheme", Foundations and Novel Approaches in Data Mining, Vol 9, pp 311-329, 2006
[4] Y Bouzida, “Efficient intrusion detection using principal component analysis,” in Proc of 7th World Multiconference on Systemics, Cybernetics and Informatics, 2003
[5] D Brauckhoff, K Salamatian, M May, “Applying PCA for Traffic Anomaly Detection: Problems and Solutions,” in Proc of IEEE INFOCOM, 2009.
[6] A Lakhina, M Crovella, and C Diot Diot, “Mining anomalies using traffic feature distributions,” in Proc of ACM SIGCOMM, 2005 [7] L Mechtri, F.D Tolba, N.Ghoualmi, “Intrusion detection using principal component analysis,” in Proc of IEEE ICESMA, 2010 [8] M.H.Bhuyan, D.K.Bhattacharyya, J.K.Kalita, “Network Anomaly Detection: Methods, Systems and Tools,” in Proc of IEEE Communications Surveys and Tutorials, Vol 16, pp 303 – 336, 2013 [9] K Wankhade, S Patka, R Thool, “An Overview of Intrusion Detection Based on Data Mining Techniques,” in Proc of IEEE CSNT, 2013 [10] C Kacha, K A Shevade, “Comparison of Different Intrusion Detection and Prevention Systems,” Intl Journal of Emerging Technology and Advanced Engineering, Vol.2, Iss.12, pp.243-245, 2012.
[11] S Myers, J Musacchio, N Bao, “Intrusion Detection Systems: A Feature and Capability Analysis,” Tech.Report UCSC-SOE-10-12, Jack Baskin School of Engineering, 2010.
[12] M Tavallaee, E Bagheri, W Lu, A.A Ghorbani, “A Detailed Analysis of the KDD CUP 99 Data Set,” In the Proc of IEEE CISDA 2009.
[13] The KDD99 cup data, http://kdd.ics.uci.edu /databases/kddcup99/kddcup99.html, 1999
[14] The NSL-KDD data, http://nsl.cs.unb.ca/nsl-kdd, 2009.