Virtual Function Table

14,000,000 Leading Edge Experts on the ideXlab platform

Scan Science and Technology

Contact Leading Edge Experts & Companies

Scan Science and Technology

Contact Leading Edge Experts & Companies

The Experts below are selected from a list of 48 Experts worldwide ranked by ideXlab platform

Song Chengyu - One of the best experts on this subject based on the ideXlab platform.

  • HDFI: Hardware-Assisted Data-Flow Isolation
    'Institute of Electrical and Electronics Engineers (IEEE)', 2016
    Co-Authors: Song Chengyu, Moon Hyungon, Alam Monjur, Yun Insu, Lee Byoungyoung, Kim Taesoo, Lee Wenke, Paek Yunheung
    Abstract:

    Memory corruption vulnerabilities are the root cause of many modern attacks. Existing defense mechanisms are inadequate; in general, the software-based approaches are not efficient and the hardware-based approaches are not flexible. In this paper, we present hardware-assisted data-flow isolation, or, HDFI, a new fine-grained data isolation mechanism that is broadly applicable and very efficient. HDFI enforces isolation at the machine word granularity by Virtually extending each memory unit with an additional tag that is defined by dataflow. This capability allows HDFI to enforce a variety of security models such as the Biba Integrity Model and the Bell -- LaPadula Model. We implemented HDFI by extending the RISC-V instruction set architecture (ISA) and instantiating it on the Xilinx Zynq ZC706 evaluation board. We ran several benchmarks including the SPEC CINT 2000 benchmark suite. Evaluation results show that the performance overhead caused by our modification to the hardware is low (<; 2%). We also developed or ported several security mechanisms to leverage HDFI, including stack protection, standard library enhancement, Virtual Function Table protection, code pointer protection, kernel data protection, and information leak prevention. Our results show that HDFI is easy to use, imposes low performance overhead, and allows us to create more elegant and more secure solutions

  • Preventing exploits against memory corruption vulnerabilities
    Georgia Institute of Technology, 2016
    Co-Authors: Song Chengyu
    Abstract:

    The most common cyber-attack vector is exploit of software vulnerability. Despite much efforts toward building secure software, software systems of even modest complexity still routinely have serious vulnerabilities. More alarmingly, even the trusted computing base (e.g. OS kernel) still contains vulnerabilities that would allow attackers to subvert security mechanisms such as the application sandbox on smartphones. Among all vulnerabilities, memory corruption is one of the most ancient, prevalent, and devastating vulnerabilities. This thesis proposed three projects on mitigating this threat. There are three popular ways to exploit a memory corruption vulnerability---attacking the code (a.k.a. code injection attack), the control data (a.k.a. control-flow hijacking attack), and the non-control data (a.k.a. data-oriented attack). Theoretically, code injection attack can be prevented with the execuTable XOR wriTable policy; but in practice, this policy is undermined by another important technique---dynamic code generation (e.g. JIT engines). In the first project, we first showed that this conflict is actually non-trivial to resolve, then we introduced a new design paradigm to fundamentally solve this problem, by relocating the dynamic code generator to a separate process. In the second project, we focused on preventing data-oriented attacks against operating system kernel. Using privilege escalation attacks as an example, we (1) demonstrated that data-oriented attacks are realistic threats and hard to prevent; (2) discussed two important challenges for preventing such attacks (i.e., completeness and performance); and (3) presented a system that combines program analysis techniques and system designs to solve these challenges. During these two projects, we found that lacking sufficient hardware support imposes many unnecessary difficulties in building robust and efficient defense mechanisms. In the third project, we proposed HDFI (hardware-assisted data-flow isolation) to overcome this limitation. HDFI is a new fine-grained isolation mechanism that enforces isolation at the machine word granularity, by Virtually extending each memory unit with an additional tag that is defined by data-flow. This capability allows HDFI to enforce a variety of security models such as the Biba Integrity Model and the Bell--LaPadula Model. For demonstration, we developed and ported several security mechanisms to leverage HDFI, including stack protection, standard library enhancement, Virtual Function Table protection, code pointer protection, kernel data protection, and information leak prevention. The evaluation results showed that HDFI is easy to use, imposes low performance overhead, and allows us to create simpler and more secure solutions.Ph.D

