六种最常见的软件供应链攻击

news2024/11/24 10:41:51

软件供应链攻击已成为当前网络安全领域的热点话题,其攻击方式的多样性和复杂性使得防御变得极为困难。以下我们整理了六种常见软件供应链攻击方法及其典型案例:

软件供应链攻击已成为当前网络安全领域的热点话题,其攻击方式的多样性和复杂性使得防御变得极为困难。以下我们整理了六种常见软件供应链攻击方法及其典型案例:

一、入侵上游服务器

攻击者入侵上游服务器或代码仓库,并在其中注入恶意代码。这种攻击方式的危险之处在于,恶意代码会被快速分发到大量用户,从而放大了攻击的影响范围。

典型案例:

  • Codecov攻击:攻击者通过获取Docker镜像创建过程中的凭据,篡改在其CI环境中使用的BashUploader脚本,收集从客户的CI/CD环境上传的环境变量并窃取在环境变量中的敏感信息,如服务、数据库的凭据和密钥。
  • SolarWinds攻击:在这次影响全球的攻击中,攻击者成功入侵了SolarWinds的Orion产品开发系统,并在源代码中植入恶意代码,进而发动了大规模的网络攻击。
  • Node.jsevent-stream事件:攻击者通过对开源库event-stream的维护权进行社会工程攻击,成功将恶意代码发布到了npm,影响了大量使用该库的项目。
二、入侵中间环节发送恶意更新

攻击者入侵软件供应链中间环节的软件升级功能或CI/CD工具。这种攻击方式的狡猾之处在于,它可以在不直接修改源代码库的情况下,通过修改升级流程来实施攻击。

典型案例:

  • Passwordstate攻击:攻击者入侵了Passwordstate企业密码管理器的“就地升级功能”,向用户分发包含恶意代码的更新。这种攻击方式使得攻击者能够窃取用户的密码和其他敏感信息。
  • ASUSLiveUpdate攻击:攻击者入侵了ASUSLiveUpdate工具,并通过它分发了包含后门的恶意更新。这使得攻击者能够在全球范围内感染成千上万的ASUS计算机用户。
  • M.E.Doc软件攻击:乌克兰的财务软件M.E.Doc被攻击者入侵,通过软件更新功能分发了NotPetya勒索软件。这导致了全球范围内的大规模网络中断。
三、依赖性混淆攻击

这种攻击方式利用了开源生态系统中的设计弱点。攻击者可以在公共仓库中注册一个与私有依赖项同名的依赖项,然后通过提高版本号来使其被软件构建拉取。这种方法几乎不需要人工干预,可以自动化地进行攻击。

典型案例:

  • AlexBirsan的研究成果:安全研究员AlexBirsan通过创建和上传与私有包同名的公共包,成功实施了依赖性混淆攻击,影响了包括苹果和微软在内的多家知名公司。
  • PyTorch攻击:在这起攻击中,攻击者利用依赖性混淆方法对机器学习库PyTorch进行了攻击,影响了使用该库的开发者和项目。
  • node-ipc攻击:node-ipc是另一个受到依赖性混淆攻击的例子,攻击者通过这种方法影响了使用该库的各种应用和服务。
四、滥用SSL和代码签名证书

SSL/TLS证书的泄露会威胁到用户的在线通信安全。而代码签名证书的泄露则可能导致恶意软件被伪装成由知名公司签名的合法软件或更新。

典型案例:

  • SolarWinds攻击:在这起广泛报道的供应链攻击中,攻击者使用了被盗的代码签名证书,使得恶意代码看起来像是合法的SolarWinds更新。
  • Plead恶意软件:攻击者使用被盗的数字证书签名Plead后门恶意软件和密码窃取组件,这些恶意软件主要在东亚地区的攻击中被使用。
  • NVIDIA证书被盗:攻击者盗取了NVIDIA的代码签名证书,并用它来签名CobaltStrikebeacon、Mimikatz、后门和远程访问木马等恶意软件。
五、针对开发者的CI/CD基础设施

在这种攻击中,攻击者会利用CI/CD自动化基础设施,这种攻击方式的独特之处在于,它可以在不直接修改代码的情况下,通过滥用CI/CD基础设施来实施攻击。

