Page 332 - 《软件学报》2021年第10期
P. 332
3304 Journal of Software 软件学报 Vol.32, No.10, October 2021
此处仅截取部分进程信息.图 9(a)为某一时刻 TVM 中进程视图,图 9(c)为同一时刻 VMOffset 在 TVM 外部重构
所得进程视图,可见两者的结果是一致的.进程视图的重构可用于检测隐藏进程,因此本节在 TVM 中编译安装
Adore-ng 工具,隐藏 pid 为 28 的进程.隐藏后,TVM 中进程视图如图 9(b)所示,其中,28 号进程已被隐藏.而
VMOffset 重构视图仍与图 9(c)一致,其中显示了被隐藏的进程 crypto.可见:VMOffset 可自动实现 TVM 中进程
信息的语义重构,且通过对比重构所得进程视图与 TVM 内部进程视图,可以有效地发现 TVM 中的隐藏进程.
(a) 初始 TVM 内部视图 (b) 隐藏进程后 TVM 内部视图 (c) 初始&隐藏进程后 TVM 外部重构视图
Fig.9 Process view introspection results of VMOffset
图 9 VMOffset 进程视图自省结果
除了重构 TVM 中的进程视图外,VMOffset 还可重构 TVM 中指定进程的代码段,代码段的获取可用于入侵
检测,如通过验证代码段的完整性可判断该进程是否被恶意篡改.本节参考 VMPMS [26] 提出的进程代码段分页
式度量方法,基于 VMOffset 所得进程偏移量,在 TVM 外部开发用户层工具实现对 TVM 中指定进程的代码段完
整性度量.以 Apache 服务进程 httpd 为例,图 10 为其度量结果.图 10(a)为 httpd 进程正常运行状态下的度量结果,
基值通过对 SVM 中 httpd 进程代码段各页进行 SHA256 运算得到.图 10(b)为模拟攻击后 httpd 进程度量结果,
对比可见:模拟攻击后进程名称和代码页地址等语义信息并无变化,但代码页的度量值发生了改变,如 126~128
等页.可见:VMOffset 可有效重构 TVM 中指定进程的代码段,且可实现其代码段的完整性度量,判断该进程是否
被恶意篡改.
(a) 正常进程度量结果 (b) 模拟攻击后进程度量结果
Fig.10 VMOffset measurement result of process code segment in TVM
图 10 VMOffset 对 TVM 中进程代码段的度量结果