深层防毒指南:快速和有效地相应恶意软件事件[二]
步骤 3:恶意软件分析
控制恶意软件攻击的传播后,必须花些时间了解突发的本质并对恶意软件执行更详细的分析。不执行该步骤可以增加再次感染的可能性;不了解恶意软件的工作方式将无法确保系统已被清理并可以免遭未来的攻击。
理想情况下,安全小组的成员将使用专用的应用程序和实用程序集(可用于自动收集所需信息)执行对恶意软件的分析。以下步骤将帮助了解攻击的本质。
检查操作系统元素
尝试确定攻击引入或修改的操作系统。作为该分析的一部分,查找以下方面的更改:
• 活动的进程和服务。
• 本地注册表。
• Microsoft? Windows? 系统文件夹中的文件。
• 新用户或组帐户,尤其是拥有管理员特权的新用户或组帐户。
• 共享文件夹(包括隐藏文件夹)。
• 具有正常的文件名但位于异常位置的新建文件。
• 打开的网络端口。
可用于检查这些操作系统元素的技术将在以下部分中介绍。
检查活动进程和服务
受感染的系统可能在其内存中引入了新进程。
要帮助最小化进程列表中的条目数并因此帮助标识任何恶意进程,应关闭所有有效应用程序以及任何有效的后台应用程序,如 Instant Messenger、电子邮件监视器或驻留在内存中的第三方实用程序。
如果专用工具不可用,则可以使用所有 Microsoft Windows 系统中的 Windows"任务管理器"工具来快速检查在系统中运行的活动进程。然而,由于"任务管理器"不显示启动进程的图像的路径,因此无法确定作为"svrhost"启动的恶意软件攻击是否是合法进程。
完成以下步骤以使用"任务管理器"分析活动进程:
要分析运行 Windows 的计算机上的活动进程,请执行下列操作:
1. 同时按下 Ctrl+Alt+Del 弹出"Windows 安全"窗口并选择"任务管理器"。注意:在 Windows 9x 计算机中,您将看到一个运行程序列表,而非"任务管理器"应用程序。
2. 单击"进程"选项卡。
3. 调整 Windows"任务管理器"窗口以便在屏幕上显示尽可能多的活动进程。
4. 从菜单条中选择"视图"选项并单击"选择列..."。
5. 选择以下列的复选框:
• PID(进程标识符)
• CPU 使用情况
• CPU 时间
• 内存使用情况
• 内存使用峰值
• I/O 读取
• I/O 写入
6. 单击"确定"并调整该窗口的大小,以显示尽可能多的这些列。可以通过单击任何列标题对列进行排序。对列出的每个列使用该排序方法并确定哪些进程使用哪些资源。
注意:要获取该列表的打印输出以便以后参考,激活 Process Explorer 或 Windows"任务管理器"窗口并按键盘上的 Alt+Print Screen。将在计算机的剪贴板上创建列表的屏幕快照,可以将该快照粘贴到 Windows Paint 应用程序或 Microsoft Word 中并进行打印。
下图将 Blaster 蠕虫的进程详细信息显示为 Microsoft Windows 2000? Server"任务管理器"中的活动进程。