典型案例:

  • 滥用GitHubActions挖掘加密货币。Sonatype最近观察到一次多重软件供应链攻击,该攻击不仅向用户的GitHub项目引入恶意拉取请求,还滥用GitHub的CI/CD自动化基础设施GitHubActions来挖掘加密货币。这种攻击双管齐下:它会诱骗开发人员接受恶意拉取请求,如果失败,它就会滥用现有的自动化CI/CD基础设施来进行恶意活动。
  • 联合国网站数据泄露。攻击者利用联合国网站暴露的Git目录(.git)和“git-credentials”文件,获得Git凭证访问权限,不仅可以克隆私有Git存储库,还可能在上游(环境署的源代码库)引入恶意代码以触发供应链攻击。此事件导致过10万条联合国环境规划署(UNEP)工作人员记录泄露。
六、社会工程攻击

这种攻击方式通常涉及到人的因素。攻击者可能会利用开发者的信任或者疏忽,通过提交包含恶意代码的pull请求或其他方式来实施攻击。事实上,很多类型的软件供应链攻击都会涉及社会工程攻击。

典型案例:

  • Linux“毒补丁”。Linux基金会最近禁止了明尼苏达大学研究人员的代码提交,因为他们故意提供有缺陷的“补丁”,从而在Linux内核源代码中引入了漏洞。该案例的启示是:社会工程攻击可能来自最不受怀疑的来源——在本案例中,攻击来自拥有“.edu”电子邮件地址看似可信的大学研究人员。
  • 篡改通过GitHub发布的软件版本。2021年安全研究人员披露攻击者可以在项目所有者或公众不知情的情况下破坏合作者的GitHub帐户并用来修改已发布版本,从而导致针对项目用户的供应链攻击。
  • NPM拼写错误攻击。攻击者创建与合法软件包非常相似的恶意软件包(例如恶意JavaScript包、数据采集木马等),然后将其上传到NPM的下载存储库。

每种软件供应链攻击方式都有其独特的实施方法和利用的弱点。为了更有效地防御这些攻击,安全和开发团队需要不断更新和优化安全策略和工具,包括加强对开源组件的清点、监控和审核,提高开发者的安全意识,以及优化CI/CD流程等。

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

TSN协议解读系列 | (3) Qci:说书唱戏劝人方

你是谁?你从哪里来?你到哪里去?这是柳国旅问的最多的三个问题。他总在想,上辈子的自己一定是一个哲学家,不然也不会和这三个问题的关系如此密切。他站的笔挺,耳边是蝉鸣,眼前是蓝天,…

定岗定编设计:企业职能部门定岗定编设计项目成功案例

一、客户背景及现状分析 某大型车辆公司隶属于某央企集团,建于20世纪60年代,是中国高速、重载、专用铁路车辆生产经营的优势企业,轨道车辆制动机研发制造的主导企业,是隶属于国内最大的轨道交通设备制造上市企业的骨干二级公司。公…

JVM虚拟机:垃圾回收器之ParNew(年轻代)

本文重点 在前面的课程中,我们学习了新生代的垃圾回收器PS,本文我们将学习新生代的另一个垃圾回收器ParNew。 工作状态 这个垃圾回收器使用多线程进行垃圾回收,在垃圾回收时,会STW(stop-the-world)暂停其它所有的工作线程直到它的收集结束,如下所示: 配置 -XX:+UserP…

南昌大学漏洞报送证书

获取来源:edusrc(教育漏洞报告平台) url:https://src.sjtu.edu.cn/ 兑换价格:20金币 获取条件:南昌大学任意中危或以上级别漏洞

Matlab论文插图绘制模板第125期—特征渲染的三维气泡图

在之前的文章中,分享了很多Matlab三维气泡图的绘制模板: 进一步,再来分享一下特征渲染的三维气泡图。 先来看一下成品效果: 特别提示:本期内容『数据代码』已上传资源群中,加群的朋友请自行下载。有需要的…

编程系统化教程目录,中文编程工具下载

图下图是编程工具界面,其构件板构件非常丰富。想学编程,可以点击最下方卡片—— 软件下载——免费自由版软件下载及教程,了解详细资讯。 编程系统化教程视频课程总目录 链接,点击下方链接进入 https://jywxz.blog.csdn.net/art…

Linux的常见指令(三)

目录 一、管道 | 二、find 三、which 四、grep 五、zip/unzip 六、alias 七、输出重定向与输入重定向 1、echo 2、输出重定向 3、输入重定向 八、tar 九、bc 十、uname -r 十一、热键 一、管道 | 我们首先创建一个下面这样的文件 前面我们知道了使用head和tail分…

springboot调用第三方接口json转换成对象

