一、什么是业务逻辑漏洞
-
在不同的应用中有相同的特征 -
与应用程序/业务领域严格相关
二、业务逻辑漏洞实际案例
2.1 越权访问
2.1.1 现象
-
水平越权:
-
垂直越权:
2.1.2 检测思路
2.2 Cookie提权
2.2.1 现象
2.2.2 检测思路
-
提取历史时间段,一个用户在一个Web站点访问一个URL的Cookie参数 -
Cookie参数内值不变的部分为观察对象 -
当在历史时间内为定值的Cookie在实时流量中出现了变化,且影响了返回内容,则表明存在Cookie提权攻击
2.3 验证码更新逻辑绕过导致可暴破
2.3.1 现象
2.3.2 检测思路
-
检测登录接口的暴力破解行为 -
检测绕过验证码校验的异常访问行为
2.3.2.1 检测登录接口的暴力破解行为
2.3.2.2 检测绕过验证码校验的异常访问行为
三、如何避免系统存在业务逻辑漏洞
-
进行安全设计 -
更充分的对资源进行调研;更合理的对于安全、开发以及其他任务排定优先级 -
将安全和开发结合到一起,更好的互相理解以及构建系统 -
确定威胁和兼容性的需求,并且评估它们的风险 -
定义和构建需求控制 -
平衡风险、控制和易用性 -
基于可接受的风险,确定哪块的控制是不需要的 -
文档化威胁和缓解措施 -
确保业务需求(或目标)在面对恶意参与者、事故或其他影响因素时得到充分保护 -
定义安全测试用例来验证安全方面的需求
-
每一个应用程序都需要使用事务数据流和访问控制矩阵来描述业务逻辑 -
在设计业务逻辑时,就将它设计为防止业务逻辑滥用的。使用过程验证和控制假设应用程序业务逻辑可能被滥用的一些情况。 -
使用应用程序威胁建模来识别业务逻辑中存在设计缺陷的地方。 -
对于OWASP/WASC/SANS-25-CWE中描述的业务逻辑漏洞进行测试 -
对于业务逻辑的滥用建立确定的测试用例 -
分析风险并应用对策来减轻业务逻辑攻击的可能性和影响
-
定义安全需求 -
创建应用程序简图 -
确定威胁 -
缓解威胁 -
校验威胁是否被缓解
参考文献:
本文始发于微信公众号(HACK之道):攻防演练中的业务逻辑漏洞及检测思路
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论