迈克菲实验室:Flame病毒的深度分析

简介:

今年五月份发现的Flame病毒(又名Flamer、Skywiper或火焰病毒)对伊朗能源部门进行了猛烈的网络攻击,Flame病毒的出现引起了人们对于网络间谍活动和网络战争的高度关注。伊朗方面认为,Flame病毒与之前针对工业系统的臭名昭著的Stuxnet(震网)病毒和Duqu病毒有密切的关联。

面对这一高危病毒,迈克菲实验室第一时间对该病毒的相关功能和主要特性进行了深度分析和持续研究,以助力业界更好地了解这一威胁并找出应对措施。

根据迈克菲实验室的分析,Flame病毒是一种模块化的、可扩展和可更新的,具有广泛隐蔽性和很强攻击性的威胁。目前,迈克菲防病毒产品已经可以从感染的系统中检测到这一威胁并进行清除。通过迈克菲的初期数据显示,目前这一威胁还存在多种变体。

Flame病毒强大的攻击能力

以下是迈克菲发现的Flame病毒的部分攻击能力(实际上,Flame病毒的攻击能力还远不止于此):

◆扫描网络资源

◆窃取指定信息

◆能够侦测到100多种安全防护产品(包括反病毒软件、反间谍软件和防火墙等)

◆进行屏幕截图

◆记录语音通话

◆利用 PE 加密资源

◆像 Stuxnet 和 Duqu 一样把自己隐藏为名为 ~ 的临时文件

◆使用已知漏洞,如被Stuxnet利用的Print Spooler 和 lnk漏洞

◆通过 USB 闪存和局域网攻击新系统(缓慢传播)

◆使用 SQLite 数据库存储收集到的信息

◆使用自定义数据库来构建攻击模块(这很罕见,但显示了这一恶意软件的模块化构造和可扩展性)

◆运行于Windows XP、Windows Vista 和 Windows 7 系统

◆随 Winlogon.exe 一起加载并注入IE和服务项中

◆复杂的内部功能能够调用Windows APC、操控线程启动并对关键进程进行代码注入

◆往往位于临近的系统上并通过局域网进行总控和发起目标注入攻击

◆通过 SSH 和 HTTPS 协议与总控服务器通信

◆同时使用内核模式和用户模式逻辑

总体而言,Flame病毒在一些工作原理上与 Stuxnet 和 Duqu 十分类似,但代码库和具体实施上则差别很大,因为Flame病毒更加复杂,攻击能力更强。

Flame病毒极其复杂的结构

迈克菲通过反编译操作发现,其主模块包含 65 万行 C 语言编写的代码。所有迹象都表明,这并非这一恶意软件的所有代码,预计最高可能达到 75 万行以上。鉴于此,迈克菲已着手展开长期分析,以确定其完整的功能和特性。

根据截至目前所获得的数据及分析结果,迈克菲使用IDA(一款专业反汇编和反编译工具)完成了跟踪工作,并绘制了以下代码关系图:

 

 

这个像龙卷风一样的代码关系图展示了Flame病毒庞大的代码群及代码间复杂的关系。令人惊叹的是,这只是主模块的代码!仅仅这一个模块就调用了大约 4400 多次字符串反混淆例程。本质上讲,如果代码中存在容易引起关注的字符串,例如"flame::beetlejuice::BeetleJuiceDataCollector,"或"flame::gator::GatorCmdFetcher,",它就会把信息封装在一个密封函数中。这使得本已十分庞大的代码进一步"增肥",要成功辨识更是难上加难。

代码中用到的混淆字符串量超乎寻常,这保证了可执行文件的功能不仅难于理解,而且即使代码被他人捕获也无法轻易用于其他目的。

代码中包含了其所需的全部库代码:SSH、ZLib 例程、Web 服务器代码等。从这点来说,代码中至少涉及几十种加密函数,例如,Blowfish 算法、MD5/MD4 函数等。

Flame似乎对有关专业监控需求和操作的信息"情有独钟"。它的一些功能和特性包括:

◆具备适用于文件系统解析和存取的低级别磁盘存取解析

◆支持 ZIP 文件解析

◆能够解析多种文档格式,例如,PDF、Microsoft Word 和其他 Office 格式

◆特别关注记录项,搜索目标项时即使是操作系统内的隐藏位置也不会放过

◆"热衷"于探究目标桌面上的内容

