供应链安全这件事,早就被朱元璋玩明白了
The following article is from 奇安信集团 Author 安全叨客
第 22 叨
如果城墙裂开一道缝,怎么才能知道是谁烧制的城砖有质量问题呢?
公元1356年,朱元璋所率领的义军在打败元朝水军后,顺利攻占了集庆,也就是后来的明朝应天府(今江苏南京),从此有了一块比较稳定的根据地。
然而在看到同为元末义军代表的陈友谅、张士诚等纷纷称王时,朱元璋却采用了谋士朱升的“高筑墙、广积粮、缓称王”九字真言,最终一统华夏。
作为九字真言的第一条,“高筑墙”被朱元璋玩出了新花样。
01
对于修城墙这件事情,朱元璋一直非常上心。为此,他下令征集了大量所辖区域内的民工制坯烧造城砖。
那些年,朱元璋所辖的各府、州、县到处可以看到人们取土制坯的繁忙景象,还有遍布各地密集的砖窑冒着滚滚浓烟烧砖的情景。
数百万的城砖被集中运到应天府,难免不出现“以次充好”的现象。
别小看一块破砖,关键时候碎裂烂掉可不是闹着玩的,搞不好整个墙体都得倒塌。
当时强敌环伺,容不得老朱半点马虎。
所以朱元璋采纳了一个办法:
实行严格的责任制,除制定了城砖的大小尺寸外,还要求各地在城砖上烧制出府、州、县、总甲、甲首、小甲和制砖人夫、窑匠等至少5至6级责任人,最多达9级责任人的名字。
如此一来,谁负责的砖出了质量问题,从烧砖的民工到负责验收的官员,通通追责到底。
正是这样看起来十分严苛的制度,成就了南京明城墙“世界第一城墙”的美誉。沐风栉雨六百多年,仍然坚固雄伟,墙体保存十分完好。
而那些烧砖人的名字,也跟随明城墙一道,在历史的长河中留下了浓墨重彩的一笔,与日月同辉。时至今日,去南京旅游的朋友依然能在城砖上看到密密麻麻的铭文。
02
说起修城墙,现如今有一件事情跟它非常类似,软件开发也是堆砌一块块“墙砖”的过程:不同功能的软件模块在程序员的手中,按照一定的逻辑关系最终被组合成一款软件。
尤其是在开源软件大行其道的今天,这样的“组合式”开发过程更加受到欢迎。
一群极客将自己开发的软件模块公开在在技术社区上分享,其他人在开发软件的过程中如果需要类似的功能,便可以直接拿过来使用,“拼接”在自己要开发的软件中,就和拼积木一样。
不过与看得见摸得着的城砖不同的是,一块城砖只能用于城墙的某一处,而一个软件功能模块,可以被开发者应用于多个不同的软件产品中,并随之进入到最终用户的IT系统内部。
所以与修城墙相比,软件供应链渠道更加复杂:
一个主流的组件,被全世界上亿的用户使用也不足为奇。而每一个用户,也可能正在使用着上万个软件组件。
于是,软件供应链安全问题就产生了。工程师写的每一个漏洞时,都会随着软件供应链流入到最终用户手里。如果一个主流的软件组件出现漏洞,影响的用户数量将会十分巨大。
比如2021年底曝出的Apache Log4j2漏洞,据估计当时90%以上基于java开发的应用平台都会受到影响。就像去年3·15“被迫出名”的酸菜,不知道被用在了多少包老坛酸菜方便面里。
所以,软件供应链安全问题的危害,就是具备“攻其一点,打击一片”的特点,利用一个上游软件组件的漏洞,就可以攻破多个系统。对攻击者来说,直接在“水源”处投毒,要比进入每家每户投毒高效得多。
根据奇安信代码安全实验室的监测结果显示,2021年新增的开源软件漏洞达到6346个,典型缺陷的总体检出率为73.5%,远高于2020年的56.3%。
唯一不确定的只不过是漏洞是否已经被人发现、是不是已经被人利用了而已。
既然漏洞不能避免,能做的就是在漏洞出现之后,第一时间消除它。
那么问题来了,如果一个软件组件被曝出有漏洞,作为最终用户怎么知道这个漏洞会不会影响到自己的IT系统呢?
03
需要注意的是,软件供应链安全问题之所以越来越严峻,很重要的一个原因就是用户并不了解软件的组成成分,从而无法正确了解自己使用的软件是否受到漏洞的影响。
就连手机上天天使用的各类软件,恐怕也没几个人知道这些软件的背后到底使用了哪些模块。
为了解决这个问题,六百多年前朱元璋修城墙的方法,又被拿了出来。
这个方法在这里被称为软件物料清单(SBOM)。
所谓的SBOM,简单理解就是将软件所使用的各类组件与供应商进行一一对应的表格,有点类似于食品的配料表。
SBOM的最大意义就在于将软件供应链透明化,让用户知道所使用的软件到底使用了哪些“配料”。毕竟软件不能像城砖一样,刻上工匠和监工官员的姓名。
而一旦有发现漏洞,用户就可以对着SBOM,看到自己是否使用了包含漏洞的组件,并找到漏洞所在组件的供应商,从而寻求消除漏洞影响的解决办法。
围绕SBOM的具体使用,奇安信代码安全实验室提出了三个层面的建议。
首先在监管层面,有关部门应牵头制定标准,要求软件供应商在交付软件系统的同时,向用户交付SBOM,同时明确SBOM中应当包含哪些信息,以保持足够的透明性。
其次在软件供应商层面,产品正式发布时,应提取和生成产品的软件物料清单(SBOM),并随软件向客户提供。同时持续监测相关安全漏洞等风险情况,并及时为客户提供相应的技术支持服务。
最后在用户层面,在购买软件产品或委托定制开发软件系统时,应要求供应商提供SBOM,并使用合适的检测工具(如奇安信开源卫士)验证SBOM中所提供的数据是否正确,一旦发现安全风险,应基于SBOM和风险信息,及时采取安全措施,消除相关安全风险。
当然,想要全面消除软件供应链所带来的网络安全隐患,单靠一个SBOM还是远远不够的。
奇安信代码安全实验室认为,SBOM应当作为软件供应链安全的抓手首先推进落地,牵引软件供应链上下游各个环节的协同,在此基础之上再采取更多举措逐步深化,实现软件供应链安全保障的目标。
从这个角度上来说,六百多年前的朱元璋,算是玩明白了。
奇安信总裁吴云坤:构建四大关键能力 体系化治理软件供应链安全
速修复!这个严重的 Apache Struts RCE 漏洞补丁不完整
Apache Cassandra 开源数据库软件修复高危RCE漏洞
Apache Log4j任意代码执行漏洞安全风险通告第三次更新
PHP包管理器Composer组件 Packagist中存在漏洞,可导致软件供应链攻击
美国政府发布关于“通过软件安全开发实践增强软件供应链安全”的备忘录(全文)
OpenSSF发布4份开源软件安全指南,涉及使用、开发、漏洞报告和包管理等环节
美国政府发布联邦机构软件安全法规要求,进一步提振IT供应链安全
Apache开源项目 Xalan-J 整数截断可导致任意代码执行
Linux和谷歌联合推出安全开源奖励计划,最高奖励1万美元或更多
开源软件 LibreOffice 修复多个与宏、密码等相关的漏洞
Juniper Networks修复200多个第三方组件漏洞
PyPI 仓库中的恶意Python包将被盗AWS密钥发送至不安全的站点
开源项目 Parse Server 出现严重漏洞,影响苹果 Game Center
奇安信开源软件供应链安全技术应用方案获2022数博会“新技术”奖
热门PyPI 包 “ctx” 和 PHP库 “phpass” 长时间未更新遭劫持,用于窃取AWS密钥
趁机买走热门包唯一维护人员的邮件域名,我差点发动npm 软件供应链攻击
和GitHub 打官司?热门包 SheetJS出走npmjs.com转向自有CDN
不满当免费劳力,NPM 热门库 “colors” 和 “faker” 的作者设无限循环
NPM流行包再起波澜:维护人员对俄罗斯用户发特定消息,谁来保证开源可信?
200多个恶意NPM程序包针对Azure 开发人员,发动供应链攻击
NPM 修复两个严重漏洞但无法确认是否已遭在野利用,可触发开源软件供应链攻击
热门NPM库 “coa” 和“rc” 接连遭劫持,影响全球的 React 管道
速修复!热门npm 库 netmask 被曝严重的软件供应链漏洞,已存在9年
Pwn2Own大赛回顾:利用开源服务中的严重漏洞,攻陷西部数据My Cloud PR4100
热门开源后端软件Parse Server中存在严重的 RCE ,CVSS评分10分
分享
收藏
点赞
在看
奇安信代码卫士 (codesafe)
国内首个专注于软件开发安全的产品线。