博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NIST 按行政令关于加强软件供应链安全的要求,给出“关键软件”的定义及所含11类软件...
阅读量:4114 次
发布时间:2019-05-25

本文共 1836 字,大约阅读时间需要 6 分钟。

 聚焦源代码安全,网罗国内外最新资讯!

专栏·供应链安全

数字化时代,软件无处不在。软件如同社会中的“虚拟人”,已经成为支撑社会正常运转的最基本元素之一,软件的安全性问题也正在成为当今社会的根本性、基础性问题。

随着软件产业的快速发展,软件供应链也越发复杂多元,复杂的软件供应链会引入一系列的安全问题,导致信息系统的整体安全防护难度越来越大。近年来,针对软件供应链的安全攻击事件一直呈快速增长态势,造成的危害也越来越严重。

为此,我们推出“供应链安全”栏目。本栏目汇聚供应链安全资讯,分析供应链安全风险,提供缓解建议,为供应链安全保驾护航。

注:以往发布的部分供应链安全相关内容,请见文末“推荐阅读”部分。

美国当地时间2021年5月12日,总统拜登发布关于增强国家网络安全的第14028号行政令(EO),要求美国商务部下属机构国家标准技术局 (NIST) 在行政令发布45天内,给出“关键软件”的定义。

当地时间6月24日,NIST 发布了该定义并给出了隶属于“关键软件”的初步软件分类。NIST 指出,关于按照行政令应用该定义的其它指南由关键基础设施安全局(CISA)和管理预算办公室 (OMB) 发布,CISA 将发布在初步和未来执行行政令所需的最终软件分类。

NIST 发布的这份文档首先介绍了关于“关键软件(critical software)“中”关键“的定义,其次介绍了”关键软件“的定义,最后给出了属于该定义的初步软件分类以及相关问答。

“关键”的定义

NIST 指出,现在已有很多关于“关键”一词的定义和用法,不过它们大多基于技术如何支持多种任务或进程,如“安全关键”或“关键的基础设施”这些词语。而行政令中使用的“关键”一词稍有不同,因为它并非基于用法的上下文,而是基于既定软件的属性使其在多数情况下是“关键“的。即,它关注的是解决网络操作和安全的底层基础设施的关键功能。

NIST 指出,为了区分常见的“关键“用法以及行政令中的定义,文档中使用”EO-关键“来区分可能引起歧义的情况。

“关键软件”的定义

NIST 文档指出,“EO-关键软件”指的是具有如下特点的任意软件:拥有一个或多个组件且组件具备以下至少一种属性,或者拥有直接的软件依赖关系且该依赖关系所依赖的组件具备以下至少一种属性:

  • 组件旨在以提升后的特权运行或者旨在管理特权;

  • 具有对网络或计算资源的直接或特权访问权限;

  • 旨在控制对数据或运营技术的访问权限;

  • 执行信任关键功能;或者

  • 以特权访问权限在正常信任边界以外操作。

其中,“信任关键”涵盖了用于安全功能的软件类别,如网络控制、端点安全和网络防护。该定义适用于所购买或部署在生产环境和用于操作目的的所有形式的软件(如独立软件、某具体设备或硬件组件包含的软件、云软件)。其它使用情况如仅用于研究或测试、未部署到生产系统种的软件并不在涵盖在内。

NIST提到“关键软件”的定义关注的是软件的功能而非用途,因此各机构不能根据软件的用途来判定是否为“EO-关键软件”。

NIST 在文档种特别提到,如果开源软件执行的功能符合“EO-关键”的定义,则属于“EO-关键”软件。在实践中,开源软件通常集成在其它产品中。在这种情况下,产品开发人员认为开源组件是自身开发流程中的一部分。在其它情况下,开源软件是一种独立产品。在这种情况下,行政令的要求仍然适用。

所含11类软件

NIST 建议行政令的初步实现阶段主要关注具有安全关键功能的软件,或者如遭攻陷会造成类似潜在重要损害的软件。之后的实现阶段可解决其它软件类别,如:

  • 控制数据访问权限的软件;

  • 基于云的软件和混合软件;

  • 软件开发工具如代码仓库系统、开发工具、测试软件、集成软件、封装软件和部署软件;

  • 引导层固件种的软件组件;或

  • 运营技术(OT)中的软件组件。

NIST 给出的属于“关键软件”的初步软件类别如下,共11类。

完整文档可见:https://www.nist.gov/system/files/documents/2021/06/25/EO%20Critical%20FINAL_1.pdf


推荐阅读

题图:Pixabay License

奇安信代码卫士原创出品。转载请注明 “转自奇安信代码卫士 https://codesafe.qianxin.com”。

奇安信代码卫士 (codesafe)

国内首个专注于软件开发安全的

产品线。

    觉得不错,就点个 “在看” 或 "赞” 吧~

你可能感兴趣的文章
Linux系统编程——线程池
查看>>
Linux C++线程池实例
查看>>
shared_ptr的一些尴尬
查看>>
C++总结8——shared_ptr和weak_ptr智能指针
查看>>
c++写时拷贝1
查看>>
Linux网络编程---I/O复用模型之poll
查看>>
Java NIO详解
查看>>
在JS中 onclick="save();return false;"return false是
查看>>
idea 有时提示找不到类或者符号
查看>>
matplotlib.pyplot.plot()参数详解
查看>>
MFC矩阵运算
查看>>
ubuntu 安装mysql
查看>>
c# 计算器
查看>>
C# 简单的矩阵运算
查看>>
gcc 常用选项详解
查看>>
c++输出文件流ofstream用法详解
查看>>
firewalld的基本使用
查看>>
Linux下SVN客户端使用教程
查看>>
Linux分区方案
查看>>
nc 命令详解
查看>>