深入探讨IoT安全:定义新方法、创建结构化流程及分析物联网生态系统攻击面
在上一篇文章中,我们了解了物联网技术的基本架构。在这篇文章中,我将讨论物联网安全。在此过程中,我们将尝试定义一种新的方法来理解物联网安全,并创建一个结构化的流程来促进识别。了解物联网相关的攻击研究和渗透测试。
基于我们上面定义的物联网架构,我们现在可以清楚地分离物联网系统的各个组件,并尝试为每个组件定义攻击面。各种组件的攻击面组合起来将形成一个整体的物联网生态系统。系统攻击面。
我之所以将其称为物联网生态系统而不是物联网产品,是因为它实际上是一个由不同组件组成的生态系统,这些组件相互通信并解决特定的现实问题。我们首先详细讨论每个组件的攻击面。如果我们以通信作为攻击面,总体攻击面可以分为以下四类:
移动终端
云
通讯水平
设备级
OWASP 在物联网安全方面也做了很多工作。他们还定义了物联网架构的攻击面,值得仔细阅读(点击此处查看)。您可以通过结合不同的观点来形成自己的观点。
移动攻击面
移动终端是物联网用户了解物理设备状态的重要接口。手机App与物联网系统之间的命令发送和数据读取是与物联网通信的窗口。以下是物联网系统移动端可能面临的一些攻击面:
存储介质
认证方式
加密手段
通讯方式
本机移动系统漏洞
云攻击面
物联网系统不仅包括硬件,云服务对于物联网服务同样重要。它是产品线各个实例的集合,实例中包含所有最终用户的相关数据。同时,云服务还具有一定的命令执行能力,一旦攻击者成功渗透设备,就能够对相关部署设备形成管理控制,这将造成很大的危害。一般来说,云服务的攻击面主要体现在所提供服务的接口上:
存储介质
认证方式
加密手段
通讯方式
API接口
本机 Web 和云架构中的漏洞
硬件设备攻击面
接下来是物联网技术的关键角色——硬件设备,它是物理世界的接口体现,也是虚拟数字世界的通信媒介。相关的数据转换首先会经过硬件设备。由于其本身存储了与用户相关的敏感信息(如家庭统计、身体统计、个人信息等),因此这种用户隐私存储机制也存在一些争议。未来,不同的硬件设备还可以利用用户的电子钱包或绑定账户实现产品购买或远程维护等服务。其攻击面可能包括:
存储介质
认证方式
加密手段
通讯方式
传感接口
外围接口
硬件接口
人机交互界面
通信方式攻击面
虽然通信攻击不是有形的攻击,但理想的物理攻击面将是通信接口以及负责通信的各个驱动程序和固件,但这只是图片的一部分,因为无数的通信协议将在有线和无线网络上协同工作。无线媒体。作用于物联网生态系统。以下是通信方法可能的攻击面:
认证方式
加密手段
偏离协议标准
协议执行异常
硬件接口允许通信交互,然后由上层软件实现来定义实际的数据通信分组。因此,我们只会讨论一些针对通信攻击面问题的协议,尽管各种协议缺陷可能会导致对移动设备、硬件设备或云的攻击。对服务的端点攻击,但为了清楚起见,我们仍将其作为单独的攻击面进行讨论,并且我将列出各种物联网产品中使用的一些常见协议。如下:
网络
Web 或 HTTP(S) 技术是常用的通信协议。由于Web上的攻击面非常广泛,幸运的是许多攻击面、漏洞和缓解技术已经标准化。网上有许多详细的资源描述攻击并防范攻击。您可以参考OWASP的Web Top 10、测试指南和各种开源工具。
其他
除了WEB端之外,还有很多其他特定的通用或者高效的协议。为了简单起见,我只列出了一些通用的协议,供参考和学习。经验告诉我们,所有协议都存在实现缺陷、协议设计缺陷和配置缺陷。这些缺陷这就需要在深入的渗透测试中进行分析和验证。
合作协议 –
MQTT –
AMQP –
WebSockets –
CAN总线 –
MODBUS –
现场总线 –
DNP3 –
BACNet –
HL7 –
XMPP –
UPnP –
域名系统
SSH
以上为您提供了物联网生态系统攻击面的一些全球概览。现在让我们尝试在硬件设备上定义详细的攻击面,以便我们了解标准的物联网渗透测试攻击目标,这也是有益的。物联网安全架构师为物联网产品创建威胁模型。但请注意,我不会具体定义移动和云的攻击面,因为在互联网上可以找到大量类似的相关资源。本系列博客旨在为安全研究人员建立物联网安全研究的入门通道,因此我们只关注硬件设备,这是目前物联网安全方面尚未形成的知识。
硬件设备攻击面的具体定义
以下是根据我个人理解定义的一些与硬件相关的分离的、结构化的物联网攻击面:
存储介质
涉及硬件设备使用的各种内部、外部、持久性和易失性存储。它们包括:
SD卡:SD卡是典型的数据和配置存储介质。它们还可用于存储固件更新。使用 SD 卡可以形成一个有趣的攻击面。稍后我会在博客中做详细的技术分析。
USB载体:一些物联网产品将使用USB载体而不是SD卡来存储和读写某些下载或预配置的数据。 USB载体和SD卡的攻击方法类似。
非易失性存储器:大量传感器读写数据、开机启动、固件、密码凭证等信息均使用该存储器存储。在测试硬件电路板时,芯片上存储的数据至关重要。我们可以对存储器和微控制器之间的通信进行操作分析,以确定在不同操作中存储/读取的不同类型的数据。例如,逻辑分析仪可用于嗅探总线通信,以发现触发特定操作的各种读写数据。此类存储器有不同类型的芯片:
EPROM(可擦除可编程只读存储器)
EEPROM(电可擦除可编程只读存储器)
FLASH –(非易失性闪存,快速高效)
以下是I2C串行EEPROM:
易失性存储器:这种存储器就是我们所说的RAM(随机存取存储器)。广泛应用于计算机电路板和一些嵌入式系统中的随机数据存储。关闭电源后无法保存数据。分为以下两类:
SRAM(静态随机存取存储器)——断电时芯片不会保留数据
DRAM(动态随机存取存储器)——数据只能存储很短的时间。为了保持数据,必须短时间刷新,否则存储的信息就会丢失,而且断电后芯片也不会保存数据。
微控制器存储器:微控制器或微控制器也有存储器来存储数据。当使用JTAG等调试工具时通常可以访问该存储器。这类单片机存储器一般是以下类型的存储:
SRAM(静态随机存取存储器)
EEPROM(电可擦除可编程只读存储器)
闪存 –(非易失性闪存)
硬件通讯接口
电路板上的不同硬件需要相互通信以及电路板与外界之间的通信。这些通信基于明确定义的标准硬件通信协议。从攻击者的角度来看,这可以通过嗅探或恶意数据来实现。通过注入等方法来理解这个实际的通信过程。从下面描述的通用接口中,我们可以具体分析一些安全问题:
UART:UART(Universal Asynchronous Receiver Transmitter)是硬件外设之间的异步通信收发器。它可以在同一电路板(例如与电机或 LED 屏幕通信的微控制器)或两个不同的设备(例如与电机或 LED 屏幕通信的微控制器)上使用。电脑通讯)。这是一个有趣的攻击面,可能允许对设备进行串行读/写访问。在许多设备中,板上的 UART 端口是开放的,任何人都可以通过串行连接和访问,以获得某种类型的 shell 控制、自定义命令行控制台、日志输出等,以便发送和接收串行数据,该设备通常具有一组连接到微控制器 UART 的 RX 和 TX 引脚的输出。稍后我会发一篇文章来讨论如何识别和访问设备的UART端口。以下是标准4针输出UART口电路:
单片机调试端口:单片机运行时可以使用特定的引脚和输出对进行调试。这些引脚输出(端口)是为开发人员和设计人员保留的。它们可以用于设备调试、固件内存读写、后期管脚控制测试等。因此,从攻击者的角度来看,此类调试端口可能会成为最具杀伤力的攻击面。以下是包含调试端口的几种标准接口:
1.JTAG(联合测试工作组):随着微控制器和电路板设计变得越来越小,模压产品的后测试变得非常困难。因此,为了对电路板进行高效的后测试,几大电子制造商联合成立了该组织,并确定了一系列电路板后测试方法标准,后来成为IEEE 1149.1,也称为JTAG测试协议,它专门定义微控制器调试的标准接口和命令。标准JTAG接口包括4个引脚接口和1个额外可选的TRST引脚接口:
TMS – 测试模式选择
TCK——测试时钟
TDI——测试数据输入
TDO——测试数据输出
TRST——测试重置(可选)
除了芯片调试之外,调试器还可以使用这些引脚与微控制器上的测试访问端口 (TAP) 进行通信。从安全角度来看,识别JTAG端口并与其连接,攻击者就可以进行固件提取、逻辑反转、恶意固件植入等非法目的。
2.cJTAG(Compact JTAG):这是一种新的JTAG测试协议(IEEE 1149.7)。它不是JTAG(1149.1)的替代品,而是基于它的向后兼容的扩展测试协议。定义了TCK和TMS两个引脚接口,并介绍了TAP的一些实现特点。
3.SWD(串行线调试):这是微控制器调试的另一种方法。它定义了 SWDIO(双向)和 SWCLK(时钟)引脚接口。它是基于ARM技术的ARM CPU双向线标准调试协议。它来自V5版本的ARM调试接口定义,这说明SWD是一种比JTAG更高效的调试方法。
以下是JTAG接口在电路板上的位置:
I2C(内置集成电路):I2C是飞利浦发明的一种协议,用于同一电路板上芯片之间的短距离通信。它具有主从架构和以下两线总线:
SDA——串行数据信号线
SCL——串行时钟信号线
I2C的典型应用是连接EEPROM(电可擦除可编程只读存储器)芯片上的I2C引脚并存储数据和代码。针对该协议的攻击包括数据嗅探、敏感信息提取、数据破坏等。我们可以对EEPROM芯片进行静态数据分析,也可以对I2C通信进行动态嗅探,分析其行为和安全问题。我后续会发一篇文章来讨论I2C的通信安全问题。
串行外设接口(SPI):串行外设接口也是芯片之间的短距离通信协议。它是由摩托罗拉发明的。它具有全双工和主从架构的特点,具有比I2C更高的吞吐量,并使用以下四线串行总线:
SCLK——串行时钟信号线或SCL
MOSI——串行数据输出信号线
MISO——串行数据输入信号线
SS——从机选择信号线
SPI用于各种外设之间的通信。 Flash存储器和EEPROM也使用SPI。测试分析方法与I2C类似,但总线接口不同。
USB:USB接口一般用于充电和数据通信。也为了方便以后调试问题时使用。它可以进行动态数据嗅探和静态数据FUZZ来分析安全问题。
传感器:是物理设备的对外接口,但不限于温度计等传感接口,还包括一些开关控制按钮。根据其实现操作,可以分为三类:
监视器:这是最接近传感器意义的设备,感知和监测外部世界的变化,如温度、行为、脉搏、血压、胎压等。
控制器:主要控制外部设备的开关和行为,如交换机、分配器等。
混合控制器:是监控器和控制器的混合设备,如温度控制器、光传感器等。由于此类控制器的传感数据会发送到远程云端服务器或其他控制终端,因此其接口安全性至关重要。攻击者可以向此类控制器发送畸形数据进行迷惑和干扰,从而影响整个物联网系统,导致物联网系统瘫痪、运行异常,甚至物理损坏。
人机交互界面(HMI):与传感器界面类似,HMI并不局限于工业控制系统应用。它也被定义为物联网架构中用户和设备之间的通信接口。用户可以通过它直接控制设备,例如触摸屏、按钮、触摸板等,HMI也会存在一些旁路机制和安全设置问题。
其他硬件通信接口:还有其他与硬件设备的通信方式。作为渗透测试人员,必须主动分析,善于发现界面中的一些安全绕过和设置错误。其他硬件通信接口包括(但不限于):
D-Subminiature – 显示器 VGA 接口
推荐标准(RS232、RS485 等)——一些推荐的标准接口
车载诊断 (OBD) – 汽车在线诊断接口
网络通讯接口
该接口允许设备与其他数字设备进行通信,包括传感器网络、云和移动设备。负责网络通信的硬件接口可能包括独立的微控制器/固件等。因此,这种情况下的攻击面可能是底层通信。实现的固件或驱动程序代码。
无线网络通信:无线网络通信接口存在一些已知的安全问题。从攻击角度来看,无线芯片可以被攻击甚至物理破坏、DOS、安全验证绕过或代码执行等。
以太网接口:以太网设备接口(例如wifi接口)存在一些底层TCP/IP通信漏洞、硬件实现漏洞和其他攻击媒介。
无线电通信接口:由于许多物联网产品集成或改用无线电通信,因此无线电通信接口将成为关键的攻击面。在许多情况下,无线通信比有线通信更有效。毫无疑问。我之所以单独列出无线通信,是为了将其与需要网关设备的无线网络通信和有线通信区分开来。无线电通信与它们完全不同。可分为以下两类:
1.简单/非结构化:通常用于简单的产品,如百叶窗、锁、门铃等。简单非结构化是指它使用简单的数据流并通过无线接口发送。作为渗透测试人员,您需要逆向通信过程来发现操作漏洞。您可以使用无线电嗅探硬件工具(例如SDR等)来捕获和嗅探无线电通信流量。
2. 复杂/结构化:这种通信是指它使用结构化数据包进行无线电通信。除了数据之外,它们还携带有关通信中协议的附加信息和元数据,这稍微复杂一些。由于高效、标准、成本低、操作方便等原因,此类协议在物联网领域得到了广泛的应用。有多种针对此类协议的嗅探和分析工具可以提取通信数据。常见的此类协议包括:
蓝牙(和 BLE)
紫蜂
兹波
近场通信
射频识别
洛拉
无线HART
以上是我个人对物联网安全及其攻击面的理解和定义。有什么不足之处还请大家原谅。
生活日报网·版权声明
本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。本站部分作品是由网友自主投稿和发布、编辑整理上传,对此类作品本站仅提供交流平台,不为其版权负责。如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时修改或删除。
本网站所提供的信息,只供参考之用。本网站不保证信息的准确性、有效性、及时性和完整性。本网站及其雇员一概毋须以任何方式就任何信息传递或传送的失误、不准确或错误,对用户或任何其他人士负任何直接或间接责任。在法律允许的范围内,本网站在此声明,不承担用户或任何人士就使用或未能使用本网站所提供的信息或任何链接所引致的任何直接、间接、附带、从属、特殊、惩罚性或惩戒性的损害赔偿。
【特别提醒】:如您不希望作品出现在本站,可联系我们要求撤下您的作品。邮箱 sunny@sdlife.com.cn