《安全历史第1讲——从故宫修建看软件物料清单的重要性》

故宫,这座中国传统文化的重要代表和象征性建筑已屹立近600年,是世界上现存规模最大、保存最为完整的木质结构古建筑之一

故宫之所以能至今保存完好,除持续保护和修缮外,其使用的木材和砖石等材料也经过了精挑细选,保证故宫的建筑更加坚固耐用。

别小看一截木头、一块砖,关键时刻烂掉可不是闹着玩儿的,一处损坏,可能将影响到整个大殿的安全性

因此,明成祖在修建故宫时实行了严格的“监工责任制”,包括总督、专督和监修三个层次。对于木料、石料等主要建材,都会采用严格的物料管理制度,选择质量上乘、质地坚固的材料。木材选择质地坚硬、耐腐蚀、抗变形的红杉、楠木、榉木、杉木等;石料选用优质的花岗岩,通过凿石、切割等工艺进行加工;屋顶采用质地坚硬的琉璃瓦覆盖,具有防水和防火的功能,以确保建筑的安全性和耐久性。

如今,软件开发也是堆砌一块块“木头和砖墙”的过程,建筑材料就像软件组件,经过程序员的妙手生花,按照一定逻辑关系组合成一款软件

在开源组件被广泛使用的今天,其潜藏的安全问题极易演变成软件供应链风险。主要原因是用户并不了解软件的组成成分,从而无法了解使用的软件是否受到漏洞的影响

为了解决这个问题,修建故宫时所使用的管理方法,又被拿了出来,软件物料清单SBOM应运而生

SBOM列出了软件中使用的“物料”,即组件和库,以及它们的版本和依赖关系。一旦发现漏洞,企业就可以对着这张“物料清单”,找出问题所在。

开源网安软件成分分析平台SourceCheck,就是这样一款具备SBOM物料清单的检测工具,可以帮助开发人员清晰看到每一块“砖木”的身份信息和漏洞传播链条,大幅减少风险排查时间成本,加快开发进程。

明成祖朱棣曾说:“天下之事,常成于慎始”,正是采用了谨慎的态度与做事方法,在每一块砖木质量上下功夫,建成的紫禁城才能至今屹立不倒,成为中华民族的一张响亮名片。同样,现代的软件开发,也应在早期阶段厘清每一部分组件和代码,提前挖掘出安全风险,才能保证软件上线后正常运行,为数字业务的发展提供强劲动力。

推荐阅读

面对开源许可证的隐患,如何做出明智选择?

SBOM那么重要,到底是怎么生成的?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/400680.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

仿12306校招项目-项目业务和架构

目录 业务图 用户管理 业务难点 1. 如何确定用户注册信息的真实性 2. 面对亿级用户量 3. 支持多种登录方式会造成读请求扩散,需要解决用户定位问题 4. 高并发场景下缓存穿透问题需要有效解决,避免数据库压力过大 5. 明文存储用户敏感信息会造成安…

js设计模式:委托者模式

作用: 一个对象可以将一些任务交给另外一个对象去执行,两者执行这个方法的结果是一致的 被委托者去替代委托者完成了某个功能,通常各种服务镜像就是这样的 示例: //npmconst npm {downModules(name){console.log(下载${name}依赖包)}}//mirrornpmconst mirrornpm {src:npm…

如何使用ArcGIS Pro生成等高线

无论在制图还是规划中,经常会使用到等高线,大多数情况下,从网上获取的高程数据都是DEM文件,我们可以通过ArcGIS Pro来生成等高线,这里为大家介绍一下生成方法,希望能对你有所帮助。 数据来源 教程所使用的…

IO 作业 24/2/21

1、使用多线程完成两个文件的拷贝&#xff0c;第一个线程拷贝前一半&#xff0c;第二个线程拷贝后一半&#xff0c;主线程回收两个线程的资源 #include <myhead.h> //定义分支线程1 void *task1(void *arg) {int fdr-1;//只读打开被复制文件if((fdropen("./111.txt…

【概率论与数理统计】

曾梦想执剑走天涯&#xff0c;我是程序猿【AK】 目录 简述概要知识图谱概率论1. 基本概念2. 随机变量3. 分布函数4. 期望与方差 数理统计1. 数据收集与整理2. 描述性统计3. 推断性统计4. 回归分析5. 方差分析 简述概要 概率论与数理统计基础知识 知识图谱 概率论 1. 基本概…

六大设计原则 (SOLID)

一、设计原则概述 古人云: 有道无术,术可求.有术无道,止于术. 而设计模式通常需要遵循一些设计原则,在设计原则的基础之上衍生出了各种各样的设计模式。设计原则是设计要求,设计模式是设计方案,使用设计模式的代码则是具体的实现。 设计模式中主要有六大设计原则,简称为SOL…

python 3D散点图

