迈克菲实验室:Flame病毒的深度分析(2) |
发布时间: 2012/7/3 17:55:09 |
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病毒的分析可以堪称"一英里徒步"! 本文出自:亿恩科技【www.enkj.com】 |