查看原文
其他

密码在软件供应链安全中的应用

王克 商密君
2024-11-08

点击蓝字关注我们




为进一步推动产业发展,更好地汇聚产学研用各方力量,聚焦关键软件领域密码应用核心问题,不断夯实软件产业发展基础,共同推动软件产业和密码技术融合发展,12月18日,“2021年商用密码应用创新高端研讨会”在经开区国家信创园成功召开。在会上,中关村网络安全与信息化产业联盟EMCG工作组组长王克带来题为《密码在软件供应链安全中的应用》的演讲。

一、软件供应链基本概念
背景:
2021年5月12日,拜登签署国家执行指令(EO-14028)《改进国家网络安全》提出24条“加强软件供应链安全”。至此,美国政府对网络空间软件供应链安全治理拉开序幕。


关键词:

软件供应链安全(software supply chain security)

关键软件(critical software)

软件物料清单(software bill of materials,SBOM)

软件透明度/可见性/可追溯性(transparency/visibility/traceability)

软件标签(software tag,label)



  • 执行指令(EO-14028)“加强软件供应链安全”涉及机构
  • 执行指令(EO-14028)“加强软件供应链安全”任务、期限及完成情况
  • 软件供应链框架形成(ISO、NIST、政府)
  • 网络安全事件:
1、2020年SolarWinds(太阳风)
2、2021年
3月Exchange邮件系统软件漏洞
5月Colonial管道公司勒索软件攻击
12月Apache开源项目Log4j2漏洞
  • 早期事件:
1、2010年伊朗核电站震网病毒
2、2016乌克兰发电厂遭软件攻击
3、2017年勒索软件WannaCry(美国国家安全局(NSA)泄露)
  • 软件代码安全
开源代码。甚至政务、金融、能源等重要行业使用的软件有十八年前的开源代码,软件责任不可追溯,存在极大安全隐患。
  • 软件资产
另一方面,由于软件没有作为组织机构、企业的资产,软件处于无台账状态,pc、服务器、云计算、移动App不审核、不检测、不签名的现象比较普遍,软件安全风险不能有效控制;检测版本与实际系统运行版本存在差异,使得大量实际系统运行软件存在来源不明,版本不一致,漏检代码运行带来软件安全隐患。
网络空间处于“谁进来了不知道、是敌是友不知道、干了什么不知道。”的不可知、不可控状态。
1、基本概念
  • 供应链(Supply Chain)
《网络供应链风险管理》(NIST.SP800-161 Rev.1 2021):指各级企业之间链接的资源和流程,每个企业都是从产品和服务的采购开始,延伸到产品生命周期的收购方。
《防范软件供应链攻击》(CISA&NIST 2021.4):是由参与硬件、软件和管理服务的销售、交付和生产的零售商、分销商和供应商组成的网络。
——一个产品所涉及的不同实体构成的资源、过程的链接。——一种关系
多实体:最少两个实体
有向性:上游和下游,提供和接受
软件供应链(Software Supply Chain)
——一个软件所涉及的不同实体构成的代码、服务的链接。——一种关系
多实体:最少两个实体
有向性:上游和下游,提供和接受
《防范软件供应链攻击》(CISA&NIST2021.4):ICT供应链生命周期有六个阶段:设计、开发和生产、分配、获得和部署、维护,软件也有这六个阶段。
  • 软件供应链安全(Software Supply Chain Security)
在供应链生命周期每个阶段,软件被有意或无意引入恶意代码和漏洞,给系统带来的安全风险。(聚焦恶意代码和漏洞,非可靠性、断货风险)
  • 软件供应链安全治理Software Supply Chain Security Governance
处理实体之间的关系,不只解决软件自身问题(如漏洞挖掘)。
三个关系:信任关系、责任关系、技术关系。
处理软件供应链全过程关系,不只解决某一环节的问题(如DevSecOps)。
解决软件可见性、可追溯性问题:软件是谁编制的?软件安全性能如何?代码是否被破坏?
处理多个实体关系依靠统一规范、标准。
  • 软件资产管理(Software Asset Management,SWAM)
一个计算机中的软件包括固件、基本输入/输出系统(BIOS)、操作系统、应用程序、恶意软件,如工具包、木马、病毒和蠕虫。
软件资产Software Asset:一行源代码,或一个由多个产品、数千个可执行文件以及无数行代码组成的软件套件。软件资产两种形式存在:一是软件产品,二是可执行文件。
  • 软件资产目录(Inventory of Software):
为企业每个计算设备安装/执行的软件产品和可执行文件建立管理台账(软件注册表SRL)。
  • 解决的问题:
