图文细数电商类Web安全七宗罪:内网渗透、逻辑缺陷、常规Web漏洞、撞库攻击、金额篡改、越权操作、社会工程。告诉你各项风险的渗透重点以及应对措施,教你避免安全风险的编码原则。传统网站也适用!
一、电商类常见安全问题简介
1.1 电商网站安全威胁七宗罪
1.2 电商网站安全问题与传统Web安全问题对比
1.3 可能的风险点
1.4 攻击路径——内网渗透最为危险
1:Web应用访问路径:Web应用攻击(漏洞利用,放置木马,提权)
2:内网渗透测试:端口扫描、弱口令扫描、漏洞扫描、漏洞利用
3:APT攻击:攻击路径(一封电子邮件、一款绑马的软件、一个挂马的网站都会在客户端植入恶意程序)
4:无线接入攻击
5:移动客户端攻击
6:社会工程学
7:钓鱼攻击(结合社会工程学)
8:DDOS攻击
1.5 电商网站安全威胁七宗罪之——越权操作
凡是仅靠传入参数就进行数据库查询的功能即存在越权
- 越权的种类
- 平行越权(订单,留言,送货地址,修改信息,修改密码…)
- 垂直越权(修改信息,修改密码,创建用户..)
- 越权查询
- 越权修改
- 直接越权
- 间接越权
- ……
OWASP Web应用漏洞Top10
越权操作的危害
泄露用户数据,非法篡改他人业务,权限提升。无法通过WAF以及常规手段发现
越权形式 |
造成影响 |
越权查看订单/保单 | 订单数据泄露,用户数据遭到非法交易。 |
越权查看地址 | 用户基本信息泄露,可用来非法交易。 |
越权查看留言 | 严重泄露用户隐私,可进行诈骗,钓鱼等非法行为。 |
越权查询交易记录 | 交易信息泄露,可用来非法交易。 |
越权修改个人信息 | 越权篡改密码保护问题,绑定手机号等。可非法进入他人账户。 |
… | … |
1.6 电商网站安全威胁七宗罪之——金额篡改
可能被篡改的变量
- 交易总金额
- 单价
- 商品数量
- 分期数量
- 正负“对冲”
- 负值反充
- …
金额篡改的危害
直接造成经济损失,无法通过WAF发现,但可通过二次校验以及人工确认的方式发现
篡改形式 | 造成影响 |
篡改金额 | 直接篡改单价或总金额,低价完成交易。 |
篡改数量 | 篡改数量为低价或负值,可能造成负充或低价完成交易 |
篡改积分 | 由于积分允许出现负值,极可能造成负充 |
篡改产品参数 | 可增加产品价值,如增加分期数,增加投保时间等。 |
多参数篡改 | 如存在多个价格参数,只有有一个可篡改,即可构造“对充”订单 |
… | … |
1.7 电商网站安全威胁七宗罪之——逻辑缺陷
常见逻辑缺陷
1.8 电商网站安全威胁七宗罪之——撞库攻击
撞库示意图
撞库攻击的利用条件很简单——只要存在用户名,密码的验证接口即可,但是造成的经济损失是很大的。
扫号器
暴力破解形式
暴力破解的形式 | 防护现状及方法 |
固定用户名遍历密码 | 常规攻击手法,采用用户名锁定机制,验证码机制以及控件可进行防护。 |
固定密码遍历用户名 | 常见于采用交易号登陆的电商站点,可采用验证码机制以及控件进行防护 |
用户名密码成对匹配 | 撞库采用的方法,可采用验证码机制以及控件进行防护 |
二、传统安全问题简介
2.1 常见业务系统安全威胁汇总
2.2 相应的安全控制措施
2.3 信息系统应用的安全需求
2.4 电商网站安全威胁七宗罪之——常规Web漏洞
- SQL注入
- XSS
- 文件包含/路径遍历
- 任意文件上传
- 开源代码风险
2.4.1 Web应用安全编码原则
1.防范常规的WEB漏洞,从开发与设计的角度需要遵循安全编码的原则,如Common Criteria
2.编码原则
3.安全观念培养
- 相似性漏洞挖掘
- 重要方法的参数校验
- 防止重要参数被篡改
- 公开信息保护
- 通过配置文件防止信息泄露
- 程序中禁止出现明文密码
2.4.2 漏洞测试-端口扫描
- 端口扫描器
- WEB扫描器
2.5 电商网站安全威胁七宗罪之——内网渗透
2.5.1 一套完整的WEB攻击流程
2.5.3 内网渗透——木桶效应的终极体现
内网渗透充分体现了木桶效应的精髓:安全不在于它做得好的方面有多好,而在于做得差的方面有多差。
什么地方通常是木桶的短板:
2.5.4 内网安全缺失
2.6 电商网站安全威胁七宗罪之——社会工程学
社会工程-社区、IM
社工库-信息买卖交易的集散地
社会工程-邮件仿冒及恶意附件
三、应对之道
3.1 安全漏洞扫描
输出成果
- 了解漏洞分布情况
- 获知漏洞修补方法
- 提高人员安全意识
3.2 安全配置检查
输出成果
- 了解系统安全状况
- 解决安全防范短板
- 充分满足合规要求
3.3 安全渗透测试
- 输出成果充分挖掘应用缺陷
- 精细粒度威胁分析
- 提升人员安全技能
3.4 问题解决方案
- 预防越权操作
–任何涉及用户权限的操作均与会话关联
–参数的加密以及模糊化
- 预防金额篡改
–减少前端金额参数的输入
–将价格与商品编号关联
–服务端严格限制金额、数量的类型以及范围
–后台人工校验
- 预防逻辑漏洞
–进行业务流程梳理
–避免通过前端进行限制
–增加共享数据互斥机制
–不要相信用户输入
- 预防SQL注入
–使用预编译,绑定变量(推荐)
–使用存储过程
–检查数据类型
–使用安全函数
–过滤特殊字符和语句
- XSS的防御
–输入检查
过滤
–输出检查
转义,编码
一种HTML编码就能解决问题?
–正确地防御跨站
不同情况采用不同编码
–HTML标签属性输出:HTML编码
–<script>标签事件:javascript编码