Đăng ký Đăng nhập
Trang chủ Một số phương pháp phát hiện tấn công sql injection dựa trên kỹ thuật học máy...

Tài liệu Một số phương pháp phát hiện tấn công sql injection dựa trên kỹ thuật học máy

.PDF
70
210
123

Mô tả:

NGUYỄN NGỌC THANH BỘ GIÁO DỤC VÀ ĐÀO TẠO VIỆN ĐẠI HỌC MỞ HÀ NỘI LUẬN VĂN THẠC SỸ CHUYÊN NGÀNH CÔNG NGHỆ THÔNG TIN CÔNG NGHỆ THÔNG TIN MỘT SỐ PHƯƠNG PHÁP PHÁT HIỆN TẤN CÔNG SQL INJECTION DỰA TRÊN KỸ THUẬT HỌC MÁY NGUYỄN NGỌC THANH 2015 - 2017 HÀ NỘI - 2017 i BỘ GIÁO DỤC VÀ ĐÀO TẠO VIỆN ĐẠI HỌC MỞ HÀ NỘI LUẬN VĂN THẠC SỸ MỘT SỐ PHƯƠNG PHÁP PHÁT HIỆN TẤN CÔNG SQL INJECTION DỰA TRÊN KỸ THUẬT HỌC MÁY NGUYỄN NGỌC THANH CHUYÊN NGÀNH : CÔNG NGHỆ THÔNG TIN MÃ SỐ: 60.48.02.018 NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS ĐOÀN VĂN BAN HÀ NỘI - 2017 ii LỜI CAM ĐOAN Tôi xin cam đoan mọi kết quả của đề tài: “Một số phương pháp phát hiện tấn công SQL Injection dựa trên kỹ thuật học máy” là công trình nghiên cứu của cá nhân tôi và chưa từng được công bố trong bất cứ công trình khoa học nào khác cho tới thời điểm này. Hà Nội, Ngày tháng Tác giả luận văn Nguyễn Ngọc Thanh iii năm 2017 LỜI CẢM ƠN Luận văn thạc sĩ kỹ thuật chuyên ngành công nghệ thông tin với đề tài “Một số phương pháp phát hiện tấn công SQL Injection dựa trên kỹ thuật học máy” là kết quả của quá trình cố gắng không ngừng của bản thân và được sự giúp đỡ, động viên khích lệ của các thầy, bạn bè đồng nghiệp và người thân. Qua trang viết này tác giả xin gửi lời cảm ơn tới những người đã giúp đỡ tôi trong thời gian học tập - nghiên cứu khoa học vừa qua. Tôi xin tỏ lòng kính trọng và biết ơn sâu sắc đối với thầy giáo PGS.TS Đoàn Văn Ban đã trực tiếp tận tình hướng dẫn cũng như cung cấp tài liệu thông tin khoa học cần thiết cho luận văn này. Xin chân thành cảm ơn Lãnh đạo trường Viện Đại học Mở Hà Nội đã tạo điều kiện cho tôi hoàn thành tốt công việc nghiên cứu khoa học của mình. Cuối cùng tôi xin chân thành cảm ơn đồng nghiệp, đơn vị công tác đã giúp đỡ tôi trong quá trình học tập và thực hiện Luận văn. TÁC GIẢ Nguyễn Ngọc Thanh iv MỤC LỤC MỤC LỤC ........................................................................................................................ v DANH SÁCH CÁC BẢNG BIỂU............................................................................... viii DANH MỤC CÁC HÌNH VẼ.........................................................................................ix MỞ ĐẦU .......................................................................................................................... 2 CHƯƠNG 1: TỔNG QUAN VỀ TẤN CÔNG SQL INJECTION VÀ KỸ THUẬT KHAI PHÁ DỮ LIỆU ...................................................................................................... 5 1.1. Các tấn công cơ sở dữ liệu .................................................................................... 5 1.1.1. Lạm dụng quyền vượt mức (Excessive privileges) ....................................... 5 1.1.2. Lạm dụng quyền hợp pháp (Privilege abuse) ................................................ 6 1.1.3. Nâng cấp quyền bất hợp pháp (Unauthorized Privilege elevation)............... 6 1.1.4. Lợi dụng các điểm yếu nền tảng (Platform vulnerabilities) .......................... 6 1.1.5. Tấn công SQL Injection ................................................................................ 7 1.1.6. Lợi dụng dấu vết kiểm toán yếu (Weak audit) .............................................. 8 1.1.7. Tấn công từ chối dịch vụ (DoS) .................................................................... 8 1.1.8. Lợi dụng các điểm yếu trong giao thức giao tiếp cơ sở dữ liệu (Database protocol vulnerabilities)........................................................................................... 9 1.1.9. Lợi dụng sự xác thực yếu (Weak authentication).......................................... 9 1.1.10. Lợi dụng sự sơ hở của dữ liệu dự phòng (Exposure of backup data) .............. 10 1.2. Các tấn công SQL Injection ................................................................................ 10 1.2.1. Khái niệm tấn công SQL Injection .............................................................. 10 1.2.2. Các dạng tấn công bằng SQL Injection ....................................................... 12 1.2.3. Phòng chống SQL Injection ........................................................................ 19 1.3. Tổng quan về kỹ thuật khai phá dữ liệu và kỹ thuật học máy.................................... 22 1.3.1. Quá trình khai phá dữ liệu ........................................................................... 23 1.3.2. Các bài toàn thông dụng trong khai phá dữ liệu.......................................... 25 1.3.3. Sự tương đồng và khác biệt giữa khai phá dữ liệu và học máy................... 25 1.3.4. Các ứng dụng của khai phá dữ liệu ............................................................. 26 1.3.5. Ứng dụng lý thuyết Bayes trong phân lớp................................................... 27 v 1.4. Kết luận chương .................................................................................................. 30 CHƯƠNG 2: MỘT SỐ PHƯƠNG PHÁP PHÁT HIỆN TẤN CÔNG SQL INJECTION DỰA TRÊN HỌC MÁY ................................................................................................ 31 2.1. Phương pháp phát hiện dựa trên phân lớp .......................................................... 31 2.2. Phương pháp phát hiện dựa trên luật kết hợp ..................................................... 35 2.3. So sánh các phương pháp phát hiện tấn công ..................................................... 45 2.4. Kết luận chương .................................................................................................. 46 CHƯƠNG 3: XÂY DỰNG MÔ HÌNH BÀI TOÁN THỰC NGHIỆM SỬ DỤNG KỸ THUẬT HỌC MÁY ĐỂ PHÁT HIỆN TẤN CÔNG SQL INJECTION ...................... 47 3.1. Mục đích của thực nghiệm.................................................................................. 47 3.2. Các bước thực hiện ............................................................................................. 47 3.3. Công cụ sử dụng ................................................................................................. 47 3.4. Mô hình hệ thống mô phỏng và thu thập dữ liệu ................................................ 48 3.4.1. Mô hình hệ thống mô phỏng ....................................................................... 48 3.4.2. Xây dựng ứng dụng web ............................................................................. 48 3.4.3. Thu thập dữ liệu thực nghiệm...................................................................... 49 3.5. Sử dụng chương trình tiền xử lý ......................................................................... 49 3.6. Xây dựng thực nghiệm phát hiện tấn công dựa trên khai phá dữ liệu ...................... 51 3.6.1. Xây dựng bộ phân lớp ................................................................................. 51 3.6.2. Kết quả bộ phân lớp..................................................................................... 52 3.6.3. Phân tích và đánh giá kết quả ...................................................................... 55 3.4. Kết luận chương .................................................................................................. 57 KẾT LUẬN .................................................................................................................... 58 DANH MỤC TÀI LIỆU THAM KHẢO ....................................................................... 60 vi DANH MỤC CÁC TỪ VIẾT TẮT STT Từ viết tắt Tiếng Anh Tiếng Việt 1 SQL Structured Query Language Ngôn ngữ truy vấn mang tính cấu trúc 2 IPS Intrusion Prevention System Hệ thống ngăn chặn tấn công 3 DoS Denial of Service Tấn công từ chối dịch vụ vii DANH SÁCH CÁC BẢNG BIỂU Bảng 2.1 - Ví dụ xây dựng các bộ ba ............................................................................. 33 Bảng 2.2 - Ví dụ về các giao dịch cho thuật toán khai phá chuỗi .................................. 41 Bảng 2.3 - Lược đồ cơ sở dữ liệu ngân hàng ................................................................. 42 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 ................................................................................................................................ 42 Bảng 2.5 - Các chuỗi khai phá được với giá trị độ hỗ trợ tối thiểu là 25% ................... 42 Bảng 2.6 - Các chuỗi đọc và các chuỗi ghi .................................................................... 43 Bảng 2.7 - Các luật phụ thuộc đọc và ghi ...................................................................... 44 Bảng 2.8 - So sánh các kỹ thuật phát hiện tấn công....................................................... 45 Bảng 3.1 - Thống kê kết quả của mô hình huấn luyện c-triplet ..................................... 53 Bảng 3.2 - Thống kê kết quả của mô hình huấn luyện m-triplet ................................... 53 Bảng 3.3 - Thống kê kết quả của mô hình huấn luyện f-triplet ..................................... 54 Bảng 3.4 - Thống kê False negatives/positive ............................................................... 56 Bảng 3.5 - Thống kê Recall/Precision ........................................................................... 57 viii DANH MỤC CÁC HÌNH VẼ Hình 2.1 - Quá trình phát hiện tấn công ......................................................................... 34 Hình 2.2 - Các thành phần trong kỹ thuật phát hiện tấn công cơ sở dữ liệu dựa trên luật kết hợp ............................................................................................................................ 37 Hình 3.1 - Mô hình hệ thống mô phỏng tấn công ứng dụng web và thu thập dữ liệu ... 48 Hình 3.2 - Định dạng dữ liệu đã được tiền xử lý theo định dạng *.arff của Weka ........ 51 Hình 3.3 - Xây dựng mô hình phát hiện tấn công với Weka sử dụng thuật toán Naive Bayes .............................................................................................................................. 52 Hình 3.4 - Thống kê Precision và Recall trong trường hợp 1 ........................................ 56 Hình 3.5 - Thống kê Precision và Recall trong trường hợp 2 ........................................ 56 ix MỞ ĐẦU 1. Lý do chọn đề tài Ngày nay, vấn đề bảo mật an ninh hệ thống mạng là một phần rất quan trọng trong các công ty, tập đoàn, các tổ chức cơ quan, chính phủ trong cuộc sống xã hội hiện đại. Vấn đề an ninh và bảo mật là chìa khóa tất yếu thành công trong các lĩnh vực kinh tế, chính trị, quốc phòng an ninh góp phần thúc đẩy sự phát triển toàn cầu nhanh chóng, liên kết khoảng cách địa lý, không gian, thời gian các nơi trên thế giới với nhau mà vẫn đảm bảo được an toàn. Sự phát triển vượt bậc của công nghệ web đã đem lại rất nhiều thuận lợi cho người sử dụng cũng như các nhà phát triển.Nhưng cùng với sự phát triển này thì các ứng dụng web cũng trở thành mục tiêu ưa thích của những kẻ tấn công. Các hình thức tấn công rất đa dạng như thay đổi nội dung của trang web, tấn công từ chối dịch vụ khiến cho việc truy cập trang web không thể thực hiện hoặc rất khó thực hiện, chiếm quyền điều khiển trang web… Mục tiêu của những kể tấn công cũng rất khác nhau, có thể tấn công xuất phát từ thiện chí, nhằm tìm ra những điểm yếu và thông báo cho nhà quản trị hệ thống, nghiêm trọng hơn là tấn công để phục vụ cho các mục đích xấu như tống tiền, ăn cắp dữ liệu, phá huỷ dữ liệu… Trong các hình thức tấn công thì tấn công bằng cách chèn mã lệnh (injection) là rất phổ biến.Tấn công website bằng kỹ thuật SQL Injecion từ lâu đã là mối quan tâm bảo mật hàng đầu của các nhà phát triển web và chủ sở hữu của website. Giờ đây, các cuộc tấn công này ngày càng trở nên tinh vi và khó phát hiện, ngăn chặn hơn. SQL Injection là kiểu tấn công có mục tiêu rất cụ thể và thường là mục tiêu đơn lẻ cho mỗi một vụ tấn công. Chính vì thế mà những vụ tấn công như thế này thường không gây được sự chú ý rộng rãi như virus hay sâu máy tính.Âm thầm như thế nhưng thiệt hại của những vụ tấn công này lại rất lớn. Nếu như một máy chủ cơ sở dữ liệu bị tin tặc chiếm quyền kiểm soát thì sẽ có một khối lượng rất lớn thông tin cá nhân, thông tin tài chính của người dùng sẽ rơi vào tay chúng. Và nếu thành công thì có thể nói nguồn thông tin mà tin tặc thu được còn nhiều hơn rất nhiều so với tấn công phishing. Tin tặc không 2 phải mất công giả mạo để lừa người sử dụng cung cấp thông tin cá nhân.Tỉ lệ thành công của các vụ tấn công SQL Injection thương rất cao. Xuất phát từ thực tế nêu trên, luận văn hướng tới nghiên cứu các kiến thức tổng quan về những tấn công cơ vào cơ sở dữ liệu, đặc biệt là các kiểu tấn công SQL Injection.Sau khi đã nắm được một số kiến thức cơ bản, luận văn tìm hiểu các cách thức phòng chống và phát hiện những tấn công vào cơ sở dữ liệu, tấn công SQL Injection thông qua phương pháp học máy.Cuối cùng, là thực nghiệm kiểm chứng các phân tích để thấy được hiệu quả của phương pháp học máy trong phát hiện các tấn công vào cơ sở dữ liệu cũng như là SQL Injection. 2. Mục đích nghiên cứu Nghiên cứu ứng dụng của kỹ thuật học máy trong phát hiện tấn công SQL Injection thông qua các dữ liệu được trích xuất từ câu lệnh SQL, xây dựng và đánh giá thử nghiệm. 3. Đối tượng và phạm vi nghiên cứu Các tấn công vào cơ sở dữ liệu, tấn công SQL Injection, kỹ thuật học máy giúp phát hiện các tấn công vào cơ sở dữ liệu, tấn công SQL Injection. 4. Phương pháp nghiên cứu - Phân tích, tổng hợp tài liệu trong nước và nước ngoài về các tấn công vào cơ sở dữ liệu, tấn công SQL Injection, kỹ thuật học máy; - Xây dựng tập dữ liệu cho mô hình phát hiện tấn công vào cơ sở dữ liệu; - Xây dựng và đánh giá mô hình thử nghiệm. 5. Bố cục của luận văn Mở đầu: Chương 1: Tổng quan về tấn công SQL Injection và kỹ thuật khai phá dữ liệu 3 Chương 2: Một số phương pháp phát hiện tấn công SQL Injection dựa trên kỹ thuật học máy Chương 3: Xây dựng mô hình bài toán thực nghiệm sử dụng kỹ thuật học máy để phát hiện tấn công SQL Injection Kết luận Tài liệu tham khảo 4 CHƯƠNG 1. TỔNG QUAN VỀ TẤN CÔNG SQL INJECTION VÀ KỸ THUẬT KHAI PHÁ DỮ LIỆU 1.1. Các tấn công cơ sở dữ liệu Sự phát triển lớn mạnh của công nghệ thông tin trong những năm qua đã dẫn đến việc sử dụng rộng rãi các hệ thống máy tính trong hầu hết các tổ chức cá nhân và công cộng, chẳng hạn như: ngân hàng, trường học, tổ chức dịch vụ và sản xuất, bệnh viện, thư viện, trong các cơ quan nhà nước,… Cùng với sự phát triển đó, các phương pháp nhằm đảm bảo an toàn thông tin cũng ngày càng phải được hoàn thiện, nâng cao. Một trong những vấn đề nóng trong công tác đảm bảo an toàn thông tin hiện nay là bảo đảm an toàn cho những cơ sở dữ liệu phục vụ việc khai thác và sử dụng các ứng dụng công nghệ thông tin đang ngày càng phát triển rộng rãi. Do lưu giữ những thông tin quan trọng nên cơ sở dữ liệu luôn nằm trong tầm ngắm của nhiều tin tặc. Trong phần này sẽ giới thiệu sơ lược về một số dạng tấn công phổ biến ảnh hưởng đến an toàn cơ sở dữ liệu cũng như là cách thức để phòng chống lại các kiểu tấn công này [1]. 1.1.1. Lạm dụng quyền vượt mức (Excessive privileges) Khi người dùng (hay ứng dụng) được gán các đặc quyền truy nhập cơ sở dữ liệu vượt quá các yêu cầu trong chức năng công việc của họ, thì những đặc quyền này có thể bị lạm dụng cho các mục đích xấu. Ví dụ, một người phụ trách cơ sở dữ liệu của trường đại học với công việc là thay đổi các thông tin liên lạc của sinh viên, người này có thể lạm dụng quyền của mình với quyền cập nhật cơ sở dữ liệu để sửa đổi điểm của sinh viên (trái phép). Một lý do đơn giản là những quản trị viên cơ sở dữ liệu vì bận rộn với công việc quản trị của mình nên không có thời gian để định nghĩa và cập nhật cơ chế kiểm soát quyền truy nhập mịn cho mỗi người dùng. Kết quả là một số lượng lớn người dùng được gán các đặc quyền truy nhập mặc định vượt xa so với yêu cầu công việc của họ. 5 Giải pháp cho hiểm họa cơ sở dữ liệu này, đó là sử dụng cơ chế kiểm soát truy nhập mức truy vấn (Query-level). Cơ chế này sẽ hạn chế các đặc quyền cơ sở dữ liệu bằng những toán tử SQL (SELECT, UPDATE,…) và dữ liệu được yêu cầu một cách tối thiểu. 1.1.2. Lạm dụng quyền hợp pháp (Privilege abuse) Người dùng lạm dụng các đặc quyền hợp pháp của mình để thực hiện những mục đích không hợp pháp. Giải pháp cho hiểm họa này chính là kiểm soát truy nhập cơ sở dữ liệu cần áp dụng cho không chỉ các truy vấn cụ thể như được mô tả ở trên, mà còn áp dụng cho bối cảnh xung quanh truy nhập cơ sở dữ liệu. Bằng cách bắt buộc tuân thủ chính sách cho các ứng dụng khách, thời gian trong ngày, vị trí,… thì có thể nhận dạng được những người dùng đang sử dụng các quyền truy nhập hợp pháp của mình với hành động mờ ám, đáng nghi. 1.1.3. Nâng cấp quyền bất hợp pháp (Unauthorized Privilege elevation) Kẻ tấn công có thể dựa trên các điểm yếu trong phần mềm cơ sở dữ liệu để biến các đặc quyền truy nhập của một người dùng bình thường thành quyền truy nhập của một người quản trị.Những điểm yếu này có thể tìm thấy trong các thủ tục được lưu, trong các hàm được xây dựng bên trong, trong việc thực thi giao thức, thậm chí trong các câu lệnh SQL. Hiểm họa này có thể bị ngăn chặn bằng việc kết hợp các hệ thống ngăn chặn tấn công (IPS) và kiểm soát truy nhập mức truy vấn.IPS sẽ kiểm tra lưu lượng cơ sở dữ liệu để nhận ra các mẫu phù hợp với những điểm yếu đã biết.Chẳng hạn, với một hàm có điểm yếu đã biết, thì một IPS có thể chặn tất cả các truy nhập tới hàm đó, hoặc (nếu có thể) chỉ chặn những truy nhập (của các tấn công) tới hàm này. 1.1.4. Lợi dụng các điểm yếu nền tảng (Platform vulnerabilities) Các điểm yếu trong hệ điều hành bên dưới (Windows 2000, UNIX, …) và các điểm yếu trong các dịch vụ được cài đặt trên một máy chủ cơ sở dữ liệu có thể dẫn tới 6 truy nhập bất hợp pháp, sự sửa đổi dữ liệu hay từ chối dịch vụ. Chẳng hạn, sâu Blaster lợi dụng một điểm yếu của Windows 2000 để tạo ra các điều kiện cho tấn công từ chối dịch vụ. Để bảo vệ các tài nguyên cơ sở dữ liệu tránh khỏi các tấn công nền tảng, cần thiết phải kết hợp giữa việc cập nhật (các bản vá) phần mềm thường xuyên và sử dụng hệ thống ngăn chặn tấn công (IPS).Các nhà cung cấp luôn đưa ra những bản vá cho các điểm yếu trong nền tảng cơ sở dữ liệu. Tuy nhiên, các doanh nghiệp cập nhật và thực thi các phần mềm này theo định kỳ. Khi đó, giữa các chu kỳ cập nhật này, cơ sở dữ liệu không được bảo vệ. Thêm vào đó, vấn đề tương thích đôi khi không cho phép các cập nhật phần mềm này được hoàn chỉnh.Để giải quyết những vấn đề này, cần phải sử dụng IPS.Như mô tả ở trên, IPS kiểm tra lưu lượng cơ sở dữ liệu và xác định được những tấn công nhắm vào các điểm yếu đã biết. 1.1.5. Tấn công SQL Injection Trong một tấn công SQL Injection, kẻ tấn công thường chèn ( hay “tiêm”) các mệnh đề cơ sở dữ liệu bất hợp pháp vào một nguồn dữ liệu SQL dễ bị tổn thương. Thường nguồn dữ liệu đích bao gồm các thủ tục được lưu và các tham số đầu vào của ứng dụng Web.Các nguồn này bị tiêm vào những mệnh đề bất hợp pháp, sau đó chúng được truyền tới cơ sở dữ liệu và được xử lý tại đây. Với SQL Injection, kẻ tấn công có thể đạt được truy nhập không giới hạn tới toàn bộ cơ sở dữ liệu. Có thể sử dụng kết hợp ba kỹ thuật để chống SQL Injection một cách hiệu quả là: IPS, kiểm soát truy nhập mức truy vấn và sự tương quan sự kiện. IPS có thể xác định các thủ tục được lưu chứa điểm yếu hoặc những chuỗi SQL injection. Các nhà quản trị an toàn nếu chỉ tin cậy vào một mình IPS sẽ luôn nhận được hàng loạt các cảnh báo là SQL injection “có thể đang tồn tại”. Bằng cách tương quan một dấu hiệu của SQL injection với một tấn công vào kiểm soát truy nhập mức truy vấn thì có thể xác định được tấn công với độ chính xác cao. [9,10,11,12] 7 1.1.6. Lợi dụng dấu vết kiểm toán yếu (Weak audit) Đối với bất kỳ hoạt động nào liên quan đến cơ sở dữ liệu, cần thiết phải ghi lại một cách tự động tất cả các giao dịch cơ sở dữ liệu nhạy cảm và/hoặc các giao dịch bất thường.Khi chính sách kiểm toán cơ sở dữ liệu yếu sẽ dẫn đến những rủi ro nghiêm trọng cho tổ chức với nhiều mức độ khác nhau. Các cơ chế kiểm toán là tuyến hàng rào bảo vệ cơ sở dữ liệu cuối cùng.Nếu kẻ tấn công có thể phá vỡ các hàng rào khác thì cơ chế kiểm toán dữ liệu vẫn có thể xác định sự tồn tại của một tấn công sau những hành động của kẻ tấn công trước đó. Những vết kiểm toán thu được tiếp tục có thể dùng để xác định người dùng nào vừa thực hiện các hành động này, đồng thời qua vết kiểm toán có thể thực hiện phục hồi lại hệ thống. Cơ chế kiểm toán yếu đồng nghĩa với việc hệ thống không thể ghi lại đầy đủ những hành động của người dùng, dẫn đến việc không thể phát hiện và ngăn chặn kịp thời những hành động tấn công của người dùng hoặc một nhóm người dùng. Do vậy, kiểm toán là cơ chế quan trọng mà mọi hệ thống cần có và cần thiết phải có cơ chế kiểm toán mạnh đảm bảo an toàn thông tin hay an toàn cơ sở dữ liệu cho mọi hệ thống. 1.1.7. Tấn công từ chối dịch vụ (DoS) Tấn công từ chối dịch vụ là một loại tấn công trong đó các truy nhập của người dùng hợp pháp vào các ứng dụng mạng hay vào dữ liệu sẽ bị từ chối. Các điều kiện từ chối dịch vụ có thể được tạo ra qua nhiều kỹ thuật (nhiều trong số đó liên quan đến các điểm yếu nền tảng).Ví dụ, tấn công DoS có thể dựa trên điểm yếu nền tảng cơ sở dữ liệu để phá hủy một máy chủ. Ngoài ra còn có một số kỹ thuật DoS phổ biến khác như: sửa đổi dữ liệu, làm lụt mạng (network flooding), và làm quá tải tài nguyên máy chủ (bộ nhớ, CPU,…). Trong đó, làm quá tải tài nguyên là một kỹ thuật phổ biến trong môi trường cơ sở dữ liệu. Để ngăn chặn tấn công này, cần yêu cầu bảo vệ ở nhiều mức khác nhau, như: mức mạng, mức ứng dụng và mức cơ sở dữ liệu. Trong đó, một số kỹ thuật bảo vệ mức cơ sở 8 dữ liệu để chống tấn công DOS bao gồm: kiểm soát tốc độ kết nối, kiểm soát giao thức, kiểm soát truy nhập truy vấn, và kiểm soát thời gian phản hồi. 1.1.8. Lợi dụng các điểm yếu trong giao thức giao tiếp cơ sở dữ liệu (Database protocol vulnerabilities) Các nhà cung cấp cơ sở dữ liệu phát hiện ra một số lượng ngày càng tăng các điểm yếu an toàn trong các giao thức giao tiếp cơ sở dữ liệu. Chẳng hạn 4 trong 7 điểm yếu về giao thức trong IBM DB2 đã được xác định và sửa chữa, 11 trong số 23 điểm yếu cơ sở dữ liệu liên quan đến giao thức đã được xác định trong Oracle gần đây. Sâu SQL Slammer2 cũng khai thác điểm yếu trong giao thức của Microsoft SQL Server để gây ra tấn công từ chối dịch vụ.Ngoài ra, các hoạt động của giao thức không hề được lưu lại trong các vết kiểm toán cho nên càng gây khó khăn cho việc phát hiện lỗi và phát hiện các tấn công. Có thể giải quyết tấn công này bằng công nghệ phê duyệt giao thức.Công nghệ này sẽ phân tích lưu lượng cơ sở dữ liệu cơ bản và so sánh nó với lưu lượng thông thường.Trong trường hợp lưu lượng hiện tại không phù hợp với lưu lượng cơ sở dữ liệu như mong đợi thì hệ thống sẽ phát ra cảnh báo, thậm chí là chặn luôn hành động đang thực hiện. 1.1.9. Lợi dụng sự xác thực yếu (Weak authentication) Trong một hệ thống chứa lược đồ xác thực yếu, kẻ tấn công dễ dàng có thể chiếm lấy định danh của những người dùng cơ sở dữ liệu hợp pháp bằng cách lấy cắp thẻ đăng nhập của họ.Kẻ tấn công có thể sử dụng nhiều chiến lược khác nhau để lấy được thẻ đăng nhập của người dùng hợp pháp. Để phòng chống loại tấn công này, chúng ta cần thực hiện một số cơ chế: - Xác thực mạnh: Để ngăn chặn kẻ tấn công lợi dụng xác thực yếu, hệ thống cần sử dụng các chính sách và công nghệ xác thực mạnh nhất. Nên sử dụng cơ chế xác thực hai nhân tố (như: token, chứng chỉ, sinh trắc,…). Tuy nhiên, các cơ chế xác thực hai nhân tố thường có chi phí đắt và khó sử dụng hơn nên trong thực tế chúng được sử dụng không 9 nhiều. Với trường hợp này, cần sử dụng chính sách xác thực mạnh cho username/password (như: độ dài tối thiểu, đa dạng ký tự, khó đoán,…). - Tích hợp danh bạ: Để các cơ chế xác thực mạnh được sử dụng rộng rãi và dễ dàng, nên tích hợp chúng với cơ sở danh bạ của doanh nghiệp. Cơ sở danh bạ cho phép một người dùng có thể sử dụng một tập thẻ đăng nhập cho nhiều cơ cở dữ liệu và ứng dụng.Từ đó làm cho hệ thống xác thực hai nhân tố được sử dụng hiệu quả hơn và người dùng có thể dễ dàng ghi nhớ việc cần phải thay đổi mật khẩu thường xuyên. 1.1.10. Lợi dụng sự sơ hở của dữ liệu dự phòng (Exposure of backup data) Chúng ta thấy rằng, trong công tác sao lưu, dự phòng cơ sở dữ liệu, người thực hiện thường lơ là không bảo vệ các phương tiện lưu trữ cơ sở dữ liệu dự phòng một cách đầy đủ.Kết quả là, có rất nhiều băng đĩa sao lưu cơ sở dữ liệu và các đĩa cứng của nhiều hệ thống bị đánh cắp. Ngăn chặn sơ hở dữ liệu dự phòng bằng cách các bản sao cơ sở dữ liệu cần thiết phải được mã hóa và lưu giữ cẩn thận. 1.2. Các tấn công SQL Injection Cho đến nay, SQL Injection vẫn là phương thức thông dụng nhất của tin tặc khi tấn công một website vì cơ sở dữ liệu được xem là trái tim của website. Số lượng website bị tin tặc “nắm giữ” lên đến vài trăm ngàn và thường được dùng để phát tán mã độc, malware hay lừa đảo trực tuyến (phishing) khi khách hàng truy cập, truy xuất vào website. Trong phần này sẽ đi sâu vào phân tích các dạng của tấn công SQL Injection. 1.2.1. Khái niệm tấn công SQL Injection SQL injection là một kỹ thuật cho phép những kẻ tấn công lợi dụng lỗ hổng của việc kiểm tra dữ liệu đầu vào trong các ứng dụng web và các thông báo lỗi của hệ quản trị cơ sở dữ liệu trả về để tiêm vào (inject) và thi hành các câu lệnh SQL bất hợp pháp. SQL injection có thể cho phép những kẻ tấn công thực hiện các thao tác, delete, insert, update, v.v. trên cơ sở dữ liệu của ứng dụng, thậm chí là server mà ứng dụng đó đang chạy. SQL injection thường được biết đến như là một vật trung gian tấn công trên các 10 ứng dụng web có dữ liệu được quản lý bằng các hệ quản trị cơ sở dữ liệu như Sql Server, MySql, Oracle, DB2, Sysbase, … [1,9,10,11,12] Các mối đe doạ chính từ tấn công SQL Injection: - Mạo danh (Snoofing identity): Những kẻ tấn công sẽ mạo danh một email hoặc một trang web của một tổ chức để đánh lừa người dùng. - Thay đổi giá (Changing prices): Một trong số những vấn đề của SQL Injection là nó có thể thay đổi dữ liệu. Ở đây, những kẻ tấn công sẽ thay đổi giá cả một trang mua sắm trực tuyến để có thể mua sản phẩm đó với giá rẻ hơn. - Xáo trộn các bản ghi cơ sở dữ liệu (Tamper with database records): Cơ sở dữ liệu chính sẽ hoàn toàn bị hư hại; thậm chí còn có khả năng đã bị thay thế hoàn toàn hoặc thậm chí bị xóa hết dữ liệu. - Leo thang đặc quyền (Escalation of privileges): Một khi hệ thống bị tấn công, kẻ tấn công sẽ tìm kiếm đặc quyền truy cập cao nhất của các thành viên quản trị để có thể chiếm quyền truy cập vào hệ thống cũng như vào mạng nội bộ. - Từ chối các dịch vụ từ máy chủ (Denial-of-service on the server): Từ chối dịch vụ từ máy chủ là một dạng tấn công mà người dùng không thể truy cập vào hệ thống. Ngày càng nhiều yêu cầu được gửi đến máy chủ mà không thể xử lý nó.Điều này dẫn đến tạm ngưng dịch vụ của máy chủ. - Lộ tất cả thông tin dữ liệu của hệ thống (Complete disclosure of all the data on the system): Một khi một hệ thống bị tấn công các dữ liệu quan trọng và bí mật như: số thẻ tín dụng, chi tiết nhân viên về hồ sơ và tài chính,…v.v sẽ bị tiết lộ. - Phá hủy dữ liệu (Destruction of data): Những kẻ tấn công sau khi chiếm hoàn toàn quyền hệ thống sẽ phá hủy hoàn toàn dữ liệu, kết quả làm tổn thất rất lớn cho công ty. - Tránh các giao dịch quan trọng của hệ thống (Voiding system's critical transaction): Những kẻ tấn công có thể vận hành hệ thống tránh tất cả các giao dịch. 11 - Thay đổi hồ sơ (Modifying the records): Kẻ tấn công có thể sửa đổi các dữ liệu trong cơ sở dữ liệu của công ty, gây ra trở ngại lớn cho hệ thống quản lý cơ sở dữ liệu công ty. 1.2.2. Các dạng tấn công bằng SQL Injection a) Tautology Các cuộc tấn công này hoạt động bằng cách thêm vào mệnh đề WHERE của câu lệnh truy vấn một tuyên bố luôn đúng. Với dạng tấn công này kẻ tấn công có thể dễ dàng vượt qua các trang đăng nập nhờ vào lỗi khi dùng các câu lệnh SQL thao tác trên cơ sở dữ liệu của ứng dụng web. Thông thường để cho phép người dùng truy cập vào các trang web được bảo mật, hệ thống thường xây dựng trang đăng nhập để yêu cầu người dùng nhập thông tin về tên đăng nhập và mật khẩu. Sau khi người dùng nhập thông tin vào, hệ thống sẽ kiểm tra tên đăng nhập và mật khẩu có hợp lệ hay không để quyết định cho phép hay từ chối thực hiện tiếp. Xét đoạn code php sau: $uname=$_POST['uname']; $passwrd=$_POST['passwrd']; $query="select username,pass from users where username='$uname' and password='$passwrd'"; $result=mysql_query($query); Thử tài khoản đăng nhập và mật khẩu bằng: 'or ''=', thì câu truy vấn sẽ thành như sau: select username,pass from users where username='' or ''='' and password='' or ''='' Do mệnh đề luôn đúng nên dễ dàng đăng nhập tài khoản. b) Illegal/Logically Incorrect Query Trong loại tấn công này, những kẻ tấn công sẽ cố gắng thu thập đầy đủ các thông tin về cấu trúc back-end của cơ sở dữ liệu một trang web. Những kẻ tấn công sẽ gửi một 12
- Xem thêm -

Tài liệu liên quan