软件授权
软件从可信供应商获得
减少软件攻击
  • 技术方法:
白名单—只运行“已知的好的”或可信的软件
黑名单—禁止运行“已知的坏软件”或不可受信任的软件
灰名单—目前不知是好还是坏的软件,暂时可运行。
  • 软件数字签名(Code Digital Signature)
白名单软件产品可执行文件具备软件数字签名(或数字指纹),以识别软件是否被非法修改,加入恶意代码。对于自研软件,应进行软件数字签名。
  • 软件物料清单(Software Bill of Materials,SBOM)
ED-14028指示商务部国家电信和信息管理局(NTIA),发布软件物料清单(SBOM)的“最小要素”。美国政府已将SBOM确定为推动软件供应链风险管理的优先事项。
一个格式化记录,包含在构建软件使用的各种组件细节和供应链关系。软件供应链安全治理手段。
SBOM的概念源自制造业,其中物料清单是详细说明产品中包含的所有项目的清单。例如:每辆车有一份详细的材料清单,列出了原始设备制造商自己制造和第三方供应商的零件。发现有缺陷的部件时,汽车制造商可以准确地知道哪些车辆受到影响,并通知车主维修或更换。SBOM为生产、购买和操作软件提供信息,以增强对供应链的理解,跟踪已知或新漏洞、风险。在此基础上构建安全工具,作为提高软件透明度的方法基础。
  • 软件标识(SWID)标签(Software Identification Tag)
ISO-IEC19770-2-2015_软件资产管理—软件标识标签:一种标准化的数据结构,XML语言描述,支持软件资产管理自动化。SWID标签定义了三种标签:软件身份标签、软件补丁和补充标签。
例子:软件身份标签
  • 软件标签(Software label)
EO-14028要求国家标准与技术研究所(NIST)与联邦贸易委员会(FTC)和其他机构协调,启动网络安全标签(Software label)的试点项目。2021.11.1,NIST发布《消费者软件网络安全标签的基线标准草案》。
二、密码在软件供应链安全中的应用
软件供应链安全重点:提高软件可视化、代码完整性和可追溯性。
软件可视化主要采用软件物料清单(SBOM)技术;软件完整性、可追溯性采用数字签名/验证密码技术。
1、国际互联网头部企业合作
Google2017年与7家技术公司在联合推出Grafeas开源计划,为企业定义统一的审计、管理使用开源项目方法。
Linux基金会在软件物料清单(SBOM)管理方面,建立了SPDX(The Software Package Data Exchange,软件包数据交换),为组织共享软件数据提供通用规范格式。7月29日全球开展《SBOM准备情况调查》。
ISO国际标准化组织,2015年发布SWID(Software Identification,软件标识)标签标准ISO/IEC 19770-2:2015,为组织跟踪设备商安装的软件提供一种透明方式。
2、国际互联网头部企业合作开展软件签名
2021年3月10日,谷歌、Linux基金会、Red Hat以及普渡大学共同推出开源软件签名服务sigstore项目,提高软件供应链安全。
——sigstore
提供免费证书和自动化工具,所有的证书和认证都是全球可见的、可发现的和可审计的。
让开发人员能够更轻松地签名软件发布,让用户更容易进行验证。
——Grafeas开源计划
提供一种统一审计和管理软件供应链方式。同时,推出Kritis,对容器镜像进行签名验证,确保只部署经过可信授权方签名的容器镜像,降低运行恶意代码风险。
——TagVault.org
软件标签注册和认证机构(社区),为软件发布商提供生成满足CPE及SWID标准的软件认证标签工具,并对认证标签进行数字签名,确保数据权威性,任何查看标签数据的人均可验证数据的来源,以满足ISO/IEC19770-2:2015标准要求。
3、国内情况——标准
GB/T 36637-2018《信息安全技术ICT供应链安全风险管理指南》,中国电子技术标准化研究院、中科院软件所、联想、华为、蚂蚁金服、阿里、京东、浪潮等单位起草。
GB/T 22239-2019《信息安全技术信息系统安全等级保护基本要求》对软件采购、供应商选择、资产管理、外包软件开发、漏洞与风险管理、移动app来源及开发者实名签名等提出要求。
GB/T 39786-2021《信息安全技术信息系统密码应用基本要求》宜采用密码技术对重要可执行程序进行完整性保护,并对其来源进行真实性验证。
T/ZSA 3001.01-2016《企业移动智能终端应用开发、安装、运行管控机制指南》规范企业App开发者审核、软件开发、软件审核与检测、软件签名及验证、软件发布、软件安装及运行监管等过程。
T/ZSA 37-2020《移动智能终端密码技术政企应用指南》提出移动App双签名与验证机制。
中关村网络安全与信息化产业联盟、中关村标准化协会2016年发布T/ZSA 3001.01-2016《企业移动智能终端应用开发、安装、运行管控机制指南》。
标准规定了企业移动应用软件(App)开发者审核、软件开发、软件审核与检测、软件签名及验证、软件发布、软件安装及运行监管等过程,为移动智能终端厂商、应用开发者、企业应用软件服务商实施企业移动应用软件(App)资产生命期管理提供指南。
中关村网络安全与信息化产业联盟、中关村标准化协会发布T/ZSA 37-2020《移动智能终端密码技术政企应用指南》。标准提供了移动智能终端App双签名与验证机制,为政府、企事业单位开展移动应用软件管控提供代码签名指导。
App开发者签名:App开发者使用其在官方机构(App分发渠道)登记的私钥对其开发的App进行数字签名。由于数字签名可保证签名数据完整性,数字签名不可抵赖性保证了App软件责任可溯源。
官方机构(App分发渠道)签名:官方机构(App分发渠道)使用自己的私钥对开发者签名的App进行二次签名,仍保持App开发者签名的有效性,即“双签名”。采用双签名机制保证App是经过官方机构安全审核、检测的,防止恶意App传播,进一步降低App安全风险。

