“Memory safety has been a problem for nearly 40 years and numerous solutions have been proposed, according to Columbia computer scientist Simha Sethumadhavan. “We believe that memory safety continues to be a problem because it does not distribute the burden in a fair manner among software engineers and end-users.”
Sethumadhavan group noticed that most security issues occur within a computer’s memory – specifically pointers and deliberately corrupted pointers can be used to hijack a program.
Current techniques to mitigate memory attacks, according to the university, use up a lot of energy, affect system performance and can break software.
The team set out to protects memory without unduly affecting a system’s performance.
Their first solution has been dubbed ‘ZeRØ’ (zero-overhead resilient operation under pointer integrity attacks).
ZeRO features a set of memory instructions added to the instruction set and a metadata encoding scheme that protects the code and data pointers of a system.
It requires minor, easily added, changes to a system’s architecture, said the university, slows the processor little, if at all, and can avoid crashing the system even when under attack.
For a slightly more invasive defence – 8% overhead on computer’s performance – the team proposes a system for detecting memory errors.
This has been named too: ‘No-FAT, described as ‘architectural support for low overhead memory safety checks’.
No-FAT speeds up fuzz testing and is “very easy for developers to add it when building a system”, according to Columbia.
It builds on a trend in software towards binning memory allocators, which uses buckets of different sizes to store memory until it is needed by the software. The researchers found that when binning memory allocation is used by the software, it is possible to achieve memory security with little impact on performance and is compatible with existing software.
Both of these projects were presented at the recent International Symposium on Computer Architecture (ISCA).
“With these two papers, we believe we have found the right balance of burdens,” said Sethumadhavan.
Pre-prints of the ISCA papers are available:
ZeRØ: Zero-overhead resilient operation under pointer integrity attacks
No-FAT: Architectural support for low overhead memory safety checks
Two detailed YouTube videos have been prepared to explain the techniques: