Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 94 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
94
Dung lượng
873,34 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 HỌC AN TỒN CSDL NÂNG CAO CHƯƠNG – CÁCDẠNGTẤNCÔNG CƠ SỞ DỮ LIỆU VÀ CÁC BIỆN PHÁP PHỊNG CHỐNG Giảng viên: TS Hồng Xn Dậu E-mail: dauhx@ptit.edu.vn Bộ mơn: An tồn thơng tin Khoa: Cơng nghệ thơng tin BÀI GIẢNG AN TỒN CSDL NÂNG CAO CHƯƠNG – CÁCDẠNGTẤNCƠNGCSDL & PHỊNG CHỐNG NỘI DUNG CHƯƠNG2Tấncông chèn mã SQL Tấncông tràn đệm Tấncông từ chối dịch vụ Trojan sở liệu Top 10 lỗ hổng CSDL thực tế (theo Mark Trinidad, Application Security Inc 2012) Trang BÀI GIẢNG AN TOÀN CSDL NÂNG CAO CHƯƠNG – CÁCDẠNGTẤNCƠNGCSDL & PHỊNG CHỐNG 2.1 Tấncơng chèn mã SQL Chèn mã 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; Trang BÀI GIẢNG AN TOÀN CSDL NÂNG CAO CHƯƠNG – CÁCDẠNGTẤNCƠNGCSDL & PHỊNG CHỐNG 2.1 Tấncơng chèn mã SQL 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 Trang BÀI GIẢNG AN TOÀN CSDL NÂNG CAO CHƯƠNG – CÁCDẠNGTẤNCƠNGCSDL & PHỊNG CHỐNG 2.1 Tấncông chèn mã SQL Nguyên nhân: Dữ liệu đầu vào từ người dùng (các form nhập liệu) từ nguồn khác không kiểm tra kiểm tra không kỹ lưỡng; Sử dụng/tạo câu lệnh SQL động/trực tiếp ứng dụng, mã SQL gốc kết nối trực tiếp với liệu, sau gửi câu lệnh SQL đến máy chủ CSDL Trang BÀI GIẢNG AN TOÀN CSDL NÂNG CAO CHƯƠNG – CÁCDẠNGTẤNCƠNGCSDL & 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: Trang BÀI GIẢNG AN TOÀN CSDL NÂNG CAO CHƯƠNG – CÁCDẠNGTẤNCƠNGCSDL & PHỊNG CHỐNG 2.1.1 Chèn mã SQL – Vượt qua xác thực người dùng Trang BÀI GIẢNG AN TOÀN CSDL NÂNG CAO CHƯƠNG – CÁCDẠNGTẤNCƠNGCSDL & 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 Trang BÀI GIẢNG AN TOÀN CSDL NÂNG CAO CHƯƠNG – CÁCDẠNGTẤNCƠNGCSDL & 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 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 Người dùng đăng nhập mà không cần username password Người dùng đăng nhập với tài khoản kết Trang BÀI GIẢNG AN TOÀN CSDL NÂNG CAO CHƯƠNG – CÁCDẠNGTẤNCÔNGCSDL & PHÒNGCHỐ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 david' 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=‘david' ' AND passwd='aaaa' Nếu username david tồn bảng, câu truy vấn trả ghi tương ứng david phần kiểm tra mật bị loại bỏ ký hiệu ( ) Người dùng đăng nhập mà khơng cần password Người dùng đăng nhập với tài khoản biết username Trang 10 BÀI GIẢNG AN TOÀN CSDL NÂNG CAO CHƯƠNG – CÁCDẠNGTẤNCƠNGCSDL & PHỊNG CHỐNG 2.5 Top 10 lỗ hổng CSDL thực tế (tiếp) Excessive User & Group Privileges: Tấncông khai thác lỗi DBMS JVM EXP PERMS Oracle 11g R1: dễ dàng tìm mã khai thác Google Trang 80 BÀI GIẢNG AN TOÀN CSDL NÂNG CAO CHƯƠNG – CÁCDẠNGTẤNCƠNGCSDL & PHỊNG CHỐNG 2.5 Top 10 lỗ hổng CSDL thực tế (tiếp) Unnecessary Enabled DBMS Features (Cho phép chạy tính khơng cần thiết) Tin tặc có nhiều lựa chọn vị trí cơngCSDL tính khơng cần thiết CSDL làm tăng số điểm đầu vào Một số tính khơng cần thiết, lại có khả truy nhập sâu vào CSDL hệ thống Trang 81 BÀI GIẢNG AN TOÀN CSDL NÂNG CAO CHƯƠNG – CÁCDẠNGTẤNCƠNGCSDL & PHỊNG CHỐNG 2.5 Top 10 lỗ hổng CSDL thực tế (tiếp) Unnecessary Enabled DBMS Features: Ví dụ Trang 82 BÀI GIẢNG AN TOÀN CSDL NÂNG CAO CHƯƠNG – CÁCDẠNGTẤNCƠNGCSDL & PHỊNG CHỐNG 2.5 Top 10 lỗ hổng CSDL thực tế (tiếp) Broken Configuration Management (Quản lý cấu hình bị lỗi): tiềm ẩn nguy bị công Trang 83 BÀI GIẢNG AN TOÀN CSDL NÂNG CAO CHƯƠNG – CÁCDẠNGTẤNCƠNGCSDL & PHỊNG CHỐNG 2.5 Top 10 lỗ hổng CSDL thực tế (tiếp) Buffer Overflow (Lỗi tràn đệm): Có thể làm máy chủ ngừng hoạt động Nạp thực mã độc VD: • Sâu Slammer khai thác lỗi tràn đệm MS SQL 2000 • Lỗi tràn đệm Heap hàm REPEAT IBM DB2 Trang 84 BÀI GIẢNG AN TOÀN CSDL NÂNG CAO CHƯƠNG – CÁCDẠNGTẤNCƠNGCSDL & PHỊNG CHỐNG 2.5 Top 10 lỗ hổng CSDL thực tế (tiếp) Privilege Escalation (Leo thang đặc quyền) Lỗi giúp người dùng với quyền truy nhập thấp giành quyền truy nhập cao hơn; Từ user bình thường trở thành DBO (Database Owner), DBA (Database Admin); Trang 85 BÀI GIẢNG AN TOÀN CSDL NÂNG CAO CHƯƠNG – CÁCDẠNGTẤNCƠNGCSDL & PHỊNG CHỐNG 2.5 Top 10 lỗ hổng CSDL thực tế (tiếp) Privilege Escalation (Leo thang đặc quyền): Lỗi MDSYS.RESET_INPROG_INDEX Oracle11g R2 cho phép leo thang đặc quyền Cài đặt: Tạo thủ tục myproc chứa mã cấp quyền cho người dùng thành DBA; Tạo hàm myfn chứa mã để tạo trigger system schema Trigger chứa lệnh gọi thực myproc Trang 86 BÀI GIẢNG AN TOÀN CSDL NÂNG CAO CHƯƠNG – CÁCDẠNGTẤNCƠNGCSDL & PHỊNG CHỐNG 2.5 Top 10 lỗ hổng CSDL thực tế (tiếp) Privilege Escalation (Leo thang đặc quyền): Lỗi MDSYS.RESET_INPROG_INDEX Oracle11g R2 cho phép leo thang đặc quyền Khai thác: Khai thác lỗi MDSYS.RESET_INPROG_INDEX, yêu cầu MDSYS thực myfn để tạo trigger; Sử dụng người dùng có quyền PUBLIC để chạy lệnh SQL để kích hoạt việc thực trigger tạo Hệ thống thực trigger trigger gọi thực myproc cấp quyền DBA cho người dùng Trang 87 BÀI GIẢNG AN TOÀN CSDL NÂNG CAO CHƯƠNG – CÁCDẠNGTẤNCÔNGCSDL & PHÒNGCHỐNG 2.5 Top 10 lỗ hổng CSDL thực tế (tiếp) Privilege Escalation (Leo thang đặc quyền): Lỗi MDSYS.RESET_INPROG_INDEX Oracle11g R2 cho phép leo thang đặc quyền Trang 88 BÀI GIẢNG AN TOÀN CSDL NÂNG CAO CHƯƠNG – CÁCDẠNGTẤNCÔNGCSDL & PHÒNGCHỐNG 2.5 Top 10 lỗ hổng CSDL thực tế (tiếp) Privilege Escalation (Leo thang đặc quyền): Lỗi MDSYS.RESET_INPROG_INDEX Oracle11g R2 cho phép leo thang đặc quyền Trang 89 BÀI GIẢNG AN TOÀN CSDL NÂNG CAO CHƯƠNG – CÁCDẠNGTẤNCÔNGCSDL & PHÒNGCHỐNG 2.5 Top 10 lỗ hổng CSDL thực tế (tiếp) Denial of Service (DoS): công từ chối dịch vụ Có thể làm máy chủ CSDL hệ thống ngừng hoạt động; Có thể gây ngập lụt đường truyền; VD: • Sâu Slammer khai thác lỗi tràn đệm đển công DoS, lây lan đến khoảng 75.000 máy chủ MS SQL 2000 10 phút; • Lỗi Tivoli DB2 monitoring agent IBM DB2 LUW 9.7 cho phép tin tặc cơng DoS vào CSDL Trang 90 BÀI GIẢNG AN TỒN CSDL NÂNG CAO CHƯƠNG – CÁCDẠNGTẤNCÔNGCSDL & PHÒNGCHỐNG 2.5 Top 10 lỗ hổng CSDL thực tế (tiếp) Denial of Service (DoS): Lỗi Tivoli DB2 monitoring agent IBM DB2 LUW 9.7 cho phép tin tặc công DoS vào CSDL Trang 91 BÀI GIẢNG AN TOÀN CSDL NÂNG CAO CHƯƠNG – CÁCDẠNGTẤNCƠNGCSDL & PHỊNG CHỐNG 2.5 Top 10 lỗ hổng CSDL thực tế (tiếp) Unpatched Database (CSDL không vá) Các mã khai thác lỗi biết xuất nhanh phổ biến mạng Internet; Cần có chế cập nhật/vá lỗi phù hợp: • Cập nhật, vá lỗi với lỗi nghiêm trọng; • Cập nhật, vá lỗi định kỳ với lỗi nghiêm trọng Trang 92 BÀI GIẢNG AN TOÀN CSDL NÂNG CAO CHƯƠNG – CÁCDẠNGTẤNCƠNGCSDL & PHỊNG CHỐNG 2.5 Top 10 lỗ hổng CSDL thực tế (tiếp) 10 Unencrypted Data (Khơng mã hóa liệu) Dữ liệu nhạy cảm (tại chỗ đường truyền) không mã hóa bị nghe trộm, đánh cắp; Với liệu lưu: • Mã hóa hệ thống file • Mã hóa liệu kiểu suốt (TDE) Với liệu đường truyền/trao đổi: • Sử dụng SSL/TLS • Kerberos • Oracle ASO Trang 93 BÀI GIẢNG AN TOÀN CSDL NÂNG CAO CHƯƠNG – CÁCDẠNGTẤNCƠNGCSDL & PHỊNG CHỐNG 2.5 Top 10 lỗ hổng CSDL thực tế (tiếp) Not Doing Anything (Khơng làm cả) Chỉ dựa vào lớp bảo vệ bên ngoài, tường lửa, khơng đủ; Khơng có lớp bảo vệ đảm bảo an toàn tuyệt đối cho CSDL; Khơng làm có tác hại tương đương hành động phá hoại tin tặc Trang 94 ... '2' , '3', '4' -Thay đổi (tăng, giảm số trường) thấy hiển thị giá trị 1, 2, tìm số cột lệnh truy vấn 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. 1.3... Ký hiệu dùng để hủy tác dụng phần lệnh lại có Trang 22 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 .2 Chèn mã SQL – Sửa đổi, xóa liệu Phân tích: Bằng... sử dụng ORDER BY 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. 1.3 Chèn mã SQL – Đánh cắp thông tin CSDL Tìm thơng tin máy chủ CSDL: Sử dụng @@version