章鱼扫描仪:Java构建工具和恶意软件

Alvaro Munoz最近在GitHub Security Lab网站上发布了“ Octopus扫描程序恶意软件:攻击开源供应链 ”。 我发现这篇文章很有趣,原因有很多,其中包括对Octopus Scanner恶意软件如何工作以及如何被发现, GitHub安全事件报告团队 ( SIRT )如何着手解决,如何影响流行的详细报道。 Java IDE,以及GitHub如何工作以检测和解决在其站点上部署的开源软件的风险。

Muñoz称Octopus Scanner为“ OSS供应链恶意软件”,并写道,GitHub托管的26个开源项目“被该恶意软件后门”。 在文章中,Muñoz详细描述了章鱼扫描仪的工作原理。 整个帖子值得一读,但以下是介绍Octopus Scanner的一些重点内容:

  • “ Octopus Scanner恶意软件仅对“ NetBeans项目构建”中的pre-jarpost-jar任务感兴趣。
  • “该恶意软件伪装成ocs.txt文件,但我们可以很容易地确定它实际上是Java存档(JAR)文件。”
  • “该恶意软件还感染了项目中可用的任何JAR文件,例如依赖关系-不一定只是构建工件。”
  • octopus.dat有效负载是实际执行NetBeans构建感染的二进制文件。”
  • cache.dat负责对所构建的类进行后门操作,以便在执行这些类时,它们将感染基础系统。”
  • Octopus Scanner旨在针对“类UNIX系统”,MacOS和Windows。

我在GitHub帖子中发现了非常详细的诊断Octopus Scanner行为的方法,非常有趣而有见地。 看到用来更好地了解Octopus Scanner行为的工具和方法特别有见识。 例如,他们使用ClassFileTransformer和“字节码操作库(例如Javassist或ByteBuddy来注入我们的分析代码)”到“负责解密blob的类…………实际上是在将blob加载到JVM之前”。

除了关于章鱼扫描仪如何工作以及如何被发现和研究的有趣细节之外,此GitHub帖子中的其他有趣见解还与开源构建面临的风险有关。 Muñoz写道:“感染构建工件是一种感染更多主机的方法,因为受感染的项目很可能会由其他系统构建,并且构建工件也可能会在其他系统上加载并执行。” Muñoz补充说:“在OSS环境中,它为恶意软件提供了一种有效的传播手段,因为受影响的项目可能会被克隆,分叉,并可能在许多不同的系统上使用。 这些构建的实际工件可能以与原始构建过程无关的方式进一步传播,并且在事后很难追查。”

Muñoz开启了该职位,并在结尾处对此进行了一些讨论,并讨论了破坏开源产品及其构建的其他尝试。 结论中包含一个令人毛骨悚然的想法:“由于主要感染的用户是开发人员,因此攻击者对获得的访问权限非常感兴趣,因为开发人员通常可以访问其他项目,生产环境,数据库密码和其他重要资产。 升级具有巨大的潜力,这在大多数情况下是攻击者的核心目标。”

翻译自: https://www.javacodegeeks.com/2020/06/octopus-scanner-java-build-tools-and-malware.html

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

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

相关文章

java gnu_GNU/Linux下Java开发环境的安装和配置 | 学步园

首先下载JDK,在http://www.oracle.com/technetwork/java/javase/downloads/index.html下载最新版本的JDK,选择平台为linux,就会得到一个二进制文件,我得到的是jdk-6u23-linux-i586.bin,复制到需要安装的地方运行就会自…

css初始化_利用CSS变量实现炫酷的悬浮效果

这个动画是将鼠标移动到订阅按钮上移动光标会显示相应的彩色渐变。这个想法很简单,但是它能使这个按钮脱颖而出,人们一下子就注意到它了,增加了点击的概率。怎样才能达到这个效果,使我们的网站脱颖而出呢?其实&#xf…

glass fish_Glass Fish 4.0.1中的Jersey SSE功能

glass fishGlass Fish为各种Java EE规范捆绑了不同的参考实现,例如,CDI的Weld,JSF的Mojarra,WebSocket的Tyrus,JAX-RS的Jersey。 Glass Fish 4.0.1即将发布,并计划涵盖许多组件/模块的更新,这些…

java 区号_求您!JAVA作业,窗口查询区号!

窗口程序作业说明完成一个查询区号的窗口程序,功能要求如下(作业需要的数据见citycode.txt)程序打开时自动读取保存在文件中的数据信息程序至少提供一个输入及输出控件,一个查询按...窗口程序作业说明完成一个查询区号的窗口程序,功能要求如下…

css清除浮动的几种方法_web前端学习路线分享CSS浮动-清除浮动篇

web前端学习路线分享CSS浮动-清除浮动篇,为什么要清除浮动这里所说的清除浮动,并不是不要浮动了,而是清除浮动与浮动之间的影响。那么到底会有什么影响呢?1.高度塌陷举个例子我们看一下。我们在这里设置了div0是外容器…

