|
Computer security |
|
(Click to go to security links and search forms). Security of computer applications is often taken to be "a technical issue" (i.e., something to be done by a separate group of specialists after the application functionality is delivered), or "a matter of policy," (i.e., dependent on management policy and user behavior) or simply "not my job." At Outback Software we believe that security is a fundamental aspect of software architecture and design. Like reliability, usability, and other key aspects of quality, it must be managed from the start of the development process. A development process that takes security into account involves these steps: Security policy and requirements: What are the security requirements mandated by organizational policy? Which requirements are expected to be handled by some mechanism (such as a firewall) external to the application under development, and which must be factored into application design? How much money and time is it economic to spend on security? Which risks are acceptable, and which are not? This step should be taken at the stage of systems analysis and feasibility study, and reviewed throughout the life of the project. Note that an overarching architecture for where security measures are implemented is an organization-wide responsibility, and is a prerequisite for the security policy for any particular application. Architecture and design: To be efficient and effective, facilities for authentication, protection of sensitive data, etc., must be designed in from the start. Every major building block in the system should have a defined security goal, or a statement that no security is required. Doing security "later" is always more expensive - in the worst case, resulting in serious loss that triggers a security retrofit. Programming: As Bruce Schneier says, "Writing a secure computer program is another matter entirely. Security involves making sure things work, not just in the presence of random faults, but in the face of an intelligent and malicious adversary trying to ensure that things fail in the worst possible way . . . it truly is programming Satan's computer" [16]. Programming for security requires specialized knowledge [22], and any module with a defined security goal should be peer-reviewed for compliance. From buffer overflows to weak cryptosystems, pitfalls abound, and may eventually be exploited if allowed to exist. What are the threats and exposures? It is widely said that every enterprise that survives into the 21st century will be involved in e-commerce. Taking commerce in the broad sense of "dealings between groups or individuals in society," this is undoubtedly true - not just for commercial enterprises, but for nonprofits and governmental organizations as well. Access via the Internet is a requirement for any modern organization to deal with suppliers, partners, and customers. Thus every organization faces a similar landscape of electronic threats. Since September 11th, 2001, we must consider computer security not just a matter of business security, but of national and global security. Even a computer system with no assets of value in themselves, if it is compromised, may be used as a platform for attacks on other systems. Attacks may come from anywhere in the world, the work of individuals, organizations, or states. Security Issues in E-CommerceAs corporations move into the 21st century, they face many significant challenges: How to build on traditional differentiators in an increasingly wired world? How to keep their brands in sight of consumers bombarded with more and more electronic media advertising? How to leverage their existing IT infrastructure? Similar challenges face nonprofits and governmental organizations, as they try to become both more cost-effective and more responsive to their clients. A lurking danger in this future is the threat to information security: How can data be protected from accidental or intentional misuse by people inside or outside the organization? Underlying the danger is a fundamental tension between data use, and data misuse:
Faced with this tension, there are some typical reactions:
Let’s step back and look at "bottom line" security issues. On the positive side of the ledger, corporate profits (or analogous metrics for nonprofits) are critically dependent on establishing trust relationships with customers, suppliers, and regulatory bodies. Looking at it from the converse perspective, organizations must avoid losses: loss of trust, theft of customer data or intellectual property, loss of the ability to serve customers, legal liability due to carelessness. The possibility of loss is a risk, and risk avoidance involves costs. It is not cost-effective, or even possible, to completely eliminate risk. Each organization must decide what risks it is prepared to accept, and the appropriate level of safeguards. Generally there are tradeoffs not only between risk and cost, but also between risk and ease-of-use for customers. Effective security risk management can be a competitive advantage, and it starts with an enterprise-wide analysis of threats, vulnerabilities, and possible countermeasures. Security specialists model the bottom-line issues by saying that corporations need to protect these aspects of their data and transactions (see security models below):
In order to insure that these protection goals are met, certain services must be provided by a secure system:
These services may be provided at many different levels, and are typically provided in multiple places in an enterprise-wide network:
Note that authentication and authorization may occur with respect to physical and logical devices (as in the case of firewalls) or programs (as in the case of virus scanners) as well as users. It is important not to make unwarranted assumptions about which user(s) are associated with these other entities. Provision of multiple, redundant security services in the enterprise network may be good, to provide defense in depth against threats. On the other hand, if individual system and application managers have installed an uncoordinated collection of security tools, the result may be inconsistency, gaps in the security perimiter, inability to do assurance audits, and excessive cost. To provide coherent, cost-effective security that is consistent with the organization’s security and risk management policies requires organization-wide analysis and planning. The result should be not just a collection of tools and technology, but an enterprise security architecture. This architecture ahould account for people, including users, developers, and managers, as well as technological artifacts. An architected solution has many advantages:
This global view of enterprise information security has two dimensions: Spatial, across all the systems in the enterprise’s network, and transactional, an end-to-end view as transactions flow through the network. TechnologyThe goals described above, of consistency, transparency, auditability, and cost-effective protection are facilitated by certain technical characteristics:
Two strong contenders in the arena of software technologies are the Java security API [10] and the emerging XML security standards [4], [23-25], [28]. The Java API provides services for individual applications such as authentication and encryption. Having standard, tested, reusable implementations for security components will enhance code quality and reduce vulnerabilities. Java also has many standard features, such as automatic array bounds checking, that make it inherently less vulnerable than C or C++ to certain kinds of attacks, such as buffer overflow. XML is the glue that allows security information such as authorization profiles and digital signatures to be shared among different applications. XML security protocols will come into their own with the emergence of web services, a distributed, componentized model for dynamically assembling business-to-business and business-to-consumer services. When most people think of "security technology," what comes to mind is firewalls, router software, intrusion detection systems, etc. These off-the-shelf components are critical pieces of security architecture, but the importance of good coding practices within the development organization should not be overlooked. With some exceptions, such as certain viruses and various "social engineering" attacks, all security vulnerabilities are ultimately based on defective code. Much of this is in vendor-supplied code that is not under the control of user organizations; but remember that the last line of defense in front of your data is your application code. Principles and practices for writing secure code are explained in Building Secure Software by Viega and McGraw [22]. In some areas, outsourcing is an alternative to having in-house technology expertise. It may make sense for tasks that require a significant skill depth, but are not done often enough to warrant having all the skills in-house. Configuration and management of firewalls and routers is one area where considerable outsourcing is done; intrusion detection is another [26]. Intrusion detection, in particular, seems like a good candidate: It can be done offsite from the customer, and doing it well demands a skilled corps of speciaists on duty 24/7, something small companies cannot provide for themselves [30]. Counterpane Internet Security, a good example, is well-established as an outsource supplier of security expertise. Mainstream "protection" companies such as Brink's are also entering the market as providers of computer security services. Security ModelsA number of models for security have been proposed. Some of the more important ones, with a comparison of their key concepts, are shown in the table below.
The "Common Criteria" were generated by an international effort to merge various security standards, such as the "Trusted Computer System Evaluation Criteria" developed by the U.S. Department of Defense in the 1980s. It was subsequently standardized by ISO (the International Standards Organization). The OSI Security Services model was part of the OSI (Open Systems Interconnection) effort, also done in the 1980s. The NIST (National Institute of Standards and Technology) has set U.S. standards for encryption for several decades, and is now (particularly since 9/11/2001) heavily involved in computer security through their Computer Security Resource Center.
Another model of security, from the Hurwitz Group [11], is represented in this image, showing "the four disciplines" of security management:
Cutting across these disciplines are three activities: authentication, access control, and audit. These models obviously have a lot in common. One way of reconciling their differences is to distinguish security goals from security mechanisms. Goals are the "what", mechanisms are the "how" of security. The three most commonly held goals are:
An additional goal, or perhaps meta-goal, is accountability: The ability to determine who has accessed or modified data. A closely associated goal is nonrepudiation: Insuring that a user who has accessed or modified information cannot deny doing so. (Nonrepudiation might also be considered a subgoal of accountability.) Assurance is another meta-goal, the result of a process that proves that other security goals have been met by a given system. Mecahnisms for achieving these goals include:
Each of these mechanisms can be mapped to specific technology and vendors. Yet another way of looking at security from a high level is to evaluate not the mechanisms or technology of security, but the process by which security is assessed and maintained. The Vulnerability Management Maturity Model is an example. Its "levels of growth" are knowledge, deployment, and accountability. This model is conceptually similar to the well-known Software Capability Maturity Model for software development organizations, from the Software Engineering Institute at Carnegie-Mellon University. The stages of the Software CMM itself could, with appropriate changes, be applied to the development of secure applications. For more security information, links, and forms for searching security web sites, go to our security links and search forms page. References
|