Abstract
Today, software security is an issue with increasing importance. Developers, software designers, end users, and enterprises have their own needs w.r.t. software security. Therefore, when designing software, security should be built in from the beginning, for example, by using security patterns. Utilizing security patterns already improves the security of software in early software development stages. In this paper, we show how to detect security patterns in code with the help of a reverse engineering tool-suite Bauhaus. Specifically, we describe an approach to detect the Single Access Point security pattern in two case studies using the hierarchical reflexion method implemented in Bauhaus.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Austrem, P.G.: Runtime mix’n and match design pattern. In: Proc. of the 15th Pattern Languages of Programs, pp. 1–8. ACM, New York (2008)
Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P., Stal, M.: Pattern-Oriented Software Architecture: A System of Patterns. Wiley, Chichester (1996)
Chess, B., McGraw, G.: Static analysis for security. IEEE Security and Privacy 2, 76–79 (2004)
Ernst, A.M.: Enterprise architecture management patterns. In: Proc. of the 15th Pattern Languages of Programs, pp. 1–20. ACM, New York (2008)
Fortify Software. Fortify source code analyser (2009), http://www.fortify.com/products
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Object-Oriented Software. Addison Wesley, Reading (1995)
Google Inc. Android development (2010), http://developer.android.com/index.html
Hafiz, M., Adamczyk, P., Johnson, R.E.: Organizing security patterns. IEEE Software 24, 52–60 (2007)
Hafiz, M., Johnson, R.: Security patterns and their classification schemes. Technical report, Technical Report for Microsoft’s Patterns and Practices Group (September 2006)
Halkidis, S.T., Chatzigeorgiou, A., Stephanides, G.: A qualitative analysis of software security patterns. Computers & Security 25(5), 379–392 (2006)
Hammer, C.: Experiences with pdg-based ifc. In: Massacci, F., Wallach, D., Zannone, N. (eds.) ESSoS 2010. LNCS, vol. 5965, pp. 44–60. Springer, Heidelberg (2010)
Heyman, T., Yskout, K., Scandariato, R., Joosen, W.: An analysis of the security patterns landscape. In: Proc. of 3rd International Workshop on Software Engineering for Secure Systems. IEEE Computer Society, Los Alamitos (2007)
Jive Software. Spark - project page (2010), http://www.igniterealtime.org/projects/spark/index.jsp
Jürjens, J., Shabalin, P.: Automated verification of uMLsec models for security requirements. In: Baar, T., Strohmeier, A., Moreira, A., Mellor, S.J. (eds.) UML 2004. LNCS, vol. 3273, pp. 365–379. Springer, Heidelberg (2004)
Koschke, R.: Incremental reflexion analysis. In: European Conference on Software Maintenance and Reengineering. IEEE Computer Society Press, Los Alamitos (2010)
Koschke, R., Simon, D.: Hierarchical reflexion models. In: Proc. of 10th Working Conference on Reverse Engineering, pp. 36–45 (November 2003)
Mermerkaya, A.O.: Simple android instant messaging application - project page (2010), http://code.google.com/p/simple-android-instant-messaging-application/
Murphy, G.C., Notkin, D., Sullivan, K.J.: Software reflexion models: Bridging the gap between design and implementation. IEEE Transactions on Software Engineering 27(4), 364–380 (2001)
Niere, J., Schäfer, W., Wadsack, J.P., Wendehals, L., Welsh, J.: Towards pattern-based design recovery. In: Proc. of the 24th International Conference on Software Engineering, pp. 338–348. ACM, New York (2002)
Ounce Labs Inc. (2010), http://www.ouncelabs.com/
Raza, A., Vogel, G., Plödereder, E.: Bauhaus – A tool suite for program analysis and reverse engineering. In: Pinho, L.M., González Harbour, M. (eds.) Ada-Europe 2006. LNCS, vol. 4006, pp. 71–82. Springer, Heidelberg (2006)
Ryoo, J., Laplante, P., Kazman, R.: In search of architectural patterns for software security. Computer 42, 98–100 (2009)
Schumacher, M.: Merging security patterns. In: Proc. of 6th European Conference on Pattern Languages of Programs (2001), http://www.voelter.de/data/workshops/europlop2001/merging_security_patterns.pdf
Schumacher, M., Fernandez, E., Hybertson, D., Buschmann, F.: Security Patterns: Integrating Security and Systems Engineering. John Wiley & Sons, Chichester (2005)
Sohr, K., Berger, B.: Towards architecture-centric security analysis of software. In: Proc. of International Symposium on Engineering Secure Software and Systems. Springer, Heidelberg (2010)
The H Security. Number of critical, but unpatched, vulnerabilities is rising (2010), http://www.h-online.com/security/news/item/Number-of-critical-but-unpatched-vulnerabilities-is-rising-1067495.html
Van Hilst, M., Fernandez, E.B.: Reverse engineering to detect security patterns in code. In: Proc. of 1st International Workshop on Software Patterns and Quality. Information Processing Society of Japan (December 2007)
Washizaki, H., Fernandez, E.B., Maruyama, K., Kubo, A., Yoshioka, N.: Improving the classification of security patterns. In: Workshop on International Conference on Database and Expert Systems Applications, pp. 165–170 (2009)
Yoder, J., Barcalow, J.: Architectural patterns for enabling application security. In: Proc. of 4th Pattern Languages of Programs, Monticello/IL (1997)
Yoshioka, N., Washizaki, H., Maruyma, K.: A survey on security patterns. Progress in Informatics 5, 35–47 (2008)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2011 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Bunke, M., Sohr, K. (2011). An Architecture-Centric Approach to Detecting Security Patterns in Software. In: Erlingsson, Ú., Wieringa, R., Zannone, N. (eds) Engineering Secure Software and Systems. ESSoS 2011. Lecture Notes in Computer Science, vol 6542. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-19125-1_12
Download citation
DOI: https://doi.org/10.1007/978-3-642-19125-1_12
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-19124-4
Online ISBN: 978-3-642-19125-1
eBook Packages: Computer ScienceComputer Science (R0)