加入收藏 | 设为首页 | 会员中心 | 我要投稿 泉州站长网 (https://www.0595zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 安全 > 正文

NoSQL注入的分析和缓解

发布时间:2021-01-11 19:34:51 所属栏目:安全 来源:网络整理
导读:副标题#e# 《NoSQL注入的分析和缓解》要点: 本文介绍了NoSQL注入的分析和缓解,希望对您有用。如果有疑问,可以联系我们。 作者 | Aviv Ron Alexandra-Shulman-Peleg Anton Puzanov 译者 | 冬雨 ? 本文要点: 了解针对NoSQL的新的安全漏洞 五类NoSQL攻击手
副标题[/!--empirenews.page--]

《NoSQL注入的分析和缓解》要点:
本文介绍了NoSQL注入的分析和缓解,希望对您有用。如果有疑问,可以联系我们。

作者 | Aviv Ron Alexandra-Shulman-Peleg Anton Puzanov
译者 | 冬雨 ?

本文要点:

  • 了解针对NoSQL的新的安全漏洞
  • 五类NoSQL攻击手段,比如重言式、联合查询、JavaScript 注入、背负式查询(Piggybacked queries),以及跨域违规
  • OWASP组织针对检查NoSQL注入代码的建议
  • 了解如何缓解安全风险
  • 如何在整个软件开发周期中整合NoSQL数据库漏洞的管理

本篇文章已经在IEEE Software 杂志上首发.IEEE Software 就今天的战略性技术问题提供了可靠的、经专家评审过的信息.IT管理者和技术领导应依靠新先进解决方案的IT专业人员,以迎接运行可靠的、灵活的企业这一挑战.

NoSQL(不仅仅是NoSQL)数据存储系统已经非常流行,因为它们易扩展且易于使用.尽管NoSQL数据存储的新的数据模型和查询格式令原来的攻击不再有效了,但攻击者却可以寻找新的契机插入恶意代码.

数据库安全是信息安全的一个重要内容.访问企业数据库授权攻击者能够充分控制关键性数据.例如,SQL注入攻击把恶意代码插入到应用向数据库层发送的语句中.这使攻击者几乎能对数据做任何操作,包括访问未授权的数据,以及修改、删除和插入数据.尽管由于框架更安全、人们意识更强,SQL注入这种手段的利用率近几年来已经稳步下降,但它仍然是个高危的系统漏洞.例如,Web应用每月受到四次或更多次Web攻击活动,而SQL注入仍然是攻击零售商最流行的方式1.此外,SQL注入漏洞对32%的Web应用都有影响.

NoSQL(不仅仅是SQL)是数据存储的一个流行趋势;它泛指依赖于不同存储机制的非关系型数据库,这些存储机制包括文档存储、键值对存储和图.这些数据库的广泛应用是由现代大型应用推动起来的,比如Facebook、Amazon和Twitter,它们需要把数据分布到许多的服务器上.传统关系型数据库不满足这种扩展性需求,它们需要一个单独的数据库节点去执行同一事务的所有操作.

于是,发展出一批分布式的、NoSQL键值对存储来满足这些大型应用的扩展性需求.这些数据存储包括像MongoDB和Cassandra之类的NoSQL数据库,也有像Redis和Memcached这样的内存和缓存存储.确实,NoSQL的受欢迎程度在过去几年来一直在稳定上升,其中MongoDB在10个最流行的数据库中排到了第四位,如图1所示.

图1 ?db-engines.com 2015年8月流行度排名中前十个最受欢迎的数据库.其中NoSQL数据库有MongoDB、Cassandra和Redis.这三款的受欢迎程度仍在上升.

在本文中,我们将分析NoSQL的威胁和技术,以及它们的缓解机制.

NoSQL 漏洞

几乎就像每种新技术一样,NoSQL数据库在刚出现时还不够安全3–5.它们当初缺乏加密、适当的认证、角色管理和细粒度的授权等6.此外,它们还会出现危险的风险暴露和拒绝服务攻击3.如今,情况已经好转了,流行的数据库已经引入了内置的保护机制7.

NoSQL数据库使用不同的查询语言,这使传统的SQL注入技术已经无效了.但这是否意味着NoSQL系统对注入免疫呢?我们的研究表明,尽管这个查询语言及其驱动的安全性已经大型提升,但仍然存在着注入恶意查询的手段.已经有人整理出了NoSQL注入技术的列表1,3,4.有些初步应用扫描项目已经涌现出来了(例如nosqlproject.com),而且开放式Web应用程序安全项目(OWASP,Open Web Application Security Project)已经公布了检查NoSQL注入代码的建议.然而,这些还仅仅是初步成果,这些问题尚未得到充分的研究,并且未得到应有的关注.

NoSQL攻击途径

Web应用和服务通常使用NoSQL数据库去保存客户数据.图2展示了一个典型的架构,在此NoSQL用于保存通过Web应用来存取的数据.通过一个驱动程序来进行这个数据库的访问,即一个存取协议包装器,它为多种编程语言编写的数据库客户端提供类库.尽管该驱动程序自身可能不易受到攻击,但有时它们提供了不安全的API,当应用开发人员错误地使用它们时,就会给该应用引入漏洞了,这些漏洞会被人利用对数据库进行任意操作.如图2所示,攻击者可以伪造一个带有注入代码的Web访问请求,当数据库客户端或协议包装器进行处理时,将会执行预期的非法数据库操作.

图2 典型Web应用架构.NoSQL用于保存通过Web应用来存取的数据.通过一个驱动程序来进行这个数据库的访问,就会给该应用引入漏洞了.

NoSQL相关的SQL攻击主要机制可以大致分为以下五类:

  • 重言式.又称为永真式.此类攻击是在条件语句中注入代码,使生成的表达式判定结果永远为真,从而绕过认证或访问机制.例如,在本文中,我们将展示攻击者如何用$ne操作(不相等)的语法让他们无需相应的凭证即可非法进入系统.
  • 联合查询.联合查询是一种众所周知的SQL注入技术,攻击者利用一个脆弱的参数去改变给定查询返回的数据集.联合查询最常用的用法是绕过认证页面获取数据.在本文中,我们将展示一个攻击示例,它将通过增加永真的表达式利用布尔OR运算符进行攻击,从而导致整个语句判定出错,进行非法的数据获取.
  • JavaScript注入.这是一种新的漏洞,由允许执行数据内容中JavaScript的NoSQL数据库引入的.JavaScript使在数据引擎进行复杂事务和查询成为可能.传递不干净的用户输入到这些查询中可以注入任意JavaScript代码,这会导致非法的数据获取或篡改.
  • 背负式查询.在背负式查询中,攻击者通过利用转义特定字符(比如像回车和换行之类的结束符)插入由数据库额外执行的查询,这样就可以执行任意代码了.
  • 跨域违规.HTTP REST APIs是NoSQL数据库中的一个流行模块,然而,它们引入了一类新的漏洞,它甚至能让攻击者从其他域攻击数据库.在跨域攻击中,攻击者利用合法用户和他们的网页浏览器执行有害的操作.在本文中,我们将展示此类跨站请求伪造(CSRF)攻击形式的违规行为,在此网站信任的用户浏览器将被利用在NoSQL数据库上执行非法操作.通过把HTML格式的代码注入到有漏洞的网站或者欺骗用户进入到攻击者自己的网站上,攻击者可以在目标数据库上执行post动作,从而破坏数据库.

    JSON查询以及数据格式

    (编辑:泉州站长网)

    【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!