{"id":{"repo_id":"uiuc","oai_identifier":"oai:www.ideals.illinois.edu:2142/45568"},"canonical_url":"https://search.dev.ndltd.org/etd/uiuc/oai:www.ideals.illinois.edu:2142/45568","repository":{"repo_id":"uiuc","name":"University of Illinois - Urbana-Champaign","base_url":"https://www.ideals.illinois.edu/oai-pmh"},"display":{"title":"Asynchronous hardware-enforced memory safety","abstract":"Memory corruption attacks, such as buffer overflow attacks, have been threatening software security for more than three decades. Despite tremendous efforts by developers and researchers to prevent programs written in memory-unsafe language (e.g., C/C++) from memory errors (the root cause of memory corruption attacks), the drawbacks and limitations of prior protection mechanisms impede their wide deployment. Prior approaches suffer from either (1) incomplete coverage of memory errors, (2) prohibitively high runtime overhead, (3) weak protection for metadata used by the approach, (4) low source compatibility to legacy code, (5) low binary compatibility to compiled binaries, (6) limited modularity support, or (7) low scalability for larger programs. This thesis presents AHEMS, an architectural support that ensures both spatial and temporal memory safety based on the pointer-based approach to overcome the aforementioned drawbacks. AHEMS provides three novel features that allow for fast, flexible, and secure memory safety checking. First, AHEMS checks memory safety asynchronously to the main processor so that the runtime overhead is very low. Second, AHEMS can be flexibly implemented either in a processor, as a co-processor, or as an external device, depending on the designer's choice. Third, AHEMS provides physical isolation for the metadata (i.e., base and bounds information) so that the metadata cannot be tampered with by any means. We implement an FPGA prototype for AHEMS that allows us to evaluate its detection coverage, runtime overhead, critical path, hardware overhead, and power consumption. Our experiment shows that AHEMS passes 676 security test cases out of 11 different CWEs (including spatial and temporal memory errors) and only incurs as little as 10.6% runtime overhead with a negligible impact on the critical path (0.06% overhead) and power consumption (0.5% overhead).","abstract_html":"Memory corruption attacks, such as buffer overflow attacks, have been threatening software security for more than three decades. Despite tremendous efforts by developers and researchers to prevent programs written in memory-unsafe language (e.g., C/C++) from memory errors (the root cause of memory corruption attacks), the drawbacks and limitations of prior protection mechanisms impede their wide deployment. Prior approaches suffer from either (1) incomplete coverage of memory errors, (2) prohibitively high runtime overhead, (3) weak protection for metadata used by the approach, (4) low source compatibility to legacy code, (5) low binary compatibility to compiled binaries, (6) limited modularity support, or (7) low scalability for larger programs. This thesis presents AHEMS, an architectural support that ensures both spatial and temporal memory safety based on the pointer-based approach to overcome the aforementioned drawbacks. AHEMS provides three novel features that allow for fast, flexible, and secure memory safety checking. First, AHEMS checks memory safety asynchronously to the main processor so that the runtime overhead is very low. Second, AHEMS can be flexibly implemented either in a processor, as a co-processor, or as an external device, depending on the designer&#x27;s choice. Third, AHEMS provides physical isolation for the metadata (i.e., base and bounds information) so that the metadata cannot be tampered with by any means. We implement an FPGA prototype for AHEMS that allows us to evaluate its detection coverage, runtime overhead, critical path, hardware overhead, and power consumption. Our experiment shows that AHEMS passes 676 security test cases out of 11 different CWEs (including spatial and temporal memory errors) and only incurs as little as 10.6% runtime overhead with a negligible impact on the critical path (0.06% overhead) and power consumption (0.5% overhead).","abstract_has_math":false,"creators":["Tseng, Kuan-Yu"],"institution":"University of Illinois at Urbana-Champaign","degree_name":"M.S.","degree_level":"Thesis","degree_discipline":"Computer Science","degree_department":null,"school":null,"contributors":["Iyer, Ravishankar K.","Kalbarczyk, Zbigniew T."],"advisors":[],"committee_chairs":[],"committee_members":[],"year":2013,"date_issued":"2013-08-22T16:48:05Z","date_published":"2013-08-22T16:48:05Z","updated_at":"2026-07-22T22:25:36Z","subjects":["Memory Safety","Memory errors","Hardware","Field-Programmable Gate Array (FPGA)","Memory Corruption Attacks","C Programming language","Bounds checking"],"languages":["en"],"rights":["Copyright 2013 Kuan-Yu Tseng"],"rights_urls":[],"identifier_entries":[]},"links":{"outbound_url":"http://hdl.handle.net/2142/45568","outbound_label":"Handle","outbound_source":"dc:identifier"},"metadata_groups":[{"id":"people","label":"People","entries":[{"key":"dc:contributor","label":"Contributor","values":["Iyer, Ravishankar K.","Kalbarczyk, Zbigniew T."]},{"key":"dc:creator","label":"Author","values":["Tseng, Kuan-Yu"]}]},{"id":"academic_context","label":"Academic Context","entries":[{"key":"dc:date","label":"Dc Date","values":["2013-08-22T16:48:05Z","2015-08-22T10:00:50Z","2013-08"]},{"key":"dc:type","label":"Dc Type","values":["text"]},{"key":"thesis:degree_discipline","label":"Discipline","values":["Computer Science"]},{"key":"thesis:degree_level","label":"Degree Level","values":["Thesis"]},{"key":"thesis:degree_name","label":"Degree Name","values":["M.S."]},{"key":"thesis:institution_name","label":"Thesis Institution Name","values":["University of Illinois at Urbana-Champaign"]}]},{"id":"subjects_keywords","label":"Subjects and Keywords","entries":[{"key":"dc:subject","label":"Dc Subject","values":["Memory Safety","Memory errors","Hardware","Field-Programmable Gate Array (FPGA)","Memory Corruption Attacks","C Programming language","Bounds checking"]}]},{"id":"language_rights","label":"Language and Rights","entries":[{"key":"dc:language","label":"Dc Language","values":["en"]},{"key":"dc:rights","label":"Dc Rights","values":["Copyright 2013 Kuan-Yu Tseng"]}]},{"id":"identifiers","label":"Identifiers","entries":[{"key":"dc:identifier","label":"Identifier","values":["http://hdl.handle.net/2142/45568"]}]},{"id":"additional","label":"Additional Metadata","entries":[{"key":"dc:description","label":"Description","values":["Memory corruption attacks, such as buffer overflow attacks, have been threatening software security for more than three decades. Despite tremendous efforts by developers and researchers to prevent programs written in memory-unsafe language (e.g., C/C++) from memory errors (the root cause of memory corruption attacks), the drawbacks and limitations of prior protection mechanisms impede their wide deployment. Prior approaches suffer from either (1) incomplete coverage of memory errors, (2) prohibitively high runtime overhead, (3) weak protection for metadata used by the approach, (4) low source compatibility to legacy code, (5) low binary compatibility to compiled binaries, (6) limited modularity support, or (7) low scalability for larger programs. This thesis presents AHEMS, an architectural support that ensures both spatial and temporal memory safety based on the pointer-based approach to overcome the aforementioned drawbacks. AHEMS provides three novel features that allow for fast, flexible, and secure memory safety checking. First, AHEMS checks memory safety asynchronously to the main processor so that the runtime overhead is very low. Second, AHEMS can be flexibly implemented either in a processor, as a co-processor, or as an external device, depending on the designer's choice. Third, AHEMS provides physical isolation for the metadata (i.e., base and bounds information) so that the metadata cannot be tampered with by any means. We implement an FPGA prototype for AHEMS that allows us to evaluate its detection coverage, runtime overhead, critical path, hardware overhead, and power consumption. Our experiment shows that AHEMS passes 676 security test cases out of 11 different CWEs (including spatial and temporal memory errors) and only incurs as little as 10.6% runtime overhead with a negligible impact on the critical path (0.06% overhead) and power consumption (0.5% overhead).","Item withdrawn by Mark Zulauf (zulauf@illinois.edu) on 2013-07-16T21:50:41Z Item was in collections: University of Illinois Theses & Dissertations (ID: 1) No. of bitstreams: 2 Tseng_Kuan-Yu.zip: 6999917 bytes, checksum: 35c515566c17dcb0b893b4f00d7dbd97 (MD5) Tseng_Kuan-Yu.pdf: 1645395 bytes, checksum: 4334b862baad07b5b08f9556441717ca (MD5)","Made available in DSpace on 2013-08-22T16:48:05Z (GMT). No. of bitstreams: 3 Kuan-Yu_Tseng.pdf: 1645395 bytes, checksum: 4334b862baad07b5b08f9556441717ca (MD5) Tseng_Kuan-Yu.zip: 6999917 bytes, checksum: 35c515566c17dcb0b893b4f00d7dbd97 (MD5) license.txt: 4062 bytes, checksum: 9e0b017c172b4cc9d2f20dcd92acf12b (MD5)","Restriction data tranferred 2014-07-01T11:21:02-05:00 Original Data Group with Access UIUC Users [automated] Release Date: 2015-08-22 11:49:27 UTC Reason: Author requested U of Illinois access only (OA after 2yrs) in Vireo ETD system","Item marked as restricted to the 'UIUC Users [automated]' Group (id=2) by Seth Robbins (srobbins@illinois.edu) on 2013-08-22T16:49:37Z Item is restricted until 2015-08-22T16:49:27Z","U of I Only Restriction Lifted for Item 45550 on 2015-08-22T10:00:50Z."]},{"key":"dc:title","label":"Title","values":["Asynchronous hardware-enforced memory safety"]}]}],"canonical_facts":{"dc:contributor":["Iyer, Ravishankar K.","Kalbarczyk, Zbigniew T."],"dc:creator":["Tseng, Kuan-Yu"],"dc:date":["2013-08-22T16:48:05Z","2015-08-22T10:00:50Z","2013-08"],"dc:description":["Memory corruption attacks, such as buffer overflow attacks, have been threatening software security for more than three decades. Despite tremendous efforts by developers and researchers to prevent programs written in memory-unsafe language (e.g., C/C++) from memory errors (the root cause of memory corruption attacks), the drawbacks and limitations of prior protection mechanisms impede their wide deployment. Prior approaches suffer from either (1) incomplete coverage of memory errors, (2) prohibitively high runtime overhead, (3) weak protection for metadata used by the approach, (4) low source compatibility to legacy code, (5) low binary compatibility to compiled binaries, (6) limited modularity support, or (7) low scalability for larger programs. This thesis presents AHEMS, an architectural support that ensures both spatial and temporal memory safety based on the pointer-based approach to overcome the aforementioned drawbacks. AHEMS provides three novel features that allow for fast, flexible, and secure memory safety checking. First, AHEMS checks memory safety asynchronously to the main processor so that the runtime overhead is very low. Second, AHEMS can be flexibly implemented either in a processor, as a co-processor, or as an external device, depending on the designer's choice. Third, AHEMS provides physical isolation for the metadata (i.e., base and bounds information) so that the metadata cannot be tampered with by any means. We implement an FPGA prototype for AHEMS that allows us to evaluate its detection coverage, runtime overhead, critical path, hardware overhead, and power consumption. Our experiment shows that AHEMS passes 676 security test cases out of 11 different CWEs (including spatial and temporal memory errors) and only incurs as little as 10.6% runtime overhead with a negligible impact on the critical path (0.06% overhead) and power consumption (0.5% overhead).","Item withdrawn by Mark Zulauf (zulauf@illinois.edu) on 2013-07-16T21:50:41Z Item was in collections: University of Illinois Theses & Dissertations (ID: 1) No. of bitstreams: 2 Tseng_Kuan-Yu.zip: 6999917 bytes, checksum: 35c515566c17dcb0b893b4f00d7dbd97 (MD5) Tseng_Kuan-Yu.pdf: 1645395 bytes, checksum: 4334b862baad07b5b08f9556441717ca (MD5)","Made available in DSpace on 2013-08-22T16:48:05Z (GMT). No. of bitstreams: 3 Kuan-Yu_Tseng.pdf: 1645395 bytes, checksum: 4334b862baad07b5b08f9556441717ca (MD5) Tseng_Kuan-Yu.zip: 6999917 bytes, checksum: 35c515566c17dcb0b893b4f00d7dbd97 (MD5) license.txt: 4062 bytes, checksum: 9e0b017c172b4cc9d2f20dcd92acf12b (MD5)","Restriction data tranferred 2014-07-01T11:21:02-05:00 Original Data Group with Access UIUC Users [automated] Release Date: 2015-08-22 11:49:27 UTC Reason: Author requested U of Illinois access only (OA after 2yrs) in Vireo ETD system","Item marked as restricted to the 'UIUC Users [automated]' Group (id=2) by Seth Robbins (srobbins@illinois.edu) on 2013-08-22T16:49:37Z Item is restricted until 2015-08-22T16:49:27Z","U of I Only Restriction Lifted for Item 45550 on 2015-08-22T10:00:50Z."],"dc:identifier":["http://hdl.handle.net/2142/45568"],"dc:language":["en"],"dc:rights":["Copyright 2013 Kuan-Yu Tseng"],"dc:subject":["Memory Safety","Memory errors","Hardware","Field-Programmable Gate Array (FPGA)","Memory Corruption Attacks","C Programming language","Bounds checking"],"dc:title":["Asynchronous hardware-enforced memory safety"],"dc:type":["text"],"thesis:degree_discipline":["Computer Science"],"thesis:degree_level":["Thesis"],"thesis:degree_name":["M.S."],"thesis:institution_name":["University of Illinois at Urbana-Champaign"]},"updated_at":"2026-07-22T22:25:36Z"}