Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 40 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
40
Dung lượng
391,77 KB
Nội dung
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG BÀI GIẢNG MÔN AN TOÀN CƠ SỞ DỮ LIỆU NÂNG CAO CHƯƠNG – CÁC DẠNG TẤN CÔNG CƠ SỞ DỮ LIỆU VÀ CÁC BIỆN PHÁP PHÒNG CHỐNG Giảng viên: TS Hoàng Xuân Dậu E-mail: dauhx@ptit.edu.vn Bộ môn: An toàn thông tin Khoa: Công nghệ thông tin BÀI GIẢNG AN TOÀN CSDL NÂNG CAO CHƯƠNG – CÁC DẠNG TẤN CÔNG CSDL & PHÒNG CHỐNG NỘI DUNG CHƯƠNG 2 Tháng 11.2014 Tấn công chèn mã SQL Tấn công tràn đệm Tấn công từ chối dịch vụ Trojan sở liệu Trang BÀI GIẢNG AN TOÀN CSDL NÂNG CAO CHƯƠNG – CÁC DẠNG TẤN CÔNG CSDL & PHÒNG CHỐNG 2.1 Tấn công chèn mã SQL Chèn mã độc SQL (SQL Injection) kỹ thuật cho phép kẻ công chèn mã SQL vào liệu gửi đến máy chủ thực máy chủ CSDL; Tùy mức độ tinh vi, SQL Injection cho phép kẻ công: Vượt qua khâu xác thực người dùng; Chèn, xóa sửa đổi liệu; Đánh cắp thông tin CSDL; Chiếm quyền điều khiển hệ thống Nguyên nhân: liệu đầu vào từ người dùng từ nguồn khác không kiểm tra kiểm tra không kỹ lưỡng Tháng 11.2014 Trang BÀI GIẢNG AN TOÀN CSDL NÂNG CAO CHƯƠNG – CÁC DẠNG TẤN CÔNG CSDL & PHÒNG CHỐNG 2.1.1 Chèn mã SQL – Vượt qua xác thực người dùng Ví dụ: form HTML đăng nhập: Tên đăng nhập: Mật khẩu: Tháng 11.2014 Trang BÀI GIẢNG AN TOÀN CSDL NÂNG CAO CHƯƠNG – CÁC DẠNG TẤN CÔNG CSDL & PHÒNG CHỐNG 2.1.1 Chèn mã SQL – Vượt qua xác thực người dùng Tháng 11.2014 Trang BÀI GIẢNG AN TOÀN CSDL NÂNG CAO CHƯƠNG – CÁC DẠNG TẤN CÔNG CSDL & PHÒNG CHỐNG 2.1.1 Chèn mã SQL – Vượt qua xác thực người dùng Phân tích: Nếu người dùng nhập admin vào trường username abc123 vào trường passwd form, mã asp hoạt động đúng: • Nếu tồn người dùng với username password cho phép đăng nhập; • Nếu không tồn người dùng với username password từ chối đăng nhập báo lỗi Nếu người dùng nhập aaaa' OR 1=1 vào trường username chuỗi vào trường passwd form, mã asp hoạt động sai: • Chuỗi chứa câu truy vấn SQL trở thành: SELECT * FROM tbl_accounts WHERE username='aaaa' OR 1=1 ' AND passwd='aaaa' Câu truy vấn trả ghi bảng mệnh đề OR 1=1 phần kiểm tra mật bị loại bỏ ký hiệu ( ): phần lệnh sau ký hiệu ( ) coi ghi không thực Tháng 11.2014 Trang BÀI GIẢNG AN TOÀN CSDL NÂNG CAO CHƯƠNG – CÁC DẠNG TẤN CÔNG CSDL & PHÒNG CHỐNG 2.1.1 Chèn mã SQL – Vượt qua xác thực người dùng Phòng chống/sửa chữa: Kiểm soát kích thước định dạng liệu đầu vào, lọc bỏ ký tự đặc biệt, từ khóa SQL; Tránh sử dụng câu truy vấn trực tiếp, nên dùng: • Stored Procedure dạng câu lệnh SQL dạng thủ tục lưu CSDL; • Sử dụng chế truyền tham số, tạo câu truy vấn ngôn ngữ Chỉnh sửa form đăng nhập – thêm giới hạn kích thước liệu: Tháng 11.2014 Trang BÀI GIẢNG AN TOÀN CSDL NÂNG CAO CHƯƠNG – CÁC DẠNG TẤN CÔNG CSDL & PHÒNG CHỐNG 2.1.1 Chèn mã SQL – Vượt qua xác thực người dùng Chỉnh sửa mã asp xử lý đăng nhập file test_sql.asp: 0) then ' found retVal = False exit for end if next isValidUsername = retVal End Function %> Tháng 11.2014 Trang 10 BÀI GIẢNG AN TOÀN CSDL NÂNG CAO CHƯƠNG – CÁC DẠNG TẤN CÔNG CSDL & PHÒNG CHỐNG 2.1.5 Chèn mã SQL – Công cụ kiểm tra công SQLmap (có thể tải từ trang sqlmap.org) công cụ mã mở miễn phí viết Python: Cho phép kiểm tra website tìm lỗi chèn mã SQL Cho phép khai thác lỗi để điều khiển máy chủ CSDL Hỗ trợ hầu hết máy chủ quản trị CSDL nay: MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird, Sybase SAP MaxDB Tháng 11.2014 Trang 26 BÀI GIẢNG AN TOÀN CSDL NÂNG CAO CHƯƠNG – CÁC DẠNG TẤN CÔNG CSDL & PHÒNG CHỐNG 2.2 Tấn công khai thác lỗi tràn đệm Lỗi tràn đệm xảy ứng dụng cố gắng ghi liệu vượt khỏi phạm vi đệm (giới hạn cuối giới hạn đầu đệm); Lỗi tràn đệm khiến ứng dụng ngừng hoạt động, gây liệu chí giúp kẻ công kiểm soát hệ thống; Lỗi tràn đệm chiếm tỷ lệ lớn cho số lỗi gây lỗ hổng bảo mật; Không phải tất lỗi tràn đệm bị khai thác kẻ công Tháng 11.2014 Trang 27 BÀI GIẢNG AN TOÀN CSDL NÂNG CAO CHƯƠNG – CÁC DẠNG TẤN CÔNG CSDL & PHÒNG CHỐNG 2.2 Tấn công khai thác lỗi tràn đệm Các vùng nhớ chứa đệm ứng dụng: Ngăn xếp (Stack): vùng nhớ lưu tham số gọi hàm, phương thức liệu cục chúng; • Các biến cục cấp phát tĩnh Vùng nhớ heap: vùng nhớ chung lưu liệu cho ứng dụng • Bộ nhớ heap thường cấp phát động theo yêu cầu Tháng 11.2014 Trang 28 BÀI GIẢNG AN TOÀN CSDL NÂNG CAO CHƯƠNG – CÁC DẠNG TẤN CÔNG CSDL & PHÒNG CHỐNG 2.2 Tấn công khai thác lỗi tràn đệm Giải thích chế lỗi tràn đệm nhớ Stack khả khai thác lỗ hổng: Bài trình bày “Smashing the Stack” tác giả Mark Shaneck, 2003 Bài trình bày “Stack Based Buffer Overflows and Protection Mechanisms” tác giả Igor Yuklyanyuk, 2008 • • • • Cơ chế hoạt động Stack Minh họa lỗi tràn đệm Stack Giải thích khả khai thác lỗi Giải thích chế hoạt động sâu SQL Slammer MS Blast – khai thác lỗi tràn đệm Tháng 11.2014 Trang 29 BÀI GIẢNG AN TOÀN CSDL NÂNG CAO CHƯƠNG – CÁC DẠNG TẤN CÔNG CSDL & PHÒNG CHỐNG 2.2 Tấn công khai thác lỗi tràn đệm Các biện pháp phòng chống lỗi tràn đệm: Kiểm tra mã nguồn tay để tìm vá điểm có khả xảy lỗi tràn đệm; Sử dụng công cụ phân tích mã tự động tìm điểm có khả xảy lỗi tràn đệm; Đặt chế không cho phép thực mã Stack (DEP – Data Execution Prevention); Sử dụng chế bảo vệ Stack: • Thêm số ngẫu nhiên (canary) phía trước địa trở về; • Kiểm tra số ngẫu nhiên trước trở chương trình gọi để xác định khả bị thay đổi địa trở Tháng 11.2014 Trang 30 BÀI GIẢNG AN TOÀN CSDL NÂNG CAO CHƯƠNG – CÁC DẠNG TẤN CÔNG CSDL & PHÒNG CHỐNG 2.3 Tấn công từ chối dịch vụ CSDL Tấn công từ chối dịch vụ CSDL đến nhiều công DoS/DDoS vào mạng dịch vụ mạng, chúng thường lợi dụng khai thác tính năng, lỗi lỗ hổng hệ thống CSDL làm tiêu tốn tài nguyên giảm hiệu CSDL Tấn công từ chối dịch vụ CSDL gồm dạng: Lạm dụng tính CSDL Sử dụng câu truy vấn phức tạp Khai thác lỗi khiếm khuyết Tấn công thông qua lớp ứng dụng Tháng 11.2014 Trang 31 BÀI GIẢNG AN TOÀN CSDL NÂNG CAO CHƯƠNG – CÁC DẠNG TẤN CÔNG CSDL & PHÒNG CHỐNG 2.3 Tấn công từ chối dịch vụ CSDL Lạm dụng tính CSDL Tin tặc thường lợi dụng tính CSDL để công DoS Thường tính không an toàn với truy nhập từ bên Ví dụ: • Nếu ta giới hạn số lần login sai với người dùng, kẻ công biết tên người dùng thử login nhiều lần với mật sai Kết người dùng thực bị khóa tài khoản khoảng thời gian • Nếu ta cài đặt CSDL cho phép tự tăng lực số yêu cầu truy vấn tăng, kẻ công gửi đến nhiều yêu cầu giả mạo làm CSDL tăng sử dụng tài nguyên đến tối đa, dẫn đến sụp đổ ngừng hoạt động • Tin tặc tạo yêu cầu đặc biệt gây lỗi xử lý liệu đầu vào, gây máy chủ CSDL ngừng hoạt động Tháng 11.2014 Trang 32 BÀI GIẢNG AN TOÀN CSDL NÂNG CAO CHƯƠNG – CÁC DẠNG TẤN CÔNG CSDL & PHÒNG CHỐNG 2.3 Tấn công từ chối dịch vụ CSDL Sử dụng câu truy vấn phức tạp: Tin tặc tạo câu truy vấn phức tạp nhằm làm máy chủ CSDL sử dụng nhiều tài nguyên (bộ nhớ, CPU time, đĩa, ), làm giảm hiệu ngừng hoạt động máy chủ CSDL Tạo câu truy vấn với trường tính toán view với số lượng nhiều trường nhiều ghi, làm máy chủ CSDL tiêu thụ nhiều nhớ Sử dụng câu truy vấn lồng đệ quy Sử dụng phép toán có chi phí tính toán lớn IN với danh sách so sánh dài Sử dụng phép JOIN để tạo câu truy vấn cho kết lớn Sử dụng hàm người dùng định nghĩa: Tin tặc tự viết hàm để công CSDL Tháng 11.2014 Trang 33 BÀI GIẢNG AN TOÀN CSDL NÂNG CAO CHƯƠNG – CÁC DẠNG TẤN CÔNG CSDL & PHÒNG CHỐNG 2.3 Tấn công từ chối dịch vụ CSDL Khai thác lỗi khiếm khuyết: Lỗi tràn đệm Lỗi thiết lập quyền truy nhập Tấn công thông qua lớp ứng dụng Tin tặc công CSDL thông qua ứng dụng có kết nối sử dụng CSDL VD: Tin tặc thêm hàng ngàn sản phẩm vào giỏ hàng website bán hàng, sau liên tục tiến trình thêm sản phẩm xem lại toàn giỏ hàng Khi lượng sản phẩm đủ lớn gây chậm đình trệ hoạt động CSDL website Tháng 11.2014 Trang 34 BÀI GIẢNG AN TOÀN CSDL NÂNG CAO CHƯƠNG – CÁC DẠNG TẤN CÔNG CSDL & PHÒNG CHỐNG 2.3 Tấn công từ chối dịch vụ CSDL – Phòng chống Cấu hình: Giảm thiểu vị trí mà tin tặc công CSDL: xóa bỏ vô hiệu hóa tài khoản, tính dịch vụ không sử dụng Hạn chế người dùng bên trực tiếp kết nối đến CSDL Đặt giới hạn sử dụng tài nguyên: Đặt giới hạn sử dụng tài nguyên cho người dùng, số lượng câu truy vấn/phút, thời gian hết hạn với câu truy vấn lớn, ngưỡng sử dụng nhớ CPU, Giới hạn giúp giảm nguy bị công DoS Cập nhật vá: Cần cập nhật thường xuyên vá cho HĐH, ứng dụng hệ quản trị CSDL để giảm thiểu công khai thác lỗi, lỗ hổng biết Tháng 11.2014 Trang 35 BÀI GIẢNG AN TOÀN CSDL NÂNG CAO CHƯƠNG – CÁC DẠNG TẤN CÔNG CSDL & PHÒNG CHỐNG 2.3 Tấn công từ chối dịch vụ CSDL – Phòng chống Giám sát hoạt động CSDL: Sử dụng hệ thống giám sát để phát cảnh báo hành vi bất thường, truy vấn không hợp lệ Tường lửa cho CSDL: Dùng để lọc phát câu tru vấn độc hại Tường lửa cho ứng dụng web: Dùng để lọc yêu cầu gửi đến máy chủ ứng dụng web Tháng 11.2014 Trang 36 BÀI GIẢNG AN TOÀN CSDL NÂNG CAO CHƯƠNG – CÁC DẠNG TẤN CÔNG CSDL & PHÒNG CHỐNG 2.4 Trojan sở liệu Trojan (hoặc Trojan horses) lấy tên theo tích "Con ngựa thành Troy" Tháng 11.2014 Trang 37 BÀI GIẢNG AN TOÀN CSDL NÂNG CAO CHƯƠNG – CÁC DẠNG TẤN CÔNG CSDL & PHÒNG CHỐNG 2.4 Trojan sở liệu Trojans chứa mã độc, thường giả danh chương trình có ích, nhằm lừa người dùng kích hoạt chúng Trojans thường sử dụng để thực thi gián tiếp tác vụ, mà tác giả chúng thực trực tiếp quyền truy nhập Các trojans CSDL thường đoạn mã độc SQL nhúng vào thủ tục CSDL, chia thành dạng: Một công thực việc chèn mã gọi thực Trojan; Một công sử dụng người dùng tiến trình thực việc chèn mã Trojan sau gọi thực Trojan nhằm trích xuất thông tin thực hành động CSDL; Một công thực việc chèn mã Trojan sau sử dụng người dùng tiến trình khác gọi thực Trojan; Một công sử dụng người dùng tiến trình thực việc chèn mã Trojan sau sử dụng người dùng tiến trình khác gọi thực Trojan Tháng 11.2014 Trang 38 BÀI GIẢNG AN TOÀN CSDL NÂNG CAO CHƯƠNG – CÁC DẠNG TẤN CÔNG CSDL & PHÒNG CHỐNG 2.4 Trojan sở liệu Ví dụ: Tin tặc sử dụng người dùng tiến trình để chèn mã SQL Trojan vào thủ tục: • Một lập trình viên kinh nghiệm lấy đoạn mã thủ tục mạng từ nguồn không rõ ràng đưa vào CSDL mà không hiểu rõ đoạn mã thực công việc gì; • Khi thủ tục gọi, trojan kích hoạt Trojan gọi thực sử dụng người dùng tiến trình đó: • Một thủ tục CSDL đặt chạy định kỳ vào cuối tháng để tính lương cho tất nhân viên công ty; • Tin tặc nắm điều chèn mã trojan vào thủ tục kích hoạt thủ tục chạy Tháng 11.2014 Trang 39 BÀI GIẢNG AN TOÀN CSDL NÂNG CAO CHƯƠNG – CÁC DẠNG TẤN CÔNG CSDL & PHÒNG CHỐNG 2.4 Trojan sở liệu – Phòng chống Kiểm soát việc tạo sửa thủ tục CSDL: Hạn chế quyền truy nhập user thao tác liệu: • Không cho phép tạo sửa thủ tục/hàm CSDL môi trường máy chủ sản xuất (production server) sử dụng người dùng thao tác liệu; • Các thủ tục cần tạo, sửa test kỹ môi trường máy chủ phát triển (development server) triển khai chủ sản xuất sử dụng người dùng quản trị Không sử dụng code SQL từ nguồn không rõ ràng Ghi logs lưu phiên mã nguồn thủ tục hàm Giám sát việc thực thủ tục: Các ghi logs giám sát chặt chẽ việc thực thủ tục quan trọng, có độ phức tạp cao, thủ tục chạy định kỳ kích hoạt triger; Cấm hạn chế quyền thực thủ tục mở rộng thủ tục hệ thống – chứa đoạn mã can thiệp vào CSDL, máy chủ CSDL hệ điều hành Tháng 11.2014 Trang 40 [...]... CHƯƠNG 2 – CÁC DẠNG TẤN CÔNG CSDL & PHÒNG CHỐNG 2.1.5 Chèn mã SQL – Phòng chống Các biện pháp phòng chống dựa trên kiểm tra và lọc dữ liệu đầu vào: Kiểm tra tất cả các dữ liệu đầu vào, đặc biệt dữ liệu nhập từ người dùng và từ các nguồn không tin cậy; Kiểm tra định dạng và kích thước dữ liệu đầu vào; Tạo các bộ lọc để lọc bỏ các ký tự đặc biệt và các từ khóa của các ngôn ngữ trong các trường... ngưỡng sử dụng bộ nhớ và CPU, Giới hạn giúp giảm nguy cơ bị tấn công DoS Cập nhật các bản vá: Cần cập nhật thường xuyên các bản vá cho HĐH, ứng dụng và các hệ quản trị CSDL để giảm thiểu các tấn công khai thác các lỗi, lỗ hổng đã biết Tháng 11.2014 Trang 35 BÀI GIẢNG AN TOÀN CSDL NÂNG CAO CHƯƠNG 2 – CÁC DẠNG TẤN CÔNG CSDL & PHÒNG CHỐNG 2.3 Tấn công từ chối dịch vụ CSDL – Phòng chống Giám sát hoạt... kẻ tấn công có thể sử dụng: • Các ký tự đặc biệt: *, ‘, =, -• Các từ khóa: SELECT, INSERT, UPDATE, DELETE, DROP, Tháng 11.2014 Trang 23 BÀI GIẢNG AN TOÀN CSDL NÂNG CAO CHƯƠNG 2 – CÁC DẠNG TẤN CÔNG CSDL & PHÒNG CHỐNG 2.1.5 Chèn mã SQL – Phòng chống Các biện pháp phòng chống dựa trên việc sử dụng thủ tục (stored procedures) trong CSDL: Đưa tất cả các câu truy vấn (SELECT) và cập nhật, sửa xóa dữ liệu. .. khai thác bởi kẻ tấn công Tháng 11.2014 Trang 27 BÀI GIẢNG AN TOÀN CSDL NÂNG CAO CHƯƠNG 2 – CÁC DẠNG TẤN CÔNG CSDL & PHÒNG CHỐNG 2.2 Tấn công khai thác lỗi tràn bộ đệm Các vùng nhớ chứa bộ đệm của ứng dụng: Ngăn xếp (Stack): vùng nhớ lưu các tham số gọi hàm, phương thức và dữ liệu cục bộ của chúng; • Các biến cục bộ được cấp phát tĩnh Vùng nhớ heap: là vùng nhớ chung lưu dữ liệu cho ứng dụng... thích cơ chế hoạt động của sâu SQL Slammer và MS Blast – khai thác lỗi tràn bộ đệm Tháng 11.2014 Trang 29 BÀI GIẢNG AN TOÀN CSDL NÂNG CAO CHƯƠNG 2 – CÁC DẠNG TẤN CÔNG CSDL & PHÒNG CHỐNG 2.2 Tấn công khai thác lỗi tràn bộ đệm Các biện pháp phòng chống lỗi tràn bộ đệm: Kiểm tra mã nguồn bằng tay để tìm và vá các điểm có khả năng xảy ra lỗi tràn bộ đệm; Sử dụng các công cụ phân tích mã tự động tìm các. .. vừa đủ để truy cập các bảng biểu, thực hiện câu truy vấn và chạy các thủ tục Tốt nhất, không cấp quyền thực hiện các câu truy vấn, cập nhật, sửa, xóa trực tiếp dữ liệu; Thủ tục hóa tất cả các câu lệnh và chỉ cấp quyền thực hiện thủ tục Tháng 11.2014 Trang 25 BÀI GIẢNG AN TOÀN CSDL NÂNG CAO CHƯƠNG 2 – CÁC DẠNG TẤN CÔNG CSDL & PHÒNG CHỐNG 2.1.5 Chèn mã SQL – Công cụ kiểm tra và tấn công SQLmap (có thể... hoạt động của CSDL của website Tháng 11.2014 Trang 34 BÀI GIẢNG AN TOÀN CSDL NÂNG CAO CHƯƠNG 2 – CÁC DẠNG TẤN CÔNG CSDL & PHÒNG CHỐNG 2.3 Tấn công từ chối dịch vụ CSDL – Phòng chống Cấu hình: Giảm thiểu các vị trí mà tin tặc có thể tấn công CSDL: xóa bỏ hoặc vô hiệu hóa các tài khoản, các tính năng và các dịch vụ không sử dụng Hạn chế người dùng bên ngoài trực tiếp kết nối đến CSDL Đặt giới hạn... – CÁC DẠNG TẤN CÔNG CSDL & PHÒNG CHỐNG 2.3 Tấn công từ chối dịch vụ CSDL Khai thác các lỗi và khiếm khuyết: Lỗi tràn bộ đệm Lỗi thiết lập quyền truy nhập Tấn công thông qua lớp ứng dụng Tin tặc có thể tấn công CSDL thông qua ứng dụng có kết nối và sử dụng CSDL VD: Tin tặc có thể thêm hàng ngàn sản phẩm vào 1 giỏ hàng trên một website bán hàng, sau đó liên tục tiến trình thêm sản phẩm và. .. TOÀN CSDL NÂNG CAO CHƯƠNG 2 – CÁC DẠNG TẤN CÔNG CSDL & PHÒNG CHỐNG 2.1.5 Chèn mã SQL – Phòng chống Các biện pháp phòng chống dựa trên thiết lập quyền truy nhập người dùng cho phù hợp: Không sử dụng người dùng có quyền system admin hoặc database owner làm người dùng truy cập dữ liệu; • Ví dụ: không dùng user sa (MS-SQL) hoặc root (MySQL) làm user truy cập dữ liệu Chỉ dùng các user này cho mục đích quản... các câu truy vấn phức tạp Khai thác các lỗi hoặc khiếm khuyết Tấn công thông qua lớp ứng dụng Tháng 11.2014 Trang 31 BÀI GIẢNG AN TOÀN CSDL NÂNG CAO CHƯƠNG 2 – CÁC DẠNG TẤN CÔNG CSDL & PHÒNG CHỐNG 2.3 Tấn công từ chối dịch vụ CSDL Lạm dụng các tính năng của CSDL Tin tặc thường lợi dụng các tính năng của CSDL để tấn công DoS Thường các tính năng này không an toàn với truy nhập từ bên ngoài Ví