第14章 恶意代码的网络特征

Author Avatar
kabeor 9月 22, 2018

第14章 恶意代码的网络特征

1. 网络应对措施

网络行为的基本属性包括IP地址、TCP与UDP端口、域名,以及流量内容等,网络和安全设备可以利用它们,来提供网络应对措施。根据IP地址和端口,防火墙和路由器可以限制对网络的访问。

配置DNS服务器,可以将一个已知的恶意域名重定向到内部主机,这被称为sinkhole技术。配置代理服务器,可以检测或者阻止访问某些域名。

在原始环境中观察代码

真实环境捕获的信息将提供恶意应用程序真实行为的最佳视图,而恶意代码可以被编程,以加入探测实验环境的能力。

活跃恶意代码的真实场景信息能够提供独特的视角,来加快分析过程。真实流量提供了恶意代码在两个端点(客户端和服务器端)之间的通信信息,然而,在实验环境里,分析者通常只能获取其中一端的信息。而分析恶意代码如何接收内容(也就是解析例程),比起分析恶意代码如何产生内容,往往会更具挑战性。因此,双向的样本流量可以帮助分析师加快恶意代码解析例程的分析进度。

此外,当你被动地查看信息时,不存在泄露给攻击者分析活动的风险。

恶意行为的痕迹

OPSEC=操作安全性

OPSEC是政府和军方的一个术语,用来描述防止敌方获取敏感信息的过程。

2.安全地调查在线攻击者

间接性策略

一种间接策略是使用某些旨在提供匿名的服务或者机制,例如Tor,一个开放的代理,或者基于Web的匿名器。

另一种策略是使用专门的机器来研究,通常是虚拟机。

隐藏专用机器的具体位置的方法

  1. 使用匿名的蜂窝连接。
  2. 通过安全shell(SSH)或者一个虚拟私有网络(VPN),将你的连接通过远程的基础设施来进行隧道传输。
  3. 使用运行在云服务中的一个临时远程机器,例如亚马逊的弹性计算云(亚马逊EC2)。

获取IP地址和域名信息

Domain Tools(http://www.domaintools.com/)

这个网站提供了whois历史记录的查询,能够进行反向IP查询,来显示所有解析成某个特定IP地址的域名,以及反向whois查询。反向whois查询允许基于联系人信息的元数据,来进行whois记录查询。

RobTex(http:/www.robtex.com/)

这个网站能提供指向单个IP地址的多个域名信息,另外也集成其他一些有价值的信息

BFK DNS logger(http://www.bfk.de/bfk_dnslogger_en.htm/)

这个网站使用被动DNS监测信息。

3. 基于内容的网络应对措施

使用Snort进行入侵检测

Snort是最流行的入侵检测系统之一。Snort被用来生成网络特征或者规则,这些规则由一系列元素(被称作是规则选项)连接在一起,而只有这些元素均为真时,规则才会被触发。主要的规则选项被分为:识别内容元素的规则选项(在Snort系统术语中被称为负载规则选项),以及内容无关的规则选项(称作非负载规则选项)。非负载规则选项的例子中包括某些特定标志位,TCP或IP头中的特定值,以及包负载的大小。

Snort规则关键字描述

深入观察

4. 结合动态和静态分析技术

过度分析的危险

恶意代码分析深入级别

在众目睽睽下隐藏

  1. 攻击者模拟现有的协议
  2. 攻击者利用现有的基础设施
  3. 利用客户端发出的信令

理解周边代码

网络行为有两种类型:发送数据和接收数据。分析发送出去的数据通常比较容易,因为无论恶意代码何时运行,它都会产生出便于分析的样本。

寻找网络操作代码

了解网络内容的来源

特征生成中最有价值的元素是恶意代码中的硬编码数据。恶意代码发送的网络流量是从一组有限数据源中构造的。创建出有效特征,需要对每一块网络内容的数据来源有所了解。

下面是一些基本的数据源:

  1. 随机数据(例如调用生成伪随机值函数所返回的数据)。
  2. 来源于标准网络库的数据(例如调用HTTPSendRequest创建的GET请求)。
  3. 来源于恶意代码的硬编码数据(例如一个硬编码的User-Agent字符串)。
  4. 关于主机及其配置信息的数据(例如主机名,根据系统时钟的当前时间、CPU速率等)。
  5. 从其他来源接收的数据,例如远程服务器或者文件系统(例如,服务器发送的用于加密的随机数、本地文件,以及键盘记录器捕获信息等)。

硬编码数据 vs. 临时数据

与使用高层网络API(如COM接口)相比,恶意代码使用低层网络API(如Winsock)时,需要更多手动生成的内容来模仿常见流量。更多的手动生成内容就意味着更多的硬编码数据,从而增加了恶意代码编写者犯错误的可能性,你可以利用这些错误来生成网络特征。

确定和利用编码步骤

创建特征

分析解析例程

针对多个元素

5. 了解攻击者的意图

利用攻击者的弱点

  1. 专注属于两端之间的协议元素
  2. 专注于已知的任何协议元素作为密钥的部分
  3. 确定流量中不太明显的协议元素

From https://kabeor.github.io/第14章 恶意代码的网络特征/ bye

This blog is under a CC BY-NC-SA 4.0 Unported License
本文链接:https://kabeor.github.io/第14章 恶意代码的网络特征/