Các kỹ thuật áp dụng để giải quyết vấn đề PCDL đều hƣớng tới hai mục tiêu chung: Chất lƣợng của các cụm khám phá đƣợc và tốc độ thực hiện của thuật toán. Tuy nhiên, các kỹ thuật PCDL có thể đƣợc phân loạithành một số loại cơ bản dƣa trên các phƣơng pháp tiếp cận khác nhau[7]: phân cụm phân hoạch, phân cụm phân cấp (đây là 2 kỹ thuật phân cụm phổ biến), ngoài ra còn có các kỹ thuật phân cụm dựa trên mật độ, phân cụm dựa trên lƣới, phân cụm dựa trên mô hình, phân cụm dữ liệu mờ. Gần đây còn xuất hiện một kỹ thuật mới đó là phân cụm dựa trên lý thuyết tập thô [1]. Các kỹ thuật phân cụm có rất nhiều cách tiếp cận và ứng dụng trong thực tế, nó hướng tới hai mục tiêu chung đó là chất lượng của các cụm khám phá được và tốc độ thực hiện của thuật toán. Dƣới đây xin trình bày khái quát ba kỹ thuật phân cụm:.
a. Phân cụm phân hoạch
mỗi nhóm dữ liệu có tối thiểu ít nhất một phần tử dữ liệu. Các thuật toán phân hoạch có độ phức tạp rất lớn khi xác định nghiệm tối ƣu toàn cục cho vấn đề PCDL, vì nó phải tìm kiếm tất cả các cách phân hoạch có thể đƣợc. Chính vì vậy, trên thực tế ngƣời ta thƣờng đi tìm giải pháp tối ƣu cục bộ cho vấn đề này bằng cách sử dụng một hàm tiêu chuẩn để đánh giá chất lƣợng của các cụm cũng nhƣ để hƣớng dẫn cho quá trình tìm kiếm phân hoạch dữ liệu. Với chiến lƣợc này, thông thƣờng ngƣời ta bắt đầu khởi tạo một phân hoạch ban đầu cho tập dữ liệu theo phép ngẫu nhiên hoặc theo heuristic và liên tục tinh chỉnh nó cho đến khi thu đƣợc một phân hoạch mong muốn, thoả mãn các điều kiện ràng buộc cho trƣớc. Các thuật toán phân cụm phân hoạch cố gắng cải tiến tiêu chuẩn phân cụm bằng cách tính các giá trị đo độ tƣơng tự giữa các đối tƣợng dữ liệu và sắp xếp các giá trị này, sau đó thuật toán lựa chọn một giá trị trong dãy sắp xếp sao cho hàm tiêu chuẩn đạt giá trị tối thiểu. Nhƣ vậy, ý tƣởng chính của thuật toán phân cụm phân hoạch tối ƣu cục bộ là sử dụng chiến lƣợc ăn tham để tìm kiếm nghiệm.
Lớp các thuật toán phân cụm phân hoạch bao gồm các thuật toán đề xuất đầu tiên trong lĩnh vực KPDL cũng là các thuật toán đƣợc áp dụng nhiều trong thực tế nhƣ k-Means, PAM, CLARA, CLARANS.
b. Phân cụm phân cấp
Phân cụm phân cấp sắp xếp một tập dữ liệu đã cho thành một cấu trúc có dạng hình cây, cây phân cấp này đƣợc xây dựng theo kỹ thuật đệ quy. Cây phân cụm có thể đƣợc xây dựng theo hai phƣơng pháp tổng quát: phƣơng pháp “trên xuống” (Top down) và phƣơng pháp “dƣới lên” (Bottom up).
Phƣơng pháp Bottom up: Phƣơng pháp này bắt đầu với mỗi đối tƣợng đƣợc khởi tạo tƣơng ứng với các cụm riêng biệt, sau đó tiến hành nhóm các đối tƣợng theo một độ đo tƣơng tự (nhƣ khoảng cách giữa hai trung tâm của hai nhóm), quá trình này đƣợc thực hiện cho đến khi tất cả các nhóm đƣợc hòa nhập vào một nhóm (mức cao nhất của cây phân cấp) hoặc cho đến khi các điều kiện kết thúc thoả mãn. Nhƣ vậy, cách tiếp cận này sử dụng chiến lƣợc ăn tham trong quá trình phân cụm.
Phƣơng pháp Top Down: Bắt đầu với trạng thái là tất cả các đối tƣợng đƣợc xếp trong cùng một cụm. Mỗi vòng lặp thành công, một cụm đƣợc tách thành các cụm nhỏ hơn theo giá trị của một phép đo độ tƣơng tự nào đó cho đến khi mỗi đối tƣợng là một cụm hoặc cho đến khi điều kiện dừng thoả mãn. Cách tiếp cận này sử dụng chiến lƣợc chia để trị trong quá trình phân cụm.
Sau đây là minh họa chiến lƣợc phân cụm phân cấp bottom up và top down.
Hình 2.1: Các chiến lƣợc phân cụm phân cấp
Trong thực tế áp dụng, có nhiều trƣờng hợp ngƣời ta kết hợp cả hai phƣơng pháp phân cụm phân hoạch và phƣơng phân cụm phân cấp, nghĩa là kết quả thu đƣợc của phƣơng pháp phân cấp có thể cải tiến thông quan bƣớc phân cụm phân hoạch. Phân cụm phân hoạch và phân cụm phân cấp là hai phƣơng pháp PCDL cổ điển, hiện nay đã có nhiều thuật toán cải tiến dựa trên hai phƣơng pháp này đã đƣợc áp dụng phổ biến trong KPDL. Một số thuật toán phân cụm phân cấp điển hình nhƣ CURE, BIRCH, Chemeleon, AGNES, DIANA, ...
c. Phân cụm dữ liệu dựa vào lý thuyết tập thô
Theo tìm hiểu của tác giả, C.L Bean, C.Kambhampati (2008) đã đề xuất phân cụm trên cơ sở các khái niệm của lý thuyết tập thô [1], thuật toán phân cụm dựa trên các quan hệ bất khả phân biệt trong tập dữ liệu vào để xác định các cụm với số cụm tự phát hiện trong quá trình thực hiện thuật toán. Ý tƣởng cơ bản của thuật toán là sử
khả phân biệt ban đầu cho từng đối tƣợng. Từ đó tổng hợp lại để có một phân cụm ban đầu. Các bƣớc tiếp theo lặp lại việc điều chỉnh các quan hệ bất khả phân biệt trên cơ sở xác định độ bất khả phân biệt của các đối tƣợng trong tập vũ trụ theo nguyên lý của lý thuyết tập thô, từ đó điều chỉnh để tạo ra phân cụm mới với chất lƣợng tốt hơn theo nguyên tắc các đối tƣợng trong cùng cụm có độ tƣơng tự phân phối đồng đều nhất và khoảng cách giữa các cụm hợp lý nhất, tối thiểu việc tạo ra các cụm quá xa trọng tâm của không gian phân cụm.
2.4. Kết chƣơng
Nhƣ tên đề tài của luận văn “Phát hiện xâm nhập, các dạng tấn công, mã độc, sử dụng kỹ thuật khai phá dữ liệu”, chƣơng này tác giả đã trình bày sơ lƣợc về KPDL,
các mô hình KPDL, các kỹ thuật phân cụm dữ liệu, đặc biệt trình bày ý tƣởng của 3 kỹ thuật phân cụm có liên quan đến giải pháp Phát hiện xâm nhập, các dạng tấn công, mã độc mà tác giả sẽ đề xuất trong chƣơng 3.
CHƢƠNG 3. PHƢƠNG PHÁP PHÁP HIỆN XÂM NHẬP, SỬ DỤNG KỸ THUẬT KHAI PHÁ DỮ LIỆU
3.1. Pháp hiện xâm nhập dựa trên thuật toán K-Means. 3.1.1. Thuật toán K-means.
Các khái niệm.
a. Phân nhóm dữ liệu K-Means.
Thuật toán phân cụm K-means do MacQuean đề xuất trong lĩnh vực thống kê năm 1967. Đây là thuật toán truyền thống đƣợc sử dụng phổ biến. Ý tƣởng của phƣơng pháp này là từ tập ban đầu ta tìm một phép phân hoạch nó vào trong k tập con, trong đó k là số nguyên dƣơng chọn trƣớc cố định. K-means Clustering là một thuật toán dùng trong các bái toán phân loại/ nhóm n đối tƣợng thành k nhóm dựa trên đặc tính/thuộc tính của đối tƣợng (k n nguyên, dƣơng)
Hình 3.1: Ví dụ về phân nhóm đối tƣợng
Về nguyên lý, có n đối tƣợng, mỗi đối tƣợng có m thuộc tính, ta phân chia đƣợc các đối tƣợng thành k nhóm dựa trên các thuộc tính của đối tƣợng bằng việc áp dụng thuật toán này. Coi mỗi thuộc tính của đối tƣợng (đối tƣợng có m thuộc tính) nhƣ một toạ độ của không gian m chiều và biểu diễn đối tƣợng nhƣ một điểm của không gian m chiều.
xij(i =1..n, j=1..m) là thuộc tính thứ j của đối tƣợng i
Phƣơng thức phân loại/nhóm dữ liệu thực hiện dựa trên khoảng cách Euclidean nhỏ nhất giữa đối tƣợng đến phần tử trung tâm của các nhóm.
Phần tử trung tâm của nhóm đƣợc xác định bằng giá trị trung bình các phần tử trong nhóm.
K-means phân cụm các phần tử theo trọng tâm của các cụm. Phƣơng pháp này dựa trên độ đo khoảng cách của các đối tƣợng dữ liệu trong cụm. Nhƣ vậy, cần khởi tạo một tập trọng tâm các trọng tâm cụm ban đầu, và thông qua đó nó lặp lại các bƣớc gồm gán mỗi đối tƣợng tới cụm mà trọng tâm gần, và tính toán tại trọng tâm của mỗi cụm trên cơ sở gán mới cho các đối tƣợng. Quá trình này dừng khi các trọng tâm cụm hội tụ. Trong phƣơng pháp K-means, chọn một giá trị k và sau đó chọn ngẫu nhiên k trọng tâm của các đối tƣợng dữ liệu. Tính toán khoảng cách giữa đối tƣợng dữ liệu trung bình mỗi cụm để tìm kiếm phần tử nào là tƣơng tự và thêm vào cụm đó. Từ khoảng cách này có thể tính toán trung bình mới của cụm và lặp lại quá trình cho đến khi mỗi các đối tƣợng dữ liệu là một bộ phận của các cụm k.
Hình 3.2: Cách thiết lập để xác định ranh giới các cụm ban đầu
Mục đích của thuật toán K-means là sinh k cụm dữ liệu {Cl, C2,..., Ck} từ một tập dữ liệu chứa n đối tƣợng trong không gian d chiều ai= ( xi1, xi2,..., xim), i = 1, 2,… n, sao cho hàm tiêu chuẩn: E=
k
i1 xCi (x-mi)2 đạt giá trị tối thiểu.Trong đó: mi là trung bình cụm của cụm Ci, a là điểm dữ liệu đại diện cho một đối tƣợng. Trọng
cộng của các thành phần tƣơng ứng của các đối tƣợng vector dữ liệu trong cụm đang xét. Tham số đầu vào của thuật toán là số cụm k, và tham số đầu ra của thuật toán là các trọng tâm của các cụm dữ liệu. Độ đo khoảng cách giữa các đối tƣợng dữ liệu thƣờng đƣợc sử dụng là khoảng cách Euclide. Hàm tiêu chuẩn và độ đo khoảng cách có thể đƣợc xác định cụ thể hơn tùy ý vào ứng dụng hoặc quan điểm của ngƣời dùng.
Hình 3.3: Mô tả độ khoảng cách giữa các đối tƣợng b. Khoảng cách Euclidean
ai = xi1,xi2,....,xim i = 1..n là đối tƣợng thứ i cần phân loại cj = xj1,xj2,...,xjm j= 1..k là phần tử trung tâm nhóm j
Khoảng cách Euclidean từ đối tƣợng ai đến phần tử trung tâm nhóm j cj đƣợc tính toán dựa trên công thức.
δij – Khoảng cách Euclidean từ ai đến cj xis – Thuộc tính thứ s của đối tƣợng ai
Phần tử trung tâm của nhóm đƣợc xác định bằng giá trị trung bình các phần tử trong nhóm. k phần tử trung tâm (k nhóm) ban đầu đƣợc chọn ngẫu nhiên, sau mỗi lần
nhóm các đối tƣợng vào các nhóm, phần tử trung tâm đƣợc tính toán lại.
Cụmi={a1,a2,....at} Nhóm thứ i
i = 1..k, k số cụm j=1..m, m số thuộc tính
t – số phần tử hiện có của nhóm thứ i xsj – Thuộc tính thứ j của phần s s=1..t
cij - Tọa độ thứ j của phần tử trung tâm nhóm i;
Thuật toán.
Ta có thể hình dung các bƣớc cơ bản của thuật toán K- means nhƣ sau:
Input: Số cụm k và các trọng tâm cụm mjk j1
Output: Các cụm C[j](1≤ j ≤ k) với hàm tiêu chuẩn E đạt giá trị tối thiểu. Begin
1. Khởi tạo
Chọn k trọng tâm mjkj1ban đầu trong không gian Rd
(d là số chiều của dữ liệu). Việc lựa chọn này có thể là ngẫu nhiên hoặc theo kinh nghiệm.
2. Tính toán khoảng cách
Đối với mỗi điểm Ai (1 ≤ i ≤ k), tính toán khoảng cách của nó tới mỗi trọng tâm Cj (1 ≤ j ≤ k),sau đó tìm trọng tâm gần nhất đối với điểm.
Đối với mỗi (1 ≤ i ≤ k), cập nhật trọng tâm cụm Cj bằng cách xác định trung bình cộng các vector đối tƣợng dữ liệu. Điều kiện dừng: Lặp lại các bƣớc 2 và 3 cho đến khi các trọng tâm của cụm không thay đổi. End
Sơ đồ thuật toán đƣợc mô tả
Hình 3.4: Sơ đồ thuật toán phân nhóm K-Means Ví dụ cho tập đối tƣợng điểm:
X1={1,1} ={x11, x12}; X2={2,1}={x21, x22}; X3={4,3}={x31, x32}; X4={5,4}={x41, x42}
C1 {1,1} trùng với X1 và C2{2,1} trùng với X2 , thuộc 2 cụm 1 va 2 Bƣớc 2: Tính toán khoảng cách + d(X3,C1)=(4-1)2+(3-1)2=13 + d(X3,C2)=(4-2)2+(3-1)2=8 + d(X3,C1)> d(X3,C2) => X3 thuộc C2 + d(X4,C1)=(5-1)2+(4-1)2=25 + d(X4,C2)=(5-2)2+(4-1)2=18 + d(X4,C1)> d(X4,C2) => X4 thuộc C2 Bƣớc 3: Cập nhật lại lại vị trí trọng tâm
Trọng tâm cụm 1 C1 trùng với X1{1,1}
Trọng tâm cụm 2 C2{x,y} = {(2+4+5)/3,(1+3+4)/3}={11/3,8/3}
a) Lặp lại bƣớc 2 – Tính toán khoảng cách d(X1,C1) = 0 < d(X1,C2) = 9,89 X1 thuộc cụm 1 d(X2,C1) = 1 < d(X2,C2) = 5,56 X2 thuộc cụm 1 d(X3,C1) = 13 > d(X3,C2) = 0,22 X3 thuộc cụm 2 d(X4,C1) = 25 > d(X4,C2) = 3,56 X4 thuộc cụm 2 b) Lặp lại bƣớc 3 – Cập nhật trọng tâm C1= {3/2,1} và C2 = {9/2,7/2} c) Lặp lại bƣớc 2 d(X1,C1) = 0,25 < d(X1,C2) = 18,5 X1 thuộc cụm 1 d(X2,C1) = 0,25 < d(X2,C2) = 12,5 X2 thuộc cụm 1 d(X3,C1) = 10,25> d(X3,C2) = 0,5 X3 thuộc cụm 2 d(X4,C1) = 21,5 > d(X4,C2) = 0,5 X4 thuộc cụm 2
Ƣu điểm và nhƣợc điểm của thuật toán K-Means a. Ƣu điểm:
+ Tƣơng đối nhanh. Độ phức tạp của thuật toán là O(tkn), trong đó: - n: Số đối tƣợng trong không gian dữ liệu.
- k: Số cụm cần phân hoạch.
- t: Số lần lặp (t thƣờng khá nhỏ so vơi n). + K-means phù hợp với các cụm có dạng hình cầu. b. Nhƣợc điểm:
+ Không đảm bảo đạt đƣợc độ tối ƣu toàn cục và kết quả đầu ra phụ thuộc nhiều vào việc chọn k điểm khởi đầu. Do đó phải chạy lại thuật toán với nhiệu bộ khởi đầu khác nhau để có đƣợc kết quả đủ tốt.
+ Cần phải xác định trƣớc số cụm.
+ Khó xác định số cụm thực sự mà không gian dữ liệu có. Do đó có thể phải thử với các giá trị k khác nhau.
+ Khó phát hiện các loại cụm có hình dạng phức tạp khác nhau và nhất là các dạng cụm không lồi.
+ Không thể xử lý nhiễu và mẫu cá biệt. + Chỉ có thể áp dụng khi tính đƣợc trọng tâm.
3.1.2. Thuật toán K-means với phát hiện xâm nhập.
Phân tích tập dữ liệu kiểm thử.
KDD CUP 99 là tập dữ liệu đƣợc sử dụng trong cuộc thi Khám phá kiến thức và Khai thác dữ liệu quốc tế lần thứ 3 cùng với Hội nghị Khám phá kiến thức và Khai thác dữ liệu KDD-99 lần thứ năm. Nhiệm vụ trong cuộc thi là xây dựng một máy phát hiện xâm nhập mạng, một mô h ình tiên đoán có khả năng phân biệt giữa các kết nối “xấu” hay còn gọi là xâm nhập hoặc tấn công, và các kết nối “tốt” hay còn gọi là bình thƣờng. Cơ sở dữ liệu này chứa một tập hợp các dữ liệu đƣợc kiểm toán, bao gồm một loạt các sự xâm nhập đƣợc mô phỏng trong một môi trƣờng mạng quân đội.
Phần mềm phát hiện xâm nhập mạng bảo vệ một mạng lƣới máy tính từ ngƣời sử dụng trái phép và có thể bao gồm cả ngƣời trong cuộc. Phát hiện xâm nhập học có nhiệm vụ là xây dựng một mô hình tiên đoán (tức là phân loại) có khả năng phân biệt giữa kết nối "xấu" đƣợc gọi là sự xâm nhập hoặc tấn công, và "tốt" kết nối bình thƣờng. Năm 1998 Chƣơng trình đánh giá phát hiện xâm nhập đã đƣợc DARPA chuẩn bị và quản lý bởi MIT Lincoln Labs. Mục tiêu là để khảo sát và đánh giá nghiên cứu trong việc phát hiện xâm nhập. Một tập hợp các tiêu chuẩn của dữ liệu đƣợc kiểm toán, bao gồm một loạt các mô phỏng của sự xâm nhập đƣợc cung cấp trong một môi trƣờng mạng quân sự. Cuộc thi phát hiện xâm nhập KDD 1999 sử dụng một phiên bản của tập dữ liệu này. Lincoln Labs thiết lập một môi trƣờng để có đƣợc chín tuần dữ liệu thô TCP dump cho một mạng cục bộ (LAN) mô phỏng một mạng LAN không quân Mỹ điển hình. Họ hoạt động mạng LAN nhƣ thể nó là một môi trƣờng Air Force nhƣng nó rải rác với nhiều cuộc tấn công. Dữ liệu huấn luyện thô là khoảng 4 gigabyte nén dữ liệu nhị phân TCP dump lấy từ bảy tuần lƣu lƣợng mạng. Điều này đã đƣợc xử lý vào khoảng 5.000.000 bản ghi kết nối. Tƣơng tự nhƣ vậy, hai tuần của dữ liệu thử nghiệm bắt đƣợc khoảng hai triệu bản ghi kết nối.
nguồn đến một địa chỉ IP đích theo một số giao thức đƣợc xác định rõ. Mỗi kết nối đƣợc dán nhãn hoặc là bình thƣờng, hoặc là một tấn công, với chính xác một loại tấn công cụ thể. Mỗi bản ghi kết nối bao gồm khoảng 100 byte.