图 4.3 显示活动 Blaster 蠕虫进程的 Windows 2000 任务管理器
注意:某些恶意软件可能尝试阻止"任务管理器"作为某种形式的防御启动。这种情况下,可以在 Microsoft Windows? XP 和 Windows Server? 2003 计算机上使用 Tasklist 命令行实用程序(或在 Windows 2000 计算机上使用 TList 命令行实用程序)生成可复制到可移动媒体的简单文本文件列表,以便进一步分析。使用以下命令行语法生成包含所有活动进程列表的文本文件:
tasklist /v >TaskList.txt
该命令行将在当前工作目录中创建一个名为 TaskList.txt 的文件。
使用以下提示检查被怀疑正在运行某种形式的恶意软件的计算机上的进程:
• 检查正在运行的 Telnet 或文件传输协议 (FTP) 服务的实例。
• 如果对进程不确定,则使用 Internet 搜索引擎(如 Google)尝试查找有关它的某些信息。
• 检查可以识别其图像名称的进程的图像文件的路径。
• 查找正在运行和已经停止的服务。
除上图中显示的 msblast.exe 进程以外,其他可能的可疑进程包括:
• ServuFTP
• Ocxdll.exe
• Kill.exe
• Mdm.exe
• Mdm.scr
• Mt.exe
• Ncp.exe
• Psexec.exe
• Win32load.exe
检查启动文件夹
恶意软件可以尝试通过修改系统的启动文件夹来自行启动。
注意:根据所分析的操作系统的不同,这些文件夹的准确路径将发生更改。以下信息适用于运行 Windows XP、Windows Server 2003 或 Windows 2000 的操作系统。
应检查启动文件的两个区域。第一个是"所有用户"文件夹,该文件夹可以在以下默认位置找到:
C:Documents and SettingsAll UsersStart Menu
第二个区域是当前登录的帐户的用户配置文件路径,检查系统上创建的所有配置文件而不仅仅是当前登录的帐户是很重要的。您将在 C:Documents and Settings
检查每个启动文件夹中的条目,以确保在系统启动过程中没有恶意软件尝试启动。
检查计划的应用程序
恶意软件还可能(但很少见)尝试使用 Windows 计划程序服务启动未授权的应用程序。要确认不存在该情况,应通过完成以下步骤对计划程序队列执行简单检查:
要检查计划程序队列,请执行下列步骤:
1. 单击"开始"、"运行",键入 at,然后按 Enter
2. 检查该列表。如果它显示任何未授权或可疑应用程序,则使用下列命令创建一个报告,以便进一步分析:
• 单击"开始"、"运行",键入 at >C:AT_Queue_Report.txt,然后按 Enter 键。
执行该命令将在 C: 驱动器的根目录中创建一个文本文件,该文件应移动到可移动磁盘中以便进一步分析。检查该文本文件,以确定在队列中是否计划了任何未授权的应用程序。
一旦完成对活动进程和计划进程的完整分析后,可以标识攻击引入的一个或多个进程。一旦记录这些进程,应重新启动系统,然后重复分析,以确定在启动时是否启动旨在破坏系统其他区域和允许的恶意进程的攻击。如果启动,则将完成对系统启动文件和注册表的分析,以找到用于维护一个或多个恶意进程的机制。
分析本地注册表
由于完成的系统注册表是大型的复杂数据存储,因此在完成攻击恢复进程后创建整个系统注册表的副本以进行详细分析将很有好处。
所有 Windows 版本包含的备份实用程序可用于备份和恢复整个注册表。如果已经使用备份定期备份硬盘,则可以轻松地在这些备份中包含注册表。要使用备份应用程序备份注册表,请在选择要包含在备份集中的驱动器、文件和文件夹时选择"系统状态"。
由于"系统状态"包含其他系统特定信息和注册表,因此这些备份文件的大小可能为数百 MB。另一个选项是使用所有 Windows 版本附带的注册表编辑器实用程序。这些实用程序比较适合于生成注册表副本。Windows XP 和 Windows Server 2003 有两个注册表编辑器工具,Regedit.exe 和命令行工具 Reg.exe。
要使用 Regedit 生成注册表的副本,请执行下列操作:
1. 单击"开始"、"运行",键入 Regedit,然后按 Enter。
2. 在左侧窗格中,选择"我的电脑",然后从"文件"菜单中,选择"导出"。
3. 在"文件名"框中,键入注册表文件副本的名称和位置。
4. 在"导出范围"中,单击"全部",然后单击"保存"。
要点:由于该磁盘将暴露给恶意软件,因此必须多加留意以确保在建立有效的控制方法前,不会将该磁盘暴露给其他系统。
成功备份注册表后,在以下区域中检查任何异常的文件引用:
HKEY_LOCAL_MACHINESystemCurrentControlSet
ControlSessionManagerKnownDLLs
HKEY_LOCAL_MACHINESystemControlSet001ControlSession ManagerKnownDLLs
HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrent VersionRun
HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrent VersionRunOnce
HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrent VersionRunOnceEx
HKEY_LOCAL_MACHINESoftwareMicrosoft
WindowsCurrentVersionRunServices
HKEY_LOCAL_MACHINESoftwareMicrosoftWindows NTCurrentVersionWindows ("run=" line)
HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrent VersionRun
HKEY_CURRENT_USERSoftwareMicrosoftWindows
Current VersionRunOnce
HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrent VersionRunOnceEx
HKEY_CURRENT_USERSoftwareMicrosoftWindows
CurrentVersionRunServices
HKEY_CURRENT_USERSoftwareMicrosoftWindows NTCurrentVersionWindows ("run=" value)
注册表的这些区域通常是恶意代码的攻击目标,因为它们允许恶意软件在系统启动时自行启动。例如,W32@.Mydoom.G@mm 蠕虫将以下值:
"(Default)" = "%System%
添加到以下注册表项:
HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRun
HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun
最近被作为攻击目标的另一个区域是以下项:
HKEY_CLASSES_ROOTCLSID{E6FB5E20-DE35-11CF-9C87-00AA005127ED}InProcServer32
该项控制 Microsoft Internet Explorer (Explorer.exe) 加载的 .dll 文件。例如,Mydoom 蠕虫及其变体将在此处添加一个项目,以便加载一个将打开缺陷并允许后门攻击的 .dll 件。
W32.Netsky.D@mm 蠕虫将同时删除该项和以下项:
HKEY_CURRENT_USERSoftwareMicrosoft
WindowsCurrentVersionExplorerPINF
HKEY_LOCAL_MACHINESystemCurrentControlSetServicesWksPatch
检查恶意软件和损坏的文件
大多数恶意软件将修改计算机硬盘上的一个或多个文件,而查找已受到影响的文件可能是一个很困难的过程。如果通过映像创建了系统,则您可以将受到感染的系统直接与通过该映像创建的全新系统进行比较。
如果该选项不可用,则另一个确定哪些文件已被更改的方法是对自从恶意软件首次引入系统时更改的所有文件进行系统范围的搜索。可以使用 Windows 搜索工具进行搜索;以下屏幕快照显示了如何使用"搜索结果"窗格的高级选项缩小受感染文件的搜索范围。

