ARP欺骗、SNMP snarf以及fuzzing都是常见的针对以太网交换机的攻击手段。本文看看Cisco网络专家讲解如何保护网络使之避免这类的攻击。
研究攻击以太网交换机是一件令人高兴的事情。我做过一次关于攻击交换机的报告,这次报告似乎效果不错。但是我还是看到很多网管人员尽力在高层次保护他们的用户而忽略了网络底层的不安全。这就像是将你楼上的窗户都锁得死死的,结果却敞开着后门。真的,以太网能够成为一扇“后门”。
在这篇文章中我将讨论黑客们最常使用的“后门”,这些后门我几乎天天能看见。我主要关注OSI模型第二层,第三层相关的内容我将在另外的文章中专门讨论。
我是物理层安全的坚定信徒:不管你的网络其他方面是如何的安全,如果脱离的物理层的安全,网络并不安全。最起码,简单地将你的交换机拔线就能导致一次拒绝服务攻击(denial of service,Dos)。
ARP欺骗
地址解析协议(Address resolution protocol,简称ARP)欺骗是所有交换机攻击的基石。黑客们热衷于这项攻击,因为它很简单,而且十次攻击中九次能成功。ARP欺骗通过污染终端节点中ARP缓冲,能够使未授权的用户访问交换网络中的数据。
当以太帧在局域网中从一台机器广播到另一台机器时,48位的MAC地址用于决定该帧的目的接口。接口设备驱动并不解析该以太帧中IP包的目的IP地址。这就是问题的所在。任何人都能够伪造一个ARP数据包,这样的数据包会被终端节点所接受。这就是“中间人攻击”(man-in-the-middle attack)的基本思想,这种方式也被称为“再现式攻击”(replay attack)。
现在,既然我的机器是在你通信的通路上,如果你能见到一台机子,那么我也能见到它。记住:你必须让流量从你的机子通过,而不是以你的机子为终点。在你的机子上装上类似路由转发的软件。不要错误使用ARP伪造服务器的地址。这样会使服务器监控台上的报警急剧增加而在系统日志中留下记录。
防范措施:这种攻击很难阻止。这就是为什么它应该是你首先需要学会如何对抗的。这是“必需具备”的能力。我最喜欢的两款工具是Windows平台下的EtterCap和Linux平台下的arpsproof。你也可以在客户机上运行类似ARPWatch的程序,这是免费软件;除非你是运行的是Linux,不然“Patch Turesday”能够很容易的攻陷它。
SNMP Snarf
大部分人都购买能够管理的交换机。当我们谈起“管理”的时候,我们当然指的是简单网络管理协议(Simple Network Management Protocol, SNMP)。在黑客圈子里,SNMP代表的是“安全不是我关注的问题(Security is Not My Problem)”。
攻击SNMP是件简单而有趣的事情。SNMP的主要问题是它的认证机制——公开的和私有的团体字(类似于密码)——很原始很脆弱,是用明文发送的。而且,SNMP是基于UDP协议的,相对来说比较容易伪造。这样就导致了一个脆弱的协议,经常被遗忘,被错误配置,被误解,于是,黑客的“欢乐时光”就要到来了。
作为一种枚举型协议,SNMP的功能很强大。它能告诉黑客几乎所有他想知道的。对于SNMP人们通常存在一种误解,那就是SNMP是“只读”的,不能通过SNMP做任何实质性的改动。事实远非如此。
防护措施:这类攻击的防护很简单,只要使用SNMPv3即可。但是记住:只使用SNMPv3。不要使用向后兼容模式,因为在这模式下,交换机会以SNMPv1和SNMPv2的协议来应答。SNMPv1-v2团体字是通过UPD包明文传输的。通过Dsniff工具获得团体字简直就是小菜一碟。我最喜欢的工具是Linux平台下运行于magic模式的Dsniff,它能实时解析SNMP团体字;然后切换到Windows平台使用SolarWinds IP Network Browser工具。我也会只在Windows平台下使用SolarWinds,用SNMP Dictionary Attack(SNMP词典攻击)来暴力破解团体字。
针对LLDP的fuzzing攻击
以太网天生就是不安全的,但是在它设计的时候,安全并不是个问题。那时候一台计算机花费约$8000到$10000,没有人会拥有家庭计算机。
和其他传输方式相比,以太网的最大的不同是:它很灵活。任何的生产商都能够添加安全机制来确保网络的安全。例如,既然ARP不安全,那么就设计了动态ARP监测(Dynamic ARP Inspection)机制来确保安全;既然DHCP不安全,那么就设计了DHCP检测(DHCP Snooping)机制来保证它的安全。现在,很多人正在为设备的标准而争论不休。没有人希望有所谓的专利问题而是他们的网络收到限制。黑客们也在注意着标准进程。他们知道ARP,DHCP等不安全,而目前并没有没有标准的方法来保护这些不安全的机制。这样就形成了不同生产商占领的不同市场的局面。
链路层发现协议(Link Layer Discovery Protocol,LLDP)是你的网络中最新的安全漏洞。LLDP是用于运行Cisco发现协议(Cisco Discovery Protocol)的一套基于标准的机制。是不是听起来很不错?事实并非如此。LLDP还比较稚嫩。它没有认证,对于一类被称为fuzzing的攻击很脆弱。这类攻击通过发送非法数据帧,观察设备如何处理这些出错的异常来测试软件和硬件。
听起来很熟悉?应该是的,我们也是通过类似的方法发现缓冲区溢出漏洞的。网络管理员需要关注LLDP有许多方面。黑客通过输入各种各样不同的数据包导致电话或交换机崩溃,或者最起码会引起一次拒绝服务攻击。
防范措施:下载Jeremy Hollander的LLDP安全攻击框架或者LLDP fuzzer文件和对应的文档。Jeremy Hollander是一名毕业于德克萨斯大学的研究生。2007年,一个主要的黑客安全会议专门设立了一场工作组会议来演示如何应用该框架。
作为奖励,我真的很欣赏网络搜索引擎的索引功能。跟踪一个网络的最好方式是用google。为了检查是否能够通过因特网被访问到,打开你的浏览器(咳…火狐…咳…咳…),转到Google,运行如下命令:
intitle:"HP ProCurve Switch *" "This product requires a frame capable browser."
看看是否有你的材料被显示。希望没有。一周中我至少能看到两到三次一些比较大的攻击列表。将这些信息隐藏起来,这对你的网络有益处。希望这也会在加薪的时候让你的老板感谢你。