写在前面
大概从2011年在网易实习的第一份工作开始,我就在做关于应用软件安全相关的工作,那个时候大家开始跟着微软学习建立SDL(Security Development Lifecycle),后来在百度、贝壳工作的时候一直深入参与企业的SDL流程及平台工具的建设,中间在乌云创业的时候做的仍然是应用软件安全相关的工具产品。回过头来去看,国内应用安全体系的建设实践走过了差不多有15个年头,我们看到行业内每隔几年就有各种关于应用安全体系新的理念蹦出来,像SDL、DevSecOps、ASOC、软件供应链安全等等,这些理念和每个阶段企业应用安全建设面临的不同技术栈和痛点问题息息相关,但是似乎到今天为止我们看到大多数企业在应用安全建设这个方向上并没有一套非常成熟的实践和标准。从结果上看这就导致:
1)大多数企业最终花了5-10年并没有沉淀下来一套成熟的应用安全体系,基本上都是换一波人换一套玩法重新做一遍,企业因为应用软件安全威胁(漏洞、代码合规等)导致的安全事件层出不穷;
2)过去10年国内在应用软件安全方向的安全厂商并没有取得很好的发展,市场一直没做起来;
当然这里面第一点是最关键的,客户价值没有落地,应用安全市场当然起不来。
根本原因
任何一个行业市场(不管是供应方还是需求方市场)成熟的标志一定取决于它的标准化程度。我们可以把企业安全市场大抵划分为四块:网络安全、终端安全、应用安全、数据安全。
过去十年是网络安全、终端安全的黄金十年,未来十年我认为是应用安全的黄金十年,而数据安全的成熟可能需要建立在应用安全、网络安全及终端安全高度标准化的基础之上。当然,这里并不是说现在数据安全就没有机会,也不是说网络安全和终端安全就已经过时,仅仅只是讨论市场的成熟度问题,在一个已经非常成熟的市场,我们仍然可以通过技术创新来获得市场机会。因为随着全球数字化的程度越来越高,企业和用户对于信息安全的需求一定是越来越大的,这一点是毫无疑问的。
网络安全、终端安全、应用安全、数据安全这四个方向,越往上层就离业务越近,那么它的技术栈就越复杂,想要做到标准化就越难,因为每家不同的公司都有不同的业务形态和不同的信息化建设程度。而整个行业的互联网及数字化程度越高就意味着这些底层技术越趋于标准化。
为什么说应用安全的未来十年是黄金十年,过去十年网络及终端安全市场的成熟得益于网络及终端底层技术的标准化程度非常高,终端的主流操作系统(windows、linux、MacOS)的广泛应用为今天终端安全市场的成熟创造了条件,而今天应用安全领域,开源组件的广泛使用(企业应用软件中开源组件占比超过90%)和应用软件开发流程的标准化(gitlab/JetBrains/Jenkins及类这类研发流程工具的覆盖率超过80%)给应用安全产品的高度标准化创造了有利的基础条件,接下来十年将是应用安全市场高速发展的十年。
最佳实践的价值
任何一个高速发展的新技术方向在形成广泛共识(也是趋于成熟的)的过程中需要行业创新者和领头羊贡献大量的最佳实践,且应该有一个良好的社区反馈来促进最佳实践的不断完善,最终更高效的赋能所有的企业和参与该技术方向建设的每一个人。应用安全建设是一个相对于终端安全和网络安全更复杂的技术问题,所以它的标准化过程就会有更多需要达成共识的地方,而整个达成共识的过程的基础是行业有相对成熟和标准化的产品工具,同时加上一些行业头部的创新者(企业和用户)落地的最佳实践。
从创办墨菲安全以来,有很多在企业负责应用安全朋友和客户希望我们把一些企业头部企业的最佳实践分享出来,方便他们在内部推进建设的时候做一个参考。我自己也认为这是一件非常有价值的事情,但是今年之前我一直觉得时机还没有到,最主要的原因是我觉得我们自己的积累还不够,这个积累一方面是担心我们产品技术的成熟度,另外一方面也是想看看企业客户使用超过一年之后的反馈和效果。所以大概从今年年初开始,我们认为至少在开源软件供应链安全治理这个方面我们已经在互联网、运营商、金融等行业有了一些不错的实践且我们做的都是一些相对头部的企业,在他们确实都运营起来了初见成效后,我们才敢开始考虑把这些最佳实践输出出来。当然这个过程我们仍然认为还是应该拉着大家一起来编写完善这个最佳实践。
用户需要什么样的最佳实践
在写这个最佳实践之前,我们团队对于用户需要什么样的最佳实践展开了激烈的讨论,到底是写关于技术方案的最佳实践还是关于治理运营的最佳实践,过去我们看到google经常会发一些论文和文章来写他们在一些新的技术方向上的最佳实践,大多数都是关于技术方案的最佳实践,其实是一种不错的分享,但是我们内部经过讨论,技术方案对于大多数企业来说需要再摸索和转化成企业运营落地的最佳实践,这个才是企业最痛的点,也是行业里面最缺的东西,所以我们决定应该把如何开展开源软件供应链安全治理的全运营过程,从早期的立项调研、价值论述到后续的立项、推广、日常运营等全过程通常需要注意的一些关键点和解决方案整理成最佳实践分享出来。
比如通常会遇到的痛点是:
1)立项调研的时候如何给公司管理层们说清楚做这件事情的必要性及量化评估价值?
2)项目立项的时候如何写一份好的PPT并说服所有参与立项评审的专家?
3)系统上线的时候如何保障能够达到预期的效果而不烂尾?
4)适合企业的开源软件供应链安全管理制度及规范应该怎么编写?
5)应该如何开展前期的试点工作,在不引起研发团队抵触的情况下又拿到满意的试点效果?
6)如果确定正式运营方案和关键的度量指标?
7)如果开展正式的推广工作,如何高效的提升覆盖率和整改率指标?
等等,这些可能都是大家最关心,最痛的点。
我们把企业的开源软件供应链安全治理工作拆解为核心的九大环节,本文会对这九大环节分别展开说明,包括每个环节的目标、关键要点及实际操作方法,整篇最佳实践我们联合了来自小米、快手、百度、翼支付、知乎等十多家企业的应用安全专家们的优秀实践经验推出的,也期待大家一起参与讨论和共建。
这里我先把最佳实践的目录结构也附上:
关于获取最佳实践和参与研讨
这一份最佳实践我们会持续保持更新,并且我们会每个月安排1-2场关于这个最佳实践的闭门研讨,希望获取最佳实践和参与闭门研讨的朋友,可以**通过点击下面这篇公众号,在文末【最佳实践分享及闭门研讨会报名】中获取参与的方式,**谢谢大家。