一种在行末隐藏有效载荷的新供应链攻击技术研判

news2024/11/26 20:38:25

近期,Phylum检测到数十个新发布的Pypi软件包执行供应链攻击,在这些软件包中,通过隐藏的__import__将窃取程序投递到开发人员的机器上。攻击者利用代码审核者所使用IDE默认的不换行代码显示设置隐藏自身的行为与载荷,本文将就其中出现的供应链攻击技术及其演进进行分析。

组织名称:未知

相关工具:W4SP

战术标签:初始访问

技术标签:开源代码仓库 源代码投毒

情报来源:https://blog.phylum.io/phylum-discovers-dozens-more-pypi-packages-attempting-to-deliver-w4sp-stealer-in-ongoing-supply-chain-attack

一、攻击技术分析

亮点:巧妙隐藏于在代码行末的载荷

1.攻击者在setup.py文件中通过命令执行安装原版的库。

2.攻击者将本应写在requirements.txt中的依赖库在代码中直接使用命令进行安装,将自身隐藏在正版库身后。在这段代码的末尾,攻击者植入了恶意代码片段。

3.攻击者用分号将恶意代码片段串联成一行放于行末,展开如下:

4.被植入的代码在安装脚本中从远端拉取Python脚本,并利用pythonw.exe执行,以实现在不打开控制台窗口的前提下,静默执行恶意代码。

5.可能是由于基于URL的检测技术的应用,攻击者改进了攻击方式。在改进后的版本中,攻击者将有效载荷的数据直接存放在代码文件中。利用IDE一般以不换行格式查看的特点,将有效载荷藏匿于正常代码中。

6.攻击者声称代码被Hyperion混淆,实际上代码文件已经被植入了有效载荷。

7.攻击者利用分号将恶意代码隐藏在合法代码的行末。有效载荷被分装为14个压缩字节对象,这些对象通过后续的调用,解压后以某种指定的顺序保存为文件,最终完成W4SP窃取程序的组装与落地。

在先前的供应链攻击中,攻击者往往通过在代码文件中植入载荷下载代码等完成攻击。但在本次事件中,攻击者通过将有效载荷分段隐藏在行末,并利用代码进行组装落地。一方面,由于IDE的特性,这种形式的代码不容易被发现;另一方面,通过执行代码拉取远端植入了载荷的代码,在本地执行时组装落地,降低了被检测的几率。 

二、小结

引入开源组件降低开发成本已是当前主流的开发方式,但开源社区的开放性与有限的维护资源,导致恶意代码注入的攻击可被实施,用于突破企业防御边界。供应链攻击近年来热度居高不下,对供应链代码的安全检验也逐渐受到重视。

在现网攻击中,在供应链上的利用也逐渐增多。PyPI、npm等常用开源软件生态系统作为供应链攻击的高发区,在使用时要格外注意代码安全性。在本次事件中,攻击者利用代码文件不换行执行的特点,将恶意载荷隐藏在代码行末,不易被发现。若未及时发现,将导致使用该开源代码库的下游软件都被植入恶意载荷,这对于供应链代码安全审计与检测提出了更高的要求。

传统的SCA检测工具针对软件供应链的安全防护略显乏力,但UniSCA作为一款专业的软件供应链安全管理平台,可以有效监测在供应链上的0day漏洞,第一时间做出有效防御。

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

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

相关文章

栈简介、手写顺序栈、手写链栈和栈的应用

一. 简介 1. 什么是栈? 栈是一种只能从表的一端存取数据且遵循 "先进后出"("后进先出") 原则的线性存储结构。栈也是用来存储逻辑关系为 "一对一" 数据的线性存储结构。 C#中提供顺序栈:Stack&…

【MySQL基础】如何安装MySQL?如何将MySQL设置成服务?

目录 一、MySQL的安装 1、解压配置 2、步骤安装 💟 创作不易,不妨点赞💚评论❤️收藏💙一下 一、MySQL的安装 MySQL的安装有两种方式:解压配置和步骤安装 1、解压配置 需提前从官网直接下载压缩包,进…

【MySQL篇】第二篇——库的操作

目录 创建数据库 创建数据库案例 字符集和校验规则 查看系统默认字符集以及校验规则 查看数据库支持的字符集 查看数据库支持的字符集校验规则 校验规则对数据库的影响 操纵数据库 查看数据库 显示创建语句 修改数据库 数据库删除 备份和恢复 备份 还原 注意事…

常见磁盘调度算法总结

磁盘调度算法📖1. 最短寻道时间优先(SSTF)📖2. 电梯算法(SCAN或C-SCAN)📖3. 最短定位时间优先(SPTF)📖4. 总结由于IO的高成本,操作系统在决定发送…

C语言 0 —— 计算机硬件架构及信息在计算机中的表示

当前的计算机系统,如Window ,Linux,Mac 基本都是基于冯诺依曼的驱动架构设计的。 冯诺依曼架构输入设备先输入公式,给运算器,运算器先算 先算2*5 ,临时放在CPU内部寄存器中,寄存器不够用的时候会…

vscode插件开发(四)Webview(1)

