Execution Model Enforcement Via Program Shepherding

Nearly all security attacks have one thing in common: they coerce the target program into performing actions that it was never intended to perform. In short, they violate the program's execution model. The execution model encompasses the Application Binary Interface (ABI), higher-level specifi...

Full description

Bibliographic Details
Main Authors: Kiriansky, Vladimir, Bruening, Derek, Amarasinghe, Saman
Published: 2023
Online Access:https://hdl.handle.net/1721.1/149325
_version_ 1826210500801724416
author Kiriansky, Vladimir
Bruening, Derek
Amarasinghe, Saman
author_facet Kiriansky, Vladimir
Bruening, Derek
Amarasinghe, Saman
author_sort Kiriansky, Vladimir
collection MIT
description Nearly all security attacks have one thing in common: they coerce the target program into performing actions that it was never intended to perform. In short, they violate the program's execution model. The execution model encompasses the Application Binary Interface (ABI), higher-level specifications from the program's source programming language, and components specific to the program --- for example, which values a particular function pointer may take. If this execution model were enforced, and only program actions that the programmer intended were allowed, a majority of current security holes would be closed. In this paper, we employ program shepherding[26] to enforce a program's execution model. Program shepherding monitors control flow in order to enforce a security policy. We use static and dynamic analyses to automatically build a custom security policy for a target program which specifies the program's execution model. We have implemented our analyses in the DynamoRIO [5] runtime code modification system. The resulting system imposes minimal or no performance overhead, operates on unmodified native binaries, and requires no special hardware or operating system support. Our static analyses require source code access but not recompilation. The analysis process requires no user interaction, but is able to build a strict enough policy to prevent all deviations from the program's control flow graph and nearly all violations of the calling convention, greatly reducing the possibility of an unintended program action.
first_indexed 2024-09-23T14:50:58Z
id mit-1721.1/149325
institution Massachusetts Institute of Technology
last_indexed 2024-09-23T14:50:58Z
publishDate 2023
record_format dspace
spelling mit-1721.1/1493252023-03-30T03:21:26Z Execution Model Enforcement Via Program Shepherding Kiriansky, Vladimir Bruening, Derek Amarasinghe, Saman Nearly all security attacks have one thing in common: they coerce the target program into performing actions that it was never intended to perform. In short, they violate the program's execution model. The execution model encompasses the Application Binary Interface (ABI), higher-level specifications from the program's source programming language, and components specific to the program --- for example, which values a particular function pointer may take. If this execution model were enforced, and only program actions that the programmer intended were allowed, a majority of current security holes would be closed. In this paper, we employ program shepherding[26] to enforce a program's execution model. Program shepherding monitors control flow in order to enforce a security policy. We use static and dynamic analyses to automatically build a custom security policy for a target program which specifies the program's execution model. We have implemented our analyses in the DynamoRIO [5] runtime code modification system. The resulting system imposes minimal or no performance overhead, operates on unmodified native binaries, and requires no special hardware or operating system support. Our static analyses require source code access but not recompilation. The analysis process requires no user interaction, but is able to build a strict enough policy to prevent all deviations from the program's control flow graph and nearly all violations of the calling convention, greatly reducing the possibility of an unintended program action. 2023-03-29T14:43:12Z 2023-03-29T14:43:12Z 2003-05 https://hdl.handle.net/1721.1/149325 MIT-LCS-TM-638 application/pdf
spellingShingle Kiriansky, Vladimir
Bruening, Derek
Amarasinghe, Saman
Execution Model Enforcement Via Program Shepherding
title Execution Model Enforcement Via Program Shepherding
title_full Execution Model Enforcement Via Program Shepherding
title_fullStr Execution Model Enforcement Via Program Shepherding
title_full_unstemmed Execution Model Enforcement Via Program Shepherding
title_short Execution Model Enforcement Via Program Shepherding
title_sort execution model enforcement via program shepherding
url https://hdl.handle.net/1721.1/149325
work_keys_str_mv AT kirianskyvladimir executionmodelenforcementviaprogramshepherding
AT brueningderek executionmodelenforcementviaprogramshepherding
AT amarasinghesaman executionmodelenforcementviaprogramshepherding