1.Mongodb未授权访问

描述

MongoDB 是一个基于分布式文件存储的数据库。默认情况下启动服务存在未授权访问风险,用户可以远程访问数据库,无需认证连接数据库并对数据库进行任意操作,存在严重的数据泄露风险。

加固建议

可以使用以下方法修复:

1.限制mongodb监听范围: 打开配置文件<mongod.conf>,设置bind_ip=<ip>,如果配置文件为yaml格式,则在net选项下设置bindIp: <ip1,ip2...>;其中<ip>,<ip1,ip2...>为指定的一个或多个IP地址,如mongodb只需在本地使用,则建议绑定本地ip127.0.0.1;

2.开启登录认证并增加认证用户: 若还没有用户,则登录mongodb客户端,创建新用户及密码。然后打开配置文件<mongod.conf>,设置auth=true,如果配置文件为yaml格式,则在security选项下设置authorization:enabled;

3. 设置完成后重启mongodb服务。

2.确保将新条目附加到日志文件的末尾

描述

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

加固建议

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

3.确保日志记录捕获尽可能多的信息

描述

SystemLog.quiet选项停止记录信息,例如:

?连接事件

?身份验证事件

?复制同步活动

?运行一些可能有影响的命令的证据(例如:drop,dropIndexes,

验证)

应尽可能记录此信息。 此检查仅适用于Enterprise

版本。

使用SystemLog.quiet可以解决问题并进行调查

安全事件要困难得多。

加固建议

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

4.确保MongoDB使用非默认端口

描述

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

加固建议

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

5.确保MongoDB仅侦听授权接口上的网络连接

描述

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

加固建议

1、如果服务只允许本机访问,编辑MongoDB的配置文件<conf_path>/mongod.conf,在net区块下配置bindIp,将此项的值设置为:127.0.0.1(仅允许本机访问),并重启MongoDB服务。

2、如业务需要设置为跨服务器访问,可通过安全组配置访问规则,防止服务暴露到互联网上,然后忽略此项

6.确保在不需要时禁用服务器端脚本

描述

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

加固建议

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

7.确保正确设置了数据库文件权限

描述

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

加固建议

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

chmod 600 /var/lib/mongodb

sudo chown mongodb:mongodb /var/lib/mongodb

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

8.确保正确设置了密钥文件权限

描述

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

加固建议

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

chmod 600 <keyfile_path>/keyfile

sudo chown mongodb:mongodb <keyfile_path>/keyfile

9.确保使用非特权的专用服务帐户运行MongoDB

描述

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

加固建议

1.创建用于执行MongoDB数据库活动的专用用户。

2.将数据库数据文件,密钥文件和SSL私钥文件设置为只能读取 由mongod/mongos用户提供。

3.将日志文件设置为只能由mongod/mongos用户写入,并且只能由root读取。

4.切换至该专用用户,并重启MongoDB

10.确保为MongoDB数据库启用了身份验证

描述

此设置可确保所有客户端,用户和/或服务器都需要进行身份验证

在被授予访问MongoDB数据库之前。

无法对客户端,用户和/或服务器进行身份验证可以启用对服务器的未授权访问

MongoDB数据库可以防止跟踪操作返回其源。

加固建议

编辑MongoDB配置文件,在security区块下配置 authorization: enabled

