
Karonte è uno strumento di analisi statica per rilevare vulnerabilità multi-binario nel firmware embedded.
Karonte è uno strumento di analisi statica per rilevare vulnerabilità multi-binario nei firmware embedded.
Il branch master fornisce l'ultima versione di Karonte, portata a python3. Per l'implementazione originale e gli esperimenti presentati nel nostro articolo, consulta il branch IEEE-SP-20 e dai un'occhiata al nostro docker container.
Presentiamo il nostro approccio e i risultati di questo lavoro nel seguente articolo di ricerca:
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.
Negli Atti del IEEE Symposium on Security & Privacy (S&P), maggio 2020
Se usi Karonte in una pubblicazione scientifica, ti saremmo grati se citassi utilizzando questa voce 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}
}
Ci sono quattro directory principali:
Per eseguire Karonte, dalla directory root, basta eseguire
SINOSSI python tool/karonte.py JSON_CONFIG_FILE [LOG_NAME]
DESCRIZIONE esegue Karonte sul campione di firmware rappresentato dal JSON_CONFIG_FILE e salva i risultati in LOG_NAME
ESEMPIO python tool/karonte.py config/NETGEAR/r_7800.json Esegue Karonte sul firmware R7800 NETGEAR
Per impostazione predefinita, i risultati vengono salvati in /tmp/ con il suffisso Karonte.txt.
Per ispezionare gli avvisi generati, basta eseguire:
python tool/pretty_print.py LOG_NAME
Puoi ottenere il dataset che abbiamo usato per valutare Karonte a questo link.