上一篇详细讲解了命令,这回我们一起来看一下Webview。vscode的插件其实可以分为两种,一种是webview插件,另一种是非webview插件。 webview插件的自由度很高,可以满足开发者的各种定制化的要求;而非webview插件只能使用…

我悟了!Mysql事务隔离级别其实是这样!

问题描述 ​ 最近几天在忙项目,有个项目是将业务收集到的数据变动,异步同步到一张数据表中。在测试的过程时,收到QA的反馈,说有订单的数据同步时好时坏。我怀着疑惑的表情打开了那段代码,它的逻辑大概是这样的&#x…

Zookeeper实现分布式锁的原理。

之前学习Redis时候,我们利用Redis实现了分布式锁。 黑马点评项目Redis实现分布式锁_兜兜转转m的博客-CSDN博客 为什么提出了分布式锁的概念呢? 因为在单体项目中,锁是基于JVM虚拟机实现的,在分布式情况下,JVM就不唯…

FullGC频繁,线程数持续增长排查

告警 线上应用fullgc频繁,收到告警 GC监控—堆内存不足 查看近12小时的监控,发现Survivor区一直处于 满状态、fullgc非常频繁、但没有内存溢出的现象,很明显是堆内存不足 GC日志分析—暂停时间并不长 因为fullgc相当频繁,抽…

项目管理(知识体系概述)

项目的定义:为创造独特的产品、服务或者成果进行的临时性工作。 项目的特性:1、独特的产品、服务、成果;2、临时性工作。 项目管理的目的(为了解决什么问题): 1、达成业务目标 2、满足相关方期望 3、提供项目的可预测性 4、提高项目的成果性。 5、在适当的时刻交付…

机器人运动学标定:基于考虑约束的指数积的运动学标定方法——只需要测量位置,避免冗余约束

文章目录写在前面为什么要消除归一化和正交化操作?只用位置而不是位姿去做标定的原因基于消除冗余约束步骤的参数辨识模型分析参考文献写在前面 基于指数积的运动学标定方法介绍: 机器人运动学标定:基于指数积的串联机构运动学标定 机器人运…

Vue表单修饰符:v-model.lazy、v-model.number、v-model.trim

表单修饰符有:lazy、number、trim;修饰符加在v-model后面; lazy修饰符: v-model的作用是双向绑定表单,能获取到input输入框的值,而且是实时获取的,就是当你输入框里的值发生改变就会获取到&…

【Shell 脚本速成】02、Shell 变量详解

目录 一、变量介绍 变量存取原理 二、变量定义 2.1 什么时候需要定义变量? 2.2 定义一个变量 定义变量举例: 定义变量演示: 2.3 取消变量 unset 2.4 有类型变量 declare declare 命令参数: 案例演示: 三…

向前迈进!走入GC世界:G1 GC原理深入解析

第零章:名词解释 mutator:应用线程 STW:Stop-The-World,指除了GC线程,其它所有线程全部暂停的一段时间 并发:指代GC线程与mutator在同一时刻执行任务 并行:指代多个GC线程在同一时刻执行任务…

一站式元数据治理平台——Datahub

一站式元数据治理平台——Datahub万字保姆级长文——Linkedin元数据管理平台Datahub离线安装指南 - 独孤风 - 博客园 (cnblogs.com)企业级数据治理工作怎么开展?Datahub这样做 - 独孤风 - 博客园 (cnblogs.com)【DataHub】 现代数据栈的元数据平台–如何与spark集成…

如何设计金融机构多场景关键应用下的存储架构

【摘要】银行、保险等金融机构存在多场景下的关键应用,如何选择适合各场景下的存储,如何设计适合业务的存储架构,显得尤为重要。本文从当前主流存储架构分析入手,提出金融机构业务场景分析与架构选型思路,以Glusterfs为例,分享如何根据业务场景的特点,有针对性的选取适合…

SQL优化

文章目录提升group by的效率分页查询优化覆盖索引子查询起始位置重定义检查 where,order by,group by后面的列尽量使用 varchar 代替 char。(SQL 性能优化)如果修改 / 更新数据过多,考虑批量进行提升group by的效率 select user_id,user_nam…

spring-security源码学习总结

由于SpringBoot 对 Security 的支持类均位于org.springframework.boot.autoconfigure.security包下,主要通过 SecurityAutoConfiguration 自动配置类和 SecurityProperties 属性配置来完成,所以需要下载springboot源码深入学习 SecurityAutoConfiguratio…

云原生边缘设备解决方案Akri on k3s初体验

作者: 涂家英,SUSE 资深架构师,专注 Cloud-Native 相关产品和解决方案设计,在企业级云原生平台建设领域拥有丰富的经验。 写在前面 k3s 是 SUSE 推出的为物联网和边缘计算构建的经过认证的 Kubernetes 发行版,它可以帮…

指数函数及其导函数

目录前言指数函数的导函数指数函数导函数动图绘制参考文献前言 前面我们介绍了指数函数及其基本性质以及如何在笛卡尔直角坐标系下绘制静态的指数函数图像,这一节,我们将重点讨论一下指数函数的导函数以及导函数的动态表示,为方便起见&#…