Tìm hiểu về Row Level Security (RLS)

18 208 2
Tìm hiểu về Row Level Security (RLS)

Đ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

row level securitycơ sở dữ liệu1.1.Tìm hiểu về Rowlevel Security (RLS)Ở SQL Server 2016 trở đi có giới thiệu một tính năng gọi là bảo mật cấp độ hàng(Rowlevel security). RLS cho phép giới hạn việc truy xuất các hàng (record) dựa trên các thuộc tính của người dùng thực thi (chẳng hạn như vai trò hoặc bộ phận) thông qua các chính sách bảo mật security policy. Một chính sách bảo mật mô tả các quy định quản lý việc truy xuất các dòng dữ liệu.Dưới đây là các ví dụ thiết kế về cách sử dụng RLS: Một bệnh viện có thể tạo ra một chính sách bảo mật cho phép các y tá chỉ xem các hàng dữ liệu cho bệnh nhân của họ. 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. Một ứng dụng nhiều người thuê có thể tạo ra một chính sách để thực thi sự phân tách hợp lý các hàng dữ liệu của mỗi người thuê với các hàng của người thuê khác. Hiệu quả đạt được bằng cách lưu trữ dữ liệu cho nhiều người thuê trong một bảng. Mỗi người thuê chỉ có thể thấy các hàng dữ liệu của họ.TẤN CÔNG KÊNH KỀ VÀO CƠ CHẾ RLS3.1. Tổng quan về tấn công kênh kềTấn công kênh kề (SideChannel Attacks) 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.Các cuộc tấn công như vậy sẽ yêu cầu thông đồng (hoặc cấp phép quá mức được cấp cho người dùng độc hại) và có thể sẽ yêu cầu một số lần sửa đổi chính sách (yêu cầu quyền xóa vị từ để phá vỡ liên kết lược đồ), sửa đổi các hàm có giá trị của bảng nội tuyến và liên tục chạy các câu lệnh chọn trên bảng đích. Nên giới hạn quyền khi cần thiết và theo dõi mọi hoạt động đáng ngờ. Hoạt động như chính sách thay đổi liên tục và các hàm có giá trị bảng nội tuyến liên quan đến bảo mật cấp hàng cần được giám sát.3.2. Thực hiện tấn công kênh kề Thực hiện tấn công bằng cách đưa ra truy vấn ngoại lệ Divide By Zero.  

