MongoDB基线

支持3.X版本的MongoDB

访问控制

1.高危-确保使用非特权的专用服务帐户运行MongoDB

描述:
MongoDB服务不应使用特权帐户(如“root”)运行,因为这会不必要地将操作系统暴露在高风险之下。 使用非特权专用服务帐户限制数据库访问MongoDB不需要的操作系统的关键区域。 这还将减少通过操作系统上受损的特权帐户进行未经授权访问的可能性。

加固建议:

  1. 创建用于执行MongoDB数据库活动的专用用户。
  2. 将数据库数据文件,密钥文件和SSL私钥文件设置为只能读取 由mongod/mongos用户提供。
  3. 将日志文件设置为只能由mongod/mongos用户写入,并且只能由root读取。
  4. 切换至该专用用户,并重启MongoDB

2.中危-确保MongoDB仅侦听授权接口上的网络连接

描述:
确保MongoDB在受信任的网络环境中运行涉及限制MongoDB实例侦听传入连接的网络接口。 MongoDB应删除任何不受信任的网络连接。 此配置阻止来自不受信任网络的连接,只允许授权和受信任网络上的系统尝试连接到MongoDB。 如果未配置,则可能导致从不受信任的网络到MongoDB的未授权连接。

加固建议:

  1. 如果服务只允许本机访问,编辑MongoDB的配置文件<conf_path>/mongod.conf,在net区块下配置bindIp,将此项的值设置为:127.0.0.1(仅允许本机访问),并重启MongoDB服务。
  2. 如业务需要设置为跨服务器访问,可通过安全组配置访问规则,防止服务暴露到互联网上,然后忽略此项

文件权限

3.高危-确保正确设置了密钥文件权限

描述:

密钥文件用于分片群集中的身份验证。 在密钥文件上实现适当的文件权限将防止对其进行未经授权的访问。保护密钥文件可加强分片集群中的身份验证,并防止对MongoDB数据库的未授权访问。

加固建议:

将keyFile所有权设置为mongodb用户,并通过执行以下命令删除其他权限:

chmod 600 <keyfile_path>/keyfile
sudo chown mongodb:mongodb <keyfile_path>/keyfile

4.高危-确保正确设置了数据库文件权限

描述:

MongoDB数据库文件需要使用文件权限进行保护。这将限制未经授权的用户访问数据库。

加固建议:

将数据库文件的所有权设置为mongodb用户,并使用以下命令删除其他权限:

chmod 600 /var/lib/mongodb
sudo chown mongodb:mongodb /var/lib/mongodb

以上命令为默认数据库文件路径,请根据实际环境修改为正确数据库文件路径。

服务配置

5.高危-确保在不需要时禁用服务器端脚本

描述:

MongoDB支持为某些服务器端操作执行JavaScript代码:mapReduce,group和$ where。 如果不使用这些操作,则应禁用服务器端脚本。 如果不需要服务器端脚本并且未禁用,则会带来不必要的风险,即攻击者可能会利用不安全的编码。

加固建议:

编辑<conf_file>/mongod.conf文件中将security下的javascriptEnabled:设置为false以禁用它。

6.中危-确保MongoDB使用非默认端口

描述:

更改MongoDB使用的端口使攻击者更难找到数据库并将其作为目标。 标准端口用于自动攻击,并由攻击者用于验证服务器上正在运行的应用程序。

加固建议:

将MongoDB服务器的端口更改为27017以外的数字

身份鉴别

7.高危-确保为MongoDB数据库启用了身份验证

描述:

此设置可确保所有客户端,用户和/或服务器都需要进行身份验证 在被授予访问MongoDB数据库之前。 无法对客户端,用户和/或服务器进行身份验证可以启用对服务器的未授权访问 MongoDB数据库可以防止跟踪操作返回其源。

加固建议:

打开配置文件<mongod.conf>,设置auth=true,如果配置文件为yaml格式,则在security选项下设置authorization:enabled;

开启认证前需要添加认证用户

8.高危-PostgreSQL弱口令检查

描述:
若系统使用弱口令,存在极大的被恶意猜解入侵风险,需立即修复。

加固建议
登录postgresql,使用如下命令修改弱口令:

