Software Engineering For Security
Software Engineering For Security
Software
Doshi Shreyas
Information and Computer Science Dept.
University of California, Irvine
CA 92697, USA.
+1 949 824 8438
[email protected]
ABSTRACT
Much of the work so far in the area of security of software
Since the advent of distributed systems, security of systems has come from the Cryptography community.
software systems has been an issue of immense concern. While other areas of Computer Science like Computer
Traditionally, security is incorporated in a software Networks and Theory have also contributed to the
system after all the functional requirements have been solution to the problem of security of software systems,
addressed. This paper argues for the need for security we found that the area of Software Engineering has made
concerns to be an integral part of the entire software very little contribution. This is quite ironic considering
development life cycle. Different research areas that lie at the fact that the problem is that of how ‘software’ systems
the confluence of Software Engineering and Security are can be made more secure. These software systems are an
surveyed. Finally, the paper focuses on the use of outgrowth of some Software Engineering process
Software Architecture to solve certain problems that are presumably with Software Engineering principles applied
faced in the engineering of secure systems. in their development. It is fair to deduce that we might be
able to make systems more secure by incorporating
Keywords security considerations explicitly in the Software
Engineering process and by applying certain Software
Software Engineering, Security, Software Architecture, Engineering principles to solve problems faced in the
Secure Software Architecture. engineering of secure software. However, several
impediments lie along this path.
1. INTRODUCTION
Security is a non-functional requirement [CN95]. Since
As society becomes more and more reliant on software developers grapple with the problem of getting the
systems for its smooth functioning, software security is functionality right without overrunning schedules or
emerging as an important concern to many in the field of budgets, security is not the utmost concern for system
Computer Science. Since security attacks can cause developers- even in systems where security threats might
anything from losses worth millions of dollars in business be easily perceptible. Hence, software system security is
to intrusion into defense systems, the repercussions of typically an afterthought [Gas88], i.e. security may be
such security attacks can be quite grave. However, it is considered seriously if the functional requirements are
not only large organizations and governments that are met and the project is within the schedule and budgets. As
susceptible to security attacks. Today, security has also observed in [Bro87], this is seldom, if ever, the case.
become a concern for the average citizen. Citizens are
becoming increasingly aware about the security threats In this paper, we shall look at the different research areas
over computer networks, encouraging them to take that lie at the confluence of the fields of Software
adequate steps to protect their credit card numbers and Engineering and Security. More specifically, we shall
personal information over the Internet. Though such look in detail how research in the area of Software
preventive steps by ordinary citizens and organizations Architecture [PW92] can help solve the problems that lie
are necessary, they do not offer long-term solutions to the in the path of development of secure software systems.
problem of security of software systems. It is known fact Before we delve further into the topic, it is worthwhile to
that the wily hacker [CB94] can find ways to get around examine what security really means and the different
these steps. What then is the solution? dimensions of security.
Security testing- For any system where security Protection of software- Piracy of software is a source
concerns are sufficiently large, it is necessary to test of tremendous losses to the software industry. Hence,
the system to determine explicitly whether it satisfies efforts to effectively counter the software privacy
the security requirements. We believe that testing for problem are necessary. Both software (e.g.- [HP87])
functionality is significantly different from testing for and hardware-based (e.g.-[MM84]) solutions to the
problem have been proposed. Most of the software-
based approaches proposed this far use cryptography.
So far, however, not many solutions to the problem
have been effective because of the adversarial
economics [DS00] involved.
A user masquerading as another user User authentication and mutual authentication between the client and the
object implementation.
Eavesdropping on a communication channel and tampering with Cryptographic measures like encryption and hashing
communication between objects
Bypass of security controls Delegation mechanisms controlled by clients and object implementations
[Kem89] R. A. Kemmerer. Analyzing encryption [RSC97] Rational Software Corporation. The Unified
protocols using formal verification techniques. IEEE Modeling Language. Documentation Set Version 1.0,
Journal on Selected Areas in Communications, 7. 1989. Santa Clara, CA. January 1997.
[KIL+97] G. Kiczales, J. Irwin, J. Lamping, J. Loingtier, [Sch96] B. Schneier. Applied Cryptography, Protocols,
C. V. Lopes, C. Maeda, A. Mendhekar. Aspect-Oriented Algorithms, and Source Code in C. Second Edition, John
Programming. A Position Paper from Xerox PARC. 1997. Willey & Sons. 1996.
[Lin97] J. Linn. Generic Security Service Application [TOH99] Y. Tahara, A. Ohsuga, S. Honiden. Agent
Programming Interface. Internet RFC 2078. January System Development Method Based on Agent Patterns
1997. Proceedings of The Fourth International Symposium on
Autonomous Decentralized Systems. 1999.
[LSS+80] R. Locasso, J. Scheid, D. V. Schorre, P. R.
Eggert. The Ina Jo Reference Manual. Technical Report [VBC01] J. Viega, J.T. Bloch, P. Chandra. Applying
TM-(L)-6021/001/000, System Development Corporation, Aspect-Oriented Programming to Security. Cutter IT
Santa Monica, California. 1980. Journal. February, 2001.
[LV95] D.C. Luckham, J. Vera. An Event Based [VKP01] J. Viega, T. Knono, B. Potter. Trust (and
Architecture Definition Language. IEEE Transactions on MisTrust) in Secure Applications. Communications of the
Software Engineering Vol. 21, No 9, September 1995. ACM. February 2001.