文章来源:Fintech安全之路
基于对“安全运营”的理解(可参看职业欠钱的《我理解的安全运营》《再谈安全运营》
https://zhuanlan.zhihu.com/p/39467201),SOP安全运营平台的目标及定位:帮助团队更好地落地安全运营工作,实现流程化、规范化、可视化的目标,提升团队“安全运营”工作效率,从而提高企业整体的安全风险对抗能力。
平台作为应用安全管控体系建设过程中的“工具支撑”,实现了漏洞生命周期闭环、自研扫描工具集成、组件安全线上化治理、SDLC运营及线上发布版本安全管控、安全资产建设、应用安全画像及风险模型建设等模块功能。
这些功能模块之间的联动,构建了“要求—检查—管控”这样体系化的安全运营模式,解决了运营过程中人力运营成本过高、资产不清晰、安全问题处理流程不闭环、SDLC执行不到位等问题,提升了整体安全运营效率。
不论是上线前的人工安全测试,还是自主研发的安全检测工具,都是针对不同层面风险的“检查”手段,而漏洞则是检查结果的直观反馈,是各类风险的具象反映。漏洞管理作为应用安全建设中不可或缺的部分,如何解放运营人员在这方面的工作量,提升效率,这是第一个问题。
的漏洞系统,存在流程不完善、各类信息需人工维护、权限划分不清晰等问题,处理跟进一个漏洞需要花费大量人工成本。
在这样的模式下,一个漏洞从被提出,到定位资产以及分配至对应人员解决,再到进行验证修复关闭,在处理效率上有了大幅提升。
当然漏洞的闭环不仅是到修复为止,漏洞的复盘也是极其重要的一环。在观察数据的过程中,我们发现一些系统在执行了SDLC后,仍然有不少漏洞出现。这些漏洞是因为安全评估、安全需求识别、安全设计、代码审计还是安全测试环节出现了问题导致?如果能知道产生问题的环节便能更好地“对症下药”了。
顺着这个思路,我们想到可通过漏洞的版本信息反溯SDLC执行过程质量。针对版本迭代漏洞,可由安全工程师在上报漏洞时填写产生漏洞的版本和需求信息;而针对非版本迭代漏洞,目前暂时仅能通过由开发填写产生漏洞的版本和需求信息的方式(后续计划与统一接口平台进行对接,这样便能从接口信息中溯源版本信息)。有了版本和需求信息,则可查询到SDLC中安全环节的过程数据,检视SDLC执行情况。
同时,非版本迭代的版本信息也可以帮助我们了解该漏洞在线上存在的时长,对比这段时间是否进行了内部安全测试,从而检视安全测试的质量。
除了实现基础资产对接及完善漏洞闭环流程外,我们也设置了“漏洞积分”。这个分值提供了一个方式帮助定义部门及开发安全性指标:将漏洞分值累计到漏洞责任人/部门,做为评判是否需重新参加安全培训的依据,是一种“管控手段”,类似于考取驾照,扣到一定分数,就需要回炉重造。不仅如此,它还可以作为应用的安全风险值模型中的一个成分,为后续建设应用安全画像打好基础
扫描工具在安全运营平台的集成
这样经过三个阶段,我们可以保证漏洞管理模块漏洞数据的质量,尽量真实且权威。
针对上述思路,每一种工具的每个插件,它的开关、扫描出的漏洞等级、去重规则、是否自动推送至漏洞审核、是否自动推送至开发等,在前端页面实现配置化管理,如此一来,运营人员可结合实际数据情况进行相应操作(例如某种检测插件准确率达到一定高度则开启自动推送,如在某段时间准确率又突然下降,则暂时关闭自动推送),在对扫描结果的处理上便更加灵活。
组件安全的治理
当然,除了有针对存量问题的流程及方案,我们也需考虑如何在研发流程中对组件安全问题作出检查,从而控制增量组件安全问题。
1. 通过在版本发布过程中进行控制,如果应用版本发布过程中仍然存在组件安全问题,将禁止发版强行阻断,确保新增应用无历史组件安全问题;
2. 通过在组件仓库设置组件黑名单,如果使用低版本的组件将无法打包成功,强制要求开发升级版本。
研发过程的安全管理(SDLC运营)
如果检测实时性够高,可以将检测结论尽量前置,做到在开发环节就可以随时查看安全检测情况,从而更快速解决安全问题。并且在代码冻结之后,封板之前(也就是发布前的最后一个动作)也再一次进行安全检测结论的校验,多环节把控版本安全质量。
通过对接CMS/HIDS等,我们奠定了建设安全资产的基础。在此基础上,针对已有的资产数据,我们只需根据安全制定的策略给各资产打上安全标签,并根据实际情况对资产的安全标签进行动态维护和运营。针对其他现有系统未覆盖到的数据,我们可以通过主动探测和被动扫描的方式,如采集目标网络的流量,对流量中数据进行分析,从而发现未知的网络资产信息。当然这其中还涉及到关于数据采集、数据清洗、数据关联等很多功能模块,这里由于篇幅原因便不再展开。
在完善好资产的一些安全属性后(如是否面向互联网、登录认证方式等),再结合应用的各类安全风险,便可以刻画应用安全画像。
有了每个应用的安全画像,便可建设安全风险模型,定义风险阀值,通过阀值来检查各应用的整体安全情况,制作整体的安全风险看板,展示整体安全风险趋势、风险累积或风险消除等情况。
通过以上几个模块的介绍和分析,我们可以发现,各模块之间围绕着“要求—检查—管控”这条线有着不可分割的紧密联系。研发安全管理中的安全评审与设计是要求,人工安全测试和各类工具扫描是检查手段,漏洞则是检查结果,通过漏洞的“复盘”“溯源”可以分析出“要求”的执行是否真正落地。漏洞的修复和漏洞积分是管控手段,各维度检查结果汇总并与研发流程结合进行的版本控制,也是管控手段,通过各类管控才能有效控制安全风险。而安全画像/风险看板则是要求-检查-管控中的过程数据,有了这些数据进而可以帮助安全运营人员更直观了解整体以及每个应用的安全风险和当前状态,准确定位安全防护的重点。
除了思路上的总结,在建设平台过程中,也有两点经验想要分享:
-
要对系统的定位非常清晰。时刻站在“做系统的目的是为了什么,做的这些功能到底能否真正帮助实现目的”的角度思考,并且需要有整体架构的规划,才能让系统在不断“壮大”的过程中不至于失了“重心”而坍塌;
-
产品的易用性直接决定了运营难度的高低,在充分结合各类现有的安全工具的基础上,一定要考虑尽量贴合企业自身的各类流程(如研发流程等),将安全运营的各个环节有效融入到日常的研发流程中。
最后,在从SDLC到DevOps的广义应用安全管控体系建设下,安全运营是贯穿整体的能力支撑。如同lakehu在《小步快跑,快速迭代:安全运营的器术法道》说到的“安全是一个动态过程,它随着形势在不断变化,运营就是发现变化趋势调整优化安全策略达到安全目标的重要手段”,安全运营平台的建设则是“帮助运营人员直观发现安全变化趋势,为优化安全策略提供数据决策能力”,是为安全运营工作做好工具支撑,提供更高效、更便捷的运营方式和途径。
联系/合作/投稿邮箱:[email protected]
本文始发于微信公众号(安全365):银行业安全运营平台的建设与思考
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论