No.1
前言
业务上线之前,通常需要进行一系列的安全扫描及工具检查,随着敏捷开发流程的推进,版本迭代的周期越来越短,传统的主动web扫描器(包括开源的、商用扫描器等)基于站点维度,扫描时进行大量的链接爬取,无法覆盖接口、孤岛链接,也无法深度融入内部研发流程,以及会有扫描配合成本耗费巨大等问题,这使得主动web扫描器在面对大型企业成千上万站点的扫描需求时越来越显得捉襟见肘。相对于传统的主动扫描,被动扫描则刚好弥补了这些缺点,各个大厂也纷纷走上了扫描器的自研之路。
为解决上述的需求,实现全行应用上线的自动化安全扫描,我们团队内部也研发了命名为 Hydra的被动扫描平台,在此也把我们的实践经历做一个分享。
No.2
架构设计
整个项目分为 6个模块,分别为流量消息网关、流量解析、扫描模块、日志模块、漏洞管理,资产收集,系统架构如下图:
如上图,从交换机获取到的流量会经过流量解析引擎,然后发送到消息队列等待扫描引擎的消费;其它来源的流量则经由消息网关转发到消息队列。扫描引擎从消息队列取到消息后先进行去静态,去重去脏后,再封装成任务对象,调用各插件进行扫描,扫描完成后若发现漏洞则持久化到 MySQL 数据库,漏洞数据库与漏洞管理系统对接,方便跟踪处理漏洞,形成漏洞管理闭环,同时扫描日志发送到ELK日志中心,方便后期排查。资产中心则是记录全行所有的主机,接口等信息,为资产元数据的建设提供数据。
No.3
数据源
Hydra的待扫描数据主要有以下几大来源:
♥️测试区核心交换机
♥️自动化测试平台(接口自动化测试平台)
♥️Hydra插件
♥️default默认
♥️代理服务器