background image
· 20 ·
Protections can be applied at each of these points
and may conflict if not well orchestrated. Because of
interactions, effective assurance requires that all levels
and roles consistently recognise and respond to risk.
TrusTed
dependenCies
because of the wide use of supply chains for software,
assurance of an integrated product depends on
other people's assurance decisions and the level of
trust placed on these dependencies. The integrated
software inherits all of the assurance limitations of
each interacting component. In addition, unless specific
restrictions and controls are in place, every operational
component including infrastructure, security software
and other applications can be affected by the assurance
of every other component. There is a risk each time
an organisation must depend on others' assurance
decisions. organisations should decide how much
trust they place in dependencies based on a realistic
assessment of the threats, impacts and opportunities
represented by an interaction. dependencies
are not static, and trust relationships should be
regularly reviewed to identify changes that warrant
reconsideration. The following examples describe
assurance losses resulting from dependencies:
· defects in standardised pieces of infrastructure
(such as operating systems, development platforms,
firewalls, routers, etc.) can serve as widely available
threat entry points for applications.
· Using many standardised software tools to build
technology establishes a dependency for the
assurance of the resulting software product.
vulnerabilities can be introduced into software
products by the tool builders.
aTTaC ker
A broad community of attackers with growing
technology capabilities are able to compromise
the confidentiality, integrity and availability of an
organisation's technology assets. There are no
perfect protections against attacks, and the attacker
profile is constantly changing. The attacker will use
technology, processes, standards and practices to craft
a compromise (known as a socio-technical response).
Attacks are crafted to take advantage of
the ways we normally use technology or
designed to contrive exceptional
situations where defences are circumvented.
CoordinaTion
and eduCaTion
assurance requires effective coordination among
all technology participants. Protection must be
applied broadly across the people, processes and
technology in an organisation because the attacker
will take advantage of all possible entry points.
authority and responsibility for assurance must
be clearly established at an appropriate level in
the organisation to ensure the
organisation effectively participates
in software assurance. This
assumes that all participants know
about assurance, and that is not
usually a reality. There is much to
be done to educate people on
software assurance.
Well planned
and dynamiC
assurance must represent a balance among
governance, construction and operation of software
and systems and is highly sensitive to changes in each
of these areas. an adaptive response is required for
assurance because the applications, interconnections,
operational usage and threats are always changing.
assurance is not a once-and-done activity. it must
continue beyond the initial operational implementation
through operational sustainment. assurance cannot be
added later; it must be built to the level of acceptable
assurance that organisations need. no one has
resources to redesign systems every time the threats
change, and assurance cannot be readily adjusted
upward after the fact.
measurable
a means to measure and audit overall assurance
must be built in. That which is not measured cannot
be managed. Each stakeholder or technology user
will address only the assurance for which they
are held accountable. assurance will not compete
successfully with other competing needs unless
results are monitored and measured. all elements of
the socio-technical environment, including practices,
processes and procedures, must be tied together to
evaluate operational assurance. organisations with
more successful assurance measures react and recover
faster, learn from their reactive responses and that
of others and are more vigilant in anticipating and
detecting attacks. Defects per lines of code, a common
development measure, may be useful for code quality
but are not sufficient evidence for overall assurance
because they provide no perspective on how that
code behaves in an operational context. both focused
and systemic measures are needed to ensure the
components are engineered with sound security and
the interaction among components establishes effective
assurance.
Understanding why software assurance is needed
increases the motivation to appropriately address the
necessary practices, standards and methods that must
be implemented to provide the desired assurance. The
principles help everyone involved in software assurance
understand its importance and value. Communicating
them across the software development community is
a critical next step.
aCknoWledGmenTs
Copyright 2013 Carnegie mellon University.
This material is based upon work funded and supported
by the department of defense under Contract no.
fa8721-05-C-0003 with Carnegie mellon University for the
operation of the software engineering institute, a federally
funded research and development center.
Any opinions, findings and conclusions or recommendations
expressed in this material are those of the author(s) and
do not necessarily reflect the views of the United States
department of defense.
no WarranTY. This CarneGie mellon
UniversiTY and sofTWare enGineerinG
insTiTUTe maTerial is fUrnished on an "as-is"
basis. CarneGie mellon UniversiTY makes no
WarranTies of anY kind, eiTher eXPressed
or imPlied, as To anY maTTer inClUdinG, bUT
noT limiTed To, WarranTY of fiTness for
PUrPose or merChanTabiliTY, eXClUsiviTY, or
resUlTs obTained from Use of The maTerial.
CarneGie mellon UniversiTY does noT make
anY WarranTY of anY kind WiTh resPeCT
To freedom from PaTenT, Trademark, or
CoPYriGhT infrinGemenT.
This material has been approved for public release and
unlimited distribution.
dm-0000828
referenCes
[1] J. H. Saltzer and M. D. Schroeder, "The Protection of
Information in Computer Systems," Communications of the ACM,
vol. 17, issue 7, 1974.
[2] Wikipedia, "Morris worm," Wikipedia. [Online]. Available:
http://en.wikipedia.org/wiki/Morris_worm. [Accessed June 2011].
[3] Wikipedia, "IBM System/370," Wikipedia. [Online]. Available:
http://en.wikipedia.org/wiki/System/370. [Accessed June 2011].
[4] Committee on National Security Systems, "Instruction No.
4009," National Information Assurance Glossary. Revised June
2009.