◆能够在特定的域内实现远程自行传播

◆该恶意软件在搜寻到需要的信息后会非常谨慎地传回给控制服务器:这一点是通过在后台启动额外的 IE 实例并将代码注入其中来实现的。如此一来,它就成功"化身"为计算机上的一项"可信"进程,从而绕过个人防火墙。

◆可能最重要的是,移动设备才是它的"兴趣所在"。 这正是 Beetlejuice 模块的"用武之地"。该模块就好像进入计算机的"幽灵"一样到处搜寻蓝牙设备,同时通过查找联系人来关注目标受害人的社交网络。在本地同样可以这样做,因为它能够在文件中或执行信息同步的主机上找到设备信息。目前为止,Sony 和 Nokia 设备的联系信息已成为其觊觎的目标。当然,这其中的文章绝非表面看上去这样简单。

实际上Flame病毒还在不断"与时俱进"。对该病毒的分析将是长期的工作。20 世纪 90 年代,病毒分析可谓争分夺秒,被调侃为"百米赛跑"。 如果说那个年代的病毒的实际代码可以打印出 100 米,那么 Flame的代码长度足可达到一英里(约为1609米)。这样看来,对Flame病毒的分析可以堪称"一英里徒步"!

 

Flame病毒能够随意更改其名称和扩展名,迷惑性极强

威胁文件可以根据控制服务器特定的指令和配置使用情况更改文件名和扩展名。一些情况下,Flame可以检测到特定的防病毒软件,于是就会更改可执行文件 (DLL) 的扩展名,比如从 OCX 更改为 TMP。实际上,通常在受感染的系统上,尤其是威胁先于安全产品安装的情况下,就不需要进行这样的更改。

Flame病毒的主模块超过6MB,而完全部署后接近20MB。毫无疑问,这是一款包含大量代码的恶意软件,它使用了Zlib、LUA Interpreter、SQLite 支持、Custom DB 支持代码等,整个代码像一个复杂的企业数据库系统。

加密包含简单的模糊处理,例如带有字节值的 XOR。在一些其他攻击中,都用到了 XOR 密钥 (0xAE),这揭示了其与 Duqu 和 Stuxnet 的一些潜在关系,因为它们也使用这个值。但 Stuxnet 和 Duqu 会在使用此字节值的同时结合使用其他值,包括具有可能含义的日期。

除了上述内容,Flame在代码方面并未显示出与Stuxnet或 Duqu 的直接关系。它采用了相似但又复杂得多的结构,这在很多方面都提醒了研究人员,这些攻击具有高危性。根据早期日期值来判断,它从某些方面可以视为一个并行项目。而从文件中遗留的日期值不难发现,攻击文件中融入了 2011 年 1 月和 8 月最新开发的代码。文件标头中的日期经过了蓄意更改(例如,声称是 1994 年),但导出表日期值和文件其他位置的日期却暴露了真实日期:2011年。

Flame病毒与Stuxnet、Duqu病毒的关联

通过分析,可以发现虽然Flame病毒代码库与Stuxnet蠕虫病毒或Duqu木马病毒不同,但三者的攻击目标和技术非常相似。Flame与 Duqu 拥有差不多的变体数量,但其传播范围更广,代码结构更为复杂。显然,这一威胁经过了数年的开发,幕后很可能是一支训练有素的大型而专门的团队。

Stuxnet于2010年7月被发现,这种蠕虫病毒专门针对德国西门子公司设计制造的供水、发电等基础设施的计算机控制系统,伊朗曾承认Stuxnet影响到其核电站的部分离心机。Stuxnet当年成名的一个重要原因在于其使用了"零日漏洞"攻击,即病毒编写者利用自己发现的4个系统漏洞,在软件公司发布补丁之前发起攻击。而Flame病毒利用的已知漏洞中就包括Stuxnet曾攻击的两个漏洞。Duqu病毒针对的也是工业控制系统,目的在于收集信息。业界普遍认为,Stuxnet和Duqu来源相同,因为它们都需要多人长时间合作完成,极可能是某组织或政府机构所为。

通过目前迈克菲网络动态传感器检测到的信息,我们在地图上绘制了Flame病毒的感染情况:

 

 

