Tải bản đầy đủ (.doc) (24 trang)

Soft Computing và ứng dụng trong an ninh hệ thống thông tin

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (195.48 KB, 24 trang )

Đại học Quốc gia Hà nội
Trường Đại học Công nghệ
Soft Computing và ứng dụng
trong an ninh hệ thống thông tin
Giảng viên: PGS.TS Trịnh Nhật Tiến
Học viên thực hiện: Vũ Thị Bích Thảo
Hà nội, tháng 12 năm 2013
Mục lục
Chương 1. Soft computing 3
1.1. Tính toán mềm là gì? 3
1.2 Các lĩnh vực trong tính toán mềm 3
Chương 2. Ứng dụng của tính toán mềm 4
trong an toàn thông tin 4
2.1. Intrusion Detection 4
2.2 Các xu hướng trong phát hiện xâm nhập 6
2.2.1. Kỹ thuật công nghệ phần mềm 8
2.2.2. Mạng Neureal 9
2.3 Machine learning 10
Chương 3. SQL injection 15
3.1 Phát hiện tấn công SQL Injection 15
3.2 Một số phương pháp tiếp cận phát hiện SQL injection 17
3.2.1 Phương pháp tiếp cận dựa trên học để phát hiện tấn công SQL 17
3.2.2 Ứng dụng hồ sơ cơ sở dữ liệu để phát hiện tấn công SQL Injection 19
3.3 Xây dựng chương trình Demo phát hiện SQL Injection 21
Tại sao chúng ta vẫn cần công cụ khác để giúp chúng tôi ngăn chặn SQL Injection ?
22
Kết luận 23
Tài liệu tham khảo 24
Chương 1. Soft computing
1.1. Tính toán mềm là gì?
Tính toán mềm khác với tính toán thông thường, nó chịu được sự


thiếu chính xác, không chắc chắn, và xấp xỉ. Trong thực tế, các hình
mẫu cho tính toán mềm là tâm trí con người. Các nguyên tắc hướng dẫn
của tính toán mềm là: Khai thác khả năng chịu được sự thiếu chính xác,
không chắc chắn, và xấp xỉ đạt được dễ kiểm soát, mạnh mẽ và giải
pháp chi phí thấp. Ý tưởng cơ bản của tính toán mềm hiện tại có nhiều
ảnh hưởng từ các nghiên cứu trước đó, trong đó có bài báo của Zadeh
năm 1965 về tập mờ; bài báo năm 1973 về việc phân tích các hệ thống
phức tạp và quá trình ra quyết định; và báo cáo năm 1979 về lý thuyết
có khả năng và phân tích dữ liệu mềm. Tính toán neural và tính toán di
truyền trong tính toán mềm xuất hiện sau thời điểm đó.
1.2 Các lĩnh vực trong tính toán mềm
Tại thời điểm này, các thành phần chính của tính toán mềm (SC)
là logic mờ (FL), tính toán Neural (NC), tính toán Evolutionary (EC)
và học máy (ML) và xác suất lý luận (PR), lý thuyết hỗn loạn và các
phần của lý thuyết học. Điều quan trọng cần lưu ý là tính toán mềm
không phải là sự trộn lẫn. Thay vào đó, nó là một quan hệ đối tác trong
đó mỗi của các đối tác đóng góp một phương pháp khác nhau để giải
quyết các vấn đề trong phạm vi của nó. Trong quan điểm này, các
phương pháp thành phần chính trong SC là bổ sung hơn là cạnh tranh.
Chương 2. Ứng dụng của tính toán mềm
trong an toàn thông tin
Ở bài nghiên cứu này tôi tìm hiểu sâu hơn vào lĩnh vực cụ thể
Machine Learning trong tính toán mềm và ứng dụng của nó vào an toàn
thông tin. Ứng dụng các kỹ thuật học máy để bảo mật cơ sở dữ liệu là một
lĩnh vực mới nổi của nghiên cứu. Trong chương này, Tôi trình bày các cách
tiếp cận khác nhau sử dụng kỹ thuật máy học/khai thác dữ liệu để tăng
cường cơ chế bảo mật truyền thống của cơ sở dữ liệu. Có hai khu vực an
ninh cơ sở dữ liệu quan trọng trong đó những kỹ thuật đã tìm thấy các ứng
dụng, cụ thể là, phát hiện các cuộc tấn công SQL Injection và phát hiện bất
thường để bảo vệ chống lại các mối đe dọa nội bộ. Trước hết, tôi tìm hiểu về

Intrusion Detection (phát hiện xâm nhập)
2.1. Intrusion Detection
Mục đích của phạm vi phát hiện sự dùng sai máy tính là khám phá các
loại xâm phạm bảo mật: Bị lộ, xâm phạm toàn vẹn, từ chối phục vụ và truy
cập trái phép. Phần đầu tiên của chống xâm phạm của các quá trình hoạt
động truy cập chính thức: Có nghĩa là các loại bảo mật vật lý giới hạn truy
cập vào hệ thống dữ liệu.
Từ một vài mục giới hạn có hiệu lực của các loại đó (như những lỗi
của người, khó dàn xếp giữa những yêu cầu mâu thuẫn và thực thi chống lại
những điều khiển, không phát hiện được khả năng bị tấn công và dùng sai
quyền hợp pháp), loại thứ 2 của phạm vi bảo mật là duy trì và phân tích dấu
vết kiểm tra của hệ thống. Phát hiện xâm phạm được định nghĩa như nhận
biết xâm phạm bởi các cá nhân sử dụng hệ thống không có bản quyền
(‘crackers’) và những người có bản quyền nhưng lạm dụng các đặc quyền
của họ (‘insider threat’). Ví dụ của xâm phạm là không có quyền sửa đổi
các mục cho phép truy cập dữ liệu, không có quyền truy cập hoặc thay đổi
file của người sử dụng và thông tin, thay đổi system table, tạo tài khoản
không có quyền hoặc không có quyền sử dụng các tài khoản đang tồn tại.
Khả năng phát hiện việc dùng sai máy tính phụ thuộc vào mô hình
xâm phạm. Hiện nay, 2 kiểu của mô hình được tạo ra bởi ‘Hệ thống phát
hiện xâm phạm’ IDSs.
• Những mô hình phát hiện bất thường. Mô hình này cho phép thống kê
tiểu sử hành vi thông thường của người sử dụng so sánh với thông số
của phiên làm việc hiện thời của người sử dụng; khi significant được
định nghĩa là tập ngưỡng bởi mô hình đặc biệt hoặc bởi người sử dụng
thì độ lệch ‘significant’ (đáng kể) từ hành vi thông thường được báo
cáo tới người bảo mật.
• Mô hình phát hiện dùng trái phép, kiểu mô hình thứ 2 hỗ trợ so sánh
giữa tham số phiên làm việc của người sử dụng và công nghệ được sử
dụng bởi người tấn công xâm nhập hệ thống.