from mpl_toolkits import mplot3d import numpy as np import matplotlib.pyplot as plt#解决中文乱码和负号不显示问题 plt.rcParams[font.sans-serif] [SimHei] plt.rcParams[axes.unicode_minus] False fig plt.figure() ax plt.axes(projection3d)#构造3个散点向量x1[[…

【Flink集群RPC通讯机制(二)】创建AkkaRpcService、启动RPC服务、实现相互通信

文章目录 零. RpcService服务概述1. AkkaRpcService的创建和初始化2.通过AkkaRpcService初始化RpcServer3. ResourceManager中RPC服务的启动4. 实现相互通讯能力 零. RpcService服务概述 RpcService负责创建和启动Flink集群环境中RpcEndpoint组件的RpcServer&#xff0c;且Rpc…

CSS基础属性

【三】基础属性 【1】高度和宽度 &#xff08;1&#xff09;参数 width&#xff08;宽度&#xff09;&#xff1a;用于设置元素的宽度。可以使用具体的数值&#xff08;如像素值&#xff09;或百分比来指定宽度。 height&#xff08;高度&#xff09;&#xff1a;用于设置元…

小程序端学习

P2 创建Uni-app 分离窗口 一样的Ctrl S P3 细节知识点 创建新的小程序页面

设计模式浅析(六) ·命令模式

设计模式浅析(六) 命令模式 日常叨逼叨 java设计模式浅析&#xff0c;如果觉得对你有帮助&#xff0c;记得一键三连&#xff0c;谢谢各位观众老爷&#x1f601;&#x1f601; 命令模式 概念 命令模式&#xff08;Command Pattern&#xff09;是一种行为设计模式&#xff0c…

C#知识点-13(进程、多线程、使用Socket实现服务器与客户端通信)

进程 定义&#xff1a;每一个正在运行的应用程序&#xff0c;都是一个进程 进程不等于正在运行的应用程序。而是为应用程序的运行构建一个运行环境 Process[] pros Process.GetProcesses();//获取电脑中所有正在运行的进程//通过进程&#xff0c;直接打开文件//告诉进程&…

解决IDEA搜不到插件

File -> Settings -> Plugins https://plugins.jetbrains.com/ 完成以上操作即可搜到插件

小程序--组件通信

一、父传子 与vue利用props类似&#xff0c;小程序是利用自定义属性&#xff1a;properties // components/my-nav/my-nav.js Component({// 小程序组件默认样式是隔离&#xff0c;addGlobalClass设置为true可允许外部修改样式options: {addGlobalClass: true,// 只要使用到具…

面试经典150题——生命游戏

​"Push yourself, because no one else is going to do it for you." - Unknown 1. 题目描述 2. 题目分析与解析 2.1 思路一——暴力求解 之所以先暴力求解&#xff0c;是因为我开始也没什么更好的思路&#xff0c;所以就先写一种解决方案&#xff0c;没准写着写…

OJ链接——打印从1到最大的n位数

目录 1. 题目描述2. 示例3. 分析思路4. 完整代码 1. 题目描述 输入数字 n&#xff0c;按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3&#xff0c;则打印出 1、2、3 一直到最大的 3 位数 999。 用返回一个整数列表来代替打印n 为正整数&#xff0c;0 < n < 5 链接在…

mac m1调试aarch64 android kernel最终方案

问题 这是之前的&#xff0c;调试android kernel的方案还是太笨重了 完美调试android-goldfish(linux kernel) aarch64的方法 然后&#xff0c;看GeekCon AVSS 2023 Qualifier&#xff0c;通过 sdk-repo-linux_aarch64-emulator-8632828.zip 进行启动 完整编译的aosp kernnl…

Code-Audit(代码审计)习题记录4-5

4、习题4 题目内容如下&#xff1a; <?php error_reporting(0); show_source(__FILE__); $a $_REQUEST[hello]; eval("var_dump($a);"); 函数解释 $REQUEST — HTTP Request 变量&#xff0c;默认情况下包含了 [$GET]&#xff0c;[$POST] 和 [$COOKIE]的数…

Git合并固定分支的某一部分至当前分支

在 Git 中&#xff0c;通常使用 git merge 命令来将一个分支的更改合并到另一个分支。如果你只想合并某个分支的一部分代码&#xff0c;可以使用以下两种方法&#xff1a; 1.批量文件合并 1.1.创建并切换到一个新的临时分支 首先&#xff0c;从要合并的源分支&#xff08;即要…

S281 LoRa网关助力智慧城市建设的智能交通管理

S281 LoRa网关作为智慧城市建设中的重要组成部分&#xff0c;发挥着关键的作用&#xff0c;特别是在智能交通管理方面。通过连接各类传感器设备和物联网终端&#xff0c;S281 LoRa网关实现了对城市交通系统的远程监控、智能调度和信息化管理&#xff0c;为城市交通管理部门提供…