1. Trang chủ
  2. » Thể loại khác

Chống tấn công tiêm nhiễm SQL sử dụng các khuôn mẫu hợp lệ theo bối cảnh

54 164 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 54
Dung lượng 1,82 MB

Nội dung

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN THANH LIÊM CHỐNG TẤN CÔNG TIÊM NHIỄM SQL SỬ DỤNG CÁC KHUÔN MẪU HỢP LỆ THEO BỐI CẢNH LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN Hà Nội – 2017 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN THANH LIÊM CHỐNG TẤN CÔNG TIÊM NHIỄM SQL SỬ DỤNG CÁC KHUÔN MẪU HỢP LỆ THEO BỐI CẢNH Ngành: Công nghệ thông tin Chuyên ngành: Truyền liệu Mạng máy tính Mã số: Chuyên ngành đào tạo thí điểm LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN NGƯỜI HƯỚNG DẪN KHOA HỌC: TS NGUYỄN ĐẠI THỌ Hà Nội – 2017 Lời cam đoan: Những kết nghiên cứu trình bày luận văn hoàn toàn trung thực, tôi, không vi phạm điều luật sở hữu trí tuệ pháp luật Việt Nam Nếu sai, xin chịu trách nhiệm hoàn toàn trước pháp luật TÁC GIẢ LUẬN VĂN Nguyễn Thanh Liêm Danh mục ký hiệu từ viết tắt STT Ký hiệu Ý nghĩa AMNESIA Kỹ thuật chống công tiêm nhiễm AMNESIA (Analysis and Monitoring for Neutralizing SQL-Injection Attacks) API Giao diện lập trình ứng dụng (Application Programming Interface) CSDL Cơ sở liệu SQL Ngôn ngữ truy vấn có cấu trúc (Structured Query Language) Danh mục hình vẽ Hình 1 Một Tấn công tiêm nhiễm SQL điển hình Hình Kiến trúc đề xuất SDriver [4, pp 5] 19 Hình 2 Chế độ huấn luyện SDriver 21 Hình Chế độ thực thi SDriver 22 Hình Ví dụ vai trò stack trace 23 Hình Kiến trúc thực tế SDriver 25 Hình Giao diện ứng dụng web demo 26 Hình Một kết SDriver hoạt động chế độ huấn luyện 27 Hình Thông báo trùng lặp SDriver 28 Hình Bảng signatures ssql 28 Hình Phương thức rút bỏ liệu câu truy vấn 32 Hình Các mẫu loại bỏ khỏi câu truy vấn 33 Hình 3 Ví dụ kỹ thuật công tautologies 34 Hình Ví dụ kỹ thuật công thích cuối dòng 35 Hình Ví dụ kỹ thuật công truy vấn union 36 Hình Ví dụ kỹ thuật công truy vấn piggy-backed 37 Hình Cơ chế rút bỏ liệu câu truy vấn đề xuất 39 Hình Một số mẫu công tiêm nhiễm SQL bảng anomaly 40 Hình Một kết SDriver hoạt động chế độ huấn luyện với chế rút bỏ liệu 41 Hình Kết SDriver không phát truy vấn bất thường 42 Hình Tấn công Tautologies bị phát ngăn chặn 42 Hình 4 Tấn công thích cuối dòng bị phát ngăn chặn 43 Hình Tấn công truy vấn Union bị phát ngăn chặn 44 Hình Tấn công truy vấn Piggy-Backed bị phát ngăn chặn 44 Hình Kiểm thử công tiêm nhiễm SQL với tham số code theo phương thức GET 47 Hình Ví dụ thông tin phương thức POST trang login 48 Hình Kiểm thử công tiêm nhiễm SQL với tham số password theo phương thức POST 49 Danh mục bảng, biểu Bảng Thời gian thực thi truy vấn phiên SDriver 45 Bảng Kết ngăn chặn công tiêm nhiễm SQL 50 MỤC LỤC CHƯƠNG TỔNG QUAN VỀ TẤN CÔNG TIÊM NHIỄM SQLCÁC PHƯƠNG PHÁP PHÒNG CHỐNG 1.1 Khái niệm công tiêm nhiễm SQL 1.2 Phân loại công tiêm nhiễm SQL 10 1.2.1 Cơ chế tiêm nhiễm 10 1.2.2 Mục đích công 11 1.2.3 Kỹ thuật công 12 1.3 Các phương pháp ngăn chặn công tiêm nhiễm SQL 14 1.3.1 Phương pháp mã phòng thủ 14 1.3.2 Phương pháp phát ngăn chặn 16 1.4 Tóm Tắt 17 CHƯƠNG PHƯƠNG PHÁP SDRIVER TRONG CHỐNG TẤN CÔNG TIÊM NHIỄM SQL 19 2.1 Phương pháp chống công tiêm nhiễm SQL sử dụng khuôn mẫu hợp lệ theo bối cảnh, SDriver 19 2.2 Cách thức hoạt động SDriver 20 2.2.1 Chế độ huấn luyện 20 2.2.2 Chế độ thực thi 22 2.3 Stack trace 23 2.4 Mô hoạt động SDriver 24 2.4.1 Môi trường mô 24 2.4.2 Chạy mô hoạt động SDriver 26 2.5 Tóm tắt 30 CHƯƠNG ĐỀ XUẤT CẢI TIẾN CHỐNG TẤN CÔNG TIÊM NHIỄM SQL SỬ DỤNG CÁC KHUÔN MẪU HỢP LỆ THEO BỐI CẢNH 32 3.1 Phân tích hoạt động SDriver 32 3.2 Đề xuất cải tiến 37 3.2.1 Cơ chế rút bỏ liệu câu truy vấn 37 3.2.2 Triển khai chế rút bỏ liệu đề xuất 39 3.3 Tóm tắt 40 CHƯƠNG KẾT QUẢ THỰC NGHIỆM ĐÁNH GIÁ 41 4.1 Mô thực nghiệm SDriver với chế rút bỏ liệu 41 4.2 Đánh giá hoạt động SDriver đề xuất 45 4.2.1 Đánh giá chi phí hoạt động 45 4.2.2 Đánh giá độ xác 46 KẾT LUẬN 51 Tài liệu tham khảo 52 MỞ ĐẦU Ngày nay, ứng dụng web trở nên thiết yếu sống hàng ngày người Giao dịch ngân hàng online, mua bán online, mạng xã hội, blog… ứng dụng web phổ biến chúng mục tiêu ưa thích tin tặc Trong công mạng công mà mục tiêu ứng dụng web phổ biến gây nhiều thiệt hại cho tổ chức cá nhân Đặc biệt dạng công tiêm nhiễm SQL Tiêm nhiễm SQL kĩ thuật cho phép kẻ công lợi dụng lỗ hổng việc kiểm tra liệu nhập ứng dụng web thông báo lỗi hệ quản trị sở liệu, để tiêm nhiễm (inject) thi hành câu lệnh SQL trái phép (không người phát triển ứng dụng lường trước) Hậu tai hại cho phép kẻ công thực thao tác xóa, hiệu chỉnh, … có toàn quyền sở liệu ứng dụng, chí server mà ứng dụng chạy Các nhà nghiên cứu đề xuất nhiều phương pháp phòng chống công tiêm nhiễm SQL, nhìn chung chia thành hai loại phương pháp thực hành mã phòng thủ (defensive coding pratices) phương pháp phát ngăn ngừa (dection and prevention techniques) Thực hành mã phòng thủ dựa vào người phát triển ứng dụng cố gắng loại bỏ nguy từ mã nguồn Phương pháp phụ thuộc nhiều vào chủ quan người phát triển ứng dụng, khó đảm bảo ứng dụng web lỗ hổng thay đổi ứng dụng web Trong phương pháp phát ngăn ngừa lại tập trung vào việc tự động phát công tiêm nhiễm SQL ngăn chặn chúng Các nhà nghiên cứu đề xuất loạt kỹ thuật chống công tiêm nhiễm SQL theo phương pháp Nhìn chung kỹ thuật dựa vào việc xây dựng tập hợp tình công có xây dựng tập hợp câu truy vấn hợp lệ Với đa dạng phát triển nhanh chóng dạng công tiêm nhiễm SQL khó xác định tập hợp công tiêm nhiễm SQL Trong để xác định truy vấn hợp lệ lại dễ dàng nhiều Dr Dimitris Mitropoulos Prof Diomidis Spinellis đề xuất kỹ thuật chống công tiêm nhiễm SQL khuôn mẫu hợp lệ theo bối cảnh (location-specific signatures prevent SQL injection attack) Một trình điều khiển gọi SDriver thêm vào ứng dụng web trình điều khiển kết nối tới sở liệu SDriver chịu trách nhiệm phát ngăn chặn công tiêm nhiễm SQL thông qua sở liệu câu truy vấn hợp lệ gắn với bối cảnh Do SDriver kỹ thuật đơn giản hiệu việc chống công tiêm nhiễm SQL Hơn triển khai kỹ thuật việc thay mã phần kết nối tới sở liệu không ảnh hưởng nhiều tới hiệu hệ thống Tuy phương pháp tồn vấn đề khiến kẻ công tiêm nhiễm thành công Xuất phát từ thực tế đó, luận văn tập trung nghiên cứu: “Chống công tiêm nhiễm SQL sử dụng khuôn mẫu hợp lệ theo bối cảnh” Nội dung luận văn gồm năm chương: Chương 1: Tổng quan công tiêm nhiễm SQL phương pháp phòng chống Trong chương đề cập đến lý thuyết công tiêm nhiễm SQL, phương pháp phòng chống cách tổng quát Chương 2: Phương pháp chống công tiêm nhiễm SQL sử dụng khuôn mẫu hợp lệ theo bối cảnh - SDriver Chương trình bày trạng phương pháp chống công tiêm nhiễm SQL sử dụng khuôn mẫu hợp lệ theo bối cảnh Phân tích vấn đề tồn Chương 3: Đề xuất cải tiến chống công tiêm nhiễm SQL sử dụng khuôn mẫu hợp lệ theo bối cảnh Đưa phương pháp cải tiến chống công tiêm nhiễm SQL sử dụng khuôn mẫu hợp lệ theo bối cảnh Chương 4: Kết thực nghiệm đánh giá Chương trình bày kết thực nghiệm phương pháp cải tiến đưa đánh giá phương pháp cải tiến 38 Tuy hai câu truy vấn có khác biệt thực thi chúng trả kết giống hệt Sự khác biệt có phong cách lập trình nhà phát triển Nhà phát triển sử dụng biệt danh cho bảng, câu truy vấn (2) biệt danh cho bảng “USERS” “a”, sử dụng để xác định trường thuộc bảng nào, (2) “a.userid” xác định trường “userid” thuộc bảng USERS Hay nhà phát triển thêm thích, kiểu “/* dang nhap */”, để làm rõ ý nghĩa chức câu truy vấn Tức ký tự “+”, “-”, “.” hay chuỗi đánh dấu thích coi đặc trưng câu truy vấn, không nên loại bỏ chúng khỏi câu truy vấn Ngay kẻ công đoán cấu trúc câu truy vấn khó đoán đặc trưng Tiếp đến ta cần xem xét đến vấn đề loại bỏ chuỗi đầu vào Khi tiến hành loại bỏ chuỗi đầu vào cần xác định xác có chuỗi đầu vào loại bỏ vị trí chúng câu truy vấn hợp lệ Để làm điều đó, thay hoàn toàn xóa bỏ chuỗi đầu vào, ta thay chúng ký tự đặc biệt để “đánh dấu” vị trí chuỗi bị loại bỏ, ví dụ ký tự ‘?’ Nếu có khác biệt ký tự “đánh dấu” vị trí số lượng câu truy vấn so với khuôn mẫu hợp lệ câu truy coi độc hại Cuối chuỗi loại bỏ bước rút bỏ liệu câu truy vấn phải lọc để đảm bảo không loại bỏ nhầm chuỗi độc hại Trong SDriver cũ, chuỗi bị loại bỏ khỏi câu truy vấn trình rút bỏ liệu không kiểm tra Chính điều dẫn đến việc loại bỏ nhầm chuỗi độc hại khỏi câu truy vấn Do chế rút bỏ liệu câu truy vấn đề xuất, chuỗi bị loại bỏ phải trải qua lần sàng lọc Một CSDL lưu trữ dạng công tiêm nhiễm biết sử dụng để lọc chuỗi bị loại bỏ Nếu chuỗi bị loại bỏ khớp với mẫu công tiêm nhiễm có khả chuỗi độc hại Lúc này, dù câu truy vấn có khớp với khuôn mẫu hợp lệ bị ngăn chặn 39 Hình Cơ chế rút bỏ liệu câu truy vấn đề xuất Các bước chế rút bỏ liệu câu truy vấn đề xuất thể hình 3.7 Trong SDriver cũ, chế độ huấn luyện chế độ thực thi sử dụng chung chế rút bỏ liệu câu truy vấn Với chế rút bỏ liệu câu truy vấn mới, chế độ huấn luyện chế độ thực thi có khác biệt rút bỏ liệu câu truy vấn Trong chế độ huấn luyện, với giả định chuỗi đầu vào hoàn toàn bình thường chuỗi bị loại bỏ trải qua bước “khớp với mẫu độc hại” đưa thẳng đầu câu truy vấn rút bỏ liệu Trong chế độ thực thi, chuỗi bị loại bỏ phải trải qua bước “khớp với mẫu độc hại” để đảm bảo SDriver không loại bỏ nhầm chuỗi độc hại 3.2.2 Triển khai chế rút bỏ liệu đề xuất 40 Một bảng, gọi bảng anomaly, thêm vào CSDL ssql Bảng bao gồm trường trường “id” Trường “id” chứa mẫu công tiêm nhiễm biết Tùy vào kiểu CSDL ứng dụng web mà mẫu có khác biệt Hình Một số mẫu công tiêm nhiễm SQL bảng anomaly Trong trình triển khai nảy sinh vấn đề có nhiều kỹ thuật để lẩn tránh việc phát mã độc hại, cố tình thêm nhiều ký tự khoảng trắng, viết chữ hoa, thường xen kẽ… Do trước tiến hành khớp chuỗi bị loại bỏ với mẫu công tiêm nhiễm cần chuẩn hóa chuỗi cách đưa toàn chuỗi chữ thường, loại bỏ khoảng trắng đứng cạnh Ngoài mẫu công tiêm nhiễm có sẵn bảng anomaly, mẫu tự động thêm vào trình chạy chế độ thực thi Khi SDriver phát câu truy vấn không khớp với khuôn mẫu hợp lệ câu truy vấn độc hại bị ngăn chặn, đồng thời thêm vào bảng anomaly 3.3 Tóm tắt SDriver để lọt mã độc Vấn đề nằm chế rút bỏ liệu câu truy vấn, SDriver loại bỏ mã độc Các ký tự thông thường hay chuỗi thích coi đặc trưng riêng câu truy vấn, thân chúng mang phong cách lập trình riêng nhà phát triển Khi loại bỏ chuỗi đầu vào nằm cặp ngoặc đơn thay ký tự đặc biệt Tác dụng điều xác định vị trí số lượng chuỗi bị xóa bỏ Bất kỳ khác biệt vị trí, số lượng chuỗi bị xóa bỏ câu truy vấn gửi từ ứng dụng web với khuôn mẫu hợp lệ coi câu truy vấn độc hại, chế độ thực thi SDriver Các chuỗi bị loại bỏ phải lọc để đảm bảo không loại bỏ nhầm chuỗi độc hại Một bảng gọi anomaly chứa mẫu công tiêm nhiễm thêm vào CSDL ssql 41 CHƯƠNG KẾT QUẢ THỰC NGHIỆM ĐÁNH GIÁ 4.1 Mô thực nghiệm SDriver với chế rút bỏ liệu Sau SDriver với chế gọi tắt SDriver đề xuất Môi trường mô thực nghiệm SDriver đề xuất sau:  Ứng dụng web sử dụng để thực nghiệm xây dựng dựa tảng JSP Servlet  Sử dụng eclipse để làm môi trường chạy ứng dụng web  Trình điều khiển kết nối JBDC  CSDL cho ứng dụng web SDriver MySQL CSDL ứng dụng web data_JDBC, CSDL cho SDriver ssql Các bước chạy mô thực nghiệm: Đặt chế độ hoạt động SDriver huấn luyện Chuyển dòng file mode.txt thành “training mode” Lần lượt thực thi câu truy vấn cách chạy chức ứng dụng web Tiến hành quan sát câu truy vấn rút bỏ liệu Khi toàn câu truy vấn có khuôn mẫu hợp lệ tương ứng CSDL ssql dừng chế độ huấn luyện Chuyển chế độ hoạt động SDriver sang thực thi Chuyển dòng file mode.txt thành “production mode” Lần lượt thực thi câu truy vấn đầu vào hợp lệ Tiến hành quan sát kết Lần lượt thử nghiệm kỹ thuật công vượt qua SDriver Quan sát kết Dưới chi tiết trình chạy mô thực nghiệm hoạt động SDriver với chế rút bỏ liệu Ở chế độ huấn luyện: Lần lượt thực thi câu truy vấn để huấn luyện cho SDriver Hình Một kết SDriver hoạt động chế độ huấn luyện với chế rút bỏ liệu Với chế rút bỏ liệu mới, chuỗi cặp ngoặc đơn không bị xóa bỏ hoàn toàn, thay vào “’?’” Do kẻ công thoải mái 42 chèn cặp dấu ngoặc đơn vào đầu vào Trong hình 3.5, câu truy vấn chưa có khuôn mẫu hợp lệ tương ứng ssql, nên SDriver tiến hành chèn thêm khuôn mẫu, dạng giá trị MD5, vào ssql Trong trường hợp, câu truy vấn có khuôn mẫu hợp lệ tương ứng ssql, SDriver đưa thông báo trùng lặp không cần thiết phải làm thêm: “SDriver: I nothing Duplicate entry This 912713a938e72f594123c7d838be9c91 exists” Ở chế độ thực thi: Khi có đầy đủ khuôn mẫu hợp lệ tất câu truy vấn ứng dụng web, chuyển SDriver sang chế độ thực thi, thay đổi dòng file mode.txt thành “production mode” Với đầu vào bình thường (hợp lệ) SDriver đưa thông báo “NO NEED TO WORRY!” chuyển tiếp câu truy vấn cho trình điều khiển kết nối để thực thi Hình Kết SDriver không phát truy vấn bất thường Thử nghiệm số kỹ thuật công tiêm nhiễm SQL vượt qua SDriver mục 3.1: Kỹ thuật công Tautologies: Nhập “admin” vào trường User name form Login, trường Password chèn chuỗi độc hại “/*' OR 1=1 OR 'a'='*/” Kết sau: Hình Tấn công Tautologies bị phát ngăn chặn 43 Như hình 3.7, SDriver phát ngăn chặn thành công công tiêm nhiễm SQL Kẻ công chèn chuỗi độc hại vào trường Password, sau rút bỏ liệu vị trí số lượng chuỗi bị xóa bỏ khác biệt so với câu truy vấn hợp lệ, đồng thời thừa thêm đoạn mã SQL Chuỗi độc hại chèn vào không bị xóa bỏ phiên SDriver trước SDriver đưa cảnh báo “SDriver 666: ATTACKING!!! This e8cac4e880585d3f10265b4df516c2b does not exists!!! SDriver 562: NO RESULTS YOU ARE ATTACKING!” Kỹ thuật công Chú thích cuối dòng: Chuỗi độc hại “admin' ” chèn vào trường User name from Login, trường Password nhập “and PASSWORD= '” Kết sau: Hình 4 Tấn công thích cuối dòng bị phát ngăn chặn Tương tự công Tautologies, kỹ thuật công thích cuối dòng bị SDriver phát ngăn chặn thành công Kỹ thuật công Union: Chuỗi độc hại “abc/*’ union select * from USER_ACCOUNT union select * from USER_ACCOUNT WHERE ‘a’=’*/” chèn vào trường User name form Login, trường Password nhập tùy ý Kết sau: 44 Hình Tấn công truy vấn Union bị phát ngăn chặn Như hình 3.9, ta thấy toàn chuỗi mã độc chèn vào không bị xóa bỏ trước, tạo nên bất thường câu truy vấn rút bỏ liệu Cuộc công bị SDriver phát ngăn chặn Kỹ thuật công truy vấn Piggy-Backed: Chuỗi độc hại “admin/*'; SHUTDOWN;-'*/” chèn vào trường User name, trường Password nhập tùy ý Kết sau: Hình Tấn công truy vấn Piggy-Backed bị phát ngăn chặn Tương tự công trên, công truy vấn Piggy-Backed vượt qua SDriver bị ngăn chặn 45 Trên số ví dụ kỹ thuật công tiêm nhiễm SQL Tuy nhiên để đánh giá xác hoạt động SDriver với chế rút bỏ liệu cần đánh giá hai khía cạnh chi phí hoạt động độ xác 4.2 Đánh giá hoạt động SDriver đề xuất Hoạt động SDriver cũ đánh giá theo hai khía cạnh chi phí hoạt động độ xác Do để so sánh hoạt động SDriver đề xuất với SDriver cũ cần đánh giá hoạt động SDriver đề xuất theo hai khía cạnh Ngoài phương pháp đánh giá hoạt động SDriver cũ sử dụng để đánh giá hoạt động SDriver đề xuất 4.2.1 Đánh giá chi phí hoạt động Chi phí hoạt động SDriver đánh giá dựa tiêu chí chi phí triển khai hiệu hệ thống Về chi phí triển khai, SDriver trình điều khiển trung gian chèn vào ứng dụng web trình điều khiển kết nối Do vậy, lượng mã nguồn thay đổi ít, thay đổi lại chuỗi kết nối tới CSDL Thứ việc huấn luyện cho SDriver cần theo kịch thích hợp để chạy ứng dụng web, đảm bảo toàn câu truy vấn ứng dụng web có khuôn mẫu hợp lệ tương ứng Trong trình huấn luyện sử dụng công cụ kiểm thử tự động để trình huấn luyện SDriver trở nên đơn giản Vậy, SDriver không đòi hỏi phải chỉnh sửa lại nhiều mã nguồn ứng dụng web, nhiên cần có thời gian để huấn luyện cho SDriver Vì chế độ huấn luyện, SDriver chạy với giả định tất câu truy vấn bình thường nên chế độ huấn luyện cần chạy môi trường không trực tuyến (offline) để tránh khả bị lọt câu truy vấn độc hại chạy trực tuyến (online) Về tiêu chí hiệu hệ thống, hiệu SDriver cũ kiểm thử hệ thống sau so sánh với Hệ thống sử dụng để thử nghiệm là:  Cấu hình máy tính: Bộ vi xử lý Intel Core i3 2.67Ghz, Ram 3GB  Môi trường: Java SE Develop Kit 8, Windows 32bit  CSDL: MySQL version 5.7 Bảng Thời gian thực thi truy vấn phiên SDriver Chế độ Huấn luyện Thực thi SDriver cũ (ms) 15.9375 3.8125 SDriver đề xuất (ms) 15.5625 4.3125 Tỷ lệ mới/cũ (%) 97.64706 113.1148 46 Bảng 4.1 thể thời gian thực thi câu truy vấn, đơn vị mili giây (ms), SDriver cũ SDriver đề xuất hai chế độ huấn luyện thực thi Cột “Tỷ lệ mới/cũ” thể so sánh tỷ lệ thời gian thực thi câu truy vấn SDriver đề xuất với SDriver cũ Trong chế độ huấn luyện, thời gian thực thi câu truy vấn SDriver đề xuất 97,65% so với SDriver cũ Điều chế rút bỏ liệu lược bỏ bớt thành phần xóa bỏ khỏi câu truy vấn tập trung vào xóa bỏ chuỗi nhập liệu đầu vào Trong chế độ thực thi, thời gian thực thi câu truy vấn SDriver đề xuất lại nhỉnh hơn, 113,11 % so với SDriver cũ Điều không nằm dự liệu SDriver đề xuất, chuỗi nhập liệu không bị loại bỏ rút bỏ liệu mà phải trải qua lần sàng lọc Ngoài ta thấy với SDriver đề xuất, thời gian thực thi câu truy vấn chế độ huấn luyện lại cao nhiều so với chế độ thực thi Dù chế độ huấn luyện chuỗi bị loại bỏ trải qua bước khớp với mẫu công tiêm nhiễm Nguyên nhân chế độ huấn luyện câu truy vấn sau rút bỏ liệu để tạo khuôn mẫu hợp lệ phải chèn thêm vào bảng “signatures” CSDL ssql 4.2.2 Đánh giá độ xác Để đánh giá độ xác SDriver với chế rút bỏ liệu có hai cách thức thực là: sử dụng công cụ kiểm thử đánh giá dựa ứng dụng web thực tế Kết đánh giá độ xác SDriver đề xuất so sánh với SDriver cũ Do trình đánh giá chạy thực nghiệm SDriver cũ SDriver đề xuất, sau so sánh kết thu Sử dụng công cụ kiểm thử để đánh giá độ xác: Bộ công cụ kiểm thử sử dụng để đánh giá độ xác SDriver đề xuất sqlmap, tải trang web https://sqlmap.org Sqlmap công cụ kiểm thử công tiêm nhiễm SQL cho ứng dụng web, mạnh mẽ đa Sqlmap hỗ trợ kiểm thử nhiều loại công tiêm nhiễm SQL khác nhau, hỗ trợ kiểm thử nhiều loại CSDL khác Tuy nhiên sqlmap không hỗ trợ tự động dò quét toàn ứng dụng web mà phải truyền tham số cho Hai phương thức truyền liệu phổ biến ứng dụng web GET POST Đối với phương thức, ta cần truyền tham số thích hợp cho sqlmap để kiểm thử Đối với phương thức GET, truyền tham số trực tiếp đường link url ứng dụng web Ví dụ kiểm thử công tiêm nhiễm SQL qua tham số “Code”, với SDriver cũ, SDriver đề xuất thực tương tự: 47 Hình Kiểm thử công tiêm nhiễm SQL với tham số code theo phương thức GET Theo hình trên, đoạn mã url truyền vào sqlmap để kiểm thử “http://localhost:8080/simplewebapp_old/editProduct?code=” Ngoài tham số “ dbs” truyền vào sqlmap với ý nghĩa cố gắng lấy danh sách CSDL máy chủ Sqlmap tự động tiêm nhiễm thông qua tham số “code” Như hình có chuỗi mã độc sqlmap cố gắng tiêm nhiễm “AND 6084=6084 AND 'jQSY'='jQSY”, SDriver phát ngăn chặn Đối với phương thức POST trước hết cần phải lấy tham số POST ứng dụng web Để làm điều cần sử dụng công cụ Burp Suite, phiên Free Edition Sau lấy thông tin phương thức POST, hình thông tin POST trang login, lưu thông tin dạng file text, ví dụ post.txt, để sử dụng 48 Hình Ví dụ thông tin phương thức POST trang login Khi có thông tin phương thức POST tiến hành kiểm thử tham số, ví dụ “userName” “password” Cũng giống với phương thức GET, tiến hành kiểm thử công tiêm nhiễm với tham số “password” với phương thức POST, sqlmap tiến hành tự động tiêm nhiễm mã độc hại, hình ví dụ Mã độc hại “UNION ALL SELECT NULL, NULL, NULL,NULL,NULL,CONCAT(CONCAT ('qbvqq','tPGmtjQVRlTUhAXXcZoqrccTNrKmrpmXcVBcEBsA'),'qpbvq')-KBkR” tiêm vào tham số “password” SDriver phát ngăn chặn 49 Hình Kiểm thử công tiêm nhiễm SQL với tham số password theo phương thức POST Trên hai ví dụ cách thức sử dụng công cụ sqlmap để kiểm thử khả phát ngăn chặn công tiêm nhiễm SDriver cũ SDriver đề xuất Tiến hành sử dụng sqlmap để thăm dò lỗ hổng từ tham số khác ứng dụng web Kết thu SDriver cũ SDriver đề xuất phát ngăn chặn thành công tất chuỗi độc hại sinh từ sqlmap Đánh giá qua ứng dụng web thực tế: Ứng dụng web thực tế sử dụng để đánh giá ba ứng dụng web có mã nguồn mở, tải trang web http://www.codewithc.com SDriver cũ SDriver đề xuất triển khai ba ứng dụng web Một danh sách chuỗi mã độc, thuộc nhiều kỹ thuật công tiêm nhiễm khác nhau, sử dụng để cố gắng tiêm nhiễm vào tham số ứng dụng web Bảng 4.2 thể kết phát ngăn chặn công tiêm nhiễm SQL SDriver cũ SDriver đề xuất Cột “tấn công tiêm nhiễm SQL” thể số công thực Cột “ngăn chặn” thể số công mà SDriver ngăn chặn thành công, cột “tỷ lệ” tỷ lệ % ngăn chặn thành công 50 Bảng Kết ngăn chặn công tiêm nhiễm SQL Ứng dụng web Tấn công tiêm nhiễm SQL 110 130 151 SDriver cũ Ngăn chặn Tỷ lệ (%) 91,8% 95,4% 96% SDriver đề xuất Ngăn chặn Tỷ lệ (%) 110 100% 130 100% 151 100% EMusic 101 Book store 124 Document 145 Manager System Trong trình kiểm thử hoạt động SDriver ứng dụng web, có nhiều loại tham số khác loại tham số thích hợp để thử nghiệm công tiêm nhiễm Ví dụ tham số “search” ứng dụng “Document Manager System”, có hai câu truy vấn thực thi “select * from documentload where status !='deleted' and author='user1'” “select * from documentshared where status !='deleted' and sharedto='user1'” Trong hai câu truy vấn tham số “search”, thay vào ứng dụng web truy vấn lấy toàn danh sách “document” có liên quan đến user sau so sánh danh sách với chuỗi truyền vào tham số search Với tham số kiểu công tiêm nhiễm SQL vô nghĩa không thực tác động đến câu truy vấn Kết SDriver không phát không đưa cảnh báo Do công tiêm nhiễm thử nghiệm vào kiểu tham số không tính vào bảng kết 51 KẾT LUẬN Kết đạt được: Sau thời gian tìm hiểu thực đề tài: “Chống công tiêm nhiễm SQL sử dụng khuôn mẫu hợp lệ theo bối cảnh” Nội dung luận văn đạt kết sau:  Hiểu tổng quan công tiêm nhiễm SQL, cách thức công phương pháp ngăn chặn  Hiểu chế hoạt động kỹ thuật chống công tiêm nhiễm SQL sử dụng khuôn mẫu hợp lệ theo bối cảnh - SDriver, áp dụng thực mô hoạt động SDriver  Tìm vấn đề tồn SDriver  Đưa đề xuất cải tiến  Chạy mô SDriver với đề xuất cải tiến đưa đánh giá Nhìn chung, luân văn đạt mục tiêu nghiên cứu đề Tuy nhiên luận văn cần phải đưa đánh giá có tính thuyết phục hơn, mở rộng ứng dụng web, mở rộng số lượng câu truy vấn, thực thi câu truy vấn có độ phức tạp cao… Hướng phát triển tiếp theo: Nội dung luận văn phát triển theo hướng sau:  Tiếp tục nghiên cứu cải tiến hiệu kỹ thuật  Nghiên cứu để triển khai nhiều tảng khác 52 Tài liệu tham khảo Dimitris Mitropoulos and Diomidis Spinellis (2009), “SDriver: LocationSpecific Signatures Prevent SQL Injection Attacks”, Computer & Security, Volume 28, pp 121-129 Inyong Lee, Sangsoo Yeo, Soonki Jeong, Jongsub Moon (2012), “A novel method for SQL injection attack detection based on removing SQL query attribute values”, Mathematical and Computer Modelling, Volume 55, pp 58-68 Open Web Application Security Project (2013), OWASP Top 10 - 2013 The Ten Most Critical Web Application Security Risks, United State William G.J Halfond, Jeremy Viegas, and Alessandro Orso (2006), “A Classification of SQL Injection Attacks and Countermeasures”, Proceedings of the IEEE International Symposium on Secure Software Engineering, (1), pp 13-15 William Stallings, Lawrie Brown (2014), “SQL Injection Attack”, Computer Security: Principles and Practice, (3), pp 163-168 ... thức Tấn công tiêm nhiễm SQL, khái niệm Tấn công tiêm nhiễm SQL, cách thức Tấn công tiêm nhiễm SQL phương pháp ngăn chặn Tấn công tiêm nhiễm SQL Từ nhận thấy: Tấn công tiêm nhiễm SQL dạng công tiêm. .. Đề xuất cải tiến chống công tiêm nhiễm SQL sử dụng khuôn mẫu hợp lệ theo bối cảnh Đưa phương pháp cải tiến chống công tiêm nhiễm SQL sử dụng khuôn mẫu hợp lệ theo bối cảnh Chương 4: Kết thực... chống công tiêm nhiễm SQL sử dụng khuôn mẫu hợp lệ theo bối cảnh, SDriver Dr Dimitris Mitropoulos Prof Diomidis Spinellis đề xuất kỹ thuật chống công tiêm nhiễm SQL khuôn mẫu hợp lệ theo bối cảnh

Ngày đăng: 18/07/2017, 21:25

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w