漏洞描述
CouchDB 数据库如果配置不当存在未授权访问漏洞,可能被攻击者恶意利用。
- 攻击者无需认证即可访问到内部数据,从而导致敏感信息泄露。同时,攻击者也可以恶意清空所有数据。
- 攻击者可通过配置自定义函数,直接执行系统命令。
受影响范围
对公网开放,且未启用认证的 CouchDB 数据库服务器。
修复方案
1. 禁止 CouchDB 服务被外网访问
在 /etc/couchdb/local.ini 配置文件中找到bind_address = 0.0.0.0
配置信息,将 0.0.0.0
修改为 127.0.0.1
,然后保存配置文件。
注意:
- 修改配置后,需要重启 CouchDB 服务才能生效。
- 修改配置后,只有本机才能访问 CouchDB 服务。
2. 设置访问密码
在 /etc/couchdb/local.ini 配置文件中找到[admins]
字段,在该字段后填写您需要设置的账号密码,然后保存配置文件。
注意:
- 修改配置后,需要重启 CouchDB 服务才能生效。
- 修改配置后,CouchDB 客户端也需要使用此密码来访问 CouchDB 服务。
3. 修改 CouchDB 服务运行账号
建议以较低权限账号运行 CouchDB 服务,且禁用该账号的系统登录权限。这样,可以限制攻击者执行高危命令,但是 CouchDB 数据还是能被黑客访问到,或者被黑客恶意删除。
注意: 修改配置后,需要重启 CouchDB 服务才能生效。
4. 设置防火墙策略
如果您的正常业务中 CouchDB 服务需要被其他服务器来访问,可以设置 iptables 策略仅允许指定的 IP 来访问 CouchDB 服务。