1. Trang chủ
  2. » Giáo Dục - Đào Tạo

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

53 19 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

ĐẠ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 hồn tồ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 AMNESIA API CSDL SQL 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] Hình 2 Chế độ huấn luyện SDriver Hình Chế độ thực thi SDriver Hình Ví dụ vai trị stack trace Hình Kiến trúc thực tế SDriver Hình Giao diện ứng dụng web demo Hình Một kết SDriver hoạt động chế độ huấn luyện Hình Thơng báo trùng lặp SDriver Hình Bảng signatures ssql Hình Phương thức rút bỏ liệu câu truy vấn Hình Các mẫu loại bỏ khỏi câu truy vấn Hình 3 Ví dụ kỹ thuật cơng tautologies Hình Ví dụ kỹ thuật cơng thích cuối dịng Hình Ví dụ kỹ thuật công truy vấn union Hình Ví dụ kỹ thuật cơng truy vấn piggy-backed Hình Cơ chế rút bỏ liệu câu truy vấn đề xuất Hình Một số mẫu công tiêm nhiễm SQL bảng anomaly Hình Một kết SDriver hoạt động chế độ huấn luyện với chế rút bỏ liệu Kết SDrive Hình Tấn cơng Tautologi Hình Tấn cơng thích Hình 4 Tấn cơng truy vấn U Hình Hình 6Tấn cơng truy vấn Hình 7Kiểm thử cơng thức GET Hình 8Ví dụ thơng tin phư Hình 9Kiểm thử cơng phương thức POST Danh mục bảng, biểu Bảng Bảng Thời gian thực thi Kết ngăn chặn MỤC LỤC CHƯƠNG TỔNG QUAN VỀ TẤN CÔNG TIÊM NHIỄM SQL VÀ CÁC PHƯƠNG PHÁP PHÒNG CHỐNG 1.1 Khái niệm công tiêm 1.2 Phân loại công tiêm 1.2.1 Cơ chế tiêm nhiễm 1.2.2 Mục đích cơng 1.2.3 Kỹ thuật công 1.3 Các phương pháp ngăn 1.3.1 Phương pháp mã phòng thủ 1.3.2 Phương pháp phát ngăn chặn 1.4 Tóm Tắt CHƯƠNG PHƯƠNG PHÁP SDRIVER TRONG CHỐNG TẤN CÔNG TIÊM NHIỄM SQL 2.1 Phương pháp chống hợp lệ theo bối cảnh, SDriver 2.2 Cách thức hoạt động củ 2.2.1 Chế độ huấn luyện 2.2.2 Chế độ thực thi 2.3 Stack trace 2.4 Mô hoạt động c 2.4.1 Môi trường mô 2.4.2 Chạy mô hoạt động SDriver 2.5 Tóm tắt 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 3.1 Phân tích hoạt động củ 3.2 Đề xuất cải tiến 3.2.1 Cơ chế rút bỏ liệu c 3.2.2 Triển khai chế rút b 3.3.Tóm tắt CHƯƠNG KẾT QUẢ THỰC NGHIỆM ĐÁNH GIÁ 4.1.Mô thực nghiệm SDrive 4.2.Đánh giá hoạt động SDrive 4.2.1 Đánh giá chi phí hoạt động 4.2.2 Đánh giá độ xác KẾT LUẬN Tài liệu tham khảo 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ó tồ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 khơng có 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 (locationspecific 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 đề cị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 CHƯƠNG TỔNG QUAN VỀ TẤN CÔNG TIÊM NHIỄM SQL VÀ CÁC PHƯƠNG PHÁP PHÒNG CHỐNG 1.1 Khái niệm công tiêm nhiễm SQL Theo OWASP (Open Web Application security Project), công tiêm nhiễm SQL mối đe dọa an ninh phổ biến nguy hiểm [2] Tấn công tiêm nhiễm SQL dạng công tiêm nhiễm mã độc mà kẻ công cố gắng khai thác lỗ hổng ứng dụng web để tiến hành tiêm nhiễm mã độc vào câu truy vấn SQL ứng dụng web nhằm truy cập trái phép vào sở liệu đằng sau ứng dụng web Khi kẻ cơng lấy cắp thơng tin khách hàng, người dùng, có khơng thơng tin nhạy cảm tên, tuổi, địa chỉ, số tài khoản… Tùy vào môi trường, kẻ cơng chí cịn thực thao tác sửa, xóa liệu, thực thi câu lệnh hệ điều hành hay thực công từ chối dịch vụ Tấn công tiêm nhiễm SQL thường sử dụng để khai thác lỗ hổng ứng dụng web có hệ quản trị sở liệu quan hệ MySQL, MS SQL, DB2, Oracle… Hình 1.1 từ [4, pp 164] ví dụ điển hình cho Tấn cơng tiêm nhiễm SQL Các bước thực sau: Hình 1 Một Tấn công tiêm nhiễm SQL điển hình 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 đốn cấu trúc câu truy vấn khó đố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 hồn tồ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 khn 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 q 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 khn 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 tồ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 tồn chuỗi chữ thường, loại bỏ khoảng trắng đứng cạnh Ngồ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 khn 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 Đặ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ó khn 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 q 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ỏ hồn tồ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ó khn 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ó khn 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 tồ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 Ngồ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 tồn câu truy vấn ứng dụng web có khn mẫu hợp lệ tương ứng Trong q 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 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 ngồi dự liệu SDriver đề xuất, chuỗi nhập liệu khơng bị loại bỏ rút bỏ liệu mà cịn phải trải qua lần sàng lọc Ngồ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 EMusic Book store Document 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 khơng có 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 ... Đề 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... 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. .. 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: 11/11/2020, 21:38

Xem thêm:

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

TÀI LIỆU LIÊN QUAN

w