如何审计NoSQL以发现安全漏洞?

SQL注入是一种常见的攻击技术,但它不仅仅存在于SQL(关系型数据库)中,也存在于NoSQL(非SQL或也被称为非关系型数据库)中。

你知道吗,今天已经有超过100个NoSQL数据库可供使用了吗?

这要归功于开源社区。

你听说过哪个?

MongoDB 和 Redis,可能有!是的,它们非常受欢迎。

NoSQL并不是一件新事物;它最早由Carlo Strozzi于1998年引入。但最近,随着它在现代应用中的使用而获得了很多的流行度。为什么不呢?它快速,并解决了一些传统关系型数据库的问题。在以下方面存在差异:SQL and NoSQL.

如果你正在使用像MongoDB这样的NoSQL数据库,并且不确定它们是否适用于生产环境,请不要暴露漏洞、错误配置等。以下工具可以帮助你找到这些问题。

NoSQLMap

NoSQLMap 是一个基于Python的开源小型工具,能够进行审计以查找错误配置和自动化注入攻击。它目前支持以下数据库。

  • MongoDB
  • CouchDB
  • Redis
  • Cassandra

要安装NoSQLMap,你需要Git,Python和Setuptools模块,你可以在Ubuntu上安装它们。

apt-get install python
apt-get install python-setuptools

安装Python后,按照以下步骤安装NoSQLMAP。

git clone https://github.com/codingo/NoSQLMap.git
python setup.py install

完成后,你可以从克隆的GIT目录执行./nosqlmap.py命令,它会提示如下。

_  _     ___  ___  _    __  __           
| | |___/ __|/ _ | |  |  /  |__ _ _ __ 
| .` / _ __  (_) | |__| |/| / _` | '_ 
|_|____/___/_______|_|  |___,_| .__/
 v0.7 [email protected]        |_|   


1-Set options
2-NoSQL DB Access Attacks
3-NoSQL Web App attacks
4-Scan for Anonymous MongoDB Access
5-Change Platform (Current: MongoDB)
x-Exit
Select an option:

在测试之前,你需要通过选择选项1来设置目标。请查看以下演示教程。

blank

Mongoaudit

从名称上可以猜到,它专门用于MongoDB。 Mongoaudit 适用于执行渗透测试,以查找漏洞、错误配置和潜在风险。它检查了许多最佳实践,包括以下内容。

  • MongoDB是否在默认端口上运行并启用了HTTP接口
  • 是否通过TLS进行了安全保护和身份验证
  • 认证方法
  • CRUD操作

安装Mongoaudit很简单。你可以使用pip命令。

pip install mongoaudit

安装完成后,执行mongoaudit命令来运行扫描。你将被提示选择扫描级别并输入MongoDB监听器详细信息。

blank

无论你使用什么工具来对NoSQL数据库运行安全扫描,记住要负责任。你必须确保你运行的是你自己的数据库实例或经过授权的测试。如果你经常使用NoSQL,你可能会对这些clients来提高生产力感兴趣。

还可以查看这个article,以查找关系型数据库中的SQL注入漏洞。

类似文章