服务端安全测试体系概括
一、引言
- 这里是用户视角的购物流程,我们会使用各种测试数据,模拟各种流程,完成服务端的功能测试,完成功能覆盖,我们会用等价类,边界值,判定表完成对功能的覆盖。
- 这个是黑客视角的购物流程,他们关注的除了基础功能,还关注比如说使用app的时候,app需要依赖的内容,比如说手机号,他们可以通过修改app分支,绕过账号安全验证,进行一些操作,比如更改充值金额为负数。他们通过对核心资源的篡改,带来安全问题,比如撸羊毛导致企业资产减少,影响企业的商业价值
二、安全漏洞TOP10
- OWASP总结的服务端安全漏洞Top10
- OWASP总结的移动端安全漏洞Top10
三、OWASP解决方案的问题
- 所有的做法都是面向安全工程师,而非测试工程师
- 提供的解决方案无法在有限的项目周期内完成
- 测试工程师做安全测试的时候通常只执行它的子项目,有一些比较弱的或者不重要的剥离开,只关注严重的问题,通过自动化的方式去解决它,非自动化的方案测试工程师也没有办法完成执行,会有第三方安全工程师去做
四、测试工程师的安全测试体系
- 我们将主要聚焦于测试工程师需要掌握的安全技能
- 移动端安全:尽最大努力提高破解难度,无法100%完成移动端安全问题
- 服务端安全:主要关注,毕竟服务端在公司内部,被渗透影响会非常严重
五、常用的安全测试工具
- 开源:owasp zap 全能 sqlmap
- 付费:appscan,wvs,burpsuite
六、安全测试关注维度
- 传输:敏感信息加密,链路加密
- 接口:访问权限控制(安全工具扫描过程很难进行判断,比如手机号个人信息查询是否对外,需要人为进行审核)
- 参数:
- 注入:sql注入,命令注入,文件注入
- 越权:越过更高权限,越过同级权限
七、业务安全常见的checklist
-
业务数据传输链路分析
① http是否传输敏感信息
② tcp等协议是否可被解密 -
资产安全分析
① a 清单收集:明确敏感信息分级,可访问性验证
① api参数收集:明确参数分类并针对分析- token可遍历
- 文件上传
- 身份参数的有效性验证
有了这些检查点,我们再把它提到安全测试工具里面进行自动化扫描
八、建立安全测试流程
- 白盒代码分析:自动化
- sonar、findbugs等
- 黑盒扫描机制:自动化
- zap、wvs,burpsuite,appscan,sqlmap
- 业务流程安全探索:结合人工进行检测
- burpsuite、zap