AWS Lambda将数据保存在DynamoDB中

在本教程中,我们将看到如何使用AWS Lambda将数据保存在Dynamo DB中。 这是必需的步骤: – 在Dynamo数据库中创建一个名为Employee的表 –创建一个AWS Lambda函数,该函数可以使用Dynamo数据库中的Employee POJO保存雇员的名字和姓氏 –创建…

java 循环map 优雅写法_Java for循环Map集合优化实现解析

这篇文章主要介绍了java for循环map集合优化实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下在《for循环实战性能优化》中提出了五种提升for循环性能的优化策略,这次我们在其中嵌套循环优化小…

java list 取几个字段组装成map_24道Java各类常见问题整理

(1) JSP学了EL表达式就行了吧,还需要深入么?还有spring现在学5就行了吧?总觉得类与对象这里好难,理解不来(2) 我想问问在校生需要学习JAVA到哪种程度,然后再学学数据结构和算法能达到校招面试的水平(3) 静态变量与实例…

java私有属性和私有方法_Java私有,受保护,公共和默认

java私有属性和私有方法您是Java程序员,所以您知道我在说什么。 public修饰符使方法或字段可从应用程序中的任何位置访问。 那是简单的部分。 但是,您能告诉我protected和包私有的区别吗? (提示:如果您未在方法或字段前…

Maven硒测试自动化教程

在进行测试自动化项目时,您需要与之关联的所有Selenium依赖项。 通常,这些依赖项是在项目生命周期中手动下载和升级的,但是随着项目规模的扩大,管理依赖项可能会非常困难。 这就是为什么需要构建自动化工具(例如Maven&…

python处理json数据_python处理json格式的数据

这里我就不介绍json了,不知道json的同学可以去百度一下json,首先我们的json的格式如下,这个json有点长,这个json来自我以前的一个小任务,具体看这里:http://www.cnblogs.com/ybf-yyj/p/7351493.html { &quo…

java确认rabbitmq_RabbitMQ 消息确认机制

生产端 Confirm 消息确认机制消息的确认,是指生产者投递消息后,如果 Broker 收到消息,则会给我们生产者一个应答。生产者进行接收应答,用来确定这条消息是否正常的发送到 Broker ,这种方式也是消息的可靠性投递的核心保…

hadoop源码分析_Spark2.x精通:Job触发流程源码深度剖析(一)

, 一、概述 之前几篇文章对Spark集群的Master、Worker启动流程进行了源码剖析,后面直接从客户端角度出发,讲解了spark-submit任务提交过程及driver的启动;集群启动、任务提交、SparkContext初始化等前期准备工作完成之后&am…

如何在Java中将String转换为int

在本教程中,我们将看到将Java中的String转换为int(或Integer)的各种方法。 您可以使用以下任何一种方式: –使用Integer.parseInt(string) –使用Integer.valueof(string) –使用…

java回调spring接口_Spring Boot启动过程及回调接口汇总

启动顺序Spring boot的启动代码一般是这样的:123456SpringBootApplicationpublic class SampleApplication {public static void main(String[] args)throws Exception {SpringApplication.run(SampleApplication.class, args);}}初始化SpringApplication1、SpringA…

python面向对象编程138讲_Python面向对象编程简单讲解

学习目标:1-面向对象编程2-类和对象3-对象的属性和方法4-类的特性Python面向对象编程一种编程程序的设计思想,把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。把计算机程序视为一组对象的集合,而每个对象都可以接…

jboss 程序位置_介绍JBoss BPM Suite安装程序

jboss 程序位置本周,我们想向您介绍JBoss BRMS和JBoss BPM Suite产品随附的一个鲜为人知的安装程序组件。 请注意,当前所有的演示项目都要求您下载JBoss BPM Suite可部署的eap zip产品文件和JBoss EAP 6.1.1 zip产品文件。 展望未来,我们将迁…

java换成中文_如果我们的编程替换成中文会变成怎样?

首先大概的看一下中文编码:你以为会写中文就会编程吗?这就像你以为会写汉字就会写出好文章一样。编程是和机器沟通,因此要用机器的语言而不是人类的语言。最早的程序就是0和1的数字,不是中文也不是英文。以前的程序员,…

高等数学公式大全_高中物理知识思维导图大全,赶紧收藏!

物理作为理综的重中之重,物理的学习一直是广大考生的难点。如何快捷高效的掌握物理知识点是高考复习的重点之一,根据高中物理三年知识点用思维导图的方式,来助大家掌握物理知识点。运动的描述 重力 基本相互作用 相互作用 牛顿运动定律 力的合…

HTTP方法:幂等性和安全性

幂等性和安全性是HTTP方法的属性。 HTTP RFC定义了这些属性,并告诉我们哪些HTTP方法是安全且幂等的。 服务器应用程序应确保正确执行安全和幂等的语义,如客户端期望的那样。 安全的HTTP方法 如果HTTP方法不更改服务器状态,则认为它们是安全的…