Side-channel attacks
Posted: 2018-01-07, 8:46:40
This week, there has been a lot of discussion about the newly discovered vulnerability known as side-channel attacks [1]. Most modern superscalar microprocessors have this vulnerability due to their use of speculative execution. The existence of this vulnerability has been confirmed by Intel, AMD, ARM and several software vendors [2]. People have asked me about this so here is my evaluation of the situation.
This vulnerability makes it theoretically possible - under certain conditions - to read sensitive information from computer memory.
Facts about this vulnerability:
References:
1. Jann Horn: Reading privileged memory with a side-channel. 2018-01-03. https://googleprojectzero.blogspot.dk/2 ... -side.html
2. US-CERT: Meltdown and Spectre Side-Channel Vulnerability Guidance. 2018-01-05. https://www.us-cert.gov/ncas/alerts/TA18-004A
This vulnerability makes it theoretically possible - under certain conditions - to read sensitive information from computer memory.
Facts about this vulnerability:
- It is only possible to read information, not to modify or delete it
- Sensitive information can be read only if it resides in cache memory, not if it is only stored on a disk or other storage device
- Reading sensitive information is very slow, reading one bit at a time. A complete attack may take hours
- The attacker needs access to the same computer and the same processor core and the same address space as the sensitive information
- No actual attack has been observed. The researchers have only proven that it is theoretically possible. The possibilities for exploiting this vulnerability in practice are quite limited.
- General recommendations for protection against malware apply
- Keep sensitive information and applications separate from general information and applications
- Keep the operating system updated
- Software developers should not regard a simple branch as sufficient for protecting sensitive data from unauthorized access
- Software fixes can slow down general performance
- A complete elimination of this vulnerability would require a change in microprocessor hardware so that the cache state is rolled back when a speculative execution is rolled back. This would be quite costly.
- ForwardCom has an addressing mode for arrays with bounds checking. Any violation of array bounds will stop speculative execution. This protection can only be used if the maximum array size is known at compile time
- Device drivers have limited access rights. A device driver can only access its own memory space and a specific block of user memory that the calling application has given it access to
- Each thread has its own private memory space by default
- Memory access rights can be checked immediately with an on-chip memory map
- Simultaneous multithreading is not recommended, though it is technically possible to make a ForwardCom processor with SMT
References:
1. Jann Horn: Reading privileged memory with a side-channel. 2018-01-03. https://googleprojectzero.blogspot.dk/2 ... -side.html
2. US-CERT: Meltdown and Spectre Side-Channel Vulnerability Guidance. 2018-01-05. https://www.us-cert.gov/ncas/alerts/TA18-004A