Method for Validating an Untrusted Native Code Module
    11.
    发明申请
    Method for Validating an Untrusted Native Code Module 有权
    验证不受信任的本地代码模块的方法

    公开(公告)号:US20140359765A1

    公开(公告)日:2014-12-04

    申请号:US14463345

    申请日:2014-08-19

    Applicant: Google Inc.

    CPC classification number: G06F21/577 G06F21/51

    Abstract: A system that validates a native code module. During operation, the system receives a native code module comprised of untrusted native program code. The system validates the native code module by: (1) determining that code in the native code module does not include any restricted instructions and/or does not access restricted features of a computing device; and (2) determining that the instructions in the native code module are aligned along byte boundaries such that a specified set of byte boundaries always contain a valid instruction and control flow instructions have valid targets. The system allows successfully-validated native code modules to execute, and rejects native code modules that fail validation. By validating the native code module, the system facilitates safely executing the native code module in the secure runtime environment on the computing device, thereby achieving native code performance for untrusted program binaries without significant risk of unwanted side effects.

    Abstract translation: 验证本机代码模块的系统。 在操作期间,系统接收由不可信的本地程序代码组成的本地代码模块。 该系统通过以下方式来验证本地代码模块:(1)确定本地代码模块中的代码不包括任何受限制的指令和/或不访问计算设备的受限特征; 和(2)确定本地代码模块中的指令沿着字节边界排列,使得指定的字节边界集合总是包含有效指令,并且控制流指令具有有效目标。 系统允许成功验证的本地代码模块执行,并拒绝验证失败的本机代码模块。 通过验证本地代码模块,系统便于在计算设备上的安全运行时环境中安全执行本地代码模块,从而为不受信任的程序二进制代码执行本机代码性能,而不会产生不必要的副作用。

    VIRTUAL ENVIRONMENT HAVING HARVARD ARCHITECTURE
    12.
    发明申请
    VIRTUAL ENVIRONMENT HAVING HARVARD ARCHITECTURE 有权
    有虚拟环境的HARVARD ARCHITECTURE

    公开(公告)号:US20140282534A1

    公开(公告)日:2014-09-18

    申请号:US14141906

    申请日:2013-12-27

    Applicant: Google Inc.

    CPC classification number: G06F9/455 G06F9/45558 G06F21/53 G06F2009/45583

    Abstract: Methods, systems, and apparatus, including computer programs encoded on computer storage media, relating to software execution. One of the methods includes executing, on a computer including a single memory for storing data and instructions, a virtual environment including a data memory and an instruction memory, the instruction memory configured to be unreadable by instructions stored in the instruction memory; receiving, at the virtual environment, a software module comprising multiple instructions; and performing validation of the software module including: identifying, in the software module one or more calls to the single memory; and verifying that the one or more calls to the single memory are in the data memory.

    Abstract translation: 方法,系统和装置,包括在计算机存储介质上编码的计算机程序,涉及软件执行。 一种方法包括在包括用于存储数据和指令的单个存储器的计算机上执行包括数据存储器和指令存储器的虚拟环境,所述指令存储器被配置为通过存储在指令存储器中的指令而不可读; 在虚拟环境中接收包括多个指令的软件模块; 以及执行所述软件模块的验证,包括:在所述软件模块中识别对所述单个存储器的一个或多个调用; 并验证对单个存储器的一个或多个调用是在数据存储器中。

    Method for validating an untrusted native code module

    公开(公告)号:US09710654B2

    公开(公告)日:2017-07-18

    申请号:US15172879

    申请日:2016-06-03

    Applicant: Google Inc.

    CPC classification number: G06F21/577 G06F21/51

    Abstract: A system that validates a native code module. During operation, the system receives a native code module comprised of untrusted native program code. The system validates the native code module by: (1) determining that code in the native code module does not include any restricted instructions and/or does not access restricted features of a computing device; and (2) determining that the instructions in the native code module are aligned along byte boundaries such that a specified set of byte boundaries always contain a valid instruction and control flow instructions have valid targets. The system allows successfully-validated native code modules to execute, and rejects native code modules that fail validation. By validating the native code module, the system facilitates safely executing the native code module in the secure runtime environment on the computing device, thereby achieving native code performance for untrusted program binaries without significant risk of unwanted side effects.

    Address pinning
    14.
    发明授权
    Address pinning 有权
    地址固定

    公开(公告)号:US09197446B2

    公开(公告)日:2015-11-24

    申请号:US13712675

    申请日:2012-12-12

    Applicant: Google Inc.

    Abstract: Methods, systems, and apparatus, including computer programs encoded on computer storage media, for memory address pinning. One of the methods includes loading a software module into a sandbox environment; receiving, a message from the software module to a recipient, the message includes a memory address; determining whether to pin the memory address; and passing the message to an address pinning unit which replaces at least a portion of the memory address with at least a portion of a specified replacement address, when it is determined to pin the memory address, and passes the modified message to be delivered to the recipient.

    Abstract translation: 方法,系统和装置,包括在计算机存储介质上编码的计算机程序,用于存储器地址固定。 其中一种方法包括将软件模块加载到沙箱环境中; 从软件模块接收到接收者的消息,该消息包括存储器地址; 确定是否固定内存地址; 以及当确定将所述存储器地址固定时,将所述消息传递到地址钉扎单元,所述地址钉扎单元用至少一部分指定替换地址替代所述存储器地址的至少一部分,并将所述修改的消息传递给 接受者。

    Dynamic code insertion and removal for static analysis based sandboxes
    15.
    发明授权
    Dynamic code insertion and removal for static analysis based sandboxes 有权
    基于静态分析的沙盒的动态代码插入和删除

    公开(公告)号:US08997225B2

    公开(公告)日:2015-03-31

    申请号:US13967626

    申请日:2013-08-15

    Applicant: Google Inc.

    CPC classification number: G06F21/53 G06F9/445

    Abstract: Methods and apparatus for dynamically adding and deleting new code to previously validated application executing in a secured runtime. New code is written to a portion of secured memory not executable by application. New code is validated to ensure it cannot directly call operating system, address memory outside of secured memory, or modify secured memory state. Indirect branch instructions may only target addresses aligned on fixed size boundaries within the secured memory. Validated code is copied to portion of secured memory executable by application in two stage process that ensures partially copied segments cannot be executed. Validated new code can be deleted once all threads reach safe execution point, provided code was previously inserted as unit or contains no internal targets that can be called by code not also being deleted.

    Abstract translation: 用于动态添加和删除新密码的方法和装置,用于在安全运行时执行的先前验证的应用程序。 新代码被写入不可执行的应用程序的一部分安全内存。 验证新代码以确保它不能直接调用操作系统,在安全内存之外的地址内存,或修改安全的内存状态。 间接分支指令可能只针对在固定内存中固定大小边界对齐的地址。 经过验证的代码被复制到可执行的安全内存的一部分,应用程序可以在两个阶段的过程中进行,以确保不能执行部分复制的段。 一旦所有线程达到安全执行点,就可以删除验证的新代码,前提是代码以前被插入为单元,或者不包含可以通过不被删除的代码调用的内部目标。

    NATIVE CODE INSTRUCTION SELECTION
    16.
    发明申请
    NATIVE CODE INSTRUCTION SELECTION 有权
    本地代码指导选择

    公开(公告)号:US20140052971A1

    公开(公告)日:2014-02-20

    申请号:US13756371

    申请日:2013-01-31

    Applicant: Google Inc.

    CPC classification number: G06F9/30003 G06F8/52

    Abstract: Methods, systems, and apparatus, including computer programs encoded on computer storage media, for selecting native code instructions. One of the methods includes receiving an initial machine language instruction for execution by a processor in a first execution mode; determining that a portion of the initial machine language instruction, when executed by the processor in a second execution mode, satisfies one or more risk criteria; generating one or more alternative machine language instructions to replace the initial machine language instruction for execution by the processor in the first execution mode, wherein the one or more alternative machine language instructions, when executed by the processor in the second execution mode, mitigate the one or more risk criteria; and providing the one or more alternative machine language instructions.

    Abstract translation: 方法,系统和装置,包括在计算机存储介质上编码的计算机程序,用于选择本地代码指令。 其中一种方法包括在第一执行模式中接收处理器执行的初始机器语言指令; 当处理器以第二执行模式执行时,确定所述初始机器语言指令的一部分满足一个或多个风险准则; 生成一个或多个替代的机器语言指令来替换所述初始机器语言指令以供处理器在第一执行模式中执行,其中当所述处理器在所述第二执行模式中执行时,所述一个或多个替代的机器语言指令减轻所述一个 或更多的风险标准; 以及提供一个或多个替代的机器语言指令。

    Method for Validating an Untrusted Native Code Module

    公开(公告)号:US20180004959A1

    公开(公告)日:2018-01-04

    申请号:US15651150

    申请日:2017-07-17

    Applicant: Google Inc.

    Abstract: A system that validates a native code module. During operation, the system receives a native code module comprised of untrusted native program code. The system validates the native code module by: (1) determining that code in the native code module does not include any restricted instructions and/or does not access restricted features of a computing device; and (2) determining that the instructions in the native code module are aligned along byte boundaries such that a specified set of byte boundaries always contain a valid instruction and control flow instructions have valid targets. The system allows successfully-validated native code modules to execute, and rejects native code modules that fail validation. By validating the native code module, the system facilitates safely executing the native code module in the secure runtime environment on the computing device, thereby achieving native code performance for untrusted program binaries without significant risk of unwanted side effects.

    Machine-specific instruction set translation

    公开(公告)号:US09756149B2

    公开(公告)日:2017-09-05

    申请号:US15082162

    申请日:2016-03-28

    Applicant: Google Inc.

    CPC classification number: H04L67/42 H04L41/08 H04L67/06

    Abstract: Methods, systems, and computer program products are provided for machine-specific instruction set translation. One example method includes identifying computing devices, each device having a respective software component installed, the software component including a translator component for translating a program in a portable format to a machine-specific instruction set, and a sandbox component for executing programs translated to the machine-specific instruction set on the computing device using software-based fault isolation; identifying computing devices having a given hardware configuration; and transmitting another translator component and another sandbox component to each of the identified computing devices. Each of the identified computing devices having the given hardware configuration is configured to receive the components and to configure its software component to use the received components in lieu of the corresponding components.

    Safely executing an untrusted native code module on a computing device
    19.
    发明授权
    Safely executing an untrusted native code module on a computing device 有权
    在计算设备上安全执行不受信任的本地代码模块

    公开(公告)号:US09536079B2

    公开(公告)日:2017-01-03

    申请号:US14621550

    申请日:2015-02-13

    Applicant: Google Inc.

    Abstract: A system that safely executes a native code module on a computing device. During operation, the system receives the native code module, which is comprised of untrusted native program code expressed using native instructions in the instruction set architecture associated with the computing device. The system then loads the native code module into a secure runtime environment, and proceeds to execute a set of instructions from the native code module in the secure runtime environment. The secure runtime environment enforces code integrity, control flow integrity, and data integrity for the native code module. Furthermore, the secure runtime environment moderates which resources can be accessed by the native code module on the computing device and/or how these resources can be accessed. By executing the native code module in the secure runtime environment, the system facilitates achieving native code performance for untrusted program code without a significant risk of unwanted side effects.

    Abstract translation: 一种在计算设备上安全执行本机代码模块的系统。 在操作期间,系统接收本地代码模块,其由使用与计算设备相关联的指令集架构中的本地指令表示的不可信的本机程序代码组成。 然后,系统将本机代码模块加载到安全运行时环境中,并继续在安全运行时环境中从本机代码模块执行一组指令。 安全运行时环境强制本机代码模块的代码完整性,控制流完整性和数据完整性。 此外,安全运行时环境调节哪些资源可以由计算设备上的本地代码模块访问和/或如何访问这些资源。 通过在安全运行时环境中执行本地代码模块,系统便于实现不可信程序代码的本地代码性能,而不会产生不必要的副作用的重大风险。

    Method for Validating an Untrusted Native Code Module
    20.
    发明申请
    Method for Validating an Untrusted Native Code Module 有权
    验证不受信任的本地代码模块的方法

    公开(公告)号:US20160283720A1

    公开(公告)日:2016-09-29

    申请号:US15172879

    申请日:2016-06-03

    Applicant: Google Inc.

    CPC classification number: G06F21/577 G06F21/51

    Abstract: A system that validates a native code module. During operation, the system receives a native code module comprised of untrusted native program code. The system validates the native code module by: (1) determining that code in the native code module does not include any restricted instructions and/or does not access restricted features of a computing device; and (2) determining that the instructions in the native code module are aligned along byte boundaries such that a specified set of byte boundaries always contain a valid instruction and control flow instructions have valid targets. The system allows successfully-validated native code modules to execute, and rejects native code modules that fail validation. By validating the native code module, the system facilitates safely executing the native code module in the secure runtime environment on the computing device, thereby achieving native code performance for untrusted program binaries without significant risk of unwanted side effects.

    Abstract translation: 验证本地代码模块的系统。 在操作期间,系统接收由不可信的本地程序代码组成的本地代码模块。 该系统通过以下方式来验证本地代码模块:(1)确定本地代码模块中的代码不包括任何受限制的指令和/或不访问计算设备的受限特征; 和(2)确定本地代码模块中的指令沿着字节边界排列,使得指定的字节边界集合总是包含有效指令,并且控制流指令具有有效目标。 系统允许成功验证的本地代码模块执行,并拒绝验证失败的本机代码模块。 通过验证本地代码模块,系统便于在计算设备上的安全运行时环境中安全执行本地代码模块,从而为不受信任的程序二进制代码执行本机代码性能,而不会产生不必要的副作用。

Patent Agency Ranking