Abstract
A well known tenet for ensuring unauthorized leaks of sensitive data such as passwords and cryptographic keys is to erase (“zeroize”) them after their intended use in any program. Prior work on minimizing sensitive data lifetimes has focused exclusively on sequential programs. In this work, we address the problem of data lifetime minimization for concurrent programs. We develop a new algorithm that precisely anticipates when to introduce these erasures, and develop an implementation of this algorithm in a tool called DEICS. Through an experimental evaluation, we show that DEICS is able to reduce lifetimes of shared sensitive data in several concurrent applications (over 100k lines of code combined) with minimal performance overheads.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Common vulnerability exposures, https://cve.mitre.org/
Heartbleed (2014), http://en.wikipedia.org/wiki/Heartbleed
Aiken, A., Fahndrich, M., Levien, R.: Better static memory management: improving region-based analysis of higher-order languages. In: Proceedings of the ACM SIGPLAN 1995 Conference on Programming Language Design and Implementation, New York, NY, USA (1995)
Akritidis, P.: Cling: A Memory Allocator to Mitigate Dangling Pointers. In: USENIX Security Symposium, Washington, DC (2010)
Andersenm, L.O.: Program Analysis and Specialization for the C Programming Language. Technical report (1994)
Avots, D., Dalton, M., Benjamin Livshits, V., Lam, M.S.: Improving Software Security with a C Pointer Analysis. In: International Conference on Software Engineering, St. Louis, MO (2005)
von Behren, R., Condit, J., Zhou, F., McCloskey, B., Brewer, E., Necula, G.: Knot, http://capriccio.cs.berkeley.edu/
Birkedal, L., Tofte, M., Vejlstrup, M.: From region inference to von neumann machines via region representation inference. In: Proceedings of the 23rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 1996, pp. 171–183. ACM, New York (1996)
Boehm, H.-J.: A Garbage Collector for C and C++ (2002), http://www.hpl.hp.com/personal/Hans_Boehm/gc
Bouajjani, A., Esparza, J., Touili, T.: A generic approach to the static analysis of concurrent programs with procedures. In: Proceedings of the 30th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2003, pp. 62–73. ACM, New York (2003)
Chong, S., Myers, A.C.: Language-Based Information Erasure. In: Computer Security Foundations Workshop, Aix-en-Provence, France (2005)
Chong, S., Myers, A.C.: End-to-End Enforcement of Erasure and Declassification. In: Computer Security Foundations Symposium, Pittsburgh, PA (2008)
Chow, J., Pfaff, B., Garfinkel, T., Christopher, K., Rosenblum, M.: Understanding Data Lifetime via Whole System Simulation. In: USENIX Security Symposium, San Diego, CA (2004)
Chow, J., Pfaff, B., Garfinkel, T., Rosenblum, M.: Shredding Your Garbage: Reducing Data Lifetime through Secure Deallocation. In: USENIX Security Symposium, Baltimore, MD (2005)
Chugh, R., Voung, J.W., Jhala, R., Lerner, S.: Dataflow analysis for concurrent programs using datarace detection. In: Proceedings of the 2008 ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2008, pp. 316–326. ACM, New York (2008)
De, A., D’Souza, D., Nasre, R.: Dataflow analysis for datarace-free programs. In: Barthe, G. (ed.) ESOP 2011. LNCS, vol. 6602, pp. 196–215. Springer, Heidelberg (2011)
Duesterwald, E., Soffa, M.L.: Concurrency analysis in the presence of procedures using a data-flow framework. In: Proceedings of the Symposium on Testing, Analysis, and Verification, TAV4, pp. 36–48. ACM, New York (1991)
Dwyer, M.B., Clarke, L.A.: Data flow analysis for verifying properties of concurrent programs. In: Proceedings of the 2nd ACM SIGSOFT Symposium on Foundations of Software Engineering, SIGSOFT 1994, pp. 62–75. ACM, New York (1994)
Gondi, K., Bisht, P., Venkatachari, P., Prasad Sistla, A., Venkatakrishnan, V.N.: Swipe: eager erasure of sensitive data in large scale systems software. In: Proceedings of the Second ACM Conference on Data and Application Security and Privacy, CODASPY 2012, pp. 295–306. ACM, New York (2012)
Gutmann, P.: Secure Deletion of Data from Magnetic and Solid-state Memory. In: USENIX Security Symposium, San Jose, California (1996)
Gutmann, P.: Data Remanence in Semiconductor Devices. In: USENIX Security Symposium, Washington, DC (2001)
Guttman, P.: Software Leaves Encryption Keys, Passwords Lying around in Memory. Security Focus Vuln Dev Mailing List (2002), http://www.securityfocus.com/archive/82/298001/30/0/threaded
Guyer, S.Z., McKinley, K.S., Frampton, D.: Free-Me: A Static Analysis for Automatic Individual Object Reclamation. In: Programming Language Design and Implementation, Ottawa, Ontario, Canada (2006)
Hallenberg, N., Elsman, M., Tofte, M.: Combining region inference and garbage collection. In: Proceedings of the ACM SIGPLAN 2002 Conference on Programming Language Design and Implementation, PLDI 2002, pp. 141–152. ACM, New York (2002)
Khatiwala, T., Swaminathan, R., Venkatakrishnan, V.N.: Data Sandboxing: A Technique for Enforcing Confidentiality Policies. In: Annual Computer Security Applications Conference, Miami Beach, FL (2006)
Krohn, M., Yip, A., Brodsky, M., Cliffer, N., Frans Kaashoek, M., Kohler, E., Morris, R.: Information Flow Control for Standard OS Abstractions. In: Symposium on Operating Systems Principles, Washington, WA (2007)
Lattner, C., Adve, V.: Automatic Pool Allocation: Improving Performance by Controlling Data Structure Layout in the Heap. In: Programming Language Design and Implementation, Chicago, IL (2005)
Lee, J., Padua, D.A., Midkiff, S.P.: Basic compiler algorithms for parallel programs. In: Proceedings of the Seventh ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP 1999, pp. 1–12. ACM, New York (1999)
McCune, J.M., Li, Y., Qu, N., Zhou, Z., Datta, A., Gligor, V., Perrig, A.: TrustVisor: Efficient TCB Reduction and Attestation. In: IEEE Symposium on Security and Privacy, Oakland, CA (2010)
Necula, G.C., McPeak, S., Rahul, S.P., Weimer, W.: CIL: Intermediate Language and Tools for Analysis and Transformation of C Programs. In: Nigel Horspool, R. (ed.) CC 2002. LNCS, vol. 2304, pp. 213–228. Springer, Heidelberg (2002)
Netzer, R.H.B., Miller, B.P.: What are race conditions?: Some issues and formalizations. ACM Lett. Program. Lang. Syst. 1(1), 74–88 (1992)
Qadeer, S., Wu, D.: Kiss: keep it simple and sequential. SIGPLAN Not. 39(6), 14–24 (2004)
Ruggieri, C., Murtagh, T.P.: Lifetime analysis of dynamically allocated objects. In: Proceedings of the 15th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 1988, pp. 285–293. ACM, New York (1988)
Rugina, R., Rinard, M.: Symbolic Bounds Analysis of Pointers, Array Indices, and Accessed Memory Regions. In: Programming Language Design and Implementation, Vancouver, British Columbia, Canada (2000)
Sinha, N., Wang, C.: Staged concurrent program analysis. In: Proceedings of the Eighteenth ACM SIGSOFT International Symposium on Foundations of Software Engineering, FSE 2010, pp. 47–56. ACM, New York (2010)
Steensgaard, B.: Points-to Analysis in Almost Linear Time. In: Principles of Programming Languages, St. Petersburg Beach, FL (1996)
Thomaßen, A.: Retawq, http://retawq.sourceforge.net/
Tofte, M., Talpin, J.-P.: Implementation of the typed call-by-value λ-calculus using a stack of regions. In: Proceedings of the 21st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 1994, pp. 188–201. ACM, New York (1994)
Zeldovich, N., Boyd-Wickizer, S., Kohler, E., Mazières, D.: Making Information Flow Explicit in HiStar. In: Symposium on Operating Systems Design and Implementation, Seattle, WA (2006)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2014 Springer International Publishing Switzerland
About this paper
Cite this paper
Gondi, K., Sistla, A.P., Venkatakrishnan, V.N. (2014). DEICS: Data Erasure in Concurrent Software. In: Bernsmed, K., Fischer-Hübner, S. (eds) Secure IT Systems. NordSec 2014. Lecture Notes in Computer Science(), vol 8788. Springer, Cham. https://doi.org/10.1007/978-3-319-11599-3_3
Download citation
DOI: https://doi.org/10.1007/978-3-319-11599-3_3
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-11598-6
Online ISBN: 978-3-319-11599-3
eBook Packages: Computer ScienceComputer Science (R0)