{"title":"基于受控通道的控制流完整性","authors":"Radu Mantu, Dan Sporici, Mihai Chiroiu","doi":"10.1109/CSCS.2019.00053","DOIUrl":null,"url":null,"abstract":"By ensuring the Control Flow Integrity (CFI) of a program, one can successfully verify that each performed action is indeed part of a correct execution flow thus preventing unwanted behaviour caused by malicious inputs. Validating the Control Flow Graph (CFG) is usually done by instrumenting the code and enforcing a set of conditions which imply overhead and compiler support. In this paper, we investigate an alternative approach, based on controlled-channel: by invalidating certain pages and monitoring the Page Faults, we generate a CFG of faulting instructions which we use to detect unusual execution flows (e.g. buffer overflows, ROP) and discuss methods to estimate and mitigate the induced overhead. Using the page invalidation selection algorithms that we propose, we obtain an approximate slowdown factor of 3.43. This can be further reduced by doing a manual analysis of the involved binaries and sacrificing accuracy for speed.","PeriodicalId":352411,"journal":{"name":"2019 22nd International Conference on Control Systems and Computer Science (CSCS)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2019-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"Control Flow Integrity Based on Controlled Channel\",\"authors\":\"Radu Mantu, Dan Sporici, Mihai Chiroiu\",\"doi\":\"10.1109/CSCS.2019.00053\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"By ensuring the Control Flow Integrity (CFI) of a program, one can successfully verify that each performed action is indeed part of a correct execution flow thus preventing unwanted behaviour caused by malicious inputs. Validating the Control Flow Graph (CFG) is usually done by instrumenting the code and enforcing a set of conditions which imply overhead and compiler support. In this paper, we investigate an alternative approach, based on controlled-channel: by invalidating certain pages and monitoring the Page Faults, we generate a CFG of faulting instructions which we use to detect unusual execution flows (e.g. buffer overflows, ROP) and discuss methods to estimate and mitigate the induced overhead. Using the page invalidation selection algorithms that we propose, we obtain an approximate slowdown factor of 3.43. This can be further reduced by doing a manual analysis of the involved binaries and sacrificing accuracy for speed.\",\"PeriodicalId\":352411,\"journal\":{\"name\":\"2019 22nd International Conference on Control Systems and Computer Science (CSCS)\",\"volume\":\"1 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2019-05-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"2019 22nd International Conference on Control Systems and Computer Science (CSCS)\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/CSCS.2019.00053\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"2019 22nd International Conference on Control Systems and Computer Science (CSCS)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/CSCS.2019.00053","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
Control Flow Integrity Based on Controlled Channel
By ensuring the Control Flow Integrity (CFI) of a program, one can successfully verify that each performed action is indeed part of a correct execution flow thus preventing unwanted behaviour caused by malicious inputs. Validating the Control Flow Graph (CFG) is usually done by instrumenting the code and enforcing a set of conditions which imply overhead and compiler support. In this paper, we investigate an alternative approach, based on controlled-channel: by invalidating certain pages and monitoring the Page Faults, we generate a CFG of faulting instructions which we use to detect unusual execution flows (e.g. buffer overflows, ROP) and discuss methods to estimate and mitigate the induced overhead. Using the page invalidation selection algorithms that we propose, we obtain an approximate slowdown factor of 3.43. This can be further reduced by doing a manual analysis of the involved binaries and sacrificing accuracy for speed.