BAN CƠ YẾU CHÍNH PHỦ HỌC VIỆN KỸ THUẬT MẬT MÃ BÁO CÁO BÀI TẬP LỚN 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 Học phần : An toàn sở liệu Giảng viên hướng dẫn : Trần Thị Lượng Sinh viên thực : Nguyễn Thị Kim Huế AT13CLC0110 Hà Nội, 2019 Nhận xét giảng viên: ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… Chữ ký giảng viên MỤC LỤC LỜI MỞ ĐẦU Dữ liệu tổ chức, doanh nghiệp điều quan trọng phận cơng nghệ thơng tin họ phải có nhiều biện pháp để đảm bảo liệu không rơi vào tay kẻ xấu Các lập trình viên DBA (Database Administrator) cần thiết lập lớp bảo mật khác liệu để người dùng xem liệu, hàng lọc từ bảng mà họ có quyền truy cập Các lập trình viên DB thường tạo khung nhìn trừu tượng thủ tục lưu trữ với logic phức tạp đầu bảng cách sử dụng bảng ánh xạ có chứa khóa truy cập liệu người dùng Đơi logic bảo mật không tuân theo tiêu chuẩn có nhiều phiên khác sở liệu đó, việc theo dõi, cập nhật trở nên khó khăn, khó kiểm sốt Câu hỏi đặt : “Có tính bảo mật có sẵn SQL Server đáp ứng u cầu khơng?”.Trong SQL Server 2016, nhiều tính bảo mật giới thiệu Bảo mật cấp độ hàng, ‘Ln mã hóa,’ Mặt nạ liệu động, ‘Tăng cường mã hóa liệu suốt giúp người dùng bảo vệ liệu họ Trong báo cáo này, thảo luận tính bảo mật Row Level Security (RLS), cho phép kiểm soát quyền truy cập vào hàng bảng Row Level Security cho phép bạn thực hạn chế liệu dựa đặc điểm người dùng thực truy vấn RLS giúp kiểm soát truy cập liệu dễ dàng với độ suốt hoàn toàn cho người dùng khác PHẦN TỔNG QUAN VỀ CƠ CHẾ AN TOÀN MỨC HÀNG (ROW-LEVEL SECURITY) 1.1 Tìm hiểu Row-level Security (RLS) Ở SQL Server 2016 trở có giới thiệu tính gọi bảo mật cấp độ hàng(Row-level security) RLS cho phép giới hạn việc truy xuất hàng (record) dựa thuộc tính người dùng thực thi (chẳng hạn vai trò phận) thơng qua sách bảo mật security policy Một sách bảo mật mô tả quy định quản lý việc truy xuất dòng liệu Dưới ví dụ thiết kế cách sử dụng RLS: - 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 - Một ứng dụng nhiều người th tạo sách để thực thi phân tách hợp lý hàng liệu người thuê với hàng người thuê khác Hiệu đạt cách lưu trữ liệu cho nhiều người thuê bảng Mỗi người thuê thấy hàng liệu họ RLS giới thiệu kiểm sốt truy cập dựa predicate Nó có tính đánh giá linh hoạt, tập trung, dựa predicate Predicate dựa siêu liệu tiêu chí khác mà quản trị viên xác định phù hợp Predicate sử dụng làm tiêu chí để xác định xem người dùng có quyền truy cập phù hợp vào liệu dựa thuộc tính người dùng hay khơng? Kiểm sốt truy cập dựa nhãn thực cách sử dụng kiểm soát truy cập dựa predicate 1.2 Một số khái niệm sử dụng RLS Có ba khái niệm cốt lõi sử dụng RLS a Predicate function(hàm vị từ): 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 chính, vai trò thuộc tính khác người dùng gọi) b Security predicate(vị từ bảo mật): Liên kết predicatefunction 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 ) Có hai loại security predicates: • Filter predicates: Âm thầm lọc hàng có sẵn để đọc hoạt động (SELECT, UPDATE DELETE) • Block predicates: chặn hoạt động ghi (AFTER INSERT, AFTER UPDATE, BEFORE UPDATE, BEFORE DELETE) vị phạm predicates c Security policy(chính sách bảo mật): Một tập hợp Security predicatesđược áp dụng đối tượng gọi sách bảo mật (ví dụ: bạn có sách ”Tài khoản” áp dụng nhiều predicate function cho bảng liên quan đến “Tài khoản” có sách “Nhân sự” áp dụng số predicate function cho bảng HR khác nhau) Quyền truy cập vào liệu cấp hàng bảng bị hạn chế security predicate xác định hàm có giá trị bảng nội tuyến Hàm sau gọi thực thi security policy Đối với filter predicates, ứng dụng hàng lọc từ tập kết Nếu tất hàng lọc, null trả Đối với block predicates, thao tác vi phạm predicates không báo lỗi Filter predicates áp dụng đọc liệu từ bảng sở Chúng ảnh hưởng đến tất hoạt động nhận: SELECT, DELETE and UPDATE Người dùng chọn xóa hàng lọc Người dùng khơng thể cập nhật hàng lọc Nhưng, cập nhật hàng theo cách mà chúng lọc sau 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 1.3 Những hành vi Filter predicates Xác định security policy lọc hàng bảng Ứng dụng hàng lọc cho hoạt động SELECT, UPDATE DELETE Bao gồm tình tất hàng lọc Ứng dụng INSERT hàng, chúng lọc hoạt động khác 1.4 Những hành vi Block predicates Block predicates cho UPDATE: chia thành hoạt động riêng biệt cho BEFORE AFTER Do đó, ví dụ, bạn chặn người dùng cập nhật hàng để có giá trị cao giá trị Nếu loại logic bắt buộc, bạn phải sử dụng kích hoạt với bảng trung gian DELETED INSERTED để tham chiếu giá trị cũ Trình tối ưu hóa khơng kiểm tra block predicate AFTER UPDATE cột sử dụng predicate function khơng thay đổi Ví dụ: Alice thay đổi mức lương lớn 100.000 Alice thay đổi địa nhân viên có mức lương lớn 100.000 miễn cột tham chiếu predicate không thay đổi 1.5 Những hạn chế chế RLS Có vài hạn chế sử dụng chế RLS sau : - Predicate functionphải tạo SCHEMABINDING Nếu function tạo mà khơng có SCHEMABINDING ta cố gắng liên kết với sách bảo mật, đưa lỗi - Các khung nhìn khơng thể tạo bảng mà RLS - Các bảng nhớ không hỗ trợ cho RLS - Giảm hiệu suất người dùng PHẦN TRIỂN KHAI CƠ CHẾ ROW-LEVEL SECURITY 2.1 Cách tạo security policy Tạo sách bảo mật cho bảo mật cấp hàng Cú pháp: Đối số : security_policy_name :Tên sách bảo mật Tên sách bảo mật phải tuân thủ quy tắc cho mã định danh phải sở liệu lược đồ schema_name : Là tên lược đồ mà sách bảo mật thuộc Lược đồ yêu cầu liên kết lược đồ [ FILTER | BLOCK ] : Loại vị từ bảo mật cho hàm liên kết với bảng đích FILTER biến vị ngữ âm thầm lọc hàng có sẵn để đọc hoạt động Các biến vị ngữ BLOCK rõ ràng chặn hoạt động ghi vi phạm predicate function tvf_schema_name.security_predicate_function_name : Là hàm giá trị bảng nội tuyến sử dụng làm vị ngữ thực thi truy vấn bảng mục tiêu Nhiều biến vị ngữ bảo mật xác định cho hoạt động DML cụ thể bảng cụ thể Hàm giá trị bảng nội tuyến phải tạo tùy chọn SCHEMABINDING { column_name | expression } :Tên biểu thức cột sử dụng làm tham số cho hàm vị ngữ bảo mật table_schema_name.table_name:Là bảng mục tiêu mà vị từ bảo mật áp dụng Nhiều sách bảo mật bị vơ hiệu hóa nhắm mục tiêu bảng cho hoạt động DML cụ thể, bật sách thời điểm :Hoạt động DML cụ thể mà vị từ khối áp dụng [ STATE = { ON | OFF } ] :Cho phép vơ hiệu hóa sách bảo mật để thực thi vị từ bảo mật bảng mục tiêu Nếu khơng định, sách bảo mật tạo bật [ SCHEMABINDING = { ON | OFF } ] : Cho biết liệu tất hàm vị ngữ sách phải tạo tùy chọn SCHEMABINDING Theo mặc định, tất chức phải tạo SCHEMABINDING [table_schema_name.] table_name : Là bảng mục tiêu mà vị từ bảo mật áp dụng Nhiều sách bảo mật bị vơ hiệu hóa nhắm mục tiêu bảng nhất, bật sách thời điểm 2.2 Triển khai RLS với “Filter Predicate” 2.1.1 Tạo tài khoản người dùng - Ví dụ tạo tài khoản : Giáo viên chủ nhiệm(user_gvcn) Lớp trưởng lớp CLC(user_loptruongclc) Lớp trưởng lớp CT(user_loptruongct) - Tạo bảng sinh viênvà chèn liệu: - 2.1.2 Tạo hàm có giá trị bảng nội tuyến chứa Filter Predicate 2.1.3 Tạo Security Policy thêm Filter Predicate Predicate chặn theo ý Sang phần sau tìm hểu rõ Block Predicate 2.3 Triển khaiRLS với “BlockPredicate” Từ kết thông báo lỗi không cho thực thi, thấy BLOCK Predicate chặn người dùng user_loptruongclc chèn ghi mà sau người dùng chèn khơng có quyền truy cập vào 2.4 Xem danh sách Security Predicates Security Policies 2.4.1 Xem danh sách Security Policies 2.4.2 Xem danh sách predicates security PHẦN TẤN CÔNG KÊNH KỀ VÀO CƠ CHẾ RLS 3.1 Tổng quan công kênh kề Tấn công kênh kề (Side-Channel Attacks) 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 Các công yêu cầu thông đồng (hoặc cấp phép mức cấp cho người dùng độc hại) yêu cầu số lần sửa đổi sách (yêu cầu quyền xóa vị từ để phá vỡ liên kết lược đồ), sửa đổi hàm có giá trị bảng nội tuyến liên tục chạy câu lệnh chọn bảng đích Nên giới hạn quyền cần thiết theo dõi hoạt động đáng ngờ Hoạt động sách thay đổi liên tục hàm có giá trị bảng nội tuyến liên quan đến bảo mật cấp hàng cần giám sát 3.2 Thực công kênh kề - Thực công cách đưa truy vấn ngoại lệ Divide By Zero TÀI LIỆU THAM KHẢO [1] https://docs.microsoft.com/en-us/sql/relational-databases/security/row-levelsecurity?view=sql-server-2017 [2] https://www.mssqltips.com/sqlservertip/4028/sql-server-2016-row-levelsecurity-example [3] https://www.sqlservercentral.com/articles/introduction-to-row-levelsecurity-in-sql-2016 ... PHẦN TỔNG QUAN VỀ CƠ CHẾ AN TOÀN MỨC HÀNG (ROW- LEVEL SECURITY) 1.1 Tìm hiểu Row- level Security (RLS) Ở SQL Server 2016 trở có giới thiệu tính gọi bảo mật cấp độ hàng (Row- level security) RLS cho... vệ liệu họ Trong báo cáo này, thảo luận tính bảo mật Row Level Security (RLS), cho phép kiểm soát quyền truy cập vào hàng bảng Row Level Security cho phép bạn thực hạn chế liệu dựa đặc điểm người... https://docs.microsoft.com/en-us/sql/relational-databases /security /row- levelsecurity?view=sql-server-2017 [2] https://www.mssqltips.com/sqlservertip/4028/sql-server-2016 -row- levelsecurity-example [3] https://www.sqlservercentral.com/articles/introduction-to -row- levelsecurity-in-sql-2016

