Dữ liệu là tài sản quan trọng của mọi tổ chức và cơ sở dữ liệu được bảo mật kém thường là nguyên nhân gây ra các vi phạm bảo mật. Bài viết này trình bày chi tiết các phương pháp hay nhất về bảo mật máy chủ SQL, cũng như các cân nhắc bảo mật cần thiết để bảo vệ cơ sở dữ liệu của bạn khỏi các cuộc tấn công độc hại.
Bảo mật dữ liệu bao gồm ba trụ cột thiết yếu - tính bảo mật, tính toàn vẹn và tính khả dụng (CIA) và giải quyết các quy trình cụ thể để bảo vệ dữ liệu khỏi truy cập cố ý và tình cờ. Hãy phân tích các lĩnh vực khác nhau và các bước cần thực hiện khi tiếp cận bảo mật SQL Server, một trong những cơ sở dữ liệu quan hệ phổ biến nhất đang được sử dụng hiện nay.
Các phương pháp hay nhất về bảo mật SQL Server
1. Đảm bảo tính bảo mật vật lý của SQL Server của bạn
Khi nói đến bảo mật SQL Server, không thể bỏ qua bảo mật vật lý. Bảo mật vật lý đề cập đến việc hạn chế truy cập trái phép vào trung tâm dữ liệu hoặc các thành phần máy chủ vật lý khác. Ví dụ:bạn có thể triển khai một căn phòng bị khóa với quyền truy cập hạn chế bằng thẻ thông minh, dấu vân tay hoặc nhận dạng khuôn mặt. Bạn cũng có thể định cấu hình phân đoạn mạng hạn chế cho SQL Server.
Trung tâm dữ liệu chứa cơ sở hạ tầng của tổ chức như bộ định tuyến, thiết bị chuyển mạch, máy chủ, tường lửa và thiết bị lưu trữ. Bảo mật vật lý liên quan đến việc bảo vệ phần cứng, phần mềm và mạng khỏi mọi truy cập trái phép hoặc thiên tai. Nó có thể liên quan đến các lĩnh vực sau:
- Bảo vệ cơ sở và quyền truy cập thiết bị chỉ dành cho cá nhân được ủy quyền
- Duy trì hệ thống kiểm soát truy cập
- Cảnh giác 24x7x365 bằng cách sử dụng nhân viên bảo vệ tại chỗ hoặc giám sát CCTV
- Nguồn điện liên tục (UPS)
- Có hệ thống báo cháy và hệ thống phát hiện khói hút
- Có bảng điều khiển phát hiện rò rỉ nước đang hoạt động
- Hệ thống xua đuổi loài gặm nhấm
- Hệ thống dập lửa
- Kiểm soát và giám sát nhiệt độ và độ ẩm
- Bảo trì phần cứng định kỳ
2. Bảo vệ hệ điều hành của bạn
SQL Server được cài đặt trên hệ điều hành hiện có như Windows hoặc Linux. Do đó, bảo mật hệ điều hành đóng một vai trò quan trọng trong bảo mật SQL Server. Dưới đây là một số khuyến nghị để bảo vệ hệ điều hành của bạn:
- Áp dụng các gói dịch vụ và bản vá bảo mật hệ điều hành thông thường
- Xác định chính sách vá lỗi của hệ điều hành áp dụng các bản vá trên các môi trường thấp hơn, sau đó là bản vá sản xuất
- Luôn sử dụng các phiên bản hệ điều hành sản phẩm được hỗ trợ và ổn định. Ví dụ:Microsoft đã ngừng hỗ trợ Windows Server 2003, do đó, bạn không nên sử dụng nó để lưu trữ cơ sở dữ liệu
- Không cho phép truy cập Internet trên các máy chủ cơ sở dữ liệu của bạn
- Bạn nên gỡ cài đặt, dừng hoặc tắt các ứng dụng và ổ đĩa không sử dụng để đảm bảo có ít con đường hơn cho các cuộc tấn công tiềm ẩn
- Triển khai tường lửa có quyền truy cập hạn chế vào máy chủ cơ sở dữ liệu để chỉ những máy chủ ứng dụng yêu cầu quyền truy cập vào máy chủ cơ sở dữ liệu mới được phép chuyển lưu lượng truy cập từ tường lửa
- Mở các cổng cụ thể trong tường lửa. Ví dụ:theo mặc định, SQL Server chạy trên cổng 1433. Do đó, bạn có thể cho phép cổng TCP 1433 và 3389 truy cập máy chủ từ xa nếu không có ứng dụng nào khác chạy trên máy chủ. Tương tự, dịch vụ phân tích sử dụng cổng mặc định 2383 làm cổng tiêu chuẩn. Để có danh sách đầy đủ các cổng trong SQL Server, hãy tham khảo tài liệu này về các cổng được SQL Server sử dụng. Bạn cũng có thể sử dụng chứng chỉ SSL hoặc TLS để truy cập an toàn vào SQL Server. Các chứng chỉ này có thể mã hóa truyền dữ liệu giữa SQL Server và các ứng dụng khách. Cấu hình SQL Server là bắt buộc đối với chứng chỉ tự ký hoặc chứng chỉ do tổ chức phát hành chứng chỉ (CA) cấp. Bạn có thể tham khảo bài viết:Cách thiết lập và sử dụng các kết nối SQL Server được mã hóa để biết thêm chi tiết.
- Tận dụng tùy chọn Bảo vệ Mở rộng để Xác thực để ngăn chặn cuộc tấn công chuyển tiếp xác thực bằng cách sử dụng ràng buộc dịch vụ và ràng buộc kênh. Để bật bảo vệ mở rộng, hãy đi tới Trình quản lý cấu hình máy chủ SQL, mở rộng màn hình, nhấp chuột phải vào Giao thức và sau đó chuyển đến Bảo vệ nâng cao, Mở rộng. Lưu ý, theo mặc định, tính năng này bị tắt.
Tương tự, bạn có thể buộc kết nối được mã hóa tới SQL Server bằng tùy chọn sau.
Bạn cũng có thể tham khảo bảo vệ mở rộng để biết thêm chi tiết.
3. Giảm diện tích bề mặt của bạn
Khu vực bề mặt SQL Server bao gồm các tính năng của công cụ cơ sở dữ liệu cung cấp chức năng bổ sung như gửi email. Các thành phần này có thể là mục tiêu tiềm năng để giành quyền truy cập vào SQL Server cho các hoạt động độc hại. Do đó, bạn nên vô hiệu hóa thành phần và các tính năng không được sử dụng trong SQL Server, vì điều này sẽ hạn chế khả năng bị tấn công. Các thành phần chính mà bạn có thể xem lại và tắt được liệt kê bên dưới.
- Quét các procs khởi động
- Quy trình tự động hóa OLE
- CLR được bật
- Chuỗi quyền sở hữu DB chéo
- xp_cmdshell
- Cơ sở dữ liệu Thư XPs
Bạn có thể tham khảo bài viết này để biết thông tin chi tiết về các tùy chọn cấu hình máy chủ.
4. Định cấu hình máy chủ để lắng nghe trên một cổng khác
Microsoft SQL Server sử dụng cổng mặc định 1433 cho tất cả các kết nối cơ sở dữ liệu. Đây là một rủi ro bảo mật phổ biến trong nhiều môi trường cơ sở dữ liệu vì các chuyên gia cơ sở dữ liệu thường không thay đổi cổng mặc định. Đây là một cổng nổi tiếng và những kẻ xâm nhập có thể tận dụng cơ hội này để truy cập vào SQL Server. Do đó, bạn nên sử dụng một cổng không phải mặc định để tăng cường bảo mật cho SQL Server của mình. Bạn có thể sửa đổi điều này bằng cách sử dụng Trình quản lý cấu hình máy chủ SQL.
5. Điều chỉnh xác thực SQL Server
Việc bảo vệ dữ liệu của bạn phụ thuộc vào khả năng xác thực quyền truy cập vào dữ liệu cụ thể. SQL Server cung cấp hai tùy chọn để xác thực cơ sở dữ liệu.
- Xác thực Windows
- Xác thực Windows và SQL (Chế độ hỗn hợp)
Để xác minh mô hình xác thực máy chủ, hãy nhấp chuột phải vào phiên bản SQL Server và điều hướng đến Bảo mật.
Xác thực Windows sử dụng tài khoản thư mục hoạt động để xác thực. Bạn có thể kiểm soát chính sách tập trung về độ phức tạp của mật khẩu, hết hạn mật khẩu, khóa tài khoản và các nhóm thư mục hoạt động trong thư mục hoạt động. Do đó, bạn nên sử dụng xác thực Windows thay vì xác thực SQL Server. Tại đây, người dùng kết nối bằng tài khoản Windows và SQL Server xác thực thông tin đăng nhập bằng mã thông báo chính của Windows. Nó sử dụng giao thức bảo mật Kerberos để xác thực. Tham khảo chế độ xác thực để biết thêm chi tiết.
Tuy nhiên, nếu bạn cần sử dụng thông tin đăng nhập SQL Server, bạn vẫn có thể thực thi chính sách mật khẩu như được tô sáng bên dưới.
6. Ghi nhớ các quyền đối với tài khoản dịch vụ
Dịch vụ SQL sử dụng tài khoản Windows để chạy các dịch vụ của nó. Bạn không nên sử dụng các tài khoản tích hợp sẵn, có đặc quyền cao như Dịch vụ mạng hoặc Hệ thống cục bộ. Tương tự, đối với tài khoản dịch vụ miền, bạn nên chỉ định các đặc quyền phù hợp với vai trò.
Do đó, tôi khuyên bạn nên tham khảo cấu hình quyền và tài khoản dịch vụ Windows để biết thêm chi tiết cụ thể về quyền đối với tài khoản dịch vụ SQL Server.
7. Áp dụng bản vá SQL Server trong sản xuất
Microsoft phát hành các gói dịch vụ thông thường (SQL Server 2016 trở về trước) và các gói tích lũy (SQL Server 2017 trở đi) để khắc phục các sự cố đã biết và sự cố bảo mật. Do đó, bạn nên luôn có kế hoạch triển khai bản vá SQL Server trên các phiên bản sản xuất. Tuy nhiên, không áp dụng trực tiếp các bản vá trên các phiên bản sản xuất. Luôn áp dụng chúng trước trong môi trường thử nghiệm, xác nhận và lập kế hoạch triển khai sản xuất.
Bạn có thể tham khảo các bản cập nhật mới nhất cho Microsoft SQL Server để tìm thông tin chi tiết về các gói dịch vụ và gói tích lũy mới nhất.
8. Bảo vệ các bản sao lưu của bạn
Khi nói đến bảo mật SQL Server, việc bảo vệ các bản sao lưu của bạn là rất quan trọng. Thông thường, các chuyên gia cơ sở dữ liệu không xem xét tất cả các yêu cầu để đảm bảo sao lưu cơ sở dữ liệu. Sao lưu cơ sở dữ liệu là quá trình tạo một bản sao của trạng thái hoạt động, kiến trúc và dữ liệu được lưu trữ của cơ sở dữ liệu. Vì vậy, điều quan trọng là phải bảo vệ nó. Nó có nghĩa là hạn chế quyền truy cập vào các tệp sao lưu và mã hóa chúng đúng cách. Khi nói đến việc bảo mật các bản sao lưu, đây là một vài lời nhắc.
- Không cung cấp cho mọi người quyền trên thư mục sao lưu để tạo, xem, sửa đổi và xóa các tệp sao lưu
- Sử dụng sao lưu cơ sở dữ liệu với mã hóa; tham khảo bài viết này về mã hóa sao lưu để biết thêm chi tiết
9. Hãy nhớ kỹ thuật mã hóa và che dữ liệu của SQL Server
Một lĩnh vực quan trọng trong bảo mật SQL Server là mã hóa. Bạn có thể sử dụng các cơ chế mã hóa khác nhau để bảo vệ dữ liệu nhạy cảm trong cơ sở dữ liệu SQL Server của mình. Các tùy chọn mã hóa khác nhau như sau.
- Luôn được mã hóa:Kỹ thuật luôn được mã hóa giúp mã hóa dữ liệu nhạy cảm bên trong các ứng dụng khách. Trình điều khiển luôn được kích hoạt mã hóa sẽ tự động mã hóa và giải mã dữ liệu nhạy cảm trong các ứng dụng khách. Các khóa mã hóa không bao giờ được tiết lộ cho công cụ cơ sở dữ liệu SQL Server. Nó bảo vệ dữ liệu bí mật.
- Mã hóa dữ liệu trong suốt (TDE):TDE mã hóa dữ liệu ở trạng thái nghỉ. Nó giúp bảo mật các tệp dữ liệu, tệp nhật ký và tệp sao lưu.
- Mã hóa mức cột:Mã hóa mức cột giúp mã hóa dữ liệu cột cụ thể, chẳng hạn như số thẻ tín dụng và số an sinh xã hội.
- Tạo mặt nạ dữ liệu tĩnh:Tạo mặt nạ dữ liệu tĩnh thay thế dữ liệu nhạy cảm bằng cách sử dụng các quy tắc chuyển đổi dữ liệu đã xác định.
- Tạo mặt nạ dữ liệu động:Tạo mặt nạ dữ liệu động giúp hạn chế việc hiển thị dữ liệu nhạy cảm cho những người dùng không có đặc quyền.
- Bảo mật cấp hàng:Bảo mật cấp hàng hạn chế quyền truy cập vào hàng dữ liệu.
10. Làm cho mật khẩu của quản trị viên hệ thống trở nên phức tạp
Nếu bạn đang sử dụng xác thực SQL, nó sẽ tạo SA đăng nhập với quyền sysadmin. Để bảo vệ SQL Server của bạn, hãy làm như sau.
- Đổi tên thông tin đăng nhập có tên SA thành một tên khác
- Vô hiệu hoá tài khoản nếu bạn không định sử dụng nó
- Sử dụng một mật khẩu phức tạp
- Không cho phép các ứng dụng sử dụng tài khoản SA trong các chuỗi kết nối
11. Kiểm tra thông tin đăng nhập cơ sở dữ liệu
Kiểm toán thường bị bỏ qua khi nói đến bảo mật SQL Server. Bạn nên thực hiện kiểm tra SQL Server thường xuyên cho các lần đăng nhập không thành công. Bạn có thể sử dụng cơ chế kiểm tra đăng nhập mặc định để xem xét các tài khoản. Ví dụ:giả sử bất kỳ người dùng nào đang cố gắng kết nối với SQL Server bằng tài khoản đặc quyền cao. Trong trường hợp đó, bạn có thể thấy lỗi đăng nhập và địa chỉ IP yêu cầu (máy khách) gửi đến. Điều này có thể giúp bạn nắm bắt và loại bỏ hoạt động đáng ngờ.
Bạn có thể sử dụng các sự kiện mở rộng, theo dõi SQL, thu thập dữ liệu thay đổi, trình kích hoạt (DDL, DML hoặc Logon), cơ sở dữ liệu hoặc thông số kỹ thuật kiểm tra cấp máy chủ để kiểm tra SQL Server.
12. Lưu ý đến quyền cấp máy chủ và cơ sở dữ liệu
Các chuyên gia cơ sở dữ liệu nên cẩn thận khi chỉ định quyền cấp máy chủ hoặc cấp cơ sở dữ liệu. Đôi khi, chúng tôi thấy rằng các nhà phát triển nhận được sysadmin ở cấp máy chủ hoặc quyền của chủ sở hữu cơ sở dữ liệu ở cấp cơ sở dữ liệu. Đây là các quyền cao nhất mà người dùng có thể có trên một phiên bản hoặc cấp cơ sở dữ liệu, tương ứng.
- Tham khảo các vai trò cấp máy chủ cố định để hiểu các vai trò cấp máy chủ cố định và khả năng của chúng.
- Tham khảo các vai trò cấp cơ sở dữ liệu để hiểu rõ hơn về các vai trò cấp cơ sở dữ liệu cố định.
13. Tắt dịch vụ trình duyệt SQL Server
SQL Server sử dụng dịch vụ trình duyệt cho phiên bản được đặt tên. Nó lắng nghe tất cả các yêu cầu đến cho các kết nối SQL Server. Nó sử dụng cổng UDP 1434 và phản hồi các yêu cầu với số cổng TCP / IP cần thiết để kết nối với SQL Server. Do đó, bạn có thể tắt dịch vụ trình duyệt và xác định rõ ràng số cổng trong các chuỗi ứng dụng. Điều này tránh để số cổng tiếp xúc với các yêu cầu kết nối đến và giúp bảo mật SQL Server.
Bạn có thể tham khảo bài viết Cách thức hoạt động của trình duyệt SQL Server để hiểu rõ hơn về dịch vụ trình duyệt SQL Server.
Các cân nhắc thêm về bảo mật Máy chủ SQL
Như đã trình bày, bảo mật SQL Server là một quá trình liên tục với nhiều yếu tố và bước khác nhau. Bạn phải thường xuyên truy cập lại các phiên bản SQL Server, chính sách bảo mật và cập nhật chúng thường xuyên trên cả cấp hệ điều hành và SQL Server của bạn. Bằng cách thường xuyên áp dụng các phương pháp hay nhất này, bạn sẽ giúp tạo ra một dịch vụ cơ sở dữ liệu an toàn hơn và không gây gián đoạn cho doanh nghiệp của mình.