如何审计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来设置目标。请查看以下演示教程。
Mongoaudit
从名称上可以猜到,它专门用于MongoDB。 Mongoaudit 适用于执行渗透测试,以查找漏洞、错误配置和潜在风险。它检查了许多最佳实践,包括以下内容。
- MongoDB是否在默认端口上运行并启用了HTTP接口
- 是否通过TLS进行了安全保护和身份验证
- 认证方法
- CRUD操作
安装Mongoaudit很简单。你可以使用pip
命令。
pip install mongoaudit
安装完成后,执行mongoaudit
命令来运行扫描。你将被提示选择扫描级别并输入MongoDB监听器详细信息。
无论你使用什么工具来对NoSQL数据库运行安全扫描,记住要负责任。你必须确保你运行的是你自己的数据库实例或经过授权的测试。如果你经常使用NoSQL,你可能会对这些clients来提高生产力感兴趣。
还可以查看这个article,以查找关系型数据库中的SQL注入漏洞。