Measurement Dox
Measurement Dox
TEAMS PROJECT
CMU CS 462-BIS
Table of Contents
Acknowledgments 5
5.2 SCAMPI 35
9 Case Studies 46
10 Conclusions 48
11 References/Bibliography 50
List of Figures
List of Tables
Table 1: Engineering Questions 12
Acknowledgments
We thank Dr. Anand Nayyar for his input as reviewers.
Thus, software cannot always function perfectly as intended. How can confidence
be established? One option is to use measures that establish reasonable
confidence that security is sufficient for the operational context. Assurance
measures are not absolutes, but information can be collected that indicates
whether key aspects of security have been sufficiently addressed throughout the
lifecycle to establish confidence that assurance is sufficient for operational needs.
Over the development lifecycle, as the details of the software and operational
context incrementally take shape, it is possible, with well-selected measurements,
to incrementally increase confidence and eventually confirm that the delivered
system will achieve the level of software assurance desired. When acquiring a
product, if it is not possible to conduct measurement directly, the vendor should
be contacted to provide data that shows product and process confidence.
Independent verification and validation should also be performed to confirm the
vendor’s information.A comparison of software and hardware reliability provides
some insight into challenges for man- aging software assurance. An evaluation of
hardware reliability uses statistical measures, such as the mean time between
failures (MTBF) since hardware failures are often associated with wear and other
errors that are frequently eliminated over time. A low number of hardware failures
in- creases our confidence in a device’s reliability.The differences between
software and hardware reliability are reflected in their associated failure-
distribution curves shown in Figure 1. A bathtub curve, shown in the left graph,
describes the typical failure distribution for hardware. The bathtub curve consists
of three parts: a decreasing failure rate (of early failures), a constant failure rate
(of random failures), and an increasing failure rate (of wear-out failures), as wear
increases the risk of failure. Software defects exist when a system is deployed.
Software’s failure distribution curve, shown in the right graph of Figure 1, reflects
changes in operational conditions that exercise those defects as well as new faults
introduced by upgrades. The reduction of errors between updates can lead system
engineers to make reliability predictions for a system based on a false assumption
that software is perfectible over time. Complex software systems are never as
error free as described above.
Software assurance needs context to measure its practices usefully. Some software
assurance targets must be defined for the system to be fielded. It is then possible
to identify ways that engineering and acquisition ensure through policy, practices,
verification, and validation that the software assurance targets are addressed.
For example, if the system being delivered is a plane, a key mission concern is
that the plane can continue to fly and perform its mission even if it’s experiencing
problems. Therefore, our stated software assurance goal for this mission might be
“mission-critical and flight-critical applications executing on the plane or used to
interact with the plane from ground stations will have low cybersecurity risk.”
To establish activities that support meeting this software assurance goal, software
assurance practices should be integrated into the lifecycle. The Software
Assurance Framework (SAF), a base- line of good software assurance practices
for system and software engineers assembled by the SEI, can be used to confirm
the sufficiency of software assurance and identify gaps in current lifecycle
practices [Alberts 2017]. A range of evidence can be collected from these
practices across a lifecycle to establish confidence that software assurance is
addressed.
Evaluation of this evidence should be integrated into the many monitoring and
control steps already in a lifecycle, such as engineering design reviews,
architecture evaluations, component acquisition reviews, code inspections, code
analyses and testing, flight simulations, milestone reviews, and certification and
accreditation. Through the analysis of the selected practices, evidence and metrics
can be generated to quantify levels of assurance, which, in turn, can be used to
evaluate the sufficiency of a system’s software assurance practices. A well-
defined evidence-collection process can be automated as part of a development
pipeline to establish a consistent, repeatable process.
The SAF [Alberts 2017] defines important software assurance practices for four
categories: process management, project management, engineering, and support.
(See Figure 3.) Each category comprises multiple areas of practice, and specific
practices are identified in each area. To support acquirers, relevant acquisition and
engineering artifacts where evidence can be provided are documented for each
practice, and an evaluator looks for evidence that a practice is implemented by
Several observations about how an assurance case can be used include the following:
Creating a verification argument and identifying supporting evidence should
be the expected output of normal development activities.
An assurance case is developed incrementally. For this example, the outline
of an assurance case was developed during design. It is likely refined during
implementation to satisfy verification requirements.
Independent reviewers can evaluate the assurance argument and sufficiency
of proposed or supplied evidence throughout the development lifecycle.
Software assurance metrics are needed to evaluate both the practices in a software
assurance practice area as well as the resulting assurance of the product. For
example, in the SAF Engineering practice area, the engineers must (1) know what
to do, (2) actually do it, and (3) provide evidence that what they did is sufficient.
Trade-offs When multiple practices are available, have realistic trade-offs been made between the effort
associated with applying a technique and the improved result that is achieved? (The improved result
refers to the efficiency and effectiveness of the techniques relative to the type of defect or weakness.)
integrate into all phases of the acquisition and development lifecycles. Measures
to provide assurance evidence can be collected from activities that implement this
practice in several lifecycle steps, such as the following:
Requirements: What are the requirements for software attack risks, and are
they sufficient for the expected operational context?
Architecture through design: What security controls and mitigations must
be incorporated into the design of all software components to reduce the
likelihood of successful attacks?
Implementation: What steps must be taken to minimize the number of
vulnerabilities inserted during coding?
Test, validation, and verification: How will actions performed during test,
validation, and verification address software attack risk mitigations?
For each of these engineering questions, explore relevant outputs and metrics that
can be used to establish, collect, and verify appropriate evidence. Since each
project is different in scope, schedule, and target assurance, actual implemented
choices should be the metrics that provide the greatest utility.
Collect Data
• What data should be collected, and where should it be collected?
• What is the data’s level of fidelity?
• How many sources of data are there?
• How should data be assembled for analysis and passed to the next step?
What should be collected and by whom? In some cases, the data is already
available and is being used for a related secondary purpose. It’s likely that no one
is collecting the information because it hasn’t been required, or what is being
collected is imprecise or insufficiently correlated to what must be evaluated. Are
mechanisms available to collect the needed data? Are there log entries that can be
assembled or tools that can be applied to collect the data? If there is no way to
collect the data needed, a surrogate may be able to provide a close approximation
of what is needed.
Where might the data be collected and how many sources should be used? How
granular should the data be? Is information needed about every line of code, every
software module, every component, or each product within the system? Or is
information needed at an integration level? Is it necessary to collect detailed data
and construct the combined view, or can the data be collected at a point where it
will reflect the combinations? Is there a single point where the practice being
measured is performed, or is it spread throughout many separate steps, separate
lifecycle activities, and separate contractors? Are the practices being inserted into
the lifecycle, and do the measurement activities need to be part of that transition?
How many sources must participate to make the measurement useful? In many
cases, the volume of data may be too high for manual analysis, and the collection
process should be automated to be practical.
How should the information be assembled for analysis? Data is useful only if it’s
analyzed, and data analysis is time and resource intensive. Mechanisms must be
in place to isolate data needed to conduct assurance analysis from the many log
files and other data repositories that potentially contain millions of records. Data
that is classified and cannot be shared with decision makers is useless unless the
analysis is framed so the decisions the data is intended to influence are addressed
Who reviews the data for potential response? How do they determine what is out
of acceptable bounds and when action is required? Is there a single decision
point? Or are performers at a granular level expected to (1) correct issues related
to measures within a certain range and (2) notify decision makers at the next level
when those bounds are exceeded? Each selected measure can have different
responses to these questions based on how the organization chooses to implement
its decision making.
There are several possible responses to measures that are considered out of
bounds. Initially, the data should be confirmed to ensure its validity. Were the
collection and submission processes followed so that the data has integrity? Are
the metrics appropriate to indicate specific action, or are they potential warning
indicators that should trigger further monitoring, data collection, and analysis?
If the data is believable, then what are the potential impacts indicated by an out-
of-bounds condition? There could be mission success impacts, system/product
performance impacts, operational capability impacts with future limitation
implications, etc.
If the measures verify capability, are the conditions posed by the unexpected
variance great enough to justify rework of some or all of the system? Or will
responsibility, and possibly future change requests, be transferred to operations?
Any of the above responses requires criteria for evaluating the severity of impact
and the immediacy of expected response. Mechanisms for communicating the
It’s beneficial to periodically monitor and tune this process to improve the metrics
used and the actions that are determined and implemented based on those metrics.
Also system and organiza- tional changes can impact the metrics process.
The SAF provides practices as a starting point for a program, based on the SEI’s
expertise in software assurance, cybersecurity engineering, and risk management.
Each organization must tailor the practices to support its specific software
assurance target possibly modifying the questions for each relevant software
assurance practice and select a starting set of metrics for evidence that is worth
the time and effort needed to collect it.
SAF-Based Questions
Using the SAF, the following questions should be asked to address sub-goal 2:
Supply software to the warfighter with a minimal number of exploitable
vulnerabilities.
1.1. Process Definition: Does the program establish and maintain cybersecurity processes?
1.3. Resources: Does the program have access to the cybersecurity resources
(e.g., personnel, data, assets) it needs?
1.4. Training: Does the program provide security training for its personnel?
2.1. Program Plans: Has the program adequately planned for cybersecurity activities?
2.3. Program Monitoring: Does the program monitor the status of cybersecurity activities?
3.5. Testing, Validation, and Verification: Does the program test, validate,
and verify cybersecurity in its software components?
3.6. Support Tools and Documentation: Does the program develop tools and
documentation to support the secure configuration and operation of its
software components?
There are many possible metrics that could provide indicators of how well each
practice in each practice area is addressing its assigned responsibility for meeting
the goal. The tables in Appendices B-E provide metric options to consider when
addressing the questions for each practice area except 3.1 Product Risk
Management, which, for this example, was not useful since the system under
development is the product.
There are many ways that the information provided in Appendices A-E can be
used for practices, outputs, and metrics. An organization can start with
existing practices to identify related metrics
known outputs to identify useful software assurance metrics
known attacks to identify useful practices and measures for future
identification Three examples are included in this section.
The DoD requires a program protection plan, and evidence could be collected
using metrics for engineering practices (see Figure 3, practice group 3) that
show how a program is handling pro- gram protection.
In Engineering practice area 3.5 Verification, Validation, and Testing, data can be
collected to determine that requirements have been confirmed and the following
evidence would be useful:
percentage of security requirements tested (total number of security requirements and MLOC)
code exercised in testing (MLOC)
code surface tested (% of code exercises)
Each selected metric must have a process that establishes how data is collected,
analyzed, and evaluated based on information provided in Section 2.4 of this
report.
In Engineering practice area 3.2 Requirements, the SAF includes the following practice:
A security risk assessment exhibits outputs with specificity that varies by lifecycle
phase. Initial risk assessment results might include only that the planned use of a
commercial database manager raises a specific vulnerability risk that should be
addressed during detailed design. The risk assessment associated with that
detailed design should recommend specific mitigations to the development team.
Testing plans should cover high-priority weaknesses and proposed mitigations.
Examples of useful data related to measuring this practice and that support the
software assurance target appear in the following list:
recommended reductions in the attack surface to simplify development and
reduce security risks
Output from reviews includes issues raised in internal reviews, review status, and
evaluation plans for software security requirements.
Analysis of the issues arising in various reviews should answer the questions
shown in following list to determine data that would be useful in evaluating
progress toward the software assurance goal.
For software security requirements, what has not been reviewed? (Examples
include the number, difficulty, and criticality of “to be determined” [TBD]
and “to be added” [TBA] items.)
Where are there essential inconsistencies in the analysis and/or mitigation
recommendations? (Examples include the number/percentage, difficulty, and
criticality of the differences.)
Is there insufficient information for performing a proper security risk
analysis? (Examples include emerging technologies and/or functionality
where there is a limited history of security exploits and mitigation.)
The assert function for the flawed software accepts two parameters: a string S
and an integer N and returns a substring of S of length N. For example, assert
(“that”,3) returns tha. A vulnerability existed for calls where N is greater than
then the length of S. For example, assert(“that”,500) returns a string starting with
“that” followed by 496 bytes of memory data stored adjacent to the string that.
Calls such as this one enable an attacker to view what should be inaccessible
memory contents. The input data specification that the value of N was less than
or equal to the length of the string was never verified.
The practices listed in Table 2 come from several SAF practices in the
Engineering practice area that should provide enough evidence to justify the claim
that the Heartbleed vulnerability was eliminated.
Table 2: Practices/Outputs for Evidence Supporting Sustainment Example
Practice Output
Threat modeling Software risk analysis identifies “input data risks with input verification” as requiring mitigation.
As mentioned earlier in this report, the role of assurance metrics and data varies
with the type of assurance target. Earlier examples demonstrated that the effective
use of metrics for software assurance in engineering practices requires
coordinating data across many practices in the Engineering practice area.
Functional requirements typically (1) describe what a system should do and (2)
focus on required behavior that can be validated. Assurance requirements are more
likely expressed in terms of what a system should not do and are much more
difficult (if not impossible) to confirm. However, we should consider evaluations
that show that a behavior is less likely to occur.
For example, we can verify that the authentication and authorization functions
meet requirements and that authorization is confirmed when sensitive data is
accessed. However, that evidence is insufficient to demonstrate assurance because
only authorized users can access a data set. An attacker does not need to exploit a
weakness in those functions. Instead, they can use a vulnerability in the functional
software to change software performance and bypass authentication checks. In
other words, vulnerabilities enable an attack to bypass system controls. To reduce
the likelihood of this bypass occurring, practices that remove vulnerabilities are
critically needed.
Many government agencies use the NIST Risk Management Framework (RMF)
[NIST 2014] to identify practices for cybersecurity that also address software
assurance. These practices are included in a contract and evaluated as part of an
independent verification and validation (IV&V) process to confirm the level of
cybersecurity and software assurance risk addressed.
As an example, three areas of interest that could be combined were selected.
(Additional examples are provided in Appendix A.)
1. The first area of interest is Software Flaw Remediation, which covers five
RMF controls as follows:
SI-2 Flaw Remediation
SI-2(1) Flaw Remediation | Central Management
SI-2(2) Flaw Remediation | Automated Flaw Remediation Status
The same metrics could be selected to demonstrate meeting both RMF and
software assurance expectations from the following list:
% of vendor contracts requiring the use of evaluation practices and
reporting vulnerability metrics
code coverage (aka % of code evaluated [total and by each type of review])
vulnerabilities per MLOC identified and removed
unaddressed vulnerabilities per MLOC
% code libraries evaluated
% open source components evaluated
% legacy components evaluated
count of high-priority vulnerabilities identified and the count of those removed
2. The second area of interest is Malicious Code Protection, which covers the
following four RMF controls:
SI-3 Malicious Code Protection
SI-3(1) Malicious Code Protection | Central Management
SI-3(2) Malicious Code Protection | Automatic Updates
SI-3(10) Malicious Code Protection | Malicious Code Analysis
This area of interest is be handled by the SAF Engineering practice area 3.2 Implementation
as well. Specific metrics for these practice areas are provided in Appendix D.
For the DoD, milestone reviews in an acquisition lifecycle can be used to review
selected metrics and monitor how well the contractor is addressing the selected
RMF controls and practices for software assurance. As described in Sections 2
and 3 of this report, the acquirer must determine which data to collect and how it
will be evaluated to determine if the results are sufficient.
Challenge: What evidence is needed to ensure that vulnerabilities are addressed by a contractor?
Capers Jones analyzed over 13,000 projects for the effects of general practices
(e.g., inspections, testing, and analysis) on improving software quality [Jones
2012]. His analysis shows that using a combination of techniques is best. Many of
the limitations associated with tools such as static analysis, which have high rates
of false positives and false negatives [Wedyan 2009], can be mitigated by other
development practices.
Conduct a security risk analysis, including threat Prioritized list of software security risks
modeling and abuse/misuse cases. Prioritized list of design weaknesses Prioritized
list of controls/mitigations
Mapping of controls/mitigations to design weaknesses
Threat modeling analyzes how a software design can be compromised. Such analysis
typically considers how an attack can compromise the information, flows, data stores,
and software that processes the data and can draw on the extensive documentation of
security exploits as represented by the Common Weakness Enumeration (CWE), the
Common Vulnerabilities and Exposure Enumeration (CVE), and the Common Attack
Pattern Enumeration and Classification (CAPEC).The output can describe the
likelihood of various classes of threats, such as a denial of service or disclosure of
information.
Verification should guide the choice of mitigations. Can claims about a mitigation
be verified? In other words, what is the level of confidence an acquirer should
have with the choice of mitigations? Creating an argument that a developer
reduced or eliminated vulnerabilities (i.e., a developer’s assurance case) should
start with risk analysis. The strength of the assurance argument and its eventual
verification depends, in part, on the evidence provided to support the mitigation of
software risks. An acquirer should consider the evidence that supports the
following:
1. validity of the risk analysis
2. cost effectiveness of the mitigations with respect to their effects on mission outcomes
3. effective implementation of the chosen mitigations
Instead of trying to confirm that the evidence provided for a practice is sufficient,
instead ask why the evidence may be insufficient or defective [Goodenough
2010]. For example, unanticipated risks raised during a program technical review
or by an independent product risk assessment reduce the confidence in a
developer’s risk analysis. Examples of other doubts that could arise include the
following:
The test plans did not include all hazards identified during design.
The web application developers had limited security experience.
The acquirer did not provide sufficient data to validate the modeling and simulations.
Integration testing did not adequately test recovery after component failures.
A developer should be able to provide evidence that confirms items 2 and 3 were
addressed. For example, assume a data flow includes an SQL database as a data
store. A risk assessment does the following:
estimates the risk of an SQL-injection attack as described in CWE-135
The CISQ approach, like static analysis, is based on the analysis of developed
source code. However, the objective of the approach is to eliminate
vulnerabilities during coding rather than identifying defects after they are
injected.
acquisition concern?
Supply chain risk management refers to the collection of practices that manage the
risks associated with the external manufacture or development of hardware and
software components. There are two sources of supply chain risks:
1. The supply chain is compromised, and counterfeit and tampered products
2. are inserted.
For commercial development, most of the practices that address defects are early
in the lifecycle. The acquirer does not see the product until integration and will
only be able to monitor the early lifecycle activities through provisions in the
contract. This separation is shown in Figure 6. Monitoring vendor development
practices depends entirely on information provided by the vendor.
When the acquirer simply receives the final product at integration, it does not
have direct visibility into the vendor’s development practices.
An acquirer must not only monitor a supplier’s development practices, but they
must also understand how that supplier monitors its suppliers. For example, how
does the prime contractor reduce supply chain risks associated with subcontractors
and commercial suppliers? Supply chains can be many layers deep, linking
organizations with a wide range of defect management approaches.
Product Development
Evidence of Quality Supplier practices conform to best practice requirements and recommendations primarily
Product Development associated with the activities relating to the product’s development.
Evidence of Secure Providers employ a secure engineering method when designing and developing their products.
Development Software providers and suppliers often employ methods or processes with the objective of
identifying, detecting, fixing, and mitigating defects and vulnerabilities that could be exploited
as well as verifying the security and resiliency of the finished products.
Evidence of Supply Suppliers manage their supply chains through the application of defined, monitored, and
Chain Security validated supply chain processes.
The assurance discussed for custom development and for supply chain assurance
were associated with eliminating identified defects and vulnerabilities. Threat
modeling attempts to reduce the risk of vulnerabilities associated with unexpected
conditions. Assurance should also be considered for an organization’s work
processes, which are based on systems working together to address a mission or
business process.
A good example is the August 2003 power grid failure. Approximately 50 million
electricity consumers in Canada and the northeastern U.S. were subject to a
cascading blackout. The events preceding the blackout included a mistake by tree
trimmers in Ohio that took three high-voltage lines out of service and a software
failure (a race condition) that disabled the computing service that notified the
power grid operators of changes in power grid conditions. With the alarm function
disabled, the power grid operators did not notice a sequence of power grid failures
that eventually lead to the blackout [NERC 2004].
The alert server was a commercial product. The integration of that component into
the power company’s system included a rollover to a second server if there was a
hardware failure in the primary server. However, the software error that disabled
the primary server also disabled the secondary server. This event was the first
time that this software fault had been reported for the commercial product.
A key observation by the technical reviewers was that the blackout would not
have occurred if the operators knew the alarm service failed. Typically, a response
involves finding alternative sources of electricity, and this response typically can
be implemented in 30 minutes. Instead of analyzing the details of the alarm server
failure, the reviewers asked why the following software assurance claim had not
been met [NERC 2004]:
The reviewers proposed the following assurance case. The claim is met if one out
of five of the sub-claims are satisfied.
Sub-Claim Status
A server provides alarms for condition changes. Alarm server recovery was designed for a hardware failure.
The alarm service did fail over to the secondary server, but
the software failure that disabled the primary server also
disabled the backup.
Server recovery can be completed within ten minutes. The commercial system required 30 minutes for a re- start.
Operators are notified of the loss of the alarm server. Automatic notification of server failure was not implemented.
Operators periodically check the output from contingency This practice was not done since those tools had repeated
analysis and state estimators. failures in the preceding week.
An independent real-time monitor of the regional power grid The independent monitoring organization had concur- rent
provides alerts. failures.
This operational assurance case should guide the acquisition and integration of
commercial power grid software.
The scope of a software process assessment can cover all the processes in the
organization, a selected subset of the software processes, or a specific project.
Most of the standard-based process assessment approaches are invariably based
on the concept of process maturity.
There are two reasons for the different results. They are,
The organization being investigated must be determined. For a large company,
several definitions of organization are possible and therefore the actual scope
of appraisal may differ in successive assessments.
The assessment team produces a list of findings that identifies the strengths
and weakness of the organization's software process.
The assessment team prepares a Key Process Area (KPA) profile analysis
and presents the results to the appropriate audience.
For example, the assessment team must be led by an authorized SEI Lead
Assessor. The team must consist of between four to ten team members. At
least, one team member must be from the organization being assessed, and
all team members must complete the SEI's Introduction to the CMM
course (or its equivalent) and the SEI's CBA IPI team training course. Team
members must also meet some selection guidelines.
With regard to data collection, the CBA IPI relies on four methods the standard
maturity questionnaire individual and group interviews, document reviews,
feedback from the review of the draft findings with the assessment participants
5.2 SCAMPI
Quality Assurance: Ensure the software functions correctly and meets specified
requirements.
Performance Evaluation: Assess how well the software performs under various
conditions.
Security Analysis: Identify vulnerabilities and ensure the software is secure
against threats.
Compliance Check: Verify that the software adheres to relevant regulations and
standards.
- Syntax Checking: Using tools to verify that the code adheres to the language's
syntax rules.
- Static Code Analysis Tools: Automated tools that analyze the codebase to detect
various issues such as security vulnerabilities, bugs, and adherence to coding standards.
b) Tools and Techniques
- SonarQube: An open-source platform that provides continuous inspection of code
quality, detecting bugs, vulnerabilities, and code smells.
- Pylint: A tool for Python code that checks for errors, enforces a coding standard,
and looks for code smells.
- FindBugs: A static analysis tool that looks for bugs in Java programs.
c) Benefits:
- Early detection of defects, reducing the cost of fixing them.
- Improves code quality and maintainability.
- Enhances security by identifying vulnerabilities early in the development process.
- Early and Continuous Testing: Incorporate testing at every stage of the SDLC to
identify issues early.
- Automated Testing: Leverage automated tools to enhance efficiency and repeatability.
- Comprehensive Coverage: Ensure that the assessment covers all aspects of the
software, including edge cases.
- Regular Updates: Keep assessment tools and practices up-to-date with the latest
standards and technologies.
- Cross-Functional Teams: Involve diverse expertise in the assessment process to
get comprehensive insights.
- Resource Constraints: Limited time, budget, and manpower can affect the
thoroughness of assessments.
- Complexity of Modern Software: The increasing complexity of software systems
can make assessments more challenging.
- Rapid Technological Changes: Keeping up with the fast-paced advancements in
technology can be difficult.
- Security Threats: Constantly evolving security threats require continuous vigilance
and updates in assessment practices.
- Requirement Analysis
+ Objective: Understand and document the specific requirements and
goals of the software.
+ Activities: Stakeholder interviews, requirement documentation review,
and clarification sessions.
- Planning
+ Objective: Develop a detailed plan outlining the scope, criteria,
methodologies, tools, and timeline for the assessment.
+ Activities: Define assessment objectives, select tools, identify necessary
resources, and create a schedule.
- Environment Setup
+ Objective: Prepare the technical environment required for conducting
the assessment.
+ Activities: Configure hardware, software, and network settings; set up
testing environments; install and configure assessment tools.
- Execution
+ Objective: Conduct the actual assessment by running tests and analyzing
results.
+ Activities: Execute static and dynamic analysis, perform manual and
automated tests, log defects and issues.
- Reporting
+ Objective: Document the findings, including identified issues, their severity,
and suggested remedial actions.
+ Activities: Compile test results, create detailed assessment reports, provide
recommendations for improvements.
- Dynamic Analysis
- Security Assessment
+ Definition: Identifies vulnerabilities and assesses the security
posture of the software.
+ Tools: OWASP ZAP, Nessus, Burp Suite.
+ Benefits: Enhanced security, protection against threats.
- Performance Testing
+ Definition: Measures how well the software performs under
various conditions.
+ Tools: Apache JMeter, LoadRunner, NeoLoad.
+ Benefits: Ensures scalability, reliability under load.
a) Framework Overview
A software assessment framework provides a structured approach to evaluating
software, ensuring consistency and comprehensiveness.
b) Elements of the Framework
Assessment Criteria: Define what aspects of the software will be evaluated
(e.g., functionality, performance, security).
Methodologies: Outline the methods used for assessment (e.g., manual testing,
automated testing, code review).
Tools: Specify the tools and technologies employed in the assessment process.
Reporting Structure: Describe the format and contents of the assessment reports.
c) Example Framework
Criteria: Functionality, Performance, Security, Usability.
Methodologies: Static analysis, dynamic analysis, manual and automated testing.
Tools: SonarQube, Selenium, OWASP ZAP, JMeter.
Reporting: Detailed findings, issue severity, recommendations.
d) Example of Software Assessment
Case Study: E-commerce Platform
a. Context
An e-commerce company needs to assess a new online shopping platform
before launch to ensure it meets quality and security standards.
b. Steps Followed
- Requirement Analysis: Gathered requirements from stakeholders, including
- performance expectations and security needs.
- Planning: Developed an assessment plan outlining tools like SonarQube for
static analysis, Selenium for functional testing, and JMeter for performance
testing.
- Environment Setup: Configured test environments simulating real-world
conditions, installed necessary tools.
- Execution: Conducted static analysis to find code issues, executed functional
tests to verify features, ran performance tests to check load handling, and
performed security scans.
- Reporting: Compiled a comprehensive report highlighting critical defects,
performance. metrics, and security vulnerabilities.
- Review and Action: Presented findings to stakeholders, prioritized critical
issues, and initiated remediation efforts.
c. Results
- Functionality: Identified and fixed several critical bugs affecting the
checkout process.
- Performance: Improved load handling capabilities, ensuring the platform
could support peak traffic.
- Security: Addressed vulnerabilities that could lead to data breaches,
enhancing overall security posture.
The landscape of software assessment has evolved significantly from 2020 onwards,
driven by advances in technology and shifting industry priorities. Here are some key
trends and developments in software assessment and related technologies over this period:
Progressive Web Apps (PWAs): PWAs have gained traction for their ability
to combine the best features of web and mobile applications. They are fast,
reliable, and provide a native app-like experience. Assessing the performance
and usability of PWAs has become essential as more businesses adopt this
technology for its cross-platform capabilities and enhanced user
experience (SaM Solutions).
Privacy and Data Security: The rise of remote work and increased data
generation have heightened concerns about privacy and data security.
Software assessments now include stringent checks on data protection measures,
compliance with regulations like GDPR, and the implementation of advanced
security protocols (StartUs Magazine).
9. Case Studies
a. Background
- A financial software company faced challenges with frequent
production bugs impacting customer trust and regulatory compliance.
To address this, they implemented static analysis tools.
c. Outcomes
- Reduction in Production Bugs: Achieved a 30% reduction in production
bugs within six months.
- Improved Code Quality: Consistent code reviews and fixes led to higher
code quality and maintainability.
- Regulatory Compliance: Enhanced adherence to financial regulations
through early identification of compliance-related issues.
a. Background
- An e-commerce platform needed to ensure its website could handle
peak loads during major sales events without degrading user experience.
c. Outcomes
- Improved Scalability: Enhanced the platform’s ability to handle peak
loads by optimizing database queries and server configurations.
- User Experience: Maintained fast response times even under heavy load,
ensuring a smooth shopping experience.
- Business Success: Successfully managed high traffic during sales events,
resulting in increased sales and customer satisfaction.
a. Background
- A healthcare provider needed to ensure the security of its patient data by
conducting a thorough security assessment of its software systems.
c. Outcomes
- Enhanced Security: Identified and remediated critical vulnerabilities,
significantly improving the security posture.
- Regulatory Compliance: Ensured compliance with HIPAA and other
regulations by addressing security gaps.
- Patient Data Protection: Strengthened data protection mechanisms, reducing
the risk of data breaches.
10 Conclusions
There are many lifecycles used to address software acquisition and development.
Each SAF practice can be performed at varying points in a specific lifecycle. The
level of specificity available at each point in the lifecycle can be different.
Measures taken at some points in the lifecycle are predictive, since they are
connected with what is planned. Measures taken after plans are executed can be
used to verify that what was planned is what was actually performed.
Identifying a measurement for a practice by itself does not really tell us anything
about software assurance. To associate measures with software assurance, it is
necessary to determine what a measure tells us in relation to a target, but there is
limited field experience in making this association. The examples in this report
were provided to demonstrate ways to navigate the various aspects of assurance
goal, practice, and measurement in a logical structure. This report also covered
use of GQM and aspects of an assurance case to structure examples and show how
measurement can demonstrate some aspects of a practice.
This report explores what is different about software assurance that must be added
to what soft- ware engineers are already doing. Based on this exploration, it is
asserted that improved software assurance depends on improved engineering. The
DoD RAM guide makes that statement for reliability, and the examples in this
report confirm the criticality of good engineering for software assurance.
Engineering requires that evidence is collected across the lifecycle since the
product and what can be measured changes.
11 References
1.http://www.sciencepublishinggroup.com/journal/paperinfo?
journalid=137&doi=10.11648/j.ajsea.20130206.14
2. http://ieeex- plore.ieee.org/
3.https://resources.sei.cmu.edu/library/as- set-view.cfm?assetid=496134
4.http://dl.acm.org/cita- tion.cfm?id=1232684.1232687
5.http://ieeexplore.ieee.org/document/6754599/
6.https://www.diva-por- tal.org/smash/get/diva2:469570/FULLTEXT01.pdf