ARMored CoreSight: Binary-only Fuzzing for ARM
Project Overview
ARMored CoreSight is an innovative binary-only fuzzing framework that leverages ARM CoreSight hardware tracing capabilities to efficiently find vulnerabilities in ARM-based software without requiring source code access.
Read the full technical blog post
Key Features
Hardware-Accelerated Tracing
- Utilizes ARM CoreSight technology for efficient program tracing
- No source code instrumentation required
- Ideal for firmware and proprietary software analysis
Dual Coverage Modes
- Edge Coverage: Traditional edge-based code coverage tracking
- Path Coverage: More sensitive path-based coverage inspired by PTrix, generating more diverse test cases
Performance Optimization
- Custom tracer (
coresight-trace) and decoder (coresight-decoder) implementation - Two-layer software cache system for optimized decoding
- Asynchronous feedback generation for improved fuzzing throughput
Technical Achievements
- Performance: Achieved ~1,600-1,700 executions per second
- Efficiency: Path coverage mode found crashes with fewer total executions than traditional methods
- Superiority: Outperformed QEMU-based binary fuzzing approaches
- Integration: Successfully incorporated into the open-source AFL++ framework
Development Timeline
- 2019-2020: Initial development as part of IPA MITOU Project
- 2020-2021: Extended and productized at Ricerca Security
- 2021: Public release and integration with AFL++
Team
- Developed with Akira Moroo (@retrage) and Yuichi Sugiyama (@mmxsrup)
- Supported by the Acquisition, Technology & Logistics Agency (ATLA)
Impact
This project demonstrates practical application of hardware features for software security testing, particularly valuable for:
- Embedded systems security
- IoT device vulnerability assessment
- Firmware security analysis
- Binary-only vulnerability discovery
Recognition
- Part of the work that earned the MITOU Super Creator award
- Successfully transitioned from research project to production tool
- Contributed to the open-source security community through AFL++ integration
