@@ -2344,6 +2344,7 @@ this should result in a predictable set of mitigations
risk = impact & likelihood
#TODO separate Risk Factors into those that affect impact vs likelihood
#TODO rewrite Risk Factors to clearly articulate Risk and Forseeable Mitigation separately
#TODO Also need to distinguish between
@@ -2361,79 +2362,6 @@ Approach to the whole document:
- verify that there are more mitigations required for use cases that had a higher aggregated risk score
- verify that the risk score of each use cases is proximate to other similarly-risky forseeable use cases, even in different product categories.
**Val's notes on risk model, ignore**
The fundamental types of attack of an OS are:
* Local threats: Running code on the platform of the OS that results in unauthorized access to assets
* Remote threats: Unauthorized read/write of data transmitted in/out of the OS
* Physical threats: Physical tampering of platform
* Denial of service: Deny access to assets by triggering specific code paths in OS
We need to reframe the risk factors in terms of things that affect the likelihood and impact of the risk that a technical requirement is mitigating.
What affects (1) the likelihood, (2) the impact of each of these types of attack?
* Local threats
* Likelihood:
* User accounts can be created by untrusted users
* Writable storage
* Accepts connections from a public network
* Initiates connections to a public network
* Web browsing
* Installing software
* Installing hardware
* Plugging in peripherals
* Configurability
* Physical access to device by untrusted users
* Impact:
* Type of data stored
* Sensitivity of data stored
* Sensitivity of functions
* Number of users affected
* Remote threats
* Likelihood:
* Accepts connections
* Makes connections
* RDPS
* Web browsing
* Impact:
* Sensitivity of data transmitted
* Physical threats
* Likelihood:
* Physical access to device by untrusted users
* Impact:
* Type of data stored
* Sensitivity of data stored
* Sensitivity of functions
* Number of users affected
* Denial of service
* Likelihood:
* Combination of local and remote likelihood factors
* Impact:
* Type of data stored
* Sensitivity of data stored
* Sensitivity of functions
* Number of users affected
The major risks for operating systems depend on:
* Likelihood of attacker running code on the same platform as the OS
* Platform includes hypervisor/container host
* Is platform is shared with hostile users?
* What software is installed?
* Web browser?
* Plug in peripherals which may load drivers or contain software
* Add hardware that does the same
* Install drivers/modify kernel
* Likelihood of attacker breaking the isolation between its code and the OS or its users' assets
* Impact of data leak
* Impact of loss of data integrity
## D.1 Mapping of risks to requirements
> Table mapping the identified risks to requirements
@@ -2450,468 +2378,7 @@ The major risks for operating systems depend on:
> Describe how to treat any residual risks, for example by documenting them or informing the user.
# Annex E: Notes
> **NOTE: This clause is a temporary storage place for notes, will be deleted.
> FIXME include the relation graphic between verticals in the architecture overview to explain the outside relationship.
> FIXME: Ensure the following cases present in most x86 computers are not lost, assign them to the scope of a vertical (may be ours, may be another vertical).
Special case UEFI updates triggered by the operating system: The update mechanism as provided by the firmware (UEFI capsule) is considered to be in the scope of the boot manager vertical, as is the cryptographic verification of such updates.
Special case Windows drivers delivered as part of UEFI and retrieved by Windows from UEFI during Windows installation (usually hardware enablement like storage and network drivers). FIXME: Look up the name of that mechanism.
Special case of Windows using calls into UEFI runtime services if no native Windows driver for a given peripheral (may even be the graphics card) exists. Does that make this specific UEFI driver part of the operating system?
Special case of System Management Mode (SMM) running in the background with privileges higher than the OS kernel and higher than the hypervisor (if any) and emulating hardware and/or monitoring CPU temperature, possibly forcing shutdown to prevent overheating.
Special case of verified/measured boot partially implemented outside the operating system and outside the CPU, e.g. delegated to the Intel CSME (separate x86/ARC CPU with JTAG access to the main CPU).
Special case configuration files? Not code in most cases, but substantial impact on the security configuration of the operating system.
### NOTES
Could requirements be tested by checking for the configuration options? Or do we want to give some instructions to the manufacturer on how to tell what settings or features will satisfy the requirements?
https://kspp.github.io/Recommended_Settings
Technical requirements notes/sources:
Guidance on tools (see English translation in annex):
* Secure boot with HW Root of Trust: Ensures that only authenticated firmware is executed, anchored in immutable hardware
* Hardware-backed Key Storage (e.g., TPM, Secure Enclave): Protects cryptographic keys from software-level attacks and unauthorized access
* Memory Protection Units (MPU and/or MMU): Enforces access control policies at hardware level, isolating critical OS components
* Hardware-enforced Execution Zones (e.g., ARM TEE): Enables secure execution environments for sensitive operations.
* Bootloader Locking and Firmware/SW Anti-rollback: Prevents downgrading to vulnerable firmware/SW versions.
* Hardware Watchdog Timers: Detects and recovers from system hangs or malicious loops
* Secure Debug Interface Management: Disabling or restricting access through state-of-the-art security mechanisms debug access
## Suggested additional requirements
TODO:
#### Kernel and userspace memory safety mitigations
FIXME: Stack ASLR
FIXME: Exec ASLR
#### Kernel-specific memory safety mitigations
FIXME: Module ASLR
FIXME: JIT ASLR
#### Userspace-specific memory safety mitigations
FIXME: Sym-/Hard-Link restrictions
FIXME: FIFO restrictions
FIXME: Libs/mmap ASLR
FIXME: brk ASLR
##### Toolchain hardening
FIXME: PIE
FIXME: FORTIFY_SOURCE
FIXME: RELRO (merge below into "binary runtime metadata"?)
FIXME: BIND_NOW (merge above into "binary runtime metadata"?)
FIXME: -fstack-clash-protection (covered by "stack exhaustion"?)
FIXME: -fcf-protection (covered by "CFI"?)
#### Kernel provided userspace mitigations
FIXME: vDSO ASLR
FIXME: NULL-address protection
FIXME: ptrace scope
### Old logging requirements
#### 5.2.X.1 Example threat
Attacker's security-relevant changes to systems can't be tracked or audited
#### 5.2.X.x **MI-LLOG**: Local logging
Use case: Everything above toy that has security-relevant configuration?
* Mitigation: Keep local logs of important security events with timestamps, including TBD:
* list of types of events
* enough information to directly repair the change without scanning the whole system
* enough log storage ??? amount
* Test: For each type of logged event, execute the action that should be logged
* Result: Each event is logged
* Output: Log output for each event
#### 5.2.X.x **MI-RLOG**: Remote logging
Use case: Higher risk servers, workstations, laptops, anything that can't write logs locally?
* Mitigation: same as MI-LLOG but with ability to send logs via a verifiable channel to an authorized log server, as long as the connection to the server is available
* Test: For each type of logged event that would result in the logging server becoming unavailable, execute the action that would result in that log event
* Result: Log output for each event is sent to log server
* Output: Log output as sent to log server or as recorded on log server
* Requirements: way to setup remote log server for product as shipped
### 5.2.X **TR-LLTP**: Local log tamper prevention
#### 5.2.X.1 Example threat
Attacker tampers with log messages
#### 5.2.X.x **MI-LLGA**: Local log file only editable by privileged users
Use case: Any product with multiple users?
* Mitigation: log file has permissions allowing editing only by users with appropriate privileges
* Test: attempt to write to, delete, and move each log file by an unauthorized user
* Result: access is denied, log is not changed
* Output: error messages, comparison of log status shows no changes
* Requirements: way to attempt to tamper with logs on product as shipped
FIXME: what about append-only?
Note: all security-relevant configuration handled by a different requirement
Attacker intercepts, alters, or replaces log message stream to remote log server
#### 5.2.X.x **MI-RLSA**: Remote log server authentication
* Mitigation: Authentication of remote log server
* Test: Attempt to intercept initial connection to log server using identical responses as the authorized log server, except where using only publicly available information would be different
* Result: Failure to connect to remote log server and no logs are sent
* Output: Error message
#### 5.2.X.x **MI-RLET**: Encrypt log message stream with tamper-evident protocol
Use case: Higher risk servers, workstations, laptops?
* Mitigation: Use tamper-resistant encryption on the log stream such as TBD LIST OR REFER
* Test: Alter, insert, and delete log message stream using only publicly available data
* Result: Log server rejects tampered/false log message
* Output: Error message
# Annex F (informative): Change history
# Annex E (informative): Change history
The "Change history/Change request (history)" annex shall be included in every revised or amended harmonised standard and shall contain information concerning significant changes that have been introduced by it. It shall be presented as a table.