【技术讨论】解读2017OWASPTop10漏洞体系含接口安全
原文首发t00ls,应冰总需要先知发个贴
小编:下次必须首发先知,不然大刑伺候 哈哈哈哈
Author:sm0nk@猎户实验室
0x00 Top10
OWASP Top10漏洞体系长期以来作为Web攻防白帽子既基础又核心的一个标准。漏洞标准变化如下:
图一
变化内容:**
-
合并了2013-A4"不安全的直接对象引用"和2013-A7"功能级访问控制功能缺失"到2017-A4"无效的访问控制"。
-
增加了2017-A7:攻击检测与防范不足
-
增加了 2017-A10: 未受保护的API
-
去掉了: 2013-A10:未验证的重定向和转发
-
根据增删内容,标准中多次提到了API安全的关键字
- 根据解说内容,标准逐渐向抽象性漏洞过渡和延伸,包括登录体系、会话权限等系列的逻辑漏洞。
0x01 漏洞关联
官方提到 T10围绕主要风险区域进行整理,而不是密封,不重叠或严格的分类。 其中一些是围绕着攻击者整理的,一些是脆弱性,一些是防御,一些是资产。 组织应考虑制定措施,以消除这些问题。Top10 与日常渗透的实际的漏洞点结合起来,关联如下:
图二
当然硬性的把某个漏洞直接归类到An类型,也不是很友好,比如上传漏洞归到A4 – 失效的访问控制略显牵强,因为从数据包上面理解更像是注入,但文件包含、任意下载删除这基本和权限是有关的,所以暂时把文件操作类漏洞归纳为A4。虽然硬性归纳和漏洞堆叠 部分略显牵强,但这种类型的关联能够体现线性拓展以便进一步建模分析,用以滚雪球式充当产品漏报和误报的理论基础。
0x02 接口安全
本次更新,API关键字上镜率特别高,SO尝试单独对接口安全进行汇总分析。 科普到关于API的定义和范围,简单理解就是接口,连接两部分代码的粘合剂。我们可以在APIStore搜索到关于N多产品分类的接口,但这些API对于已有漏洞挖掘经验来分析,规律统一,所以我们按照日常漏洞挖掘的思维去分类,如下:
图三
回想Web安全漏洞挖掘主要集结在输入输出、登录体系、会话权限三大类(包含了常见的WEB漏洞以及逻辑漏洞),当然依据目前移动互联网的趋势还有多种文件及数据类型XML JSON RPC GWT 的接口,所以有必要针对接口安全进行细分及挖掘。渗透过程中经常会遇到手机APP、小程序、微信公众号类等,好多都是基于WebService,所以仍然可以找到类似Web一样的服务端漏洞。
Tips:对APP进行反编译,在内部根据域名和IP进行正则匹配,往往也是个薄弱出发点。
图四
我们再回看一个关于支付接口的漏洞分类,以便进一步佐证接口安全在渗透的地位。当然如果考虑防御的话,更多考虑的是机制是协同。
图五
另外关于接口数据的关联整合,这个一直想表达的,但碍于案例,目前尚未发布。举例说明通过登录接口部分不健全机制,可以获得用户名对应的隐藏几位的手机号,根据手机号可获得用户名。还可以根据用户名能够对应论坛的个人属性。这样经过大量数据爬虫后,可以对应"用户名---手机号---个人属性"的关联信息。这部分可能在房产、金融等领域会有突出的效果。
0x03 信息参考
OWASP Top 10 - 2017 RC1-English.pdf
OWASP Top 10 - 2017 RC1-chinese.pdf (DSRC翻译)
OWASP top10 全局关联图个人归纳总结
链接:http://pan.baidu.com/s/1nuCOMmd 密码:hrup
图六
2017年4月10日,OWASP组织对外发布了"ReleaseCandidate"版本的《OWASP Top 10 2017》文档,OWASP中国根据OWASP组织发布的消息,组织发布《OWASP Top10 2017RC1》中文版。
什么是《OWASP Top 10》?
《OWASP Top 10》提供了10类最严重的Web应用程序安全风险。对于每类风险,提供了以下信息:
- 对风险的描述。
- 漏洞样例
- 攻击案例
- 对漏洞防止的指导
- 来自OWASP组织和其它来源的参考资源
OWASP Top 10中文翻译项目组
项目组组长:王颉、包悦忠
翻译人员:顾凌志、王厚奎、王文君、吴楠、夏玉明、杨天识、袁明坤、张镇(排名按姓氏拼音排列)
审查人员:Rip、夏天泽
说明:本版本已对2013年中文版《OWASP Top 10》中翻译不准确的内容进行修正。翻译水平有限,欢迎指正。
意见反馈
OWASP中国区会员或会员单位有反馈意见,可直接将反馈信息发送至:[email][email protected][/email],或发送至OWASP中国分部:[email][email protected][/email],并由OWASP中国分部代为反馈。
2017 RC1版Top 10风险
A1—注入
注入攻击漏洞,例如:SQL、OS 以及 LDAP注入。这些攻击发生在当不可信的数据作为命令或者查询语句的一部分,被发送给解释器的时候。攻击者发送的恶意数据可以欺骗解释器,以执行计划外的命令或者在未被恰当授权时访问数据。
A2—失效的身份认证和会话管理
与身份认证和会话管理相关的应用程序功能往往得不到正确的实现,这就导致了攻击者破坏密码、密匙、会话令牌或攻击其他的漏洞去冒充其他用户的身份(临时性的或永久性的)。
A3—跨站脚本(XSS)
当应用程序收到含有不可信的数据,在没有进行适当的验证和转义的情况下,就将它发送给一个网页浏览器,这就会产生跨站脚本攻击(简称XSS)。XSS允许攻击者在受害者的浏览器上执行脚本,从而劫持用户会话、危害网站、或者将用户转向至恶意网站。
A4—失效的访问控制
对已通过身份验证用户的运行限制,没有得到恰当的强制执行。攻击者可以利用这些缺陷访问未经授权的功能和/或数据, 例如:访问其他用户的帐户、查看敏感文件、修改其他用户的数据、更改访问权限等。
A5—安全配置错误
好的安全需要对应用程序、框架、应用程序服务器、web服务器、数据库服务器和平台定义和执行安全配置。由于许多设置的默认值并不是安全的,因此,必须定义、实施和维护这些设置。这包含了对所有的软件保持及时地更新,包括所有应用程序的库文件。
A6—敏感信息泄漏
许多Web应用程序没有正确保护敏感数据,如信用卡,税务ID和身份验证凭据。攻击者可能会窃取或篡改这些弱保护的数据以进行信用卡诈骗、身份窃取,或其他犯罪。敏感数据值需额外的保护,比如在存放或在传输过程中的加密,以及在与浏览器交换时进行特殊的预防措施。
A7—攻击检测与防护不足
大多数应用程序和API都缺乏检测、防止和响应手动和自动攻击的基本能力。攻击防护远远超出了基本的输入验证,并涉及到自动检测、记录、响应,甚至阻止漏洞的利用企图。应用程序所有者还需能够快速部署修补程序以防止攻击。
A8—跨站请求伪造(CSRF)
一个跨站请求伪造攻击迫使用户已登录的浏览器将伪造的HTTP请求(包括该用户的会话cookie和其他认证信息)发送到一个存在漏洞的web应用程序。这就允许了攻击者迫使用户浏览器向存在漏洞的应用程序发送请求,而这些请求会被应用程序认为是用户的合法请求。
A9—使用含有已知漏洞的组件
组件,比如:库文件、框架和其它软件模块,几乎总是以全部的权限运行。如果一个带有漏洞的组件被利用,这种攻击可以造成更为严重的数据丢失或服务器接管。应用程序使用带有已知漏洞的组件会破坏应用程序防御系统,并使一系列可能的攻击和影响成为可能。
A10—未受到充分保护的API
现代应用程序通常涉及富客户端的应用程序和API,如:在浏览器和移动应用程序中的JavaScript,它们连接到某种API(如:SOAP/XML、REST/JSON、RPC、GWT等)。这些API通常是没有保护的, 并且包含大量漏洞。
链接:http://pan.baidu.com/s/1nuCOMmd 密码:hrup
技术交流QQ群: 397745473
来自:https://xianzhi.aliyun.com/forum/read/1521.html?fpage=5
评论
发表评论