{"id":13642307,"url":"https://github.com/ucsb-seclab/karonte","last_synced_at":"2025-04-20T16:31:36.117Z","repository":{"id":41326499,"uuid":"215886167","full_name":"ucsb-seclab/karonte","owner":"ucsb-seclab","description":"Karonte is a static analysis tool to detect multi-binary vulnerabilities in embedded firmware","archived":false,"fork":false,"pushed_at":"2021-09-18T17:15:47.000Z","size":1242,"stargazers_count":391,"open_issues_count":11,"forks_count":60,"subscribers_count":22,"default_branch":"master","last_synced_at":"2024-11-09T13:38:02.722Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ucsb-seclab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-10-17T21:10:07.000Z","updated_at":"2024-11-02T12:23:52.000Z","dependencies_parsed_at":"2022-08-10T01:54:19.664Z","dependency_job_id":null,"html_url":"https://github.com/ucsb-seclab/karonte","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ucsb-seclab%2Fkaronte","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ucsb-seclab%2Fkaronte/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ucsb-seclab%2Fkaronte/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ucsb-seclab%2Fkaronte/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ucsb-seclab","download_url":"https://codeload.github.com/ucsb-seclab/karonte/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249926084,"owners_count":21346478,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-02T01:01:29.708Z","updated_at":"2025-04-20T16:31:36.106Z","avatar_url":"https://github.com/ucsb-seclab.png","language":"Python","funding_links":[],"categories":["Python","Python (1887)","Software Tools","Projects :rocket:"],"sub_categories":["Firmware Taint Analysis"],"readme":"# Karonte\n[![License](https://img.shields.io/github/license/angr/angr.svg)](https://github.com/angr/angr/blob/master/LICENSE)\n\n\nKaronte is a static analysis tool to detect multi-binary vulnerabilities in embedded firmware.\n\nThe `master` branch provides the latest version of Karonte, ported to python3. For the original implementation and experiments presented in our paper, please checkout the `IEEE-SP-20` branch and have a look at our [docker container](https://hub.docker.com/r/badnack/karonte).\n\n\n## Overview\n\n\u003cimg src=\"overview.png\" width=\"60%\"\u003e\n\n## Research paper\n\nWe present our approach and the findings of this work in the following research paper:\n\n**KARONTE: Detecting Insecure Multi-binary Interactions in Embedded Firmware** \n[[PDF]](https://www.badnack.it/static/papers/University/karonte.pdf)  \nNilo Redini, Aravind Machiry, Ruoyu Wang, Chad Spensky, Andrea Continella, Yan Shoshitaishvili, Christopher Kruegel, Giovanni Vigna.  \n*In Proceedings of the IEEE Symposium on Security \u0026 Privacy (S\u0026P), May 2020*\n\nIf you use *Karonte* in a scientific publication, we would appreciate citations using this **Bibtex** entry:\n``` tex\n@inproceedings{redini_karonte_20,\n author    = {Nilo Redini and Aravind Machiry and Ruoyu Wang and Chad Spensky and Andrea Continella and Yan Shoshitaishvili and Christopher Kruegel and Giovanni Vigna},\n booktitle = {In Proceedings of the IEEE Symposium on Security \u0026 Privacy (S\u0026P)},\n month     = {May},\n title     = {KARONTE: Detecting Insecure Multi-binary Interactions in Embedded Firmware},\n year      = {2020}\n}\n```\n\n## Repository Structure\n\nThere are four main directories:\n- **tool**: Karonte python files\n- **firmware**: Karonte firmware dataset\n- **configs**: configuration files to analyze the firmware samples in the dataset\n- **eval**: scripts to run the various evaluations on Karonte\n- **karonte-viz**: script to visualize the results produced by Karonte\n\n## Run Karonte\n\nTo  run karonte, from the root directory, just run\n\u003e **SYNOPSIS**\n\u003e \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp; python **tool/karonte.py** JSON_CONFIG_FILE [LOG_NAME]\n\u003e\n\u003e **DESCRIPTION**\n\u003e \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;runs karonte on the firmware sample represented by the JSON_CONFIG_FILE, and  save the results in LOG_NAME\n\u003e\n\u003e **EXAMPLE**\n\u003e \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;python tool/karonte.py config/NETGEAR/r_7800.json\n\u003e \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;It runs karonte on the R7800 NETGEAR firmware\n\nBy default, results are saved in **/tmp/** with the suffix **Karonte.txt**.\n\nTo inspect the generated alerts, just run:\n\u003e \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp; python **tool/pretty_print.py** LOG_NAME\n\n## Dataset\nYou can obtain the dataset that we used to evaluate Karonte at this [link](https://drive.google.com/file/d/1-VOf-tEpu4LIgyDyZr7bBZCDK-K2DHaj/view?usp=sharing).\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fucsb-seclab%2Fkaronte","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fucsb-seclab%2Fkaronte","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fucsb-seclab%2Fkaronte/lists"}