远程攻击手法:可接管任意思科1001-X路由器
思科1001-X路由器不是家里常见的那种,它更大更贵,负责股票交易所、企业办公楼和大型购物中心等设施的可靠连接。换句话说,这些设备在组织机构中起着重要作用,包括那些需要处理高度敏感性信息的机构。最近,研究人员披露了一种远程攻击方法,可使黑客接管任意1001-X路由器,获取其上流经的所有数据和指令。
且其影响还不止于此。
为黑掉该型路由器,安全公司 Red Balloon 的研究人员利用了两个漏洞。第一个漏洞是思科IOS操作系统漏洞 (别跟苹果的iOS搞混了),能使黑客远程获取设备的root权限。这个漏洞的危险性很高,但并不罕见,尤其是对路由器而言,而且通过软件补丁就可以相对容易地加以修复。
但第二个漏洞就没那么好对付了。研究人员一旦获取到root权限,就可以绕过该型路由器最基本的安全防护措施——思科于2013年往企业设备中全面引入的 Trust Anchor。既然找到了在某型设备上绕过该安全防护措施的方法,也就说明只要针对特定设备进行微调,思科遍布全球的成千上万台设备都逃不脱 Trust Anchor 可能失效的命运,包括企业路由器、网络交换机、防火墙等等各种设备。
事实上,攻击者完全可以运用这俩技术全面入侵这些设备所在的网络。
此前就披露过思科重大漏洞的 Red Balloon 创始人兼首席执行官 Ang Cui 就曾表示:
“ 我们已经证明可以隐秘且持续地禁用 Trust Anchor。这意味着,我们可以对思科路由器进行任意修改,而 Trust Anchor 依然报告称该设备可信。这种场景细思极恐,因为几乎全部思科产品都装有 Trust Anchor,全部! 抛锚 近些年来,稍具安全意识的公司都开始往主板上添加 “安全飞地”。不同公司的解决方案名称不同:英特尔有SGX,Arm有TrustZone,苹果有安全飞地,思科就是 Trust Anchor。 这些安全飞地,要么是计算机常规内存中隔离出来的一片安全区域,要么是一块独立芯片——与计算机主处理器分离的安全世外桃源。无论用户和管理员的系统权限有多高,都不能修改安全飞地中的内容。由于其不可更改的特性,安全飞地可以监管并验证其他所有东西的完整性。 安全计算工程师通常认为此类机制理论完备、部署高效。但实际上,仅仅依靠单一元素作为整个系统的检查机制是非常危险的。只要破坏了该安全保障——已在很多公司的实现中证明了此可能性,就等于脱去了设备的关键防护,让设备等于在网络上裸奔。更糟的是,篡改飞地还可以让它表现得一切正常,让攻击者的破坏活动得以隐秘而持续地进行。 思科1001-X的情形就是这样。 Red Balloon 团队特意演示了他们可以破坏该设备的安全启动过程,也就是 Trust Anchor 实现的在设备启动时检查软硬件协调基本代码真实性和完整性的功能。该功能是确保攻击者没有获得设备完整控制权的重要途径。 5月13日,思科发布了针对 Red Balloon 研究人员披露的IOS远程控制漏洞的修复补丁。该公司宣称,将为受安全飞地攻击影响的所有产品系列提供修复。思科拒绝在公开披露之前描述这些修复补丁的性质和推出时机。安全启动漏洞是否直接影响 Trust Anchor 也尚无定论。思科安全公告显示,所有补丁都尚有几个月时间才会发布,该攻击目前尚无解决方法。即便补丁确实可用之时,也将需要现场重编程才能应用补丁——意味着补丁无法远程推送,因为它们太底层了。 思科发言人在书面声明中称:作为澄清,思科会公布几个相关的补充性平台安全功能。其中之一是思科 Secure Boot (安全启动)——提供系统软件完整性及真实性的信任根。在特定思科平台中提供的另一个功能是 Trust Anchor 模块——向系统提供硬件真实性、平台身份及其他安全服务。Red Balloon 演示的攻击中没有直接涉及 Trust Anchor 模块。 思科似乎想在其“Trust Anchor Technologies”、“Trustworthy Systems”和“ Trust Anchor module”之间做个区分,阐明其认为仅有安全启动受该研究所曝漏洞影响的原因。 Red Balloon 研究人员对此表示异议,指出思科的专利及其他文档表明安全启动功能就是 Trust Anchor 实现的。Trust Anchor 肯定受此类攻击影响,因为所有工具都在一个信任链中。下面这张思科图表显示得很清楚。 “ 这就是他们为什么将之称为 ‘锚(Anchor)’ 的原因。这东西才不仅仅是个信任浮标。 FPGA之旅 通过篡改 Trust Anchor 核心硬件组件 “现场可编程门阵列(FPGA)”,包含 Red Balloon 首席科学家 Jatin Kataria 和独立安全研究员 Rick Housley 的研究小组成功绕过了思科的安全启动防护。计算机工程师往往将FPGA视为神奇魔法,因为它们既有微控制器 (嵌入式设备常用的处理器) 的功用,又可被现场重编程。换句话说,与出厂后就不能被制造商物理修改的传统处理器不同,FPGA电路是可以在部署之后再做更改的。 FPGA从名为码流的文件中抽取程序,而码流文件通常是由思科之类硬件制造商自定义编写的。为防FPGA被恶意人士重编程,FPGA码流非常难以从外部加以解释。它们包含一系列复杂配置指令,物理规定了电路中逻辑门的开关状态,评估FPGA的安全研究员已经发现,映射FPGA码流逻辑所需的算力高到无法承受。 但 Red Balloon 的研究人员发现,思科 Trust Anchor 的FPGA实现方式让他们无需映射出整个码流。他们发现,思科安全启动检测到系统信任受损时会等待100秒——思科工程师设计的暂停,可能是为了获得足够的时间以部署故障修复更新,然后物理切断设备电源。研究人员意识到,通过修改控制该断电开关的部分码流,他们可以凌驾于该机制之上。然后设备就可以正常启动了——即便安全启动功能确实检测到了信任受损情况。 “ 这可是个不得了的发现。Trust Anchor 需通过某个物理引脚告知用户发生了一些不好的事情。所以我们就开始逆向工程每个引脚在主板物理布局上出现的位置。我们禁用某个区域里的所有引脚,再尝试启动该路由器,如果路由器仍能正常工作,我们就知道这些引脚都不是我们要找的那个。最终,我们找到了那根重置引脚,反向摸到了控制那根引脚的那部分码流。 研究人员对6块1001-X系列路由器主板进行了该试错工作,每块主板大约花去他们1万美元,整个研究经费高到不是普通人能承受的。在主板上进行物理操作和焊接以找出重置引脚的过程中他们还烧掉了两台路由器。 攻击者可以提前做好 Red Balloon 所做的类似工作,在测试设备上开发出远程漏洞利用程序,然后再部署应用。为发动此类攻击,黑客会先用远程root权限漏洞来获取初始立足点,然后部署第二阶段攻击以绕过安全启动功能,甚至深入Trust Anchor。而此时,受害者尚毫无理由怀疑自己已经被黑了,因为他们的设备还能正常启动。 该研究给包含思科在内的所有网络和IT设备生产商都提了个醒: 这些设计原则不再安全。厂商不能仅仅依赖FPGA实现神奇功能。这些东西太过底层,非常难以检测。当安全启动功能被凌驾的时候,设备的所有信任都随之而逝了。 问题严重 思科会发布什么样的修复补丁尚未可知,但很有可能不对思科硬件架构做物理调整是无法完全缓解该漏洞了。或许未来的产品线中实现的FPGA需要从加密码流提取程序了吧。这么做会抬高产品部署的金钱和算力成本,但至少能够防住此类攻击。 而且,该研究的影响不局限于思科一家。该研究提出的创新概念可能会激发出一系列操纵全球各型产品中FPGA码流的新方法,包括高风险或敏感环境中的设备。 不过,目前为止还只有思科的设备需要担心此类攻击。思科向媒体表示:目前尚无计划发布审计工具供客户评估自身设备是否已经遭到攻击,也没有证据证明该技术已经出现野生利用案例。