恶意代码大量使用网络连接,我们将解释如何开发基于网络的有效应对措施。
网络应对措施
网络行为的基本属性包含IP地址、TCP、与UDP端口、域名,以及流量内容等。因此,网络和安全设备可以利用它们,来提供网络应对措施,根据IP地址和端口,防火墙和路由器可以限制对网络的访问。配置DNS服务器,可以将一个已知的恶意域名重定向到内部主机,这被称为sinkhole技术。配置代理服务器,可以检测或者阻止访问某些域名。
入侵检测系统(IDS)、入侵防御系统(IPS),以及电子邮寄和web代理等其他安全应用。
在原生环境中观察恶意代码
恶意代码分析的第一步不应该是在实验环境中运行恶意代码,也不应该是解刨恶意代码分析它的反汇编代码。与之相反的是,你应该首先查看已经获得的关于恶意代码的所有数据。恶意代码分析师经常是得到一个没有任何上下文的恶意代码样本(或是可疑的可执行文件),但是在大多数情况下,你可以获取额外的更多数据。开始恶意代码网络行为分析的最好方法是挖掘恶意代码已经生成的日志、报警以及网络包。
来自真实网络的信息比来自实验环境的信息,有着明显的优势。
1、真实环境捕获的信息将提供恶意应用程序真实 行为的最佳视图,而恶意代码可以被编程,以加入探测实验环境的能力。
2、活跃恶意代码的真实场景信息 能够提供独特的视角,来加快分析过程。真实流量提供了恶意代码在两个端点(客户端和服务器端)之间的通讯信息,然而,在实验环境里,分析者通常只能获取其中一端的信息。而分析恶意代码如何接受内容,比起分析恶意代码如何产生内容,往往会更具有挑战性。因此,双向的样本流量可以帮助分析师加快恶意代码解析
3、此外,当你被动地查看信息时,不存在 泄露给攻击者分析活动的风险。
恶意代码行为的痕迹
我们在实验环境中运行这个文件,需要时刻注意它的网络行为。
1、请求域名
2、ip地址
3、http的GET请求
OPSEC=操作安全性
当调查恶意代码过程中采取某些行动时,会告诉恶意代码编写者你已经识别出了恶意代码,甚至可能会向攻击者透露你的个人信息。对于攻击者而言,有许多潜在的攻击方法,可以确定出调查活动
1、发送带有到某个特定链接的针对性网络钓鱼邮件(也被称为鱼叉式网络钓鱼),观察试图从期望地理区域之外IP地址发来链接的访问。
2、设计一种利用方式,在博客评论中创建一个经过编码的链接,从而有效地创建一个私人的但可以公开访问的感染审计记录。
3、在恶意代码中嵌入一个未使用域名,观察对这个域名的解析。
4、如果攻击者意识到自己正在被调查,他们可能会改变策略,从而消失得无影无踪。
安全地调查在线攻击者
最安全的选择是完全不使用互联网去调查攻击,但是这是不切实际的。
间接性策略
一种间接策略是使用某些旨在提供匿名服务机制,如 Tor
另一种策略是使用专门的机器来研究,通常是虚拟机。也可以用一些方法来隐藏专用机器的具体位置,如下:
1、使用匿名的蜂链接
2、通过安全shell(SSH)或者一个虚拟机私有网络(VPN),将你的连接通过远程的基础设施来进行隧道传输。
3、使用运行在线云服务中的一个临时远程机器。
获取IP地址和域名信息
DomainTools:http://www.domaintools.com
RobTex:http://www.robtex.com
BFX DNS logger: http://www.bfk.de/bfk_dnslogger_en.html
基于内容的网络应对措施
网络基本属性,ip和地址
基于内容特征往往更有价值并且作用更加持久,因为它们使用更多基础特征来识别恶意代码。
结合静态和动态技术分析
ida为主,其它为辅
寻找网络操作代码
评估网络通信的第一步是找到用于执行通信的系统调用。Windows套接字(winsock)中的 部分API是最常用的底层函数。
了解网络内容的来源
特征生成中最有价值的元素是恶意代码中的硬编码。
1、随机数据
2、来源于标准网络库的数据
3、来源于恶意代码的硬编码数据
4、关于主机及其配置信息的数据
5、从其他来源接受数据
临时数据
恶意代码运行时会生成一下临时数据,这可能会很有价值。确定编码方式。
了解攻击者的意图
1、专注属与两端之间的协议元素
2、专注于已知的任何协议元素作为秘钥的部分
3、确定流量中不太明显的协议元素