Nói chung, điều khiển trên hành vi của người sử dụng trên hệ thống bị
chặn bằng cách theo dõi các yêu cầu được thực thi bởi người sử dụng
và lưu lại dấu vết phù hợp của chúng (kiểm tra). Những phân tích này
có mục đích phát hiện có tập yêu cầu thực thi được thực hiện bởi
người sử dụng hoặc nhóm người sử dụng có thể được coi là khả nghi
không?
Điều khiển kiểm tra trong hệ thống kiểm tra truyền thống có hạn chế
rất phức tạp và được thực thi sau. Đánh giá thông thường của số lượng lớn
các dữ liệu kiểm tra để đánh giá giới hạn khả năng làm việc của phương
pháp tiếp cận và dẫn đầu những điều khiển đã thực hiện từ time to time.
Kéo theo khả năng tấn công trên hệ thống không phát hiện thường xuyên. Vì
thế, cần phải có công cụ chặn và hệ thống tự động hoặc bán tự động, kiểm
tra dữ liệu audit và cố gắng phát hiện xâm phạm, có khả năng trên on-line và
thời gian thực.
Số lượng hệ thống phát hiện xâm phạm dựa trên phân tích dấu vết
audit được đưa ra bởi hệ điều hành chính. Ví dụ là SRI’s Hệ chuyên gia phát
hiện xâm phạm (IDES),…những hệ thống này sử dụng công nghệ như hàm
đa thức trọng lượng và đánh giá để phát hiện độ lệch từ hành vi thông
thường.
Với vấn đề quan trọng của phát hiện xâm phạm là cần đáp ứng thời
gian thực, số lượng lớn dữ liệu được truy cập, thiếu dữ liệu tấn công sẵn có
để phân tích và số lượng lớn tham số có thể kết hợp với dữ liệu kiểm tra. Vì
thế phá hiện xâm phạm có thể mượn giải pháp từ các lĩnh vực khác như trí
tuệ nhân tạo, thống kê, lý thuyết thông tin hay học máy. Những giải pháp
này cần sửa lại cho phù hợp với IDS và hệ điều hành, và thực tế của những
công nghệ này trên ID (phát hiện xâm phạm) vẫn chưa được hiểu đầy đủ.
2.2 Các xu hướng trong phát hiện xâm nhập
Theo quan sát trong Laird (1992), kỹ thuật ML có thể được sử dụng
trong các ID để quan sát một hệ thống nhất định và 'học' để mô tả hoạt động
"bình thường" và do đó phát hiện các điều kiện bất thường. Ứng dụng các kỹ