Jingfeng Xue - One of the best experts on this subject based on the ideXlab platform.

  • dynamic binary instrumentation based defense solution against Virtual Function Table hijacking attacks at c binary programs
    2015 10th International Conference on P2P Parallel Grid Cloud and Internet Computing (3PGCIC), 2015
    Co-Authors: Yong Wang, Hailin Yan, Zhenyan Liu, Jingfeng Xue
    Abstract:

    Memory corruption bugs are one of the most critical vulnerabilities in software security, which can be exploited to overwrite Virtual Tables (vTables) or Virtual Table pointers (vfptrs) and finally gain control over the programs at Virtual Function call sites (vTable hijacking). In this paper, we propose a novel approach to detect vTable hijacking attacks against C++ binary execuTables. We first analyze the programs to get vTable information of each class, and backup the original vTables and vfptrs at runtime, then instrument security checks dynamically before Virtual Function dispatches to validate vTables' integrity. We implement the proposed approach as a tool and use it to successfully detect vTable hijacking attacks on the version 11 of Microsoft's Internet Explorer.

  • 3PGCIC - Dynamic Binary Instrumentation Based Defense Solution against Virtual Function Table Hijacking Attacks at C++ Binary Programs
    2015 10th International Conference on P2P Parallel Grid Cloud and Internet Computing (3PGCIC), 2015
    Co-Authors: Yong Wang, Hailin Yan, Zhenyan Liu, Jingfeng Xue
    Abstract:

    Memory corruption bugs are one of the most critical vulnerabilities in software security, which can be exploited to overwrite Virtual Tables (vTables) or Virtual Table pointers (vfptrs) and finally gain control over the programs at Virtual Function call sites (vTable hijacking). In this paper, we propose a novel approach to detect vTable hijacking attacks against C++ binary execuTables. We first analyze the programs to get vTable information of each class, and backup the original vTables and vfptrs at runtime, then instrument security checks dynamically before Virtual Function dispatches to validate vTables' integrity. We implement the proposed approach as a tool and use it to successfully detect vTable hijacking attacks on the version 11 of Microsoft's Internet Explorer.

Karel Driesen - One of the best experts on this subject based on the ideXlab platform.

  • Measurement of Virtual Function Call Overhead on Modern Processors
    Efficient Polymorphic Calls, 2001
    Co-Authors: Karel Driesen
    Abstract:

    In this section we measure the direct cost of Virtual Function Table lookup for a number of realistic C++ programs running on superscalar processors employing co-scheduling and simple indirect branch prediction, and identify the processor characteristics that most affect this cost. In Section 5.2 we saw that, when analyzed in isolation, the cost of dispatch sequences of Table-based techniques are similar to Virtual Function Tables. Therefore VTBL serves as a representative technique for Table-based dispatch in this quantitative analysis.

  • OOPSLA - The direct cost of Virtual Function calls in C
    Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming systems languages and applications - OOPSLA '96, 1996
    Co-Authors: Karel Driesen, Urs Hölzle
    Abstract:

    We study the direct cost of Virtual Function calls in C++ programs, assuming the standard implementation using Virtual Function Tables. We measure this overhead experimentally for a number of large benchmark programs, using a combination of execuTable inspection and processor simulation. Our results show that the C++ programs measured spend a median of 5.2% of their time and 3.7% of their instructions in dispatch code. For "all Virtuals" versions of the programs, the median overhead rises to 13.7% (13% of the instructions). The "thunk" variant of the Virtual Function Table implementation reduces the overhead by a median of 21% relative to the standard implementation. On future processors, these overheads are likely to increase moderately.

  • OOPSLA - Minimizing row displacement dispatch Tables
    Proceedings of the tenth annual conference on Object-oriented programming systems languages and applications - OOPSLA '95, 1995
    Co-Authors: Karel Driesen, Urs Hölzle
    Abstract:

    Row displacement dispatch Tables implement message dispatching for dynamically-typed languages with a run time overhead of one memory indirection plus an equality test. The technique is similar to Virtual Function Table lookup, which is, however, restricted to statically typed languages like C++. We show how to reduce the space requirements of dispatch Tables to approximately the same size as Virtual Function Tables. The scheme is then generalized for multiple inheritance. Experiments on a number of class libraries from five different languages demonstrate that the technique is effective for a broad range of programs. Finally, we discuss optimizations of the row displacement algorithm that allow dispatch Table construction of these large samples to take place in a few seconds.

