《基于软件物料清单的平台工程安全思考丨平台工程技术大会.pdf》由会员分享,可在线阅读,更多相关《基于软件物料清单的平台工程安全思考丨平台工程技术大会.pdf(34页珍藏版)》请在三个皮匠报告上搜索。
1、基于软件物料清单的平台工程安全思考韩春雷|安易科技创始人兼CEO020304平台工程中的软件物料风险分析平台工程软件物料安全治理方法论平台工程软件物料风险治理实践01公司背景简介公司背景介绍专注于云原生安全领域,提供基于智能自学习的云原生安全解决方案。自主研发AneSec云原生安全管理平台,为云原生应用全生命周期提供识别、检测、防护、响应的闭环安全检测与防护能力。公司定位公司优势融合团队,云+安全专家国内唯一具有20+年云计算与安全融合经验的团队,对内核、虚拟化Hypervisor、Container底层有深入理解;具有参与过2022年冬奥重保,20202022年多次HW经验的专家及安全服务人
2、员,参与安全能力开发及安全运营工作。技术领先,从容器底层解决问题 公司自主知识产权的云原生安全产品采用无损非侵入采集方案,安全检测基于Kubernetes的原生安全策略引擎技术;国内首家提出并实现了KSPM(K8S安全态势管理);国内首家基于内核eBPF技术实现入侵检测与云原生容器防火墙。国内首家实现云原生东西向流量网络可观测性。云计算及安全厂商全面合作成为AWS、百度云、阿里云、道客云、云轴、谐云、奇安信等云厂商和安全厂商合作伙伴。多行业大规模实际落地实践在运营商、金融、互联网、高端制造等行业具有多个数千节点的实际部署案例,获得了行业客户的高度认可。公司获得的产品资质及荣誉软著专利行业标准生
3、态认证行业荣誉020304平台工程中的软件物料风险分析平台工程软件物料安全治理方法论平台工程软件物料风险治理实践01公司背景简介软件供应链及软件物料清单“软件供应链”是用于构建软件应用程序的组件、库和工具的集合。软件供应商通常通过组装开源和商业软件组件来开发产品。软件物料清单(SBOM)声明了该供应链的部分或大部分。Wikipedia6传统制造/销售原料/零件工厂仓储/零售消费者自研代码/外部依赖构建系统制品仓库软件开发/部署运行环境软件供应链安全事件 形势日益严峻7“By 2025,45%of organizations worldwide will have experienced att
4、acks on their software supply chains,a three-fold increase from 2021.”2022202182017FossHubKeydnapKingslayerFoxif/CCleanerHandbrakeElmediaacroreadColourama来源:https:/ AgamaPEARCanonicalPyPI typosquattingSolarWindsnpm installerROSsonarqubenodejsoctupusTravis CISawFishPHPNissanSITAXcodeCodeco
5、vKaseyaLog4jNntendo WiicoarcGoDaddyTwitchSshiSwapBangkok AirwaysSyniverseua-parser-jsVSCodenpm colorsnpm fakernode ipc软件供应链安全问题 开源软件风险应用程序不再是从零开始编写,第三方组件被大量使用并组装到应用程序中应用程序中有60%-80%是开源代码*开源组件被广泛使用,提高了开发人员的效率,加快了软件开发迭代速度,但也带来了更多的安全风险安全漏洞License合规版本陈旧/停止维护98%的软件包含开源代码。其中84%包含至少一个漏洞,平均漏洞数量是1582.2万亿开源组件下
6、载数量2021年增长73%,总下载次数达到了2.2万亿次650%相比2020年,2021年针对开源软件的供应链攻击增长650%630万四大开源生态(Java、JavaScript、Python、.NET)2021年发布了72万个新项目和630万个新版本来源:2021 Open Source Security and Risk Analysis Report-SynopsysA.提交有风险的代码B.破坏代码仓库C.编译篡改过的代码D.污染构建环境E.使用有问题的依赖F.发布被篡改的包G.破坏软件包仓库H.使用被篡改的软件包9软件供应链安全问题 开发流程及工具链风险来源:Google SLSA F
7、ramework,Supply chain Levels for Software ArtifactsDeveloperSourceBuildDependenciesPackageConsumerABCDEFGHBUILD INTEGRITYSOURCE INTEGRITY软件供应链安全是一个全链路问题软件供应链安全涉及软件开发的原材料、产出物以及进行软件开发的工具平台、流程等多个层面的安全软件供应链安全需要组织对代码开发、构建发布、依赖及制品管理、部署分发等过程进行严格的安全管控代码仓库构建系统制品仓库运行环境危害代码仓库污染构建环境危害制品仓库密码/秘钥泄露篡改代码篡改发布包绕过CI流程使
8、用被篡改的软件包不安全的部署配置使用有问题的外部依赖恶意代码提交自研代码漏洞不安全的构建/部署模板IaC基于网络访问、开发环境隔离等相关层面差异:国外同时关注原材料、产出物及工具平台、交互流程的安全性国内目前重点关注原材料与产出物11软件供应链安全管理的不同维度软件开发原材料的安全治理防护软件开发平台、工具、交互流程的安全治理与防护全链路流转治理与洞察Software Supply Chain SecurityOrchestration and Correlation软件开发产出物的安全治理防护云原生时代软件供应链问题更加复杂软件开发部署工具、技术栈爆发式增长应用成分更加复杂OS(CentOS
9、 7)Application Runtime(JDK8)Application BinaryOSBase Image(CentOS)Application Runtime(JDK8)Application BinaryBase Image(Ubuntu)Application Runtime(JDK11)Application BinaryBase Image(Alpine)Application Runtime(JDK17)Application BinaryKubernetes&Container Engine应用开发部署迭代更加快速频繁软件供应链安全问题 传统解决方案的局限性 针对供应链
10、的单个环节进行检查,无法提供全局资产视角的漏洞分布、漏洞破坏影响程度等统一视图 扫描出海量漏洞信息,没有漏洞的优先级排序及可执行的漏洞修复建议 多为事后扫描,无法实时识别高风险组件并进行阻止,导致反复为引入的新漏洞疲于奔命 仅仅关注软件供应链的原材料,忽视了供应链平台工具以及流程的安全治理代码仓库构建系统制品仓库运行环境源代码成分扫描容器镜像扫描容器镜像扫描源代码成分扫描容器镜像扫描020304平台工程中的软件物料风险分析平台工程软件物料安全治理方法论平台工程软件物料风险治理实践01公司背景简介现代软件开发部署是一个不断流转变化的过程代码仓库构建系统制品仓库运行环境开发人员自研代码+应用二进制
11、包+应用镜像+应用部署+应用系统的构成在软件开发部署生命周期中不断变化软件供应链的治理方法源头治理持续监控风险排序高效修复建立依赖项引入管理规范与流程评估开源项目安全治理质量而非仅仅特定版本包漏洞情况结合自动化工具进行持续检查与控制成分分析基于源代码/软件包/二进制/容器镜像包管理器、代码片段、文件Hash、语法/语义分析特征提取(常量、函数符号、机器码、)、相似度匹配匹配规范CPE(Common Platform Enumeration)SWID/SWHIDCVSS3.0不可能100%修复所有漏洞,基于有限的资源对漏洞进行优先级排序CI自动化准出:告警阻断CD自动化准入:告警阻断方法论1-源
12、头治理:从组件引入源头进行质量把控 建立依赖项引入管理规范与流程 评估开源项目安全治理质量而非仅仅特定版本包漏洞情况 结合自动化工具进行持续检查与控制OpenSSF相关文档与实践建议参考:ossf/package-manager-best-practices:Collection of security best practices for package managers.()ossf/scorecard:Security Scorecards-Security health metrics for Open Source()源头治理:代码提交/合并拦截拦截代码提交/合并,阻止风险进入软件供
13、应链,包括:存在漏洞的组件存在许可证合规问题组件密码/秘钥泄露高危风险的IaC设置自定义拦截规则,如组件名称、版本范围等源头治理:开源项目安全治理评分对开源组件的安全治理状况进行多维度的综合评测评分作为企业是否要引入某个开源软件到内部使用的技术参考和依据默认覆盖约100万个最主流的开源项目方法论2-持续监控:持续组成分析及问题匹配成分分析-基于源代码/软件包/二进制/容器镜像-包管理器、代码片段、文件Hash、语法/语义分析-特征提取(常量、函数符号、机器码、)、相似度匹配-知识库NVD、GitHub、GitLab、OSV、CNNVD-商业及私有库-许可证信息-漏洞可利用性信息-匹配规范-CP
14、E(Common Platform Enumeration):cpe:/:cpe:2.3:a:pivotal_software:spring_security:5.1.4:*:*:*:*:*:*:*-PURL(Package URL):scheme:type/namespace/nameversion?qualifiers#subpath pkg:maven/org.apache.xmlgraphics/batik-anim1.9.1?packaging=sources-SWID/SWHID高质量的知识库快速准确的成分识别统一标准的命名/版本规范持续监控:全局视角的软件资产管理汇聚软件供应链各
15、阶段资源的应用系统统一管理,包括:代码仓库容器镜像Kubernetes运行环境第三方软件成分清单SBOM统一风险展示及管理SBOM统一导出持续监控:Meta知识库NVD,Github Advisories,OSV,Ubuntu,Alpine,etc.漏洞数据库指标数据Open SSF,CVSS,EPSS,etc.组件信息Maven,Golang,Npm,etc.Meta 知识库方法论3-风险排序:漏洞风险&优先级评估Common Vulnerability Scoring System(CVSS)Organizations using a CVSS 7+strategy to prioriti
16、ze their remediation efforts waste 76%of their time remediating vulns that pose little to no riskwhile leaving 44%of the riskiest vulns in their environment.Source:Tenable Research不可能100%修复所有漏洞,基于有限的资源必须要对漏洞进行优先级排序部分模型:Exploit Prediction Scoring System(EPSS)Vulnerability Priority Rating(VPR)Stakehol
17、der-Specific Vulnerability Categorization(SSVC)Vulnerability Prioritization Technology(VPT)Threat ContextAsset Context漏洞在实际环境中有多大可能性被利用?漏洞影响资产的重要性?方法论4-高效修复:帮助研发人员快速高效的进行修复升级不同版本的组件可能存在不兼容的情况很小的变更都可能存在兼容性问题。常量兼容性变量兼容性函数兼容性调用兼容性类型兼容性高效修复:多修复策略的智能修复建议可操作性强的修复建议可操作的组件升级指南完整的信息依赖链路修复前后漏洞对比兼容性判定支持灵活的修复策略
18、选择补缺优先:优先考虑修复全部漏洞兼容优先:优先考虑组件版本兼容丰富的场景直接依赖修复间接依赖修复无法修复组件详情020304平台工程中的软件物料风险分析平台工程软件物料安全治理方法论平台工程软件物料风险治理实践01公司背景简介软件供应链安全平台 全链路管理及控制SBOM数据(用于资产管理、成分分析、漏洞匹配及变更追踪*)配置及行为数据(错误配置、异常行为*、安全加固*)数据校验、签名(过程可追溯、防篡改)源码仓库构建平台依赖项/制品仓库Kubernetes运行环境基于链路关联的漏洞优先级匹配高效的修复建议供应链流程策略控制全流程可追溯及防篡改全局SBOM及资产管理软件供应链安全平台实现全链路
19、管理统一管理可视化&可追溯策略管控安全与合规软件供应链风险管控代码仓库构建系统制品仓库运行环境开发人员工作负载IaC扫描镜像成分分析OCI制品签名校验*基于云原生的部署策略管理与控制*源代码成分分析构建物成分分析流水线配置扫描*CI Plugin 扫描及控制制品/构建过程元数据签名*自研制品成分扫描第三方制品成分扫描制品上传/下载控制源代码成分分析代码仓库配置扫描许可证扫描敏感信息泄露扫描IaC模板扫描基于PR/MR/Commit扫描及拦截 提供贯穿云原生研发运维全生命周期的检测方法,建立基于SBOM安全风险的全局可观测能力;采用轻负荷对业务无入侵的漏洞检测及修复体系;开放的平台架构可与流水线
20、中代码仓库、镜像仓库、CI系统平滑对接并被流水线调用;提供有效评估输出,便于CIO/CISO、安全团队、开发团队针对安全问题快速达成共识。场景1-基于软件物料清单的镜像全流程风险可控痛点方案 开发层面,开发人员不知道所引入的开源代码是否存在安全问题 交付层面,往往是因为工具被攻击,或者是使用的第三方组件本身就有问题 运行层面,不法分子通过提前植入的安全漏洞对用户进行攻击,比如窃取信息等 安全左移:依赖引入、镜像构建阶段开始进行安全检测,发现漏洞;全链路防护:基础镜像检测/CI/CD阶段均可设置阻断策略,防止有漏洞的镜像进入用户运行时;软件成分镜像风险构建文件CI扫描引擎CD准入引擎阻断阻断软件
21、成分镜像风险基础镜像仓库扫描引擎阻断扫描引擎软件成分镜像风险构建文件场景2-针对镜像高效修复 1.选择尽可能小的Base Image(Alpine?)2.基于普通镜像“瘦身”,移除App运行不需要的组件,构建仅包含App和运行所需依赖“最小”镜像消除SBOM中的“无效”成分镜像 云原生时代供应链的原材料及产出物痛点方案 基础镜像选择不当;构建业务镜像引入不必要组件。构建仅包含App和运行所需依赖“最小”镜像;选择尽可能小的Base Image(Alpine?);基于普通镜像“瘦身”,移除App运行不需要的组件。场景3-过程可追溯及防篡改Sigstore及其相关项目:fulcio、rekor、c
22、osign、gitsign、sigstore-js、policy controllerhttps:/ 代码仓库构建系统制品仓库开发人员部署依赖项开源社区开发者代码提交签名:gitsignProvenance attestation、OCI镜像及其他制品/文件的签名及校验:cosignnpm包签名及校验:sigstore-js其他语言包:sigstore-maven等 安全运维阶段发现漏洞无法明确定位关联到开发项目 安全运维阶段发现漏洞无法自动反馈至开发流程 全链路软件成分可视:安全运维阶段发现漏洞通过容器安全平台API至构建开发平台与代码、依赖、基础镜像进行关联,联动开发测快速修复 安全漏洞闭
23、环:对漏洞形成自动化闭环管理痛点优势场景4-基于软件供应链的风险关联及呈现Git基础镜像仓库开发平台CI扫描引擎CD准入引擎阻断阻断软件成分扫描引擎阻断资产采集痛点方案 开发所使用软件包引入的风险分布于那些运行时资产不清晰;未与运营阶段资产建立基于SBOM的关联关系;开发态SBOM表单:开发态依赖引入、镜像构建阶段开始进行安全检测构建SBOM表单;运行时SBOM表单:运行实时扫描基于镜像软件成分构建运行时SBOM表单,与漏洞库进行关联掌握镜像与漏洞关联关系;关联关系:基于开发态SBOM表单与运行时镜像建立关联关系,计算风险在镜像、计算节点分布视图;软件成分镜像风险构建文件风险关联POD风险关联Node基于软件物料清单的镜像资产风险检测实践构建运营阶段软件物料资产台账及分布范围:安全运营过程对软件物料进行识别,形成业务软件物料清单台账;基于软件物料清单与镜像ID、镜像层信息构建关联关系;基于镜像在集群种的分布构建软件物料在计算节点、容器的分布范围;基于软件物料的风险分析:基于软件物料资产台账关联开源软件漏洞库,形成软件物料漏洞视图;基于软件物料漏洞、开源软件license对包含软件物料的镜像进行风险评估,形成镜像资产风险分布视图;关注安易科技官方公众号关注平台工程技术社区公众号