• [原创]解读2017 OWASP Top10漏洞体系(含接口安全)


    2017年4月初,OWASP发布了关于Top10的征求意见版。 争议最大的是A7攻击检测与防范不足。 但我主要是按照日常的渗透漏洞进行解读分析的。

    解读完毕后,首发t00ls原创文章。

    https://www.t00ls.net/viewthread.php?from=notice&tid=39385

    0x00 Top 10

    OWASP Top10漏洞体系长期以来作为Web攻防白帽子既基础又核心的一个标准。漏洞标准变化如下:

    变化内容:

    1. 合并了2013-A4“不安全的直接对象引用”和2013-A7“功能级访问控制功能缺失”到2017-A4“无效的访问控制”。
    2. 增加了2017-A7:攻击检测与防范不足
    3. 增加了 2017-A10: 未受保护的API
    4. 去掉了: 2013-A10:未验证的重定向和转发
    5. 根据增删内容,标准中多次提到了API安全的关键字
    6. 根据解说内容,标准逐渐向抽象性漏洞过渡和延伸,包括登录体系、会话权限等系列的逻辑漏洞

    0x02 漏洞关联

    官方提到 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

  • 相关阅读:
    maven项目添加Gson的依赖后无法启动,报错BeanCreationException:Error creating bean with name 'gsonBuilder'
    'bool' object is not callable
    UnicodeDecodeError: 'gbk' codec can't decode byte 0xa6 in position 9737: illegal multibyte sequence
    django.contrib.auth.middleware.AuthenticationMiddleware' must be in MIDDLEWARE in order to use the admin application.
    ForeignKey(unique=True) is usually better served by a OneToOneField.
    NameError: name 'reload' is not defined
    No module named 'django.core.urlresolvers'
    No module named 'ckeditor'
    [Docker] Leverage a Docker Maven plugin
    [Docker] Separate application image from database migration
  • 原文地址:https://www.cnblogs.com/shellr00t/p/6774267.html
Copyright © 2020-2023  润新知