请求接口是一个比较常见的需求,接口返回一般是一个json类型,需要进行组装成对应的类,例 {"status_code": 200,"message": "success","data": {"cost": 286.6933,"bom_list": […

C++结构体内存对齐

文章目录 介绍对齐数顺序问题结构体有效对齐数计算数组对齐 介绍 结构体的大小并不是简单地将每个结构体成员的大小相加就能得到。 cpu一次能读取多少内存要看数据总线是多少位,如果是16位,则一次只能读取2个字节,如果是32位,则…

【原理篇】三、SpringBoot自动配置原理

文章目录 0、背景demo1、自动配置思路2、META-INF/spring.factories3、Redis自动配置4、自定义一个自动配置5、排除SpringBoot内置自动配置类的加载6、补充点:ApplicationContextAware接口 0、背景demo 用一个循序渐进的示例来体验属性配置,方便后面理解…

62、使用python进行rk3588开发板进行推流亚马逊云服务上,进行实时播放

基本思想:之前写了一套c++的推理和视频编解码,使用rk3588的mpp硬件进行编码和解码,然后使用RTSPServer进行推流,总是有问题,虽然可以使用ffplay和vlc进行拉取和播放,但是就是无法使用gstreamer推流到亚马逊云服务上,因为项目需求的紧急,所以先用python把流程跑同,后续…

【机器学习】Kmeans聚类算法

一、聚类简介 Clustering (聚类)是常见的unsupervised learning (无监督学习)方法,简单地说就是把相似的数据样本分到一组(簇),聚类的过程,我们并不清楚某一类是什么(通常无标签信息)&#xff0…

Stable Diffusion被爆包含性别、种族歧视!比AI更可怕的是人类的偏见......

夕小瑶科技说 原创 作者 | 付奶茶、王二狗最近,华盛顿邮报的一篇报道引起了“奶茶”我的关注! 报道中提到AI图像生成器已经开始暴露出它们学到的偏见。比如将非洲人刻板地视为原始,将领导者默认为男性,将囚犯一般视为黑人。 为了…

内衣专用洗衣机怎么样?家用小洗衣机推荐

最近这两年在洗衣机中火出圈的内衣洗衣机,它不仅可以清洁我们较难清洗的衣物,自带除菌功能,可以让衣物上的细菌,还能在清洗的过程中呵护我们衣物的面料,虽然说它是内衣洗衣机,它的功能不止可以清洗内衣&…

基于YOLOv8与DeepSORT实现多目标跟踪——算法与源码解析

一、概述 "目标跟踪 (Object Tracking)"是机器视觉领域中的一个重要研究领域。根据跟踪的目标数量,可以将其分为两大类:单目标跟踪 (Single Object Tracking,简称 SOT) 和多目标跟踪 (Multi Object Tracking,简称 MOT)…

『 MySQL数据库 』数据库基础之库的基本操作

文章目录 库的操作创建数据库字符集与校验集那么该如何查看当前数据库默认的字符集与校验规则?查看数据库所支持的字符集与校验集不同字符集(校验集)之间的区别 基本操作查看数据库显式数据库创建语句数据库的修改数据库的删除数据库的备份检查连接 库的操作 创建数据库 CRE…

记一次 Android 周期性句柄泄漏的排查

滴滴国际化外卖 Android 商户端正常迭代版本过程中,新版本发布并且线上稳定一段时间后,突然触发线上 Crash 报警。 第一次排查发现是在依赖的底层平台 so 库中崩溃,经过沟通了解到其之前也存在过崩溃问题,所以升级相关底层 so 版本…

家居品牌怎么做小红书投放,寻找家居达人的方式有哪些?

在当今社交媒体的时代,找到优秀的家居博主并不困难。但是,在找家居行业博主的时候,了解家居行业特性就很重要,今天来为大家分享一下家居品牌怎么做小红书投放,寻找家居达人的方式有哪些? 一、家居行业特性 …

共享盘的文件删除后能找回吗

在当今高度信息化的时代,数据和文件的重要性日益凸显。然而,由于各种原因,我们有时会不小心删除了一些重要的文件,这时候就会面临数据恢复的问题。那么,对于共享盘的文件,删除后是否还能找回呢?…

conda环境下version libcublasLt.so.11 not defined问题解决

1 问题描述 运行模型训练&#xff0c;错误信息如下&#xff1a; Traceback (most recent call last):File "/opt/Bert-VITS2/./text/chinese_bert.py", line 3, in <module>import torchFile "/root/anaconda3/envs/vits/lib/python3.9/site-packages/t…