图 4.4"搜索结果"高级选项对话框
按照该图所示设置选项后,将列出在恶意软件引入主机的日期(例如,2004 年 4 月 27 日)创建的所有文件。
还可以创建一个包含当前目录及其子目录中的所有文件列表的文本文件,但应注意,该列表可能是长列表。
要在目录及其子目录中创建一个所有文件列表,请执行下列操作:
1. 单击"开始"、"运行",键入 cmd,然后按 Enter。
2. 更改到要记录的目录。
3. 在命令提示符下,键入 dir /s /-c /o:-d /t:c /q > FileList.txt,然后按 Enter。
执行该命令将在当前目录中创建一个名为 FileList.txt 的文本文件,应将该文件复制到可移动媒体以便进一步分析。
注意:有许多其他方法可以通过使用其他工具和脚本创建类似列表。然而,本部分旨在帮助使用计算机上可用的工具快速收集信息。如果有时间准备一个包含更高级脚本的紧急响应工具包,则使用它代替此处显示的过程。
完成该搜索后,可以按类型对搜索结果进行排序,以便帮助标识可执行文件(它们通常是恶意软件的攻击目标)。下表提供了可能包含可执行代码的某些更常见文件类型的示例:
*.exe *.html *.cmd *.htm
*.bat *.cpl *.pif *.pot
*.vbs *.vbe *.js *.jse
*.scr *.jpg *.doc *.xls
*.mdb *.com *.ocx
注意: 索列表可能包含大量条目,且您在该过程的此阶段可能没有时间查看所有修改。然而,当您有足够的时间查看可能的目标文件时,必须保存或打印该列表的副本。
以下文件可能指示系统上存在恶意软件:
• DLL16.ini
• DLL32.hlp
• DLL32NT.hlp
• Gates.txt
• Gg.bat
• Httpsearch.ini
• Seced.bat
• Xvpll.hlp
• Psexec.bat
• Lcp_netbios.dll
这些文件曾被恶意软件攻击所使用,此处提供它们是为了演示曾用于尝试隐藏恶意软件文件的命名技术。如果您不清楚特殊文件名,则 Internet 搜索有时可以指示文件本质以及它是否链接到恶意软件。然而,由于恶意软件攻击可以修改 Internet 浏览行为,因此必须在未受感染的系统上执行此搜索。
还必须注意,某些恶意软件攻击已经使用了有效的系统文件名,但将该文件置于其他文件夹中,以免被 Windows 文件保护服务检测到。例如,恶意软件曾使用一个名为 Svchost.exe 的文件,该文件通常安装在 %WINDIR%System32 文件夹中并在该文件夹中受到保护。然而,直接在 %WINDIR% 文件夹中创建同名文件的恶意软件示例已被看到。必须检查完整路径和文件名。
恶意软件攻击用于放置和修改文件的某些常见目标区域包括:
v• %Windir%。这是一个分配给 Windows 操作系统默认安装文件夹的变量。该文件夹包含一些重要的可执行文件和配置文件。默认情况下,该变量将指向以下文件夹路径:
• C:Windows(对于 Windows 95/98/ME/XP 和 Windows Server 2003 系统)。
• C:Winnt(对于 Windows NT/2000 系统)。
• %System%.这是分配给 Windows 操作系统默认安装文件夹下的系统文件夹的变量。该文件夹包含主机操作系统的系统文件。默认情况下,该变量将指向以下文件夹路径:
• C:WindowsSystem(对于 Windows 95/98/ME 系统)。
• C:WinntSystem32(对于 Windows NT/2000 系统)。
• C:WindowsSystem32(对于 Windows XP 和 Windows Server 2003 系统)。
• %Temp%.这是分配给应用程序用于写入临时文件的路径的变量。默认情况下,该变量分配给以下路径:
• C:WindowsTEMP(对于 Windows 95/98/ME 系统)。
• C:WINNTTemp(对于 Windows NT/2000 系统)。
• C:Document and Settings
• %Temporary Internet Files%.这是 Internet 浏览器应用程序用于在 Web 浏览过程中存储临时文件的变量。默认情况下,该变量将指向以下路径:
• C:WindowsTemporary Internet Files(对于 Windows 95/98/ME 系统)。
• C:Document and Settings
如果系统文件分析不包含任何受感染文件,则应将文件复制到可移动媒体,以便进一步分析。显而易见,由于这些文件已受感染,因此应采取措施以确保它们无法用于预期进程以外的任何进程。您可能考虑帮助保护这些副本的一些步骤包括:
• 更改文件扩展名。通过将文件扩展名更改为操作系统未知的名称,意外单击将无法执行该文件。例如,考虑用下划线替换文件 Avirus.exe 的最后一个字母,即 Avirus.ex_。
• 将受感染文件存储在受保护的存档。考虑将受感染的文件压缩,并使用密码保护已压缩的文件。
• 专用媒体。使用带颜色的磁盘或非标准标签确保能够在物理上标识可移动媒体和标准媒体。
• 将文件锁定在安全的位置。从物理上确保所有恶意软件示例媒体或某种其他安全存储设备的安全。
• 只有电子邮件保护的存档。如果需要通过电子邮件发送可疑恶意软件(例如,发送给防病毒供应商),则始终发送恶意软件的密码保护的存档文件。如果恶意软件作为典型的不受保护附件发送,电子邮件网关将能够扫描和检测恶意软件。
注意:一些恶意软件攻击已使用受保护存档避开防病毒扫描技术。结果,一些组织阻止或隔离了所有入站存档文件。发送文件前,检查该机制对预期收件人能否正常工作。
检查用户和组
某些恶意软件攻击将尝试评估系统上现有用户的特权,或在拥有管理员特权的组中添加新新帐户。检查以下异常设置:
• 旧用户帐户和组。
• 不适合的用户名。
• 包含无效用户成员身份的组。
• 无效的用户权限。
• 最近提升的任何用户或组帐户的特权。
• 最后,确认所有管理器组成员均有效。
使用本地用户和组 Microsoft 管理控制台 (MMC) 管理单元检查添加到本地管理员组的任何异常设置。还应检查本地计算机的安全日志中是否存在任何异常条目。例如,"帐户管理"类别条目(如事件 636)指示已将新成员添加到本地组。这些日志还将为您提供更改发生的日期和时间。
注意: 尽管这些文章介绍了 Windows 2000,但它也与 Windows 2003 相关,因为相同的基本默认组未更改。但 Windows Server 2003 引入了附加的默认组,如网络服务和本地服务特殊组。检查默认的系统配置,以获取详细信息。
检查共享文件夹
恶意软件的另一个常见症状是使用共享文件夹传播感染。使用计算机管理 MMC 管理单元,或通过命令行使用 NetShare 命令检查受感染系统上的共享文件夹的状态。下表演示了 Windows 客户端和服务器上的默认共享文件夹。
注意: 默认情况下,Windows 9x 计算机不共享文件或文件夹,除非文件共享已启用。此外,Windows 9x 客户端没有"admin$"或等效的隐藏共享;只有那些特别共享的文件夹或卷可通过网络使用(阻挡通过某种方式破坏的系统或其中安装的某些远程控制软件)。
表 4.1:Windows XP 默认文件夹共享
| 共享文件夹 | 共享路径 | 备注 |
|
ADMIN$ |
C:Windows |
Remote Admin |
|
C$ |
C: |
默认共享 |
|
|
|
表示系统上每个固定驱动器的根目录的共享。 |
|
SharedDocs |
C:Documents and SettingsAll UsersDocuments |
将添加,如果启用了本地文件共享。 |
表 4.2:Windows Server 2003 和 Windows 2000 Server 默认文件夹共享
| 共享文件夹 | 共享路径 | 备注 |
|
ADMIN$ |
C:Windows |
Remote Admin |
|
C$ |
C: |
默认共享 |
|
|
|
表示系统上每个固定驱动器的根目录的共享。 |
|
SharedDocs |
C:Documents and SettingsAll UsersDocuments |
将添加,如果启用了本地文件共享。 |
|
Wwwroot$ |
C:inetpubwwwroot |
将设置,如果将 Internet 信息服务 (IIS) 安装为 Web 服务器。 |
检查打开的网络端口
许多恶意软件攻击尝试削弱已遭破坏的系统,以便将来更容易进行攻击。一个通常使用的技术是打开主机上的网络端口,恶意软件攻击者随后将使用这些端口获取该主机的其他路由。
最后,可以使用 Windows 附带的 NetStat 命令行实用程序记录侦听的当前网络连接和网络端口的状态。该工具可用于获取网络连接和端口状态的完整打印输出。
要创建 Netstat 报告,请执行下列操作:
• 在受感染的主机上,单击"开始"、"运行",键入 Netstat -an >c: etstat_report.txt,然后按 Enter 键。
注意: 如果在 Windows XP 或更高版本上运行 Netstat,则可能希望使用以下命令,该命令将在报告中列出关联的进程标识符 (PID):
Netstat -ano >c:
etstat_report.txt
将在 C: 驱动器的根目录创建一个名为 netstat_report.txt(您可能还希望向该文件名中添加日期)的文本文件。该文件应保存到可移动媒体,以便进一步分析。
使用网络协议分析器
网络协议分析器工具可用于创建受感染主机传入和传出的数据的网络流量日志。网络跟踪文件应保存为信息文件集的一部分,以便进一步分析。
检查和导出系统事件日志
可以使用 Windows 系统事件日志识别各种异常行为(可用于标识恶意软件所做的更改以及更改的时间)。使用事件查看器管理控制台将每种类型的事件日志文件(应用程序、安全和系统)保存到可移动媒体,以便进一步分析。默认情况下,这些文件存储在 C:WinntSystem32Config 目录中,并分别称为 AppEvent.evt、SecEvent.evt 和 SysEvent.evt。然而,当系统处于活动状态时,这些文件将被锁定,因此应使用事件查看器管理工具导出。
以下提示提供了有关如何使用这些日志以帮助确定恶意软件攻击的影响的信息:
• 查找发生可疑攻击时的任何更改。
• 将事件日志时间与文件创建和修改时间进行比较。
• 查找可疑入侵时创建的帐户或更改的密码。
在恶意软件分析过程结束时,可以考虑根据恶意软件的本质重新连接孤立网络。例如,如果分析只通过特殊对等 (P2P) 应用程序确定恶意软件传播,则更改外围防火墙筛选器以阻止该应用程序使用的网络断口将还原网络和其他服务。该修补将使组织能够在进行系统恢复时返回到某个级别的正常通信。
相关文章
- 深层防毒指南: 网络防护层应用策略、过程和意识
- 深层防毒指南-- 网络防护层配置以及物理安全性
- 深层防毒指南--电脑客户端的病毒防护步骤 [图]
- 深层防毒指南:恶意软件的威胁方法与如何防护[图]
- 深层防毒指南---什么不是恶意软件以及如何检测?
- 深层防毒指南--什么是恶意软件以及其特征 [图]