Paek Yunheung - One of the best experts on this subject based on the ideXlab platform.

  • HDFI: Hardware-Assisted Data-Flow Isolation
    'Institute of Electrical and Electronics Engineers (IEEE)', 2016
    Co-Authors: Song Chengyu, Moon Hyungon, Alam Monjur, Yun Insu, Lee Byoungyoung, Kim Taesoo, Lee Wenke, Paek Yunheung
    Abstract:

    Memory corruption vulnerabilities are the root cause of many modern attacks. Existing defense mechanisms are inadequate; in general, the software-based approaches are not efficient and the hardware-based approaches are not flexible. In this paper, we present hardware-assisted data-flow isolation, or, HDFI, a new fine-grained data isolation mechanism that is broadly applicable and very efficient. HDFI enforces isolation at the machine word granularity by Virtually extending each memory unit with an additional tag that is defined by dataflow. This capability allows HDFI to enforce a variety of security models such as the Biba Integrity Model and the Bell -- LaPadula Model. We implemented HDFI by extending the RISC-V instruction set architecture (ISA) and instantiating it on the Xilinx Zynq ZC706 evaluation board. We ran several benchmarks including the SPEC CINT 2000 benchmark suite. Evaluation results show that the performance overhead caused by our modification to the hardware is low (<; 2%). We also developed or ported several security mechanisms to leverage HDFI, including stack protection, standard library enhancement, Virtual Function Table protection, code pointer protection, kernel data protection, and information leak prevention. Our results show that HDFI is easy to use, imposes low performance overhead, and allows us to create more elegant and more secure solutions

Yunheung Paek - One of the best experts on this subject based on the ideXlab platform.

  • IEEE Symposium on Security and Privacy - HDFI: Hardware-Assisted Data-Flow Isolation
    2016 IEEE Symposium on Security and Privacy (SP), 2016
    Co-Authors: Chengyu Song, Hyungon Moon, Monjur Alam, Insu Yun, Byoungyoung Lee, Taesoo Kim, Wenke Lee, Yunheung Paek
    Abstract:

    Memory corruption vulnerabilities are the root cause of many modern attacks. Existing defense mechanisms are inadequate; in general, the software-based approaches are not efficient and the hardware-based approaches are not flexible. In this paper, we present hardware-assisted data-flow isolation, or, HDFI, a new fine-grained data isolation mechanism that is broadly applicable and very efficient. HDFI enforces isolation at the machine word granularity by Virtually extending each memory unit with an additional tag that is defined by dataflow. This capability allows HDFI to enforce a variety of security models such as the Biba Integrity Model and the Bell -- LaPadula Model. We implemented HDFI by extending the RISC-V instruction set architecture (ISA) and instantiating it on the Xilinx Zynq ZC706 evaluation board. We ran several benchmarks including the SPEC CINT 2000 benchmark suite. Evaluation results show that the performance overhead caused by our modification to the hardware is low (< 2%). We also developed or ported several security mechanisms to leverage HDFI, including stack protection, standard library enhancement, Virtual Function Table protection, code pointer protection, kernel data protection, and information leak prevention. Our results show that HDFI is easy to use, imposes low performance overhead, and allows us to create more elegant and more secure solutions.