程序、库和驱动程序。说明性存储器128包括一个 或多个受监控区域130和终止处理机132。如W下进一步描述的,受监控区域130是针对尝试 未授权存储器访问监控的特定存储器区域。运种受监控区域130可W包括关键系统存储器 结构,诸如系统调用表、硬件中断表、系统安全软件或其他重要的存储器区域。终止处理机 132可W包括在事务性终止时调用的一个或多个例程W便处置潜在的安全违反,如W下进 一步描述的。存储器128经由I/O子系统126通信地禪合到处理器120,其可W被体现为用于 促成与计算设备100的处理器120、存储器128、W及其他组件的输入输出操作的电路和/或 组件。例如,I/O子系统126可W被体现为或W其他方式包括用于促成输入/输出操作的存储 器控制器中枢、输入/输出控制中枢、固件设备、通信链路(即,点到点链路、总线链路、导线、 线缆、光导、印刷电路板迹线等等)和/或其他组件及子系统。在某些实施例中,I/O子系统 126可W形成片上系统(SoC)的一部分并且可W与计算设备100的处理器120、存储器128和 其他组件一起并入到单个集成电路忍片上。
[0023] 数据存储设备134可W被体现为被配置成用于数据的短期或长期存储的任何类型 的设备,诸如例如存储器设备和电路、存储器卡、硬盘驱动器、固态驱动器、或其他数据存储 设备。数据存储设备134可W用于存储用于执行的软件或其他数据,包括操作系统软件和应 用软件。运种软件可W初始地是不被信任的并且潜在地是恶意的,例如,从第=方供应商下 载的软件。
[0024] 计算设备100进一步包括通信电路136,该通信电路可W被体现为能够使能计算设 备100和远程计算设备之间的通信的任何通信电路、设备或其集合。通信电路136可W被配 置成用于使用任何一种或多种通信技术(例如,无线通信或有线通信)和相关联的协议(例 如,W太网、蓝牙⑥、Wi-巧⑥、WiMAX、HSPA+、LTE等等)使运种通信生效。通信电路136可W 被体现为网络适配器,包括无线网络适配器。
[0025] 在说明性实施例中,计算设备100进一步包括显示器138。计算设备100的显示器 138可W被体现为能够显示数字信息的任何类型的显示器,诸如液晶显示器化CD)、发光二 极管化邸)、等离子体显示器、阴极射线管(CRT)、或其他类型的显示设备。显示器138可W例 如用于向用户传送安全分析的结果。
[0026] 现在参照图2,在说明性实施例中,计算设备100在操作期间建立环境200。说明性 环境200包括安全模块202、事务性执行模块204、安全支持模块208 W及终止处理机模块 212。在某些实施例中,环境200还可W包括回落安全模块214。环境200的各个模块可W被体 现为硬件、固件、软件或其组合。
[0027] 安全模块202被配置成用于标识可疑代码段并且在事务性执行包络中包绕可疑代 码段。安全模块202还可W被配置成用于标识可疑代码内的不应当被执行的具体存储器位 置,例如,可疑壳代码或可疑面向返回的编程(ROP)小程序。因此,安全模块202可W被体现 为计算设备100的能够访问可疑代码的地址空间(或能够在代码被映射到存储器128之前访 问数据存储设备134上的代码的图像)的任何组件。例如,安全模块202可W被体现为虚拟机 监视器(VMM)、监管程序、操作系统、内核软件或计算设备100的其他控制系统或其一部分。
[0028] 事务性执行模块204被配置成用于在事务性包络中执行可疑代码W及检测在可疑 代码的执行期间发生的任何事务性终止。事务性执行模块204被配置成用于管理事务206的 执行,该事务包括可疑代码。当可疑代码尝试修改受监控存储器区域130时、当可疑代码尝 试执行未授权代码时、或者出于与安全违反不相关的其他原因(例如,与受监控存储器区域 130不相关的数据冲突、在事务性执行期间遇到的不兼容指令、超过事务性缓冲区容量、遇 到I/0指令等等),可W发生事务性终止。
[0029] 安全支持模块208被配置成用于与事务206的事务性执行并发地执行安全支持线 程210。安全支持线程210被配置成用于确保如果可疑代码尝试写入任何受监控区域130则 触发事务性终止。触发事务性终止所需的具体操作可W取决于计算设备100的事务性存储 器支持122的具体实施例。例如,在某些实施例中,安全支持线程210可W被配置成用于重复 地访问(例如,读取)在循环中的所有受监控区域130,由此如果事务206写入(或尝试写入) 任何受监控区域130则造成存储器冲突。
[0030] 终止处理机模块212被配置成用于确定在可疑代码的执行期间检测到的事务性终 止是否是由可疑事务206所导致的安全事件所导致的。为了运样做,终止处理机模块212可 W分析计算设备100和/或处理器120的设备状态W便确定事务性终止(例如,显式终止、至U 达断点、或存储器冲突)的原因 W及任何冲突数据位置的地址。终止处理机模块212还被配 置成用于报告所检测到的安全事件,从而使得可W生成适当的响应。终止处理机模块212可 W包括终止处理机132,该终止处理机可W被体现为由处理器120响应于检测到事务性终止 自动地调用的软件例程。如果终止处理机模块212确定终止事件的原因不是由事务206的未 授权行动所导致的,则事务性执行可W重复一次或多次。
[0031] 某些实施例可W包括回落安全模块214,该回落安全模块被配置成用于执行非事 务性行动恶意软件监控和/或检测。例如,回落安全模块214可W执行静态分析、单步动态存 储器访问分析或任何其他已知的恶意软件检测方法。当可疑代码不能被事务性地完成而且 尚未检测到安全事件时,回落安全模块214可W由终止处理机模块212调用。例如,回落安全 模块214可W针对包含与事务性执行不兼容的指令的可疑代码被调用。回落安全模块214可 能显著地慢于事务性检测;因此,如果事务性检测不成功,其仅仅作为回落慢路径是优选 的。
[0032] 现在参考图3,在使用中,计算设备100可W执行用于检测未授权存储器访问的方 法300。方法300在框302中开始,其中计算设备100标识可疑代码段。计算设备100可W使用 任何方法标识可疑代码。例如,在某些实施例中,计算设备100可W将有待执行的任何代码 标识为可疑的。在某些实施例中,计算设备100可W基于元数据属性标识可疑代码,诸如代 码是否被签名、代码是否是从互联网下载的等等。另外或可替代地,计算设备100可W执行 静态分析、动态分析(例如,基于仿真)、或其他试探性分析W便标识潜在恶意的代码。
[0033] 在框304中,计算设备100确定一个或多个存储器区域130W便在可疑代码的执行 期间监控。受监控区域130可W被体现为不应当由可疑代码修改的任何重要的存储器内数 据结构或地址范围。例如,受监控区域130可W包括系统调用表或其他系统或内核级别数据 结构或代码区域(例如,W便保护OS代码不被打补下或修改)。另外或可替代地,受监控区域 130可W包括可疑代码段内的不应当被执行的存储器地址。例如,可疑代码可W包括不应当 被执行的数据段;该数据段的执行可W指示缓冲区溢出或其他潜在恶意的利用。在本示例 中,该数据段可W包括在受监控存储器区域130中。如W下进一步描述的,可W通过使用断 点或显式终止指令监控不应当被执行的运种受监控存储器区域130。
[0034] 在框306中,计算设备100在事务性执行包络中包绕该可疑代码。包绕该可疑代码 允许在事务中执行该可疑代码。可W使用用于包绕与处理器120的事务性存储器支持122兼 容的该可疑代码的任何方法。在某些实施例中,在框308中,计算设备100可W将事务开始和 事务结束指令插入到可疑代码中或周围,例如通过使用监管程序来在可疑代码的上下文中 执行相应的指令或使用仪器。在某些实施例中,所插入的指令可W对可疑代码不可见。事务 开始和事务结束指令可W被体现为由处理器120解释的机器指令W便分别用信号通知事务 的开始和结束。例如,在具有英特尔⑩事务性同步扩展(英特尔⑥TSX)的英特尔(D架构处 理器中,事务开始和事务结束指令可W被体现为分别具有记忆法XBEGIN和XEND的指令。
[0035] 在某些实施例中,在框310中,计算设备100可W在可疑代码内设置断点或显式终 止指令。可W为计算设备100已经确定不应当被执行的可疑代码内的受监控存储器区域130 设置断点。断点可W被体现为当尝试在存储器中执行该具体位置时致使处理器120生成事 务性终止的任何指令、数据或其他设置。例如,可W通过插入显式事务终止指令设置断点, 诸如在带有葵特尔⑥T況的英特尔C珍架构处理器上具有记忆法XABORT的指令。另外或可替 代地,可W通过插入导致事务终止的任何其他合适的指令或指令集设置断点(例如,断点中 断执行、非法指令、或致使导致终止的内部CPU事务跟踪存储设备溢出的指令序列)。另外或 可替代地,可W通过在处理器120的调试寄存器中存储具体值来设置断点。设置断点可W允 许计算设备100监控在可疑代码内执行潜在恶意的位置。
[0036] 在框312中,计算设备100创建可W用于监控受监控存储器区域130的安全支持线 程210。安全支持线程210可W被体现为能够在计算设备100的逻辑处理器上运行的任何独 立的执行线程,诸如操作系统线程、轻量级进程、操作系统进程、操作系统内核线程、或用户 软件线程。在创建时,安全支持线程210可W被供应有受监控区域130的地址。在某些实施例 中,不是新创建,而是从线程池选择安全支持线程210或W其他方式准备W供使用。当然