跳转至

修补系统镜像

对手可能会修改网络设备的操作系统,以引入新功能或削弱现有防御。(引用: Killing the myth of Cisco IOS rootkits) (引用: Killing IOS diversity myth) (引用: Cisco IOS Shellcode) (引用: Cisco IOS Forensics Developments) (引用: Juniper Netscreen of the Dead) 一些网络设备采用单片架构,其中整个操作系统和设备的大部分功能都包含在一个文件中。对手可能会在存储中更改此文件,以便在将来启动时加载,或在运行时在内存中更改。 要在存储中更改操作系统,对手通常会使用设备操作员可用的标准程序。这可能涉及通过网络设备上常用的协议(如 TFTP、FTP、SCP 或控制台连接)下载新文件。原始文件可能会被覆盖,或者可以在其旁边写入新文件,并重新配置设备以启动到受损镜像。 要在内存中更改操作系统,对手通常可以使用两种方法之一。在第一种方法中,对手将利用原始、未更改的运行操作系统中的本机调试命令,允许他们直接修改包含运行操作系统的相关内存地址。此方法通常需要对设备的管理级别访问权限。 在第二种方法中,对手将利用引导加载程序。引导加载程序是设备启动时加载的第一个软件,它会启动操作系统。对手可能会利用先前植入引导加载程序中的恶意代码(例如通过 ROMMONkit 方法),直接操纵内存中的运行操作系统代码。引导加载程序中的恶意代码为对手提供了直接内存操作的能力,允许他们在运行时修补操作系统。 通过修改存储在系统镜像文件中的指令,对手可以削弱现有防御或提供设备之前没有的新功能。可以削弱的现有防御示例包括通过 削弱加密 的加密、通过 网络设备认证 的认证和通过 网络边界桥接 的外围防御。为对手目的添加的新功能包括 键盘记录多跳代理端口敲击。 对手还可能妥协操作系统中的现有命令以生成虚假输出误导防御者。当此方法与 降级系统镜像 结合使用时,受损系统命令的一个示例可能包括更改显示当前运行操作系统版本的命令的输出。通过修补操作系统,对手可以更改此命令以显示他们通过系统降级替换的原始、更高版本号。 当操作系统在存储中修补时,可以在驻留存储(通常是一种非易失性闪存)或通过 TFTP 启动 实现。 当技术在内存中运行的操作系统上执行而不是在存储的副本上执行时,此技术在重启后不会保留。然而,操作系统的实时内存修改可以与 ROMMONkit 结合使用以实现持久性。