Academia.eduAcademia.edu
a. Các định nghĩa Có 3 chiến lược để trích rút thông tin về truy vấn SQL[8]: Định nghĩa 1: Một bộ ba c-triplet là một đại diện của một bản ghi log của tập tin log cơ sở dữ liệu. Mỗi c-triplet bao gồm 3 trường (SQL-CMD, REL-COUNTER, ATTR-COUNTER). Trường đầu tiên kiểu chuỗi, biểu diễn kiểu truy vấn của câu lệnh SQL đã phát hành, trong khi hai trường còn lại là số và tương ứng với số lượng các quan hệ (bảng) và số lượng các thuộc tính có trong lệnh SQL đó. Định nghĩa 2: Một bộ ba m-triplet đại diện cho một bản ghi log cơ sở dữ liệu, gồm 3 trường (SQL-CMD, REL-BIN [], ATTR-COUNTER []). Trường đầu tiên kiểu chuỗi và tương ứng với kiểu câu lệnh SQL đã ban hành, trường thứ hai là một vector nhị phân (bit) có kích thước tương đương với số quan hệ (bảng) trong cơ sở dữ liệu. Vector bit này sẽ nhận giá trị 1 ở vị trí thứ i nếu bảng thứ i có trong lệnh SQL. Trường thứ ba của bộ ba là một vector có kích thước bằng với kích thước của vector REL-BIN[]. Phần tử thứ i của vector ATTR-COUNTER[] có giá trị tương ứng với số thuộc tính của quan hệ thứ i có mặt trong câu lệnh SQL. Định nghĩa 3: Một bộ ba f-triplet là một biểu diễn chi tiết về một mục log. Nó gồm 3 trường (SQL-CMD, REL-BIN[], ATTR-BIN[[]]). Trường đầu tiên kiểu chuỗi, tương ứng với kiểu câu lệnh SQL đã ban hành, trường thứ hai là một vector nhị phân, có kích thước bằng số quan hệ có trong cơ sở dữ liệu (N), vector này nhận giá trị 1 ở vị trí thứ i nếu bảng thứ i xuất hiện trong lệnh SQL đã ban hành. Trường thứ ba là một vector của N vector M chiều, với M là tổng số các thuộc tính khác nhau trong cơ sở dữ liệu. Phần tử ATTR-BIN[i][j] = 1 nếu lệnh SQL truy cập thuộc tính thứ j của bảng thứ i và 0 nếu ngược lại. Bảng sau cho thấy hai lệnh SQL tương ứng để truy vấn cơ sở dữ liệu và các biểu diễn của chúng theo ba loại bộ ba khác nhau. Trong ví dụ này xem xét một cơ sở dữ liệu bao gồm hai quan hệ (bảng) R1 = {A1, B1, C1} và R2 = {B2, D2, E2}. Bảng 2. SEQ Bảng_ \* ARABIC \s 1 1. Ví dụ xây dựng các bộ ba Câu lệnh SQL c-triplet m-triplet f-triplet SELECT A1, B1 FROM R1 Select <1><2> Select <1,0><2,0> Select <1,0> <[1,1,0,0,0],[0,0,0,0,0]> SELECT R1.A1, R1.C1, R2.B2, R2.D2 FROM R1, R2 WHERE R1.E1=R2.E2 Select <2><4> Select <1,1><2,2> Select <1,1> <[1,0,1,0,0],[0,1,0,1,0]> b. Quá trình phát hiện xâm nhập Mỗi khi một truy vấn được phát hành, các tập tin log cơ sở dữ liệu được cập nhật. Trong giai đoạn huấn luyện, hệ thống phát hiện xâm nhập khai phá các file log hiện có và định dạng hồ sơ vai trò. Trong giai đoạn phát hiện, đối với mỗi truy vấn mới, cơ chế phát hiện xâm nhập kiểm tra lệnh truy vấn để xác định xem nó có là bất thường hay không. Nếu là bất thường thì một báo động được kích hoạt. Cần lưu ý rằng các hồ sơ vai trò được cập nhật định kỳ để đảm bảo chúng đại diện cho hành vi vai trò tại thời điểm hiện tại, đồng thời giảm thiểu được những báo động sai. Sau đây là mô hình tổng quát tiến trình phát hiện xâm nhập: Hình 2. SEQ Hình_ \* ARABIC \s 1 3: Tổng quan tiến trình phát hiện xâm nhập c. Phân lớp Sau khi dữ liệu được đưa về định đạng trên, sử dụng các kỹ thuật phân lớp để hình thành các hồ sơ người dùng (bộ phân lớp). Thông thường sử dụng phân lớp Naive Bayes, thuật toán Naïve Bayes dựa trên định lý Bayes được phát biểu như sau: Áp dụng trong bài toán phân lớp, các dữ kiện gồm có: D: tập dữ liệu huấn luyện đã được chuẩn hóa dưới dạng x = (x1,x2,x3) Ci: phân lớp i, với i = {1,2,…,m}. Tương ứng với số hồ sơ người dùng. Các thuộc tính độc lập điều kiện đôi một với nhau. Theo định lý Bayes: Theo tính chất độc lập điều kiện: Trong đó: là xác suất thuộc phân lớp i khi biết trước mẫu X. xác suất là phân lớp i. xác suất thuộc tính thứ k mang giá trị xk khi đã biết X thuộc phân lớp i. Các bước thực hiện thuật toán Naïve Bayes: Bước 1: Huấn luyện Naïve Bayes (dựa vào tập dữ liệu), tính và Bước 2: Phân lớp Xnew = (x1,x2,x3), ta cần tính xác suất thuộc từng phân lớp khi đã biết trước Xnew. Xnew được gán vào lớp có xác suất lớn nhất theo công thức: Nếu lớp được phân giống với vai trò của giao dịch thì là hành vi bình thường, ngược lại sẽ là hành vi độc hại. 2.2.2.2. Kỹ thuật phát hiện dựa trên luật kết hợp Kết hợp đề cập đến mối tương quan giữa các mục trong một giao dịch. Hướng tiếp cận này làm việc dựa trên sự phụ thuộc của dữ liệu, trong đó một mục bị thay đổi thì các mục tham chiếu khác cũng thay đổi. Kỹ thuật này xác định sự phụ thuộc giữa các hạng mục dữ liệu, sự phụ thuộc dữ liệu đề cập đến các mối tương quan truy cập giữa các hạng mục dữ liệu. Những phụ thuộc dữ liệu này được tạo ra dưới dạng các luật kết hợp, tức là trước khi một mục dữ liệu được cập nhật vào cơ sở dữ liệu, thì các mục dữ liệu khác có thể cần phải được đọc và sau khi mục dữ liệu này được cập nhật, các mục dữ liệu khác có nhiều khả năng được cập nhật bởi các giao dịch tương tự. Các giao dịch không theo bất kỳ luật phụ thuộc dữ liệu đã khai thác được đánh dấu là giao dịch độc hại.[6] Cần lưu ý rằng, để theo dõi những thay đổi độc hại của các thuộc tính nhạy cảm, cần phải có được luật phụ thuộc dữ liệu cho các thuộc tính. Nếu không có luật cho một thuộc tính, thì nó không thể được kiểm tra. Bởi vì thuộc tính nhạy cảm cao thường được truy cập không thường xuyên, vì thế có thể không có bất kỳ luật nào được tạo ra cho những thuộc tính này. Điều này thúc đẩy việc phân chia các thuộc tính cơ sở dữ liệu thành các nhóm nhạy cảm khác nhau và gán trọng số phù hợp với từng nhóm, nhằm đưa ra các luật phụ thuộc dữ liệu cho các thuộc tính quan trọng nhưng có thể ít được truy cập hơn. Một khi luật này được tạo ra cho các thuộc tính nhạy cảm, thì có thể kiểm tra lại các luật này cho mỗi giao dịch. Nếu bất kỳ giao dịch không thực hiện theo các luật khai phá, nó được đánh dấu là độc hại. Việc phát hiện xâm nhập sẽ được thực hiện theo 3 bước[7]: Khai phá chuỗi nhạy cảm về an toàn Sinh chuỗi Đọc-Viết Sinh luật phụ thuộc dữ liệu có trọng số. Hình 2.3 cho thấy các thành phần của kỹ thuật phát hiện xâm nhập cơ sở dữ liệu dựa trên luật kết hợp. Đầu tiên, các log kiểm toán được đưa ra như là đầu vào cho thành phần khai phá chuỗi nhạy cảm an toàn. Bước khai phá tạo ra các chuỗi thường xuyên cao hơn giá trị hỗ trợ được chỉ định. Những chuỗi này sau đó được truyền tới thành phần sinh chuỗi Đọc-Viết, thành phần này sẽ tính các chuỗi Đọc-Ghi. Cuối cùng, các luật Đọc-Ghi được trích xuất từ các chuỗi Đọc-Ghi. Các luật lớn hơn giá trị tin cậy tối thiểu do người dùng chỉ định sẽ nằm trong tập luật cuối cùng. Chi tiết các thành phần sẽ được trình bày trong các phần dưới đây. Sinh các luật phụ thuộc dữ liệu Các chuỗi Đọc - Ghi Chuỗi thường xuyên Độ hỗ trợ Log kiểm toán Trọng số của các thuộc tính tính Khai phá chuỗi nhạy cảm về an toàn Sinh chuỗi Đọc - Ghi Tập luật cuối cùng Hình 2. SEQ Hình_ \* ARABIC \s 1 4: Các thành phần trong kỹ thuật phát hiện sự phụ thuộc dữ liệu a. Các định nghĩa Định nghĩa 1: Một chuỗi là một danh sách có thứ tự của các thuộc tính và kèm theo đó các hành động được thực hiện trên các thuộc tính này. Một chuỗi được biểu diễn là Seq = <a1o, a2o,…, ako>, với a1 đến ak là các thuộc tính và o là một hành động mà có thể nhận một trong hai giá trị ‘r’ cho hoạt động đọc và ‘w’ cho hoạt động ghi.[7] Định nghĩa 2: Một chuỗi đọc của thuộc tính aj được biểu diễn là ReadSeq, là một chuỗi có dạng <a1r, a2r,…, akr ,ajw>, là chuỗi của các hoạt động đọc các thuộc tính từ a1 đến ak trước hoạt động ghi thuộc tính aj. Tất cả các chuỗi như vậy tạo thành một tập hợp chuỗi đọc và được ký hiệu là ReadSeqSet.[7] Ví dụ, xem xét câu lệnh SQL sau : UPDATE Account SET balance=balance + 100 WHERE customerId=5 ; Trong truy vấn cập nhật này, trước khi cập nhật thuộc tính balance, customerId và giá trị cũ của balance phải được đọc. Vì thế chuỗi đọc của việc cập nhật balance sẽ là <customerIdr, balancer, balancew>. Định nghĩa 3: Một chuỗi ghi của thuộc tính aj được ký hiệu là WriteSeq là một chuỗi có dạng <ajw, a1w, a2w, …,akw>, đây là chuỗi của các hoạt động ghi các thuộc tính từ a1 đến ak sau hoạt động ghi thuộc tính aj. Tất cả các chuỗi có dạng như vậy sẽ tạo thành một tập hợp chuỗi ghi được ký hiệu là WriteSeqSet.[7] Ví dụ, xem xét câu lệnh SQL sau : Update Account set balance = 1000, date = '09/10/2005' where customerId = 5; Trong giao dịch trên, sau khi cập nhật thuộc tính balance, thuộc tính date được cập nhật. Vì thế chuỗi ghi sẽ là <balancew, datew>. Cần lưu ý rằng cả hai chuỗi đọc và ghi có thể xảy ra đồng thời trong cùng một giao dịch. Nếu chúng ta xem xét các giao dịch cuối cùng, chuỗi hoàn chỉnh xem xét cả hai chuỗi đọc và ghi sẽ là: <customerIdr, balancew, datew>. b. Khai phá chuỗi nhạy cảm an toàn Đầu tiên, sẽ tạo ra các tập chuỗi thường xuyên có thể xảy ra được gọi là tập ứng cử viên và sau đó sử dụng hai bước cắt tỉa để tìm ra chuỗi thường xuyên tối đa thực sự. Bước cắt tỉa đầu tiên sử dụng hệ quả: một chuỗi có độ dài K không thể thường xuyên nếu tất cả chuỗi con có độ dài K-1 của nó là không thường xuyên. Nếu bất kỳ chuỗi con của nó là không thường xuyên, thì chuỗi có độ dài K này không được coi là một ứng cử viên. Chiến lược cắt tỉa thứ hai là xóa chuỗi khỏi tập các chuỗi thường xuyên nếu số lần xuất hiện của nó nhỏ hơn giá trị độ hỗ trợ tối thiểu do người dùng chỉ định. Độ hỗ trợ của chuỗi s được tính bằng tỷ lệ phần trăm của các giao dịch có chứa chuỗi s. Trong phương pháp này, tất cả các mục dữ liệu sẽ được phân thành các nhóm với độ nhạy cảm an toàn tương đối. Các thuộc tính có độ nhạy cảm càng cao thì sẽ có trọng số càng lớn. Ở đây phân loại các thuộc tính thành ba nhóm: Độ nhạy cảm cao (HS), độ nhạy cảm trung bình (MS) và độ nhạy cảm thấp (LS). Sự nhạy cảm của một thuộc tính phụ thuộc vào ứng dụng cơ sở dữ liệu cụ thể mà nó được sử dụng. Ngoài ra, thay đổi các thuộc tính nhạy cảm được xem là quan trọng hơn hoạt động đọc chúng (theo quan điểm toàn vẹn). Đối với cùng một thuộc tính x, nếu x ∈ HS thì W(xw)> W (xr), trong đó W là hàm trọng số, xw thể hiện hoạt động ghi hoặc sửa đổi thuộc tính x và xr thể hiện hoạt động đọc thuộc tính x. Đối với một lược đồ cụ thể, chúng ta phân loại các thuộc tính vào ba nhóm nói trên và gán trọng số cho mỗi nhóm. Giả sử w1, w2 w3 ∈ R, trong đó R là tập các số thực và w3 ≤ w2 ≤ w1 là các trọng số tương ứng của HS, MS và LS. Giả sử d1, d2, d3 ∈ R là trọng số bổ sung của các hoạt động ghi cho mỗi nhóm tương ứng: d3 ≤ d2 ≤ d1. Cho x ∈ HS là một thuộc tính mà được truy cập trong một hoạt động đọc. Thì trọng số của x là w1. Nếu nó được truy cập trong hoạt động viết, thì trọng số của x là w1 + d1. Để thực hiện khai phá chuỗi nhạy cảm an toàn, chúng ta gán trọng số cho mỗi chuỗi dựa trên các nhóm nhạy cảm của các thuộc tính truy cập trong chuỗi. Trọng số của một chuỗi nhất định bằng trọng số của thuộc tính nhạy cảm nhất trong chuỗi đó. Trọng số được gán cho một chuỗi cũng phụ thuộc vào hoạt động áp dụng trên các thuộc tính. Giả sử có các thuộc tính a1, a2, a3, a4, a5 với a1, a3 ∈ HS, a2 ∈ MS và a4, a5 ∈ LS, và chúng ta có các chuỗi sau: <a1r,a3r,a2w,a4w> < a1r,a3w,a4w> < a5r,a2w,a4r> <a4r,a5w> Lấy 3, 2, 1 là các trọng số tương ứng của các nhóm HS, MS và LS và 0.75, 0.50, 0.25 là các trọng số bổ sung của hoạt động ghi tương ứng cho các nhóm HS, MS và LS. Trong chuỗi (i) các thuộc tính nhạy cảm nhất là a1, a3 (chúng thuộc nhóm HS). Vì thế trọng số của chuỗi này là 3. Chuỗi (ii) gồm một tập các thuộc tính nhạy cảm nhất giống như chuỗi (i) nhưng vì trong chuỗi này thuộc tính a3 được truy cập bởi hoạt động ghi nên nó được gán trọng số là 3 + 0.75. Trong chuỗi thứ 3, thuộc tính nhạy cảm nhất là a2 thuộc nhóm MS và nó cũng được truy cập bới hoạt động ghi. Vì thế chuỗi (iii) có trọng số là 2 + 0.50. Chuỗi cuối cùng gồm các thuộc tính nhạy cảm a4, a5 thuộc nhóm LS và a5 được truy cập bới hoạt động ghi. Do đó, trọng số của nó sẽ là 1 + 0.25. Các trọng số này được chuẩn hóa để tăng thêm sự thống nhất. Các trọng số đã được gán cho các chuỗi được sử dụng để tính độ hỗ trợ của mỗi chuỗi trong giao dịch phục vụ cho bước cắt xén tiếp theo. Nếu độ hỗ trợ của bất kỳ chuỗi nào lớn hơn độ hỗ trợ tối thiểu thì chuỗi đó được xem là một chuỗi thường xuyên. Lấy chuỗi s có trọng số Ws, N là tổng số các giao dịch. Nếu s xuất hiện n lần trong N giao dịch thì độ hỗ trợ của s là : Việc gán trọng số cho mỗi thuộc tính có ảnh hưởng đáng kể trong thuật toán khai phá chuỗi. Các chuỗi có các thuộc tính nhạy cảm cao nhưng ngược lại mức độ truy cập không thường xuyên có thể trở thàng các chuỗi thường xuyên bởi vì số của mỗi chuỗi đó được tăng lên bằng cách nhân với trọng số của nó. Độ hỗ trợ được gán trọng số bây giờ có thể lớn hơn độ hỗ trợ tối thiểu, làm cho nó trở thành một chuỗi thường xuyên. Hãy xem xét ví dụ về các giao dịch trong bảng 2.2. Các giao dịch này được tạo ra từ lược đồ cơ sở dữ liệu ngân hàng thể hiện trong bảng 2.3 với các thuộc tính được mã hóa thành số nguyên. Trong bảng 2.4, trình bày ba nhóm nhạy cảm và trọng số của mỗi thuộc tính. Các giao dịch và trọng số là dữ liệu vào cho các thuật toán khai thác mẫu tuần tự có gán trọng số. Các chuỗi được tạo ra từ thuật toán được thể hiện trong bảng 2.5. Trong bảng này, cũng cho thấy các chuỗi mà có thể đã được tạo ra nếu sự phân loại không được áp dụng ở tất cả các thuộc tính. Bảng 2. SEQ Bảng_ \* ARABIC \s 1 2: Ví dụ về các giao dịch cho thuật toán khai phá chuỗi Số thứ tự Chuỗi truy cập các thuộc tính 1 11r, 13w, 4r, 8r, 2r, 6r, 1r, 3r 2 7r, 2r, 7r, 2r, 3r, 9w 3 6r, 1r, 3r, 3r, 9w, 1w, 2r, 7w 4 11r, 12w, 2r, 4w, 6r, 1r, 3r 5 2r, 4w, 2r, 7w, 7r, 8r, 2r 6 11r, 13w, 4r, 8r, 2r, 2r, 4w 7 3r, 9w, 4r, 8r, 2r, 8r, 2r 8 7r, 8r, 2r, 2r, 2r, 8w, 5w, 2r, 4w 9 8r, 2r, 3r, 9w, 7r, 2r 10 3r, 9w, 6r, 1r, 3r, 3r, 9w, 1w Bảng 2. SEQ Bảng_ \* ARABIC \s 1 3: Lược đồ cơ sở dữ liệu ngân hàng Tên bảng Tên cột (Các thuộc tính được mã về dạng số nguyên) Customer Name (9), Customer_id (10), Address (4), Phone_no (1) Account Account_id (1), Customer_id (3), Status (7), Open_dt (5), Banlance (8) Account_type Account_type (11), Max_tran_per_month (13), Description (12) Bảng 2. SEQ Bảng_ \* ARABIC \s 1 4: Bảng trọng số cho các thuộc tính được sử dụng trong cơ sở dữ liệu ngân hàng Nhóm nhạy cảm Các thuộc tín Trọng số HS 7, 8, 13 3 MS 5, 6 2 LS 1, 2, 3, 4, 9, 10, 11, 12 1 Bảng 2. SEQ Bảng_ \* ARABIC \s 1 5: Các chuỗi khai phá được với giá trị độ hỗ trợ tối thiểu là 25% Chuỗi sử dụng cách tiếp cận không có trọng số Chuỗi thu được sử dụng cách tiếp cận có trọng số <3r 9w 2r> <4r 8r 2r> <6r 1r 3r> <2r 3r> <2r 7r> <7r 2r> <11r 2r> <8r 3r 9w 7r 2r> <13w 4r 8r 2r> <7w 7r 8r 2r> <4w 7w 7r 8r> <2r 7w 7r 8r> <3r 9w 2r 7w> <3r 9w 2r 8r> <3r 9w 8r 2r> <6r 1r 3r 7w> <6r 3r 9w 7r> <7r 8r 2r 8w> <8r 2r 3r 7r> <8r 2r 6r 3r> <8r 6r 1r 3r> <11r 13w 8r 2r> <11r 8r 2r 6r> <13w 8r 4w> <2r 7r 3r> <4r 2r 8r> <7r 2r 3r> <7r 3r 9w> c. Sinh chuỗi đọc – ghi Các chuỗi tạo ra trong bước trước đó được sử dụng để xác định chuỗi đọc và ghi. Theo định nghĩa, ReadSeq và WriteSeq phải chứa ít nhất một hoạt động ghi. Chuỗi không có bất kỳ thuộc tính nào truy cập với hoạt động ghi, không được sử dụng cho việc sinh chuỗi đọc và ghi. Một chuỗi có chứa một thuộc tính đơn không góp phần vào việc sinh các luật phụ thuộc và do đó, cũng được lọc ra. Các chuỗi đọc-ghi được tạo ra như sau. Đối với mỗi hoạt động ghi trong một chuỗi, thêm <a1r, a2r, ... akr, ajw> vào ReadSeqSet với a1r, a2r, ... akr là các hoạt động đọc trên các thuộc tính a1 đến ak trước khi các hoạt động ghi trên thuộc tính aj. Ví dụ, chuỗi <3r 9w 2r 7w> bảng 2.5 tạo ra các chuỗi đọc sau <3r 9w>, <3r 2r 7w>. Để tạo ra các chuỗi ghi, đối với mỗi hoạt động ghi trong một chuỗi, thêm <ajw, a1w, a2w, ... .akw> vào WriteSeqSet với a1w, a2w, ... .akw là các hoạt động ghi vào các thuộc tính a1 đến ak sau khi hoạt động ghi trên thuộc tính aj. Ví dụ, chuỗi <3r 9w 2r 7w> bảng 2.5 tạo ra chuỗi ghi <9w 7w>. Các chuỗi đọc ghi được tạo ra từ các chuỗi được khai phá của bảng 2.5 được thể hiện trong bảng 2.6. Bảng 2. SEQ Bảng_ \* ARABIC \s 1 6 : Các chuỗi đọc và các chuỗi ghi Theo phương thức phi trọng số Theo phương thức có trọng số <3r 9w> <4w 7w> <9w 7w> <13w 4w> <8r 3r 9w> <2r 7w> <3r 9w> <3r 2r 7w> <6r 1r 3r 7w> <6r 3r 9w> <6r 3r 7w> <7r 8r 2r 8w> <11r 13w> <8r 4w> <7r 3r 9w> d. Sinh luật phụ thuộc dữ liệu có trọng số Ở đây trích xuất hai loại luật phụ thuộc dữ liệu: các luật đọc và các luật ghi. Luật đọc có dạng ajw -> a1r, a2r ... .akr, ngụ ý rằng các thuộc tính a1 đến ak phải đọc để ghi thuộc tính aj. Luật ghi có dạng ajw -> a1w, a2w, ... akw, ngụ ý rằng sau khi ghi thuộc tính aj, các thuộc tính a1, a2, ...., ak được sửa đổi. Cả hai loại luật này có được từ các chuỗi đọc và ghi được tạo ra trong bước trước. Các luật có độ tin cậy lớn hơn hoặc bằng độ tin cậy tối thiểu do người dùng định nghĩa, được cho vào tập luật cuối cùng. Các luật được tạo ra từ các chuỗi đọc-ghi của bảng 2.6 được thể hiện trong bảng 2.7. Các luật tạo ra được sử dụng để xác định một giao dịch đến là độc hại hay không. Nếu một giao dịch đến có một hoạt động ghi, nó sẽ được kiểm tra xem liệu có bất kỳ tương ứng với các luật đọc và ghi. Nếu các hoạt động ghi mới không đáp ứng các luật này, nó được đánh dấu là độc hại và cảnh báo được tạo ra. Nếu không, các giao dịch được tính toán và hoạt động được thực hiện như bình thường. Bảng 2. SEQ Bảng_ \* ARABIC \s 1 7: Các luật phụ thuộc đọc và ghi Phương pháp phi trọng số Phương pháp có trọng số <9w -> 3r> <9w -> 3r> <8w -> 7r 8r 2r> <4w -> 8r> <4w -> 7w><9w -> 7w> <13w -> 4w> <13w -> 11r> <7w -> 2r> Hãy lấy một ví dụ giao dịch đến T: 3r, 9w, 7w, 2r, 13w. Trong giao dịch này, các thuộc tính đã được cập nhật là 9, 7 và 13. Đối với thuộc tính 9, có một luật đọc 9w -> 3r và một luật ghi 9w -> 7w ở bảng 2.7. Cả luật này rất phù hợp vì 3 được đọc trước khi cập nhật 9 và 7 được cập nhật sau khi cập nhật 9. Đối với thuộc tính 7, có một luật đọc 7w -> 2r cũng phù hợp vì trước khi cập nhật thuộc tính 7, 2 được đọc trong Giao dịch. Đối với 13 có một luật ghi 13w -> 4w và một luật đọc 13w -> 11r và cả hai đều không phù hợp trong các giao dịch. Do đó, giao dịch T được đánh dấu là độc hại. Nếu xem xét các luật được tạo ra bằng phương pháp phi trọng số, thì có thể thấy rằng không có luật nào cho thuộc tính 13. Do đó, nó không thể kiểm tra sự cập nhật độc hại của thuộc tính 13 và sẽ đánh dấu nó như là một giao dịch bình thường. 2.3. So sánh kỹ thuật phát hiện xâm nhập cơ sở dữ liệu Kỹ thuật so khớp mẫu Kỹ thuật phân lớp Kỹ thuật luật kết hợp Bao gồm : - Cơ sở dữ liệu các dấu hiệu tấn công - Tìm kiếm các so khớp mẫu đúng Bao gồm : - Cơ sở dữ liệu các hành động thông thường. - Tìm kiếm độ kệch của vai trò người dùng truy vấn Bao gồm : - Cơ sở dữ liệu các hành động thông thường. - Tìm kiếm độ kệch của hành động thực tế so với tập luật kết hợp Hiệu quả trong việc phát hiện các dạng tấn công đã biết, hay các biến thể (thay đổi nhỏ) của các dạng tấn công đã biết. Không phát hiện được các dạng tấn công mới Hiệu quả trong việc phát hiện các dạng tấn công mới mà một hệ thống phát hiện dựa trên so khớp mẫu bỏ qua Hiệu quả trong việc phát hiện các dạng tấn công mới mà một hệ thống phát hiện dựa trên so khớp mẫu bỏ qua. Dễ cấu hình hơn do đòi hỏi ít hơn về thu thập dữ liệu, phân tích và cập nhật Khó cấu hình hơn vì đưa ra nhiều dữ liệu hơn, phải có được một khái niệm toàn diện về hành vi đã biết hay hành vi được mong đợi của hệ thống Khó cấu hình hơn vì đưa ra nhiều dữ liệu hơn, phải có được một khái niệm toàn diện về hành vi đã biết hay hành vi được mong đợi của hệ thống Đưa ra kết luận dựa vào phép so khớp mẫu Đưa ra kết luận dựa vào tương quan giữa vai trò người dùng và câu truy trong thực tế và trong bộ phân lớp Đưa ra kết luận dựa vào độ lệch giữa hành động thực tế và tập luật kết hợp của các hành vi bình thường Có thể kích hoạt một thông điệp cảnh báo nhờ một dấu hiệu chắc chắn, hoặc cung cấp dữ liệu hỗ trợ cho các dấu hiệu khác Có thể hỗ trợ việc tự sinh thông tin hệ thống một cách tự động nhưng cần có thời gian và dữ liệu thu thập được rõ ràng. Có thể hỗ trợ việc tự sinh thông tin hệ thống một cách tự động nhưng cần có thời gian và dữ liệu thu thập được rõ ràng. Việc phát hiện xâm nhập hiệu quả hay không phụ thuộc vào tập hợp các mẫu về các tấn công đã biết Việc phát hiện xâm nhập hiệu quả hay không phụ thuộc vào tập dữ liệu huấn luyện ban đầu (tập dữ liệu về hành vi bình thương) Việc phát hiện xâm nhập hiệu quả hay không phụ thuộc vào tập dữ liệu về hành vi bình thường và các giá trị độ tin cậy và độ hỗ trợ được thiết lập Từ bảng so sánh này, Luận văn chọn sử dụng kỹ thuật phát hiện xâm nhập cơ sở dữ liệu sử dụng phân lớp để xây dựng thực nghiệm.