01《Detecting Software Attacks on Embedded IoT Devices》随笔

news2025/2/23 0:28:00

2023.08.05
今天读的是一篇博士论文
论文传送门:Detecting Software Attacks on Embedded IoT Devices
看了很长时间,发现有一百多页,没看完,没看到怎么实现的。

摘要

联网设备的增加使得嵌入式设备成为各种网络攻击的诱人目标,攻击者可以通过访问和控制远程设备进行恶意活动。这些物联网设备可以被攻击者利用,在不需要任何物理硬件访问的情况下破坏受害者平台的安全性。
为了检测此类软件攻击并确保可靠和值得信赖的物联网应用程序,验证设备未受到恶意软件的侵害,并断言程序的正确执行至关重要。在文献中,已经提出了基于远程认证、异常检测、控制流和数据流完整性的解决方案来检测软件攻击。然而,这些解决方案在目标部署和攻击检测方面的适用性有限,我们对此进行了彻底的检查。
在本文中,我们提出了三种检测嵌入式物联网设备软件攻击的解决方案。特别是,我们首先提出了SWARNA,它使用远程认证来验证嵌入式设备的大型网络,并确保设备上的应用软件不被篡改。验证软件的完整性可以保留设备的静态属性。为了保护设备免受各种软件攻击,还必须确保程序的运行时执行符合预期。因此,我们广泛关注于检测程序执行期间可能发生的内存损坏攻击。此外,我们提出了在嵌入式物联网设备上运行的安全程序异常检测SPADE和OPADE,分别使用深度学习和机器学习算法来检测各种运行时软件攻击。我们在真实的嵌入式硬件和物联网测试平台上评估和分析所有提出的解决方案。我们还进行了全面的安全性分析,以展示所建议的解决方案如何检测各种软件攻击。
在这篇论文中,我们提出了三种识别嵌入的ios设备软件的方法。首先我们介绍SWARNA,它用远程照相功能审查了一个大规模嵌入设备网络,确保在设备上没有被操纵。这个机器用了静态性质为了保护设备免受各种软件攻击,必须确保所执行的项目如预期的那样在持续时间内完成。因此,我们主要致力于识别对系统运行过程中可能出现的内存的攻击。我们呈现多种多样的软件突击队和OPADE,让他们可以安全检测嵌入的特别智能设备中的项目异常情况,并使用深层学习算法来识别整个运行过程中软件的攻击行为。

介绍

  • 软件的攻击:
    上述攻击要么篡改应用程序二进制文件,要么破坏运行时内存,以获得对设备的控制。
  • 防御的方法:
    远程认证、控制流完整性(CFI)和程序异常检测是目前广泛提倡的检测各种软件攻击的技术。远程认证是远程验证在嵌入式设备上运行的软件的完整性或程序的运行时控制流的一种重要方法。在远程认证中,外部可信实体验证物联网设备,并且本质上是被动的。CFI是一种预防机制,它监视设备上程序在执行时的控制流,确保它遵循预先确定的合法路径。
    然而,CFI和远程认证不能捕获程序的非确定性运行时特征(例如,在运行时执行if-else语句)。另一方面,程序异常检测技术使用各种特征来捕获程序的行为。即使运行时行为与正常执行相比有细微的偏差,也会被标记为异常。
  • 挑战
    为了确保物联网应用真正值得信赖和可靠,必须
    (i)确保设备不受恶意软件的侵害
    (ii)断言嵌入式控制程序的正确执行
    (iii)最后确保所提议的攻击检测机制本身是安全的。已经提出了广泛的解决方案来检测嵌入式物联网设备的软件攻击。
    由于嵌入式设备上的资源有限,确保设备安全的目标通常被转移到具有无限资源的远程实体

