Abstract
Software systems are often engineered and tested for functionality under normal rather than worst-case conditions. This makes the systems vulnerable to denial of service attacks, where attackers engineer conditions that result in overconsumption of resources or starvation and stalling of execution. While the security community is well familiar with volumetric resource exhaustion attacks at the network and transport layers, application-specific attacks pose a challenging threat. In this paper, we present Radmin, a novel system for early detection of application-level resource exhaustion and starvation attacks. Radmin works directly on compiled binaries. It learns and executes multiple probabilistic finite automata from benign runs of target programs. Radmin confines the resource usage of target programs to the learned automata, and detects resource usage anomalies at their early stages. We demonstrate the effectiveness of Radmin by testing it over a variety of resource exhaustion and starvation weaknesses on commodity off-the-shelf software.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
- 1.
Unless stated otherwise, we use “measurements” and “sequences” interchangeably in the rest of this paper.
- 2.
Source code available under GPLv3 at: https://github.com/melsabagh/radmin.
- 3.
Unless stated otherwise, we use “task” to indistinguishably refer to child processes and threads spawned by a monitored program.
- 4.
For details and code samples, please refer to the CWE project at http://cwe.mitre.org.
References
Myths of DDoS attacks. http://blog.radware.com/security/2012/02/4-massive-myths-of-ddos/
Availability overrides security concerns. http://www.hrfuture.net/performance-and-productivity/availability-over-rides-cloud-security-concerns.php?Itemid=169
CWE-400: Uncontrolled resource consumption. http://cwe.mitre.org/data/definitions/400.html
Dyninst API. http://www.dyninst.org/dyninst
Mobile users favor productivity over security. http://www.infoworld.com/article/2686762/security/mobile-users-favor-productivity-over-security-as-they-should.html
Pthread livelock. http://www.paulbridger.com/livelock/
Sqlite livelock. http://www.mail-archive.com/sqlite-users@sqlite.org/msg54618.html
Systemtap. https://sourceware.org/systemtap/
Unixbench. https://github.com/kdlucas/byte-unixbench
Vectorized implementation of k-means++. https://github.com/michaelchughes/KMeansRex
Aiello, W., Bellovin, S.M., Blaze, M., Ioannidis, J., Reingold, O., Canetti, R., Keromytis, A.D.: Efficient, DoS-resistant, Secure Key Exchange for Internet Protocols. In: Proceedings of the 9th ACM Conference on Computer and Communications Security, pp. 48–58. CCS 2002. ACM, New York (2002)
Antunes, J., Neves, N.F., Veríssimo, P.J.: Detection and prediction of resource-exhaustion vulnerabilities. In: ISSRE 2008, 19th International Symposium on Software Reliability Engineering, 2008, pp. 87–96. IEEE (2008)
Arthur, D., Vassilvitskii, S.: k-means++: The advantages of careful seeding. In: Proceedings of the Eighteenth annual ACM-SIAM Symposium on Discrete Algorithms, pp. 1027–1035. Society for Industrial and Applied Mathematics (2007)
Bejerano, G., Yona, G.: Variations on probabilistic suffix trees: statistical modeling and prediction of protein families. Bioinformatics 17(1), 23–43 (2001)
Carlini, N., Wagner, D.: Rop is still dangerous: Breaking modern defenses. In: USENIX Security Symposium (2014)
Chang, R.M., Jiang, G., Ivancic, F., Sankaranarayanan, S., Shmatikov, V.: Inputs of coma: Static detection of denial-of-service vulnerabilities. In: Proceedings of the 22nd IEEE Computer Security Foundations Symposium, CSF 2009, Port Jefferson, New York, USA, July 8–10, 2009, pp. 186–199. IEEE Computer Society (2009)
Chee, W.O., Brennan, T.: Layer-7 DDoS (2010)
Crosby, S., Wallach, D.: Algorithmic DoS. In: Encyclopedia of Cryptography and Security, pp. 32–33. Springer (2011)
Dekel, O., Shalev-Shwartz, S., Singer, Y.: The power of selective memory: self-bounded learning of prediction suffix trees. In: Advances in Neural Information Processing Systems, pp. 345–352 (2004)
Desnoyers, M.: Using the linux kernel tracepoints. https://www.kernel.org/doc/Documentation/trace/tracepoints.txt
Fu, S.: Performance metric selection for autonomic anomaly detection on cloud computing systems. In: Global Telecommunications Conference (GLOBECOM 2011), 2011 IEEE, pp. 1–5. IEEE (2011)
Ganai, M.K.: Dynamic livelock analysis of multi-threaded programs. In: Qadeer, S., Tasiran, S. (eds.) RV 2012. LNCS, vol. 7687, pp. 3–18. Springer, Heidelberg (2013)
Groza, B., Minea, M.: Formal modelling and automatic detection of resource exhaustion attacks. In: Proceedings of the 6th ACM Symposium on Information, Computer and Communications Security, pp. 326–333. ACM (2011)
Gulavani, B.S., Gulwani, S.: A numerical abstract domain based on expression abstraction and max operator with application in timing analysis. In: Gupta, A., Malik, S. (eds.) CAV 2008. LNCS, vol. 5123, pp. 370–384. Springer, Heidelberg (2008)
Kayacik, H.G., et al.: Mimicry attacks demystified: What can attackers do to evade detection? In: Sixth Annual Conference on Privacy, Security and Trust, PST 2008, pp. 213–223. IEEE (2008)
Kostadinov, D.: Layer-7 DDoS attacks: detection and mitigation - infosec institute (2013). http://resources.infosecinstitute.com/layer-7-ddos-attacks-detection-mitigation/
Lin, Y., Kulkarni, S.S.: Automatic repair for multi-threaded programs with deadlock/livelock using maximum satisfiability. In: Proceedings of the 2014 International Symposium on Software Testing and Analysis, pp. 237–247. ACM (2014)
Mazeroff, G., Gregor, J., Thomason, M., Ford, R.: Probabilistic suffix models for API sequence analysis of Windows XP applications. Pattern Recogn. 41(1), 90–101 (2008)
Parampalli, C., Sekar, R., Johnson, R.: A practical mimicry attack against powerful system-call monitors. In: Proceedings of the 2008 ACM symposium on Information, computer and communications security, pp. 156–167. ACM (2008)
Ron, D., Singer, Y., Tishby, N.: The power of amnesia: learning probabilistic automata with variable memory length. Mach. Learn. 25(2–3), 117–149 (1996)
Rutar, N., Hollingsworth, J.: Data centric techniques for mapping performance measurements. In: 2011 IEEE International Symposium on Parallel and Distributed Processing Workshops and Phd Forum (IPDPSW), pp. 1274–1281, May 2011
Saltzer, J., Schroeder, M.: The protection of information in computer systems. Proc. IEEE 63(9), 1278–1308 (1975)
Sekar, R., Bendre, M., Dhurjati, D., Bollineni, P.: A fast automaton-based method for detecting anomalous program behaviors. In: Proceedings 2001 IEEE Symposium on Security and Privacy, 2001, S&P 2001, pp. 144–155. IEEE (2001)
Sekar, R., Venkatakrishnan, V., Basu, S., Bhatkar, S., DuVarney, D.C.: Model-carrying code: a practical approach for safe execution of untrusted applications. ACM SIGOPS Operating Syst. Rev. 37(5), 15–28 (2003)
Sidiroglou, S., Laadan, O., Perez, C., Viennot, N., Nieh, J., Keromytis, A.D.: Assure: automatic software self-healing using rescue points. ACM SIGARCH Comput. Archit. News 37(1), 37–48 (2009)
Uh, G.R., Cohn, R., Yadavalli, B., Peri, R., Ayyagari, R.: Analyzing dynamic binary instrumentation overhead. In: Workshop on Binary Instrumentation and Application (2007)
Zargar, S.T., Joshi, J., Tipper, D.: A survey of defense mechanisms against distributed denial of service (DDoS) flooding attacks. IEEE Commun. Surv. Tutorials 15(4), 2046–2069 (2013)
Zheng, L., Myers, A.C.: End-to-end availability policies and noninterference. In: 18th IEEE Workshop Computer Security Foundations, CSFW-18 2005, pp. 272–286. IEEE (2005)
Zinke, J.: System call tracing overhead. In: The International Linux System Technology Conference (Linux Kongress) (2009)
Acknowledgements
We thank Konstantinos Kolias, the anonymous reviewers, and our shepherd Andrei Sabelfeld for their insightful comments and suggestions. We thank Sharath Hiremagalore for technical assistance. This work is supported by the National Science Foundation Grant No. CNS 1421747 and II-NEW 1205453. Opinions, findings, conclusions, and recommendations expressed in this material are those of the authors and do not necessarily reflect the views of the NSF or the US Government.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Appendices
A PST Hyperparameters Grid
See Table 5.
B Starvation and Livelock Snippets

Rights and permissions
Copyright information
© 2015 Springer International Publishing Switzerland
About this paper
Cite this paper
Elsabagh, M., Barbará, D., Fleck, D., Stavrou, A. (2015). Radmin: Early Detection of Application-Level Resource Exhaustion and Starvation Attacks. In: Bos, H., Monrose, F., Blanc, G. (eds) Research in Attacks, Intrusions, and Defenses. RAID 2015. Lecture Notes in Computer Science(), vol 9404. Springer, Cham. https://doi.org/10.1007/978-3-319-26362-5_24
Download citation
DOI: https://doi.org/10.1007/978-3-319-26362-5_24
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-26361-8
Online ISBN: 978-3-319-26362-5
eBook Packages: Computer ScienceComputer Science (R0)