Bắt đầu với MongoDB® thật dễ dàng. Tuy nhiên, bạn có thể gặp phải một số trục trặc với các tính năng mới xuất hiện liên tục. Một trong những lĩnh vực quan trọng như vậy là bảo mật, là trọng tâm của blog này.
Giới thiệu
Duy trì bảo mật với các ứng dụng MongoDB là rất quan trọng đối với các ứng dụng cơ sở dữ liệu. Bạn cần có khả năng xác định các lỗ hổng của vòng lặp và biết các kiểu và phương pháp bảo mật cơ sở dữ liệu hoặc ứng dụng để bảo vệ cơ sở dữ liệu khỏi các mối đe dọa. Tuân thủ nghiêm ngặt Hướng dẫn triển khai kỹ thuật bảo mật (STIG) giúp bảo mật MongoDB ở mức độ lớn. Việc kiểm tra theo thời gian cũng giúp xác định các sai sót chính trong hệ thống hoặc cơ sở dữ liệu để bạn có thể bảo vệ hệ thống hoặc cơ sở dữ liệu khỏi các mối đe dọa khác nhau.
Blog này đề cập đến mười mẹo bảo mật MongoDB để giữ cho nó an toàn và bảo mật.
Mẹo 1:Luôn bật xác thực
Bật xác thực là một phương pháp hay và là cách đơn giản nhất để bảo mật MongoDB. Hãy nhớ rằng, đôi khi tính năng bảo mật đơn giản nhất được bật có thể bảo vệ hệ thống ở mức tối đa và do đó cứu tổ chức khỏi một cơ sở dữ liệu có thể tiêu tốn hàng triệu đô la.
Thêm các dòng sau vào mongod.conf
tệp cấu hình để kích hoạt xác thực trong MongoDB:
Security:
Authentication: on
Hình ảnh sau minh họa bảo mật cấp DB:
Nguồn hình ảnh:https://www.slideshare.net
Mẹo 2:Sử dụng mật khẩu phức tạp
Mẹo này chỉ là lẽ thường. Trong hầu hết các trường hợp, mật khẩu cơ bản, đơn giản nhất được sử dụng cho bất kỳ ứng dụng hoặc cơ sở dữ liệu nào là 12345
hoặc ABC123
. Tuy nhiên, những mật khẩu đơn giản này là vũ khí được lựa chọn để bẻ khóa hệ thống và lấy cắp dữ liệu có giá trị.
Vì MongoDB không cung cấp bất kỳ tùy chọn khóa nào cho mật khẩu, nên rất dễ bị kẻ gian thử các mật khẩu đơn giản nhất để bẻ khóa cơ sở dữ liệu hoặc ứng dụng trong phút chốc để truy cập.
Mẹo 3:Cấp quyền cho người dùng theo vai trò
MongoDB không bật kiểm soát truy cập theo mặc định. Bạn có thể bật ủy quyền bằng từ khóa --auth
khi bạn khởi tạo trình bao MongoDB.
Không phải ai cũng nên quản trị cơ sở dữ liệu. Ngay cả khi đã bật xác thực cơ sở dữ liệu, đừng cấp quyền quản trị cho mọi người. Thay vào đó, như một phương pháp hay nhất, hãy luôn tạo một số vai trò để ủy quyền cho người dùng.
Việc thiết lập một số vai trò người dùng nhất định sẽ giảm bớt sự phức tạp cho mỗi người dùng và giảm đáng kể nguy cơ vi phạm tài khoản gây ra thảm họa sau này.
Để tạo người dùng có vai trò, hãy chạy lệnh sau:
db.createUser({user:"admin", pwd:"X1eL#pM0C12", roles:[{role:"userAdminAnyDatabase", db:"admin"]})
Mẹo 4:Thêm một tệp khóa sao chép
Bật tệp khóa sao chép sẽ tự động bật xác thực trong MongoDB. Với tính năng này được bật, chỉ những máy chủ đã cài đặt tệp này mới có thể kết hợp tập hợp bản sao.
Một tệp khóa sao chép được kích hoạt cũng đảm bảo mã hóa dữ liệu trong MongoDB, cung cấp thêm một lớp bảo vệ. Bạn có thể tạo một tệp khóa bằng cách sử dụng bất kỳ phương pháp nào bạn chọn, sao chép tệp khóa vào các thành viên của nhóm bản sao và bắt đầu nhóm bản sao với điều khiển truy cập được bật.
Thêm các dòng sau vào mongod.conf
để kích hoạt tệp khóa sao chép:
Security:
KeyFile: <Path to KeyFile>
Hình ảnh sau minh họa xác thực tệp khóa:
Nguồn hình ảnh:https://www.slideshare.net
Mẹo 5:Không sử dụng các cổng mặc định
Không bao giờ sử dụng bất kỳ cổng mặc định nào để kết nối với các phiên bản MongoDB của bạn. Thông thường, tin tặc chỉ quét số cổng mặc định hoặc chuẩn trước khi chúng tấn công. Một số cổng mặc định mà MongoDB sử dụng là 27017
, 27018
, 27019
, 2700X
, và như vậy.
Dễ dàng thay đổi số cổng mặc định trong mongod.conf
.
Mẹo 6:Có một phương pháp sao lưu tốt
Luôn đảm bảo rằng bạn có bản sao dữ liệu mới nhất để đảm bảo rằng nhật ký hoạt động (oplog) của bạn đã sẵn sàng để khôi phục tại thời điểm (PIT) kể từ thời điểm xảy ra tấn công.
Hãy sẵn sàng với tính năng khôi phục thảm họa chống đánh lừa được thiết lập cho bất kỳ loại tấn công nào.
Mẹo 7:Vô hiệu hóa quyền truy cập công khai vào cơ sở dữ liệu của bạn
Xem lại ứng dụng của bạn để xem ứng dụng có cần bất kỳ quyền truy cập tài khoản bên ngoài nào vào cơ sở dữ liệu hay không. Nếu có bất kỳ tài khoản nào như vậy, hãy đặt chúng để sử dụng xác thực và mã hóa.
Bạn thậm chí có thể vô hiệu hóa quyền truy cập công cộng bằng cách liên kết các địa chỉ Giao thức Internet (IP) máy chủ trong mongod.conf
.
Mẹo 8:Bật các quy tắc tường lửa ở cấp hệ điều hành và sử dụng VPN
Tường lửa cung cấp thêm một lớp bảo mật để lọc và kiểm soát tài khoản trong một hệ thống qua mạng. Trên máy chủ MongoDB, hãy bật các quy tắc tường lửa trên các nhóm bảo mật của máy chủ lưu trữ trong dịch vụ lưu trữ đám mây.
Luôn đảm bảo rằng bạn chỉ cấp quyền truy cập vào các phiên bản mongod cho các nguồn đáng tin cậy. Cấu trúc địa chỉ IP hoặc dải cổng cho máy chủ để lưu trữ makecloud an toàn hơn.
Sử dụng VPN để cung cấp quyền truy cập được chứng nhận vào hệ thống cơ sở dữ liệu của bạn để mã hóa nhiều cấp độ khác nhau, nhiều cấp độ xác thực và ủy quyền cho tất cả các phòng khám.
Mẹo 9:Kiểm tra hệ thống cơ sở dữ liệu thường xuyên để tìm các vấn đề bảo mật
Kiểm tra cơ sở dữ liệu hoặc hệ thống máy chủ thường xuyên để xem có bất kỳ vi phạm nào không hoặc bất kỳ tài khoản người dùng nào đã cấp các đặc quyền nâng cao, ngoài các đặc quyền bắt buộc, dựa trên vai trò và đặc quyền của họ.
Nếu các đặc quyền nâng cao được cấp cho mục đích thử nghiệm, hãy nhớ thu hồi để bảo mật lại hệ thống.
Mẹo 10:Xác thực và kiểm tra quyền truy cập cơ sở dữ liệu từ bên ngoài
Bạn hoặc nhóm của bạn nên kiểm tra hệ thống cơ sở dữ liệu để tìm các vấn đề bảo mật bằng cách sử dụng kiểm tra mạng hoặc chèn SQL để xem liệu họ có khai thác hệ thống hay không. Đảm bảo rằng không có gì được tiếp xúc từ thế giới bên ngoài vào cơ sở dữ liệu của bạn.
Bạn có thể sử dụng nhiều công cụ để kiểm tra đó, chẳng hạn như nmap, telnet, v.v.
Kết luận
Blog này giúp bạn định cấu hình một số phương pháp bảo mật cơ bản để quản trị dailyMongoDB. Sử dụng các mẹo này và các công cụ được mô tả để bảo mật các ứng dụng cơ sở dữ liệuMongoDB của bạn.
Bạn cũng có thể sử dụng Dịch vụ giám sát MongoDB (MMS) để giám sát và định cấu hình hầu hết các tính năng liên quan đến bảo mật thay vì sử dụng trình bao mongo.
Sử dụng tab Phản hồi để đưa ra bất kỳ nhận xét hoặc đặt câu hỏi nào.
Tìm hiểu thêm về các quản trị viên cơ sở dữ liệu được chứng nhận và các dịch vụ cơ sở dữ liệu của chúng tôi.