TÌM HIỂU VỀ CƠ CHẾ AN TOÀN MỨC HÀNG(ROWLEVEL SECURITY) VÀ TẤN CÔNG KÊNH KỀ VƯỢT QUA CƠ CHẾ NÀY TRONG SQL SERVERĐây là một tính năng cho phép kiểm soát chi tiết tốt đối với quyền truy cập vào các hàng trong bảng. RLS cho phép dễ dàng kiểm soát người dùng nào có thể truy cập dữ liệu nào Có độ trong suốt hoàn toàn cho ứng dụng. Hạn chế dữ liệu truy cập thông qua các chính sách bảo mật (security policy)1. Predicate function : Hàm có giá trị bảng nội tuyến thực hiện logic điều khiển truy cập (ví dụ: trả về một hàng hay không tùy thuộc vào tên, vai trò hoặc các thuộc tính khác của người dùng gọi).2. Security predicate: Liên kết một predicate function vào một bảng (ví dụ: áp dụng một hàm kiểm tra vai trò của nhân viên cho bảng Danh sách lương )Filter predicates: Lọc các hoạt động đọc (SELECT, UPDATE và DELETE)Block predicates: Chặn các hoạt động ghi (AFTER INSERT, AFTER UPDATE, BEFORE UPDATE, BEFORE DELETE) vị phạm predicates.3. Security policy: Một tập hợp các Security predicates được áp dụng trong một đối tượng gọi là chính sách bảo mật1. Predicate function : Hàm có giá trị bảng nội tuyến thực hiện logic điều khiển truy cập (ví dụ: trả về một hàng hay không tùy thuộc vào tên, vai trò hoặc các thuộc tính khác của người dùng gọi).2. Security predicate: Liên kết một predicate function vào một bảng (ví dụ: áp dụng một hàm kiểm tra vai trò của nhân viên cho bảng Danh sách lương )Filter predicates: Lọc các hoạt động đọc (SELECT, UPDATE và DELETE)Block predicates: Chặn các hoạt động ghi (AFTER INSERT, AFTER UPDATE, BEFORE UPDATE, BEFORE DELETE) vị phạm predicates.3. Security policy: Một tập hợp các Security predicates được áp dụng trong một đối tượng gọi là chính sách bảo mật
BAN CƠ YẾU CHÍNH PHỦ HỌC VIỆN KỸ THUẬT MẬT MÃ TÌM HIỂU VỀ CƠ CHẾ AN TỒN MỨC HÀNG (ROW-LEVEL SECURITY) VÀ TẤN CÔNG KÊNH KỀ VƯỢT QUA CƠ CHẾ NÀY TRONG SQL SERVER Subjects : An toàn sở liệu Lecturers : Trần Thị Lượng Student : Nguyễn Thị Kim Huế Main content Overview of Row-level security RLS implementation Side-Channel Attacks Overview of Row-Level Security in SQL SERVER Trần Công Giang (lớp trưởng lớp clc) Chỉ nhìn thấy danh sách thơng tin cá nhân bạn có idsv=‘clc%’ Trần Huyền Diệp (lớp trưởng lớp at) Chỉ nhình thấy danh sách thơng tin cá nhân bạn có idsv=‘at%’ Row-Level Security (RLS) ⇒ Đây tính cho phép kiểm sốt chi tiết tốt quyền truy cập vào hàng bảng ⇒ RLS cho phép dễ dàng kiểm soát người dùng truy cập liệu ⇒ Có độ suốt hồn tồn cho ứng dụng ⇒ Hạn chế liệu truy cập thơng qua sách bảo mật (security policy) Ví dụ áp dụng Row-Level Security: Một bệnh viện tạo sách bảo mật cho phép y tá xem hàng liệu cho bệnh nhân họ Ngân hàng tạo sách để hạn chế quyền truy cập vào hàng liệu tài dựa phận kinh doanh vai trò nhân viên công ty khái niệm cốt lõi Row-Level Security: Predicate function : Hàm có giá trị bảng nội tuyến thực logic điều khiển truy cập (ví dụ: trả hàng hay khơng tùy thuộc vào tên, vai trị thuộc tính khác người dùng gọi) Security predicate: Liên kết predicate function vào bảng (ví dụ: áp dụng hàm kiểm tra vai trò nhân viên cho bảng Danh sách lương ) • • Filter predicates: Lọc hoạt động đọc (SELECT, UPDATE DELETE) Block predicates: Chặn hoạt động ghi (AFTER INSERT, AFTER UPDATE, BEFORE UPDATE, BEFORE DELETE) vị phạm predicates Security policy: Một tập hợp Security predicates áp dụng đối tượng gọi sách bảo mật Filter predicates - Được áp dụng đọc liệu từ bảng sở - Ứng dụng hàng lọc cho hoạt động SELECT, UPDATE DELETE - Ứng dụng INSERT hàng, chúng lọc hoạt động khác Block predicates Ảnh hưởng đến tất hoạt động ghi - AFTER INSERT and AFTER UPDATE predicates : - Có thể ngăn người dùng cập nhật hàng thành giá trị vi phạm predicate - BEFORE UPDATE predicates: Có thể ngăn người dùng cập nhật hàng vi phạm predicate - BEFORE DELETE predicates: Có thể chặn hoạt động delete Cách tạo security policy Cú pháp : Grant to user: Tạo hàm có giá trị bảng nội tuyến chứa Filter Predicate Hàm trả giá trị khi: - Một hàng cột @idquanly giống người dùng thực truy vấn (@idquanly = USER_NAME ()) - Hoặc người dùng thực truy vấn người có quyền cao (USER_NAME () = ‘user_gvcn’) Tạo Security Policy we can see that a FILTER predicate is not blocking the user from INSERTING a record which after insert is filtered by it for that user for any operation Add the AFTER INSERT BLOCK predicate on the Players table to block user from inserting a record which after insert user doesn’t have access to it Xem danh sách Security Policies SELECT name,type_desc ,create_date ,modify_date,is_enabled,is_schema_bound FROM sys.security_policies Xem danh sách predicates security SELECT * FROM sys.security_predicates Side-Channel Attacks Tấn công kênh kề (Side-Channel Attacks): - Malicious security policy manager Trình quản lý sách bảo mật độc hại, có đủ quyền để tạo sách bảo mật cột nhạy cảm có quyền tạo thay đổi hàm có giá trị bảng nội tuyến, thơng đồng với người dùng khác có quyền chọn Bảng để thực việc lọc liệu cách tạo độc hại hàm có giá trị bảng nội tuyến thiết kế để sử dụng công kênh bên để suy liệu. - Carefully crafted queries Carefully crafted queries - Là nỗ lực truy cập liệu ẩn người dùng độc hại biết chế bảo mật triển khai - Thủ thuật sử dụng buộc truy vấn đưa ngoại lệ, giả dụ lỗi tràn chia cho số không - Kiểu công không hiển thị cho kẻ công liệu bản, cho phép họ suy luận liệu Ví dụ : Thank you For your attentive listening ! ... tra giá trị trả về: Grant to user: Tạo hàm có giá trị bảng nội tuyến chứa Filter Predicate Hàm trả giá trị khi: - Một hàng cột @idquanly giống người dùng thực truy vấn (@idquanly = USER_NAME... security SELECT * FROM sys.security_predicates Side-Channel Attacks Tấn công kênh kề (Side-Channel Attacks): - Malicious security policy manager Trình quản lý sách bảo mật độc hại, có đủ quyền... Row-level security RLS implementation Side-Channel Attacks Overview of Row-Level Security in SQL SERVER Trần Cơng Giang (lớp trưởng lớp clc) Chỉ nhìn thấy danh sách thơng tin cá nhân bạn có idsv=‘clc%’