当前位置: 首页 > news >正文

Karonte: Detecting Insecure Multi-binary Interactions in Embedded Firmware论文分享

原文链接:Karonte: Detecting Insecure Multi-binary Interactions in Embedded Firmware | IEEE Conference Publication | IEEE Xplore

低功耗、单一用途的嵌入式设备(如路由器和物联网设 备)已经变得无处不在。虽然它们自动化并简化了用户生活的许多 方面,但最近的大规模攻击表明,它们的数量对互联网基础设施 构成了严重威胁。不幸的是,这些系统上的软件依赖于硬件,并 且通常在具有非标准配置的独特、最小的环境中执行,这使得安 全性分析尤其具有挑战性。许多现有设备通过使用多个二进制来 实现它们的功能。这种多二进制服务实现使得当前的静态和动态 分析技术无效或低效,因为它们不能识别和充分建模各种可执行 程序之间的通信。在本文中,我们介绍了 KARONTE,一种静态分析 方法,能够通过建模和跟踪多二进制交互来分析嵌入式设备固 件。我们的方法在二进制文件之间传播污点信息,以检测不安全 的交互并识别漏洞。我们首先在来自不同厂商的 53 个固件样本上 评估了 KARONTE,表明我们的原型工具可以成功地跟踪和约束多二 进制交互。这导致了 46 个零日错误的发现。然后,我们对 899 个 不同的样本进行了大规模实验,表明 KARONTE 可以很好地适应不 同大小和复杂性的固件样本。

我们实现了 KARONTE,并使用两个数据集对其进行了 评估:53 个当前版本的固件样本和 899 个从相关工作中收 集的样本[5]。我们利用以前的数据集来深入研究我们方 法的每个阶段,并评估其查找 bug 的有效性。在我们的 实验中,我们表明我们的方法成功地识别了不同固件组 件之间的数据流,正确地传播了污点信息。这使我们能 够发现潜在的易受攻击的数据流,发现了 46 个零日软件 错误,并重新发现了另外 5 个 n 日错误,证明了我们的 方法在不同设计的复杂固件上的有效性(即,单片嵌入式 操作系统和嵌入式 Linux 发行版)。毫无疑问,一个可靠 的单二进制静态分析技术也可以发现这些漏洞,但它会 有大量的误报,使得分析在现实世界中站不住脚。在我 们对 KARONTE 的多二进制分析方法和以单二进制模式(即 禁用二进制数据流间跟踪)运行的相同分析进行的比较 中,每个样本产生的警报数量从平均 2 个增加到平均 722 个:KARONTE 提供了两个数量级的警报减少,从而降低了 误报率。如我们的评估所示,我们估计验证由单个二进 制分析产生的所有警报可能需要安全分析师大约四个月 的工作。另一方面,由我们的原型生成的警报的验证花 费了大约 10 个小时的累积时间。 最后,我们利用第二个更大的数据集来研究我们的工具 的性能,表明它能够在不同大小和复杂性的固件样本上很 好地扩展。 总之,我们做出了以下贡献: • 我们引入静态分析技术的新组合来执行多二进制污 点分析。去做 因此,我们设计了一种新的技术来跨多个二进制文 件精确地应用和传播污点信息。 • 我们提出了 KARONTE,一种新的静态分析方法来识别 二进制文件之间的不安全交互。KARONTE 从根本上减 少了误报的数量,使现实世界的固件分析变得切实可 行。 • 我们在 53 个真实世界的固件样本上实现并评估了我 们的 KARONTE 原型,表明我们的工具可以成功地在 多个二进制文件中传播污点信息,从而发现 46 个未 知(零日)错误,并且很少产生误报。然后,我们利 用 899 个固件样本的更大数据集来评估我们工具的 性能。 • 通过我们的工具获得的结果被另一所大学的独立研究 人员彻底验证。 本着开放科学的精神,我们发布了原型的实现和 docker 映 像来复制我们的工作环境。

我们提出了 KARONTE,一种检测嵌入式固件组件间不安全 交互的方法。KARONTE 利用新颖的静态分析技术来大幅减少 传统二进制分析技术在分析现实世界固件时产生的误报。 我 们 在 53 个 物 联 网 产 品 的 最 新 固 件 上 广 泛 评 估 了 KARONTE,显示了其有效性。我们的原型产生了 87 个警报 (比不考虑组件间交互的方法减少了两个数量级),其中我 们发现了 46 个以前未知的零日错误。最后,我们展示了 KARONTE 使用不同大小和复杂性的 899 个固件样本的集合可 以很好地扩展。

http://www.dtcms.com/a/300619.html

相关文章:

  • LabelMe数据标注软件介绍和下载
  • UNet 改进(38):融合多尺度输入与可变形卷积、门控特征融合的医学图像Unet分割网络
  • Django实时通信实战:WebSocket与ASGI全解析(下)
  • Flutter开发实战之测试驱动开发
  • 金融科技中的跨境支付、Open API、数字产品服务开发、变革管理
  • KNN算法实战:手写数字识别详解
  • 【自动化运维神器Ansible】Ansible常用模块之archive模块详解
  • 2024-2025华为ICT大赛中国区 实践赛网络赛道(高教组)全国总决赛 理论部分真题+解析
  • 零基础,如何入手学习SAP?
  • CentOS网卡未被托管解决记录
  • PiscCode实现从图像到字符艺术
  • Word和WPS文字如何制作分栏试卷?想分几栏分几栏
  • 6.Pinia快速入门
  • [10月考试] A
  • Flutter实现列表功能
  • 进程管理的详细总结
  • Qt GUI缓存实现
  • 实战演练2:实战演练之机器阅读理解(上)
  • AI Coding IDE 介绍:Cursor 的入门指南
  • Cgroup 控制组学习(二)
  • 人工智能与城市:城市生活的集成智能
  • ProtoBuf序列化技术详解与实战指南
  • Model 组件的基本组成
  • vuhub jangow-01-1.0.1靶场攻略
  • 最优估计准则与方法(6)递推最小二乘估计(RLS)_学习笔记
  • 阻止网页重定向
  • 昇思学习营-【模型推理和性能优化】学习心得_20250730
  • 【QT入门到晋级】window opencv安装及引入qtcreator(包含两种qt编译器:MSVC和MinGW)
  • 系统整理Python的循环语句和常用方法
  • RabbiteMQ安装-ubuntu