思科已经修复了IOS(Internetwork Operating System) 路由器软件中的一个bug,上周,这个bug引发了短暂的互联网停电事故,据说这次事故影响到了1%的互联网。
这个bug是上周五发现的,当时,RIPE NCC (Reseaux IP Europeens Network Coordination Centre) 和杜克大学的一些研究者正在通过RIPE NCC的系统分发实验性的BGP (Border Gateway Protocol)数据。在几分钟以内,许多互联网上的路由器都无法访问了,实验也很快被终止了。
路由器通过边界网关协议(Border Gateway Protocol)找出最佳的路径,把数据流发送到互联网中的其他路由器上。因为损坏的BGP数据传播的速度相当快,所以安全专家们曾警告说:有朝一日,如果它被误用,很可能会引发严重的互联网中断事故。
原来,运行思科IOS XR操作系统的那些路由器获取了这些实验性的数据——它们比传统的BGP路由信息要大一些,所以这些路由器把它们损坏了,然后这些已经损坏的信息被发送到了其他的路由器上。许多收到了这些信息路由器只是简单地中断了和思科路由器(这些思科的路由器发送了已经损坏的信息)的连接,这导致了部分互联网出现了无法访问的情况。
在这次事故发生以后,只过了短短的几个小时,思科就发布了一份安全公告。思科确认,周五的事故暴露出了一个bug。在这份安全公告中,思科公司说:“有报道称:‘在2010年8月27日,一个未公开,但确实存在的BGP属性导致了一些BGP session被重置。’这个报道并没有恶意,但是它却在无意间触发了这个漏洞。”(关于思科这个公告,可以参考:http://www.cisco.com/warp/public/707/cisco-sa-20100827-bgp.shtml)
思科的IOS XR操作系统主要是为了电信级的CRS-1路由器而构建的,主要提供给一些大型的电信公司使用。
在周五的一封电子邮件中,杜克大学的助理教授Xiaowei Yang拒绝解释关于这个实验的一些要点,但是她说,她的团队发送的所有数据都是“100%符合标准”的。
Earl Zmijewski是Renesys的常务经理,关于这个问题他在周五写了一篇博客,他说:“这个实验造成了60多个国家访问部分网络出现了困难。3500多个‘前缀’,或者说是3500多个Internet Protocol地址空间块受到了影响。”根据网站Cidr-report.org的统计数字,在互联网上总共有超过333000个前缀。
周五的中断持续了不到半个小时。
在周一的一次采访中,Zmijewski说:“虽然是思科带有Bug的软件引发了这个问题,但是进行这个实验的杜克团队应该更小心一些才是。”他接着说:“在真实的网络上进行学习和研究的日子已经一去不复返了。我认为,为了实验将来的一些事情而付出这样惨痛的代价,简直太愚蠢了…….我很奇怪,这些事情居然被摆在了首位。”
RIPE NCC的代表并没有对这些言论发表任何评论,但是在星期天发布的一篇文章中,这个组织表示:“这个实验目的是为了进一步加深对某些互联网路由行为的理解。”
这个小组表示:以后,RIPE NCC进行此类的实验的方法会更加严格,而且会事先对互联网运营商发出警告。
除了安全公告中提到的内容,思科拒绝对这次的事件做出任何解释。