贡献

  • 攻击分类:在过去的几十年里,我们可以在物联网设备上找到各种攻击。在本文中,我们定义并将攻击分为不同的类别,这有助于我们设计针对攻击类的防御解决方案。
  • 基于软件的远程网络认证:为了满足物联网部署规模和数量的增长,我们提出了基于软件的远程网络认证(SWARNA),这是一种用于验证远程物联网设备群的系统。SWARNA建立了一个确定性的通信路径,强制跨无线多跳物联网网络的时间限制,用于认证目的。
  • 安全程序异常检测:为了在程序运行时检测内存损坏攻击,我们提出了一种用于嵌入式物联网设备(SPADE)的安全程序异常检测。
  • 在线程序异常检测:我们首先介绍行为控制异常(BCA),这是一种在程序执行过程中看到的异常,通过修改程序的一个或几个控制方面来影响程序的行为。我们进一步将异常分为控制流异常(CFA)、控制分支异常(CBA)和控制强度异常(CIA)。
    我们为嵌入式物联网设备(OPADE)设计了一个在线程序异常检测。OPADE通过其精确的调用位置、调用函数调用的次数和使用硬件计数器的循环执行周期计数来捕获函数调用序列。OPADE实现了一种基于分层时间记忆(HTM)的异常检测技术,该技术支持序列和持续学习,不需要像其他神经网络算法那样单独收集数据和进行训练。与SPADE类似,OPADE在可信执行环境中运行。我们评估了OPADE在检测bca时的异常检测精度及其开销。

论文声明

在本文中,我们介绍了通过保护嵌入式物联网设备来构建值得信赖和可靠的物联网应用的方法。我们提出了一个系统来共同验证远程物联网设备上运行的软件的完整性,并进一步提出了两种解决方案,这两种解决方案在设计上是安全的,可以检测在程序运行时执行期间发生的内存损坏攻击,并且与最先进的检测技术相比,可以在运行时检测对嵌入式设备的更广泛的攻击。

路线图

背景

对嵌入式物联网设备的攻击

在本章中,我们提供了对理解本论文至关重要的攻击和基本防御机制的基本信息。首先,我们在2.1节中对针对嵌入式物联网设备的攻击进行了大致分类。然后,我们在2.2节中详细描述了软件攻击,因为本文的重点是检测软件攻击。我们将软件攻击大致分为软件篡改攻击和内存破坏攻击,分别在2.2.1节和2.2.2节中描述。我们还回顾了最突出的内存损坏攻击:面向控制和面向数据的攻击。最后,在2.3节中,我们解释了用于检测软件攻击的远程认证的工作原理。
我们将针对嵌入式物联网设备的攻击大致分为两类:软件攻击和硬件攻击。图1显示了针对嵌入式物联网的攻击分类。根据文献,我们将仅损害设备软件(即驻留在设备上的代码和数据)的攻击分类为软件攻击。对于软件攻击,攻击者可以利用代码中的漏洞来控制目标设备,从而可能导致灾难性的后果。攻击者可以远程执行软件攻击,使其成为一种简单而广泛的攻击选择。
在这里插入图片描述
捕获设备并对其进行物理篡改的攻击被归类为硬件攻击[61,71]。使用昂贵和复杂的设备直接访问设备内部组件的硬件攻击被称为侵入性攻击。使用低成本电气工程工具提取存储在设备上的加密材料的硬件攻击被称为非侵入性攻击。著名的侧信道攻击是一种非侵入性攻击,它利用电磁辐射、电力或时间在设备正常运行期间提取敏感数据。
本文以软件攻击为研究重点,提出了几种检测各种软件攻击的解决方案。因此,在接下来的章节中,我们将对软件攻击进行深入的描述。

软件攻击

当攻击者修改设备上的代码或数据时,攻击被定义为软件攻击。我们进一步将软件攻击分类为软件篡改攻击和内存损坏攻击。

软件篡改攻击

这里的攻击者能够利用源代码或部署设置中的漏洞,在部署之前或之后修改应用程序二进制文件。除了应用软件,攻击者还可以修改设备上的任何配置设置。但是,应用程序二进制文件或设备配置通常驻留在设备的非易失性存储器中(在设备重新启动后仍然存在),并且在程序执行期间不会更改。
因此,我们将仅篡改设备静态属性的攻击定义为软件篡改攻击。

内存损坏攻击(程序运行时攻击)

在程序执行期间,应用程序生成各种运行时信息,这些信息存储在易失性内存中(在设备重新启动时重置)。通常在嵌入式设备中,运行时信息存储在位于易失性RAM上的堆栈或堆中。攻击者可以利用应用程序软件中的漏洞(如缓冲区溢出)来修改应用程序的运行时数据。因此,我们将修改运行时内存内容的攻击归类为内存损坏攻击。由于内存损坏攻击发生在应用程序执行期间,在文献中,内存损坏攻击也被称为运行时攻击
根据内存中修改的数据,内存损坏攻击可以进一步分为面向控制的攻击面向数据的攻击