Mongodb安全防护的更多相关文章

  1. 每天200亿次查询 – MongoDB在奇虎360【转】

    100多个应用,1,500多个实例,每天200亿次查询 奇虎是中国最大的安卓移动发布平台.奇虎也是中国最顶尖的病毒软件防护公司,同时为网络以及移动平台提供产品.自从2011年成为MongoDB的用户之 ...

  2. MongoDB安全及身份认证

    前面的话 本文将详细介绍MongoDB安全相关的内容 概述 MongoDB安全主要包括以下4个方面 1.物理隔离 系统不论设计的多么完善,在实施过程中,总会存在一些漏洞.如果能够把不安全的使用方与Mo ...

  3. mongodb数据库禁止外网访问以及添加账号

    未曾料到被黑客勒索比特币的戏码竟然降临到我的身上,几个月的技术积累付之一炬.怪只怪自己学艺不精,心存侥幸和无知,不过经此一役,方知网络安全防护的重要性. 一直未给自己的mongodb数据库设置账号密码 ...

  4. 从MongoDB里面取得json格式的数据,然后存为本地的json文件,然后再从json读取变为dict

    帮宣传下彩印网(www.caiyin.com) 有印刷,广告等等方面的需求就找这个网站吧,没错的. 天气预报在MongoDB中的天气预报的存储方式是: /* 1 */ { "_id" ...

  5. MongoDB 安全配置

    前言 随着MongoDB使用人群企业越来越广泛,黑客的注意力也转移到了其中.比如去年很火热的MongoDB劫持事件,很多人对MongoDB的安全也越来越重视.今天,我们就简单总结一些MongoDB的安 ...

  6. mongodb禁止外网访问以及添加账号

    未曾料到被黑客勒索比特币的戏码竟然降临到我的身上,几个月的技术积累付之一炬.怪只怪自己学艺不精,心存侥幸和无知,不过经此一役,方知网络安全防护的重要性. 一直未给自己的mongodb数据库设置账号密码 ...

  7. WebApp 安全风险与防护课堂开课了!

    本文由葡萄城技术团队于原创并首发 转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 2018 网络安全事故频发,从数据泄露.信息窃取,到 DDOS 攻击.勒索 ...

  8. MongoDB之Replica Sets环境搭建

    最近学习MongoDB,这两天在搭建复制集的时候碰到了不少问题,也踩了好多坑,现在在这里记录下来,以供自己和他人参考 (因为本人是初学者,所以遇到的问题也会比较初级,所以本文也比较适合初学者查阅) 背 ...

  9. MongoDB安全事件的防范与反思

    此文已由作者温正湖授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 近段时间来,全球范围内数以万计的MongoDB实例被攻击,作为旨在为用户提供最优MongoDB云服务的网易蜂 ...

随机推荐

  1. 在Vs code中使用sftp插件以及连接windows远程sftp协议部署指导(解决vscode的sftp插件中文目录乱码问题)

    一.启动SFtp 二.上手vs code SFTP插件 2.1 初始配置 2.2解决乱码问题 三.SFTP配置 3.1常用配置 3.2示例配置 四.SFTP使用 五.扩展阅读 一.启动SFtp 话说小 ...

  2. 菜鸡的Java笔记 第二十五 wrapperClass 包装类

    wrapperClass 包装类         1.包装类的特点        2.装箱与拆箱操作        3.数据转型处理            内容        Object 类可以接收 ...

  3. [bzoj2400]Optimal Marks

    首先肯定每一位单独考虑,对于每一位,源点连向该位点权为0的节点inf的边,点权为1的节点连向汇点inf的边,每一条无向边拆成两条流量为1的有向边,跑最小割. 考虑一组割,一定将原图划分成源点和汇点两部 ...

  4. [luogu4259]寻找车位

    考虑一个分治的做法:按行分治,将所有区间分为两类--经过分割线的.在左/右区间内部,后者显然可以递归下取,考虑前者 先求出出该行上每一列向上和向下的最大长度,记作$up_{i}$和$down_{i}$ ...

  5. 同时在多个 Git 分支上工作,老板要榨干我

    背景 上一篇文章 保持清洁的Git提交记录,三招就够了 ,大家看过后有私下留言说这是非常好用的功能,我突然想到工作中用到的另外一个 Git 功能那也是相当好用,必须全盘托出 作为程序员的我们应该都有一 ...

  6. SpringCloud升级之路2020.0.x版-41. SpringCloudGateway 基本流程讲解(3)

    本系列代码地址:https://github.com/JoJoTec/spring-cloud-parent 我们继续分析上一节提到的 WebHandler.加入 Spring Cloud Sleut ...

  7. layui的动态下拉选

    <!--将授权问卷id全部查询出来--> <div class="layui-inline"> <label class="layui-fo ...

  8. C/C++ Qt MdiArea 多窗体组件应用

    MDI多窗体组件,主要用于设计多文档界面应用程序,该组件具备有多种窗体展示风格,其实现了在父窗体中内嵌多种子窗体的功能,使用MDI组件需要在UI界面中增加mdiArea控件容器,我们所有的窗体创建与操 ...

  9. LOJ #6207 - 米缇(杜教筛+拉格朗日插值)

    LOJ 题面传送门 首先将 \(\sigma_k(ij)\) 展开: \[\sigma_k(ij)=\sum\limits_{x\mid i}\sum\limits_{y\mid j}[x\perp ...

  10. Codeforces 429E - Points and Segments(欧拉回路)

    Codeforces 题面传送门 & 洛谷题面传送门 果然我不具备融会贯通的能力/ll 看到这样的设问我们可以很自然地联想到这道题,具体来说我们可以通过某种方式建出一张图,然后根据" ...