thuật ML đã được đề xuất trong một số nghiên cứu và sử dụng, ví dụ, trong
hệ thống Wisdom & Sense. Đặc biệt, bốn lĩnh vực của ML dường như có
tiềm năng lớn nhất cho IDS:
• Khái niệm học tập: Đây là nhiệm vụ đào tạo một hệ thống để phân
loại các yếu tố thành các loại, được cố định bởi các giáo viên, bằng cách
xem xét các thuộc tính phần tử. Một nhiệm vụ phân loại trong lĩnh vực phát
hiện sử dụng sai là xem trạng thái của một phiên làm việc nhất định là xâm
nhập hoặc bình thường hay không, sử dụng một loạt các thuộc tính có sẵn từ
các dấu vết. Việc tìm kiếm các tính năng liên quan giữa vô số các thuộc tính
không liên quan là vấn đề lớn trong học tập khái niệm. Tuy nhiên, khái niệm
cụ thể, chẳng hạn như quyết định có một người sử dụng là một kẻ giả mạo
một loại hình cụ thể, là một vấn đề khả thi hơn.
• Clustering. Bao gồm các phân vùng một tập hợp các yếu tố trong
nhóm các yếu tố liên quan bằng cách sử dụng một tiêu chí " tương tự " nào
đó. Clustering cũng bao gồm các nhiệm vụ xây dựng các loại quy tắc phân
loại nhưng theo một cách khác nhau từ khái niệm học tập. Với IDS, phân
loại người sử dụng, phiên, yêu cầu truy cập tài nguyên vào bộ các yếu tố
liên quan là một ứng dụng có thể.
• Học dự đoán. Một mô hình thời gian của dữ liệu được xây dựng đưa
ra khả năng để tìm học về các sự kiện xâm nhập từ dữ liệu thời gian và trình
tự của các sự kiện rời rạc. Phương pháp này chủ yếu dựa trên một mô hình
Markov chuỗi thời gian, thường kết hợp bổ sung kiến thức về các ứng dụng
cụ thể. Các bit ít hơn (tỉ lệ nén)được yêu cầu để đại diện cho một chuỗi các
sự kiện, mạnh hơn là các mô hình dự đoán. Trong việc phát hiện sử dụng sai,
một mô hình dự đoán có thể được học và được đặc trưng bởi số lượng tỉ lệ
nén của nó hoặc tỷ lệ dự đoán trung bình: Vì thế, nếu một chuỗi các sự kiện
quan sát chống nén bởi một số lượng đáng kể ngoài các biện pháp cố định,
trình tự đó có thể là bất thường. Nén cũng rất hữu ích trong quá trình truyền
dữ liệu kiểm tra trên các kênh không an toàn
• Trích chọn các đặc trưng. Vấn đề trích chọn đặc trưng (phân biệt có

liên quan từ các đặc trưng không thích hợp, và kết hợp các đặc trưng liên
quan vào một hàm xác định một sự kiện, ví dụ, một sự xâm nhập)là một vấn
đề của ML giới hạn tính hữu ích của kỹ thuật tiêu chuẩn cho việc học khái
niệm và phân nhóm. Một số phương pháp tiếp cận mới đầy hứa hẹn cung
cấp thuật toán cải thiện hiệu quả của các kỹ thuật trích chọn tính năng (thuật
toán Littlestone, thuật toán Pagallo và Matheus, kỹ thuật áp dụng giải thuật
di truyền để việc học các đặc trưng phân lớp hiệu quả)
Cả hai khái niệm học và phân nhóm, mặc dù bị hạn chế bởi tính phức
tạp của chúng, đang có sẵn như các công nghệ hiện có. Đưa ra thách thức
đối với ba loại là một phần liên quan đến phức tạp, một phần để các khả
năng lựa chọn tiêu chí phù hợp với môi trường ứng dụng.
2.2.1. Kỹ thuật công nghệ phần mềm
Nhiều lỗ hổng hệ thống cho phép những kẻ xâm nhập có hoặc mở
rộng quyền truy cập có thể được xem như là vấn đề trong xác nhận phần
mềm có sự kiểm tra. Hơn nữa, sai sót hoạt động/quản trị làm cho ngay cả
những hệ thống được thiết kế tốt nhất cũng dễ bị tấn công nếu hoạt động
không đúng cách. Vì vậy, kỹ thuật xây dựng và quản lý phần mềm tốt hơn,
bằng cách cho phép tránh và phát hiện các lỗ hổng có thể bị khai thác bởi
những kẻ xâm nhập, là một phương tiện bảo vệ chống lại các cuộc tấn công
xâm nhập. Trong Spafford (1992) ba loại lỗ hổng phơi bày một hệ thống để
xâm nhập tiềm năng được xác định:
• Thiết kế sai sót. Những lấy được, hoặc từ một giải thích sai lầm về
các yêu cầu hoặc một implemetations sai lầm của đặc điểm kỹ thuật. Xác
nhận phần mềm và kiểm tra kỹ thuật là phương pháp thích hợp.
Lỗi thiết kế phổ biến bao gồm thất bại để xác nhận số lượng, quy mô, địa chỉ
của các đối số được cung cấp cho các cuộc gọi đặc quyền, xử lý bất cẩn của
dữ liệu nhạy cảm trong bộ nhớ chia sẻ/đống/thư mục, và không báo cáo các
điều kiện bất thường và các lỗi và để cung cấp phục hồi lỗi an toàn. Các
cuộc tấn công chống lại những vấn đề này có thể được cụ thể (khi một lớp
học của các hệ thống được biết đến có chứa một lỗ hổng nhất định) của di

truyền (ai đó cố gắng để khám phá một điểm yếu nếu có). Trong cả hai
trường hợp, giám sát giúp để chống lại các cuộc tấn công (ví dụ, theo dõi
mô hình hành vi như gọi lặp đi lặp lại của hệ thống các cuộc gọi với một sai
số của các đối số)
• Lỗi. Lỗi hoặc lỗi xuất phát từ thế hệ mã mà không thực hiện các chi
tiết kỹ thuật. Nhiều lỗ hổng bảo mật là kết quả của lỗi: lỗi điều kiện, những
sai lầm đồng bộ hóa, chấm dứt bất thường của thói quen đặc quyền, và như
vậy. Vì nó thường không thể nhà nước khi gỡ lỗi và kiểm tra đầy đủ, hệ
thống phần mềm được tiếp xúc với giám sát có thể giúp trong việc phát hiện
các cuộc tấn công.
• Hoạt động/hành chính sai sót. Thiết lập các thông số để phù hợp các
giá trị không phù hợp có thể làm giảm sự an toàn của hệ thống. Vấn đề
thường gặp là sự lựa chọn tốt của mặc định cung cấp bởi các nhà cung cấp,
cấu hình phần mềm sai cho phần cứng được sử dụng, paiches một nâng cấp,
hệ thống từ nhà cung cấp diffent đưa vào làm việc với nhau, hoặc các hệ
thống administerd với nhiều hơn một chính sách bảo mật. Hầu hết các sai sót
cụ thể, và thường được biết đến, vì vậy, những kẻ xâm nhập cố gắng khai
thác những lỗ hổng có thể được xác định bằng cách giám sát các lĩnh vực
chương trình mà những điểm yếu có mặt.
2.2.2. Mạng Neureal
Kể từ khi mạng lưới thần kinh hỗ trợ khả năng nhận dạng mẫu linh
hoạt, chúng có thể được sử dụng để phát hiện xâm nhập và đánh giá thiệt hại
loại bỏ. Những lợi thế xuất phát từ mô hình thích ứng của các hành vi của
người sử dụng và hệ thống, và từ khả năng để đối phó với các cuộc tấn công
không rõ (virus hoặc xâm nhập) . Mạng lưới thần kinh được đề xuất cho IDS
để xây dựng một màn hình trạng thái front-end có thể nhận ra virus chưa biết
mô hình hành vi của một người sử dụng độc hại. Trong Fox và cộng sự
(1990) mạng lưới thần kinh được đề xuất cho IDS cho hai người dùng tiềm
năng: học mẫu virus cụ thể và có một số hành động nếu vi rút xuất hiện, và
để thích nghi mô hình của người sử dụng và trạng thái bình thường của hệ

