Các phương pháp bảo mật cơ sở dữ liệu của SQL Server

Nói chung, bảo mật liên quan đến mọi khía cạnh và hoạt động của hệ thống thông tin. Chủ đề về bảo mật rất rộng lớn và chúng ta cần hiểu rằng bảo mật không bao giờ có thể hoàn hảo. Mỗi tổ chức có cách xử lý vấn đề bảo mật riêng dựa trên yêu cầu của họ. Trong blog này, tôi mô tả các mô hình bảo mật cơ sở dữ liệu và xem xét ngắn gọn các nguyên tắc bảo mật của SQL Server. 

Một vài định nghĩa:

  • Cơ sở dữ liệu : Tập hợp thông tin được lưu trữ trong máy tính
  • An ninh : Thoát khỏi nguy hiểm
  • Bảo mật cơ sở dữ liệu : Cơ chế bảo vệ cơ sở dữ liệu khỏi các mối đe dọa cố ý hoặc vô tình hoặc bảo vệ cơ sở dữ liệu khỏi các nỗ lực độc hại nhằm đánh cắp (xem) hoặc sửa đổi dữ liệu

Các mô hình bảo mật cơ sở dữ liệu

Các tổ chức ngày nay dựa vào hệ thống cơ sở dữ liệu làm công nghệ quản lý dữ liệu quan trọng cho nhiều nhiệm vụ khác nhau, từ hoạt động kinh doanh thông thường đến ra quyết định quan trọng. Thông tin trong cơ sở dữ liệu được sử dụng, chia sẻ và truy cập bởi nhiều người dùng khác nhau. Nó cần được bảo vệ và quản lý vì mọi thay đổi đối với cơ sở dữ liệu đều có thể ảnh hưởng đến nó hoặc các cơ sở dữ liệu khác. 

Vai trò chính của hệ thống bảo mật là duy trì tính toàn vẹn của hệ điều hành bằng cách thực thi chính sách bảo mật được xác định bởi mô hình bảo mật. Những mô hình bảo mật này là những công cụ lý thuyết cơ bản để bắt đầu khi phát triển hệ thống bảo mật. 

Các mô hình bảo mật cơ sở dữ liệu bao gồm các yếu tố sau:

  • Chủ đề: Cá nhân thực hiện một số hoạt động trên cơ sở dữ liệu
  • Đối tượng: Đơn vị cơ sở dữ liệu yêu cầu ủy quyền để thao tác 
  • Chế độ/hành động truy cập: Bất kỳ hoạt động nào có thể được thực hiện trên một đối tượng bởi một chủ thể 
  • Phân quyền:  Đặc tả các chế độ truy cập cho từng đối tượng trên từng đối tượng
  • Quyền quản trị: Ai có quyền quản trị hệ thống và quản trị viên có trách nhiệm gì
  • Chính sách: Các quy tắc bảo mật được chấp nhận trên toàn doanh nghiệp
  • Ràng buộc: Một quy tắc cụ thể hơn về một khía cạnh của một đối tượng và hành động 

Các phương pháp bảo mật cơ sở dữ liệu

Một DBMS điển hình hỗ trợ các phương pháp tiếp cận cơ bản về bảo mật dữ liệu—kiểm soát tùy ý, kiểm soát bắt buộc và kiểm soát truy cập dựa trên vai trò. 

Kiểm soát tùy ý : Một người dùng nhất định thường có các quyền truy cập khác nhau, còn được gọi là đặc quyền, đối với các đối tượng khác nhau. Để kiểm soát quyền truy cập tùy ý, chúng tôi cần một ngôn ngữ để hỗ trợ định nghĩa các quyền—ví dụ: SQL. 

Kiểm soát bắt buộc : Mỗi đối tượng dữ liệu được gắn nhãn với một mức phân loại nhất định và một đối tượng nhất định chỉ có thể được truy cập bởi người dùng có mức độ thông quan đủ. Kiểm soát truy cập bắt buộc được áp dụng cho cơ sở dữ liệu trong đó dữ liệu có cấu trúc phân loại khá tĩnh hoặc cứng nhắc—ví dụ: môi trường quân sự hoặc chính phủ.

