Skip to content

Commit 2c6b49e

Browse files
committed
Draft STPA for stack protection
1 parent 0ce5387 commit 2c6b49e

File tree

4 files changed

+73
-0
lines changed

4 files changed

+73
-0
lines changed

stack-memory/README.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# STPA results for Stack Memory Protection
2+
3+
This directory contains the results of safety analysis using STPA relating to
4+
the stack memory protection features of Linux.
5+
6+
The goals of this analysis are:
7+
8+
* To specify the risks for safety-critical applications that may arise from
9+
faults affecting (or misuse of) stack memory by applications or the kernel
10+
* To identify existing features or strategies that may be used to prevent or
11+
mitigate the effects of these faults
12+
* To specify how these features or strategies can address the identified risks
13+
in the form of constraints (specific, verifiable requirements)

stack-memory/constraints.yml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
#
2+
# A system-level constraint specifies system conditions or behaviors that need
3+
# to be satisfied to prevent hazards (and ultimately prevent losses)
4+
#
5+
# These constraints differ from controller constraints inasmuch as they
6+
# describe how components in the system need to work together in order
7+
# to prevent hazards.
8+
#
9+
Constraints:
10+
11+
- Identifier: SC-1.1
12+
Text: >
13+
Safety-critical data must be protected from stack overflow
14+
Hazards: [ H-1 ]
15+
16+
- Identifier: SC-1.1
17+
Text: >
18+
Corruption of safety-critical data by stack overflow must be detected
19+
Hazards: [ H-2 ]
20+
21+
- Identifier: SC-2.1
22+
Text: >
23+
Critical operating system data must be protected from stack depth overflow
24+
Hazards: [ H-2 ]

stack-memory/hazards.yml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
#
2+
# A hazard is a system state or set of conditions that, together with a
3+
# particular set of worst-case environmental conditions, will lead to a loss.
4+
#
5+
Hazards:
6+
- Identifier: H-1
7+
Text: >
8+
Stack buffer overflow results in corruption of safety application data
9+
Losses: [L-1]
10+
11+
- Identifier: H-1
12+
Text: >
13+
Undetected corruption of safety application data results in
14+
Losses: [L-1]
15+
16+
17+
- Identifier: H-2
18+
Text: >
19+
Stack depth overflow results in corruption of kernel data structures
20+
that are required for a safety-critical function
21+
Losses: [L-2]

stack-memory/losses.yml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
#
2+
# A loss involves something of value to stakeholders. Losses may include a loss
3+
# of human life or human injury, property damage, environmental pollution, loss
4+
# of mission, loss of reputation, loss or leak of sensitive information, or any
5+
# other loss that is unacceptable to the stakeholders.
6+
#
7+
Losses:
8+
- Identifier: L-1
9+
Text: Loss of application data integrity
10+
11+
- Identifier: L-1
12+
Text: Loss of application data integrity
13+
14+
- Identifier: L-2
15+
Text: Loss of system data integrity

0 commit comments

Comments
 (0)