手机上怎么买彩票双色球 微信上有人推荐买彩票 能合买彩票的平台 夫妻买彩票狂中30亿 买彩票心态 买彩票就买大乐透开奖结果 哪个平台买彩票安全吗 买彩票有买一个号的吗 怎么看走势图买彩票 如何在电脑上买彩票 美国几岁可以买彩票? 福彩工作人员买彩票 彩客网买彩票 能在微信上买彩票吗 怎么买彩票容易中

聊聊Go恶意软件的现状和趋势

来源:本站整理 作者:佚名 时间:2019-07-09 TAG: 我要投稿

最近几个月,我对Go语言编写的恶意软件产生了浓厚的兴趣。Go,有时也被称为GoLang,由Google于2009年创建,近年来在恶意软件开发群体中越来越受欢迎。
虽然近年来讨论Go恶意软件系列的文章越来越多,但Go恶意软件在数量上是否真的呈现上升势头?当前普遍认为Go主要是由渗透测试人员和红队在使用,所以我很好奇哪种Go恶意软件家族将会最为流行。于是我开始收集尽可能多的Go恶意软件,并将其按恶意软件家族进行分类。本篇文章主要描述收集数据的方法和结果。
我总共获得了大约10,700个用Go编写的恶意软件样本。根据样本的时间戳,可以得出结论,Go编译的恶意软件在数量上已经稳定增长了数月。此外,已标识样本中有92%的是针对Windows操作系统编译的,表明Windows是Go恶意软件开发人员最具针对性的系统。
在这些样本中,能够?#33539;?#20854;恶意软件家族的占到了75%。最出名的恶意软件家族包括Veil,GoBot2和HERCULES。此外还有一些流行的恶意软件组合,包括pentest、远程访问木马(rat)和后门。
需要?#24471;?#30340;是,RAT病毒和后门之间的区别在于恶意软件家族的特性。那些只提供最小功能并提供远程访问的被标记为后门,而功能齐全的远程访问木马被标记为RAT。
为什么要用Go呢?
Go有许多吸引人的特性,最大的吸引力之一是可以为所有主要操作系统?#25945;ǎ?#21253;括Windows,OSX和Linux)编译单个代码库。这能让攻击者将注意力集中在一个代码库上,而其他编程语言可能需要三个不同的代码存储库。
也有替代的方法,比如使用通用脚本语言(如Python)来编写代码库,这种方法以前在Chafer 威胁组织的案例中看到过,他们用Python编写了其中一个payload;Seaduke恶意软件家族用的也是这种方法。?#27426;?#30001;于Windows并没有在原生环境中提供Python,为了让这些代码库在环境中正?#20998;?#34892;,它们必须依赖于PyInstaller之类的实用程序进行封装。这类工具在完成这项工作时,会在植入文件运行过程中留下许多痕迹,而Go就没有留下任何这些构件,这可能也是吸引攻击者的一个因素。
另一个优点(或缺点,取决于你如何?#21019;?是,所有必需的库?#21152;?#32534;译后的二进制文件静态链接。这会导致二进制文件的大小高于平均大小,在10700个用Go编写的恶意软件样本中,这些样本的平均大小为4.65MB,比恶意软件通常要大得多,使得它在被木马程序包中更难以使用。此外,由于电子邮件服务器可能不允许附件太大,所以在钓鱼邮件中也不太好使。
?#36824;?#36825;种大尺寸也有意想不到的好处。在某些情况下,反病毒产品可能会忽略文件,或无法扫描。这种情况在过去涉及Comnie恶意软件家族的定向攻击中也曾出现过,恶意软件的作者在文件中添加了64MB的垃圾数据以试图绕过反病毒产品。
方法
为了开始这项研究,我必须尽可能多地收集在Go中编译的恶意软件样本。?#27426;?#20107;实证明,仅这项任务就相当困难。用于?#25628;?#31350;的存储库包括我们?#32422;?#30340;以及第三方的VirusTotal服务。首要步骤是简单地收集所有可以识别的Go样本,无论它们是否是恶意的。
· 为了收集这些样本,我采取了多种方法,包括但不限于以下方法:
· 带有引用“Go.org”的嵌入链接的OSX或Linux样本
· 使用'Go-http-client / 1.1'用户代理的样本
· 使用'GRequests'用户代理的样本
· 包含'.symtab'部?#32622;?#31216;的PE样本
· 使用一系列已识别的导入哈希的PE样本
· 引用了Google的gopacket github存储库的OSX样本
· 引用gopkg.in的OSX样本
· 符合YARA规则的样本
关于YARA规则,这里是创建了三个单独的规则来识别每个主要?#25945;?#30340;Go样本。例如,以下规则用于标识为OSX编译的Go样本:
rule osx_GoLang
 
{
 
meta:
 
     author = “Josh Grunzweig”
 
     description = “Attempts to identify samples written in Go    
 
     compiled for OSX.”
 
     strings:
 
          $Go = “go.buildid”
 
     condition:
 
          (
 
               uint32(0) == 0xfeedface or
 
               uint32(0) == 0xcefaedfe or
 
               uint32(0) == 0xfeedfacf or
 
               uint32(0) == 0xcffaedfe or
 
               uint32(0) == 0xcafebabe or
 
               uint32(0) == 0xbebafeca
 
          ) and
 
          $Go
 
}
使用以上方法,我收集了大约61.1万个独立的样本。
在获得所有样本哈希之后,我查询了Unit42的系统和VirusTotal,以?#33539;?#21738;些样本是恶意的。在VirusTotal里,我只是检查了具有“malware”标识或5个以上恶意软件特征的选项,然后下载了这些剩余的样本,并运行了之前创建的YARA规则,最后留下了大约13,000个独立的样本。
之后我开始将这些样本聚类到它们各自的恶意软件家族中去。为此我主要采用人工的方法,分析给定的文件,并基于已识别的恶意软件家族创建YARA规则,我还编写了一些辅助脚本用?#21019;?#24050;标识的二进制文件中提取有用的信息。下面的辅助脚本能从二进制文件中提取用户定义的函数名,以及所有可能存在的用户定义路径:

[1] [2] [3] [4]  下一页

【声明】:黑吧安全网(http://www.rliwo.live)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱[email protected],我们会在最短的时间内进?#20889;?#29702;。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载
        购买彩票权威网址
        手机上怎么买彩票双色球 微信上有人推荐买彩票 能合买彩票的平台 夫妻买彩票狂中30亿 买彩票心态 买彩票就买大乐透开奖结果 哪个平台买彩票安全吗 买彩票有买一个号的吗 怎么看走势图买彩票 如何在电脑上买彩票 美国几岁可以买彩票? 福彩工作人员买彩票 彩客网买彩票 能在微信上买彩票吗 怎么买彩票容易中
        霍芬海姆队长 幸运龙宝贝注册 极速飞艇秘诀 广东36选7中奖规则及奖金 北京赛车代理怎么做 浙江体彩20选5开奖官方同步 qq飞车辅助 动物足球简笔画 阿曼达·贝尼斯 河北11选5开奖表