近年来,随着信息化技术的迅速发展和全球一体化进程的不断加快,计算机和网络已经成为与所有人都息息相关的工具和媒介,个人的工作、生活、娱乐,企业的生产、管理,乃至国家的发展和改革都无处其外。
信息和互联网带来的不仅仅是便利和高效,大量隐私、敏感和高价值的信息数据资产成为恶意攻击者攻击和威胁的主要目标,从早期以极客为核心的黑客黄金时代,待现在利益链驱动的庞大黑色产业,网络安全已经成为任何个人、企业、组织和国家必须面临的重要问题。
随着互联网+的发展,经济形态不断发生演变。众多传统行业逐步地融入互联网,并利用信息通信技术和互联网平台进行频繁的商务活动,这些平台(如银行、保险、证券、电商、P2P、020、游戏、社交、招聘、航空等)由于涉及大量的金钱、个人信息、交易等重要隐私数据,已经成为黑客攻击的首要目标,而由于开发人员安全意识淡薄(往往只注重功能的实现而忽略了在用户使用过程中个人行为对Web应用程序的业务逻辑功能的安全性影响)、开发代码频繁迭代导致这些平台业务逻辑层面的安全风险层出不穷。
这些漏洞主要是开发人员业务流程设计的缺陷,不仅存在于网络层、系统层、代码层等。比如登录验证的绕过、交易中的数据修改、接口的恶意调用等,都属于业务逻辑漏洞。
一方面随着社会和科技的发展,购物、社交、P2P、020、游戏、招聘等业务纷纷具备在线支付功能,同时还保存大量隐私、敏感数据。如电商支付系统保存着用户手机号、姓名、家庭住址、银行卡信息及支付密码等,这些信息都是黑客感兴趣的敏感信息。攻击者可以利用程序员的设计缺陷进行交易数据篡改、敏感信息盗取、资产窃取等操作。现在的黑客不在以炫耀技能为主要目的,而主要以经济利益为目的,攻击的目的逐渐转变为趋利化。
另一方面,如今的业务系统对于传统安全漏洞防护的技术和设计越来越成熟,基于传统漏洞入侵也变得越来越困难,增加了黑客攻击的成本。而业务逻辑漏洞可以逃逸大部分的安全防护,迄今为止没有很好的解决办法。这也是为什么黑客偏好使用业务逻辑漏洞攻击的一个原因。另外,代码审计也很难防御业务逻辑漏洞。例如星巴克由于优惠券引发的经济损失。
准备阶段内容:主要是对业务系统的前期熟悉工作。
针对白盒性质的测试,可以结合相关开发文档去熟悉相关系统业务。
针对黑盒测试,可以通过实际操作还原业务流程的方法理解业务。
调研阶段内容:主要针对业务系统相关负责人进行访谈调研,了解业务系统的整体情况,包括部署情况、功能模块、业务流程、数据流、业务逻辑以及现有的安全措施等内容。
根据以往测试实施经验,在业务调研前可先设计访谈问卷,访谈后可能会随着对客户业务系统具体情况和随着了解的深入不断调整、更新问卷。
黑盒测试可忽略此步骤。
业务场景建模:针对不同行业、不同平台的业务系统,如电商(登录、注册、交易、积分等)、银行(登录、注册、交易、转账等)、金融、证券、保险、游戏、社交、招聘等业务系统,识别出其中的高风险业务场景进行建模。即针对不同的业务系统,测试的点是不一样的。
建模完成后,需要对重要业务场景的各个业务模块逐一进行业务流程梳理。
分析维度:从前台、后台、业务和支撑系统等4个维度进行分析;
目的:识别各业务模块的业务逻辑、业务数据流和功能字段等。
原则:
例子:用户登录流程。
图中涉及到的用户字段为用户名、密码、图形验证码短信验证码等。
在完成前期不同维度的业务流程梳理工作后,针对前台业务应着重关注用户操作每一步可能的逻辑风险;针对后台业务应着重关注数据安全、数据流转以及处理的日志和审计。
业务风险点识别应主要关注以下安全风险内容
(1)业务环节存在的安全风险,指的是业务使用者可见的业务存在的安全风险。如:在注册、登录的密码找回等身份认证环节,需要考虑的问题:
(2)支持系统存在的安全风险。如:
(3)业务环节间存在的安全风险,如:
(4)支持系统间存在的安全风险,如:
(5)业务环节与支持系统间存在的安全风险,如:
例子:
tips:
关于身份验证与访问控制:
对前期业务流程梳理和识别出的风险点,进行有针对性的测试。
针对业务安全测试过程中发现的风险结果进行评价和建议,综合评价利用场景的风险程度造成影响的严重程度,最终完成测试报告的编写。
(1)了解业务安全的背景及重要性。
(2)掌握业务安全测试流程。
(3)掌握理解业务建模和流程梳理的处理思路。
(4)掌握风险点识别的内容。
[1]《浅谈互联网业务安全》