
Karonte es una herramienta de análisis estático para detectar vulnerabilidades multibinario en firmware embebido.
Karonte es una herramienta de análisis estático para detectar vulnerabilidades multi-binario en firmware empotrado.
La rama master proporciona la última versión de Karonte, adaptada a Python 3. Para la implementación original y los experimentos presentados en nuestro artículo, consulte la rama IEEE-SP-20 y eche un vistazo a nuestro contenedor Docker.
Presentamos nuestro enfoque y los hallazgos de este trabajo en el siguiente artículo de investigación:
KARONTE: Detecting Insecure Multi-binary Interactions in Embedded Firmware
[PDF]
Nilo Redini, Aravind Machiry, Ruoyu Wang, Chad Spensky, Andrea Continella, Yan Shoshitaishvili, Christopher Kruegel, Giovanni Vigna.
En las Actas del Simposio IEEE sobre Seguridad y Privacidad (S&P), mayo de 2020
Si utiliza Karonte en una publicación científica, agradeceríamos las citas utilizando esta entrada Bibtex:
@inproceedings{redini_karonte_20,
author = {Nilo Redini and Aravind Machiry and Ruoyu Wang and Chad Spensky and Andrea Continella and Yan Shoshitaishvili and Christopher Kruegel and Giovanni Vigna},
booktitle = {In Proceedings of the IEEE Symposium on Security & Privacy (S&P)},
month = {May},
title = {KARONTE: Detecting Insecure Multi-binary Interactions in Embedded Firmware},
year = {2020}
}
Hay cuatro directorios principales:
Para ejecutar Karonte, desde el directorio raíz, simplemente ejecute:
SINOPSIS python tool/karonte.py JSON_CONFIG_FILE [LOG_NAME]
DESCRIPCIÓN Ejecuta Karonte en la muestra de firmware representada por JSON_CONFIG_FILE y guarda los resultados en LOG_NAME
EJEMPLO python tool/karonte.py config/NETGEAR/r_7800.json Ejecuta Karonte en el firmware R7800 de NETGEAR
Por defecto, los resultados se guardan en /tmp/ con el sufijo Karonte.txt.
Para inspeccionar las alertas generadas, simplemente ejecute:
python tool/pretty_print.py LOG_NAME
Puede obtener el conjunto de datos que utilizamos para evaluar Karonte en este enlace.