如何解“逻辑漏洞检测”难题?默安给你答案
作者:星期五, 八月 30, 20190

逻辑漏洞攻击事件

去年3月,某网站爆充值漏洞,充值的0.01元秒变1000元,平台账户资金损失近30余万元;去年5月,河南某小贷平台被爆出借款漏洞,被黑客恶意利用,成功实现借款600多万元;

今年1月,有网友爆出某电商平台存在重大BUG,用户可领100元无门槛券,此后有大批用户开始媷羊毛,该平台一晚上损失达200亿。

逻辑漏洞攻击事件正在频繁发生,造成的损失轻则几十万重则上千万,不仅给企业造成了巨额经济损失,也严重影响了企业品牌形象。

在漏洞扫描领域,逻辑漏洞检测是一直难以解决的问题之一,OWASP和CVE也一直将越权漏洞列入其TOP榜单之中。业内鲜有企业尝试越权漏洞检测,很多时候也仅支持简单的垂直越权漏洞,并不支持水平越权漏洞,且实际应用中漏报率和误报率都偏高。

逻辑漏洞的分类
  • 垂直越权型

这类主要包含低权限到高权限的接口和页面越权访问,无权限和有权限的未授权访问。比如某个系统分为普通用户和管理员,管理员有系统管理功能,而普通用户没有,那我们就可以理解管理功能具备垂直权限划分,如果普通用户能利用某种攻击手段访问到管理功能,那我们就称之为垂直越权。

  • 水平越权型

这类主要包含增删改查类的权限控制不当,常见的订单遍历、用户资料遍历等都属于这类。比如某系统中有个人资料这个功能,A账号和B账号都可以访问这个功能,但是A账号的个人信息和B账号的个人信息不同,也就是说在这个功能上,A账号和B账号的个人资料具备水平权限的划分。此时,A账号通过攻击手段访问了B账号的个人资料,这就是水平越权漏洞。

  • 复杂关联型

这类主要包含一些需要上下文关联、和业务逻辑强相关的较复杂越权类漏洞,如找回密码越权,任意账号重置等一般属于这类。

具体业务场景下的逻辑漏洞

 这里列举两个实际业务场景的案例来分析逻辑漏洞被利用的过程。

  • 某平台任意用户越权登录

以DEMO的身份登录,在 “查看个人信息” 处抓包,通过修改 user_id 即可获取对应用户的详细信息,除了邮箱,还有手机号码、QQ号码、公司名称等。

修改cookie 为:{“user_id”:12,”umail”:”admin@*******.cn”,”ip”:”***,***,0,1″},登录成功。

  • 某约车APP越权查询和取消任意订单

模拟正常用户下单,操作步骤如下:打开某约车APP——预约用车——下单。然后查看订单预定信息。操作步骤如下:个人行程——刚才下的订单--右上角预订信息 抓取数据包,之后修改orderid的值,即可获取他人订单信息。

尝试取消他人订单。订单中有个charteredNo参数,将订单信息中的charteredNo值替换即可取消。

除了越权登录、查询和取消订单,逻辑漏洞被恶意利用的场景还包括修改资料时越权篡改他人资料、支付场景下的修改账单金额,绑定手机场景下的篡改短信内容等等。在不同的行业,根据业务场景不同,也会面临诸多不同的攻击风险。

基于业务场景和攻击角度的逻辑漏洞思维导图

默安科技的业务逻辑漏洞检测实践

默安科技雳鉴IAST产品通过区分请求权限、确定检测范围、判断漏洞是否真实存在这三个步骤,来逐步判定水平越权和垂直越权漏洞的存在。简单概括为:

  • 第1步 场景还原:区分请求权限

进行逻辑漏洞检测首先需要区分请求本身所属的用户和权限,考虑最坏的情况,所以第一步是将请求进行归类,区分出哪些请求是来自用户的某次连续行为。然后采用构建用户凭据链的方式,从杂糅的请求中区分用户的某次连续行为。

  • 第2步 分区归类:确定检测范围

拿到单次行为的所有请求和所属权限后,对每个请求的参数进行归类建模。通过相似请求的类比,将请求的每个参数抽象为固定的模式,之后对归类后的请求模型集合进行对比,根据在逻辑漏洞挖掘中的经验整理出两种漏洞的对比方式,展开对比。

  • 第3步 真假互换:判断漏洞是否存在

在收到进行漏洞检测的请求后,根据要检测的漏洞类型,交换用户凭据进行访问,垂直越权漏洞检测中,将高权限用户独有的接口,用低权限的用户凭据访问,观察响应值与正常响应值的相似度;然后用同类方法检测水平越权漏洞。由于采用基于流量进行逻辑漏洞检测的方式,默安科技雳鉴IAST产品能够获取到用户真实的测试请求,从而保证流量的完整性、有效性和时序性。根据在用户真实环境中的逻辑漏洞检测经验和数据积累,该逻辑漏洞检测方案已经进行过多次版本更新迭代,在水平越权和垂直越权漏洞的检出率和精确度上,均稳定在行业较高水准。

默安科技雳鉴IAST逻辑漏洞检测功能

目前,雳鉴IAST的逻辑漏洞扫描模块已经为金融、电商、科技、房地产等行业发现多个越权漏洞,并实现较低误报,为应用上线前的安全保驾护航。默安科技的雳鉴SDL解决方案是一套拥有完整自研“服务+工具+平台”的SDL全流程方案。基于微软经典SDL模型,将赋能服务贯穿需求分析、架构设计、研发、测试回归以及发布迭代全流程。通过赋能将专业安全能力赋予研发各环节人员,并在各环节提供不同工具(STAC、SAST、IAST、常态化安全运营),使赋能知识真实应用落地。以统一平台展示、分析、回归、闭环安全问题,并向安全部门提供SIEM,根据各流程频现的漏洞类型、研发人员知识盲区等再次提供针对性培训,助力SDL全流程精准落地。

 

关键词:

申明:本文系厂商投稿收录,所涉观点不代表安全牛立场!


相关文章

没有相关文章!