浅谈企业安全建设“道”与“术”--道篇
/ / 点击 / 阅读耗时 21 分钟引子
所谓“读书百遍其义自见”,切实做了几年甲方安全建设,有一些自己的思考,也有与大家的交流,还有一些对外的分享,斗胆来聊聊,欢迎大家指正。
这是第一篇,先聊聊“虚”的道,后面咱们再看情况写一些“实”的术,后面能写几篇看时间;
虽然是“虚”的道,但其实应该是有一些指导意义的,需要大家的细品,这种思考与总结就个人而言,觉得挺有意思。
漏洞防御、威胁防御与双向安全治理
之前对外分享,比较经常提的是漏洞和威胁防御两个概念,算不上我提的概念,只是自己做了一些的总结和延伸。
一般在企业安全建设的早期,风险收敛主要围绕漏洞进行挖掘和治理,做漏洞的管理,有点类似于打地鼠,这种方式是比较简单、快速和高效,在早期是能够快速看到明显的效果;但毕竟非体系化的治理,所以也确实会存在不够全面的问题,受限于相关漏洞挖掘活动覆盖的面、深度等。
而威胁防御则更强调是全生命周期的安全治理,更类似于航母战斗群,所以对应会更全面,但对应一个周期下来也会有比较长的执行周期,同时对于安全投入是有比较大的要求,安全组织、文化、工具等,也需要更多的适配业务研发运维体系。
很难说只用其中一种方式进行整体的安全治理,或者哪种方式比另一种更好,更多还是看不同企业的模式来进行适配,以及更多时候是结合使用。
上个月跟悬镜的同学在针对这两个防御体系做交流,他们基于漏洞防御和威胁防御提出两个视角,在两个视角补充了攻防对抗,适配到DevSecOps的体系,对此我的解读是:
- 威胁防御是从左到右,收敛源头,规避漏洞上线;
- 漏洞防御是从右到左,收敛结果,消减漏洞影响;
- 漏洞防御的起始通过攻防对抗驱动,威胁防御的尽头通过攻防对抗验证。
我称之为 “安全双向线模型” ,通过 双向安全治理 ,后者核心收敛重点问题,前者实现全生命周期风险消减,通过攻防对抗促进与验证,最终达成 “平行安全” 。
安全需求与安全建设
安全需求
再来说说通用的一些安全建设之“道”,主要也是安全体系的建设与管控落地。
就目前而言,大家通常对安全的需求一般总结为“安全合规与可控”,合规好理解,何为可控?我的理解是有限影响,安全可达,也就是出现的安全问题与事件不超出预期,安全可以检测、监测、响应、恢复、溯源。
拆解到下一层对于安全团队,我理解主要是这样一个公式:快速检测+有效监测+及时响应+快速恢复+能够溯源=有限影响,公式的左边是安全可达,右边是有限影响,只有安全达成几个要素,才能实现有限影响。
安全建设
基于这样的要求,安全建设怎么做?
- 由外及里:虽然现在都在讲零信任,当然能达成更好,但在达成不了的情况,对于大部分企业而言,边界是个有效的做法,先管控对外风险面,比如高危服务、管理后台对外的开放,外网IP、域名的上线;再到内部治理,内网的服务、应用治理与各种监测的覆盖,统一的鉴权等
- 抓大放小:优先抓主要矛盾,消减大的问题;对业务和场景分级分类,抓重要和与核心业务,适配不同方案和要求
- 从点到面:先解决突出的问题点,快速消减,规避损失,再考虑面的解决方案,通过管控手段与卡点彻底消除问题
- 由粗到细:从粗粒度管控,再到精细化运营,比如针对自研、OEM或者线上发布、私有化交付的不同形态的产品,制定大的统一安全要求,再针对不同形态产品和场景识别细粒度安全需求,精细化运营
- 从解决问题到讲究效率:先解决问题,小步快跑,快速迭代,再考虑工具系统、标准化,提升效率
- 从安全可感知到可度量:先让安全可感知,业务侧认可安全重要性,然后需要重点关注安全的度量建设与指标化度量,有安全建设的度量与价值呈现,也有业务安全成熟度的度量
涉及到具体安全管控及活动的落地:
- 控增减存:控制增量问题,消减存量风险
- 以起为始:关注问题的源头,统一解决,尽量实现默认安全
- 对抗验证:通过实战对抗,进行反向验证
- 以度促建:通过度量,让安全建设量化,根据量化情况,识别不足,同时通过对业务的度量实现推动业务提升业务安全成熟度
- 通过复盘识别不足:问题与事件驱动,通过不断的复盘与总结识别,反向识别不足,闭环优化安全体系
同时,整体安全建设需要有对应的的体系支撑,针对产品安全,我把它总结为“4/3模型”,但应该也是适用于整体企业安全建设:
为什么是4/3,3对应是三个体系,4对应的是四层粗分的安全建设层级。
攻防体系就不多说了,常态化的对抗演习验证以及对通用问题的研究挖掘、渗透测试的支撑,是必不可少的;
而安全运营则是整体的运营和闭环的基础,建立管控机制,保障安全效果的落地、度量以及与业务团队的对接、沟通,相对比攻防和研发是一个综合能力要求更高;
而安全研发,我觉得需要大家重视,这里其实核心是安全工程化能力,虽然前期安全工具和系统可以通过购买来补充,但随着安全建设的展开,相关的能力自建、适配、运营研发支撑等,会发现安全研发越来越重要,需要提前布局,而不应该等到需要再来补充。
通过这三个体系,最终支撑四个层级后者维护的安全建设,来逐步提升整体安全水平。
安全攻击与防御
常说攻防不对等,更多说的是防御难度大,需要面面俱到,而攻击是只要单点突破,其实在我理解两者各有优势:
- 防御:防御优势,信息反制
- 攻击:攻防差距,技术压制
对于攻击而言,最大的优势就是过去常说的攻防对不对等的点,所以大部分时候是需要技术压制,打破缺口,这里大家可能相对比较了解,就不展开讲了;
而对于防御而言,应该利用防御优势,做信息反制,何谓信息反制?虽然防御需要面面俱到,但其实相对于攻击队,防守方是有信息的优势,攻击者需要摸点排查,而防御方则尽在心里;举个简单的例子,一个线上的业务,防守方是比较了解业务的情况,一些是否业务正常行为是能快速与业务沟通判断,写防御策略也可以针对企业内部情况进行制定,那么就可以针对性的做访问控制白名单、针对业务使用的组件做专门防御等,比如说X业务归属团队A,B团队的同学访问则可能是个异常行为,而业务归属、人员团队归属,都是防御的信息优势;包括说针对入侵的检测,是可以利用蜜罐等实现攻击者无感知,但一切已尽在眼底等;当然,如何利用好防御优势,还是取决于安全建设程度。
说到防御优势,对于防御,我觉得有三个点:
-
纵深防御,这个大家应该都懂,就不做多的解释;额外提下,在做漏洞管理或者风险收敛,也是存在反向道理,不要指望靠一个单点的检测能力或者环节解决所有漏洞发现收敛,也是多环节来实现发现
-
饱和式防御,针对一些重点防御目标,应该类似于雷达扫描,做区域重叠的防御策略,也就是一个地方可能有其他机制覆盖,但也应该在另外的可做的环节覆盖防御监测策略;这个在近几年的攻防演练中,针对靶标的加固监测,尤其应该如此
-
降维打击,这其实也是防御优势的一种体现,这个过去xti9er在相关文章也提过,其中他举的一个例子,就是webshell上传的检测,可以在网络层从HTTP协议入手,也可以在CGI层面通过fopen等API事件监测创建CGI文件,还可以在系统用户态通过系统层面API调用行为进行检测,甚至是系统内核inotify事件来监测,越高维度越不容易被绕过,联动也更为精准,这就是降维大家,其实也是防御优势。
专项重保与防御
近几年的攻防演练活动,以及各种重保活动,让专项重保与防护成为比较常态的一个事;
过去也作为主要负责人参与或负责相关活动,也总结了一些主要的工作方法和框架,也供大家参考。
整体这类活动我认为比较难的点在于如何组织协调多团队配合,特别是非安全团队来配合进行相关的活动开展,以及有没有对应的安全资源来投入开展不同的事,也是比较重要的一个点。
整体分为前中后,事前组织协调与梳理加固,事中主要是安全值守,监测响应,事后主要为复盘总结。
这里安全团队需要懂得抓住时机,通过相关活动查缺补漏,然后推动相关的安全建设和管理措施落地,切实消减风险和推动防御体系水平提升,而不是仅仅为了专项活动做准备。
上面是相对完善的活动,如果做精简的总结,我把它总结为“3/4齿轮模型”,针对企业四级防护目标资产,对应上面也提到十种安全活动,我觉得其中核心是要针对不同的层级采用不同的加固和监测级别、机制,抓住不同层级需要重点关注的问题进行跟进,然后更核心是在活动期间做到即时响应,总结就是“多级加固与监测防御,即时响应”。
写在最后
来了腾讯以后,真的忙,中间断断续续的基本没写几篇文章,公众号更是4/5年没更新了,周末深夜忙里偷闲写下这一篇文章,希望对大家有帮助或者借鉴意义。
一直都想写,最近忙完年中考核,给自己松口气,所以抽空写了,接下来可能又要忙于今天的重大活动了,但总是希望能输出点东西,给行业带点东西。