Ngày đăng: 03/05/2020, 20:55

Từ khóa liên quan

Mục lục

  • MỤC LỤC

  • LỜI MỞ ĐẦU

  • PHẦN 1. TỔNG QUAN VỀ CƠ CHẾ AN TOÀN MỨC HÀNG (ROW-LEVEL SECURITY)

    • 1.1. Tìm hiểu về Row-level Security (RLS)

    • 1.2. Một số khái niệm sử dụng trong RLS

    • 1.3. Những hành vi Filter predicates

    • 1.4. Những hành vi Block predicates

    • 1.5. Những hạn chế của cơ chế RLS

    • PHẦN 2. TRIỂN KHAI CƠ CHẾ ROW-LEVEL SECURITY

      • 2.1. Cách tạo security policy

      • 2.2. Triển khai RLS với “Filter Predicate”

        • 2.1.1. Tạo tài khoản người dùng

        • 2.1.2. Tạo hàm có giá trị bảng nội tuyến chứa Filter Predicate

        • 2.1.3. Tạo Security Policy và thêm Filter Predicate

        • 2.3. Triển khaiRLS với “BlockPredicate”

        • 2.4. Xem danh sách các Security Predicates và Security Policies

          • 2.4.1. Xem danh sách Security Policies

          • 2.4.2. Xem danh sách predicates security

          • PHẦN 3. TẤN CÔNG KÊNH KỀ VÀO CƠ CHẾ RLS

            • 3.1. Tổng quan về tấn công kênh kề

            • 3.2. Thực hiện tấn công kênh kề

            • TÀI LIỆU THAM KHẢO

Tài liệu cùng người dùng

Tài liệu liên quan