背景
DevSecOps作为安全领域中逐渐火热的技术体系,本质上是安全开发生命周期(SDL)安全关口左移理念和DevOps的结合。近年 RSA大会上出现过一个热词” Golden Pipeline(黄金管道)”, 特指一套通过稳定的、可预期的、安全的方式自动化地进行应用持续集成/部署的软件流水线(toolchain),其为DevSecOps提供了一种便于理解和落地的实现方式。中通安全团队在实践DevSecOps过程中不断探索,下图为中通安全团队理解的Golden Pipeline(黄金管道)。
图1.DevSecOps中的 Golden Pipeline(黄金管道)
Hunter作为中通DevSecOps中重要的一员,扮演着至关重要的角色。从中通分布式被动安全扫描实践发表距今的一段时间,Hunter在中通内部经过不断的实践和打磨,已经比较成熟。期间主要优化分布式插件管理、分布式任务调度、客户端用户体验,新增多种接入方式接口,开放api接口等。中通安全团队在安全体系建设过程中,自身也受益于各种开源项目。本着拥抱开源、反哺开源的精神,中通信息安全团队选择了将Hunter核心功能开源。开源的目的旨在提高甲方企业安全检测效率,帮助甲方公司摆脱安全测试人员匮乏的窘状。希望能够为更多企业提供一种开放的安全建设解决方案,为信息安全行业尽一点绵薄之力。
项目结构
整个开源结构主要分为HunterClient、HunterAdminApi、HunterAdminGui、HunterSense、HunterCelery、SqlmapCelery、XsseyeCelery七个模块,各个模块做到解耦互不干扰,以下按模块分别讲解其具体作用。
图2.Hunter对接自动发布平台流程
HunterClient
载体为浏览器插件,HunterClient的主要核心功能为用户授权、抓取网络请求接口、将发送接口发送到检测引擎、交互通知。
HunterAdminApi
Hunter平台后端api,使用flask框架开发,主要有管理扫描任务、数据统计、通知告警、登录授权、扫描插件管理等功能。除此之外,HunterAdminApi中附带一个网络代理功能,支持常见被动扫描器中的网络代理功能。
HunterAdminGui
Hunter平台管理页面,使用Ant Design前端框架开发,作为HunterAdminApi的展示前台,管理者和普通用户可以在此平台创建任务,查看漏洞,选择推送插件等操作。
HunterSense
集成了Dns查询日志和Socket查询日志的功能,通过此平台可以捕获一些无回显的漏洞。Hunter除了支持默认的HunterSense之外,还支持其他回显平台比如DnsLog,Ceye等。
HunterCelery
Hunter平台中的POC扫描插件调度模块,使用python异步调用框架Celery开发。HunterClient将抓取到的网络请求接口放入到消息队列,HunterCelery则对消费到的网络请求接口进行安全检测。可以根据实际情况,拓展消费机器数量达到提高检测速度的目的。
SqlmapCelery
Hunter平台的SQL注入检测模块,主要是将sqlmap和celery两者相结合。考虑到SQL注入漏洞检测相较于POC漏洞检测需要更长时间,故在设计时将SQL注入检测和POC插件检测分别放入单独队列的方式,SqlmapCelery只消费sqlmap队列,如果想提高SQL注入检测速度可以增加celery进程数或者增加消费机器。
XsseyeCelery
使用celery调度Xsseye的方式,和sqlmapCelery类似,不同点之处是只检测xss漏洞。其中Xsseye采用chrome headless加python3开发而成,Xsseye也可以单独提取出来作为xss漏洞检测工具。
部署使用
开源项目中提供了docker和非docker的部署两种教程,关于Hunter部署、使用、二次开发详情可见:http://www.github.com/ztosec/hunter
实践建议
Hunter主要用户是甲方企业。在部署应用过程中,由于SqlmapCelery和XsseyeCelery在测试过程中不可避免会产生大量脏数据,只推荐在测试环境使用。Hunter目前部署在中通内部和中通子公司。在中通内部,Hunter已接入自动发布平台。在中通子公司,Hunter则作为安全检测工具提供给QA人员使用。
在中通内部,Hunter主要作用于DevOps的测试阶段,帮助QA人员在做功能测试的同时进行自动化安全测试。通过嵌入到自动发布平台,Hunter可以极大提高安全测试的覆盖率。下图为Hunter对接自动发布平台的流程(已省略无关步骤):
图3.Hunter对接自动发布平台流程
检测完成之后,Hunter会将检测结果发送到同安漏洞管理平台(整个漏洞的生命周期管理可以在同安系统上完成,如果想了解更多,可以见中通同安漏洞管理系统)。
在中通子公司内部,应开发和测试同事要求单独部署一套Hunter运行环境。Hunter整个运营流程包含培训、使用、漏洞录入、漏洞修复、使用反馈等。
图4.Hunter在中通子公司运营推广流程
未来展望
在DevSecOps这一领域,中通安全团队希望落地如下一套闭环方案。
图5:中通安全正在实践的DevSecOps闭环方案
Hunter作为中通DevSecOps闭环方案中的一环,扮演着很重要的角色,开源之后希望能帮助到更多企业。在DevSecOps这一领域,中通安全团队也在不断地实践和探索业界前沿方向,例如SAST、IAST、DAST、RASP等解决方案也在学习业界的一些优秀开源产品和解决方案。未来,这些产品经过中通安全团队实践、打磨、改进之后也会选择逐步开源,回报开源社区。
项目预览
图6.一次任务扫描结果
图7.Hunter个人用户统计报表
图8.插件分布式管理
图9.客户端下载
参与贡献
作为Hunter项目开源的发起者,我们衷心地希望能够帮助到一些企业提高自身安全性,同时也热忱地欢迎大家一起参与Hunter项目的建设。
代码贡献
任何代码贡献都应该遵循贡献流程。我们会评估贡献者提交的关于特性开发,测试用例开发和Bug Fix的Pull Request。
Issue提交
我们将考虑提交的Issue的严重性、复现步骤和数据的充分性。
项目推广
任何关于Hunter的博客、微信、Twitter、文章、白皮书等,我们会考虑它们的内容和受欢迎程度,为让Hunter能够有更好的传播,希望有志之士一起参与协助本地翻译,从而使我们的开源成果惠及全球。
参考资料:
http://blog.nsfocus.net/rsa2018-devsecops-golden-pipeline/
作者简介
陈明,中通快递安全工程师,目前负责中通DevSecOps的开发建设工作。个人研究方向包括渗透测试、漏洞挖掘,安全开发工作,关于信息安全方面的话题欢迎添加微信(bsmali4)相互交流。
声明:本文来自中通安全应急响应中心,版权归作者所有。文章内容仅代表作者独立观点,不代表士冗科技立场,转载目的在于传递更多信息。如有侵权,请联系 service@expshell.com。