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
Trang 1TÌM HIỂU VỀ CƠ CHẾ AN TOÀN MỨC HÀNG
Student : Nguyễn Thị Kim Huế
BAN CƠ YẾU CHÍNH PHỦ HỌC VIỆN KỸ THUẬT MẬT MÃ
Trang 31 Overview of
Row-Level Security
in SQL SERVER
Trang 4Trầ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
Trang 5Þ Đâ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)
Row-Level
Security
(RLS)
Trang 6Ví dụ áp dụng Row-Level Security:
Ngân hàng có thể tạo chính sách để hạn chế quyền truy cập vào các hàng dữ liệu tài chính dựa trên bộ phận kinh doanh hoặc vai trò của nhân viên trong công ty.
Trang 73 khái niệm cốt lõi trong Row-Level Security:
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ật
Trang 8- Được áp dụng trong khi đọc dữ liệu từ bảng cơ sở
- Ứng dụng không biết về bất kỳ hàng nào được lọc cho các hoạt động SELECT, UPDATE và DELETE
- Ứng dụng có thể INSERT các hàng, ngay cả khi chúng
sẽ được lọc trong bất kỳ hoạt động nào khác
Filter predicates
Trang 9Block predicates
Ảnh hưởng đến tất cả các hoạt động ghi.
- AFTER INSERT and AFTER UPDATE predicates :
- Có thể ngăn người dùng cập nhật các hàng thành các giá trị vi phạm predicate.
- BEFORE UPDATE predicates: Có thể ngăn người dùng cập nhật
các hàng hiện đang vi phạm predicate
- BEFORE DELETE predicates: Có thể chặn hoạt động delete.
Trang 10Cách tạo security policy
Cú pháp :
Trang 12SQL Server Row Level Security Limitations:
- SCHEMABINDING
Predicate function phải được tạo ra với SCHEMABINDING
Nếu bạn tạo một hàm không có cài đặt này và sau đó thử liên kết nó với chính sách bảo mật, sẽ gặp lỗi sau:
Trang 13SQL Server Row Level Security Limitations:
- Performance Impact
Không có chính sách bảo mật
Áp dụng lọc cấp hàng:
Trang 14SQL Server Row Level Security Limitations:
- Data Leakage
Chính sách bảo mật và thông đồng : Người chịu trách nhiệm quản lý
chính sách bảo mật cũng có quyền truy cập để sửa đổi các chức năng được sử
dụng bởi các chính sách đó, thì họ có thể dễ dàng thao tác logic để mở rộng phạm vi truy cập của họ
- A middle-tier application
- Side-channel attacks
- Inserting invalid rows
- RLS is incompatible with FileStream.
- RLS is incompatible with Polybase.
Trang 152.RLS implemen
tation
Trang 16Có 3 bước cơ bản để triển khai RLS:
Bước 1 Tạo người dùng và cấp quyền truy cập Bước 2 Tạo một hàm có giá trị bảng nội tuyến chứa Filter Predicate /Block Predicate
Bước 3 Tạo Security Policy
Trang 171 Giáo viên chủ nhiệm(user_gvcn)
2 Lớp trưởng lớp CLC(user_loptruongclc)
3 Lớp trưởng lớp CT(user_loptruongct)
Create User:
Trang 18Create Table:
Trang 19Insert data
Trang 20Kiểm tra giá trị trả về:
Trang 21Grant to user:
Trang 22Tạo hàm có giá trị bảng nội tuyến chứa Filter Predicate
Hàm này trả về giá trị 1 khi:
- Một hàng trong cột @idquanly giống như người dùng thực hiện truy vấn (@idquanly = USER_NAME ())
- Hoặc nếu người dùng thực hiện truy vấn là người có quyền cao (USER_NAME () = ‘user_gvcn’)
Trang 23Tạo Security Policy
Trang 25we can see that a FILTER predicate
is not blocking the user from SERTING a record which after in- sert is filtered by it for that user for any operation.
Trang 26IN-Add the AFTER INSERT BLOCK predicate on the Players table to block user from inserting a record which after in- sert user doesn’t have access to it.
Trang 28Xem danh sách Security Policies
SELECT
name , type _ desc , create _ date , modify_date , is_enabled , is_sch ema_bound FROM sys security _ policies
Trang 29Xem danh sách predicates security
SELECT * FROM sys security _ predicates
Trang 303 Side-Channel
Attacks
Trang 31Tấn công kênh kề (Side-Channel Attacks):
- Malicious security policy manager
Trình quản lý chính sách bảo mật độc hại, có đủ quyền để tạo chính sách bảo mật trên cột nhạy cảm và có quyền tạo hoặc thay đổi các hàm có giá trị bảng nội tuyến,
có thể thông đồng với một người dùng khác có quyền chọn trên Bảng để thực
hiện việc lọc dữ liệu bằng cách tạo độc hại các hàm có giá trị bảng nội tuyến được thiết kế để sử dụng các cuộc tấn công kênh bên để suy ra dữ liệu
- Carefully crafted queries
Trang 32- Là một nỗ lực truy cập dữ liệu ẩn bởi người dùng độc hại biết cơ chế bảo mật được triển khai như thế nào.
- Thủ thuật được sử dụng là buộc truy vấn đưa ra một ngoại lệ,
giả dụ như lỗi tràn hoặc chia cho số không
- Kiểu tấn công này sẽ không hiển thị cho kẻ tấn công dữ liệu cơ bản, nhưng sẽ cho phép họ suy luận dữ liệu
Carefully crafted queries
Trang 33Ví dụ :
Trang 35Thank you
For your attentive
listening !