1 网络应对措施
网络行为的基本属性:
IP地址、TCP/UDP端口、域名、流量内容等
配置DNS服务器,将一个已知的恶意域名重定向到内部主机,这种被称为sinkhole技术
配置代理服务器,可以检测或者组织访问某些域名。
1.1 在原始环境中观察恶意代码
恶意代码分析的一步不应该是在实验环境中运行恶意代码,也不应该是解剖恶意diamante分析它的反汇编代码。与之相反的是,应该首先查看已经获得的关于恶意代码的所有数据。
开始恶意代码网络行为分析的最好方法是挖掘恶意代码已经产生的日志,报警以及网礼包。
来自真实网络的信息比来自实验环境的信息,有着明显的优势:
- 真实环境捕获的信息将提供恶意应用程序真实行为的最佳视图,而恶意代码可以被编程,以加入探测实验环境的能力。
- 活跃恶意代码的真实场景信息能够提供独特的视角,来加快分析过程。真实流量提供了恶意代码在两个端点(客户端和服务器端)之间的通信信息,然而,在实验环境里,分析者通常只能获取其中一端的信息。而分析恶意代码如何接收内容(也就是解析例程),比起分析恶意代码如何产生内容,往往会更具挑战性。因此,双向的样本流量可以帮助分析师加快恶意代码解析例程的分析进度。
- 此外,当你被动地查看信息时,不存在泄露给攻击者分析活动的风险。这个问题将在“OPSEC=操作安全性”中详细解释。
1.2 恶意行为的痕迹
在分析恶意代码是,时刻注意它的网络行为。
比如DNS请求,HTTP请求或者各种相关IP域名。
1.3 OPSEC=操作安全性
OPSEC是政府和军方的术语,用来描述防止敌方获取敏感信息的过程。
当调查恶意代码的过程中采取某些行动时,会告诉恶意代码编写者你已经识别出了恶意代码,甚至可能会向攻击者透漏个人信息。
攻击者会利用很多方法,确定出是否被调查以及调查方法:
- 发送带有到某个特定链接的针对性网络钓鱼邮件(也被称为鱼叉式网络钓鱼),观察试图从期望地理区域之外IP地址发来链接的访问。
- 设计一种利用方式,在博客评论(或者其他一些可网上访问并可以自由编辑的站点)中创建一个经过编码的链接,从而有效地创建一个私人的但可以公开访问的感染审计记录。
- 在恶意代码中嵌入-一个未使用域名,观察对这个域名的解析。
如果攻击者意识到自己正在被调查,他们可能会改变策略,从而消失得无影无踪。
2 安全地调查在线攻击者
2.1 间接性策略
一种间接策略是使用某些匿名服务或机制,比如Tor或者代理。虽然这会帮助你保护隐私,但是它们常提供你试图隐藏的线索,因此可能会引起攻击者怀疑
另一种策略是使用专门的机器来研究,比如虚拟机,可以使用一些方法来隐藏专用机器的具体位置:
- 使用匿名网络
- 通过VPN或者安全shell,将连接通过远程的基础设施来进行隧道传输。
- 使用临时云服务器
2.2 获取IP地址和域名信息
当域名注册后,注册信息如域名,名字服务器,相关的一些日期以及一些注册域名机构的联系人信息,都被存储在注册机构。
互联网IP地址的注册机构被称为区域性互联网注册机构(RIP),他们存储着IP地址块,地址块分配给哪家组织,以及多种类型的联系信息。
3 基于内容的网络应对措施
基于内容的特征往往更有价值并且作用更加持久。
3.1 使用Snort进行检测
Snort被用来生成网络特征或者规则,这些规则由一系列元素连接在一起,只有这些元素均为真时,规则才会触发。
主要的规则选项被分为:
- 识别内容元素的规则选项(负载规则选项)
- 内容无关的规则选项(非负载规则选项)
Sonrt规则由两部分构成:规则头部和规则选项。
规则头部包含规则动作,通常是警告,协议,源IP与目的IP地址,以及源端口与目标端口。
详情参考sonrt文章
3.2 深入观察
恶意代码分析者必须在便携性和准确性之间取得平衡。
- 权宜方法是在沙箱里中的运行恶意代码并且假设所得结果已经足够
- 准确方法是逐个函数地完全分析恶意代码