An ninh là mối quan tâm chính ngày nay trong mọi lĩnh vực. Bảo mật cơ sở dữ liệu cũng là một nỗi lo lớn đối với bất kỳ khách hàng nào. SQL Server được thiết kế để bảo mật tất cả dữ liệu của bạn được lưu trữ trong cơ sở dữ liệu nhưng đôi khi chúng tôi không áp dụng đúng bộ cấu hình và để lại lỗ hổng trong hệ thống của chúng tôi. Tin tặc và người ngoài hành tinh trái phép có thể sử dụng những sơ hở này để xâm nhập hệ thống của bạn. Dữ liệu của bạn có thể bị xâm phạm hoặc sai lệch, tài nguyên hệ thống của bạn có thể bị xóa để tạo ra sự cố ngừng hoạt động kinh doanh của bạn, dữ liệu khách hàng của bạn có thể bị lộ cho đối thủ cạnh tranh, v.v.
Khóa hoặc cứng máy chủ SQL
Toàn bộ quá trình để bảo mật môi trường cơ sở dữ liệu của bạn được gọi là khóa cơ sở dữ liệu \ SQL Server. Tôi sẽ mô tả các thông số và chi tiết cấu hình khác nhau mà bạn có thể áp dụng để bảo mật môi trường cơ sở dữ liệu của mình.
Chỉ cài đặt các thành phần bắt buộc
Hãy bắt đầu thực hành khóa với cài đặt SQL Server. SQL Server cung cấp các thành phần và tính năng khác nhau mà DBAs chọn cho các yêu cầu khác nhau. Một số thành phần và tính năng này được cung cấp bên dưới:
- Công cụ cơ sở dữ liệu
- Dịch vụ Báo cáo
- Dịch vụ Tích hợp
- Công cụ Dịch vụ Phân tích
- Dịch vụ Thông báo
- Tài liệu và Mẫu (Cơ sở dữ liệu và mã mẫu)
- Tìm kiếm Toàn văn
- Các tính năng khác như sao chép, dịch vụ máy học, dịch vụ chất lượng dữ liệu, v.v.
Một thực tiễn tốt là chỉ cài đặt các tính năng cần thiết bởi vì làm như vậy bạn đang giảm hoặc hạn chế khả năng tấn công bề mặt. Ngoài ra, bạn sẽ sử dụng tài nguyên hệ thống thấp.
Cài đặt các bản cập nhật mới nhất
Đảm bảo cập nhật hệ thống của bạn đúng thời hạn. Nếu bất kỳ lỗ hổng mới nào được phát hiện, nhà cung cấp sản phẩm của bạn sẽ đăng trong bản tin bảo mật.
Tôi không nói về việc chỉ cập nhật các bản vá lỗi SQL Server mà tất cả mọi thứ đang chạy trên hệ thống của bạn bắt đầu từ hệ điều hành đến bất kỳ ứng dụng nào khác được cài đặt trên máy của bạn. Luôn áp dụng các bản vá để cập nhật phần mềm của bạn nhằm ngăn chặn bất kỳ mối đe dọa hoặc cuộc tấn công nào từ bên ngoài.
Sử dụng Chế độ xác thực Windows
Luôn chọn chế độ xác thực Windows cho các kết nối người dùng nếu bạn không có bất kỳ phụ thuộc nào để sử dụng chế độ xác thực SQL Server. Nó an toàn hơn và xác thực thông tin đăng nhập Windows bằng thư mục Windows Active trong mỗi lần đăng nhập. SQL Server có hai loại chế độ xác thực.
- Xác thực Windows
- Chế độ hỗn hợp (Windows + SQL Server)
Chế độ xác thực Windows: Đây là một chế độ xác thực mặc định cho SQL Server. Chế độ xác thực Windows sử dụng tài khoản cục bộ, tài khoản người dùng thư mục hoạt động và nhóm khi cấp quyền truy cập vào SQL Server. Trong chế độ này, bạn, với tư cách là quản trị viên cơ sở dữ liệu, có thể cấp cho người dùng miền hoặc máy chủ cục bộ quyền truy cập vào máy chủ cơ sở dữ liệu mà không cần tạo và quản lý tài khoản SQL Server riêng.
Chế độ hỗn hợp: Chế độ xác thực hỗn hợp có cả hai tùy chọn. Bạn có thể sử dụng xác thực dựa trên Windows cũng như xác thực dựa trên đăng nhập SQL Server. Cơ chế xác thực SQL Server dựa trên các tài khoản được quản lý bên trong SQL Server bao gồm chính sách mật khẩu. Xác thực hỗn hợp có thể được yêu cầu nếu bạn có một số phụ thuộc để hỗ trợ các ứng dụng cũ.
Bạn có thể làm theo các bước dưới đây để chọn hoặc thay đổi chế độ xác thực máy chủ:
- Khởi chạy SQL Server Management Studio và kết nối với phiên bản SQL Server mục tiêu của bạn.
- Trong SQL Server Management Studio, nhấp chuột phải vào phiên bản SQL Server, sau đó nhấp vào Thuộc tính .
- Nhấp vào Bảo mật trong ngăn bên trái, bạn có thể thấy cả hai tùy chọn xác thực trong ngăn bên phải bên dưới Xác thực máy chủ tiết diện. Nếu bạn muốn bảo mật phiên bản của mình, hãy đảm bảo chuyển sang chế độ xác thực Windows. Bạn chỉ cần nhấp vào nút radio của chế độ xác thực Windows và sau đó nhấp vào OK để áp dụng các thay đổi.
- Trong hộp thoại SQL Server Management Studio, nhấp vào OK để xác nhận sự cần thiết phải khởi động lại SQL Server.
Chế độ xác thực Windows là một lựa chọn an toàn hơn. Tuy nhiên, nếu yêu cầu xác thực chế độ hỗn hợp, bạn nên cung cấp mật khẩu phức tạp cho thông tin đăng nhập SQL Server và áp dụng các chính sách bảo mật \ lockout để bảo mật tốt hơn. Bạn cũng nên vô hiệu hóa tài khoản SQL Server sa nếu bạn đang sử dụng chế độ xác thực hỗn hợp. Tôi sẽ thảo luận về vấn đề này trong phần tiếp theo.
Đổi tên / Vô hiệu hóa tài khoản sa
Đăng nhập sa được tạo theo mặc định trong khi cài đặt SQL Server, vì vậy đây có thể là một trong những lý do tiềm ẩn để những kẻ tấn công xâm nhập hoặc chiếm quyền kiểm soát tài khoản này. Hãy nhớ thông tin đăng nhập này có đặc quyền quản trị hệ thống nên bất kỳ ai có quyền truy cập vào tài khoản này đều có thể quản lý cơ sở dữ liệu và các phiên bản SQL Server của bạn.
Bạn nên chạy lệnh dưới đây để vô hiệu hóa tài khoản sa.
--Disable sa login
USE MASTER
GO
ALTER LOGIN sa DISABLE;
GO
Bạn có thể thấy cách thực thi của nó trong hình bên dưới.
Trước khi đổi tên hoặc vô hiệu hóa tài khoản sa, hãy xác minh rằng tài khoản khác có đặc quyền quản trị tồn tại trên phiên bản SQL Server.
Thay đổi cổng máy chủ SQL mặc định
Chúng ta đều biết rằng SQL Server sử dụng cổng 1433 cho bất kỳ yêu cầu và giao tiếp nào của khách hàng. Vì cấu hình này nằm trong miền công cộng, tin tặc có thể nhắm mục tiêu cấu hình này để kết nối với phiên bản SQL Server của bạn.
Bạn có thể thay đổi cổng SQL Server bằng cách làm theo các bước dưới đây.
- Đăng nhập vào máy mục tiêu của bạn nơi SQL Server được cài đặt.
- Khởi chạy Trình quản lý cấu hình máy chủ công cụ.
- Mở rộng Cấu hình Mạng Máy chủ SQL từ ngăn bên trái và chọn Giao thức để cấu hình phiên bản SQL Server.
- Trong ngăn bên phải, nhấp chuột phải vào tên giao thức TCP / IP và chọn Thuộc tính .
- Trong Thuộc tính TCP / IP hộp thoại, chọn Địa chỉ IP chuyển hướng. Có một mục nhập tương ứng cho mọi địa chỉ IP được gán cho máy chủ.
- Xóa các giá trị cho cả Cổng động TCP và Cổng TCP cho từng địa chỉ IP ngoại trừ các địa chỉ IP trong IPAll .
- Trong IPAll cho mỗi trường hợp, hãy nhập một cổng mới mà bạn muốn SQL Server lắng nghe.
- Nhấp vào Áp dụng và khởi động lại Dịch vụ máy chủ SQL.
Tắt dịch vụ trình duyệt SQL
Dịch vụ Trình duyệt SQL Server được cài đặt với cài đặt phiên bản SQL Server. Dịch vụ này chuyển hướng kết nối của bạn đến cổng SQL Server đang chạy. Nếu dịch vụ này đang chạy, những kẻ tấn công sẽ dễ dàng hơn một bước vì nó cho phép chúng kết nối với SQL Server mà không cần chuyển số cổng của nó. Vì vậy, tốt hơn hết bạn nên tắt dịch vụ này sau khi thay đổi cổng.
Tắt tùy chọn xp_cmdshell
SQL Server cung cấp một thủ tục được lưu trữ mở rộng xp_cmdshell để chạy và thực thi các lệnh của hệ điều hành từ SQL Server. Nó nên được vô hiệu hóa để ngăn chặn bất kỳ rủi ro bảo mật nào. Bạn có thể tìm thấy thủ tục được lưu trữ mở rộng này trong cấu hình cấp máy chủ hoặc bằng cách chạy thủ tục lưu trữ sp_configure T-SQL. Bạn có thể chạy các câu lệnh T-SQL dưới đây để tắt cấu hình này.
-- Enable advanced options to display configure xp_cmdshell
sp_configure 'show advanced options', '1'
RECONFIGURE
-- Disable xp_cmdshell
sp_configure 'xp_cmdshell', '0'
RECONFIGURE
GO
Sử dụng mã hóa hoặc tạo mặt nạ dữ liệu
SQL Server cung cấp các phương pháp mã hóa khác nhau để bảo vệ dữ liệu của bạn. Mã hóa được khuyến nghị nếu người dùng của bạn truy cập dữ liệu qua mạng công cộng. SQL Server có nhiều tùy chọn để triển khai tập hợp mã hóa phù hợp với nhu cầu kinh doanh của bạn. Đây là danh sách các tùy chọn mã hóa hoặc che dữ liệu mà chúng tôi có thể sử dụng để bảo mật dữ liệu của mình:
- TDE (Mã hóa dữ liệu minh bạch)
- Bảo mật dữ liệu bằng Khóa mã hóa
- Luôn mã hóa
- Mặt nạ dữ liệu động
Xóa BUILTIN \ Quản trị viên khỏi SQL Server
Chúng tôi nên luôn xóa tài khoản BUILTIN \ Administrators khỏi phiên bản SQL Server để hạn chế quyền truy cập không mong muốn vào phiên bản cơ sở dữ liệu. Cách tốt nhất là cấp cho người dùng quyền truy cập vào SQL Server riêng lẻ. Bạn cũng có thể thêm một nhóm người trong nhóm Windows và cấp cho họ quyền truy cập vào SQL Server. Bạn có thể sử dụng câu lệnh T-SQL dưới đây để loại bỏ thông tin đăng nhập này khỏi phiên bản SQL Server.
Bạn cũng có thể bỏ thông tin đăng nhập này bằng GUI thông qua SQL Server Management Studio. Bạn chỉ cần kết nối với phiên bản SQL Server của mình, sau đó mở rộng thư mục bảo mật mức cá thể. Tại đây, bạn có thể nhấp chuột phải vào thông tin đăng nhập này để xóa nó khỏi phiên bản SQL Server.
--DROP Login
DROP LOGIN [BUILTIN\Administrators]
Mật khẩu mạnh và đặc quyền người dùng đầy đủ
Luôn chỉ định các quyền đầy đủ cho mọi người dùng, chúng nên ở mức tối thiểu, xem xét vai trò của họ trong khi truy cập cơ sở dữ liệu. Ngoài ra, chúng ta không bao giờ nên sử dụng mật khẩu yếu cho bất kỳ đăng nhập nào hoặc đăng nhập và mật khẩu giống nhau. Luôn sử dụng chính sách mật khẩu cho bất kỳ thông tin đăng nhập SQL nào.
Định cấu hình Kiểm tra đăng nhập máy chủ SQL
SQL Server đã cung cấp một tính năng kiểm tra để nắm bắt thông tin chi tiết về tất cả các lần đăng nhập không thành công và thành công. Đây là một cấu hình rất hữu ích nếu bạn muốn kiểm tra xem ai đang kết nối hoặc cố gắng kết nối với cơ sở dữ liệu của bạn. Chúng tôi có thể định cấu hình cảnh báo SQL Server sẽ gửi thông báo thư trên mỗi lần đăng nhập không thành công và thành công vào SQL Server. Bạn có thể làm theo các bước dưới đây để bật kiểm tra đăng nhập.
- Kết nối với phiên bản SQL Server mục tiêu của bạn trong SQL Server Management Studio
- Nhấp chuột phải vào tên phiên bản SQL Server và sau đó nhấp vào Thuộc tính .
- Nhấp vào Bảo mật trong ngăn bên trái. Bạn sẽ nhận được Kiểm tra đăng nhập trong ngăn bên phải như được hiển thị trong ảnh chụp màn hình đầu tiên của bài viết này
- Chọn tùy chọn mong muốn và đóng Thuộc tính máy chủ trang
- Khởi động lại dịch vụ SQL Server để áp dụng thay đổi này
Xóa thông tin đăng nhập máy chủ SQL không được sử dụng
Luôn theo dõi thông tin đăng nhập SQL Server của bạn. Bạn nên chú ý xóa tất cả các tài khoản đăng nhập không còn được sử dụng nữa. Tôi biết rất khó để quản lý theo cách thủ công, nhưng bạn có thể định cấu hình cảnh báo qua thư để gửi thư về tất cả thông tin đăng nhập SQL Server và các đặc quyền của chúng.
Kết luận
Tôi đã giải thích một số cấu hình khả thi mà chúng tôi có thể áp dụng để bảo vệ cơ sở dữ liệu của mình khỏi các mối đe dọa bên ngoài. Hãy xem xét tất cả các điểm trên trong khi triển khai các chính sách tăng cường cơ sở dữ liệu cho môi trường.
Hãy chia sẻ bài viết này và đóng góp ý kiến của bạn trong phần bình luận để chúng tôi hoàn thiện hơn.