106 PART TWO PROCESS INSTITUTIONALIZATION AND IMPROVEMENT
Resilient software and systems do not become survivable and resistant to
threat (that is, assured) without an organizational commitment to address
resilience as part of assurance throughout development, acquisition, and opera-
tions life-cycle phases. These assets must be specifically designed, developed, and
acquired with consideration of the types of threats they will face, the operating
conditions and changing risk environment in which they will operate, and the
priority and sustainment needs of the services they support. Typical software and
system development and acquisition life cycles understandably focus on identify-
ing and satisfying functional requirements; that is, most of the effort goes into
defining what the software or system must do to fulfill its use case, purpose,
objectives, and, ultimately, its mission. However, quality attributes such as secu-
rity, sustainability, availability, performance, and reliability can in the long run be
equally important to the usability and longevity of software and system assets
and require considerable resources to address in the operations phase if they are
not considered early in the development and acquisition life cycles.
Unfortunately, requirements for quality attributes such as assurance and
resilience can be harder to define, design, and implement, and in many cases they
require significant business impact and cost analysis up front to ensure that they
are worth investing in. This leads to a tendency to ignore these requirements
early in the development and acquisition life cycles and to bolt on solutions to
address them in later life-cycle phases, when they are more costly, less effective,
and typically harder to manage and sustain in an operational mode. The failure to
consider quality attributes is a primary reason why software and systems in oper-
ation are subject to high levels of operational risk resulting from failed technol-
ogy and processes. In essence, ignoring quality attributes creates additional
security, continuity, and other related operational risks that must be managed in
the operations phase of the life cycle, typically at higher cost, lower efficacy, and
potentially increased consequences to the organization. In some cases, these
problems may be so significant as to shorten the expected life of the software and
systems, diminish the organization’s confidence in their ability to perform, and
result in cumulatively lower than expected return on investment.
As an element of software assurance, developing and acquiring resilient soft-
ware and systems requires a dedicated process that encompasses the asset’s life
cycle. As described in CERT-RMM’s Resilient Technical Solution Engineering
(RTSE) process area, the process is as follows:
• Establish a plan for addressing resilience as part of the organization’s (or sup-
plier’s) regular development life cycle and integrate the plan into the organiza-
tion’s corresponding development process. Plan development and execution
include identifying and mitigating risks to the success of the project.
• Identify practice-based guidelines, such as threat analysis and modeling, that
apply to all phases, as well as those that apply to a specific life-cycle phase.