Show simple item record

dc.contributor.authorEvans, Isaac
dc.contributor.authorFingeret, Samuel (Samuel P.)
dc.contributor.authorGonzález, Julián Armando
dc.contributor.authorOtgonbaatar, Ulziibayar
dc.contributor.authorTang, Tiffany(Tiffany L.)
dc.contributor.authorShrobe, Howard E
dc.contributor.authorSidiroglou, Stylianos
dc.contributor.authorRinard, Martin C
dc.contributor.authorOkhravi, Hamed
dc.date.accessioned2020-06-23T20:54:45Z
dc.date.available2020-06-23T20:54:45Z
dc.date.issued2015-07
dc.identifier.isbn978-1-4673-6949-7
dc.identifier.issn1081-6011
dc.identifier.issn2375-1207
dc.identifier.urihttps://hdl.handle.net/1721.1/125963
dc.description.abstractMemory corruption attacks continue to be a major vector of attack for compromising modern systems. Numerous defenses have been proposed against memory corruption attacks, but they all have their limitations and weaknesses. Stronger defenses such as complete memory safety for legacy languages (C/C++) incur a large overhead, while weaker ones such as practical control flow integrity have been shown to be ineffective. A recent technique called code pointer integrity (CPI) promises to balance security and performance by focusing memory safety on code pointers thus preventing most control-hijacking attacks while maintaining low overhead. CPI protects access to code pointers by storing them in a safe region that is protected by instruction level isolation. On x86-32, this isolation is enforced by hardware, on x86-64 and ARM, isolation is enforced by information hiding. We show that, for architectures that do not support segmentation in which CPI relies on information hiding, CPI's safe region can be leaked and then maliciously modified by using data pointer overwrites. We implement a proof-of-concept exploit against Nginx and successfully bypass CPI implementations that rely on information hiding in 6 seconds with 13 observed crashes. We also present an attack that generates no crashes and is able to bypass CPI in 98 hours. Our attack demonstrates the importance of adequately protecting secrets in security mechanisms and the dangers of relying on difficulty of guessing without guaranteeing the absence of memory leaks.en_US
dc.description.sponsorshipOffice of Naval Research (award N00014-14-1-0006)en_US
dc.description.sponsorshipDARPA (Grant FA8650-11-C-7192)en_US
dc.language.isoen
dc.publisherInstitute of Electrical and Electronics Engineers (IEEE)en_US
dc.relation.isversionof10.1109/SP.2015.53en_US
dc.rightsCreative Commons Attribution-Noncommercial-Share Alikeen_US
dc.rights.urihttp://creativecommons.org/licenses/by-nc-sa/4.0/en_US
dc.sourceMIT web domainen_US
dc.titleMissing the Point(er): On the Effectiveness of Code Pointer Integrityen_US
dc.typeArticleen_US
dc.identifier.citationEvans, Isaac, et al. "Missing the Point(er): On the Effectiveness of Code Pointer Integrity." 2015 IEEE Symposium on Security and Privacy, San Jose, CA, 2015, pp. 781-796, doi: 10.1109/SP.2015.53. © 2015 Author(s)en_US
dc.contributor.departmentMassachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratoryen_US
dc.contributor.departmentLincoln Laboratoryen_US
dc.relation.journalIEEE Symposium on Security and Privacyen_US
dc.eprint.versionAuthor's final manuscripten_US
dc.type.urihttp://purl.org/eprint/type/ConferencePaperen_US
eprint.statushttp://purl.org/eprint/status/NonPeerRevieweden_US
dc.date.updated2019-07-02T16:06:01Z
dspace.date.submission2019-07-02T16:06:02Z
mit.metadata.statusComplete


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record