« Home « Kết quả tìm kiếm

TẤN CÔNG SQL INJECTION


Tóm tắt Xem thử

- 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.
- 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 đó.
- 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.
- 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.
- 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.
- 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}.
- 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.
- 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).
- D: tập dữ liệu huấn luyện đã được chuẩn hóa dưới dạng x = (x1,x2,x3.
- Các thuộc tính độc lập điều kiện đôi một với nhau.
- 𝑃(𝑥𝑘 |𝐶𝑖 ) 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.
- 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.
- 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.
- 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.
- 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.
- Độ Log Trọng hỗ trợ kiểm toán số của các thuộc tính tính Khai phá chuỗi nhạy cảm về an toàn Chuỗi thường xuyên Sinh chuỗi Đọc - Ghi Các chuỗi Đọc - Ghi Sinh các luật phụ thuộc dữ liệu Tập luật cuối Hình 2.
- 2: Các thành phần trongcùng 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.
- 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 , 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.
- 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.
- Đị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 , đâ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.
- 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.
- 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à.
- Độ 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: (i) (ii.
- a5r,a2w,a4r> (iv) 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à 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.
- 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.
- 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à : 𝑛 × 𝑊𝑠 𝑆𝑢𝑝𝑝𝑜𝑟𝑡(𝑠.
- (2.5) 𝑁 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ố.
- 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.2: Ví dụ về các giao dịch cho thuật toán khai phá chuỗi Số Chuỗi truy cập các thứ tự thuộc tính 1 11r, 13w, 4r, 8r, 2r, 6r, 1r, 3r 2 7 r, 2 r, 7 r, 2 r, 3 r, 9 w 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, 2 r, 4 w 9 8r, 2r, 3r, 9w, 7r, 2r 10 3r, 9w, 6r, 1r, 3r, 3r, 9w, 1w Bảng 2.3: Lược đồ cơ sở dữ liệu ngân hàng Tên Tên cột (Các thuộc tính được mã về dạng số bảng nguyên) Custo Name (9), Customer_id (10), Address (4), mer Phone_no (1) Accou Account_id (1), Customer_id (3), Status (7), nt Open_dt (5), Banlance (8) Accou Account_type (11), Max_tran_per_month (13), nt_type Description (12) Bảng 2.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 Các thuộc tín Trọn nhạy cảm g số HS MS 5, 6 2 LS Bảng 2.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 Chuỗi thu được sử dụng cách tiếp cận cách tiếp cận không có có trọng số trọng số c.
- 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 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 bảng 2.5 tạo ra các chuỗi đọc sau.
- Để tạo ra các chuỗi ghi, đối với mỗi hoạt động ghi trong một chuỗi, thêm 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.
- Bảng 2.6 : Các chuỗi đọc và các chuỗi ghi Theo phương thức phi Theo phương thức có trọng số trọng số 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.
- .akr, ngụ ý rằng các thuộc tính a1 đến ak phải đọc để ghi thuộc tính aj.
- akw, ngụ ý rằng sau khi ghi thuộc tính aj, các thuộc tính a1, a2.
- 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.7: Các luật phụ thuộc đọc và ghi Phương pháp phi Phương pháp có trọng số trọng số 3r> 3r> 7r 8r 2r> 8r> 7w> 7w> 4w> 11r> 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.
- Đố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.
- 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.
- So sánh kỹ thuật phát hiện xâm nhập cơ sở dữ liệu Kỹ thuật so Kỹ thuật phân Kỹ thuật luật kết khớp mẫu lớp hợp Bao gồm : Bao gồm : Bao gồm.
- Cơ sở dữ liệu - Cơ sở dữ liệu - Cơ sở dữ liệu các các dấu hiệu tấn công các hành động thông hành động thông thường.
- Không phát hiện được các dạng tấn công mới Dễ cấu hình hơn Khó cấu hình hơn Khó cấu hình hơn do đòi hỏi ít hơn về thu vì đưa ra nhiều dữ liệu vì đưa ra nhiều dữ liệu thập dữ liệu, phân tích hơn, phải có được một hơn, phải có được một và cập nhật khái niệm toàn diện về khái niệm toàn diện về hành vi đã biết hay hành hành vi đã biết hay hành vi được mong đợi của vi được mong đợi của hệ hệ thống thống Đưa ra kết luận Đưa ra kết luận Đưa ra kết luận dựa vào phép so khớp dựa vào tương quan dựa vào độ lệch giữa mẫu giữa vai trò người dùng hành động thực tế và tập và câu truy trong thực tế luật kết hợp của các hành và trong bộ phân lớp vi bình thường Có thể kích hoạt Có thể hỗ trợ việc Có thể hỗ trợ việc một thông điệp cảnh báo tự sinh thông tin hệ tự sinh thông tin hệ thống nhờ một dấu hiệu chắc thống một cách tự động một cách tự động nhưng chắn, hoặc cung cấp dữ nhưng cần có thời gian cần có thời gian và dữ liệu hỗ trợ cho các dấu và dữ liệu thu thập được liệu thu thập được rõ hiệu khác rõ ràng.
- Việc phát hiện Việc phát hiện Việc phát hiện xâm xâm nhập hiệu quả hay xâm nhập hiệu quả hay nhập hiệu quả hay không không phụ thuộc vào tập không phụ thuộc vào phụ thuộc vào tập dữ liệu hợp các mẫu về các tấn tập dữ liệu huấn luyện về hành vi bình thường công đã biết ban đầu (tập dữ liệu về và các giá trị độ tin cậy hành vi bình thương) 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.