由中国信息通信研究院、中国通信标准化协会联合主办,中国通信标准化协会云计算标准与开源推进委员会承办「2022 OSCAR 开源产业大会」于9月16日圆满召开。开源网安交付中心总监裴伟伟在「开源安全」分论坛上进行主题为《企业供应链安全的思考与实践》的深度分享。
2015年9月,有人爆出XCode编译器中存在植入的第三方代码,非官方渠道下载的XCode编译发布的iOS应用可能存在后门,后经证实,有上千款iOS应用存在恶意代码注入,该事件被称之为XCodeGhost。
2017年5月,国外的安全人员发现惠普多个系列笔记本电脑的音频驱动中存在内置键盘记录器,能够监控用户的按键输入,并保存在可读文件中。之后,惠普回应称这是调试驱动的代码,并发布了更新驱动程序。
2020年12月,FireEye发布了SolarWinds供应链攻击的报告,报告称网络管理软件供应商SolarWinds的Orion软件中存在后门,受影响客户包括北美、欧洲,涉及18000多个客户。该攻击可以追溯到2019年10月份,并疑似与SolarWinds一名实习生使用弱口令“solarwinds123”有关。
2020年12月,有文章爆出有产业巨头的系统源代码在网上兜售,由于SonarQube未授权访问接口的漏洞,导致攻击者可以利用该接口获取相关企业的代码管理凭据,从而获得经SonarQube扫描的项目源代码。
2021年3月,PHP官方Git仓库被发现有人以维护者的身份提交了两次含恶意代码的变更,好在官方及时发现并恢复了代码,避免了进一步的影响。
2021年12月,Apache Log4j组件被爆出存在远程代码执行漏洞,所有使用该组件的系统均存在漏洞被远程利用的风险,之后该组件虽经过多次升级,但依然没有彻底修复所有漏洞,而该组件只是由Apache基金会一名成员在业余时间开发和维护的,作者Ralph Goers几年前曾发帖请求赞助全职维护Log4j,但只有3个人捐赠。
供应链安全事件在最近几年频发,供应链安全也越来越被政府和企业重视,原因在于在供应链管理中可能导致安全风险的因素非常复杂,如果没有良好的供应链安全管理和风险控制,由于供应链导致的安全风险会急剧增加,甚至自始至终不知道攻击是如何发生(如SolarWinds事件中,发现者FireEye公司是在追查另一起APT攻击时发现Orion产品被植入后门的),且如何避免和防范下一次类似的攻击。
因此,当企业在考虑自身信息安全的时候,不得不考虑供应链安全,同时,每个企业作为经济活动中的一个环节,自身也是供应链中的一环,有着自己的上游和下游供应商,在安全愈加被重视的环境下,企业自身的客户和上游供应商都会要求企业具有一定的安全能力,这也是SOC2认证在最近几年大火的原因,SOC2被称为最难的企业安全认证,是基于美国注册会计师协会 (AICPA) 现有信托服务标准 (TSC) 审计标准委员会的报告,报告的目的是评估与安全性、可用性、处理完整性、机密性和隐私相关的组织信息系统。比如,SaaS服务厂商在给律师事务所提供产品和服务时,律师事务所服务的政府机构又会要求律所自身具有一定的安全能力和安全成熟度,这便需要律所的供应商也要具有一定的安全能力以及安全能力证明,即SaaS服务厂商需要具有相关的安全资质,如果该厂商能够出具SOC2 Type2的报告,则可以作为最有力的安全管理和安全技术证明。
与企业信息安全管理相同的是,供应链安全不是纯粹的IT问题,而是人、流程和知识的问题,在供应链庞杂的环境中,企业完全不被攻击或攻陷是不可避免的,因此需要从攻击者的角度进行安全防御建设。与传统的信息安全不同的是,供应链安全涉及到物理世界与信息世界的交互,两者之间并无间隙,且相互影响,比如上文提到的惠普笔记本事件,如果企业在办公设备采购中恰好选择了相关系列的设备,那么便需要进行资产排查和驱动升级等应对。
供应链安全涉及到的方面包括企业供应链管理中的:
· 采购
· 供应商管理
· 供应链连续性
· 供应链质量
· 运输安全
从与供应商的商务关系到供应商的技术管理和实践,相关的风险又依次包括:
· 第三方供应商:供应商企业健康状况和企业实力;
· 供应商安全实践:供应商内部安全管理和安全实践;
· 被攻陷的软件、硬件:供应商提供的产品可能被攻击者掌握;
· 软件、硬件的安全漏洞:供应商提供的产品本身存在安全漏洞;
· 软件、硬件的恶意代码:供应商提供的产品被植入了后门、木马;
· 第三方数据泄露或数据聚合:供应商存储的客户数据泄露或供应商通过数据分析获取客户机密/秘密。
除此之外,还包括企业自身在技术活动中引入的技术角度的第三方技术,比如开发人员在编程中引用的第三方开源或商业组件、调用的免费SDK(Software Development Kit)、使用的开发工具或运维工具(IDE、IDE插件、数据库连接管理工具、服务器连接管理工具)等。这些技术角度的第三方供应链可能没有供应企业,可能早已无人维护,也可能只是个人业余时间维护(如Log4j)。
当下很多企业在从事诸如驻场服务、驻场咨询、现场交付等等活动的过程中,还会涉及到与供应商或供应商人员的身份认证、授权、权限管理以及数据分享的问题,比如企业在财务审计中需要将财报信息同步给事务所人员、安全公司驻场为企业提供渗透测试服务、供应商交付人员在企业办公场所进行产品交付、配置工作。
所以供应链安全本质上是企业管理自身管理范围之外的一系列相关企业、产品、技术、人员、流程,并期望相关企业和人员具备不低于企业自身安全水平的安全成熟度。
从技术供应的角度,企业供应链安全的风险来源如下图:
当前没有哪家企业可以实现完全的自产自足,每家企业都需要借助其他供应商的能力完善自身的生产能力,在选择供应商和进行采购活动之前,企业自身需要完善相关的供应商管理制度或机制。
根据ISO27002(信息安全控制实用规则),涉及到供应商安全的规范包括:
· 供应商关系的信息安全:供应商遵守的信息安全策略、供应商协议的安全问题、信息和通信技术供应链;
· 供应商服务交付管理:监视和评审、变更管理;
与供应商关系的信息安全是指企业应当与供应商就供应产品或服务过程中,供应商人员应当遵守的最低安全要求和安全策略,确保供应商对于企业资产的访问是安全可控的,并明确双方合作中安全风险的处置原则和要求。供应商服务交付管理是为保障供应商的交付物保持一定的安全和质量水准,并确保交付变更不会带来新的安全风险。
根据SOC2(服务性机构控制体系鉴证)的合规要求,企业在供应商管理中需要具备:
· 供应商管理制度
· 供应商准入机制及资质审核
· 供应商的服务质量定期评估
· 供应商名单库
供应商管理中可能存在的风险,例如:SaaS厂商提供的产品自身存在安全漏洞,可被攻击者利用产生安全威胁,造成企业数据泄露;供应商产品设计存在安全风险,可以在客户不知情的情况下,由供应商内部员工任意访问客户的数据和记录;企业在采购某个供应商的产品前未了解供应商的企业状况,采购之后供应商倒闭造成企业的供应链维护缺失甚至企业经营损失。
在选择和评估供应商时,需要评估供应商的商务信息和技术能力,商务信息包括:法人、注册地、员工规模、注册资本、股权结构、融资信息、企业资质、过去三年工商变更信息或工商处罚信息,技术能力包括:安全资质、安全白皮书、安全实践描述(基础安全、数据安全、漏洞管理、人员管理等)、开发实践描述(开发团队、开发流程等)。
商务信息可以通过被动调查的方式从诸如天眼查、企查查获取供应商的相关信息,技术能力可以通过问卷调查的方式由供应商主动提供,调查的方式除供应商自述之外,还可要求提供相关的系统截图或代码截图证明相关的能力。
更进一步,可以在供应商的授权下,采用穿行测试、漏洞测试的方法,对于供应商系统进行安全审查和评估,范围包括安全合规、安全要求、安全设计、安全漏洞,确保供应商的提供的产品符合企业的安全要求。
供应商评估的目的是为了让企业了解供应商的以下信息:
· 供应商的软件/硬件研发过程有文档么,可复制么,可衡量么;
· 产品研发过程中有缓解漏洞的措施和手段么;
· 供应商的漏洞管理能力是怎样的,有发现、跟踪、验证、关闭漏洞能力么;
· 供应商的配置管理和质量管理是怎样的,如何确保不会因配置导致安全风险,以及确保质量符合要求;
· 恶意软件/后门是如何检测、防护、清理的;
· 数据管理生命周期中数据采集、存储、使用、销毁是如何的,包括保护、加密、留存、销毁;
· 人员安全是如何实践的,包括人员背景审查和审计、关键岗位保密协议和能力验证等等;
· 产品发布过程是如何保障安全的,是否有发布审核、批准和验证流程。
在设定供应商的准入门槛,评估供应商符合要求之后,相关的供应商应当进入企业的供应商名单。在与供应商进行合同签约过程中,依然要考虑合同内容中的安全要求、责权信息,明确双方的义务与权利,以及SLA中的产品、服务等级、质量以及赔偿方式和赔偿内容。例如:有的供应商在合同中将“黑客攻击”造成的损失写明由甲方承担,这样的条款是不仅不合理,还违反了《网络安全法》。所以采购合同的拟定与修订,需要在企业法务部门、安全部门的指导下进行评估。
供应链中相同的第三方产品或服务不应当只有当前已采购的,还应当维护一定量的备用供应商和后备产品服务。这需要企业在供应链管理中考虑以下三点:
· 供应商的合作等级:取决于供应商的实力,比如钻石级、白金级、白银级;
· 供应链的安全风险等级:供应商提供的产品或服务在保密性、完整性、可用性方面对企业造成的风险级别;
· 安全风险的缓解措施:包括企业自身的替代能力,和其他供应商的替代能力。
比如,企业的官方网站托管在某家PaaS平台上,该PaaS平台由于合规问题或网络攻击导致不可用,且短时间内无法恢复,企业则需要考虑尽快启用自己的备用站点恢复访问,或具备其他供应商的同类平台和托管内容,能够实现站点切换。
企业自身供应链风险的评估内容包括:
· 供应链评估项
· 评估内容
· 现状描述
· 风险级别
· 相关厂商
· 风险控制措施
在风险识别过程中,有很大的机会能够发现企业内部的重复采购或无效采购,尤其是没有统一的采购部门,或采购部门没有记录和管理采购内容的情况下,比如:不同事业部采购了不同供应商的电子签名产品,且供应商质量和产品价格不一;企业采购的某供应商的产品或服务已经支付了全款,但没有业务或部门使用。
在没有统一采购部门的情况下,安全部门可以和财务部门进行协作,安全部门的供应链风险评估结果与财务部门进行同步,前者把握风险关,后者把控资金关,避免无效采购或重复采购。
对于已经合作的供应商,企业应当每年进行一次供应商评估,定期评估可以让企业掌握供应商的企业风险和产品/服务风险,避免由于供应商风险造成的企业自身风险。定期评估的内容可参考上文供应商管理和采购部分的内容。
对于在产品使用和服务过程中出现的安全事件,企业应当进行验证、记录、反馈,并督促供应商整改,对于事件的严重等级按照风险进行划分,并基于供应商准入门槛以及合同中的要求评估是否继续采用该供应商的产品或服务。对于发生严重事件并影响到企业安全的供应商,或持续不符合供应要求的供应商,企业可以采用供应商降级或解约的方式将供应商从供应商名单中剔除。
质量不佳的供应商不仅无法维持企业供应链安全的质量和要求,而且会消耗企业大量的管理成本、运营成本与供应商进行反复沟通、整改、验证工作,最终的结果可能依然不符合要求,勉强的合作让企业的采购得不偿失。
本篇内容讲解了软件供应链风险的来源与第三方供应商的管控,后续发布的内容将带来关于第三方技术管理与软件供应链框架的解读。