面向控制的攻击

在面向控制的攻击中,攻击者在程序执行期间修改驻留在内存中的程序的控制信息(例如,返回地址、代码指针)。攻击者的目的是转移程序的预期执行流。通过破坏控制流,攻击者可以触发一个或多个恶意操作,例如访问敏感数据、非法执行程序或注入恶意软件。
面向控制的攻击大致可分为:
(1)代码注入攻击
(2)代码重用攻击。
在代码注入中,攻击者首先利用

面向数据的攻击

在文献中,几种类型的攻击破坏非控制数据以改变程序的行为。面向数据的攻击可分为
(1)直接数据操作
(2)面向数据的编程
在直接数据操纵中,攻击者直接改变非控制数据变量以达到所需的恶意目的。在这里,攻击者应该知道目标变量的精确地址。二进制分析或导出存储在存储器中的随机地址可以用来获得一个变量的目标地址。然后攻击者利用程序漏洞覆盖数据变量的内存位置。

防御:远程认证

首先,验证者创建一个唯一的挑战,并向远程证明者发送一个证明请求。
接下来,证明者执行一个证明例程来计算并向验证者发送一个证明响应。
最后,验证者将在认证响应中收到的证明者的状态与设备的预期状态进行比较。如果结果匹配,则验证者声明远程设备为可信设备;否则,远端设备不受信任。

文献综述

使用远程认证检测软件篡改攻击

内存损坏攻击防御

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/846517.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

springboot vue 初步集成onlyoffice

文章目录 前言一、vue ts1. 安装依赖2. onlyoffice组件实现3. 使用组件4. 我的配置文件 二、springboot 回调代码1. 本地存储 三、效果展示踩坑总结 前言 对接onlyoffice,实现文档的预览和在线编辑功能。 一、vue ts 1. 安装依赖 npm install --save onlyoffi…

【个人环境问题排查】解决一个离谱的BurpSuite Professional代理问题(无法访问此网站,Whitelabel Error Page)

最近打开Burp的时候,发现内置浏览器访问不任何网站了,用证书的方式在普通浏览器也访问不了,非常疑惑,最后发现竟是一个非常离谱的问题。 问题 问题如上述,这里贴一下截图,两种情况。 一种是无法访问此网站…

(6)将Mission Planner连接到Autopilot

文章目录 前言 6.1 设置连接 6.2 故障处理 6.3 复合连接的故障处理 6.4 相关话题 前言 本文解释了如何将 Mission Planner 连接到自动驾驶仪上,以便接收遥测数据并控制飞行器。 !Note 对于已有 ArduPilot 固件的安装,或没有现有 Ardu…

Linux 目录结构