Trong cả hai trường hợp kiểm soát tùy ý và bắt buộc, đơn vị dữ liệu và đối tượng dữ liệu cần bảo vệ có thể nằm trong phạm vi từ toàn bộ cơ sở dữ liệu đến một bộ dữ liệu cụ thể.

Kiểm soát truy cập dựa trên vai trò (RBAC) : Quyền được liên kết với các vai trò và người dùng được coi là thành viên của các vai trò thích hợp. Tuy nhiên, một vai trò tập hợp một nhóm người dùng ở một bên và một nhóm quyền ở bên kia, trong khi các nhóm người dùng thường chỉ được xác định là một nhóm người dùng.

Bảo mật dựa trên vai trò cung cấp tính linh hoạt để xác định quyền ở mức độ chi tiết cao trong Microsoft SQL, do đó làm giảm đáng kể diện tích bề mặt tấn công của hệ thống cơ sở dữ liệu.

Cơ chế RBAC là một giải pháp thay thế linh hoạt cho kiểm soát truy cập bắt buộc (MAC) và kiểm soát truy cập tùy ý (DAC).

Thuật ngữ RBAC:

  • Đối tượng : Bất kỳ hệ thống, tệp tài nguyên, máy in, thiết bị đầu cuối, bản ghi cơ sở dữ liệu, v.v.
  • Hoạt động : Một hình ảnh thực thi của một chương trình, khi được gọi sẽ thực hiện một số chức năng cho người dùng.
  • Quyền : Sự chấp thuận để thực hiện một thao tác trên một hoặc nhiều đối tượng được RBAC bảo vệ   
  • Vai trò : Một chức năng công việc trong bối cảnh của một tổ chức với một số ngữ nghĩa liên quan đến quyền hạn và trách nhiệm được trao cho người dùng được giao cho vai trò đó.

Lưu ý : Cơ chế kiểm soát truy cập quy định ai có thể truy cập dữ liệu nào. Sự cần thiết của các cơ chế như vậy có thể được kết luận từ nhiều tác nhân làm việc với hệ thống cơ sở dữ liệu – ví dụ: DBA, quản trị viên và lập trình viên ứng dụng cũng như người dùng. Dựa trên đặc điểm của tác nhân, cơ chế kiểm soát truy cập có thể được chia thành ba loại – DAC, RBAC và MAC.

Nguyên tắc bảo mật SQL Server

Phiên bản SQL Server chứa tập hợp các thực thể có thứ bậc, bắt đầu từ máy chủ. Mỗi máy chủ chứa nhiều cơ sở dữ liệu và mỗi cơ sở dữ liệu chứa một tập hợp các đối tượng có thể bảo mật. Mọi máy chủ SQL có thể bảo mật đều có các quyền liên quan có thể được cấp cho hiệu trưởng, đó là một cá nhân, nhóm hoặc quy trình được cấp quyền truy cập vào SQL Server. 

Đối với mỗi hiệu trưởng bảo mật, bạn có thể cấp các quyền cho phép hiệu trưởng đó truy cập hoặc sửa đổi một tập hợp các đối tượng có thể bảo mật, là các đối tượng tạo nên cơ sở dữ liệu và môi trường máy chủ. Chúng có thể bao gồm mọi thứ từ chức năng, người dùng cơ sở dữ liệu đến điểm cuối. SQL Server xác định phạm vi các đối tượng theo thứ bậc ở cấp độ máy chủ, cơ sở dữ liệu và lược đồ:

  • Các tài sản bảo mật cấp máy chủ bao gồm cơ sở dữ liệu cũng như các đối tượng như thông tin đăng nhập, vai trò máy chủ và nhóm khả dụng.
  • Các tài liệu bảo mật cấp cơ sở dữ liệu bao gồm các lược đồ cũng như các đối tượng như người dùng cơ sở dữ liệu, vai trò cơ sở dữ liệu và danh mục toàn văn bản.
  • Các tài liệu bảo mật ở cấp độ lược đồ bao gồm các đối tượng như bảng, dạng xem, hàm và các thủ tục được lưu trữ.

