0x00 我理解的业务安全


业务安全,按照百度百科的解释:业务安全是指保护业务系统免受安全威胁的措施或手段。广义的业务安全应包括业务运行的软硬件平台(操作系统、数据库等)、业务系统自身(软件或设备)、业务所提供的服务的安全;狭义的业务安全指业务系统自有的软件与服务的安全。

我的理解:某个平台上的业务是指该平台用户在使用过程中涉及到的一系列流程,而业务安全就是保证这些流程按照预定的规则运行。

0x01 通用业务及威胁


由于互联网企业的特性,其主要业务直接体现在其平台上。其中有不少通用的业务流程:

1.账号体系

A.注册

B.登录

C.密码找回

D.用户信息存储

2.其他具体业务

A.购买/支付

B.优惠活动

C.抢购活动

D.…

来看看分别有哪些威胁:

1.对于账号体系:

A.恶意用户批量注册账号

B.撞库(账号安全)

C.批量重置用户账号,威胁其他用户账号

2.其他具体业务

A.恶意订单(下单未支付)

B.低价购买

C.批量刷优惠券&其他奖励

D.抢购

E.窃取其他用户优惠券

F.购买限制(购买数量限制/未开放购买商品限制/特殊用户商品限制)

G.价格爬虫

H.作弊

I.黄牛限制

J.垃圾信息(用户欺诈)

K.交易风控(交易限额/交易信息/用户支付信息)

L.信息泄露(未开放业务上线)

M.黑色产业

N.虚假交易(刷信用/套现)

O.…

从上面的一些威胁可以看出,账号体系安全是其他业务的基础,与许多业务直接相关。

0x02 部分威胁解决方案


可以从两个方面寻找不同的解决方案:

1.从技术上看

A.账号体系

a.注册限制:

通过图片验证码、短信验证码、邮件验证码等增加批量注册的成本

收集注册用户数据,分析注册后用户的行为。通过对比正常用户与马甲用户的行为、指纹等,标识马甲用户。或冻结没有行为的账户

b.登录:

将分散的登录入口统一,防止由于遗漏而造成撞库

增加图片验证码等人机识别方式,防止登录撞库

限制账号登录频率以及次数

通过数据分析用户登录趋势图,区分不用时间用户尝试登陆曲线、用户登录失败曲线、用户登录成功曲线,可以在发生撞库行为时做到及时响应

提示高危账号进行密码修改(登录后推送)

建立用户价值体系,通过用户记录、信用、行为等不同维度数据建立用户价值体系

c.密码找回

优化密码找回逻辑,防止逻辑错误

对返回用户信息进行脱敏处理

通过数据分析用户重置密码趋势图,可以在发生批量用户密码重置时做到及时响应

d.用户信息存储

例子: WooYun: 高德某站严重用户信息泄漏(包含明文密码)

对用户信息进行加盐哈希等处理

B.其他具体业务

a.恶意订单

通过用户成功下单、支付等建立维度,冻结不符合规范的账号,或在某段时间内限制其下单

b.低价购买&购买限制

验证购买/支付流程,后台增加校验机制

c.批量刷优惠券&其他奖励&其他用户优惠券

例子: WooYun: 饿了么逻辑漏洞之免费吃喝不是梦

绑定优惠券与账号,限制单个号码/账号获取的优惠券数量

对于批量注册马甲账号的行为可以通过账号体系进行限制

调整奖励规则(现金变成券),增加使用成本(绑定身份证、银行卡)

d.抢购&黄牛

纵深防御,从账号体系开始

购买过程中,增加人机识别,加大恶意抢购成本

增加黄牛检测机制,通过收货地址、账号、订单数量、手机号码、收货人等不同维度检测黄牛账号

过滤从其他维度获取的黄牛账号

白名单用户直接通过黄牛验证

将付款后异常退款加入加入黑名单,标识账号、收货地址为黄牛账号

e.价格爬虫&信息泄露

规范业务上线流程,防止未开放业务上线

增加反爬虫机制,对访问来源进行限制

f.垃圾信息(用户欺诈)

例子: http://tech.qq.com/a/20150820/051352.htm

处理这类风险较复杂,可以从用户行为特征、用户账号信任评级加以区分

同时开启用户举报功能

g.交易风控

例子:

WooYun: 携程安全支付日志可遍历下载 导致大量用户银行卡信息泄露(包含持卡人姓名身份证、银行卡号、卡CVV码、6位卡Bin)

WooYun: 腾邦国际某重要系统SQL注入24个库DBA权限(涉及百万酒店订单信息+八万信用卡信息+信用卡明文CVV码)

合规性检查,符合《银联卡收单机构账户信息安全管理标准》

h.黑色产业

分析具体业务,找出攻击者获利点

建立黑名单共享联盟,将恶意的IP、用户ID、邮箱地址、手机号码等列入黑名单

在上面的部分中,可以对用户行为进行分析、建模,例如:

A.正常用户的流程/记录为:注册—>登录—>查询—>下单—>支付—>查看订单—>收货

B.异常用户的流程/记录为:注册—>登录—>领取优惠券

还可以对日志进行实时分析:

A.url深度(单斜杆出现次数)

B.访问离散度(页面数/访问次数)

C.200响应比例

D.用户访问入口

2.从流程上看

A.项目立项风控、安全测试介入

业务评审、评估业务风险点

业务上线前经过安全测试,包括传统安全、业务接口、业务逻辑、黑白盒测试

B.业务数据实时监控

C.异常事件介入分析

通过数据实时分析,确定当前数据是否符合预期

D.业务规则动态调整

当出现非预期的状况时,适当调整、优化规则

E.止损控制

当业务从需求上无法控制时,就要降低损失比例,减少业务损失

F.业务隔离

隔离重要业务与风险业务,使其单独运行

0x03 业务安全挖掘思路


要挖掘业务漏洞,需要先了解业务逻辑(业务类型/流程),评估风险点。在业务流程中列出正常访问与异常访问区别,分析攻击者的目的及获利方式,对症下药,同时还要排除传统安全威胁。

推荐:

http://www.taobaotest.com/blogs/2248
http://www.taobaotest.com/blogs/2329

附(引用):

企业安全建设与账号体系.pdf

安全平台建设与业务安全.pdf

http://www.wooyun.org