BAS( 入侵与攻击模拟系统 ) 测试方案
背景介绍
BAS(入侵与攻击模拟系统)是一款以攻击模拟技术为核心,通过模拟人工的红蓝对抗实现安全 度量,从攻击者的角度出发,提供覆盖完整杀伤链的安全场景,包括钓鱼邮件场景、邮件网关场景、威胁情报场景、WAF场景、威胁防护场景、终端安全场景、数据保护等场景。
业务介绍
钓鱼邮件功能
评估邮件网关拦截功能
评估威胁情报(上网行为管理/防火墙)拦截功能
评估WAF拦截功能
评估威胁防护(IPS/IDS/全流量)拦截功能
评估终端安全(EDR)拦截功能
评估数据保护(DLP)防泄露功能
架构介绍
BAS平台采用SaaS化部署方式部署在云端,底层架构使用的是K8S容器编排方式部署。客户端为agent探针,适配Linux和Windows两种操作系统。BAS平台会向agent下发各种任务场景,场景中包含对应的安全防护设备,比如终端安全和数据保护等。agent完成任务后会将测试数据收集并上报给BAS平台。这样BAS平台就可以根据上报的数据来评估被测试环境中的各种安全防护设备的有效性。
测试计划
测试目标
测试方案的主要目标为:
阶段 | 目标 | 时间 |
---|---|---|
阶段一 | 功能测试 | Q1Q2 |
阶段二 | 效能提升 | Q3 |
阶段三 | 团队赋能 | Q4 |
测试策略
功能测试策略
为了能更好的完成功能测试,我们设计了以下几个方案。
方案一: 通过 Mock 提升功能测试效率
背景: 在系统联调测试过程中,BAS系统需要与第三方安全防护产品组合测试。
冲突: 在联调过程中,常常因为第三方安全防护产品的策略以及bug而耽误测试的整体进度。
解决方案:
将第三方相关接口使用mock服务替代。在测试过程中,就不会被第三方提供的接口影响测试进度
第三方的接口单独测试
技术总结:
Charles
Mitmproxy
效果:
未做mock之前测试某个功能模块使用15/人天,其中1/3时间耽误在等待第三方接口调试通过
完成mock之后测试同样的功能模块只需要10/人天。
方案二: 提升团队影响力和汇报能力。对外输出每个版本的测试情况,并且数据都有对应的提升。
提升了人效
提升了测试质量
投诉率降低了 36 个百分比
效能提升策略
方案一: 自动化测试
1 、根据功能模块特性划分为 8 个独立的自动化脚本用例模块,从界面层、业务逻辑层和数据访问层三个层次设计脚本实现的测试用例功能
团队赋能策略
方案一: 配合研发完成容器化部署的转型
1 、 Master+Node 部署;
2 、 kubelet 注册, kubeletadm 管理 K8s 的后台;
3 、云平台部署:申请两个命名空间( pods ):
Middleware :包含 ramq (消息队列)、 Mysql (数据库配置文件)、 radis (缓存)
src-app :包含需要用到的应用模块,即 bas 系统各个功能模块;
4 、 bas 部署:通过 Docker 部署在 src-app 容器中;
5 、初始化,导入数据库配置;