INSTILLER: Towards Efficient and Realistic RTL Fuzzing

Fuente: arXiv
Guardado en:
Detalles Bibliográficos
Autores principales: Zhang, Gen, Wang, Pengfei, Yue, Tai, Liu, Danjun, Guo, Yubei, Lu, Kai
Formato: Preprint
Publicado: 2024
Materias:
Acceso en línea:
Etiquetas: Agregar Etiqueta
Sin Etiquetas, Sea el primero en etiquetar este registro!
_version_ 1866916109991542784
author Zhang, Gen
Wang, Pengfei
Yue, Tai
Liu, Danjun
Guo, Yubei
Lu, Kai
author_facet Zhang, Gen
Wang, Pengfei
Yue, Tai
Liu, Danjun
Guo, Yubei
Lu, Kai
contents Bugs exist in hardware, such as CPU. Unlike software bugs, these hardware bugs need to be detected before deployment. Previous fuzzing work in CPU bug detection has several disadvantages, e.g., the length of RTL input instructions keeps growing, and longer inputs are ineffective for fuzzing. In this paper, we propose INSTILLER (Instruction Distiller), an RTL fuzzer based on ant colony optimization (ACO). First, to keep the input instruction length short and efficient in fuzzing, it distills input instructions with a variant of ACO (VACO). Next, related work cannot simulate realistic interruptions well in fuzzing, and INSTILLER solves the problem of inserting interruptions and exceptions in generating the inputs. Third, to further improve the fuzzing performance of INSTILLER, we propose hardware-based seed selection and mutation strategies. We implement a prototype and conduct extensive experiments against state-of-the-art fuzzing work in real-world target CPU cores. In experiments, INSTILLER has 29.4% more coverage than DiFuzzRTL. In addition, 17.0% more mismatches are detected by INSTILLER. With the VACO algorithm, INSTILLER generates 79.3% shorter input instructions than DiFuzzRTL, demonstrating its effectiveness in distilling the input instructions. In addition, the distillation leads to a 6.7% increase in execution speed on average.
format Preprint
id arxiv_https___arxiv_org_abs_2401_15967
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle INSTILLER: Towards Efficient and Realistic RTL Fuzzing
Zhang, Gen
Wang, Pengfei
Yue, Tai
Liu, Danjun
Guo, Yubei
Lu, Kai
Cryptography and Security
Software Engineering
Bugs exist in hardware, such as CPU. Unlike software bugs, these hardware bugs need to be detected before deployment. Previous fuzzing work in CPU bug detection has several disadvantages, e.g., the length of RTL input instructions keeps growing, and longer inputs are ineffective for fuzzing. In this paper, we propose INSTILLER (Instruction Distiller), an RTL fuzzer based on ant colony optimization (ACO). First, to keep the input instruction length short and efficient in fuzzing, it distills input instructions with a variant of ACO (VACO). Next, related work cannot simulate realistic interruptions well in fuzzing, and INSTILLER solves the problem of inserting interruptions and exceptions in generating the inputs. Third, to further improve the fuzzing performance of INSTILLER, we propose hardware-based seed selection and mutation strategies. We implement a prototype and conduct extensive experiments against state-of-the-art fuzzing work in real-world target CPU cores. In experiments, INSTILLER has 29.4% more coverage than DiFuzzRTL. In addition, 17.0% more mismatches are detected by INSTILLER. With the VACO algorithm, INSTILLER generates 79.3% shorter input instructions than DiFuzzRTL, demonstrating its effectiveness in distilling the input instructions. In addition, the distillation leads to a 6.7% increase in execution speed on average.
title INSTILLER: Towards Efficient and Realistic RTL Fuzzing
topic Cryptography and Security
Software Engineering
url https://arxiv.org/abs/2401.15967