软件供应链安全与人员角色
1. 设备安全性基础措施
- 固件公钥基础设施(PKI) :设备保护的基础始于使用固件公钥基础设施(PKI)对固件和嵌入式软件进行数字签名。若没有代码签名,恶意行为者可以在不被察觉的情况下替换嵌入式软件或固件映像。许多物联网设备由于启动时验证签名的架构要求或缺乏固件签名基础设施,存在未签名的固件。组织应实施固件签名实践,并要求所购产品的固件已签名。
- 硬件信任根 :对于物联网和运营技术(OT)设备,硬件信任根是制造商可利用的另一种方法。例如硬件可信平台模块(TPM),它符合国际标准ISO/IEC 11889,包含用于加密功能的密钥,可实现安全启动过程。不过,硬件信任根在制造过程中需要专门设计的测试接口和流程来验证其完整性。
- 安全启动 :现代计算机大多采用统一可扩展固件接口(UEFI)标准,取代了原设备制造商(OEM)的基本输入输出系统(BIOS)。安全启动是UEFI的一项安全功能,通过维护经过加密签名的授权或禁止二进制文件列表,为预启动过程增加一层保护。但由于UEFI的广泛采用,它也成为了热门的攻击面。
- 安全元件 :安全元件是一种芯片或组件,旨在防止未经授权的访问、运行有限的应用程序并存储加密和机密数据。它以SIM卡、智能卡、微型SD卡或芯片的形式应用于手机、平板电脑、硬件加密钱包、可穿戴设备和其他物联网设备中,保护应用程序和数据免受恶意软件攻击。
- 设备认证 :IT、物联网和OT设备可通过安全功能证明自身的真实性,确保只有授权设备才能连接到特定网络、服务或站点。设备认证是零信任架构的基本要求,应与强用户认证一同实施。
| 安全措施 | 描述 |
|---|---|
| 固件公钥基础设施(PKI) | 使用PKI对固件和嵌入式软件进行数字签名,防止恶意替换 |
| 硬件信任根 | 如TPM,包含加密密钥,实现安全启动,需专门测试接口 |
| 安全启动 | UEFI的安全功能,维护授权或禁止二进制文件列表 |
| 安全元件 | 防止未经授权访问,存储加密和机密数据 |
| 设备认证 | 证明设备真实性,确保授权连接 |
graph LR
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
A(设备):::process --> B(固件公钥基础设施):::process
A --> C(硬件信任根):::process
A --> D(安全启动):::process
A --> E(安全元件):::process
A --> F(设备认证):::process
2. 人员在软件供应链安全中的角色
- 人员因素的重要性 :在软件供应链安全中,人始终是最薄弱的环节。人们负责系统设计、代码编写和产品发布。不同的框架如NIST SSDF、ISA/IEC 62443 - 4 - 1 SDL和NERC CIP提供了降低风险的要求和控制措施,组织应持续执行这些实践和控制。
- 建立安全组织 :组织应建立并维护一个由经验丰富、训练有素的网络安全人员组成的企业安全组织,鼓励员工获得认证和持续学习。
- 安全倡导者计划 :通过创建安全倡导者计划,可以扩大安全组织的影响力。安全倡导者来自各个职能团队,充当安全与职能团队之间的联络人,促进合作与沟通。组织应识别对网络安全有兴趣的人员,提供基础和高级培训,并设计内部认证或徽章来激励他们。
- 网络安全意识和培训 :网络安全意识和培训内容丰富,免费材料可从多个渠道获取。一个强大的培训计划应包括对社会工程攻击的培训,如钓鱼攻击、语音钓鱼、短信钓鱼等。许多公司要求员工每年参加特定培训,并可购买钓鱼培训工具来测试员工的安全意识。
| 攻击类型 | 描述 |
|---|---|
| 钓鱼 | 模仿可信来源的电子邮件,包含恶意链接或附件,广泛发送 |
| 鱼叉式钓鱼 | 针对特定个人的钓鱼邮件,使用个人信息 |
| 语音钓鱼 | 语音电话,旨在收集机密信息 |
| 短信钓鱼 | 包含恶意链接的短信,收集机密信息 |
| 电子邮件或短信黑客攻击 | 冒充目标,获取电子邮件或电话号码控制权 |
| URL仿冒 | 拥有类似拼写或隐藏字符的URL,模仿可信网站 |
| 借口诈骗 | 通过编造场景收集机密信息 |
| 恐吓软件 | 推送弹出窗口或通知,吓唬用户采取行动 |
| 尾随进入(物理入侵) | 未经授权的人员跟随授权人员进入受限区域 |
| 以物易物 | 用某物交换另一物,如用破解的许可证换钱 |
| 深度伪造 | 使用人工智能创建虚假的视频、图片或音频 |
| 虚假信息 | 故意发布虚假信息以欺骗接收者 |
graph LR
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
A(人员):::process --> B(建立安全组织):::process
A --> C(安全倡导者计划):::process
A --> D(网络安全意识和培训):::process
3. 开发团队的安全措施
- 持续培训的必要性 :尽管部分大学计算机科学课程已加入网络安全内容,但这些课程往往并非必修,且可能与实际应用脱节。开发团队应接受年度培训和继续教育,以跟上工具、安全功能和漏洞的变化。
- 安全开发生命周期(SDL) :SDL是一套确保软件具备最低安全水平的原则。ISA/IEC 62443 - 4 - 1和NIST SSDF是两个著名的SDL指南。SDL培训不仅针对软件开发人员,还应涵盖所有对产品或应用负责的人员,包括管理层。培训应根据软件的特定用例进行设计,涵盖安全编码、测试、代码审查等方面。
- 源代码管理 :保护源代码是开发和运营团队的首要任务之一。应使用能够记录、跟踪和撤销源代码文件活动的工具,并监控用户活动。开发团队成员应接受源代码管理的特定政策和程序培训,包括代码上传、访问控制、数据分类、知识产权保护和开源代码管理等。
- DevSecOps和云安全 :DevSecOps是一种新兴的方法,将安全作为核心软件工程活动和产品发布要求。云安全和DevSecOps培训资源丰富。
| 培训内容 | 描述 |
|---|---|
| 安全开发生命周期(SDL) | 遵循ISA/IEC 62443 - 4 - 1和NIST SSDF指南,涵盖设计、编码、测试等环节 |
| 源代码管理 | 使用记录工具,监控用户活动,培训团队成员特定政策和程序 |
| DevSecOps和云安全 | 新兴方法,将安全融入开发和运营,有丰富培训资源 |
graph LR
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
A(开发团队):::process --> B(持续培训):::process
A --> C(安全开发生命周期):::process
A --> D(源代码管理):::process
A --> E(DevSecOps和云安全):::process
综上所述,软件供应链安全需要从设备层面的基础安全措施到人员层面的安全意识和技能提升等多方面的保障。组织应综合运用各种安全手段,确保软件和产品在整个生命周期内的安全性。
软件供应链安全与人员角色(续)
4. 各安全措施的协同作用
在软件供应链安全中,设备层面的各项安全措施以及人员相关的安全举措并非孤立存在,而是相互协同、共同发挥作用。
- 设备安全措施的协同 :固件公钥基础设施(PKI)为固件和嵌入式软件提供数字签名,确保其完整性,这是设备安全的基础。硬件信任根如TPM包含加密密钥,实现安全启动,为系统的启动过程提供了安全保障。安全启动通过UEFI的安全功能,维护授权或禁止二进制文件列表,进一步防止恶意固件的加载。安全元件则保护应用程序和数据免受恶意软件攻击,与其他设备安全措施共同构建了一个多层次的安全防护体系。设备认证确保只有授权设备才能连接到特定网络、服务或站点,将设备的安全性延伸到网络层面。
| 安全措施 | 协同作用 |
|---|---|
| 固件公钥基础设施(PKI) | 为硬件信任根和安全启动提供签名基础,确保固件和软件的合法性 |
| 硬件信任根 | 支持安全启动过程,保障系统启动的安全性,与PKI共同验证固件 |
| 安全启动 | 与PKI和硬件信任根协同,防止恶意固件加载,结合设备认证限制非法设备启动 |
| 安全元件 | 保护设备内的数据和应用,与其他措施共同抵御恶意软件攻击 |
| 设备认证 | 与其他设备安全措施配合,确保授权设备在安全环境下连接和运行 |
graph LR
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
A(固件公钥基础设施):::process --> B(硬件信任根):::process
A --> C(安全启动):::process
B --> C
C --> D(安全元件):::process
A --> D
B --> D
A --> E(设备认证):::process
B --> E
C --> E
D --> E
- 人员安全举措的协同 :建立安全组织为整个软件供应链安全提供了管理和决策的核心力量。安全倡导者计划则将安全意识和实践推广到各个职能团队,促进了组织内的安全文化建设。网络安全意识和培训提高了全体员工的安全素养,使他们能够识别和防范各种安全威胁。开发团队的安全措施,如持续培训、SDL、源代码管理和DevSecOps等,确保了软件的开发过程是安全的。这些人员相关的安全举措相互配合,形成了一个全面的人员安全保障体系。
| 人员安全举措 | 协同作用 |
|---|---|
| 建立安全组织 | 制定安全政策和战略,指导安全倡导者计划和培训工作 |
| 安全倡导者计划 | 传播安全知识,促进各团队与安全组织的沟通,推动安全措施的实施 |
| 网络安全意识和培训 | 提高员工的安全意识和技能,为开发团队和其他人员提供安全基础 |
| 开发团队安全措施 | 确保软件的安全开发,与其他人员安全举措共同保障软件供应链的安全 |
graph LR
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
A(建立安全组织):::process --> B(安全倡导者计划):::process
A --> C(网络安全意识和培训):::process
A --> D(开发团队安全措施):::process
B --> C
B --> D
C --> D
5. 实施建议与最佳实践
为了有效地保障软件供应链的安全,需要在设备安全和人员安全方面采取一系列的实施建议和最佳实践。
-
设备安全实施建议
- 全面实施固件签名 :组织应确保所有生产的设备都采用固件公钥基础设施(PKI)进行数字签名,并要求所购产品的固件也已签名。
- 合理部署硬件信任根 :对于物联网和OT设备,制造商应积极采用硬件信任根技术,如TPM,并确保其测试接口和流程的安全性。
- 启用安全启动功能 :在支持UEFI的设备上,应启用安全启动功能,维护授权和禁止二进制文件列表,防止恶意固件加载。
- 广泛应用安全元件 :在各类物联网设备中,应广泛应用安全元件,保护应用程序和数据的安全。
- 严格执行设备认证 :实施设备认证机制,确保只有授权设备才能连接到特定网络、服务或站点。
-
人员安全实施建议
- 建立专业安全组织 :组织应建立一个由经验丰富、训练有素的网络安全人员组成的企业安全组织,并鼓励员工获得相关认证和持续学习。
- 推广安全倡导者计划 :识别对网络安全有兴趣的人员,建立安全倡导者计划,提供基础和高级培训,设计内部认证或徽章激励他们。
- 加强网络安全培训 :提供全面的网络安全意识和培训,包括对社会工程攻击的培训,并定期测试员工的安全意识。
- 规范开发团队流程 :开发团队应接受持续培训,遵循安全开发生命周期(SDL)原则,加强源代码管理,采用DevSecOps方法。
| 实施领域 | 建议内容 |
|---|---|
| 设备安全 | 全面实施固件签名、合理部署硬件信任根、启用安全启动功能、广泛应用安全元件、严格执行设备认证 |
| 人员安全 | 建立专业安全组织、推广安全倡导者计划、加强网络安全培训、规范开发团队流程 |
graph LR
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
A(设备安全):::process --> B(实施建议):::process
C(人员安全):::process --> B
通过以上对软件供应链安全中设备安全和人员安全的分析,我们可以看到,保障软件供应链的安全需要从多个层面入手,综合运用各种安全措施,并确保这些措施之间的协同作用。同时,遵循实施建议和最佳实践,能够有效地降低软件供应链的安全风险,为组织的业务发展提供可靠的保障。
超级会员免费看
1928

被折叠的 条评论
为什么被折叠?



