0 引言
随着网络安全问题受到越来越多的关注,网络安全防护的整体环境有了很大
的提升,一些普通的攻击
[1]
(如 DDoS、SQL 注入、跨站脚本等)都可通过现有
的防护产品
[2]
(如防火墙 IPS、WAF 等)进行防护。而业务安全漏洞因系统而异,
目前的防护产品还很难及时发现并预警。“1 元购买特斯拉”和“微信无限抢红包”
等安全事件都是利用了业务漏洞来牟取非法利益,如何及时发现这一类安全问题
并进行预警成为亟待解决的问题。本文基于业务逻辑漏洞被利用时造成的业务
流程的细微差别,利用机器学习中的马尔可夫链算法,判断该操作流程是否为异常
操作,并对异常操作进行预警。
1 研究背景
1.1 Web 业务安全现状
随着“互联网+”
[3]
的发展,经济形态不断演变。众多传统行业逐步地融入互联
网并利用信息通信技术以及互联网平台进行着频繁的商务活动 ,这些平台(如银
行、保险、证券、电商、P2P、O2O、游戏、社交、招聘、航空等)由于涉及
大量的金钱、个人信息、交易等重要隐私数据,成为了黑客攻击的首要目标,而因
为开发人员安全意识淡薄(只注重功能实现而忽略了在用户使用过程中个人的
行为对 Web 应用程序的业务逻辑功能的安全性影响)、开发代码频繁迭代导致
这些平台业务逻辑层面的安全风险层出不穷。广之旅旅行社任意访问用户订单 、
联想某积分商城支付漏洞再绕过、万达某分站逻辑错误可绕过支付直接获得取
票密码等类似的业务逻辑漏洞频繁发生,给企业、社会带来巨大损失。
业务作为企业经营的核心命脉,企业对业务安全也越来越重视,如今的业务系
统对于传统安全漏洞防护的技术和设备越来越成熟,基于传统安全漏洞入侵也变
得越来越困难,增加了黑客的攻击成本。而业务逻辑漏洞可以逃逸各种安全防护,
迄今为止没有很好的解决办法,这也是现在黑客偏好使用业务逻辑漏洞进行攻击
的一个原因。
1.2 业务逻辑漏洞介绍
业务逻辑漏洞
[4]
主要是开发人员业务流程设计的缺陷,不仅限于网络层、系统
层、代码层等,例如登录验证绕过、交易中的数据篡改、接口的恶意调用等,都属
于业务逻辑漏洞。业务逻辑漏洞产生的原因:过于信赖客户端传入的数据,缺少
服务器端的一致性验证;口令暴露或者弱口令。业务逻辑漏洞大致可以分为篡改
型、回显型、跳过型、弱验证等类型。
1)篡改型
篡改型主要包括对各类标识(例如用户表示、订单标识、商品标识等)、
邮箱、手机号、数量、金额、返回值、session、cookie 等。黑客利用这样的漏
洞可实现越权访问、越权操作(使用自己的账号操作他人账户权限下的内容)、
恶意修改商品价格等操作。