白盒安全测试系统的架构都有哪些?


      我们内部在用的自研白盒系统(apollo)拓扑图,目前第三方方面支持三种方法接入分布式白盒系统。第一种方法是直接登陆web平台进行日常任务提交操作,第二种是通过marthakinspiplines方法,将白盒引擎能力集成化到piplsafe流水线中,第三种是直接通过客户端程序提交日常任务到master网络节点。


apollo工作流程介绍


apollo白盒引擎选用redix-sentsafel作为消息队列,worker集群中的网络节点通过抢占方法获取日常任务信息(似乎应该优化下),网络节点获得日常任务信息后将会通过远程共享磁盘获取到待检测源码包,启动对应分析引擎进行自动化白盒审计分析,审计任务完成后,结果数据将会被存储到mysql主服务器中,通过数据同步,将数据同步到从服务器中,master网络节点通过读操作从从服务器上读取相关到日常任务数据信息(包括漏洞信息,日常任务信息等),渲染到web前端展示。


分布式白盒系统架构图


以上是分布式白盒检测系统的整体架构。web前端技术部分主要包括vue,elementUI及echart,这三者似乎在前端里就是个黄金搭档,whatever,还是要感谢这些研发前辈给我们提供了这么实用又容易上手的框架。基于此,Apollo分布式白盒检测系统实现了某些必要的某些后端交互,如用户管理交互,作业管理交互,漏洞审计交互,项目创建交互,及其对引擎检出的数据进行了相对友好的可视化展示。首页针对以往检测的项目信息进行可视化分析展示,基本信息展示方面,除了总项目数,总代码行数,总风险数等信息外,我们还展示了总的万行代码漏洞率,用于评估现阶段企业内部的代码安全性。为了促使展示效果比较友好,及其避免泄漏企业内部的某些敏感信息,上图可视化展示的数据均为测试数据。下面简要的介绍下图表内容的含义。第一个图表展示了本年度,从一月份到十二月份每个月的漏洞检出情况,及其漏洞修复情况(红色为漏洞数趋势图,绿色为漏洞修复数趋势图)相关的研发负责人可据此来评估各个项目组的月度及年度的代码安全性,代码安全性数据可作为评估研发工程师研发能力的一部分,加入到绩效考核之中。

分享: