Karonte 是一款静态分析工具,用于检测嵌入式固件中的多二进制漏洞。
master 分支提供 Karonte 的最新版本,已移植到 Python 3。如需查看我们论文中的原始实现和实验,请切换到 IEEE-SP-20 分支,并查看我们的 Docker 容器。
我们在以下研究论文中介绍了我们的方法和发现:
KARONTE: 检测嵌入式固件中的不安全多二进制交互
[PDF]
Nilo Redini, Aravind Machiry, Ruoyu Wang, Chad Spensky, Andrea Continella, Yan Shoshitaishvili, Christopher Kruegel, Giovanni Vigna.
载于 IEEE 安全与隐私研讨会 (S&P) 论文集,2020年5月
如果您在科学出版物中使用了 Karonte,我们将不胜感激,请使用以下 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}
}
主要有四个目录:
要运行 Karonte,请从根目录执行以下命令:
概要 python tool/karonte.py JSON_CONFIG_FILE [LOG_NAME]
描述 对 JSON_CONFIG_FILE 所表示的固件样本运行 Karonte,并将结果保存到 LOG_NAME 中
示例 python tool/karonte.py config/NETGEAR/r_7800.json 对 R7800 NETGEAR 固件运行 Karonte
默认情况下,结果保存到 /tmp/ 下,文件名后缀为 Karonte.txt。
如需查看生成的告警,请运行:
python tool/pretty_print.py LOG_NAME
您可以通过此链接获取我们用于评估 Karonte 的数据集。