thống một mất một hành động khi bất thường ar quan sát. Fox và cộng tại
(1990) mô tả một kiến trúc nguyên mẫu mà các mạng thần kinh của " Tự Tổ
chức Tính năng Bản đồ ' được sử dụng như một màn hình nền thời gian thực
để thích nghi mô hình bình thường, khi độ lệch được ghi nhận, một nhà điều
hành được thông báo, những người có thể kích hoạt một hệ thống chuyên gia
để thực hiện phân tích sâu. Mạng có thể được cấu hình để thông báo cho các
nhà điều hành, đăng nhập một báo cáo, hoặc có biện pháp quyết liệt hơn.
Mục đích của nó là để tìm hiểu các hoạt động bình thường một thích ứng với
thay đổi dần dần (thay đổi nhanh chóng được đánh bắt bởi các hệ thống
chuyên gia, trong đó bao gồm các tính năng lấy từ các hệ thống khác, chủ
yếu là IDE một MIDAS) . Một hệ thống nguyên mẫu đã được phát triển cho
một mạng lưới bố trí trong một vector 12x12 phát triển trên một máy
Symbolics, trên một máy VAX - như thế nào. Mô phỏng thống kê thích hợp
đã được phát triển cho mỗi 11 thông số xác định (sử dụng CPU, hoạt động
phân trang, hoạt động bưu phẩm, truy cập đĩa, vv. Có những hạn chế trong
mạng lưới là chính nó tùy thuộc vào các cuộc tấn công tinh tế, và trong việc
sử dụng hệ thống trong môi trường mạng.
2.3 Machine learning
Học máy (ML) kỹ thuật có truyền thống tìm thấy ứng dụng trong lĩnh
vực bảo mật máy tính để phát hiện các bất thường trong hoạt động của hệ
thống thông tin. Ý tưởng cơ bản là đơn giản và đã được áp dụng cho các loại
khác nhau của hệ thống thông tin như mạng, hệ điều hành, phần mềm ứng
dụng, vv. Hoạt động của một cơ chế phát hiện bất thường – anomaly
detection (AD) sử dụng kỹ thuật ML thường được chia thành hai giai đoạn,
một giai đoạn đào tạo và một giai đoạn phát hiện. Trong giai đoạn đào tạo,
cơ chế AD học hành vi bình thường của hệ thống thông tin. Kết quả của giai
đoạn đào tạo được thiết lập các cấu hình đặc trưng cho hành vi hệ thống. Các
cấu hình được sử dụng để hợp lý chia các hành vi hệ thống một cách hỗ trợ
phát hiện các bất thường trong giai đoạn phát hiện. Ví dụ, hành vi của một
hệ điều hành có thể được mô hình hóa như một bộ hồ sơ trong đó mỗi hồ sơ

có liên quan đến các hành động của một người sử dụng. Mô hình như vậy
sau đó có thể được sử dụng để phát hiện các hành động sử dụng bất thường.
Hơn nữa, nếu số lượng người dùng lớn và nhiều người sử dụng hiện hành vi
tương tự, một hồ sơ duy nhất có thể được liên kết với một nhóm người dùng
(một vai trò, chẳng hạn như)mà hiện hành vi tương tự. Thông tin trong hồ sơ
cá nhân học phụ thuộc vào các sự kiện hệ thống theo quan sát, loại thông tin
thu thập được từ những sự kiện này, và trên các thuật toán học được sử
dụng. Sau khi hồ sơ được tạo ra, cơ chế AD được vận hành trong một chế độ
phát hiện. Trong chế độ phát hiện, một sự kiện mới theo quan sát được kiểm
tra đối với các hồ sơ học kinh nghiệm cho tập thể dục. Nhiều tiêu chí khác
nhau như kiểm tra thống kê độ lệch, kiểm tra phát hiện outlier, xác suất hậu,
vv có thể được sử dụng để xác định sự phù hợp của một sự kiện vào hồ sơ
học. Nếu sự kiện không phù hợp với hồ sơ (theo một số ngưỡng) , nó được
gắn cờ tắt như bất thường. Nếu không, các thông tin từ sự kiện này là một
trong hai sáp nhập vào các cấu hình hay bỏ đi. Một hệ thống AD có lợi thế
hơn một hệ thống dựa trên chữ ký ở chỗ nó có thể phát hiện có khả năng tấn
công mới, trong khi một hệ thống dựa trên chữ ký chỉ có thể đi xa như
những cuộc tấn công mà chữ ký đã được tạo ra. Nhược điểm của một hệ
thống AD là số lần cảnh báo sai nó có thể tăng nếu hồ sơ học trong giai đoạn
đào tạo không phù hợp với những hành vi bình thường tốt.
Trong chương này, tôi trình bày kỹ thuật máy học cho phát hiện bất
thường trong một hệ thống quản lý cơ sở dữ liệu (DBMS). Trước tiên tôi
thúc đẩy các vấn đề phát hiện bất thường trong bối cảnh của một DBMS. Dữ
liệu đại diện cho hôm nay là một tài sản quan trọng cho các công ty và tổ
chức. Một số các dữ liệu có giá trị hàng triệu đô la và các tổ chức rất cẩn
thận trong việc kiểm soát truy cập vào các dữ liệu, đối với cả người dùng nội
bộ với, trong tổ chức, và người sử dụng bên ngoài, bên ngoài tổ chức. Bảo
mật dữ liệu cũng rất quan trọng khi giải quyết các vấn đề liên quan đến sự
riêng tư của dữ liệu liên quan đến cá nhân, các công ty và tổ chức quản lý dữ
liệu như vậy cần phải cung cấp bảo lãnh mạnh về tính bảo mật của những dữ

liệu này để tuân thủ các quy định và chính sách pháp luật [2]. Tổng thể, bảo
mật dữ liệu có vai trò trung tâm trong bối cảnh lớn hơn của hệ thống thông
tin an ninh. Vì vậy, sự phát triển của DBMS với an ninh đảm bảo cao (trong
tất cả các hương vị của nó) là một vấn đề nghiên cứu trung ương. Sự phát
triển của DBMS như vậy đòi hỏi một phiên bản của kiến trúc và kỹ thuật
thông qua DBMS truyền thống. Một thành phần quan trọng của an ninh thế
hệ mới nhận thức DBMS này là một cơ chế phát hiện bất thường.
Mặc dù một DBMS cung cấp cơ chế kiểm soát truy cập, các cơ chế
này một mình là không đủ để đảm bảo an ninh dữ liệu. Họ cần phải được bổ
sung bằng các cơ chế phù hợp AD; việc sử dụng các cơ chế như vậy là rất
quan trọng để bảo vệ chống lại các cuộc tấn công mạo danh và chống lại các
mã độc nhúng trong chương trình ứng dụng. Ngoài ra cơ chế AD giúp trong
việc giải quyết vấn đề của các mối đe dọa nội bộ, một vấn đề ngày càng
quan trọng trong các tổ chức ngày nay mà không có nhiều giải pháp đã được
đưa ra. Tuy nhiên, bất chấp thực tế là xây dựng hệ thống AD cho các mạng
và hệ điều hành đã được diện tích ac cực nghiên cứu, vài hệ thống AD tồn
tại được thiết kế đặc biệt để một DBMS. Có hai lý do chính thúc đẩy sự cần
thiết của hệ thống AD cho một DBMS. Đầu tiên là hành động được coi là
độc hại cho một ứng dụng cơ sở dữ liệu không nhất thiết phải độc hại cho
các mạng hoặc hệ điều hành, do đó hệ thống AD được thiết kế đặc biệt cho
sau này sẽ không có hiệu lực bảo vệ cơ sở dữ liệu. Động lực thứ hai, và phù
hợp hơn, đó là hệ thống AD được thiết kế cho các mạng và hệ điều hành
không đủ để bảo vệ cơ sở dữ liệu chống lại các mối đe dọa nội bộ, mà là một
vấn đề quan trọng khi giao dịch với sự riêng tư. Những mối đe dọa là khó
khăn hơn nhiều để chống lại, vì họ là với các đối tượng là người sử dụng
hợp pháp của hệ thống, và do đó có thể có quyền truy cập dữ liệu và tài
nguyên.
Tiếp theo tôi trình bày một phân loại chung các mối đe dọa đến cơ sở
dữ liệu và xác định các mối đe dọa có thể được giải quyết bằng các kỹ thuật
phát hiện bất thường. Các mối đe dọa có thể được phân loại như sau:

1. Độ cao đặc quyền. Đặc quyền nâng cao có thể thu được bởi một kẻ
tấn công bằng: Khai thác lỗ hổng phần mềm, các lỗ hổng trong mã máy chủ
cơ sở dữ liệu có thể được khai thác để khởi động chương trình tùy ý;
SQLInjection, các ứng dụng web và cơ sở dữ liệu được lưu trữ thủ tục mà
không vệ sinh đầu vào người dùng có thể khai thác để đạt được đặc quyền
nâng cao.
2. Lạm dụng đặc quyền. Đây là kịch bản mối đe dọa nội bộ. Trong
trường hợp này, người sử dụng độc hại sử dụng/đặc quyền của mình để thực
hiện các hành động không phù hợp với hành vi mong đợi của ngày-to- ngày.
Để bảo vệ chống lại độ cao đặc quyền do lỗ hổng phần mềm, các
DBMS phải được vá thường xuyên [4]. Các kỹ thuật phát hiện bất thường
thảo luận trong chương này giải quyết vấn đề của các cuộc tấn công SQL
injection và các hành vi lạm dụng đặc quyền. Như là trường hợp với một cơ
chế AD điển hình, mục tiêu của tất cả các chương trình thảo luận trong
chương này là để xây dựng hồ sơ đại diện cho hành vi bình thường của cơ sở
dữ liệu các ứng dụng người dùng/cơ sở dữ liệu. Bất kỳ sai lệch đáng kể từ
các cấu hình bình thường sau đó được gọi là hành vi nguy hiểm. Trong nội
dung sau, tôi đưa ra một số ví dụ về các hành động bất thường có thể được
phát hiện bởi người sử dụng và các ứng dụng profiling tương tác với một
DBMS:
1. Người sử dụng U đã đọc truy cập vào bảng T. Thông thường trên
một cơ sở hàng ngày, U truy cập chỉ là một phần của hồ sơ trong T. Một
ngày, U đưa ra một truy vấn để đọc tất cả các dữ liệu từ tất cả các cột của T.
2. Một DBA đăng nhập từ một địa chỉ IP mà từ đó anh/cô ấy chưa bao
giờ đăng nhập trước.
3. Một vấn đề DBA sao lưu chọn truy vấn trên các bảng dữ liệu ứng
dụng.
4. Một ứng dụng cơ sở dữ liệu các vấn đề truy vấn bị thay đổi dẫn đến
các lỗi cơ sở dữ liệu một cách thường xuyên. Điều này có thể là một dấu
hiệu của giai đoạn thu thập thông tin của một cuộc tấn công của một nhân

viên viết mã độc hại SQL injection đọc tất cả số thẻ tín dụng từ một bảng cơ
sở dữ liệu sản xuất và gửi những dữ liệu nhạy cảm trên cho một cơ sở dữ
liệu phát triển từ xa.
Chương 3. SQL injection
3.1 Phát hiện tấn công SQL Injection
Với sự tiến bộ nhanh chóng của công nghệ thông tin trong thời gian
qua, số lượng dữ liệu được lưu trữ trong cơ sở dữ liệu của một tổ chức đã
tăng lên đa dạng. Rất nhiều các dữ liệu nhạy cảm, và quan trọng cho đến
ngày của một tổ chức để hoạt động ngày. Vì vậy, các nhà cung cấp cơ sở dữ
liệu truyền thống phấn đấu tăng cường các cơ chế an ninh xung quanh các
cơ sở dữ liệu. Một cách tiếp cận như vậy là để cài đặt các cơ sở dữ liệu đằng
sau một bức tường lửa nội bộ, và hạn chế truy cập chúng thông qua chỉ
chương trình ứng dụng. Để truy cập vào một cơ sở dữ liệu, người dùng kết
nối với một ứng dụng như vậy, và các ứng dụng trình truy vấn cơ sở dữ liệu
thay mặt cho người sử dụng. Các mối đe dọa cho một cơ sở dữ liệu phát sinh
khi các chương trình ứng dụng không hoạt động như dự định. Hành vi như
vậy thường có thể phụ thuộc vào đầu vào được cung cấp bởi người sử dụng,
như là trường hợp của các cuộc tấn công nổi tiếng SQL Injection. Như một
ví dụ về một cuộc tấn công như vậy, hãy xem xét kịch bản sau đây của một
chương trình ứng dụng cơ sở dữ liệu mà cố gắng để xác thực người dùng.
Ứng dụng hiện cho người dùng một hình thức xác thực và người dùng gửi
tên đăng nhập và mật khẩu của mình vào ứng dụng. Ứng dụng, ở phía máy
chủ, thu thập thông tin này, tạo ra một truy vấn SQL và nộp cho cơ sở dữ
liệu của tổ chức để có được kết quả xác minh. Xem xét các ứng dụng đoạn
mã sau:
Sqlquery = "SELECT Tên Và mật khẩu = ' " &
strUsername & " 'AND Password = ' " & strPassword & "'"
Trong đoạn mã này, các ứng dụng nhận đầu vào được cung cấp bởi
người dùng thông qua một hình thức, nhúng trực tiếp vào một truy vấn SQL
và nộp cho cơ sở dữ liệu. Mọi thứ đều tốt miễn là người dùng cung cấp chỉ

tên người dùng và mật khẩu. Tuy nhiên, giả sử rằng kẻ tấn công gửi một tên
đăng nhập và mật khẩu mà trông giống như sau:
Đăng nhập: xyz
Mật khẩu: abc OR ' ' = '
Đầu vào như vậy sẽ dẫn đến việc truy vấn SQL sau đây:
CHỌN Tên Và mật khẩu = 'xyz' và Mật khẩu = 'abc ' OR ' ' = ' '
Thay vì so sánh các dữ liệu người dùng cung cấp với mục trong bảng
người sử dụng, truy vấn so sánh '' (chuỗi rỗng) để '' (chuỗi rỗng) . Điều này
sẽ luôn luôn trả về một kết quả đúng, và những kẻ tấn công sau đó sẽ được
đăng nhập như là người dùng đầu tiên được trả về bởi truy vấn. Ở trên là
một ví dụ cổ điển của một cuộc tấn công SQL Injection.
Về cơ bản, SQL Injection là một cuộc tấn công khai thác các ứng
dụng xây dựng các câu lệnh SQL từ người dùng cung cấp đầu vào. Khi một
ứng dụng không đúng cách xác nhận người dùng cung cấp đầu vào, nó có
thể cho một kẻ tấn công để thay đổi xây dựng các câu lệnh SQL phụ trợ.
Một số kịch bản có thể đe dọa phát sinh do các truy vấn SQL thay đổi. Như
tôi đã thấy từ ví dụ trên, SQL Injection có thể cho phép kẻ tấn công có thể
truy cập trái phép vào cơ sở dữ liệu. Hơn nữa, các truy vấn SQL sửa đổi
được thực hiện với những đặc quyền của chương trình ứng dụng. Một kẻ tấn
công như vậy có thể lợi dụng những đặc quyền của chương trình một cách
không cố ý các nhà thiết kế chương trình ứng dụng.
3.2 Một số phương pháp tiếp cận phát hiện SQL injection
Hiện nay có hai phương pháp tiếp cận phát hiện SQL injection:
phương pháp tiếp cận dựa trên học, và phương pháp dựa trên hồ sơ cơ sở dữ
liệu.
3.2.1 Phương pháp tiếp cận dựa trên học để phát hiện tấn công SQL
Valeur et al. đã đề xuất một hệ thống phát hiện xâm nhập có khả năng
phát hiện một loạt các cuộc tấn công SQL injection. Cách tiếp cận của họ sử
dụng nhiều mô hình thống kê để xây dựng hồ sơ truy cập bình thường để cơ
sở dữ liệu. Như với hầu hết các kỹ thuật phát hiện bất thường học tập dựa

trên hệ thống đòi hỏi một giai đoạn đào tạo trước khi phát hiện. Giai đoạn
đào tạo chính nó được chia thành hai nửa: Trong nửa đầu, dữ liệu làm thức
ăn cho các mô hình được sử dụng để xác định các thông số mô hình. Trong
giai đoạn này, các mô hình tìm hiểu những gì các truy vấn thông thường như
thế nào. Phần thứ hai của giai đoạn đào tạo là giai đoạn học tập ngưỡng.
Trong giai đoạn này, hệ thống, thay vì cập nhật các thông số mô hình, tính
toán một số điểm bất thường dựa trên việc các truy vấn phù hợp với mô hình
đào tạo. Cho mỗi mô hình, tối đa bất thường số điểm quan sát trong giai
đoạn này được lưu giữ và được sử dụng như một ngưỡng du dương gắn cờ
yêu cầu bất thường trong giai đoạn phát hiện.
Hệ thống có chứa một phân tích cú pháp mà các quá trình mỗi truy
vấn SQL đầu vào và trả về một chuỗi các thẻ. Mỗi thẻ có một lá cờ cho biết
xem mã thông báo là một hằng số hay không. Hằng số là những yếu tố duy
nhất mà nên có một người sử dụng cung cấp đầu vào (có thể là độc hại).
Mỗi liên tục cũng có một kiểu dữ liệu gắn liền với nó rằng quyết định mô
hình thống kê được áp dụng cho nó. Do đó một vector đặc trưng được tạo ra
bằng cách lấy tất cả các thẻ đánh dấu là hằng số. Một hồ sơ sau đó là một bộ
sưu tập các mô hình thống kê và lập bản đồ đó ra lệnh mà tính năng này
được kết hợp với các mô hình. Tên của kịch bản tạo ra các truy vấn và truy
vấn bộ xương được sử dụng như là chìa khóa để tìm kiếm một hồ sơ. Bây
giờ tôi mô tả ngắn gọn trung tâm của chương trình này, đó là, mô hình thống
kê được sử dụng để mô tả các vector. Mô tả chi tiết của các mô hình thống
kê có thể được tìm thấy trong
1. Độ dài chuỗi. Chiều dài mô hình chuỗi xấp xỉ phân phối của chiều
dài của chuỗi giá trị trong vector. Tính năng mà đi chệch khỏi các giá trị
chiều dài chuỗi bình thường quan sát được mô tả như là bất thường. Phát
hiện sai lệch được dựa trên sự bất bình đẳng Chebyshev.
2. Phân phối ký tự chuỗi. Các nhân vật mô hình phân phối chuỗi nắm
bắt được khái niệm về một chuỗi liên tục dấu hiệu bình thường bằng cách
nhìn vào mô hình phân phối nhân vật của mình. Cho mỗi chuỗi tham số

quan sát, phân phối nhân vật của mình được lưu trữ. Sự phân bố nhân vật lý
tưởng hóa (ICD) sau đó được xấp xỉ bằng cách tính toán trung bình của tất
cả các bản phân phối nhân vật được lưu trữ. Trong giai đoạn phát hiện, đưa
ra một ICD, xác suất để phân phối tính cách của một cuộc tranh luận được
đưa ra là một mẫu thực tế rút ra từ ICD của nó được xác định bằng cách sử
dụng một bài kiểm tra thống kê.
3. Suy luận kết cấu chuỗi. Mục tiêu của mô hình này là để tạo ra một
ngữ pháp có khả năng sản xuất ít nhất là tất cả các giá trị chuỗi quan sát
trong giai đoạn đào tạo (đối với một tính năng cụ thể). Cách tiếp cận được
sử dụng cho các thủ tục cấu trúc thế hệ mô hình suy luận là khái quát ngữ
pháp càng nhiều càng tốt nhưng để dừng lại trước khi thông tin cấu trúc quá
nhiều sẽ bị mất. Tiêu chí dừng lại tổng quát là specifiedwith sự giúp đỡ của
các mô hình Markov và xác suất Bayes. Trong ngữ pháp kết quả. Nếu
không, nó được gắn cờ là bất thường.
Mô hình thống kê khác được sử dụng trong công việc này là chuỗi
Tiền tố và hậu tố. Một lợi thế của chương trình này là nó sử dụng nhiều mô
hình để mô tả người dùng. Như vậy, tính nhạy cảm của cơ chế phát hiện để
bắt chước các cuộc tấn công là giảm. Một cuộc tấn công bắt chước là một
trong đó một kẻ tấn công xây dựng đầu vào độc hại trong khi bắt chước hành
vi của các mô hình được sử dụng bởi các cơ chế phát hiện. Sử dụng nhiều
mô hình là một cách để bảo vệ chống lại cơ chế phát hiện các cuộc tấn công
như vậy. Một mối quan tâm lớn với Đề án là thực hiện và lưu trữ trên không
của nó, vì nhiều mô hình thống kê được duy trì cho mỗi cặp truy vấn mẫu và
ứng dụng. trong các ứng dụng với số lượng lớn các truy vấn mẫu riêng biệt,
chi phí do các cơ chế phát hiện có thể là rất lớn.
3.2.2 Ứng dụng hồ sơ cơ sở dữ liệu để phát hiện tấn công SQL
Injection
Bertino et al. đã đề xuất một khuôn khổ dựa trên kỹ thuật phát hiện
bất thường để phát hiện hành vi nguy hiểm của chương trình ứng dụng cơ sở
dữ liệu. Cách tiếp cận này là như sau. Hồ sơ của các chương trình ứng dụng

được tạo ra có thể đại diện cho hành vi bình thường của họ về các truy vấn
SQL do các chương trình cơ sở dữ liệu. Dấu vết truy vấn từ các bản ghi cơ
sở dữ liệu được sử dụng cho điều này mục đích. Một mô hình phát hiện bất
thường dựa trên kỹ thuật khai thác dữ liệu sau đó được sử dụng để phát hiện
hành vi sai lệch từ bình thường. Các hành vi bất thường được tập trung vào
trong công việc này là hành vi liên quan đến các cuộc tấn công SQL
Injection. Các tác giả cho rằng SQL injection, theo truyền thống, đã được coi
là một lỗ hổng mức độ ứng dụng và các giải pháp đã được đề xuất ở mức độ
đó.
Tuy nhiên, mặc dù cơ chế của một cuộc tấn công SQL Injection là
thông qua một ứng dụng, tài nguyên rất an toàn vì đang bị đe dọa trực tiếp là
cơ sở dữ liệu. Do đó, họ đề xuất một giải pháp để tăng cường cơ chế bảo mật
truyền thống của một DBMS để bảo vệ chống lại các cuộc tấn công như vậy.
Ý tưởng cơ bản thúc đẩy cách tiếp cận của họ là SQL injection có thể được
mô hình hóa như một sự bất thường vấn đề phát hiện. Trong một ứng dụng
cơ sở dữ liệu điển hình, đầu vào được cung cấp bởi người sử dụng được sử
dụng để xây dựng các điều khoản mà các truy vấn vào thời gian chạy. Một
cuộc tấn công SQL injection thường liên quan đến sửa đổi độc hại để đầu
vào này bằng cách bổ sung thêm các điều khoản bổ sung hoặc bằng cách
thay đổi cấu trúc của một mệnh đề hiện tại.
Các khoản dự của các truy vấn, tuy nhiên, không được sửa đổi và vẫn
tĩnh bởi vì nó không được xây dựng vào thời gian chạy. Thúc đẩy bởi sự
quan sát này, họ sử dụng các kỹ thuật khai thác luật kết hợp để lấy được quy
tắc đại diện cho các mối quan hệ liên kết giữa các thuộc tính truy vấn khác
nhau. Hai bộ quy tắc đặc thù với nhiệm vụ có nguồn gốc. Tập đầu tiên bao
gồm các quy tắc ràng buộc các thuộc tính chiếu của các truy vấn đến các
thuộc tính được sử dụng trong mệnh đề where.
Tập thứ hai của quy tắc đại diện cho mối quan hệ giữa các thuộc tính
trong mệnh đề where của truy vấn. Các thuộc tính bao gồm các hằng số
trong mệnh đề ở đâu. Hai bộ quy tắc với nhau tạo thành hồ sơ cá nhân của

một ứng dụng. Để phát hiện một truy vấn tấn công, nó được kiểm tra nếu
mối quan hệ giữa các truy vấn (dưới xem xét)thuộc tính có thể được suy ra
bởi các bộ quy tắc trong hồ sơ cá nhân ứng dụng. Nếu không, hệ thống cờ
truy vấn như một truy vấn SQL injection.
Có một số khác biệt cơ bản giữa hai chương trình. Sự khác biệt đầu
tiên là tầng mà ở đó các hệ thống hoạt động. Trong đề án của Bertino et al,
cơ chế phát hiện được hoạt động ở tầng cơ sở dữ liệu không có móc ở phía
ứng dụng. Điều này thiết lập là khó khăn hơn để bảo vệ chống lại như không
kiểm soát các ứng dụng được giả định. Nhưng tôi tin rằng nó cũng là một
kịch bản thực tế trong nhiều thực tế cài đặt DBMS. Mặt khác Valeur et al.
thiết lập móc ở phía ứng dụng cho phép họ nắm bắt đầu vào người sử dụng
các chương trình ứng dụng. Sự khác biệt thứ hai là cách một cuộc tấn công
SQL Injection được mô hình hóa. Valeur et al. tìm hiểu mô hình đặc trưng
cho đầu vào người sử dụng, trong khi Bertino et. al., tìm hiểu cấu trúc truy
vấn chính nó và lưu trữ các cấu trúc học như luật kết hợp. Cả hai phương án
có thể bị phát hiện trên cao trong trường hợp số lượng lớn các truy vấn mẫu
riêng biệt. Đối với trước đây, điều này sẽ dẫn đến một số lượng lớn các mô
hình thống kê để duy trì, trong khi cho sau này số lượng các luật kết hợp
được duy trì là rất lớn.
3.3 Xây dựng chương trình Demo phát hiện SQL Injection
Trong phần này, tôi xem xét kỹ thuật khai thác dữ liệu để phát hiện
bất thường trong một DBMS. Vấn đề với SQL injection là, có một đầu vào
người sử dụng được sử dụng như một phần của câu lệnh SQL. Bằng cách sử
dụng báo cáo chuẩn bị bạn có thể buộc người dùng nhập vào sẽ được xử lý
như nội dung của một tham số (và không phải là một phần của câu lệnh
SQL). Tham số truy vấn giúp để tránh rủi ro này bằng cách tách các giá trị
văn chương từ cú pháp SQL.
Hầu hết các API của khách hàng (bao gồm NET., Java) hỗ trợ tham số
của câu truy vấn. Điều này cho phép nhúng các đầu vào người sử dụng như
các tham số. Các tham số được giữ chỗ cho người dùng nhập vào giá trị mà

được thay thế ở thời gian thực hiện. Cách mà người dùng không thể đưa mã
SQL như mục user toàn bộ được coi là giá trị cho các tham số, không phải là
chuỗi nối vào truy vấn. Tham số là giải pháp tốt nhất cho các cuộc tấn công
SQL injection.
Như hầu hết các nhà phát triển đã biết, một vài trong số những cách
khác để bảo vệ chống lại SQL injection là • người dùng nhập vào Validate
để đảm bảo rằng các đầu vào phù hợp với yêu cầu kinh doanh và đảm bảo
rằng đầu vào đáng ngờ được lọc để giảm phương hướng tấn công có thể. •
Áp dụng các hiệu trưởng của đặc quyền tối thiểu để tiếp tục giới hạn phạm
vi của một thành công thuê
Tại sao chúng ta vẫn cần công cụ khác để giúp chúng tôi ngăn chặn
SQL Injection ?
Những người không sử dụng sql tham số, hoặc không sử dụng nó một
cách chính xác. Sử dụng SQL động của câu lệnh DDL (như CREATE,
DROP, và ALTER). Nhận dạng trong câu lệnh SQL như tên của cột, bảng
biểu, lược đồ, liên kết cơ sở dữ liệu, bao bì, thủ tục, và các chức năng có thể
không được tham số. Mã Legacy, dự án là quá lớn nên thay đổi tất cả các
lần xuất hiện của mã xấu có thể dẫn đến đang viết lại lớn có thể không khả
thi vào lúc này
Giải pháp của tôi để phát hiện SQL Injection là chính xác, hiệu quả và
khả năng mở rộng bằng cách phân tích toàn bộ đầu vào SQL và sau đó từ
chối SQL mà cố gắng để làm những điều mà bạn không muốn nó làm.
Kết luận
Trong bài này, tôi đã trình bày tổng quan về tính toán mềm và các
phương pháp sử dụng kỹ thuật máy học cho phát hiện bất thường trong cơ sở
dữ liệu, đây vẫn là một lĩnh vực nghiên cứu mới. Những kỹ thuật này chủ
yếu được sử dụng để phát hiện các cuộc tấn công SQL injection và phát hiện
bất thường để giải quyết các kịch bản mối đe dọa nội bộ.
Tài liệu tham khảo
[1] Database sercurity,

[2] Ashish Kamra and Elisa Bertino, Survey of machine learning methods
for database sercurity, 2010
[3] Tom M. Mitchell, Machine Learning, McGraw-Hill, 1997
[4] Ron Ben Natan, Implementing Database Security and Auditin, 2005
[5] Elisa Bertino, Ashish Kamra, and Evimaria Terzi, Intrusion detection in
rbac-administered database. In Proceedings of the Applied Computer
Security Applications Conference (ACSAC), 2005

×