Dependability of Software of Unknown Pedigree: Case Studies On Unmanned Aircraft Systems
Dependability of Software of Unknown Pedigree: Case Studies On Unmanned Aircraft Systems
5E5-2
practices. An example of the information in the Table 1 for Task US.1.
framework associated with each task shown in
Table 1. SOUP Dependability Framework Example
ID Level Assessment Task Description Security Space Aviation Medical Nuclear Rail
Conduct an analysis to determine the
hazards and impacts associated with the
potential malfunction, failure, or exploitation
of the SOUP. Define the SOUP's intended
function(s) and document potential failure
(gracefully or suddenly) . Determine the
consequences and possible mitigations for
DOT/FRAlORD-
each potential malfunction, failure, threat, or NASA-STC-
RTCA DO-278A European 03/14
exploitation. The analysis should be 8719.13C
Conduct Hazard/Threat RTCA DO-326 IEC 62304; see Regulators; Final Report
US.1 Tier 1 QL conducted in a manner similar to SAE ARP BSIMM AM1.3 Appendix A, F
Analysis Sec 2.3.3 Section 7.1 see Section April 2003; see
4761, MIL-STD-882, or equivalent and NASA NPR
JSSSEH 1.0 2.2.3 Figure 3 page
should address risk assoicated with potential 7150.2A
21.
security and safety vulnerabilities (e.g., RTCA
DO-326, Airworthiness Security Process
Specification). An example best practice on
threat analysis can be found here:
<<http://resources.infosecinstitute.com/cyb
er-threat-analysis>> ; security vulnerabilities
may be considered to be causes of hazards.
Case Studies
For each of the three sUAS case studies, we
asked each sUAS manufacturer to select a function
critical to safety/security that is implemented by
software, with a preference for a function
implemented by SOUP developed outside of the
company. All of the functions selected were of such
criticality to require Tier 3 tasks, thereby exercising
all of the tasks in the framework. We conducted
interviews with the manufacturers about the
software of interest using the framework as a guide.
In some cases, example artifacts that would be
typical of what would be produced for safety or Figure 2. SOUP Framework Update Process
security substantiation were provided to MITRE
subject matter experts for review. The resulting Changes to the SOUP Dependability
dialogue produced many improvements to the
framework. The case study review process is Framework
illustrated in Figure 2. From these interactions with our partners
several important updates were made to the
framework. A summary of key changes are
described below.
Organizational Planning
We moved Task TE.9, "Simulate Software
Crisis task" from the Testing category to the
Organizational Planning category. The Simulate
Software Crisis task evaluates the SOUP
integrator's organizational response to a SOUP
malfunction or penetration. The rationale for this
change was that we concluded that this task was
more of a measure of the organizational forethought
5E5-3
and planning necessary in order to meet the a result of a major code improvement), we thought
required 24 hour response time. The task is increasing code churn should be investigated as to
applicable to all uses of SOUP within an determine root cause. We also came to believe that
organization, not just a single SOUP integration. SOUP which is accompanied by detailed release
notes and/or well commented should be viewed as
Use of SOUP better maintained and easier to implement.
Tasks US.5, “Review SOUP functional,
interface, and performance requirements” and US.6, Code Review
“Document Software Architecture” were combined The task description of CR.8, “Review and
into a single task and named “Review and trace integrator requirements satisfied by SOUP”
document SOUP functional, interface, and was modified to accommodate the user stories as a
performance requirements”. It was discovered source of requirements.
through the use cases that a review of the software
Additionally, we changed the title of Task
architecture enabled a review of the requirements.
CR.11, “Document System Visualizations” to
Task US.9, “Neutralize Unwanted “Perform Threat and Vulnerability Modeling” to
Functionality” was expanded to foresee instances reflect the purpose of the system visualizations. The
where removal of unused or dead code would not intent of this task is to identify high risk areas
be desirable, and that unwanted functionality could surrounding the inclusion of SOUP, and system
be addressed through other means. Discussions with visualizations are one effective way of doing so.
industry proponents led us to the conclusion that
We also added a task to “Ensure Correct Data
there are sophisticated ways of ensuring that
and Control Flow”. For data flow, an analysis using
unneeded code could not be executed even if it
test results is performed to show that all software
remains in the codebase.
components use the data as specified in the
We changed Task US.11, “Document and architecture. For control flow, an analysis using test
Review Service History” from a quantitative task to results is performed to show that all software
a qualitative one. Discussions with our industry components are executed in the order specified by
partners convinced us that the proposed criterion of the architecture. The purpose of these analyses is to
“a minimum of six months of operational service show through testing that the software design’s
experience with no failures” was unrealistic given architecture is completely and correctly
both the rapid configuration changes that the sUAS implemented.
industry makes to its software and the “no failures”
requirement which did not specify the type or Quality Assurance
severity of the failure. Instead, we concluded that The name of this category was changed from
this task should be judged qualitatively and take “External Accreditation” and 3 of the 5 original
into account problem reporting and the experience tasks were removed. Originally it was presumed
and reputation of the coders of the SOUP. that SOUP that had been evaluated against an
external standard would be more dependable.
However, we came to the conclusion that including
Code Metrics a task requiring software evaluation against an
external standard ultimately required the
We strengthened this section by adding two
manufacturer to justify why specific tasks were not
Tier 2 tasks - “Review code churn over time” and
completed, undermining the purpose of determining
“Review SOUP documentation”. In discussing the
SOUP dependability from this framework. As a
Code Metrics category with our partners, we
result, the focus of this category shifted to
concluded that decreasing code churn over time
understanding if the SOUP vendor had a quality
may be an indicator of good organizational
assurance process in place (Tier 1 task) and then
practices to standardize coding practices and
evaluating that quality assurance process (Tier 2
collaboration. Although increasing code churn is
task).
not necessarily a negative indicator (e.g., it could be
5E5-4
Testing reflects our improved understanding of the
A Tier 2 task was added to “Perform complexity of some of these tasks based on our
robustness testing.” This task uses dynamic interaction with industry.
analysis, fuzz testing, out-of-range inputs and [CELLRA
timing, abnormal system initialization conditions,
and other off nominal inputs to understand the
NGE]
40
robustness of the system employing SOUP. These
tests are designed to run on the code as it is being
executed to find unexpected interactions between
system components, safety and security issues, and [CELLRA
unexpected faults. 30 NGE]
Developer’s Appendix
Finally, interactions with our partners led to
Tasks
the realization that two separate framework 20
products were needed to address the two-part [CELLRA
definition of SOUP. The original focus of the NGE]
research had been a framework to incorporate
externally developed SOUP into an aviation system. 10
It became clear in dialogue with industry that a
separate product was needed to address software
that was being internally developed with practices
outside of those typical of traditional aviation 0
software assurance. Therefore, a Developer’s
Tier 1 Tier 2 Tier 3
Appendix to the framework was initiated which
addressed software being developed. This
Developer’s Appendix used the SOUP
Organizational Planning
Dependability Framework as its foundation and task
descriptions were modified to emphasize Use of SOUP
development over integration. We envision that
there will cases where a sUAS manufacturer may Code Metrics
utilize both the integration framework and the
Developer’s Appendix. Code Review
Quality Assurance
Resulting SOUP Dependability
Testing
Framework and Developer’s
Appendix
Figure 3. Distribution of SOUP Dependability
The resulting SOUP dependability framework
Tasks by Category and Tier
is provided in Appendix 1. The distribution of tasks
by tier and category are shown in Figure 3. It is
noteworthy that there is a strong reliance on the Use
of SOUP and Testing for the 12 Tier 1 tasks. As the
criticality of the SOUP increases, there is a stronger
reliance on Code Review to ensure dependability.
Figure 4 shows that 73% of tasks are satisfied by a
qualitative review as opposed to meeting a
quantitative metric. This is an increase from the
64% of the tasks that were qualitative in the
framework prior to engaging in the case studies and
5E5-5
[CELLR
[CELLR ANGE]
Qualitative 30 40 ANGE]
30
Tier 3 Tasks
Quantitative 11
20
0 10 20 30
10
Number of Tasks
5E5-6
subcommittee of ASTM F38 on Unmanned Aircraft Pedigree,”AIAA-2015-1867, AIAA Software
Systems has initiated working group WK50655 to Challenges in Aerospace, Orlando, FL, 2015.
develop a Practice for Software Dependability for
[5] “Subcommittee F38.01 on Airworthiness”,
sUAS that intends to leverage this research as part
http://www.astm.org/COMMIT/SUBCOMMIT/F38
of standards development [5]. It is our hope that
01.htm
work on this standard may help to bridge the “clash
of cultures” between the IT and aviation
communities and contribute to a safe, secure, and Acknowledgments
cost-effective approach to support sUAS integration This work was sponsored by the MITRE
into the NAS. Innovation Program, an independent research and
development program run by The MITRE
References Corporation. The authors are grateful to the
corporate partners that contributed to this research:
[1] “DoD Tasks Innovation Experts with Stretching
Airware, Google, and PrecisionHawk. The
Out Technology Dollars” by Jared Serbu, 19 Nov
contributions of these sUAS industry partners were
2013.
indispensable to this effort. The authors also wish to
http://www.federalnewsradio.com/400/3508263/Do
thank Dr. Glenn Roberts and Mr. Craig Wanke
D-tasks-innovation-experts-with-stretching-out-
(both of The MITRE Corporation) for their
technology-dollars
programmatic and technical guidance of this
[2] The Garmin Corporation. project.
http://garmin.blogs.com/my_weblog/2015/06/the-
price-tag-associated-with-certified-avionics.html. Disclaimer
05 June 2015.
Case Number: 15-2785. The views, opinions,
[3] Software for Dependable Systems: Sufficient and/or findings contained in this paper are those of
Evidence? Edited by Jackson, D., Thomas, M., and author(s) and The MITRE Corporation and should
Millet, L. Committee on Certifiably Dependable not be construed as an official Government
Software Systems, National Research Council, position, policy, or decision, unless designated by
2007. other documentation. Neither the FAA nor the DOT
makes any warranty or guarantee, or promise,
[4] Cook, S., Buttner, D., and Lester, E.,
expressed or implied, concerning the content or
“Dependability of Software of Unknown
accuracy of the views expressed herein.
5E5-7
understanding at an organizational level
the benefits and risks of using SOUP
instead of blindly leveraging readily
available code.
5E5-8
OP.5 Tier 3 QN Simulate Simulate/demonstrate the SOUP
Software integrator's organizational response to a
Crisis SOUP malfunction or penetration.
Analyze how the organization would
respond to a discovered vulnerability or
issue with SOUP after a system is
deployed. The metric to judge the
SOUP based on this task is the amount
of time it takes to address the issue
(e.g., fix the problem, notify all users,
etc.). The ability to react in 24 hours,
although not essential, can be
considered typical.
US.2 Tier 1 QL Publish SOUP For the specific piece of SOUP being
Integration integrated, develop and publish
Plan (internally) an integration plan that
documents the tasks and milestones that
need to be performed to acquire and
integrate it. The plan should include
release gates/checkpoints/milestones
and associated criteria at one or more
points during the acquisition and
integration process, as well as
configuration management for all code
and documents. Integrators using agile
processes may utilize many small
5E5-9
checkpoints at the end of each sprint.
Gates are directly associated with
controls required by regulations,
contractual agreements, and other
business obligations. Exceptions are
tracked as required by statutory or
regulatory drivers. Gate measures (e.g.
entrance and exit criteria) yield key
performance indicators that are used to
govern the process. This SOUP
integration plan could be part of a
larger software integration plan or other
lifecycle documentation.
US.3 Tier 1 QL Publish SOUP For the specific piece of SOUP being
Maintenance integrated, conduct planning and
Plan publish (internally) a SOUP
maintenance plan that documents how
patches, bug fixes, upgrades, etc.
provided by the SOUP source will be
applied. The maintenance plan should
also include how configuration
management will be leveraged to
record changes to the SOUP throughout
its use. This SOUP maintenance plan
could be part of a larger maintenance
plan or other lifecycle documentation.
5E5-10
US.5 Tier 2 QL Review and For the specific piece of SOUP being
document integrated, define the SOUP functional,
SOUP interface, and performance
functional, requirements and perform a review of
interface, and those requirements. These requirements
performance could be included in a system
requirements specification. As a guide for performing
the review, the INCOSE Systems
Engineering Handbook provides details
on how to conduct a System
Specification Review (SSR).
Performance requirements may be
stated in terms of timing, precision, etc.
Functional and interface requirements
may be assessed via the software
architecture as it relates to SOUP
incorporation. This architecture should
show the relationship of SOUP to total
system function including calls,
messages, data exchange, wrappers,
timing, etc. The architecture should
also show any mechanism for fail-safe
and redundancy. The architecture
enables understanding of failure effects
and appropriate test methodologies.
5E5-11
US.8 Tier 2 QL Neutralize Disable, remove, and/or mitigate risk
unwanted associated with functions and features
functionality that are not needed for the intended
function as defined in US.1. If code is
disabled or removed, confirm the
disabling or removal of those functions
does not adversely affect the SOUP.
An accepted means of addressing
unwanted functionality is to write unit
tests to ensure this unneeded code does
not adversely affect the system.
5E5-12
protection mechanism is protecting
against. Any unprotected vulnerability,
error, or failure condition requires
justification.
CM - Code CM.1 Tier 1 QL Assess SOUP SOUP compiled file size(s) should be
Metrics size consistent with scope of functions
performed. The goal of this task is to
obtain a general sense that the SOUP
files are of expected size. An
excessively large file size is a sign that
additional unexpected functionality
may be included.
5E5-13
expected number to implement that
function. The metric to the SOUP
based this task (if source code not
available) is file size versus an expected
file size to implement the function. The
expected number of lines of code
and/or expected file size will vary
based on the complexity of the function
implemented by the SOUP.
5E5-14
CM.6 Tier 3 QL Record and Record SOUP and SOUP integration
Review SOUP anomaly, bug, and/or problem reports
Anomaly along with their resolutions in a
Reports database and then use this to better
understand past performance and
quality of the SOUP. If SOUP is being
used by other industries/users (e.g.
open source software), incorporate
external reports as necessary. The goal
is to see evidence of defect tracking,
investigation (root cause),
prioritization, and repair.
5E5-15
CR.5 Tier 2 QL Review SOUP Review the SOUP Vendor's coding
Vendor's standards used during the coding of the
Coding SOUP. Coding standards reflect best
Standards practices for a given language. The
goal of this task is to identify language-
unique issues that could affect the
SOUP performance.
5E5-16
CR.9 Tier 3 QL Perform Use threat modelling to identify high
Threat and risk areas surrounding the inclusion of
Vulnerability SOUP. This includes documenting and
Modeling reviewing data flow diagrams, call
graphs, and other system visualizations.
These visualizations may be at multiple
levels of detail (e.g., system,
component, module) but must be
sufficient to understand relevant threats
and vulnerabilities. Once threats are
identified, determine countermeasures
that can protect the system from exploit
leveraging issues with the SOUP.
More information on threat modelling
can be found here:
<<https://www.owasp.org/index.php/A
pplication_Threat_Modeling>>.
5E5-17
QA.2 Tier 2 QL Evaluate Evaluate the SOUP vendor's Quality
vendor Assurance process against an industry
Quality standard (such as International
Assurance Organization for Standardization - ISO,
process International Civil Aviation
Organization (ICAO) Safety
Management System (SMS), Capability
Maturity Model (CMM), etc.). The
focus should be on QA activities that
are conducted outside the standard
software development processes done
by developers.
TE.2 Tier 1 QN Test SOUP Verify that the SOUP is completely and
integrator's correctly integrated into the system
requirements through requirements based testing as
defined in the V&V plan and
documenting associated test results.
The metric to judge the SOUP based on
this task is the percentage of tests
passed. All failed tests require
justification, and any failures that do
not have acceptable risk should be
addressed.
5E5-18
penetration testing team, and other
factors related to code quality. All
identified penetrations should be
addressed and/or explained. See for
example: <<
https://www.sans.org/reading-
room/whitepapers/analyst/penetration-
testing-assessing-security-attackers-
34635 >>
5E5-19
source language, number of
interconnections with other
applications, type of tool(s) used, and
other factors related to code quality.
All identified penetrations should be
addressed and/or explained.
5E5-20