上图显示伊朗是Flame病毒的重灾区。实际上,在过去至少两年中,Flame病毒已经感染了伊朗、黎巴嫩、叙利亚、苏丹、其他中东和北非国家的相应目标计算机系统。此威胁的攻击目标仅限于一些个人、组织和机构,是极具针对性的威胁。

作为安全公司,迈克菲将对Flame病毒展开长期分析,以确定其完整的功能和特性。帮助大家更好地了解这一威胁并部署安全防护措施。

 ''''本文转自    geekwolf   51CTO博客,原文链接:http://blog.51cto.com/linuxgeek/998184

相关文章
|
消息中间件 监控 NoSQL
Celery 高效异步任务队列:打破常规,颠覆认知,应用实践全攻略在此!
【8月更文挑战第5天】Celery 是一款强大的异步任务队列框架,适用于后台执行耗时任务如邮件发送、报表生成等。可通过`pip install celery`安装,并配置消息代理(如Redis)以启动服务。定义异步任务使用装饰器`@app.task`,并通过`.delay()`方法执行。任务状态和结果可通过`.ready()`和`.get()`查询。异常处理支持任务重试,性能优化包括调整并发数和选用高效消息代理。Celery 能显著提升应用效率与用户体验。
678 0
|
Rust 算法 Go
【密码学】一文读懂FNV Hash
FNV哈希全名为Fowler-Noll-Vo算法,是以三位发明人Glenn Fowler,Landon Curt Noll,Phong Vo的名字来命名的,最早在1991年提出。它可以快速hash大量的数据并保持较小的冲突概率,适合hash一些相近的字符串比如IP地址、URL、文件名等等。目前FNV算法有三个版本,分别是: FNV-0(已废弃)、FNV-1以及FNV-1a。这三个算法的结构非常相似,因此呢,在这里就一块说了。
4070 0
【密码学】一文读懂FNV Hash
|
7月前
|
移动开发 安全 API
VMware vCenter Server 7.0U3u 发布 - 集中管理 vSphere 环境
VMware vCenter Server 7.0U3u 发布 - 集中管理 vSphere 环境
258 0
VMware vCenter Server 7.0U3u 发布 - 集中管理 vSphere 环境
|
11月前
|
数据安全/隐私保护
思科模拟器Cisco Packet Tracer 8.2.1注册、下载和安装教程(正确+详细)
本文详细总结了思科模拟器Cisco Packet Tracer 8.2.1注册、下载和安装教程(正确+详细),看这一篇就够啦~
38111 6
思科模拟器Cisco Packet Tracer 8.2.1注册、下载和安装教程(正确+详细)
|
移动开发 JavaScript 前端开发
【Uniapp 专栏】Uniapp 与 Flutter 的功能特点对比
【5月更文挑战第15天】Uniapp 和 Flutter 是跨平台开发的热门框架。Uniapp 以其强大的跨平台兼容性和基于 Vue.js 的易学性著称,适合快速开发适用于 iOS、Android 和 H5 的应用。其丰富的组件生态简化了功能集成。然而,在复杂场景下,性能可能不及原生。Flutter 则以其全新渲染引擎实现流畅界面和高度自定义,性能接近原生,但学习成本较高,需处理特定平台适配。适用于高要求的项目。两者各有优势,选择应考虑项目需求、技术储备和开发周期。
1709 1
【Uniapp 专栏】Uniapp 与 Flutter 的功能特点对比
|
10月前
|
监控 数据可视化 定位技术
全面解读团队目标管理的6种常见方法(附OKR管理模板)
3分钟搞懂6种实用目标管理方法,包括SMART、OKR、KPI、BSC、里程碑等方法。
983 2
全面解读团队目标管理的6种常见方法(附OKR管理模板)
|
存储 安全 算法
MD5的日常实践应用:确保数据完整性与基础安全校验
**MD5概览:** 作为过时但仍然流行的散列函数,MD5用于生成数据固定长度的散列,常用于文件完整性校验和非安全密码验证。虽因易受碰撞攻击而不适于安全用途,但在低敏感场景下仍有应用。例如,Python代码展示如何计算文件MD5校验和及模拟MD5密码验证。不过,对于高安全需求,推荐使用SHA-256等更安全的算法。【6月更文挑战第17天】
1160 1
|
运维 搜索推荐 算法
|
数据安全/隐私保护
34Linux - 用户/权限管理(删除用户:userdel)
34Linux - 用户/权限管理(删除用户:userdel)
644 0