欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

防范黑客 用免费工具监视无线网络入侵

程序员文章站 2022-04-02 20:22:43
无线技术给人们带来了令人愉快的上网体验:无需受物理线缆的束缚。但是它也向安全问题敞开了一扇大门。本文将向大家演示如何利用一个常用的开源工具来监视无线网络的活动。   无线安全...
无线技术给人们带来了令人愉快的上网体验:无需受物理线缆的束缚。但是它也向安全问题敞开了一扇大门。本文将向大家演示如何利用一个常用的开源工具来监视无线网络的活动。

  无线安全简介

  无线安全性现在已经成为人们经常讨论的话题。由于无线技术本身的特点,以及其可以很容易被破解加密方法,无线安全问题已经不再是一个假想中的事情,实际上,针对无线网络的攻击也正在不断发生。对于一些小型企业用户或家庭用户来说,其无线网络的安全问题尤其令人担忧,因为他们的精力往往集中在更重要的事情上,而不是加固它们的无线网络,而且它们通常不会像大的公司一样有专门负责安全的团队,或向专门的安全公司来购买专业的安全服务。

  但是,无需过于惊慌,因为有很多方法来验证无线网络的安全性。入侵监测系统(IDS)是其中的一种,甚至可以在攻击发生之前就能监测到。它们并非安全的全部,不过如果与防火墙和其他安全工具联合使用的话,效果还是不错的。你可以把IDS看作类似与防盗报警之类的东西:它们会告诉你入侵行为正在发生,但是如何处理入侵行为本身,还需要其他系统来协助完成。

  

防范黑客 用免费工具监视无线网络入侵

  Snort入侵监测系统

  Snort是一个开源入侵监测系统(IDS),它可以被进行定制来适应你的无线网络的需要。它自称是入侵监测的事实标准,Snort灵活、快速,更重要的是免费。你所需要做的就是花点时间来安装配置它,然后就可以让其来嗅探无线通信中的安全威胁。

  在处理无线攻击的时候,Snort和其他入侵检测系统非常有用。我们知道,无线的加密协议之一有线对等加密(WEP)方式可以很容易的被破解,除此之外,即使一些更高级的加密方式也可以被破解,一些无线认证方法也可以被一个执着的攻击者所攻破。这使得Snort在检测这些攻击并在它们开始以前就阻挡它们的一个重要工具。

  针对无线用户,有一个专门的Snort版本可用,即Snort Wireless,这个版本包含了众多规则,可以被用来检测某些最常见的针对无线访问点的攻击行为,也可以进行规则定制来满足无线网络的一些特殊需要。下面我们将看一下一些简单的Snort操作,以及它如何被应用到你的无线网络中,介绍一些部署的细节。

  Snort 101软件

  Snort是一个非常复杂的程序。市面上有专门的指南、书籍和讲座来介绍如何安装和使用它。在本篇文章中我们不再深入介绍这些细节,不过我将告诉你一些帮助你安装然后使用它的一些基本的过程。

  Snort通过被称为规则(rules)的预设恶意通信模式来识别哪些网络上的通信是有害的。这与反病毒软件有些相似,它的相似之处还包括规则要坚持不断更新。Snort只能对它知道的行为进行报警,因此及时的更新软件是系统管理员的一个重要工作。

  

防范黑客 用免费工具监视无线网络入侵

  Snort的规则(rules)

  Rules遵循一个相当简单的语法,如下所示:

  <action> <protocol> <first host> <first port> <direction>  <second host> <second port> (<rule options>;)

  动作(action)部分可以包括报警(alert):即对于符合条件的网络行为向入侵检测系统产生一个告警;日志记录(log):将该行为简单的记入日志;或者通过(pass):即完全忽视这个行为。规则的选项(Rule options )包括与数据包的内容有关的选项,诸如某个特定大小的字节内容。还包括何时对其进行日志记录的信息。以下是一个规则的示例,它告诉Snort在计算机被Ping的时候产生一个告警:

  alert icmp any any -> 192.168.1.1 any (msg: "Oh snap it's a ping";)

  这个规则侦听针对路由器(在这儿它的IP地址是192.168.1.1)的Ping行为,并产生一个告警,信息是“Oh snap it's a ping”。更复杂的规则还可以包含变量(诸如组成一个家庭网络和外部网络的的一个IP地址范围)。在Snort手册中有介绍如何编写规则的详细说明,有兴趣的朋友可以参看:http://www.snort.org/docs/snort_htmanuals/htmanual_2.4/node14.html。

  除了规则(rules)外,Snort可以配置被称作预处理器(preprocessors)的几个预先定义好的规则,可以被用来扫描通信数据。对于一些常见的可以导致无线设备运行缓慢的端口扫描和ping行为,预处理器(preprocessors)非常有用



