What is meant by Security Specification?
Meaning: A security specification is a set of guidelines that outline how to implement security measures to protect data and ensure confidentiality and integrity.
Note: In common with safety requirements specification – concern is to avoid something bad
happening.
Four Major Differences:
1. Safety problems are accidental – the software is not operating in a hostile environment. In security, you must assume that attackers have knowledge of system weaknesses.
What is meant by Security Policy?
Meaning: A document that applies to all systems and sets out what should and should not be allowed.
For example, a military policy might be:
* Readers may only examine documents whose classification is the same as or below the readers vetting/security level.
Name and Describe each part of the security risk assessment process? (8 parts)
Asset Identification:
Identify the key system assets (or services) that have to be protected.
Asset Value assessment:
Estimate the value of the identified assets.
Exposure Assessment:
Assess the potential losses associated with each asset.
Threat Identification:
Identify the most probable threats to the system assets.
Attack Assessment:
Decompose threats into possible attacks on the system and the ways that these may occur.
Control Identification:
Propose the controls that may be put in place to protect an asset.
Feasibility Assessment:
Assess the technical feasibility and cost of the controls.
Security Requirements Definition:
Security requirements can be infrastructure or application system requirements.
Note on Software Dependability?
What are the three key areas to achieving software dependability?
Fault Avoidance:
- The system is developed in such a way that human error is avoided and thus system faults are minimised.
- The development process is organised so that faults in the system are detected and repaired
before delivery to the customer.
Fault Detection:
- Verification and validation techniques are used to discover and remove faults in a system before it is deployed.
Fault Tolerance:
- The system is designed so that faults in the delivered software do not result in system failure
Note / Recap on Regulation
Why can’t we always trust software dependability cases?
Economical or technological reasons might make a manufacturer interested
in the software slightly deviating from its main objective.
Example: Volkswagen’s exhaust emission scandal, etc.
What is meant by Redundancy and Diversity in relation to dependability.
Redundancy:
Meaning: Keep more than 1 version of a critical component available so that if one fails then
a backup is available.
Diversity:
Meaning: Provide the same functionality in different ways so that they will not all fail in the
same way.
Note: diversity adds complexity – more chance of errors.
An example of Diversity and Redundancy examples
What is meant by a dependable process?
Meaning: A well-defined, repeatable processes that can be carried out by different people.
Note: To ensure a minimal number of software faults, it is important to have a well-defined, repeatable software process.
Note: A well-defined repeatable process is one that does not depend entirely on individual skills; rather can be enacted by different people.
Note: Regulators use information about the process to check if good software engineering practice has been used.
Note: For fault detection, it is clear that the process activities should include significant effort devoted to verification and validation.
Name and Describe each attribute attribute of dependable processes?
Documentable:
* There should be a defined process model that sets out the process activities and the documentation that is to be produced during
these activities.
Standardised:
* There should be a defined process model that sets out the process activities and the documentation that is to be produced during
these activities.
Auditable:
* The process should be understandable by people apart from process participants, who can check that process standards are being
followed and make suggestions for process improvement.
Diverse:
* The process should include redundant and diverse verification and validation activities.
Robust:
* The process should be able to recover from failures of individual process activities
Note on Process Diversity and Redundancy
Types:
* Reviews
* Automated analysis
* Testing
Name Different Types of Validation Activities
What is meant by dependable programming?
Meaning; Good programming practices can are adopted to help reduce the incidence of program faults.
These programming practices support
* Fault avoidance
* Fault detection
* Fault tolerance
Name examples of good practice guidelines for dependable programming?
Summary of Topic (Security Specification)