Portion-level in-memory module authentication
    1.
    发明授权
    Portion-level in-memory module authentication 有权
    部分级内存模块认证

    公开(公告)号:US07644287B2

    公开(公告)日:2010-01-05

    申请号:US10902244

    申请日:2004-07-29

    IPC分类号: G06F11/30

    CPC分类号: G06F21/51

    摘要: Dynamic run-time verification of a module which is loaded in memory (in whole or in part) for execution is enabled by using pre-computed portion-level verification data for portions of the module smaller than the whole (e.g. at the page-level). A portion of the module as loaded into memory for execution can be verified. Pre-computed portion-level verification data is retrieved from storage and used to verify the loaded portions of the executable. Verification data may be, for example, a digitally signed hash of the portion. Where the operating system loader has modified the portion for execution, the modifications are reversed, removing any changes performed by the operating system. If the portion has not been tampered, this will return the portion to its original pre-loaded state. This version is then used to determine validity using the pre-computed portion-level verification. Additionally, during execution of the module, new portions/pages of the module which are loaded can be verified to ensure that they have not been changed, and a list of hot pages of the module can be made, including pages to be continually reverified, in order to ensure that no malicious changes have been made in the module.

    摘要翻译: 通过对小于整个模块的部分(例如在页面级别)使用预先计算的部分级验证数据来启用加载在存储器(整体或部分)中用于执行的模块的动态运行时验证 )。 可以验证加载到存储器中用于执行的模块的一部分。 从存储器检索预先计算的部分级验证数据,并用于验证可执行文件的加载部分。 验证数据可以是例如该部分的经数字签名的散​​列。 在操作系统加载程序修改了执行部分的情况下,修改将相反,从而删除操作系统执行的任何更改。 如果该部分没有被篡改,这将使该部分返回到其原始预加载状态。 然后使用该版本使用预先计算的部分级验证来确定有效性。 此外,在执行模块期间,可以验证装载的模块的新部分/页面,以确保它们未被更改,并且可以制作模块的热页面列表,包括要不断重新验证的页面, 以确保模块中不会发生恶意更改。

    Import address table verification
    2.
    发明授权
    Import address table verification 有权
    导入地址表验证

    公开(公告)号:US07739516B2

    公开(公告)日:2010-06-15

    申请号:US10794292

    申请日:2004-03-05

    IPC分类号: G06F11/30 G06F12/14

    CPC分类号: G06F12/1416 G06F21/51

    摘要: The import address table of a software module is verified in order to prevent detouring attacks. A determination is made regarding which entries in the IAT must be verified; all of the entries may be verified or some subset of the entries that are critical may be verified. For each external function, the external module containing the external function is loaded, if it is not already loaded. The function address in the exported function table is found. That address is compared to the address for the function in the IAT. Additionally, the external module, in one embodiment, is verified to ensure that it has not been modified. For a delay load IAT, a similar procedure is followed; however the delay load IAT may be periodically checked to ensure that the delay load IAT entries are either valid (indicating that the external function has been bound) or in their initial state (indicating that no binding has yet occurred).

    摘要翻译: 验证软件模块的导入地址表,以防止迂回攻击。 确定必须验证IAT中的哪些条目; 可以验证所有条目,或者可以验证关键的条目的某些子集。 对于每个外部功能,如果外部模块尚未加载,则会加载包含外部功能的外部模块。 找到导出的功能表中的功能地址。 该地址与IAT中功能的地址进行比较。 此外,在一个实施例中,外部模块被验证以确保其未被修改。 对于延迟负载IAT,遵循类似的过程; 然而,可以定期检查延迟负载IAT以确保延迟负载IAT条目是有效的(指示外部功能已经被绑定)或处于其初始状态(指示还没有发生绑定)。

    Run-time call stack verification
    3.
    发明授权
    Run-time call stack verification 有权
    运行时调用堆栈验证

    公开(公告)号:US07546587B2

    公开(公告)日:2009-06-09

    申请号:US10790302

    申请日:2004-03-01

    IPC分类号: G06F9/44 G06F3/00

    CPC分类号: G06F21/606 G06F21/10

    摘要: Run-time call stack verification is used to determine that a code module has been called by a legitimate caller. A return address on the stack indicates where execution is to return upon execution of the next return instruction, and this return address is indicative of where the code module was called from. The code module may determine that the call is allowed, or disallowed, based on the location of the return address. A calling convention is provided that allows the code module to be called through an intermediary, while also preserving the original return address that was in effect at the time the intermediary was called and also resisting modification to the call stack during the time that the original return address is being verified.

    摘要翻译: 运行时调用堆栈验证用于确定代码模块已被合法调用者调用。 堆栈上的返回地址指示在执行下一个返回指令时执行的返回地址,此返回地址表示代码模块从哪里被调用。 代码模块可以基于返回地址的位置来确定允许或不允许该呼叫。 提供了一种调用约定,允许通过中介方式调用代码模块,同时还保留在中间件被调用时有效的原始返回地址,并且还可以在原始返回的时间内抵制对调用堆栈的修改 地址正在验证。

    Portion-level in-memory module authentication
    4.
    发明授权
    Portion-level in-memory module authentication 有权
    部分级内存模块认证

    公开(公告)号:US07831838B2

    公开(公告)日:2010-11-09

    申请号:US10795068

    申请日:2004-03-05

    IPC分类号: G06F11/30

    CPC分类号: G06F21/52 G06F2221/2125

    摘要: Dynamic run-time verification of a module which is loaded in memory (in whole or in part) for execution is enabled by storing hashes of smaller portions of the module (e.g. page-level hashes) as they should look when loaded into memory for execution. After an initial authentication is completed, hashes of smaller portions of the module are stored. These hashes consist of the portion of memory as modified by changes which would be made by the operating system loader operating normally. Thus, the hashes can be used to verify that the portion as loaded into memory for execution is 1) a correct copy of the portion of the software module, 2) correctly modified for execution by the processor, and 3) not tampered with since loading. Additionally, during execution of the module, new portions/pages of the module which are loaded can be verified to ensure that they have not been changed, and a list of hot pages of the module can be made, including pages to be continually re-verified, in order to ensure that no changes have been made in the module.

    摘要翻译: 通过将模块的较小部分的哈希值(例如页面级别的哈希)存储在加载到存储器中以用于执行的内存(整体或部分)中的模块的动态运行时验证是可执行的 。 初始认证完成后,存储模块较小部分的散列。 这些散列由由操作系统加载器正常运行的更改所修改的存储器部分组成。 因此,可以使用散列来验证加载到存储器中用于执行的部分是1)软件模块的一部分的正确副本,2)被正确修改以供处理器执行,以及3)由于加载而不被篡改 。 另外,在执行模块期间,可以验证加载的模块的新部分/页面,以确保它们未被更改,并且可以制作模块的热页面列表,包括要连续重新编写的页面, 验证,以确保在模块中没有做出任何改变。

    Validation of asset data for component assemblies
    10.
    发明授权
    Validation of asset data for component assemblies 有权
    验证组件装配体的资产数据

    公开(公告)号:US09037912B1

    公开(公告)日:2015-05-19

    申请号:US13592468

    申请日:2012-08-23

    摘要: Disclosed are various embodiments of a computing device for acquiring a shipment manifest for a component assembly, the shipment manifest including expected asset data associated with the component assembly and a component of the component assembly. The computing device serves, via a network interface, a boot image executable by the component of the component assembly, the component including a processor. Empirical asset data associated with the component is obtained, via the network, by the computing device, the empirical asset data being supplied by the boot image. The computing device determines a validation response for the component assembly based at least upon a comparison of the empirical asset data with expected asset data.

    摘要翻译: 公开了用于获取组件组件的装运清单的计算设备的各种实施例,所述装运清单包括与组件组件相关联的预期资产数据和组件组件的组件。 计算设备经由网络接口​​提供可由组件组件的组件执行的引导映像,该组件包括处理器。 通过网络,通过计算设备获得与组件相关联的经验资产数据,由启动映像提供的经验资产数据。 至少基于经验资产数据与预期资产数据的比较,计算装置确定组件装配的验证响应。