My Esss Notes Unit 1
My Esss Notes Unit 1
Managers
by Julia H. Allen; Sean Barnum; Robert J. Ellison; Gary
McGraw; Nancy R. Mead
Publisher: Addison Wesley Professional
Pub Date: May 01, 2008
Print ISBN-10: 0-321-50917-X
Print ISBN-13: 978-0-321-50917-8
eText ISBN-10: 0-321-55968-1
eText ISBN-13: 978-0-321-55968-5
Pages: 368
Table of Contents | Index
Copyright
Foreword
Preface
About the Authors
Chapter 1. Why Is Security a Software Issue?
Section 1.1. Introduction
Section 1.2. The Problem
Section 1.3. Software Assurance and Software Security
Section 1.4. Threats to Software Security
Section 1.5. Sources of Software Insecurity
Section 1.6. The Benefits of Detecting Software Security Defects
Early
Section 1.7. Managing Secure Software Development
Section 1.8. Summary
Chapter 2. What Makes Software Secure?
Section 2.1. Introduction
Section 2.2. Defining Properties of Secure Software
Section 2.3. How to Influence the Security Properties of Software
Chapter 1. Why Is Security a Software Issue?
[*]
[*]
Selected content in this chapter is summarized and excerpted from Security in the
Software Lifecycle: Making Software Development Processes—and Software
Produced by Them—More Secure [Goertzel 2006]. An earlier version of this material
appeared in [Allen 2007].
Introduction
The Problem
Software Assurance and Software Security
Threats to Software Security
Sources of Software Insecurity
The Benefits of Detecting Software Security Defects Early
Managing Secure Software Development
Summary
1.1. Introduction
Software is everywhere. It runs your car. It controls your cell phone.
It's how you access your bank's financial services; how you receive
electricity, water, and natural gas; and how you fly from coast to
coast [McGraw 2006]. Whether we recognize it or not, we all rely on
complex, interconnected, software-intensive information systems
that use the Internet as their means for communicating and
transporting information.
Building, deploying, operating, and using software that has not been
developed with security in mind can be high risk—like walking a high
wire without a net (Figure 1–1). The degree of risk can be compared
to the distance you can fall and the potential impact (no pun
intended).
Figure 1–1. Developing software without security in mind is like
walking a high wire without a net
[*]
Selected content in this chapter is summarized and excerpted from Security in the
Software Lifecycle: Making Software Development Processes—and Software
Produced by Them—More Secure [Goertzel 2006]. An earlier version of this material
appeared in [Allen 2007].
Introduction
The Problem
Software Assurance and Software Security
Threats to Software Security
Sources of Software Insecurity
The Benefits of Detecting Software Security Defects Early
Managing Secure Software Development
Summary
1.1. Introduction
Software is everywhere. It runs your car. It controls your cell phone.
It's how you access your bank's financial services; how you receive
electricity, water, and natural gas; and how you fly from coast to
coast [McGraw 2006]. Whether we recognize it or not, we all rely on
complex, interconnected, software-intensive information systems
that use the Internet as their means for communicating and
transporting information.
Building, deploying, operating, and using software that has not been
developed with security in mind can be high risk—like walking a high
wire without a net (Figure 1–1). The degree of risk can be compared
to the distance you can fall and the potential impact (no pun
intended).
Figure 1–1. Developing software without security in mind is like
walking a high wire without a net
[3]
Software safety means the persistence of dependability in the face of accidents or
mishaps—that is, unplanned events that result in death, injury, illness, damage to or
loss of property, or environmental harm. Sources for this definition can be found in
[Goertzel 2006], appendix A.1.
However, except for a few studies [Berinato 2002; Soo Hoo 2001],
we have seen little evidence presented to support the idea that
investment during software development in software security will
result in commensurate benefits across the entire life cycle.
Results of the Hoover project [Jaquith 2002] provide some case
study data that supports the ROI argument for investment in
software security early in software development. In his article "The
Security of Applications: Not All Are Created Equal," Jaquith says
that "the best-designed e-business applications have one-quarter as
many security defects as the worst. By making the right investments
in application security, companies can out-perform their peers—and
reduce risk by 80 percent."
In their article "Impact of Software Vulnerability Announcements on
the Market Value of Software Vendors: An Empirical Investigation,"
the authors state that "On average, a vendor loses around 0.6
percent value in stock price when a vulnerability is reported. This is
equivalent to a loss in market capitalization values of $0.86 billion
per vulnerability announcement." The purpose of the study described
in this article is "to measure vendors' incentive to develop secure
software" [Telang 2004].
We believe that in the future Microsoft may well publish data
reflecting the results of using its Security Development Lifecycle
[Howard 2006, 2007]. We would also refer readers to the business
context discussion in chapter 2 and the business climate discussion
in chapter 10 of McGraw's recent book [McGraw 2006] for ideas.
Chapter 2. What Makes Software Secure?
Introduction
Defining Properties of Secure Software
How to Influence the Security Properties of Software
How to Assert and Specify Desired Security Properties
Summary
2.1. Introduction
To answer the question, "What makes software secure?" it is
important to understand the meaning of software security in the
broader context of software assurance.
As described in Chapter 1, software assurance is the domain of
working toward software that exhibits the following qualities:
2.1. Introduction
To answer the question, "What makes software secure?" it is
important to understand the meaning of software security in the
broader context of software assurance.
As described in Chapter 1, software assurance is the domain of
working toward software that exhibits the following qualities:
Dependability
Correctness
Predictability
Reliability
Safety