MongoDB安全检测清单

2017-09-12 23:49:58 IN小编 MottoIN



 本文提供了一个较为全面的MongoDB安全检测清单,遵从它们可以更好的保护您的数据安全。

 

启用访问控制和强制认证

 

启用访问控制并指定身份验证机制。可以使用默认的MongoDB认证机制或已有的外部框架。身份验证要求所有客户机和服务器在连接到系统之前提供有效凭据。

 

在部署集群时,确保为每个MongoDB服务器启用了身份认证。

 

身份验证:https://docs.mongodb.com/manual/core/authentication/

 

访问控制:https://docs.mongodb.com/manual/tutorial/enable-authentication/

 

配置基于角色的访问控制

 

首先创建一个管理员(administrator)用户,然后再创建其他用户。为每个使用者创建一个独特的MongoDB用户,适用对应的访问控制策略。

 

创建角色(精确的确定一组用户的访问需求,遵循最小特权原则),然后创建用户,并为他们分配执行操作所需的角色。一个用户可以是一个人或一个客户端应用程序。

 

基于角色的访问控制:https://docs.mongodb.com/manual/core/authorization/

 

用户和角色管理:https://docs.mongodb.com/manual/tutorial/manage-users-and-roles/

 

加密通信

 

配置MongoDB使用TLS / SSL处理所有输入和输出的通信。使用TLS / SSL加密mongod mongos组件之间、所有应用程序和MongoDB之间的通信。

 

配置mongod mongos支持TLS / SSLhttps://docs.mongodb.com/manual/tutorial/configure-ssl/

 

加密和保护数据

 

MongoDB企业版3.2开始将WiredTiger设置为了默认的存储引擎,本地加密策略可以实现存储层的数据加密。

 

如果没有使用wiredtiger加密,应当使用文件系统、设备或物理加密的方式对每个主机上的MongoDB数据加密,保护利用MongoDB数据文件系统的访问权限。MongoDB数据包括数据文件、配置文件、审计日志和密钥文件。

 

加密配置:https://docs.mongodb.com/manual/core/security-encryption-at-rest/


限制网络曝光

 

确保MongoDB运行在可信网络环境下,限制MongoDB实例侦听的传入的连接接口。只允许受信任的客户端访问MongoDB实例的网络接口和端口。

 

安全加固:https://docs.mongodb.com/manual/core/security-hardening/

 

bindip设置:https://docs.mongodb.com/manual/reference/configuration-options/#net.bindIp

 

审计系统活动

 

跟踪数据哭库配置和数据的访问和更改。MongoDB企业版包括系统审计功能,允许用户记录MongoDB实例的系统事件(如用户操作、连接事件)。这些审计记录允许取证分析,并允许管理员验证适当的控制。

 

审计功能:https://docs.mongodb.com/manual/core/auditing/

 

配置审计:https://docs.mongodb.com/manual/tutorial/configure-auditing/

 

使用一个专用账户运行MongoDB

 

使用专用的操作系统的用户帐户运行MongoDB。确保帐户具有一定的访问数据的权限,权限的设置遵守最小权限原则,不授予任何不必要的权限。。

 

安装MongoDB https://docs.mongodb.com/manual/installation/

 

设置MongoDB的安全配置选项

 

MongoDB支持某些服务器端的操作,如JavaScript代码执行:mapReduce group $where。如果你不使用这些操作,应当禁用服务器端的脚本执行(在命令行执行-- noscripting选项)。

 

只在生产部署时使用MongoDB Wire协议。不启用以下内容:net.http.enablednet.http.jsonpenablednet.http.restinterfaceenabled,这些都会用到Web服务器接口。把这些禁用掉,除非需要向后兼容。

 

注意:自V3.2版本后,MongoDB使用HTTP接口

 

确保启用了输入验证功能。MongoDB可以通过设置wireobjectcheck默认开启输入验证。这将确保所有的文件都被mongod实例有效的存储为BSON格式。

 

wireobjectcheckhttps://docs.mongodb.com/manual/reference/configuration-options/#net.wireObjectCheck

 

安全技术实施指南、安全合规性

 

MongoDB公司提供了安全技术实施指南(STIG),如果需要,可以索取文件副本:

 

https://www.mongodb.com/lp/contact/stig-requests?_ga=2.213398876.975453406.1505215779-1568853118.1504609660

 

 

如果需要遵从HIPAAPCI-DSS的合规要求,可以参阅MongoDB的安全参考架构以了解更多关于信息:

 

https://www.mongodb.com/collateral/mongodb-security-architecture?_ga=2.118632513.975453406.1505215779-1568853118.1504609660