Abstract
The ability to analyze software systems without access to the source code, offers many advantages including the detection of vulnerabilities so that they may be fixed before an adversary can exploit them in a zero day attack. This type of analysis also has an important role in education as it allows students to use their imagination and creativity in the exploration process. In this paper, we use two techniques for black-box testing based on our previous work, where we demonstrated how library calls may be intercepted using wrappers as well as using the kernel to separate the memory of a process into regions, based on the (statically/dynamically) linked libraries that a program uses. By monitoring function calls to libraries or the main executable, we can determine if a high-level execution signature (which depends not only on the occurrence, but also the sequence and number of calls) fits a pattern of a possible attack against a system under test. We can, then, (a) determine whether a call should go ahead, (b) determine whether the arguments are acceptable and (c) ensure that we will be informed when there is suspicion of foul play. We then demonstrate how these techniques may be used in student training sessions to explore the structure of software systems and determine how such systems respond to specific input sequences designed to trigger bugs or demonstrate unexpected behavior.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
Abadi, M., Budiu, M., Erlingsson, U., Ligatti, J.: Control-flow integrity. In: Proceedings of the 12th ACM Conference on Computer and Communications Security, CCS 2005, pp. 340–353. ACM, New York (2005). https://doi.org/10.1145/1102120.1102165. http://doi.acm.org/10.1145/1102120.1102165
Andersen, S., Abella, V.: Data Execution Prevention (2004). https://technet.microsoft.com/en-us/library/bb457155.aspx
Bittau, A., Belay, A., Mashtizadeh, A., Mazières, D., Boneh, D.: Hacking blind. In: 2014 IEEE Symposium on Security and Privacy, pp. 227–242, May 2014. https://doi.org/10.1109/SP.2014.22
Bletsch, T., Jiang, X., Freeh, V.W., Liang, Z.: Jump-oriented programming: a new class of code-reuse attack. In: Proceedings of the 6th ACM Symposium on Information, Computer and Communications Security, ASIACCS 2011, pp. 30–40. ACM, New York (2011). https://doi.org/10.1145/1966913.1966919. http://doi.acm.org/10.1145/1966913.1966919
Checkoway, S., Davi, L., Dmitrienko, A., Sadeghi, A.R., Shacham, H., Winandy, M.: Return-oriented programming without returns. In: Proceedings of the 17th ACM Conference on Computer and Communications Security, CCS 2010, pp. 559–572. ACM, New York (2010). https://doi.org/10.1145/1866307.1866370. http://doi.acm.org/10.1145/1866307.1866370
Chen, L.H., Hsu, F.H., Hwang, Y., Su, M.C., Ku, W.S., Chang, C.H.: Armory: an automatic security testing tool for buffer overflow defect detection. Comput. Electr. Eng. 39(7), 2233–2242 (2013). https://doi.org/10.1016/j.compeleceng.2012.07.005
Cheng, Y., Zhou, Z., Miao, Y., Ding, X., Deng, H.R.: ROPecker: a generic and practical approach for defending against ROP attacks. In: Symposium on Network and Distributed System Security (NDSS) (2014)
Common Vulnerabilities and Exposures: CVE-2013-2028, February 2013. https://www.cvedetails.com/cve/CVE-2013-2028/
Cowan, C., et al.: StackGuard: automatic adaptive detection and prevention of buffer-overflow attacks. In: Proceedings of the 7th Conference on USENIX Security Symposium - Volume 7, SSYM 1998, p. 5. USENIX Association, Berkeley (1998). http://dl.acm.org/citation.cfm?id=1267549.1267554
Crane, S., Larsen, P., Brunthaler, S., Franz, M.: Booby trapping software. In: Proceedings of the 2013 Workshop on New Security Paradigms Workshop, NSPW 2013, pp. 95–106. ACM, New York (2013). https://doi.org/10.1145/2535813.2535824
CVE-2016-7054: Chacha20/poly1305 heap-buffer-overflow (2016). https://www.openssl.org/news/secadv/20161110.txt
CVE\_2016\_7054: Chacha20/poly1305 heap-buffer-overflow (2016). https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-7054
Designer, S.: Getting around non-executable stack (and fix) (1997). http://seclists.org/bugtraq/1997/Aug/63
Fratric, I.: ROPGuard: runtime prevention of return-oriented programming attacks (2012). http://www.ieee.hr/_download/repository/Ivan_Fratric.pdf
Hamad, M., Hammadeh, Z.A.H., Saidi, S., Prevelakis, V., Ernst, R.: Prediction of abnormal temporal behavior in real-time systems. In: The 33rd ACM/SIGAPP Symposium On Applied Computing (SAC 2018) (2018). https://dl.acm.org/citation.cfm?id=3167172
Hiroaki, E.: ProPolice: GCC extension for protecting applications from stack-smashing attacks, January 2003
Lu, S., Seo, M., Lysecky, R.: Timing-based anomaly detection in embedded systems. In: 20th Asia and South Pacific Design Automation Conference, ASP-DAC 2015, January 2015. https://doi.org/10.1109/ASPDAC.2015.7059110
Pappas, V., Polychronakis, M., Keromytis, A.D.: Transparent ROP exploit mitigation using indirect branch tracing. In: Proceedings of the 22Nd USENIX Conference on Security, SEC 2013, pp. 447–462. USENIX Association, Berkeley (2013). http://dl.acm.org/citation.cfm?id=2534766.2534805
PaX, T.: Address Space Layout Randomization (2001). https://pax.grsecurity.net/docs/aslr.txt
Pincus, J., Baker, B.: Beyond stack smashing: recent advances in exploiting buffer overruns. IEEE Secur. Privacy 2(4), 20–27 (2004). https://doi.org/10.1109/MSP.2004.36
Prevelakis, V.: Use of HTTP protocol by the TU-BS Sophos Repository. Technical report, TU Braunschweig (2017)
Roemer, R., Buchanan, E., Shacham, H., Savage, S.: Return-oriented programming: systems, languages, and applications. ACM Trans. Inf. Syst. Secur. 15(1), 2:1–2:34 (2012). https://doi.org/10.1145/2133375.2133377. http://doi.acm.org/10.1145/2133375.2133377
Shacham, H.: The geometry of innocent flesh on the bone: return-into-libc without function calls (on the x86). In: Proceedings of the 14th ACM Conference on Computer and Communications Security, CCS 2007, pp. 552–561. ACM, New York (2007). https://doi.org/10.1145/1315245.1315313. http://doi.acm.org/10.1145/1315245.1315313
Shacham, H., Page, M., Pfaff, B., Goh, E.J., Modadugu, N., Boneh, D.: On the effectiveness of address-space randomization. In: Proceedings of the 11th ACM Conference on Computer and Communications Security, CCS 2004, pp. 298–307. ACM, New York (2004). https://doi.org/10.1145/1030083.1030124. http://doi.acm.org/10.1145/1030083.1030124
Snow, K.Z., Monrose, F., Davi, L., Dmitrienko, A., Liebchen, C., Sadeghi, A.R.: Just-in-time code reuse: on the effectiveness of fine-grained address space layout randomization. In: Proceedings of the 2013 IEEE Symposium on Security and Privacy, SP 2013, pp. 574–588. IEEE Computer Society, Washington, DC (2013). https://doi.org/10.1109/SP.2013.45. http://dx.doi.org/10.1109/SP.2013.45
Tian, D., Xiong, X., Hu, C., Liu, P.: Defeating buffer overflow attacks viavirtualization. Comput. Electr. Eng. 40(6), 1940–1950 (2014). http://dx.doi.org/10.1016/j.compeleceng.2013.11.032. http://www.sciencedirect.com/science/article/pii/S0045790613003145
Tsantekidis, M., Prevelakis, V.: Library-level policy enforcement. In: SECURWARE 2017, The Eleventh International Conference on Emerging Security Information, Systems and Technologies. Rome, Italy (2017). http://www.thinkmind.org/index.php?view=article&articleid=securware_2017_2_20_30034
Tsantekidis, M., Prevelakis, V.: Sophos bogus update report. Technical report, TU Braunschweig (2017)
Tsantekidis, M., Prevelakis, V.: Efficient Monitoring of Library Call Invocation. In: Sixth International Conference on Internet of Things: Systems, Management and Security (IOTSMS). pp. 387–392. Granada, Spain (2019). DOI: 10.1109/IOTSMS48152.2019.8939203
Volckaert, S., Coppens, B., Sutter, B.D.: Cloning your gadgets: complete rop attack immunity with multi-variant execution. IEEE Trans. Dependable Secure Comput. 13(4), 437–450 (2016). https://doi.org/10.1109/TDSC.2015.2411254
Wagle, P., Cowan, C.: Stackguard: simple stack smash protection for GCC. In: Proceedings of the GCC Developers Summit, pp. 243–255 (2003)
i386 WX, O.: (2003). http://marc.info/?l=openbsd-misc&m=105056000801065
Zeng, Q., Zhao, M., Liu, P.: HeapTherapy: an efficient end-to-end solution against heap buffer overflows. In: 2015 45th Annual IEEE/IFIP International Conference on Dependable Systems and Networks, pp. 485–496, June 2015. https://doi.org/10.1109/DSN.2015.54
Acknowledgments
This work is supported by the European Commission through the following H2020 projects: THREAT-ARREST under Grant Agreement No. 786890 and CONCORDIA under Grant Agreement No. 830927.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2020 Springer Nature Switzerland AG
About this paper
Cite this paper
Tsantekidis, M., Prevelakis, V. (2020). Software System Exploration Using Library Call Analysis. In: Hatzivasilis, G., Ioannidis, S. (eds) Model-driven Simulation and Training Environments for Cybersecurity. MSTEC 2020. Lecture Notes in Computer Science(), vol 12512. Springer, Cham. https://doi.org/10.1007/978-3-030-62433-0_8
Download citation
DOI: https://doi.org/10.1007/978-3-030-62433-0_8
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-62432-3
Online ISBN: 978-3-030-62433-0
eBook Packages: Computer ScienceComputer Science (R0)