无线蜜罐的技巧Wireless Honeypot Trickery
翻译者:san
作者:Laurent Oudot
最近几年,无线技术迅猛发展,现在无论在公司还是家庭都在广泛使用。人们已经对那些技术产生了很大的依靠性,以至于无线设备随处可见,从网络设备到笔记本电脑、照相机等等。虽然这些设备支持标准的安全选项和协议来对付普通攻击(加密、验证等),但是由于真实使用的安全等级以及攻击者把握的技术水平,所以这些设备还是可能受到攻击。
有时,黑帽子发现公司无线网络非常脆弱甚至没有安全性,他们能够以此为撕破口,进一步渗透到内部的机器来窃取信息或者作为跳板攻击Internet上其它机器以隐藏自己的踪迹。这些威胁可以穿越外部物理屏障(比如来自停车场,公司下的街道、窗口)或者就在你的内部环境,因为攻击者使用手持PDA或笔记本电脑,加上无线网卡和扫描软件就可以发现网络。
这篇文章主要介绍无线环境(WiFi相关技术)下蜜罐的建设以及对付黑帽子群体的策略。
1.0 无线密码的介绍Internet上有大量关于无线技术、无线威胁、无线安全和蜜罐技术的优秀资源,本文不再覆盖相关细节,主要关注核心主题:无线蜜罐。我们假设阅读此文的读者有无线网络、无线安全以及蜜罐方面相关的知识。首先我们会介绍一下什么是无线蜜罐,然后将通过两个简单的技术样例来具体介绍它的原理以及如何设计构建。在结束前,我们将介绍这种架构的一些局限性。
2.0 定义Honeynet项目的领导者Lance Spitzner对蜜罐的定义是这样的:“蜜罐是一种用来引诱未经验证或非法访问的信息系统资源。”[参考1]所以无线蜜罐就可以简单的认为是等待攻击者或恶意用户访问的无线资源。 3.0 目的为什么我们要使用无线蜜罐?这取决于你的网络和对安全的需要。当你使用无线蜜罐后,你会对它产生的好处感爱好的。在黑帽子团体里,有很多人喜欢攻击无线网络,因为对无线网络的攻击有如下几个特点:
- 安全:在攻击的时候无需实际的物理连接,可以保持较远的距离,所以被发现的时候可以跑开;
- 简单:现在到处都有大量开放或者不安全的AP(酒店、机场、公共区域无线服务点,还有SOHO无线网络等)。这种设备越来越便宜,而且数量越来越多;
- 技术新:无线网络的攻击比较有吸引力和挑战性;
- 隐蔽:对于黑客和网络恐怖分子来说,无线网络是一个理想的作案平台。随机使用开放AP连接网络,增加了攻击的隐蔽性,被捉获的可能性很小。
但是很多治理员经常认为,针对无线的攻击使得攻击者在位置上必须靠近网络设备,所以无线攻击的危险性要小于Internet的攻击。而且他们坚信这些攻击很少发生。但是对许多公司来说,无线网络被攻破带来的后果是非常严重的。
无线蜜罐可以帮助你的网络得到受攻击的真实统计数据,包括攻击频率、攻击者的技术水平、攻击得手次数以及使用的方法。无线蜜罐同样可以保护你的网络,因为它的迷惑性使得攻击者花费大量精力对付伪造的目标,而且不易发现你网络的真实构架。4.0 理论与实践怎样在无线环境里愚弄那些坏小子呢?要回答这个问题,你得思考你需要解决哪些威胁,然后制定实施计划。
4.1 无线活动性首先,攻击者会试图扫描或监听无线网络,所以你可以发送伪造的数据包让攻击者认为你这儿有一个无线网络(看后面FakeAP)。配置伪装的无线资源是一件很有趣的事情,非凡是模拟蜜罐的数据传输。但是目前可以自动或者轻易使用的这方面公开的工具还很少,不过我们可以使用以下的脚本来模拟AP和它的客户端之间的网络会话,也可以用tcpreplay来发送已经记录下来的数据包。法国的Honeynet项目有时使用Perl脚本来对一些随机的会话和命令进行对话。来自ENSEIRB的学生在对UML和蜜罐进行一些研究后,在2003年6月的法国SSTIC会议上提出这个想法。[参考2] 下面的两个脚本提供了自动进行会话和执行命令的功能,可以用来模拟无线数据传输:#!/usr/bin/perl
# initiated by Micha?l HERVIEUX, Thomas MEURISSE
# example of script to simulate an automatic FTP session
# feel free to modify it and add random activity
# launch it from your clients (use cron, etc)
use Net::FTP;
$ftp = Net::FTP->new("192.168.16.98");
if ($ftp == NULL)
{
print "Could not connect to server.n";
exit(9);;;;;
}
if ($ftp->login("barbu1", "StEugede"))
{
$ftp->cwd("/home/rpm/");
$ftp->get("Readme.1st");
$ftp->quit();
}
else
{
print "Could not login.n";
exit(7);
}
;
# initiated by Micha?l HERVIEUX, Thomas MEURISSE
# example of script to simulate an automatic SSH session
# feel free to modify it and add random activity
# launch it from your clients (use cron, etc)use Net::SSH::Perl;
my $ssh = Net::SSH::Perl->new("192.168.16.98",protocol => 2);
$ssh->login("misc","m4gRul3Z");
$ssh->cmd("who");
$ssh->cmd("uname -a");
# ?
相比有线网络,对于保持蜜罐活动性来说无线网络模拟数据传输非常重要,因为攻击者往往需要看到有数据传输才可以实施他们的攻击。绕过802.1X,绕过MAC地址过滤,破解WEP密钥,看见信标,看见了客户端连接数据桢里的SSID,而这一切必须有数据传输才能进行分析。
4.2 无线构架
首先,你起码有一个设备来提供无线接入。假如你选择真实的AP,那么把它安全的接入一个有线网络(至少有一台电脑),这个伪造的网络必须有一些可见的资源来吸引攻击者,还有一些不可见的资源来记录数据和检测入侵(捕捉数据)。为了监视2层无线的攻击,必须有一个不可见的处于Monitor模式的无线客户端来捕捉数据,Kismet软件可以实现这个目的。下面的图1展示了一个架构的样例:
图1:WiFi蜜罐架构样例假如你想给蜜罐网络提供Internet接入,那么需要增强你网络的真实性和可交互性,而且必须要非常小心并且使用一些入侵防范系统(IPS)过滤对外的网络传输以防止对外的攻击。Honeynet项目的snort-inline就是一个不错的工具。一般情况,大家还是不愿意给无线蜜罐提供有效的Internet连接,因为这样实在有些危险。然而接入Internet使得我们对黑帽子的行为有更多的了解:他们在哪儿试图进入Internet?他们是怎样试图进入Internet的?
在这种构架上,无线客户端的布置是另外一个重要的选项。通常,大家配置的蜜罐都倾向于服务器,但是客户端可以更真实或监视某种特定的攻击。比如在无线环境里,客户端不但能够模拟无线数据传还可以监视和探测二层攻击。实际上,一些攻击者通过监听无线网络数据传输来识别存在的客户端,有时这些客户端由于没有很好的配置并且保护的很糟糕(比如家庭和公司里使用的笔记本电脑),它们就是攻击者垂涎的目标。比如,攻击者使用自己恶意AP发送比其无线环境里正常使用AP更强的无线信号,那么这个客户端可能会自动的连接到攻击者的恶意AP,攻击者就可以对它下黑手了:比如中间人攻击、拒绝服务、散播新蠕虫等等。
有一个简单的解决方案,把无线网卡设置成Master模式就可以模拟AP,这样只用一台机器就可以把蜜罐系统搭建起来,这种方式便宜而且轻易治理。假如它没有连接到你的实际网络,那么即使蜜罐被攻破也不会有什么危险。而且蜜罐的交互性非常轻易调整。如下图,有无线网卡的电脑使用Honeyd就可以方便的配置成一个蜜罐。
图2:简单的使用Master模式和Honeyd的无线客户端另外一种可能的方法是直接修改无线AP,把它改造成一个蜜罐。这是一件非常有趣而且稍有难度的事情,Linksys的WRT54G非常便宜,而且它的源码以GPL协议公开,这样你可以修改并重建固件,使得AP达到自己的要求。对于Honeyd只需做少量的修改,并且编译成MIPS二进制使得可以在AP(运行Linux 2.4.5)上运行,这样就建立了一个非常古怪内置无线的蜜罐。也许不久就会出现类似的商业无线蜜罐。
图3:修改过固件和内置Honeyd的AP有利即有弊,这种方式的AP也有可能被坏蛋利用,经过定制后被动的等待那些无线验证的无线客户端,并且反击它们。假如你对恶意蜜罐感爱好,你可以参加由Dragos Ruiu组织的下届CanSecWest会议。
5.0 应用实例
下面将介绍两种简单的无线蜜罐构建例子。5.1 Honeyd模拟一个有无线接入的网络假如你关注过闻名工具Honeyd作者Niels Provos的一些工作,你将会找到一个用于无线蜜罐构架下伪装Internet路由拓扑的配置样例[参考4]。这个简单的配置展示了在无线环境下如何方便的模拟一个大型网络。这种构架在一个叫做Libre Software Meeting 2003的会议上被使用过。这种构架会让外面的攻击者认为他发现了一个大型网络,当他意识到什么也不是的时候会浪费数小时。
;
Honeyd另外一个非常有趣的功能是可以非常简单创建伪造服务并且可以伪造TCP/IP协议栈,从而愚弄nmap或XProbe等远程指纹识别工具。比如,使用精心挑选的治理AP的web页面来模拟AP,这样就可以监视攻击者试图访问治理接口而使用的一些口令,或者可能发现攻击者在试图连接其它开放的服务(比如SNMP、DNS、DHCP、TFTP等)来进行攻击。 下面的例子是一个无线网卡设置成Master模式并且运行Honeyd的笔记本电脑的测试方法。假设你想模拟成有Web服务器进行治理的Linksys WRT54 AP,要让Honeyd模拟这个栈和Web服务器,只需运行下面的脚本:
create linksys
set linksys personality " Linux Kernel 2.4.0 - 2.5.20"
add linksys tcp port 80 "/bin/sh scripts/fakelinksys.sh"
add linksys udp open 53 open
add linksys udp open 67 open
add linksys udp open 69 open
set linksys tcp action reset
bind 192.168.1.1 linksys
远程攻击者使用工具nmap(-O检查系统指纹)将会看到如下的信息:Remote operating system guess: Linux Kernel 2.4.0 - 2.5.20为了模拟Linksys的Web治理接口,Honeyd需要使用fakelinksys.sh脚本来处理Web请求。fakelinksys.sh脚本如下:
#!/bin/sh
DATE=`date`
echo "== Httpd break-in attempt [$DATE] ==" >> /tmp/linksys.log
while read request
do
LINE=`echo "$request" egrep -i "[a-z:]"`
if [ -z "$LINE" ]
then
break
fi
echo "$request" >> /tmp/linksys.log
done
echo "==" >> /tmp/linksys.logcat << _eof_
HTTP/1.0 401 Unauthorized
Server: httpd
Date: $DATE
WWW-Authenticate: Basic realm="WRT54G"
Content-Type: text/Html
Connection: close<HTML><HEAD><TITLE>401 Unauthorized</TITLE></HEAD>
<BODY BGCOLOR="#cc9999"><H4>401 Unauthorized</H4>
Authorization required.
</BODY></HTML>
_eof_这种构架你可能可以看到攻击者会不断尝试默认口令(linksys/admin),他们还以为自己在攻击一个真实的设备呢。
5.2 FakeAP在无线的世界里,大家对于无线扫描和无线监听称之为战争驾驶(wardriving)或者战争漫步(warwalking)。战争驾驶一般是试图发现开发的网络。迷惑这种潜在的攻击者最好的方法是模拟许多伪造网络,它们将会浪费攻击者的时间甚至失去耐心。对付一个网络相对轻易,但是对付一堆迷惑的目标可能就不是那么轻易了。在Defcon X会议上,Black Alchemy以GPL协议发布了一个免费工具叫FakeAP[参考5],这个工具可以实现我们上述目的。它可以发送指定的无线网络数据以愚弄那些菜鸟攻击者。当有人在进行战争驾驶的时候,FakeAP可以发送大量的802.11b信标数据帧,并且在BSSID(MAC)、ESSID、分配的信道等字段做手脚,这时远程攻击者被动监听数据包将会发现成千上万的伪造AP。这种方法使用工具也可以轻易实现,比如在Linux下可以用:iwconfig eth1 ESSID RandomSSID channel N...来手工实现。不过现在有些新工具能够监测到这些不正常的AP,因为这些被发现的网络没有数据传输。图4显示了NetStumbler扫描到一个蜜罐的情况:
图4:NetStumbler扫描到一个FakeAP的蜜罐
假如你想布置蜜罐以愚弄攻击者,你必须模拟的更真实。有些黑帽子认为蜜罐没有什么可以害怕的,因为他们觉得自己比蜜罐的建造者技术更高,甚至发布了如何识别蜜罐的文章[参考7、8]。在这种公开的游戏里,道高一尺魔高一丈的较量,使得蜜罐技术也不断发展,它的隐蔽性也不断增强。
;
- 你模拟的越真实,留下可攻击的漏洞越少,那么你越可能捉住有经验的攻击者(但是这种情况入侵发生的几率会很少)
- 你的隐蔽性做的越差,留下的破绽越多,你看到成功的攻击就越多(但是大部分会是没有经验的攻击者)
因此,你可以根据自己实际要求来确定是否使用下面选项建立无线蜜罐:
- 信标传播;
- WEP(用40位密钥或128位密钥,实际是104位。这样使得攻击者破解难度不同);
- MAC过滤;
- 802.1X验证;
- 客户端和AP之间的无线传输;
- 无线客户端自动连接模式打开;
- 使用各种已知标准的无线网络(802.11b、802.11g、802.11a?)。
7.0 结论我们没法在一个文档里对无线攻击的经验和技术介绍的面面俱到,这个文档只是帮助你如何建立自己的无线蜜罐。这种新的安全资源可以方便的对无线入侵进行有效监视,并且可以知道黑帽子是如何攻击得手的以及他们使用的相关工具。不管他们是公司的攻击者、带宽的偷窃者或者是网络恐怖分子,他们都将被发现。结束前,我们将介绍一个闻名的无线蜜罐布置真实案例:科学应用国际公司(SAIC)在华盛顿地区建立了第一个大型的无线蜜罐用来捕捉WiFi黑客[参考6],下面图5显示了布置地图:
(图片较大,请拉动滚动条观看)
图5:SAIC在华盛顿地区布置的无线蜜罐
参考资料
- [Lance Spitzner's web site : http://www.trackinghackers.com ]
- [Hervieux and Meurisse, Symposium Sécurité des Technologies de l'Information et des Communications, SSTIC 2003, Rennes, France, UML as a Honeypot, http://www.sstic.org/SSTIC03/resumes03.shtml#UML and http://www.sstic.org/SSTIC03/presentations/Honeypots_UML___M._Hervieux_T._Meurisse/ ]
- [CanSecWest 2004, Towards Evil Honeypots, when they bite back http://www.cansecwest.com ]
- [Honeyd project, by Niels Provos : wireless honeypots examples at http://honeyd.org/config/wireless and at http://honeyd.org/configuration.PHP ]
- [FakeAP tool, by BlackAlchemy : http://www.blackalchemy.to/project/fakeap/ ]
- [Wi-Fi Honeypots a New Hacker Trap, by Kevin Poulsen, http://www.securityfocus.com/news/552 ]
- [Local Honeypot Identification, by Joseph Corey, http://www.phrack.org/fakes/p62/p62-0x07.txt ]
- [Advanced Honey Pot Identification, by Joseph Corey, http://www.phrack.org/fakes/p63/p63-0x09.txt ]