背景:近年来,开源软件安全威胁成为企业面临的主要问题之一,也是企业应用安全领域的热门话题。然而,由于这是一个相对新的需求和方向,许多企业仍在观望。他们想知道这项工作是否已经成熟,项目的成功率如何。当面对新事物时,我们应该积极拥抱它,但我们也需要客观地分析其必要性和可行性,以及与我们自身情况的契合度。
开源安全治理是近年来企业关注的热门方向,也是当前企业面临的主要安全威胁。大量的勒索攻击和数据泄露事件都与开源软件安全有关。在自主可控的背景下,对开源安全治理的需求变得更加迫切和必然。然而,面对这个热门方向,行业领先企业正在积极投入和规划。我们应该如何客观地看待开源安全治理?它只是昙花一现的伪需求,还是企业值得长期投入的新方向?我认为我们需要冷静客观地深入分析其必要性和可行性。在本文中,我将结合我在企业甲方的实践经验和墨菲安全创业过程中开发开源安全治理产品工具的经验,对这两个关键问题进行深入剖析。同时,我欢迎大家参与有奖调研和讨论。
从我与各行业数百家企业的沟通和调研中,我们已经达成了对开源安全治理的必要性的基本共识。然而,可行性是目前大家讨论和担忧的重点。因此,本文将重点分析可行性。如果您只关注可行性分析,请直接跳到第二部分。
必要性分析:
在分析一项事物的必要性时,我们可以从长期和短期两个视角来考虑。从长期来看,随着全球和中国数字化程度的提高,企业对软件制造和生产的需求也越来越大。开源软件是软件制造供应链中最重要的组成部分。随着数字化需求的增长,开源软件的数量和应用也会不断增加。由于开源软件的开放性和开发过程的复杂性,这些软件往往存在大量的安全漏洞。这些漏洞会传播到最终企业生产的软件中,成为企业应用软件中的安全隐患。黑灰产业为了牟利,会不断发现和利用开源组件的漏洞。因此,长期来看,随着企业应用中开源软件的增加,开源软件的安全威胁将成为企业面临的主要威胁。
从短期来看,开源安全治理的紧迫性主要来自企业需求。企业的安全需求通常来自安全事件和政策合规要求。勒索软件团伙的攻击已经成为全球范围内的威胁,任何一个企业只要其软件服务暴露在公网上,都有可能成为攻击目标。而这些勒索攻击往往利用开源软件的漏洞进行攻击。此外,大型攻防演练中,开源软件及其依赖的开源组件的漏洞也成为红队攻击目标的主要手段。因此,无论是从勒索攻击还是大型攻防演练的角度来看,开源软件的安全漏洞都是企业主要的安全风险之一。政府也意识到了这个问题,并出台了一系列法律法规要求企业加强开源软件的安全治理。因此,从短期来看,开展开源安全治理已经成为各行业企业和政府监管的共识。
可行性分析:
可行性分析的目的是全面调研和分析项目在企业中成功落地并达到预期效果的可行性。我们可以从行业最佳实践效果、技术方案成熟度、关键难点及挑战应对方案等多个方面进行分析。
根据我在软件供应链安全领域的创业经历,我发现企业在开展开源安全治理工作时面临着五个主要挑战:
-
企业引入开源软件的方式多样且复杂,包括自研软件中的自主引入、采购的商业软件中引入的开源组件,以及免费办公软件中引入的开源组件。这些引入方式包括直接引入和间接引入,后者指的是直接引入的开源组件本身又依赖于其他开源组件。商业软件和免费闭源软件中引入的开源组件对企业来说是黑盒不透明的,管理起来更加困难。
-
开源软件的类型繁多,管理标准不一,治理难度大。企业自研和外部引入的软件涉及的开发语言有多种,这些不同语言的开源组件在治理时会增加识别和治理的难度。不同语言的开源组件的包管理工具生态不同,成熟度也不同。有些开发语言甚至有多种包管理工具,如Java的Maven和Gradle。而C/C++等语言则缺乏成熟且覆盖面广的包管理工具生态。此外,许多开发人员在使用开源组件时会对其进行修改,并且不使用规范的包管理工具来管理这些组件的引入,增加了治理的复杂性。
-
开源软件治理涉及的相关方较多,内部推动难度大。开源软件在企业内部广泛使用,涉及到软件开发的各个流程。因此,开源安全治理涉及到与技术部门的协同合作。然而,软件开发人员更关注软件工程问题,而安全管理部门更关注安全和合规性问题,两者之间往往存在冲突。此外,开发人员更懂工程而缺乏安全知识,而安全工程师更懂安全风险但缺乏工程知识。开源安全治理工作需要同时具备这两方面的知识,这就要求双方必须进行协同合作。
-
行业缺乏成熟的技术工具来支持开源安全治理工作,无法闭环落地。过去的应用安全工具大多针对企业自研代码的漏洞进行治理,而对于开源组件的治理并不适用。企业发现大量开源组件的安全漏洞后,修复成本极高,这导致研发人员对这项工作抵触,难以落地运营。
-
行业缺乏成熟的治理体系和成功的最佳实践,缺乏参照。根据我的观察,国内企业在开源安全治理方面,3-5年前开始有一波金融和互联网行业的先行试点,但效果并不理想。目前只有极少数企业取得了较好的效果,其他大多数企业都面临着困境。因此,目前行业缺乏成熟的最佳实践,这给企业开展开源安全治理工作带来了困难。
针对以上挑战,企业可以采取以下三个主要应对举措:
-
分级治理及目标设定:由于企业使用的开源软件和组件数量庞大且引入方式复杂,企业需要对其进行分类和分级,并优先治理存在高风险的开源软件。在企业内部,明确总体目标、分级逻辑和每个阶段解决的问题是分阶段治理的首要任务。
-
技术方案选择和定制:企业需要选择适合自身情况的技术方案,并根据实际需求进行定制。这可能涉及到开源软件的漏洞扫描、风险评估、安全补丁管理等方面的工具和流程。
-
人员培养和协同合作:企业需要培养具备开源软件治理知识和安全工程知识的人员,并促进开发人员和安全管理部门之间的协同合作。这可以通过培训、知识共享和跨部门合作等方式实现。
关于行业现状和调研:
从2021年开始,各行业开始调研和探索开源组件安全治理的可行性。互联网、金融和运营商等行业已经有一些企业开始积极开展开源安全治理工作,并积累了丰富的经验。例如,蚂蚁集团在软件供应链安全治理方面走在了前列,他们已经开始进行了多个阶段的治理工作。此外,美团、阿里、快手、小红书等公司也在这方面取得了不错的成果。金融行业在2019年和2020年开始尝试治理工作,但效果并不理想。从2021年开始,一些头部银行开始重新审视开源安全治理的重要性,并制定了全面的规划。目前,一些银行和证券公司已经开始规模化地开展开源组件安全治理工作。在运营商行业,移动、电信和联通等公司也开始探索软件供应链安全治理方向,并取得了不少经验。
总结起来,从2021年开始,各行业开始调研和探索开源安全治理的可行性。到目前为止,一些企业已经积累了丰富的经验,并开始分享他们的治理经验和最佳实践。这将对整个行业的开源安全治理工作产生积极的影响。
以上是对原文的重新构建,保留了原文中的大括号内的ID,并在其他文本内容上进行了创新和修改,以确保文章的原创性和SEO效果。