● 摘要
当前,很多互联网安全隐患开始蔓延到嵌入式设备上。VxWorks 作为当今非常流行 嵌入式操作系统,对系统安全也提出一些需求。传统的系统行为监控都是针对 Windows、 Linux 等通用平台实现,而针对 VxWorks 等嵌入式设备平台上的监控方案很少出现。针 对这方面的不足,本文提出了在 VxWorks 系统上的一种行为监控方案。
本文的程序行为定义为:文件系统访问操作(系统 IO 访问)。具体说来,即关注 IO 层的打开、关闭、创建、删除、读、写这六个行为。行为监控即监控记录 IO 层的调用 信息,如文件名以及具体的操作(如读写)。目标是在只有二进制镜像的条件下,对 ELF 镜像直接操作使得其具有监控文件系统访问的能力,这样旧设备镜像在无需重新编译就 能拥有这种功能。
为了实现以上目标的,本文的实现方案将分为三个大模块:行为监控模块、二进制 截获模块以及注入模块。行为监控模块首先分析 VxWorks 的 I/O 子系统,挑选出要拦截 的六个行为相关的 API 作为 hook 点,然后在外部实现文件系统监控的功能,并作为一 个编译单元来编译。截获模块寻找到一个间接跳转的技术方案。利用这种间接跳转技术, 实现了自动化的从 hook 点跳转到监控代码,并从监控代码返回的功能。注入模块在整 理和分析已有的 ELF 文件插入与拦截技术的基础上,将截获模块的输出注入到 VxWorks 操作系统镜像文件里,实现了文件系统监控。
最后,设计实验来验证被修改的 VxWorks 系统镜像,能否监控文件的操作。实验 表明实现不会影响 VxWorks 操作系统正常运行,在系统启动完成后,注入的代码在合 适的时机获取控制权,执行我们事先插入的代码,成功的监控到文件系统访问。同时, 对修改前后也做了对比测试,发现修改后性能下降在 30%可以接受的范围内。