Các phương pháp xác thực SQL Server bao gồm: 

  • Xác thực: Xác thực là quá trình đăng nhập Máy chủ SQL mà qua đó hiệu trưởng yêu cầu quyền truy cập bằng cách gửi thông tin xác thực mà máy chủ đánh giá. Xác thực thiết lập danh tính của người dùng hoặc quy trình được xác thực. Xác thực SQL Server giúp đảm bảo rằng chỉ những người dùng được ủy quyền có thông tin xác thực hợp lệ mới có thể truy cập vào máy chủ cơ sở dữ liệu. SQL Server hỗ trợ hai chế độ xác thực, chế độ xác thực Windows và chế độ hỗn hợp. 
  • Xác thực Windows thường được gọi là bảo mật tích hợp vì mô hình bảo mật SQL Server này được tích hợp chặt chẽ với Windows.
  • Chế độ hỗn hợp hỗ trợ xác thực cả bằng Windows và SQL Server, sử dụng tên người dùng và mật khẩu. 
  • Ủy quyền: Ủy quyền là quá trình xác định những tài nguyên có thể bảo mật nào mà hiệu trưởng có thể truy cập và những hoạt động nào được phép đối với những tài nguyên đó. Các công nghệ dựa trên Microsoft SQL hỗ trợ nguyên tắc này bằng cách cung cấp các cơ chế để xác định các quyền cấp đối tượng chi tiết và đơn giản hóa quy trình bằng cách triển khai bảo mật dựa trên vai trò. Việc cấp quyền cho các vai trò thay vì người dùng sẽ đơn giản hóa việc quản lý bảo mật.
  • Cách tốt nhất là sử dụng các vai trò cấp máy chủ để quản lý quyền truy cập và bảo mật cấp máy chủ cũng như vai trò cơ sở dữ liệu để quản lý quyền truy cập cấp cơ sở dữ liệu. 
  • Bảo mật dựa trên vai trò cung cấp tính linh hoạt để xác định quyền ở mức độ chi tiết cao trong Microsoft SQL, do đó làm giảm đáng kể diện tích bề mặt tấn công của hệ thống cơ sở dữ liệu.

Dưới đây là một số phương pháp hay nhất được đề xuất bổ sung để xác thực SQL Server: 

  • Sử dụng xác thực Windows. 
  • Cho phép quản lý tập trung các nguyên tắc SQL Server thông qua Active Directory
  • Sử dụng giao thức bảo mật Kerberos để xác thực người dùng
  • Hỗ trợ thực thi chính sách mật khẩu tích hợp bao gồm xác thực độ phức tạp cho mật khẩu mạnh, hết hạn mật khẩu và khóa tài khoản
  • Sử dụng các tài khoản riêng biệt để xác thực người dùng và ứng dụng. 
  • Cho phép giới hạn quyền được cấp cho người dùng và ứng dụng 
  • Giảm rủi ro của hoạt động độc hại như tấn công tiêm nhiễm SQL
  • Sử dụng người dùng cơ sở dữ liệu có chứa. 
  • Cô lập tài khoản người dùng hoặc ứng dụng vào một cơ sở dữ liệu
  • Cải thiện hiệu suất, vì người dùng cơ sở dữ liệu chứa xác thực trực tiếp với cơ sở dữ liệu mà không cần thêm bước nhảy mạng tới cơ sở dữ liệu chính 
  • Hỗ trợ cả SQL Server và Cơ sở dữ liệu Azure SQL, cũng như Kho dữ liệu Azure SQL

Phần kết luận

Bảo mật cơ sở dữ liệu là mục tiêu quan trọng của bất kỳ hệ thống quản lý dữ liệu nào. Mỗi tổ chức nên có chính sách bảo mật dữ liệu, bao gồm các nguyên tắc cấp cao được xác định bởi:

  • Yêu cầu người sử dụng 
  • Các khía cạnh môi trường
  • Quy định nội bộ
  • Luật của chính phủ

Bảo mật cơ sở dữ liệu dựa trên ba cấu trúc quan trọng—bảo mật, tính toàn vẹn và tính khả dụng. Mục tiêu của bảo mật cơ sở dữ liệu là bảo vệ dữ liệu quan trọng và bí mật của bạn khỏi bị truy cập trái phép.