Android devices are popular among hackers due to the platform’s extensive acceptance and open-source nature.
However, it has a big attack surface with over 2.5 billion active Android devices all over the world.
It also poses challenges when it comes to prompt vulnerability patching due to its fragmented ecosystem that consists of different hardware vendors and delayed software updates.
Malware distribution, surveillance, and unauthorized financial gain, or any other malicious purpose are some examples of how cybercriminals take advantage of these loopholes in security.
Recently, Google unveiled the Kernel Address Sanitizer (KASan) to strengthen the Android firmware and beyond.
KASan (Kernel Address Sanitizer) has broad applicability across firmware targets. Incorporating KASan-enabled builds into testing and fuzzing can proactively identify memory corruption vulnerabilities and stability issues before deployment on user devices.
Are you from The Team of SOC, Network Security, or Security Manager or CSO? Download Perimeter’s Guide to how cloud-based, converged network security improves security and reduces TCO.
Adapt to the changing threat landscape effortlessly with Perimeter 81’s cloud-based, unified network security platform.
Google has already leveraged KASan on firmware targets, leading to the discovery and remediation of over 40 memory safety bugs, some critically severe, through proactive vulnerability detection.
Address Sanitizer (ASan) is a compiler instrumentation tool that identifies invalid memory access bugs like out-of-bounds, use-after-free, and double-free errors during runtime.
For user-space targets, enabling ASan is straightforward with the -fsanitize=address option. However, for bare-metal code built with none system targets like arm-none-eabi, there’s no default runtime support.
The -fsanitize=kernel-address option exposes an interface to provide custom KASan runtime implementations, like the Linux kernel’s routines.
KASan’s core idea is to instrument memory access operations like loads, stores, and memory copy functions to verify the validity of destination/source regions.
It only allows access to valid regions tracked in a shadow memory area, where each byte represents the state (allocated, freed, accessible bytes) of a fixed-size memory region.
Upon detecting an invalid access, KASan reports the violation.
Enabling KASan for bare-metal targets requires implementing instrumentation routines to check region validity during memory operations, report violations, and manage shadow memory to track the state of covered regions.
Here below we have mentioned all the sequential steps:-
For the usage of KASan on bare-metal code, one should employ -fsanitize=kernel-address option of the compiler and -asan-mapping-offset to indicate the location of shadow memory, -asan-stack/globals=1 to cover stack/global variables and -asan-instrumentation-with-call-threshold=0 for outlining checks against code bloat.
In addition, strategies such as leveraging Rust (a memory-safe language) are being advanced in order to proactively guard against memory vulnerabilities in the Android system.
Stay updated on Cybersecurity news, Whitepapers, and Infographics. Follow us on LinkedIn & Twitter.
The cybersecurity landscape witnessed a dramatic escalation in ransomware attacks, marking a concerning trend for…
A relatively new ransomware outfit known as CrazyHunter has emerged as a significant threat, particularly…
A sophisticated multi-layered phishing campaign was uncovered, employing a complex attack chain known as "Cascading…
The 12th Edition of the Microsoft Vulnerabilities Report has revealed a significant surge in the…
A comprehensive study by zLabs, the research team at Zimperium, has found that over 43%…
The Cybereason Global Security Operations Center (GSOC) has shed light on the sophisticated tactics used…