下一代动态网络分析工具FakeNet-NG的Linux平台初体验

本文讲的是下一代动态网络分析工具FakeNet-NG的Linux平台初体验

下一代动态网络分析工具FakeNet-NG的Linux平台初体验

在2016年,FLARE推出了一款用Python编写的开源网络分析工具FakeNet-NG。 FakeNet-NG允许安全分析人员在单个Windows主机上使用标准或自定义协议来观察网络应用程序并与其进行交互,这对恶意软件分析和逆向工程特别有用。自从FakeNet-NG的推出以来,FLARE又对其进行了一些升级,比如增加了对附加协议的支持。 FakeNet-NG现在具有DNS,HTTP(包括BITS),FTP,TFTP,IRC,SMTP,POP,TCP和UDP以及SSL的即用支持。

不过更令分析人员高兴的是,FLARE现在已将FakeNet-NG引入Linux。这允许分析人员在单个Linux主机上执行基本动态分析,或者在独立的专用设备上使用INetSim搭建虚拟网络环境。虽然INetSim目前仍然是许多分析师的首选工具,但随着FakeNet-NG的兴起,分析师又多了一个用于恶意软件分析的跨平台工具,FakeNet-NG可以直接与所有在安全领域不断出现的基于Python的信息工具进行集成。

在Linux上下载和安装FakeNet-NG

如果你正在运行REMnux,那么就可以直接安装FakeNet-NG了,现有用户可以通过运行update-remnux命令来获取它。

而对于其他Linux版本来说,设置和使用FakeNet-NG将需要Python pip包管理器,net-tools包以及OpenSSL,libffi和libnetfilterqueue的开发文件。至于如何快速获得几个常见的Linux发行版的相应先决条件,我们提供了以下两大方法:

1. 在Debian和Ubuntu上,运行sudo apt-get install python-pip python-dev libssl-dev libffi-dev libnetfilter-queue-dev net-tools命令

2. 在Fedora 25和CentOS 7上:

yum -y update;
yum -y install epel-release; # <-- If CentOS
yum -y install redhat-rpm-config; # <-- If Fedora
yum -y groupinstall 'Development Tools'; yum -y install python-pip python-devel openssl-devel libffi-devel                 libnetfilter_queue-devel net-tools

一旦你的设备满足了这些条件,就可以下载最新版本的FakeNet-NG,并使用setup.py install进行安装。

Windows和Linux下的FakeNet-NG支持

在Linux上,FakeNet-NG可以在专用于网络仿真的单独主机上以MultiHost模式部署,也可以在实验中使用SingleHost模式进行本地分析软件。 Windows仅支持SingleHost模式,默认情况下,FakeNet-NG配置运行在NetworkMode:Auto中,它将在Windows上自动选择Windows或MultiHost模式下的SingleHost模式。下表列出了操作系统当前支持的NetworkMode设置。

下一代动态网络分析工具FakeNet-NG的Linux平台初体验

FakeNet-NG对Linux上SingleHost模式的支持目前存在局限性。

首先,FakeNet-NG还不支持在Linux上对特定进程,主机或端口进行条件重定向,这意味着像ProcessWhiteList这样的设置将无法正常运行,所以开发人员计划在以后的版本中添加对这些设置的支持。同时,SingleHost模式支持将所有互联网绑定的流量重定向到本地监控器,这也是恶意软件分析人员的主要用例。

其次,python-netfilterqueue库被硬编码,以处理长度不超过4012个八位字节的数据报。环回接口通常配置有最大传输单元(MTU)设置,以允许某些应用程序超过此硬编码限制,从而导致意外的网络行为。可能由此引起异常的网络应用程序的示例将通过FTP的大型文件传输,因而对这个问题的解决方法就是重新编译具有较大缓冲区大小的python-netfilterqueue或将环回接口即lo的MTU降低到4012或更小。

在Linux上配置FakeNet-NG

除了新的NetworkMode设置外,对FakeNet-NG的Linux支持还引入了以下Linux特定的配置项:

1.LinuxRedirectNonlocal,对于MultiHost模式来说,此设置指定以逗号分隔的网络接口列表,将所有流量重定向到本地主机,以便FakeNet-NG能够对其进行回复。 FakeNet-NG的默认配置设置为*,它将FakeNet-NG配置为在所有接口上重定向。

2.LinuxFlushIptables,在为FakeNet-NG添加规则之前,LinuxFlushIptables配置项会删除所有的iptables规则。原始规则作为FakeNet-NG关闭序列的一部分进行恢复,当你按Ctrl + C时,它就会被触发。这样可以减少出现意外终止的冲突,错误或重复规则的可能性,并在FakeNet-NG的默认配置中启用。

3.LinuxFlushDnsCommand,该配置项会指定刷新DNS解析器缓存的命令。当在Linux上以SingleHost模式使用FakeNet-NG时,可以确保将名称解析请求转发到DNS服务,如FakeNet-NG DNS监控器,而不是使用缓存的回复。不过LinuxFlushDnsCommand配置项不适用于所有Linux版本,但在默认情况下可以使用Ubuntu Linux的正确命令填充。

在Linux上启动FakeNet-NG

在使用FakeNet-NG之前,请确保禁用那些可能绑定到你计划使用的FakeNet-NG监控器对应端口的任何服务,比如Ubuntu使用本地dnsmasq服务。你可以使用netstat来查找这些服务,并且应该参考你当下使用的Linux版所发行的文档来确定如何禁用它们。

你可以通过使用root权限调用fakeet启动FakeNet-NG,如下图所示。

下一代动态网络分析工具FakeNet-NG的Linux平台初体验

你可以通过直接编辑FakeNet-NG输出第一行显示的文件,或者使用-c命令行选项创建副本并指定其位置来更改FakeNet-NG的配置。

总结

FakeNet-NG现在为Linux提供了一种基于Python的恶意软件动态网络分析工具,同时也支持FakeNet-NG 在 Windows上使用监控器。 REMnux的用户可以直接使用FakeNet-NG,而其他Linu的用户可以使用标准的软件包管理工具进行下载和安装。




原文发布时间为:2017年7月17日
本文作者:xiaohui 
本文来自云栖社区合作伙伴嘶吼,了解相关信息可以关注嘶吼网站。
上一篇:PostgreSQL VS Oracle OLTP 的测试方法 - 2


下一篇:mxnet安装及NDArray初体验