4、实名计算(Real-Named Computing)理论
2010年清华大学研究提出。
哲学指导:网络空间与现实空间是映射的、趋同的。现实空间主体——人的社会活动需要实名,网络空间主体——软件运行也一定需要实名。
网络安全事实:软件定义一切,软件破坏一切。软件不管控,网络无宁日。
定义:计算机系统运行软件时要确认软件的真实责任者。这样的计算称实名计算(Real-Named Computing)。
形式化:

——实名计算模型
图灵实名计算
  • 带标签图灵机(Identified Turing Machine,ITM)

  • 选择模拟通用图灵机(Selected Simulating Universal Turing Machine,SSUTM)

由图灵机理论可知,对于定义5的3带图灵机SSMT,存在一个单带图灵机ITMU与之等价,称ITMU为选择模拟通用图灵机(Selected Simulating Universal Turing Machine,SSUTM)。显然SSUTM和原始图灵机等价。
  • 安全的选择模拟通用图灵机(S-SSUTM)
定义6一个通用图灵机,它可确定ITM M1,M2,…Mn编码被修改,且非ITM不能在其上模拟,称这个通用图灵机是安全的。
定理1一个通用图灵机是安全的,当且仅当其等价的3带图灵机转换规则是SSTM转换规则。
基于SSUTM的冯·诺依曼计算模型
可信Cyber空间软件控制模型TCSCM
5、实名计算技术
6、实名计算工程体系
7、实名计算应用研究实践——“软件入伍”模型(Software-Enrollment Machine)
  • 基本功能:
1)软件注册;
2)软件发布;
3)软件下载;
4)软件远程认证;
5)软件本地验证;
6)注册软件删除;
7)增加注册软件;
  • 密码管理:
软件签名证书体系
软件签名证书发放
接受SRC、SAC、SEU用户的证书申请、审核、签发、发布、证书撤消申请以及CRL的签发和发布。
密钥管理
8、实名计算与SE、CS、TC的关系,如下图所示:
9、政企软件管理平台(Government Enterprise Application Platform)
作用:
(1)依据网络安全等级保护2.0、信息系统密码应用国家标准;
(2)为企事业单位提供APP开发者审核、安全开发、安全检测、数字签名、运行管理APP资产全生命期管理服务;
(3)保证政企APP合规、安全、高品质、责任可追溯
APP国密签名:
对APP进行国密算法多重代码签名与验证的功能模块,包含提供给开发者的签名工具、平台使用的自动签名服务和SDK、平台和手机系统可用的验证签名SDK和DEMO、文档等。APP国密签名。

GEAP安全移动终端:GEAP移动终端只运行GEAP平台安全审核及签名的App。

发展方向:
*本文内容根据作者PPT整理



编辑:辰十九

审核:商密君

征文启事

大家好,为了更好地促进同业间学术交流,商密君现开启征文活动,只要你对商用密码、网络安全、数据加密等有自己的独到见解和想法,都可以积极向商密君投稿,商密君一定将您的声音传递给更多的人。

点击购买《2020-2021中国商用密码产业发展报告》

来源:商密在线

注:内容均来源于互联网,版权归作者所有,如有侵权,请联系告知,我们将尽快处理。



点分享点点赞点在看
继续滑动看下一个
商密君
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存