ALTER USER <user> WITH PASSWORD '<newpassword>';
其中为用户名,为新口令。新口令应符合复杂性要求:

  1. 长度8位以上
  2. 包含以下四类字符中的三类字符:
  • 英文大写字母(A 到 Z)
  • 英文小写字母(a 到 z)
  • 10 个基本数字(0 到 9)
  • 非字母字符(例如 !、$、#、%、@、^、&)
  1. 避免使用已公开的弱口令,如:abcd.1234 、admin@123等

安全审计

8.高危-确保日志记录捕获尽可能多的信息

描述:

SystemLog.quiet选项停止记录信息,例如: ?连接事件 ?身份验证事件 ?复制同步活动 ?运行一些可能有影响的命令的证据(例如:drop,dropIndexes, 验证) 应尽可能记录此信息。 此检查仅适用于Enterprise 版本。 使用SystemLog.quiet可以解决问题并进行调查 安全事件要困难得多。

加固建议:

编辑<conf_file>/mongod.conf文件中将SystemLog下的quiet设置为False以禁用它。

9.高危-确保将新条目附加到日志文件的末尾

描述:

默认情况下,新的日志条目将在重新启动mongod或Mongols服务后覆盖旧条目。 启用systemLog.logAppend设置会导致新条目附加到日志文件的末尾,而不是在mongos或mongod实例重新启动时覆盖日志的现有内容。 允许旧条目被新条目覆盖而不是将新条目附加到日志末尾可能会破坏出于各种目的所需的旧日志数据。

加固建议:

编辑配置文件<conf_path>/mongod.conf将systemLog下的logAppend设置为true。

MongoDB安全基线相关推荐

  1. MySQL成勒索新目标,数据服务基线安全问题迫在眉睫

    据最新报道显示,继MongoDB和Elasticsearch之后,MySQL成为下个数据勒索目标,从2月12日凌晨开始,已有成百上千个开放在公网的MySQL数据库被劫持,删除了数据库中的存储数据,攻击 ...

  2. mongodb 群集图_群集和重叠条形图

    mongodb 群集图 为什么和如何 (Why & How) 1.- Clustered Bar Charts 1.- 集群条形图 AKA: grouped, side-by-side, mu ...

  3. PostgreSQL,MongoDB,Neo4j,OrientDB和ArangoDB比较

    基准:PostgreSQL,MongoDB,Neo4j,OrientDB和ArangoDB 2015年10月13日表现 在这篇博客文章 - 这是一个综合的表现博客系列 - 我想完成我们的NoSQL性能 ...

  4. 内存数据库mongodb_内存和磁盘性能如何影响您的MongoDB数据库

    内存数据库mongodb This article was originally published on MongoDB. Thank you for supporting the partners ...

  5. 2020年MongoDB中文社区年终线上大会全纪录【附PPT及视频回放】

    2021年1月8日,MongoDB中文社区联合MongoDB官方.锦木信息.Tapdata和华为开展2020年MongoDB中文社区年终大会. 点击下方链接 即可观看线上会议回放 http://www ...

  6. MySQL成勒索新目标,数据服务基线安全问题迫在眉睫 1

    据最新报道显示,继MongoDB和Elasticsearch之后,MySQL成为下个数据勒索目标,从2月12日凌晨开始,已有成百上千个开放在公网的MySQL数据库被劫持,删除了数据库中的存储数据,攻击 ...

  7. windows安装MongoDB环境以及在pycharm中配置可视化插件

    安装MongoDB数据库 参考这里 安装PyMongo python3 -m pip3 install pymongo指定版本 python3 -m pip3 install pymongo==3.5 ...

  8. SQL与NoSQL的区别 以MySQL与MongoDB为例

    异同对比 1.语言和结构层面 SQL数据库,是基于表的,并且用结构化语言也就是SQL来定义和操纵数据.一方面,这是非常强大的:SQL是最通用和最广泛使用的选项之一,使其成为一个安全的选择,尤其适用于复 ...

  9. php配置mongodb扩展、安装mongodb服务教程

    安装mongodb服务. 1.下载mongodb: mongodb 提供了可用于 32 位和 64 位系统的,你可以从mongodb官网下载安装. mongodb下载地址:https://www.mo ...

最新文章

  1. [shiro] - 怎样使用shiro?
  2. service和thread的区别,何时用service,何时用thread?
  3. 简易航空订票系统_基于C++实现简易航空票务,飞机订票系统!
  4. excel数据透视表列名更改
  5. android gridview item 边框,Android实现为GridView添加边框效果
  6. junit单元测试,反射,注解
  7. 博士学位被撤三天后,她的大学教职也被开除!
  8. ar android app,RakugakiAR安卓版
  9. mysql 格式化_mysql中格式化数字详解
  10. Google Map二次开发——API方式
  11. 配置vmcore通过ssh转储到其他主机的方法
  12. PickerView
  13. FaceWarehouse 3DMM形状拟合
  14. python三个单引号成对用于什么_python中三个单引号是什么意思
  15. Django的BUG:ImportError: cannot import name 'patterns'
  16. JSP页面中用绝对路径显示图片
  17. 微信小程序 分包预加载
  18. win7磁盘管理分区,改变页面文件卷,删除卷就由灰变黑了!
  19. IDEA连接mysql后,schemas中无表格
  20. 对于养鱼爱病的新手,给你们一些个人经验,觉得对可以体会

热门文章

  1. threejs可视化快速入门指北(附3D资源导航)
  2. 如何理解Walmart VICS 816?
  3. 艾瑞:Foursquare引领地位社交网络 中国刚起步
  4. 狂笑!可笑20分钟的段子!
  5. DbVisualizer 破解教程
  6. CF#333(Div2) C. The Two Routes(最短路)
  7. 为什么招聘程序员不喜欢招女生
  8. Docker图形化界面工具Portainer最佳实践
  9. 软件架构设计-面向服务的架构设计
  10. 360 度评估中如何评价他人