Software fault isolation using byte-granularity memory protection
    1.
    发明授权
    Software fault isolation using byte-granularity memory protection 有权
    软件故障隔离采用字节度记忆保护

    公开(公告)号:US08352797B2

    公开(公告)日:2013-01-08

    申请号:US12633326

    申请日:2009-12-08

    IPC分类号: G06F11/30

    摘要: Software fault isolation methods using byte-granularity memory protection are described. In an embodiment, untrusted drivers or other extensions to a software system are run in a separate domain from the host portion of the software system, but share the same address space as the host portion. Calls between domains are mediated using an interposition library and access control data is maintained for substantially each byte of relevant virtual address space. Instrumentation added to the untrusted extension at compile-time, before load-time, or at runtime and added by the interposition library enforces the isolation between domains, for example by adding access right checks before any writes or indirect calls and by redirecting function calls to call wrappers in the interposition library. The instrumentation also updates the access control data to grant and revoke access rights on a fine granularity according to the semantics of the operation being invoked.

    摘要翻译: 描述了使用字节粒度内存保护的软件故障隔离方法。 在一个实施例中,软件系统的不受信任的驱动程序或其他扩展在与软件系统的主机部分分开的域中运行,但是与主机部分共享相同的地址空间。 域之间的调用使用插入库进行调用,并且访问控制数据基本上维持相关虚拟地址空间的每个字节。 在编译期间,在加载时间之前或在运行时添加到不可信扩展的仪器,在插入库中添加的仪器会强制实现域之间的隔离,例如在任何写入或间接调用之前添加访问权限检查,并通过将函数调用重定向到 在插页库中调用包装器。 仪器还会更新访问控制数据,根据正在调用的操作的语义,以精细粒度授予和撤销访问权限。

    Software Fault Isolation Using Byte-Granularity Memory Protection
    2.
    发明申请
    Software Fault Isolation Using Byte-Granularity Memory Protection 有权
    使用字节粒度内存保护的软件故障隔离

    公开(公告)号:US20110138476A1

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

    申请号:US12633326

    申请日:2009-12-08

    IPC分类号: G06F21/22

    摘要: Software fault isolation methods using byte-granularity memory protection are described. In an embodiment, untrusted drivers or other extensions to a software system are run in a separate domain from the host portion of the software system, but share the same address space as the host portion. Calls between domains are mediated using an interposition library and access control data is maintained for substantially each byte of relevant virtual address space. Instrumentation added to the untrusted extension at compile-time, before load-time, or at runtime and added by the interposition library enforces the isolation between domains, for example by adding access right checks before any writes or indirect calls and by redirecting function calls to call wrappers in the interposition library. The instrumentation also updates the access control data to grant and revoke access rights on a fine granularity according to the semantics of the operation being invoked.

    摘要翻译: 描述了使用字节粒度内存保护的软件故障隔离方法。 在一个实施例中,软件系统的不受信任的驱动程序或其他扩展在与软件系统的主机部分分开的域中运行,但是与主机部分共享相同的地址空间。 域之间的调用使用插入库进行调用,并且访问控制数据基本上维持相关虚拟地址空间的每个字节。 在编译期间,在加载时间之前或在运行时添加到不可信扩展的仪器,在插入库中添加的这些扩展可以强制实现域之间的隔离,例如在任何写入或间接调用之前添加访问权限检查,并通过重定向函数调用 在插页库中调用包装器。 仪器还会更新访问控制数据,根据正在调用的操作的语义,以精细粒度授予和撤销访问权限。

    Detecting memory errors using write integrity testing
    3.
    发明授权
    Detecting memory errors using write integrity testing 有权
    使用写入完整性测试检测内存错误

    公开(公告)号:US08434064B2

    公开(公告)日:2013-04-30

    申请号:US12058513

    申请日:2008-03-28

    IPC分类号: G06F9/44 G06F9/45

    摘要: Methods of detecting memory errors using write integrity testing are described. In an embodiment, additional analysis is performed when a program is compiled. This analysis identifies a set of objects which can be written by each instruction in the program. Additional code is then inserted into the program so that, at runtime, the program checks before performing a write instruction that the particular object being written is one of the set of objects that it is allowed to write. The inserted code causes an exception to be raised if this check fails and allows the write to proceed if the check is successful. In a further embodiment, code may also be inserted to perform checks before indirect control-flow transfer instructions, to ensure that those instructions cannot transfer control to locations different from those intended.

    摘要翻译: 描述使用写入完整性测试来检测存储器错误的方法。 在一个实施例中,当编译程序时执行附加分析。 此分析标识可由程序中的每条指令写入的一组对象。 然后将附加代码插入到程序中,使得在运行时,程序在执行写入指令之前检查所写入的特定对象是被允许写入的一组对象之一。 如果此检查失败,则插入的代码会引发异常,如果检查成功,则允许写入继续。 在另一实施例中,还可以插入代码以在间接控制流传输指令之前执行检查,以确保那些指令不能将控制转移到与预期不同的位置。

    DETECTING MEMORY ERRORS USING WRITE INTEGRITY TESTING
    4.
    发明申请
    DETECTING MEMORY ERRORS USING WRITE INTEGRITY TESTING 有权
    使用写入完整性测试检测内存错误

    公开(公告)号:US20090249289A1

    公开(公告)日:2009-10-01

    申请号:US12058513

    申请日:2008-03-28

    IPC分类号: G06F9/44

    摘要: Methods of detecting memory errors using write integrity testing are described. In an embodiment, additional analysis is performed when a program is compiled. This analysis identifies a set of objects which can be written by each instruction in the program. Additional code is then inserted into the program so that, at runtime, the program checks before performing a write instruction that the particular object being written is one of the set of objects that it is allowed to write. The inserted code causes an exception to be raised if this check fails and allows the write to proceed if the check is successful. In a further embodiment, code may also be inserted to perform checks before indirect control-flow transfer instructions, to ensure that those instructions cannot transfer control to locations different from those intended.

    摘要翻译: 描述使用写入完整性测试来检测存储器错误的方法。 在一个实施例中,当编译程序时执行附加分析。 此分析标识可由程序中的每条指令写入的一组对象。 然后将附加代码插入到程序中,使得在运行时,程序在执行写入指令之前检查所写入的特定对象是被允许写入的一组对象之一。 如果此检查失败,则插入的代码会引发异常,如果检查成功,则允许写入继续。 在另一实施例中,还可以插入代码以在间接控制流传输指令之前执行检查,以确保那些指令不能将控制转移到与预期不同的位置。

    Automatic filter generation and generalization
    5.
    发明授权
    Automatic filter generation and generalization 有权
    自动过滤器生成和泛化

    公开(公告)号:US08316448B2

    公开(公告)日:2012-11-20

    申请号:US11925575

    申请日:2007-10-26

    IPC分类号: H04L29/06

    摘要: Methods and architectures for automatic filter generation are described. In an embodiment, these filters are generated in order to block inputs which would otherwise disrupt the normal functioning of a program. An initial set of filter conditions is generated by analyzing the path of a program from a point at which a bad input is received to the point at which the malfunctioning of the program is detected and creating conditions on an input which ensure that this path is followed. Having generated the initial set of filter conditions, the set is made less specific by determining which instructions do not influence whether the point of detection of the attack is reached and removing the filter conditions which correspond to these instructions.

    摘要翻译: 描述了自动过滤器生成的方法和体系结构。 在一个实施例中,生成这些滤波器以便阻止否则将中断程序的正常功能的输入。 通过从接收到不良输入的点到检测到程序故障的点分析程序的路径并在输入上创建条件来产生初始的过滤条件集合,以确保遵循该路径 。 在产生初始的滤波条件集之后,通过确定哪些指令不影响是否达到攻击的检测点,并且去除与这些指令相对应的滤波条件,使该集合具有较小的特定性。

    Automatic Filter Generation and Generalization
    6.
    发明申请
    Automatic Filter Generation and Generalization 有权
    自动过滤器生成和泛化

    公开(公告)号:US20090113550A1

    公开(公告)日:2009-04-30

    申请号:US11925575

    申请日:2007-10-26

    IPC分类号: G06F21/00

    摘要: Methods and architectures for automatic filter generation are described. In an embodiment, these filters are generated in order to block inputs which would otherwise disrupt the normal functioning of a program. An initial set of filter conditions is generated by analyzing the path of a program from a point at which a bad input is received to the point at which the malfunctioning of the program is detected and creating conditions on an input which ensure that this path is followed. Having generated the initial set of filter conditions, the set is made less specific by determining which instructions do not influence whether the point of detection of the attack is reached and removing the filter conditions which correspond to these instructions.

    摘要翻译: 描述了自动过滤器生成的方法和体系结构。 在一个实施例中,生成这些滤波器以便阻止否则将中断程序的正常功能的输入。 通过从接收到不良输入的点到检测到程序故障的点分析程序的路径并在输入上创建条件来产生初始的过滤条件集合,以确保遵循该路径 。 在产生初始的滤波条件集之后,通过确定哪些指令不影响是否达到攻击的检测点,并且去除与这些指令相对应的滤波条件,使该集合具有较小的特定性。

    Privacy enhanced error reports
    7.
    发明授权
    Privacy enhanced error reports 有权
    隐私增强错误报告

    公开(公告)号:US08122436B2

    公开(公告)日:2012-02-21

    申请号:US11941272

    申请日:2007-11-16

    IPC分类号: G06F9/44

    摘要: Methods and apparatus for generating error reports with enhanced privacy are described. In an embodiment the error is triggered by an input to a software program. An error report is generated by identifying conditions on an input to the program which ensure that, for any input which satisfies the conditions, the software program will follow the same execution path such that the error can be reproduced. The error report may include these conditions or may include a new input generated using the conditions.

    摘要翻译: 描述用于生成具有增强的隐私的错误报告的方法和装置。 在一个实施例中,错误由对软件程序的输入触发。 通过识别程序输入上的条件来生成错误报告,该条件确保对于满足条件的任何输入,软件程序将遵循相同的执行路径,从而可以再现错误。 错误报告可能包括这些条件,或者可能包括使用条件生成的新输入。

    Privacy Enhanced Error Reports
    8.
    发明申请
    Privacy Enhanced Error Reports 有权
    隐私增强错误报告

    公开(公告)号:US20090132861A1

    公开(公告)日:2009-05-21

    申请号:US11941272

    申请日:2007-11-16

    IPC分类号: G06F11/36

    摘要: Methods and apparatus for generating error reports with enhanced privacy are described. In an embodiment the error is triggered by an input to a software program. An error report is generated by identifying conditions on an input to the program which ensure that, for any input which satisfies the conditions, the software program will follow the same execution path such that the error can be reproduced. The error report may include these conditions or may include a new input generated using the conditions.

    摘要翻译: 描述用于生成具有增强的隐私的错误报告的方法和装置。 在一个实施例中,错误由对软件程序的输入触发。 通过识别程序输入上的条件来生成错误报告,该条件确保对于满足条件的任何输入,软件程序将遵循相同的执行路径,从而可以再现错误。 错误报告可能包括这些条件,或者可能包括使用条件生成的新输入。

    Securing Software By Enforcing Data Flow Integrity
    9.
    发明申请
    Securing Software By Enforcing Data Flow Integrity 有权
    通过执行数据流完整性来保护软件

    公开(公告)号:US20090282393A1

    公开(公告)日:2009-11-12

    申请号:US12306188

    申请日:2007-05-04

    IPC分类号: G06F9/06

    CPC分类号: G06F21/54 G06F21/52

    摘要: The majority of such software attacks exploit software vulnerabilities or flaws to write data to unintended locations. For example, control-data attacks exploit buffer overflows or other vulnerabilities to overwrite a return address in the stack, a function pointer, or some other piece of control data. Non-control-data attacks exploit similar vulnerabilities to overwrite security critical data without subverting the intended control flow in the program. We describe a method for securing software against both control-data and non-control-data attacks. A static analysis is carried out to determine data flow information for a software program. Data-flow tracking instructions are formed in order to track data flow during execution or emulation of that software. Also, checking instructions are formed to check the tracked data flow against the static analysis results and thereby identify potential attacks or errors. Optional optimisations are described to reduce the resulting additional overheads.

    摘要翻译: 大多数此类软件攻击利用软件漏洞或漏洞将数据写入非预期位置。 例如,控制数据攻击利用缓冲区溢出或其他漏洞来覆盖堆栈中的返回地址,函数指针或其他一些控制数据。 非控制数据攻击利用类似的漏洞来覆盖安全关键数据,而不会破坏程序中的预期控制流程。 我们描述一种保护软件免受控制数据和非控制数据攻击的方法。 进行静态分析以确定软件程序的数据流信息。 形成数据流跟踪指令,以便在执行或仿真该软件期间跟踪数据流。 此外,形成检查指令以根据静态分析结果检查跟踪的数据流,从而识别潜在的攻击或错误。 描述可选优化,以减少所产生的额外开销。

    Securing software by enforcing data flow integrity
    10.
    发明授权
    Securing software by enforcing data flow integrity 有权
    通过执行数据流完整性来保护软件

    公开(公告)号:US09390261B2

    公开(公告)日:2016-07-12

    申请号:US12306188

    申请日:2007-05-04

    IPC分类号: G06F9/44 G06F21/54 G06F21/52

    CPC分类号: G06F21/54 G06F21/52

    摘要: The majority of such software attacks exploit software vulnerabilities or flaws to write data to unintended locations. For example, control-data attacks exploit buffer overflows or other vulnerabilities to overwrite a return address in the stack, a function pointer, or some other piece of control data. Non-control-data attacks exploit similar vulnerabilities to overwrite security critical data without subverting the intended control flow in the program. We describe a method for securing software against both control-data and non-control-data attacks. A static analysis is carried out to determine data flow information for a software program. Data-flow tracking instructions are formed in order to track data flow during execution or emulation of that software. Also, checking instructions are formed to check the tracked data flow against the static analysis results and thereby identify potential attacks or errors. Optional optimisations are described to reduce the resulting additional overheads.

    摘要翻译: 大多数此类软件攻击利用软件漏洞或漏洞将数据写入非预期位置。 例如,控制数据攻击利用缓冲区溢出或其他漏洞来覆盖堆栈中的返回地址,函数指针或其他一些控制数据。 非控制数据攻击利用类似的漏洞来覆盖安全关键数据,而不会破坏程序中的预期控制流程。 我们描述一种用于保护软件免受控制数据和非控制数据攻击的方法。 进行静态分析以确定软件程序的数据流信息。 形成数据流跟踪指令,以便在执行或仿真该软件期间跟踪数据流。 此外,形成检查指令以根据静态分析结果检查跟踪的数据流,从而识别潜在的攻击或错误。 描述可选优化,以减少所产生的额外开销。