Leveraging speculative architectures for runtime program validation

Program execution can be tampered with by malicious attackers through exploiting software vulnerabilities. Changing the program behavior by compromising control data and decision data has become the most serious threat in computer system security. Although several hardware approaches have been prese...

Full description

Autores:
Tipo de recurso:
Fecha de publicación:
2013
Institución:
Universidad Tecnológica de Bolívar
Repositorio:
Repositorio Institucional UTB
Idioma:
eng
OAI Identifier:
oai:repositorio.utb.edu.co:20.500.12585/9074
Acceso en línea:
https://hdl.handle.net/20.500.12585/9074
Palabra clave:
Control flow validation
Program validation
Security attacks
Branch target buffers
Computer system security
Control flows
Hardware-based approach
Performance penalties
Program validation
Security attacks
Software vulnerabilities
Digital storage
Hardware
Rights
restrictedAccess
License
http://creativecommons.org/licenses/by-nc-nd/4.0/
id UTB2_9211e49962fa1dc7d80bc340fd00eaa4
oai_identifier_str oai:repositorio.utb.edu.co:20.500.12585/9074
network_acronym_str UTB2
network_name_str Repositorio Institucional UTB
repository_id_str
dc.title.none.fl_str_mv Leveraging speculative architectures for runtime program validation
title Leveraging speculative architectures for runtime program validation
spellingShingle Leveraging speculative architectures for runtime program validation
Control flow validation
Program validation
Security attacks
Branch target buffers
Computer system security
Control flows
Hardware-based approach
Performance penalties
Program validation
Security attacks
Software vulnerabilities
Digital storage
Hardware
title_short Leveraging speculative architectures for runtime program validation
title_full Leveraging speculative architectures for runtime program validation
title_fullStr Leveraging speculative architectures for runtime program validation
title_full_unstemmed Leveraging speculative architectures for runtime program validation
title_sort Leveraging speculative architectures for runtime program validation
dc.subject.keywords.none.fl_str_mv Control flow validation
Program validation
Security attacks
Branch target buffers
Computer system security
Control flows
Hardware-based approach
Performance penalties
Program validation
Security attacks
Software vulnerabilities
Digital storage
Hardware
topic Control flow validation
Program validation
Security attacks
Branch target buffers
Computer system security
Control flows
Hardware-based approach
Performance penalties
Program validation
Security attacks
Software vulnerabilities
Digital storage
Hardware
description Program execution can be tampered with by malicious attackers through exploiting software vulnerabilities. Changing the program behavior by compromising control data and decision data has become the most serious threat in computer system security. Although several hardware approaches have been presented to validate program execution, they either incur great hardware overhead or introduce false alarms. We propose a new hardware-based approach by leveraging the existing speculative architectures for runtime program validation. The on-chip branch target buffer (BTB) is utilized as a cache of the legitimate control flow transfers stored in a secure memory region. In addition, the BTB is extended to store the correct program path information. At each indirect branch site, the BTB is used to validate the decision history of previous conditional branches and monitor the following execution path at runtime. Implementation of this approach is transparent to the upper operating system and programs. Thus, it is applicable to legacy code. Because of good code locality of the executable programs and effectiveness of branch prediction, the frequency of control-flow validations against the secure off-chip memory is low. Our experimental results show a negligible performance penalty and small storage overhead. © 2013 ACM.
publishDate 2013
dc.date.issued.none.fl_str_mv 2013
dc.date.accessioned.none.fl_str_mv 2020-03-26T16:32:53Z
dc.date.available.none.fl_str_mv 2020-03-26T16:32:53Z
dc.type.coarversion.fl_str_mv http://purl.org/coar/version/c_970fb48d4fbd8a85
dc.type.coar.fl_str_mv http://purl.org/coar/resource_type/c_2df8fbb1
dc.type.driver.none.fl_str_mv info:eu-repo/semantics/article
dc.type.hasVersion.none.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.spa.none.fl_str_mv Artículo
status_str publishedVersion
dc.identifier.citation.none.fl_str_mv Transactions on Embedded Computing Systems; Vol. 13, Núm. 1
dc.identifier.issn.none.fl_str_mv 15399087
dc.identifier.uri.none.fl_str_mv https://hdl.handle.net/20.500.12585/9074
dc.identifier.doi.none.fl_str_mv 10.1145/2512456
dc.identifier.instname.none.fl_str_mv Universidad Tecnológica de Bolívar
dc.identifier.reponame.none.fl_str_mv Repositorio UTB
dc.identifier.orcid.none.fl_str_mv 26325154200
7103059457
identifier_str_mv Transactions on Embedded Computing Systems; Vol. 13, Núm. 1
15399087
10.1145/2512456
Universidad Tecnológica de Bolívar
Repositorio UTB
26325154200
7103059457
url https://hdl.handle.net/20.500.12585/9074
dc.language.iso.none.fl_str_mv eng
language eng
dc.rights.coar.fl_str_mv http://purl.org/coar/access_right/c_16ec
dc.rights.uri.none.fl_str_mv http://creativecommons.org/licenses/by-nc-nd/4.0/
dc.rights.accessRights.none.fl_str_mv info:eu-repo/semantics/restrictedAccess
dc.rights.cc.none.fl_str_mv Atribución-NoComercial 4.0 Internacional
rights_invalid_str_mv http://creativecommons.org/licenses/by-nc-nd/4.0/
Atribución-NoComercial 4.0 Internacional
http://purl.org/coar/access_right/c_16ec
eu_rights_str_mv restrictedAccess
dc.format.medium.none.fl_str_mv Recurso electrónico
dc.format.mimetype.none.fl_str_mv application/pdf
dc.source.none.fl_str_mv https://www.scopus.com/inward/record.uri?eid=2-s2.0-84883857670&doi=10.1145%2f2512456&partnerID=40&md5=64152a241d75d7cc5bec7937d4c39862
institution Universidad Tecnológica de Bolívar
bitstream.url.fl_str_mv https://repositorio.utb.edu.co/bitstream/20.500.12585/9074/1/MiniProdInv.png
bitstream.checksum.fl_str_mv 0cb0f101a8d16897fb46fc914d3d7043
bitstream.checksumAlgorithm.fl_str_mv MD5
repository.name.fl_str_mv Repositorio Institucional UTB
repository.mail.fl_str_mv repositorioutb@utb.edu.co
_version_ 1808397610781769728
spelling 2020-03-26T16:32:53Z2020-03-26T16:32:53Z2013Transactions on Embedded Computing Systems; Vol. 13, Núm. 115399087https://hdl.handle.net/20.500.12585/907410.1145/2512456Universidad Tecnológica de BolívarRepositorio UTB263251542007103059457Program execution can be tampered with by malicious attackers through exploiting software vulnerabilities. Changing the program behavior by compromising control data and decision data has become the most serious threat in computer system security. Although several hardware approaches have been presented to validate program execution, they either incur great hardware overhead or introduce false alarms. We propose a new hardware-based approach by leveraging the existing speculative architectures for runtime program validation. The on-chip branch target buffer (BTB) is utilized as a cache of the legitimate control flow transfers stored in a secure memory region. In addition, the BTB is extended to store the correct program path information. At each indirect branch site, the BTB is used to validate the decision history of previous conditional branches and monitor the following execution path at runtime. Implementation of this approach is transparent to the upper operating system and programs. Thus, it is applicable to legacy code. Because of good code locality of the executable programs and effectiveness of branch prediction, the frequency of control-flow validations against the secure off-chip memory is low. Our experimental results show a negligible performance penalty and small storage overhead. © 2013 ACM.Recurso electrónicoapplication/pdfenghttp://creativecommons.org/licenses/by-nc-nd/4.0/info:eu-repo/semantics/restrictedAccessAtribución-NoComercial 4.0 Internacionalhttp://purl.org/coar/access_right/c_16echttps://www.scopus.com/inward/record.uri?eid=2-s2.0-84883857670&doi=10.1145%2f2512456&partnerID=40&md5=64152a241d75d7cc5bec7937d4c39862Leveraging speculative architectures for runtime program validationinfo:eu-repo/semantics/articleinfo:eu-repo/semantics/publishedVersionArtículohttp://purl.org/coar/version/c_970fb48d4fbd8a85http://purl.org/coar/resource_type/c_2df8fbb1Control flow validationProgram validationSecurity attacksBranch target buffersComputer system securityControl flowsHardware-based approachPerformance penaltiesProgram validationSecurity attacksSoftware vulnerabilitiesDigital storageHardwareSantos J.C.M.Fei Y.Arora, D., Ravi, S., Raghunathan, A., Jha, N.K., Secure embedded processing through hardwareassisted run-time monitoring (2005) Proceedings of the Conference on Design, Automation & Test, pp. 178-183Austin, T., Larson, E., Ernst, D., SimpleScalar: An infrastructure for computer system modeling (2002) Comput, 35 (2), pp. 59-67Borin, E., Wang, C., Wu, Y., Araujo, G., Dynamic binary control-flow errors detection (2005) ACM SIGARCH Comput. Architect. News, 33 (5), pp. 15-20Chiueh, T.-C., Hsu, F.-H., RAD: A compile-time solution to buffer overflow attacks (2001) Proceedings of the International Conference on Distributed Computing Systems, pp. 409-417Cowen, C., Pu, C., Maier, D., Hinton, H., Walpole, J., Bakke, P., Beattie, S., Zhang, Q., StackGuard: Automatic adaptive detection and prevention of buffer-overflow attacks (1998) Proceedings of the USENIX Security Symposium, pp. 63-78Crandall, J.R., Wu, S.F., Chong, F.T., Minos: Architectural support for protecting control data (2006) ACM Tran. Architect. Code Optim, 3 (4), pp. 359-389Dalton, M., Kannan, H., Kozyrakis, C., Raksha: A flexible flow architecture for software security (2007) Proceedings of the International Symposium on Computer Architecture, pp. 482-293Fei, Y., Shi, Z.J., Microarchitectural support for program code integrity monitoring in applicationspecific instruction set processors (2007) Proceedings of the Design Automation & Test Europe Conference, pp. 815-820Feng, H.H., Giffin, J.T., Huang, Y., Jha, S., Lee, W., Miller, B.P., Formalizing sensitivity in static analysis for intrusion detection (2004) Proceedings of the IEEE Symposium on Security & Privacy, pp. 194-208Forrest, S., Hofmeyr, S.A., Somayaji, A., Longstaff, T.A., A sense of self for UNIX processes (1996) Proceedings of the IEEE Symposium on Security & Privacy, pp. 120-128Frantzen, M., Shuey, M., StackGhost: Hardware facilitated stack protection (2001) Proceedings of the USENIX Security Symposium, pp. 55-66Guthaus, M., Ringenberg, J., Austin, T., Mudge, T., Brown, R., MiBench: A free, commercially representative embedded benchmark suite (2001) Proceedings of the IEEE International Workshop on Workload Characterization, pp. 3-14Jimenez, D.A., Piecewise linear branch prediction (2005) Proceedings of the IEEE International Symposium on Computer Architecture, pp. 382-393Lee, C.-C., Chen, I.-C.K., Mudge, T.N., The bi-mode branch predictor (1997) Proceedings of the ACM/IEEE International Symposium on Microarchitecture, pp. 4-13Lee, R., Karig, D.K., McGregor, J.P., Shi, Z., Enlisting hardware architecture to thwart malicious code injection (2003) Proceedings of the International Conference on Security in Pervasive Computing, pp. 237-252Lin, H., Guan, X., Fei, Y., Shi, Z.J., Compiler-assisted architectural support for program code integritymonitoring in application-specific instruction set processors (2007) Proceedings of the International Conference on Computer DesignMao, S., Wolf, T., Hardware support for secure processing in embedded systems (2007) Proceedings of the Design Automation Conference, pp. 483-488Martinez Santos, J.C., Fei, Y., Leveraging speculative architectures for run-time program validation (2008) Proceedings of the International Conference on Computer Design, pp. 498-505Michael, C., Ghosh, A., Using finite automata to mine execution data for intrusion detection: A preliminary report (2000) Proceedings of the International Workshop on Recent Advances in Intrusion Detection, 1907, pp. 66-79One, A., Smashing the stack for fun and profit (1996) Phrack, 7, p. 49Park, Y., Zhang, Z., Lee, G., Microarchitectural protection against stack-based buffer overflow attacks (2006) IEEE Micro, 26 (4), pp. 62-71Perleberg, C., Smith, A.J., Branch target buffer design and optimization (1993) IEEE Trans. Comput, 42 (4), pp. 396-412Pyo, C., Lee, G., Encoding function pointers and memory arrangement checking against buffer overflow attacks (2002) Proceedings of the International Conference on Information & Communications Security, 2513, pp. 25-36Ragel, R., Parameswaran, S., Hardware assisted preemptive control flow checking for embedded processors to improve reliability (2006) Proceedings of the International Conference on Hardware/Software Codesign & System Synthesis, pp. 100-105Shi, W., Fryman, J., Gu, G., Lee, H.-H., Zhang, Y., Yang, J., InfoShield: A security architecture for protecting information usage in memory (2006) Proceedings of the International Symposium on High-Performance Computer Architecture, pp. 222-231Shi, Y., Dempsey, S., Lee, G., Architectural support for run-time validation of control flow transfer (2006) Proceedings of the International Conference on Computer Design, pp. 506-513Shi, Y., Lee, G., Augmenting branch predictor to secure program execution (2007) Proceedings of the IEEE/IFIP International Conference on Dependable Systems & Networks, pp. 10-19Suh, G.E., Lee, J.W., Zhang, D., Devadas, S., Secure program execution via dynamic information flow tracking (2004) Proceedings of the International Conference on Architectural Support for Programming Languages & Operating Systems, pp. 85-96Thomas, R., Franklin, M., Wilkerson, C., Stark, J., Improving branch prediction by dynamic dataflow-based identification of correlated branches from a large global history (2003) Proceedings of the Interenational Symposium on Computer Architecture, pp. 314-323Tuck, N., Cadler, B., Varghese, G., Hardware and binary modification support for code pointer protection from buffer overflow (2004) Proceedings of the International Symposium on Microarchitecture, pp. 209-220Vachharajani, N., Bridges, M.J., Chang, J., Rangan, R., Ottoni, G., Blome, J.A., Reis, G.A., August, D.I., RIFLE: An architectural framework for user-centric information-flow security (2004) Proceedings of the International Symposium on Microarchitecture, pp. 243-254Wilander, J., Kamkar, M., A comparison of publicly available tools for static intrusion prevention (2002) Proceedings of the 7th Nordic Workshop on Secure IT Systems (NordSec'02), p. 68Xu, J., Nakka, N., Defeating memory corruption attacks via pointer taintedness detection (2005) Proceedings of the International Conference on Dependable Systems & Networks, pp. 378-387Ye, D., Kaeli, D., A reliable return address stack: Microarchitectural features to defeat stack smashing (2005) Proceedings of the Workshop on Architectural Support for Security & Antivirus, pp. 73-88Zhang, T., Zhuang, X., Pande, S., Lee, W., Anomalous path detection with hardware support (2005) Proceedings of the International Conference on Compilers, Architecture, & Synthesis for Embedded Systems, pp. 43-54http://purl.org/coar/resource_type/c_6501THUMBNAILMiniProdInv.pngMiniProdInv.pngimage/png23941https://repositorio.utb.edu.co/bitstream/20.500.12585/9074/1/MiniProdInv.png0cb0f101a8d16897fb46fc914d3d7043MD5120.500.12585/9074oai:repositorio.utb.edu.co:20.500.12585/90742021-02-02 15:16:46.956Repositorio Institucional UTBrepositorioutb@utb.edu.co