[发明专利]利用处理器PMC特性检测隐藏执行指令的方法有效
申请号: | 201510003005.4 | 申请日: | 2015-01-04 |
公开(公告)号: | CN104598379B | 公开(公告)日: | 2017-08-18 |
发明(设计)人: | 周洪伟;李福林;原锦辉;张畅;袁霖;郭永辉 | 申请(专利权)人: | 中国人民解放军信息工程大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F9/455 |
代理公司: | 郑州大通专利商标代理有限公司41111 | 代理人: | 张海青 |
地址: | 450001 河南省郑州市高新*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 利用 处理器 pmc 特性 检测 隐藏 执行 指令 方法 | ||
(一)、技术领域:本发明涉及一种检测隐藏执行指令的方法,特别是涉及一种利用处理器PMC特性检测隐藏执行指令的方法。
(二)、背景技术:Intel处理器的PMC特性是具有少量寄存器,这些寄存器的作用类似于计数器,能够记录处理器所发生某些事件的次数。举例来说,可以通过设置PMC特性的控制参数,要求PMC寄存器记录处理器发生控制转移事件的次数,当处理器每执行一次控制转移指令,PMC寄存器就会执行递增操作(更新方式:新值=旧值+1)。
大多数型号的Intel处理器都支持PMC特性,但是也存在着一些区别。处理器对PMC特性的支持能力分成若干版本。使用CPUID指令可以查询当前处理器的支持能力。根据支持程度的不同,可以将处理器的PMC特性划分成3个版本。Intel Core Solo处理器和Intel Core Duo处理器仅具有基本的性能计数器,它们的版本号是1,Intel Core 2Duo等处理器则具有更强的支持力度。
PERFEVTSELx MSRs和PMCx MSR是PMC特性两组重要的寄存器。PMCx MSR相当于计数器,用于记录处理器所发生的某类事件的次数。限于成本,处理器只拥有数量有限的PMCx MSR,而用户所关心的处理器发生的事件会有很多种,远远多于处理器所拥有的PMCx MSR的数量。为了解决它们之间的矛盾,Intel处理器还配置有相应的控制寄存器PERFEVTSELx MSRs。PERFEVTSEL是Performance event select的缩写,用户可以通过设定PERFEVTSELx MSRs来指定PMCx MSR所需要关注的某类处理器事件,而忽略其它处理器事件。PERFEVTSELx MSRs的长度是16比特。其中0-7比特是事件选择域,用于设置所监控的处理器事件,8-15比特是事件掩码,是对所监控的处理器事件进一步细化和分类。例如,如果需要监控处理器所执行过的指令数量,可以这样设置PERFEVTSELx MSRs:0-7比特是0xC0H,8-15比特0x00H。这样,虽然处理器仅拥有少量成对的PERFEVTSELx MSRs和PMCx MSR,但是两者结合可以对类型众多的处理器事件进行有选择性的监控。
在利用处理器PMC特性检测隐藏执行指令方面,Stephen T.Jones等提出了Lycosid,Lionel Litty等提出了Patagonix。
Lycosid的系统架构如图1所示,Lycosid依托虚拟机监控器实现,其组成成分分为两个部分,分别位于虚拟机客户机中的操作系统中和虚拟机监控器中。这两个Lycosid成分分别构建操作系统视图和监控器视图,并根据两个视图的差异报告隐藏进程(隐藏执行指令的一种表现形式)。
Lycosid根据交叉视图验证原则完成对隐藏进程的检测。Lycosid构建了两种视图:操作系统视图和虚拟机监控器视图。操作系统视图是Lycosid成分利用Windows或Linux的任务管理器或PS命令来获取当前进程数量以及每个进程的运行时间;虚拟机监控器视图Lycosid成分从虚拟机监控器中采集同类信息。由于隐藏在操作系统中隐藏进程只会篡改操作系统视图,无法改变虚拟机监控器视图,这样就可以根据两种视图的差异来发现隐藏进程。
为了在虚拟机监控器层次获得操作系统内部进程相关语义,Lycosid根据虚拟机客户机中的页表基址寄存器变化来分析虚拟地址空间创建和消亡,并进一步推断进程的创建和消亡,获知操作系统活动的进程信息。为了进一步确定隐藏执行的进程,Lycosid记录两个视图中各个进程所消耗的处理器时间,并根据处理器时间差值来确定隐藏进程。一些隐藏进程可能很少占用系统时间,这样就难以无法确认隐藏进程。Lycosid所谓的“CPU Inflation”,即强行在处理器运行时间很少的进程植入少量占用处理器时间的代码,并使其运行一定时间,从而改变这些进程占用处理器时间很少的情况,进而可以确认哪些进程是隐藏进程。
Lycosid的问题分析:①Lycosid只能够发现以进程为形式存在的、隐藏执行的指令片段。然而,现实情况是并非所有隐藏执行的指令均以进程的形式存在,典型的内核rootkit就不属于此类。②处理器时间的粒度过大,难以确认很少占用处理器时间的隐藏进程,“CPU Inflation”的解决方案并不最优,因为这会不必要的增加系统性能开销。
Patagonix的系统架构如图2所示,Patagonix依托虚拟机监控器实现,其成分位于虚拟机监控器和Patagonix虚拟机客户机中,监控对象位于另一个虚拟机客户机中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军信息工程大学,未经中国人民解放军信息工程大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510003005.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:片上系统及控制方法
- 下一篇:一种实现监测服务器系统中负载设备功耗的方法