初学Linux,首先需要弄清Linux 标准目录结构 / root --- 启动Linux时使用的一些核心文件。如操作系统内核、引导程序Grub等。home --- 存储普通用户的个人文件 ftp --- 用户所有服务httpdsambauser1user2bin --- 系统启动时需要的执行文件(二进制&#x…

Idea配置Scala开发环境

1.首先安装scala插件: File--->Setting---->plugins,在输入框中输入scala,然后点击“Install”即可安装scala,需要稍微等待几分钟。 2 创建项目: File ---->new---->project-----Maven--->Next----输入名称(test…

【雕爷学编程】Arduino动手做(193)---移远 BC20 NB+GNSS模块11

37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的&#x…

【具身智能】前沿思考与总结(DALL-E-Bot TinyBot)

1. DALL-E-Bot DALL-E-Bot: Introducing Web-Scale Diffusion Models to Robotics (robot-learning.uk) **(2023-05-04)**DALL-E-Bot: Introducing Web-Scale Diffusion Models to Robotics DALL-E-Bot:将网络规模的扩散模型引入机器人 第…

如何实现环卫项目运营的数字化管理,达到企业降本增效的目的?

数字环卫是指利用数字技术和数据驱动的方法来改善环卫流程和管理。数字环卫的底层逻辑在于利用技术来优化运营、提高效率并降低环卫项目管理成本。如何实现环卫工程运营数字化管理,达到降本增效的目标: 1.数据收集和分析:实施数据收集机制&a…

如今市面上有哪些优秀的PCB设计软件

PCB设计软件作为一个电子设计行业中重要的工具,其作用不言而喻。随着电子行业的快速发展,各种各样的新型PCB设计软件层出不穷,而选择一款适合自己使用的PCB设计软件,已成为电子工程师不可避免的任务。 下面我们将为大家介绍常见的…

Java开发 - Redis事务怎么用?

前言 最近博主感觉捅了Redis窝,从Redis主从,哨兵,集群,集群原理纷纷讲了一遍,不知道大家都学会了多少,想着送佛送到西,不如再添一把火,所以今天带给大家的博客是Redis事务&#xff…

2.4g遥控台灯开发方案,采用宇凡微2.4g合封芯片

普通台灯光源光谱固定且有频闪,长时间使用容易导致眼部疲劳。宇凡微推出的护眼台灯方案,具有无极色温调节,光线柔和不刺眼、无频闪,具有多种功能模式,可用2.4g遥控器调节。 一、遥控护眼台灯方案介绍 护眼台灯方案采用…

Progress in Neurobiology:大脑活动的自主模式

摘要 自主神经系统和中枢神经系统之间的相互作用对人脑功能和健康的相关性尚不清楚,尤其是当这两个系统都受到睡眠剥夺(SD)的挑战时。本研究测定了健康参与者的大脑活动(采用fMRI)、脉冲和呼吸信号,以及β-淀粉样蛋白负荷(采用PET)。研究结果发现&#…

Jtti:Ubuntu静态IP地址怎么配置

在 Ubuntu 中配置静态 IP 地址需要编辑网络配置文件。以下是在 Ubuntu 20.04 版本中配置静态 IP 地址的步骤: 打开终端,以管理员身份登录或使用 sudo 权限。 使用以下命令打开网络配置文件进行编辑: sudo nano /etc/netplan/00-installer-…

使用PhpSpreadsheet 导出excel文件根据数据判断设置文字颜色

public function index(){//接收前端参数 查询数据出来 目前演示为测试数据$data [["id" > 1,"name" > "小黄","age" > "10"],["id" > 2,name > "小红","age" > "11…

Python(Web时代)——jinja2模板

简介 Jinja2是Flask框架默认支持的模板引擎,是python的web项目中被广泛应用的一种模板引擎,jinja2的作者与Flask是同一个人。 jinja2具有以下特点: 非常灵活,提供了控制结构、表达式与继承等 性能好 可读性强 渲染一个模板&a…

python_day19_递归

拓展 import osdef test_os():# 列出路径下内容print(os.listdir("D:/阿里云"))# 指定路径是否为文件夹print(os.path.isdir("D:/阿里云"))# 指定路径是否存在print(os.path.exists("D:/阿里云"))if __name__ __main__:test_os()递归查文件 每…

Web安全——Burp Suite基础上

Burp Suite基础 一、Burp Suite安装和环境配置如何命令行启动Burp Suite 二、Burp Suite代理和浏览器设置FireFox设置 三、如何使用Burp Suite代理1、Burp Proxy基本使用2、数据拦截与控制3、可选项配置Options客户端请求消息拦截服务器端返回消息拦截服务器返回消息修改正则表…

杰理-改变文字背景颜色

杰理-改变文字背景颜色 text->elm.css.background_color RGB565(100,0,0);

SIMATIC WINCC V8.0安装教程(Win11系统)

SIMATIC WINCC V8.0安装教程(Win11系统) 1. 首先,安装之前需要检查软件与操作系统的兼容性,否则在安装或者使用过程中会出现各种问题。 以WinCC V8.0为例,兼容性列表列出与之兼容的操作系统版本以及注意事项,图中打钩的部分为兼容,没有打钩的部分为不兼容。 2. 在window…

贝叶斯学习

贝叶斯 贝叶斯学习的背景贝叶斯定理举例 概览选择假设— MAPMAP举例 选择假设 — 极大似然 MLML 举例: 抛硬币问题 极大似然 & 最小二乘Nave Bayesian Classifier (朴素贝叶斯分类器)举例1:词义消歧 (Word Sense Disambiguation)举例 2: 垃圾邮件过滤 从垃圾邮件…