使用事务性存储器检测未授权存储器修改及访问的制作方法
【专利说明】使用事务性存储器检测未授权存储器修改及访问
[000。 背景
[0002] 计算机安全的一方面设及保护计算机系统不受恶意软件(也被称为"malware")影 响。恶意软件W许多形式存在;然而,许多常见种类的恶意软件对计算机存储器中的未授权 位置执行写入或其他访问。例如,某些恶意软件修改关键的存储器内系统数据结构W便获 得对计算机的控制。一个运种攻击设及盖写系统调用表,从而使得替代一个或多个系统调 用执行由恶意软件提供的代码。运种攻击可W由所谓的"隐匿技术"使用W获得对系统的控 制并且逃避检测。作为另一个示例,某些恶意软件导致系统执行来自未授权存储器段(诸如 系统找或数据段)的代码。例如,缓冲器溢流滥用、面向返回的编程(ROP)小程序和类似的滥 用导致系统执行来自系统找或堆(或由其驱动)的通常不应当被执行的代码。恶意软件可W 执行运种攻击W便执行所谓的"壳代码"攻击;即,在计算机系统上执行任意代码(通常从远 程位置引入)。
[0003] 典型的计算机安全系统尝试通过应用代码分析对可能的恶意代码进行分类来检 测恶意软件。例如,计算机安全系统可W执行代码的静态分析W便捜索公知的恶意软件签 名。某些系统还执行代码执行的动态分析。典型的动态监控(诸如使用监管程序的单步执 行)对系统性能具有较大的负面影响。
[0004] 某些计算机处理器提供对硬件事务性存储器的支持。事务性存储器允许编程人员 指定被称为"事务"的代码段独立地并且原子地执行。即,直至事务成功地被提交,在事务内 发生的存储器操作才对在计算机系统上执行的其他事务或线程可见。在成功提交之后,在 事务期间做出的所有存储器改变瞬时地可用于系统上的其他线程。可W通过推测性地执行 事务、检测在事务执行期间发生的任何存储器冲突并且然后响应于存储器冲突终止并回滚 事务来实现事务性存储器。存储器冲突包括例如尝试写入已经由另一个事务读或写的存储 器位置的事务。事务性存储器可W简化用于并行计算的编程模型。硬件事务性存储器支持 的一个可商购的示例是在由英特尔⑥公司制造的某些处理器上可用的事务性同步扩展( 英特尔⑥TSX)。
[0005] 附图简要描述
[0006] 通过举例而非通过限制在附图中示出在此描述的概念。为了说明简单和清晰,图 中所示元素无需按比例绘制。当认为合适时,已经在附图中重复参照标号W便表明相应的 或类似的元素。
[0007] 图1是用于检测未授权存储器访问的计算设备的至少一个实施例的简化框图;
[0008] 图2是图1的计算设备的环境的至少一个实施例的简化框图;
[0009] 图3是可W由图1和图2的计算设备执行的用于检测未授权存储器访问的方法的至 少一个实施例的简化流程图.
[0010] 图4是可W由图1和图2的计算设备执行的用于检测并处置事务性终止的方法的至 少一个实施例的简化流程图;W及
[0011] 图5是示出可W导致图1和图2的计算设备的事务性终止的潜在数据冲突的示意 图。
[0012] 附图详细描述
[0013] 尽管本公开的概念可受到各种修改和替代形式,已经通过举例在附图中示出并且 将在此详细地描述其特定实施例。然而,应当理解的是不旨在将本公开的概念限制为所公 开的具体形式,而是相反,本发明涵盖与本公开和所附权利要求书一致的所有修改、等效方 案和替代方案。
[0014] 在说明书中对"一个实施例"、"实施例"、"说明性实施例"等等的引用表明所描述 的实施例可W包括具体的特征、结构或特性,但是每个实施例可无需包括该具体的特征、结 构或特性。而且,运种短语无需指代相同的实施例。而且,当结合实施例描述具体的特征、结 构或特性时,认为其在本领域普通技术人员结合显式地或未显式地描述的其他实施例实施 运种特征、结构或特性的知识范围内。此外,应当认识到列表中包括的"A、B和C中的至少一 个"形式的项目可意味着(A); (B); (C); (A和B); (A和C); (B和C);或者(A、B和C)。类似地,W "A、B、和C中的至少一个"的形式列出的项目可指(A); (B); (C); (A和B); (A和C); (B和C);或 (A、巧口 C)。
[0015] 在某些情况下,可在硬件、固件、软件、或其任何组合中实现所公开的实施例。所公 开的实施例还可W被实现为由一个或多个瞬态或非瞬态机器可读(例如计算机可读)存储 介质携带或存储在其上的指令,运些指令可W由一个或多个处理器读取并执行。机器可读 存储介质可W被体现为任何用于存储或传输机器(例如,易失性或非易失性存储器、介质 盘、或其他介质设备)可读形式的信息的存储设备、机构、或其他物理结构。
[0016] 在附图中,可W用特定安排和/或排序示出某些结构或方法特征。然而,应当认识 到可不要求运种特定安排和/或排序。而是,在某些实施例中,可W用与说明性附图中示出 的不同的方式和/或顺序安排运种特征。此外,具体附图中包括结构或方法特征不意味着暗 示在所有实施例中要求运种特征W及在某些实施例中可不包括运种特征或者运种特征可 与其他特征组合。
[0017] 现在参照图1,说明性计算设备100可W用于检测未授权存储器访问。计算设备100 可W标识可能包含恶意软件的可疑代码段。在执行该可疑代码之前,计算设备100在事务性 包络中包绕该可疑代码。另外,计算设备100可W在该可疑代码内在具体位置设置断点。计 算设备100随后执行该事务性包络,并且如果该可疑代码执行未授权存储器访问(诸如写入 具体的存储器区域或在断点执行该代码(该断点已经例如被放入可疑壳代码或者被放入在 面向返回的编程小程序序列中或在面向跳的编程小程序串中使用的可疑小程序)),该事务 被终止并且回滚。如果该事务成功完成,则计算设备100确定未授权存储器访问未发生而且 执行也没有到达断点。可疑代码的事务性执行允许计算设备100动态地监控可疑代码的行 为而不显著地消极地影响性能。通过显著地改善恶意软件检测的性能,可W改善计算机安 全。另外,事务性执行可W由计算设备100的硬件管理并且因此不可W由恶意软件访问,由 此保护恶意软件检测过程本身不受恶意软件影响。
[0018] 计算设备100可W被体现为用于执行在此描述的功能的任何类型的设备。例如,计 算设备100可W被体现为但不限于桌上计算机、服务器计算机、工作站、膝上计算机、笔记本 计算机、移动计算设备、智能电话、平板计算机、蜂窝电话、手机、消息收发设备、可穿戴计算 设备、车辆远程信息处理设备、分布式计算系统、多处理器系统、消费者电子设备、嵌入式控 制器、和/或被配置成用于执行在此描述的功能的任何其他计算设备。如图1所示,说明性计 算设备100包括处理器120、输入/输出子系统126、存储器128和数据存储设备134。当然,在 其他实施例中,计算设备100可W包括其他或附加组件,诸如通常在桌上计算机中发现的那 些(例如,各种输入/输出设备)。此外,在某些实施例中,说明性组件中的一个或多个可W并 入另一个组件中或者W其他方式形成其一部分。例如,在某些实施例中,存储器128或其各 部分可W并入处理器120中(例如,在其中处理器高速缓存被用作随机存取存储器的实现方 式中)。
[0019] 处理器120可W被体现为能够执行在此描述的功能的任何类型的处理器。例如,处 理器120可W被体现为单核或多核处理器、数字信号处理器、微控制器、或其他处理器或处 理/控制电路。尽管说明性计算设备100包括单个处理器120,在某些实施例中,计算设备100 可W包括多于一个处理器120。例如,计算设备100可W被体现为具有共享存储器互连的对 称多处理系统。说明性处理器120包括硬件事务性存储器支持122和性能监控单元(PMU) 124。
[0020] 事务性存储器支持122允许处理器120推测性地执行已知为事务的代码段。事务是 原子的,意味着在事务未决时事务所执行的存储器操作对其他事务、逻辑处理器和/或处理 器120的线程不可见。当事务完成时,也被称为提交,事务的所有存储器操作马上变得对计 算设备100的剩余部分可用。当事务内的存储器访问与另一个事务或线程冲突时,例如当线 程尝试读取已经由未提交事务写入的存储器位置时(或者当两个事务和/或线程写入相同 的存储器位置时),处理器120可W终止冲突事务,丢弃任何相关联的进行中的事务性存储 器改变。处理器120可W在任何粒度水平检测冲突存储器位置,例如每高速缓存行、每字或 每存储器单元。在终止时,处理器120可W响应于所终止的事务调用终止处理机化andler)、 重新开始事务(一次或多次)、或调用非事务性回落代码。在某些实施例中,事务性存储器支 持122可W被体现为在英特尔⑥公司制造的某些处理器120上可用的英特尔?事务性同步 扩展(英特尔蚊防乂)。
[0021] PMU 124可W被体现为能够记录并监控指令流过处理器120的多个性能计数器。例 如,PMU 124可W能够报告导致事务性终止的指令(例如,显式终止指令或断点)的确切存储 器地址或冲突数据位置的存储器地址。尽管被示出为单个PMU 124,在某些实施例中,处理 器120可W包括若干个PMU 124,例如,每个处理器核一个PMU 124。
[0022] 存储器128可W被体现为能够执行在此描述的功能的任何类型的易失性或非易失 性存储器或数据存储设备。在操作中,存储器128可W存储在计算设备100的操作期间使用 的各种数据和软件,诸如操作系统、应用、