软 件 安 装

  在你开始之前,你需要一个不仅仅能够运行Snort,而且可以作为一个无线访问点的系统。最经济的办法是使用经典的Linksys WRT54G无线路由器。WRT54G支持开源固件,它可以被被许多不同的版本所替换,从而获得增强的功能,其中包括运行Snort。另一种选择是,如果你有一个闲置不用的计算机,一个无线网卡,一个普通的以太网卡和很多空余时间,你可以把它设置为一个访问点。

  

防范黑客 用免费工具监视无线网络入侵

  Linksys WRT54G

  本篇文章将使用一个运行OpenWRT RC 2(代号White Russian)固件的WRT54G路由器来进行演示。有很多Linux版本的无线路由器固件可供使用,但是我之所以选择OpenWRT是因为它简单、轻量级。

  

防范黑客 用免费工具监视无线网络入侵

  使用中的OpenWRT固件

  我不打算在这儿对于如何安装OpenWRT进行详细的介绍,因为在OpenWRT网站上有非常好的安装文档(http://openwrt.org/OpenWrtDocs/Installing)。安装完成后,你可以通过telnet登录到路由器上。

  在OpenWRT在路由器上运行起来后,就可以下载和安装Snort Wireless程序了。这个过程可以通过OpenWRT的程序管理系统ipkg来实现,命令如下:

  ipkg install http://nthill.free.fr/openwrt/ipkg/testing/20041204/snort-wireless_2.1.1-1_mipsel.ipk

  你可能会注意到这个程序已经比较过时了,但是没什么,因为我们在入侵检测系统中所需要的大多数基本功能都具备,而且所有最近的Snort规则设置可以使用ipkg来下载(你可以访问OpenWRT相关页面来查看最近的规则集)。对于那些运行一个专门的机器作为访问点的朋友来说,你可以下载一个Snort Wireless的源代码,并在你的计算机上对其进行编译。特别值得注意的是,当你在configure的时候,加上--enable-wireless标记,否则它的Wi-Fi专用的预处理器不会起作用。

  SnortWireless的工作原理与Snort自身非常相似,不过它被特意被设计为部署在一个无线访问点上来防护无线攻击。通常来说,它包含一个新的规则协议(名字为wifi),来允许入侵检测系统正确的识别常见的无线攻击,诸如Netstumbler通信或WEP破解尝试等。使用在Snort Wireless中的这个wifi规则协议的语法与Snort的规则语法类似,只有一个例外:不是指定首选和次要主机的IP地址和端口,而是使用MAC地址软 件 设 置

  现在你已经安装并在运行Snort Wireless,接下来是对其进行配置,以使其在你的特定网络中使用。当ipkg在运行的时候,Snort安装它到你的额路由器的/etc/snort目录中。和所有比较优秀的基于Unix的程序一样,Snort使用一个可编辑的配置文件来记录关于它的网络环境和它所能查阅的不同攻击方式的信息。这个文件被叫做snort.conf(下图),位于/etc/snort目录下,在你喜欢的文本编辑器中打开它(如果路由器上默认没有的话,可以使用ipkg来下载这个程序)。

  

防范黑客 用免费工具监视无线网络入侵

  通过Vi查看snort.conf配置文件

  现在你可以配置你的特定网络中的所有不同的变量,包括入侵检测系统所运行的无线访问点的名称,和你想与潜在的攻击者区分开的所有客户端的MAC地址。在这儿有很多参数需要配置,因此确信你已经全部看完了这些参数,以确保你可以合理的去配置它们。尤其是你需要关注的几件事情是Snort Wireless新增的Wi-Fi专用预处理器。这些包括检测诸如NetStumbler和MAC地址欺骗之类的被动网络扫描预处理器。这些预处理器和它们所能做的内容大体如下:

  • AntiStumbler:为了发现其他访问点,诸如NetStumbler和MacStumbler之类的程序利用空SSID。这些SSID被设置成0位,被当作广播SSID使用(类似于于广播ping请求),来欺骗其他访问点反馈它们的SSID到广播主机。对于驾驶攻击(wardriving)和其他网络侦察尝试,它是非常有用的。当有过多的空SSID被从一个单一的MAC地址发出来的时候,AntiStumbler预处理器可以识别并向入侵检测系统报警:一个潜在的攻击正在发生。

  注意:这个预处理器不能检测诸如Kismet之类的驾驶攻击(wardriving)程序,因为这类程序只是简单的侦听原始的802.11帧,而并不发出请求包。

  

防范黑客 用免费工具监视无线网络入侵

  AntiStumbler预处理器可以对这种类型的侦察尝试进行告警

  • DeauthFlood:这类攻击使用一个确认失效(deauthentication)Flood来不停地向AP发送一些模拟正常用户要“解除认证会话”的帧,导致正常用户无法正常连入WLAN(网络层以上均不通)。它也可以被当作一个针对访问点的拒绝服务(DoS)攻击来使用。DeauthFlood预处理器通过查看在一定时间内发送的取消认证帧的数量来检测这类攻击的发生,并产生一个告警。

  • AuthFlood:与DeauthFlood类似,AuthFlood预处理器针对认证flooding攻击进行检测和报警,认证flooding攻击是一个客户端尝试多次连接无线网络,从而对访问点实现拒绝服务攻击。

  • MacSpoof:限制非法客户端连入访问点的最有效的方法之一就是建立一个可以与访问点通讯的设备的MAC地址白名单。但是不幸的是,一个熟悉的攻击者可以在他的计算机上伪装成一个白名单中的MAC地址来与访问点进行通讯。MacSpoof处理器检查收到包中是否有隐藏欺骗MAC地址的欺骗,并产生告警。

  • RogureAP:恶意的访问点是指那些伪装成合法访问点的怀有不良企图的访问点,它可以窃听合法用户的帐号、密码等敏感信息。这个预处理器可以向用户告警附近有个恶意访问点。

  除了上述之外,Snort Wireless包括许多预设的规则来满足更广范围的应用。根据你的实际应用网络情况,某些规则可能用起来非常顺手,例如如果你的网络中有一台Web服务器的话,其中具有几乎全部的Web规则。你只需要将想要Snort使用的规则进行发注释就可以。默认情况下,不同的规则被保存在/etc/snort/rules下,你可以在你喜欢的文本编辑器中查看这些规则。它们的格式与前面我们所说的规则相似,并且提供很好的示例来帮助你编写自己的规则。

  

防范黑客 用免费工具监视无线网络入侵

  一个端口扫描主机被一个Snort规则抓住并进行了日志记录软 件 启 动

  一旦你的snort.conf文件被配置后,你就可以开始运行Snort了。在启动的时候可以增加许多不同的选项,来指定从输出到它如何运行的所有事情。不过现在我们只通过如下命令运行它,通过一个Telnet连接进入你的支持Snort系统:

  snort -D -A full

  这条命令将其作为一个后端过程运行,因此其他事情可以正常进行,并且当产生一个告警的时候,可以记录完整的数据包信息。

  现在Snort已经开始运行,并且针对数据包进行侦听,它还可以做更多的事情来保护你的无线网络。Kismet是一个类似Snort的工具,可以被作为入侵检测系统的备选软件。Snort只运行在第三层-网络层,负责IP和其他通信,而Kismet则运行在二层-数据链接层,负责以太帧。因此同时部署这两个程序可以极大的增加你的系统的有效性。

  

防范黑客 用免费工具监视无线网络入侵

  使用中的Kismet

  你还可以配置Snort来对一个数据进行日志记录,从而轻松的进行日志分析。再次笔者就不再详述,感兴趣的朋友可以查看这个指南:http://www.wireless-bern.ch/modules.php?op=modload&name=Reviews&file=index&req=showcontent&id=16。

  结 论

  在本篇文章中,我只是揭开了Snort应用的冰山之一角。我只是简单的介绍了部署一个基本的Snort应用,实际上还有很多的方式可以让你来在其上进行扩展,在Snort上值得学习的东西还很多。感兴趣的朋友可以查看如何编写Snort规则(http://www.snort.org/docs/snort_htmanuals/htmanual_2.4/node14.html),可以让你更好的根据你的网络环境调整Snort。

  最后,你可以做的最有效的来保护无线网络的事情还有保持对Snort进行版本修补和规则的更新。在Snort Wireless主页上有相关信息,大家可以去查阅。

  和所有的安全工具一样,Snort不应该被看作保护你的网络的最后一步,它只是网络安全这个防护墙中的一块砖。Snort只是一个工具,而工具的好坏和使用的人有很大的关系。如果你真的加固你的网络,你还必须养成良好的安全习惯和安全风险意识。