在最近的一次安全警报中,CiscoSystems警告说CiscoIOS易于受到一种恶意攻击(请参考Cisco关于危急IOS漏洞的警告)。通过利用这个漏洞,黑客能够在思科设备上执行恶意代码或者发动一次DDOS攻击(拒绝服务攻击)。由于互联网上的路由器至少有70%的路由器是思科路由器,这个漏洞格外引人关注。为了保护你的路由器的基础结构,你能够做些什么呢?本文将讨论这个问题。
哪些产品受到影响?
只有拥有统一通信管理器(CiscoUnifiedCommunicationsManager)和支持语音服务的路由器会受到影响。如果你的路由器符合这两个条件之一,你就应该采取行动了。如果你不能确定你的路由器是否拥有语音服务(会话初始化协议(SIP)),就应该检查一下。
哪些特定IOS的版本会受到影响?
只有某些版本的IOS12.3和所有的IOS12.4受到这个漏洞的影响,并且只有你激活SIP协议时才会发生。要查看你正在运行的IOS版本,只需要键入showversion命令。
我如何知道我是否启用了IOS协议?
注意下面一点是非常重要的:即使SIP协议没有进行特别的配置,CiscoIOS也易受到攻击。这时所需要的只是路由器正在监听SIP通信。
执行如下的三个命令就可以查看你的路由器是否正在监听进入的SIP请求:
以下是引用片段:showipsocketsshowudpshowtcpbriefall
注意:“showipsockets”命令在较新的IOS版本上可能无法运行。”showtcpbriefall”命令可能不会返回任何输出。下面就是笔者的路由器的一个输出示例:
以下是引用片段:Router#showipsockets^%Invalidinputdetectedat’^'marker.Router#showudpProtoRemotePortLocalPortInOutStatTTYOutputIF17–listen—-any–68001017–listen—-any–288700110170.0.0.00192.168.1.100670022110Router#showtcpbriefallRouter#
你正在寻找的是下面这些协议和端口号的任何进入的通路(监听者):TCP5060,5061,1720,11720andUDP5060,5061,2427,2517,16384–32767
你从笔者的路由器的输出结果中可以看出,笔者并没有任何这样的端口。如果你有一个这样的通路(监听者),你的输出结果将看起来会是如下的样子:
以下是引用片段:Router#showipsocketsProtoRemotePortLocalPortInOutStatTTYOutputIF170.0.0.00–any–5060002110Router#showtcpbriefallTCBLocalAddressForeignAddress(state)835F9624*.5060*.*LISTEN
请注意这两种情况中的端口号5060。
怎样保护路由器免受攻击?
下面我们介绍三种保护路由器免受攻击的方法:
1.检查是否存在一个对这个漏洞进行修复的IOS软件的升级程序。在笔者写这篇文章时,还没有打补丁的IOS版本可供使用。虽然升级你的路由器可能是一件痛苦的事情,却不失为一个有益的解决方案。不过,如果你的路由器相当脆弱,我建议你不要等着一个新的IOS版本了,因为你的路由器在这期间可能会受到攻击。如果SIP协议不需要的话,你应该立即禁用SIP服务;或者进行通信的缓解,来确保只有合法的数据通信可以从受感染的思科路由器发出或进入。
2.如果SIP协议(语音服务)在这台设备上不需要的话,你可以通过如下的命令禁用它:
以下是引用片段:Router(config)#sip-uaRouter(config-sip-ua)#notransportudpRouter(config-sip-ua)#notransporttcpRouter(config-sip-ua)#end
这些命令会禁用SIP协议,从而保护你免受这个漏洞的攻击。
3.最后一点,如果你的路由器需要SIP协议(语音服务),而又没有什么IOS升级可用,你应该只授权那些合法的通信到达你受感染的CiscoIOS设备,从而缓解数据通信。这一点就如同你创建这样一个访问控制列表(ACL)一样简单:在此ACL中,我们会允许来自已知的SIP设备的全部的SIP通信,而禁止来自所有其它主机的SIP通信。