|Click here for more of Dark Reading's Black Hat articles.|
The researchers, Georg Wicherski and Alexandru Radocea of security startup CrowdStrike, used space-filling fractals known as Hilbert Curves--the most famous of which are the heat maps for visualizing the Internet's address space--to map out memory page tables, using brighter colors to indicate more dangerous areas. The technique can help researchers better see problems in anti-exploitation techniques such as address-space layout randomization (ASLR) and data-execution prevention (DEP), Wicherski says.
"We wanted to find ways to make these concepts more accessible to more researchers," he says. "How do you see what is randomized, what is not randomized, and what is a potential vulnerability?"
Using the techniques, the researchers found that Android and other versions of Linux have flaws on the ARM architecture that significantly weaken exploitation mitigations. On ARM, the whole Linux kernel memory area is both writable and executable, allowing any memory-corruption bug to overwrite the kernel code, Wicherski says.
"You don't have to do any advanced exploitation techniques on ARM at all," Wicherski says.
The researchers also plan to demonstrate some weaknesses of iOS using visualizations of the operating system's address space.
To produce the maps, the researchers first categorized areas of memory by their permissions, whether each one was writable, executable or both. Attackers look for pages that are writable and executable and in a consistent location, because they can write their own malicious code to that section of memory and then execute it.
[Attackers cheated two widely respected Microsoft security features to wage targeted attacks via a previously unknown flaw in Internet Explorer. See New IE Zero-Day Attack Bypasses Key Microsoft Security Measures.]
Technologies like data-execution prevention (DEP) attempt to virtually separate the parts of memory to which data can be written and the parts of memory that can be executed. Address space layout randomization (ASLR) makes it hard for attackers to know where a certain section of memory will be located. Analyzing the implementation of these technologies can be hard, but visualization can help researchers spot patterns that they might not otherwise detect, says Ollie Whitehouse, associate director of the NCC Group, a security testing and compliance firm.
"Being able to identify pages that are both readable and writable is important," Whitehouse says. "The way that they did it is innovative, because humans are very visual and good at pattern recognition, so giving them visual representations of these problems can work extremely well."
The technique does not work against logic flaws or other types of code analysis. Yet, it could be a useful way for developers to visualize the way their code uses memory and more easily spot implementation flaws, says CrowdStrike's Wicherski. Vulnerability researchers can also use it to gauge the relative strength of a program's mitigations.
"If you have a new operating system that you want to attack and you want to understand how these mitigations work there and how effective they are, you can use this as a real tool," he says.
In addition, the technique could help developers that are not intimately familiar with how to identify and find memory flaws and weaknesses to see problems with their code, says NCC Group's Whitehouse.
"If you take security problems into the visualization realm, you open them up to people who might not be hardcore reverse engineers and security software analysts," he says.
Have a comment on this story? Please click "Add Your Comment" below. If you'd like to contact Dark Reading's editors directly, send us a message.