毋庸置疑,乌克兰现在唯一不缺的就是恶意软件了。
新的一年即将到来,在此我建议广大的安全技术人员能够花费更多的时间去对恶意PE文件的攻击行为进行静态分析。最近,我对Cybrary网站所提供的恶意软件逆向工程材料进行了分析,我将在这篇文章中把我的研究成果展现给大家,并且还会与大家分享我的一些的观点和看法。现在,网络上有很多的恶意软件沙箱分析服务可供我们使用,而且这些服务大多数都是一些自动化的分析服务,但是正如我在这篇文章中所写到的那样,如果我们真的需要对某一恶意软件进行深入的分析,那么相关的技术知识是不可或缺的。如果我们过度依赖某一分析工具,那么它将会限制我们对恶意软件工作机制的理解,恶意软件对我们来说将会变成一个黑盒,而且我们将无法确定哪一个输出数据是可信任的,这一切将会导致我们得到错误的发现和毫无意义的情报。如果要验证我们所使用的工具是否有效,那么手动进行分析和研究则显得尤为重要了。这样一来,我们就可以更加深入地理解我们所要保护的系统,而且我们也可以更加了解恶意软件内部的构造和运行机制。我们在下方列出了手动分析的具体优势:
l 识别出反虚拟化技术;
l 识别出反调试技术;
l 确定漏洞利用工具的反分析机制(有的恶意软件会在其入侵的僵尸网络中阻止安全厂商进行IP扫描);
l 了解到恶意软件的完整功能(恶意软件的运行机制,键盘记录功能,C2通信模式,用户进程钩子,金融盗窃功能,应用程序白名单绕过技术,进程注入方法,内存保护绕过方法,0 day漏洞利用,封装技术,横向转播,持久机制等等);
l 识别字节码,字符串,互斥量,以及其他的一些入侵指标。自动检测方案以及恶意软件行为分析有可能会无法检测到这些信息;
手动检测恶意软件样本中的动态或静态文件能够让我们更加了解恶意软件的内部机制,这些信息将有助于我们对恶意软件攻击事件的响应处理,而且也有助于我们提醒某些受到攻击的组织和机构他们将有可能遇到的安全风险。还有一种现象也是极为常见的,某些公司在检测到系统被感染之后,会直接将工作站或服务器下线,然后使用镜像恢复系统之后,又重新上线工作。这样一来,公司将无法意识到攻击事件的严重性,他们不仅无法鉴定该网络内其他的系统是否受到了影响,而且也无法得知是否有敏感信息泄漏了出去。更糟糕的是,大多数的中小型企业仍然会采用这样的处理方式,在这些企业中没有专门处理安全事件的安全专家,而且企业往往无法意识到事件的严重性(比如说,终端用户往往会抱怨应用程序打开速度很慢,或者在用户的使用过程中,系统很容易崩溃)。
有的公司有其自己的事件响应机制,他们能够分析系统日志,网络通信数据,未知进程,以及识别网络中其他的设备或者账户是否受到了影响。虽然这种机制算是比较先进的了,但是我们仍然无法得知这款恶意软件的实际功能是什么,而且我们也不知道这样的入侵将会给企业带来什么样的安全风险,而这些信息都是十分有价值的。
目前,乌克兰国内的多个行业似乎正在经历着一系列精心策划的信息安全攻击事件。这一切让我立刻联想到了Win32/Potao。Potao是一款类似BlackEnergy的恶意软件,这款间谍恶意软件主要针对的是前苏联国家,例如乌克兰,格鲁吉亚和白俄罗斯。
声明:我并不是一个全职的恶意软件分析专家,正如我所说的,这篇文章是为了帮助安全事件响应人员能够更好地进行恶意软件分析,从责任的角度出发,我们的确不应该逃避这一至关重要的步骤。
Malware Lab安装
为了能够在一个安全的条件下对恶意软件样本进行分析,我们需要构建一个小型的虚拟网络,所以我决定使用开源软件来进行操作。为了构建出我们的实验环境,我们还需要下载下列工具:
l Virtualbox(https://www.virtualbox.org/)
l Windows7中的IE9(拷贝)
l WindowsXP中的IE8(拷贝)
-我们可以从微软的官方网站上免费获取上述的两个IE
(https://dev.windows.com/en-us/microsoft-edge/tools/vms/windows/)
l 下载JRE 6或7
(http://www.oracle.com/technetwork/java/archive-139210.html)
l Flash 9或10
(https://helpx.adobe.com/flash-player/kb/archived-flash-player-versions.html)
l Office办公套件的试用版
(https://products.office.com/en-ca/try)
l Kali Linux的Virtualbox镜像(如果你想使用VMWare也可以,https://www.offensive-security.com/kali-linux-vmware-virtualbox-image-download/)
现在,大多数的CPU制造商都允许CPU对Virtualbox等虚拟机程序进行硬件虚拟化加速。但是,英特尔的VT-x系列在默认配置下并不支持这一功能,所以如果用户所使用的CPU是VT-x或者AMD-v系列的话,请先在BIOS中修改相应的设置后再进行操作。
配置
当Virtualbox安装完成之后,你将需要创建两个虚拟机。第一个用来运行Kali Linux,这个虚拟机将作为默认网关来进行网络分析并提供虚拟服务。第二个虚拟机就是我们的目标主机,这个虚拟机将会运行带有漏洞实例的Windows操作系统。
一、 在Virtualbox中,为Kali系统创建一个虚拟用户。在主机中,你还需要创建两个网络适配器。第一个适配器需要设置成NAT,第二个适配器需要设置成内部网络,摄制完成之后你还需要为这个虚拟网络命名。启动Kali Linux:
(1)、确保系统为eth0分配了一个NAT IP,并且你能ping通google.com;
(2)、在终端输入ifconfig,然后为第二个接口eth1分配静态IP:192.168.1.1,子网掩码为255.255.255.255;
(3)、通过下列命令重启服务:service networking stop和service networking start;
(4)、设置INetSim(http://www.inetsim.org/,或者你也可以使用FakeNet);
-在命令行中输入vim /usr/share/inetsim/conf/inetsim.conf,然后将service_bind_address的IP地址修改为虚拟网络中eth1的IP;
-在命令行中输入iptables -t nat -A PREROUTING -i eth1 -j REDIRECT,这段命令将确保新链接重定向至ethi1接口;
-启动INetSim,并确保所有需要的监听器都处于运行状态;
-现在,我们可以启动Wireshark或者tcpdump来获取所有的网络通讯信息了。
二、 在Virtualbox中,为Windows主机创建一个虚拟用户。这个虚拟机将是我们的目标主机。Windows虚拟机只需启用一个网络适配器,并且将其设置为“内部网络”,该网络的名称需要与Kali主机中的网络名称一致。
(1)、为连接至虚拟网络的接口设置静态IP(192.168.1.10);
(2)、打开命令提示符,输入添加路径0.0.0.0,掩码为255.255.255.255 ,IP为192.168.1.1,以此保证默认路径可用。然后将主机流量的下一跳地址设为Kili主机的网络地址;
(3)、将DNS服务主地址设为192.168.1.1;
(4)、移除Virtualbox的Guest增强工具;
(5)、确保接口没有通过NAT或者其他方式连接至你的主机系统;
(6)、取保你的Windows主机能够ping通Kali主机,并且能够正常浏览网页(INetSim会设置一个主页面来处理HTTP GET请求);
在上集中,我们对当前信息安全行业的事件响应状况进行了分析,并且讲述了我们实验环境的搭建要素,我们将在下集中给大家继续介绍我们的实验分析过程,请大家继续关注!
还没有评论,来说两句吧...