Secure Execution Via Program Shepherding

We introduce program shepherding, a method for monitoring control flow transfers during program execution to enforce a security policy. Shepherding ensures that malicious code masquerading as data is never executed, thwarting a large class of security attacks. Shepherding can also enforce entry poin...

Full description

Bibliographic Details
Main Authors: Kiriansky, Vladimir, Bruening, Derek, Amarasinghe, Saman
Published: 2023
Online Access:https://hdl.handle.net/1721.1/149314
_version_ 1826210076111667200
author Kiriansky, Vladimir
Bruening, Derek
Amarasinghe, Saman
author_facet Kiriansky, Vladimir
Bruening, Derek
Amarasinghe, Saman
author_sort Kiriansky, Vladimir
collection MIT
description We introduce program shepherding, a method for monitoring control flow transfers during program execution to enforce a security policy. Shepherding ensures that malicious code masquerading as data is never executed, thwarting a large class of security attacks. Shepherding can also enforce entry points as the only way to execute shared library code. Furthermore, shepherding guarantees that sandboxing checks around any type of program operation will never be bypassed. We have implemented these capabilities efficiently in a runtime system with minimal or no performance penalties. This system operates on unmodified native binaries, requires no special hardware or operating system support, and runs on existing IA-32 machines.
first_indexed 2024-09-23T14:42:02Z
id mit-1721.1/149314
institution Massachusetts Institute of Technology
last_indexed 2024-09-23T14:42:02Z
publishDate 2023
record_format dspace
spelling mit-1721.1/1493142023-03-30T03:23:10Z Secure Execution Via Program Shepherding Kiriansky, Vladimir Bruening, Derek Amarasinghe, Saman We introduce program shepherding, a method for monitoring control flow transfers during program execution to enforce a security policy. Shepherding ensures that malicious code masquerading as data is never executed, thwarting a large class of security attacks. Shepherding can also enforce entry points as the only way to execute shared library code. Furthermore, shepherding guarantees that sandboxing checks around any type of program operation will never be bypassed. We have implemented these capabilities efficiently in a runtime system with minimal or no performance penalties. This system operates on unmodified native binaries, requires no special hardware or operating system support, and runs on existing IA-32 machines. 2023-03-29T14:42:37Z 2023-03-29T14:42:37Z 2002-02 https://hdl.handle.net/1721.1/149314 MIT-LCS-TM-625 application/pdf
spellingShingle Kiriansky, Vladimir
Bruening, Derek
Amarasinghe, Saman
Secure Execution Via Program Shepherding
title Secure Execution Via Program Shepherding
title_full Secure Execution Via Program Shepherding
title_fullStr Secure Execution Via Program Shepherding
title_full_unstemmed Secure Execution Via Program Shepherding
title_short Secure Execution Via Program Shepherding
title_sort secure execution via program shepherding
url https://hdl.handle.net/1721.1/149314
work_keys_str_mv AT kirianskyvladimir secureexecutionviaprogramshepherding
AT brueningderek secureexecutionviaprogramshepherding
AT amarasinghesaman secureexecutionviaprogramshepherding