赞
踩
也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大
少走了弯路,也就错过了风景,无论如何,感谢经历
物联网,也称为物联网(IoT),代表可以连接到互联网或内部网络的设备和外围设备的集合。这些设备有多种形状和尺寸。您现在的家庭或工作网络中可能有一些,您的网络打印机甚至您的家庭 WiFi 路由器都可以被视为物联网设备,因为它们是连接到内部网络或公共互联网以提供附加功能的非传统计算设备
IoT 这个词意味着物联网,如果我把它分成更简单的格式,那么互联网+设备=物联网,网是现有互联网基础设施内唯一可识别的嵌入式计算设备的互连。或理解为是可以相互交互以共享信息和采取行动的物理对象网络
物联网的本质,是从端到云的数据交互及计算过程。根据这个特点,可以将物联网划分为3个层次:云、网络和设备(当然这里面应该还有APP),也就形成了物联网的攻击面。
其中,云层包括云端提供的服务,例如物联网平台、日志等等;网络层代表云和设备、设备与设备之间的传输过程;设备层包括了IoT设备、网关设备及其上的系统和应用
对黑客而言,以上三个层次都具有攻击的价值。在IoT架构中,我们可以把安全威胁归类为以下几种:
通过获取的认证信息,将恶意的设备、服务伪装成合法设备和服务
S1场景:阿里云已经为IoT设备提供方便的上云方式。对于设备认证,阿里云目前提供了设备证书、LinkID2等认证方案。对于开发者来说,最常用的方式是通过设备认证信息认证:开发者从云端服务获取设备认证信息,并将其烧写到设备上。当设备连接云端时,阿里云会根据设备认证信息对设备进行认证。在这种场景下,如果能够通过漏洞或物理接触窃取到设备认证信息,黑客就能够将其他设备伪装成用户的设备,从而向用户发送伪造数据
D1场景:通过DNS欺骗,黑客可以直接伪装云端服务。如果设备端应用未进行双向验证,黑客可以伪装云端服务与设备进行数据交互、操纵设备;在设备间通信时,如果设备上开启了被动连接服务,黑客可以利用窃取的认证信息伪造合法设备与目标设备交互
使服务、设备或网络传输过程瘫痪
对系统、应用和数据进行篡改
N2场景:对于设备之间、设备端与云端之间的不安全通信,黑客可以发起中间人攻击,截获数据包并提取隐私数据,或者对数据包中的数据进行篡改和继续转发
D2场景:与服务器不同的是,IoT设备常常会处于“暴露”的状态。这意味着在设备端,黑客不仅能够利用应用和内核中的漏洞对设备上的系统、应用和文件进行篡改,还能通过物理接触的方式篡改设备上的内容。物联网产品从出厂后到投入使用的整个生命周期中,会接触到许多不同的角色,任何一个环节都可能出现威胁
窃取隐私信息
N3场景:对于设备之间、设备端与云端之间的不安全通信,黑客可以发起中间人攻击,截获数据包并提取隐私数据,或者对数据包中的数据进行篡改和继续转发
D3场景:设备上不仅会保存了隐私数据,还有应用的可执行文件。通过漏洞或物理接触,黑客可以直接获取用户隐私(例如摄像头数据、密钥等),还能获得应用的二进制文件以进行逆向分析
强迫应用进行超过其权限范围的行为
D4场景:当黑客利用漏洞攻破设备上的某个应用时,他可能会迫使应用进行默认权限之上的行为:例如关闭系统、访问其他应用的数据、大量占用系统资源。黑客可以通过越权直接进行攻击,或者为其他攻击方式提供条件
结合安全威胁类型和IoT系统架构,总结出了如下的威胁模型:
层次 | 序号 | 威胁类型 | 描述 | 和设备端OS相关 |
---|---|---|---|---|
云 | S1 | 身份伪装 | 通过窃取的认证信息伪装合法设备与云端服务交互 | 是 |
S2 | 拒绝服务 | 通过攻击使云端服务瘫痪 | 否 | |
S3 | 篡改 | 利用漏洞在云端篡改数据、注入恶意代码 | 否 | |
S4 | 信息窃取 | 利用漏洞窃取云端隐私信息 | 否 | |
网络 | N1 | 拒绝服务 | 通过制造拥堵、干扰网络阻碍网络通信 | 否 |
N2 | 篡改 | 截获数据包并篡改数据 | 是 | |
N3 | 信息窃取 | 截获数据包以窃取隐私信息 | 是 | |
设备 | D1 | 身份伪装 | 通过DNS欺骗、窃取的认证信息伪装云端服务或合法设备与设备交互 | 是 |
D2 | 篡改 | 通过漏洞或物理接触篡改设备上的系统、应用和数据 | 是 | |
D3 | 信息窃取 | 通过漏洞或物理接触窃取设备上的数据和代码 | 是 | |
D4 | 越权 | 通过漏洞迫使应用进行默认权限之上的行为 | 是 |
在IoT架构的不同层次上,均有与设备端OS相关的安全威胁存在;而IoT设备资源受限、物理暴露等特性,直接导致了设备端安全能力的不足。接下来,结合具体场景,对与设备端OS相关的安全风险逐一进行分析
备注:OS是operating system的缩写,表示操作系统,它是管理计算机硬件与软件资源的计算机程序
但物联网不等于是硬件,这是人们之间普遍的误解,认为物联网仅指硬件,这造成了想象中的障碍,并使大多数安全研究人员不愿涉足物联网安全。是的,其中涉及硬件,并且可以学习分析硬件所需的技能。如果有帮助,“物联网安全研究并不难”,但需要奉献精神和学习意愿。当您阅读本博客文章时,您将意识到硬件仅构成IoT生态系统的1/3。最重要的是,如果您可以破坏其他组件(例如,Cloud),则不仅会入侵设备,还会造成更大的破坏
物联网的一些附加因素:
在人这一块,物联网可以监控和控制更多“事物”,从而使人们变得更有能力
在时间这一块,物联网可以跟更多的用户和机器可以实时协作,因此可以在更短的时间内完成更复杂的任务。因此,我们拥有更多协作和协调的数据。
在数据这一块,物联网可以更频繁、更可靠地收集数据。这些结果对决策更准确。
在过程这一块,物联网让事情变得更加可控,因此移动设备和这些物联网设备变得更有价值
预测表面,未来功物联网有可能会给全球企业带来持续增加的利润增长
现代随着技术的进步,智能硬件有了长足的发展,未来将会是一个万物互联的物联网时代,作为信息技术时代的新兴产物,IoT 以迅猛的发展速度正悄然地走进千门万户,随着智能家居、智能城市、互联医疗保健系统和 4.0 行业的发展,物联网安全是一项重大挑战。也由于技术的范围和可能的攻击点的数量,连接对象的安全性是一个复杂的主题。
连接对象渗透测试的目的是识别不同层中存在的缺陷,以保护对象的整个环境。在这种情况下,审计的目标是硬件(电子)、软件(嵌入式软件、通信协议)以及 API、Web 和移动接口(服务器、Web 应用程序、移动应用程序)。但是,也可以根据先前确定的安全问题将审计重点放在有限的技术领域。
不幸的是,随着连接技术的普及,许多此类设备在设计过程中并未考虑或仅最低限度地考虑安全性。虽然我们在其他传统安全类型的身渗透测试中也看到了这种行为,但物联网是不同的,因为它利用并将许多不同的技术堆栈混合在一起,例如自定义操作系统构建、Web 和 API 接口、各种网络协议(例如 Zigbee、LoRA、蓝牙/BLE、WiFi)和专有无线。这种广泛多样性、安全性差的技术为网络攻击提供了攻击面,为修改用户数据、网络流量操纵等攻击提供了更多的攻击的可能。
工业控制物联网:在工业4.0 的时代背景下, 传统企业的生产线和生产流程全面引入智能控制终端和智能机器人,是未来工业发展的大趋势。
车载物联网:是一项新兴技术,可以大幅提高未来交通系统的安全和效率,并将车辆连接到计算机网络。车载物联网能够在行驶中的车辆之间建立无线通信,也能够在过路车辆和路边基站之间建立无线通信。
智能家居:是以住宅为平台,利用综合布线技术、网络通信技术、 安全防范技术、自动控制技术、音视频技术将家居生活有关的设施集成,构建高效的住宅设施与家庭日程事务的管理系统,提升家居安全性、便利性、舒适性、艺术性,并实现环保节能的居住环境
基于互联网的拓展,人们可以:
通过如上所知:
本篇系列专栏同学们将会掌握如下技能:
需要准备的工具:
那么本系列适合初学者学吗?
本系列不会更新很快,因为博主在思考以后走的方向,暂时侧重点不会太偏向硬件方面,没办法条件不允许,嘻嘻… …
物联网安全是指为保护物联网设备及其连接的网络而采取的一系列措施。无处不在的连接带来了新的风险。物联网安全曾经是一项希望具备的功能,如今已成为当今互联应用的基本要素。
由于物联网设备暴露于更广泛的互联网,物联网设备开发人员必须时刻注意以下原则:
保护物联网设备、保护数据和确保数据传输安全已成为构建可持续业务以应对日益增长的物联网安全威胁的首要任务。凭借强大的端到端安全措施,相关企业可以保护其收入,并通过保护设备和敏感数据降低与运营和声誉损害相关的成本。
云服务类型:
物联网的基本构架由三层组成,分别是感知层、网络层和应用层。同时物联网也是基于目前的互联网OSI计算机网络体系结构,目前物联网面临的协议层威胁主要为,物理层、数据链路层、网络层、传输层
层级结构 | 安全需求 | 存在攻击 | 主要防御技术 |
---|---|---|---|
物理层 | 物理设备的可靠性 固件系统的安全 内存安全 | 固件升级攻击 内存溢出攻击 侧信道攻击 物理干扰破坏 | 安全启动 可信计算 保险丝熔断 暴力拆解情况下的自动销毁 |
感知层 | 物理安全防护 认证性 机密性 保证数据的完整性 | 窃听攻击 篡改攻击 伪造攻击 禁用攻击 中继攻击 睡眠攻击 | 访问控制 身份认证 轻量级密码 |
网络层 | 机密性 数据的完整性 可用性 隐私保护 | 窃听攻击 篡改攻击 伪造攻击 禁用攻击 中继攻击 睡眠攻击 | 访问控制 加密签名技术 终端生命周期监控 防火墙 安全路由协议 |
应用层 | 认证 授权 审计 隐私安全和应用部署安全 | 身份冒充攻击 认证拥塞攻 恶意代码攻击 恶意程序 | 身份和访问控制 漏洞扫描 入侵监测系统 |
例如下边介绍一下各协议层易受到的攻击手段:
通过发出无线干扰射频信号,实现破坏无线通信的目的,分为全频段拥塞干扰和瞄准式拥塞干扰。传感器网络可采用诸如跳频、调节节点占空比等技术防范拥塞攻击
攻击者俘获一些节点,对它进行物理上的分析和修改,并利用其干扰网络的正常功能,甚至可以通过分析其内部敏感信息和上层协议机制,破坏网络安全性。攻击者直接停止俘获节点的工作,造成网络拓扑结构变化,如果是骨干节点被俘获,将造成网络瘫痪。对抗物理破坏可在节点设计时采用抗篡改硬件,同时增加物理损害感知机制
攻击者通过公开算法伪造hash值来骗过电脑的密码验证,进入系统进行危险操作。我们可以采取冲突检测的方法确定恶意引发冲突,同时设置更加有效的退避算法,也可以采用纠错编码的方法在通信数据包中增加冗余信息来纠正数据包中的错误位
攻击者利用协议漏洞,通过持续通信的方式使节点能量资源耗尽,例如当有些算法试图重传分组时,攻击者将不断干扰其发送,直至节点耗尽资源。我们在协议实现的时候,制定一些执行策略,对过度频繁的请求不予理睬,或者对同一个数据包的重传数据进行限制,以免恶意节点无休止干扰导致能源耗尽
非公平竞争指恶意节点滥用高优先级的报文占据信道,使其他节点在通信过程中处于劣势,从而导致报文传送的不公平,进而减低系统性能,但这种攻击方式需要完全了解传感器网络的MAC协议机制。我们可以采用短小帧格式的方法,这样就可以降低单个节点占用信道的时间;另一种方法采用竞争或者时分多址(TDMA)的方式实现数据传输
通过欺骗、篡改或重发路由信息,攻击者可以创建路由循环,引起或抵制网络传输,延长或缩短源路径,形成虚假错误消息,分割网络,增加端到端的延迟等
恶意性节点可以概率性的转发或者丢弃特定消息,使数据包不能到达目的地,导致网络陷入混乱状态。当攻击者确定自身在数据流传输路径上的时候,该攻击通常是最有效的。该种攻击的一个简单做法是恶意节点拒绝转发经由它的任何数据包,类似一个黑洞(即所谓“黑洞攻击”)
攻击者的目标是尽可能地引诱一个区域中的流量通过一个恶意节点(或已遭受入侵的节点),进而制造一个以恶意节点为中心的“接受洞”,一旦数据都经过该恶意节点,节点就可以对正常数据进行篡改,并能够引发很多其他类型的攻击。因此,无线传感器网络对sinkhole攻击特别敏感
能够明显地降低路由方案对于诸如分布式存储、分散和多路径路由,拓扑结构保持的容错能力。对于基于位置信息的路由算法很有威胁
恶意节点通过声明低延迟链路骗取网络的部分消息并开凿隧道,以一种不同的方式来重传收到的消息,Wormholes攻击可以引发其他类似于Sinkhole攻击等,也可能与选择性地转发或者Sybil攻击结合起来
攻击者利用TCP传输的三次握手机制,在攻击端利用伪造的IP地址向被攻击端发送大批请求,使被攻击端得不到响应,用来消耗服务器资源。我们可以在服务器端引入入侵机制,基站限制这些洪泛报文的发送
攻击者向节点发送重放的虚假信息,导致节点请求重传丢失的数据帧。利用这种方式,攻击者能够削弱甚至完全削夺节点进行数据交换的能力,并浪费能量,缩短节点的生命周期
从以上攻击方式可见物联网中常见的攻击类型有,保密与认证攻击、拒绝服务攻击、针对完整性的隐秘攻击等主要的攻击手段。目前物联网工程的安全性我们主要从数据机密性、数据完整性、数据新鲜性、可用性、鲁棒性和访问控制六方面考虑
例如,物理层是构建物联网架构的骨架,其中关键技术包括:
感知层是为了实现设备对物理世界的感知,其中关键技术包括:
IoT架构基础设施可分为三大类
物联网架构以其最简单的形式包括三个组件:
组件之间的通信取决于IoT产品的用途和/或类型。以下是一些示例,这些示例将使组件之间如何以及为何不相互交谈变得清晰。
功能架构:
可以进一步扩展功能架构,以定义通过互联网与云和移动/ Web界面通信的传感器网络。在传统的基于TCP / IP的技术无法实现的情况下,传感器可能拥有自己的网络,或者在无法实现传统网络并且无线电通信提供更高效率和更多意义的情况下,具有基于无线电的网络。在后一种情况下,需要有一个网关(我们的IoT网关/集线器/路由器)充当无线电通信与传统TCP / IP通信之间的接口。从现在开始,我将把TCP / IP称为传统的网络/通信
我们还可以拥有地理位置分散的传感器网络,这些网络可以通过IoT网关通过传统网络相互通信/连接,如下所示:
物联网有两种分层方法:
从分层的角度看待物联网技术,可以将构成物联网核心的基本架构分为三层:
通信的上行和下行(上下行是通信的两个方向):
承担感知信息作用的传感器,一直是工业领域和信息技术领域发展的重点,传感器不仅感知信号、标识物体,还具有处理控制功能
感知层是整个物联网系统的数据基础。它利用传感器获得被测量(物理量、化学量或生物量)的模拟信号,并负责把模拟信号量转换成数字,也包括从电子设备(如串口设备)中采集到的直接的数字,最终由传输层转发到应用层
信息采集与控制的主要功能:把模拟的信号,转换成单片机MCU能够处理的数字信息。
各种传感器和执行器:温度传感器、湿度传感器、压力传感器、液压传感器、三轴传感器、GPS定位、摄像头、电机
PS:传感器主要是读取数据以及控制器主要是写入数据
物联网无线终端由MCU和无线收发器组成,MCU读取传感器的数字信息,并把读取到数字信息通过无线信号传送给物联网的网络层设备。
涉及到的无线技术有:
伴随着物联网产业的快速发展, 对新型传感器、 芯片的需求逐渐增大, 因此对其尺寸和功耗提出了更高的要求。
而MCU(Micro Control Unit , 微控制单元) 和MEMS(Micro-Electro-Mechanical System , 微机电系统) 由于其高性能、 低功耗和高集成度的优势, 得到了全面发展, 成为感知层发展最重要的两项技术。
网络层也可以叫做传输层,物联网的传输层主要负责传递和处理感知层获取的信息
分为:有线传输和无线传输两大类, 其中无线传输是物联网的主要应用
无线传输技术按传输距离可划分为两类:
LPWAN又可分为两类:
下面是这两类无线传输技术的对比图:
有线:主要是IP/以太网数据传输网,有以太网交换机和路由器组成,物理接口包括SFP光口和RJ45电口、Modulbus等
平台层在整个物联网体系架构中起着承上启下的关键作用,它不仅实现了底层终端设备的“管、控、营”一体化,为上层提供应用开发和统一接口,构建了设备和业务的端到端通道,同时,还提供了业务融合以及数据价值孵化的土壤,为提升产业整体价值奠定了基础
从历史形成成因来看,平台层是由于社会分工分行形成的产物。有了平台层的存在,企业就可以专心于构建自己的应用或者组建自己的产品网络,而不费心与如何让设备联网。
各大公司都构建了自己的物联网平台,比如:
在物联网中,平台层也有类似的分层关系,按照逻辑关系由分为四部分:
四个平台的组成关系如下图所示:
连接管理平台通常指基于电信运营商网络(蜂窝,LTE等)提供可连接性管理、优化以及终端管理,维护等方面的功能的平台。其功能通常包括:
物联网连接具备M2M连接数大、单个物品连接ARPU值低(人类连接客户ARPU值的3%-5%)的特点,直接结果就是多数运营商将放弃自建CMP平台,转与专门化的CMP平台供应商合作。
典型的连接管理平台包括思科的Jasper平台、爱立信的DCP、沃达丰的GDSP,Telit的M2M平台、PTC的Thingworx和Axeda。
目前全球化的CMP主要有三家:Jasper平台、爱立信DCP平台和沃达丰GDSP平台,其中Jasper最大,与全球超过100家运营商、3500家企业客户展开合作,国内的中国联通也通过宜通世纪与Jasper平台进行合作。
在国内三大运营商中,中国移动选择自研One NET连接管理平台,中国联通与Jasper战略合作,选择其Control平台提供物联网连接服务;中国电信也先后自研及与爱立信合作建立两套连接管理平台。
需要注意的是,在国内几乎没有纯粹的CMP平台,这个CMP平台是在物联网早期时运营商需要对物联卡进行大量管理时才出现的。无论是中国联通的Jasper还是中国移动的Onenet,本质上至少一个CMP+AEP平台。
故一般CMP平台的提供商多半都属于运营商,其它的的IOT平台更多是CMP平台的使用方(如果牵涉到物联卡,比如2G/3G/4G,eMTC和NB-IOT)
物联网设备管理平台DMP往往集成在端到端的全套设备管理解决方案中,进行整体报价收费。DMP功能包括用户管理以及物联网设备管理,例如配置、重启、关闭、恢复出厂、升级/回退等,设备现场产生的数据的查询,以及基于现场数据的报警功能,设备生命周期管理等。
典型的DMP平台包括:
以百度云为例,百度云物接入IoTHub是建立在IaaS上的PaaS平台,提供全托管的云服务,帮助建立设备与云端之间的双向连接,支撑海量设备的数据收集、监控、故障预测等各种物联网场景
一些垂直领域巨头本身就是设备提供商,业务外延至平台层面,通常能够提供整体解决方案,部分能够集成CRM、ERP、MES等信息系统
大部分DMP平台提供商本身也是通信模组、通信设备提供商,比如DiGi、Sierra Wireless、Bosch等,本身拥有连接设备、通信模组、网关等产品和设备管理平台,因此能帮助企业实现设备管理整套解决方案。一般DMP部署在整套设备管理解决方案中,整体报价收费;也有少量单独提供设备管理云端服务的厂商,每台设备每个月收取一定运营管理费用,比如早期的Ablecloud(按接入设备数量收费)
应用使能平台AEP是提供快速开发部署物联网应用服务的PaaS平台。它为开发者提供了大量的中间件、开发工具、API接口、应用服务器、业务逻辑引擎等,此外一般都还需要提供相关硬件(比如计算、存储、网络接入环境等)。它的存在,极大地降低了软件开发复杂度和开发门槛。
典型的AEP平台提供商包括PTCThing worx,艾拉物联,Ablecloud,机智云,Comulo city,AWS IoT,Watson IoT Platform等。
业务分析平台BAP主要通过大数据分析和机器学习等方法,对数据进行深度解析,以图表、数据报告等方式进行可视化展示,并应用于垂直行业。
由于这个平台涉及到大量的数据和业务场景,故绝大部分都是由企业把控,另外由于人工智能技术及数据感知层搭建的进度限制,目前BAP平台发展仍未成熟。
丰富的应用是物联网的最终目标,未来基于政府、企业、消费者三类群体将衍生出多样化物联网应用,创造巨大社会价值。根据企业业务需要,在平台层之上建立相关的物联网应用,例如: 城市交通情况的分析与预测;城市资产状态监控与分析;环境状态监控、分析与预警(例如:风力、雨量、滑坡);健康状况监测与医疗方案建议等等。
物联网的十大应用产业:
物联网设备不断暴露于各类型不断发展的物联网安全威胁中。最常见的类别包括:
IoT受到的威胁大概划分如下:
物联网体系架构:
传统互联网五层协议:
物联网安全 | 传统互联网安全 | |
---|---|---|
互联要求 | 复杂,整体 | 分层 |
加密方式 | 轻量级加密 | 标准库加密 |
认证方式 | 单层或多层 | 分层 |
数据处理能力 | 要求高 | 相对低 |
安全性需求 | 整体安全 | 分层安全 |
备注:
硬件渗透测试侧重于解决方案的电子组件(非侵入式和侵入式攻击)。
使用的技术包括:
固件的渗透测试侧重于嵌入在对象中的软件,包括一定数量的技术:
通信协议的渗透测试侧重于实现对象通信和向外部发送数据的技术(RFID、NFC、ZigBee、蓝牙、WiFi、SigFox、LoRa 等)。
测试基于以下技术:
低功耗蓝牙 (BLE) 是一种特别使用的通信协议,因为它可以在设备之间发送少量数据,同时节省电池。
与 BLE 相关的安全问题通常与协议的错误实现有关。有一些方法可以对数据交换进行加密,加强协议的安全性,这些方法需要从连接对象的设计阶段开始研究。
识别物联网弱点并进行加固有助于如下:
将面临许多挑战,例如从利用工具但没有按预期执行攻击反而让设备变砖等操作,应有尽有。甚至需要几个月的时间才能弄清楚不同的硬件、电子元器件、协议、无线电等方式以及应该在哪里投入宝贵的时间和精力
由此大家也看到了,物联网不是一个单一的东西,相反,它是嵌入式设备、云网络应用和移动应用程序、后端应用程序、固件和无线电通信协议的组合。这些组件中的每一个都可能需要数年才能掌握,甚至更久的时间。但是,这并不意味着我们要一次要花费几个月、甚至几年的时间来熟悉每个组件,如果真是这种情况,我们可能需要数年时间才能成为一名了解 IoT 生态系统中所有组件的 IoT 渗透测试工程师
那么如何快速知道,在哪里投入时间来学习物联网渗透测试本身就是一件不容易的事情,在 ARM 二进制逆向方面知道多少,以及应该花多少时间来分析 PCB等诸如此类的事情吗?
如何确定使用哪些设备或平台来学习物联网安全?是否认为在这里和其它地方阅读博客文章和文章或仅观看会议视频来学习是最好的选择。当然,这些博客、论坛、技术等为我所有,为我提供了知识,但是为什么要重复去做没有意义的事情呢?在自身不知道在做什么并且没有系统化学习方法的情况下,一个接一个学习知识,然后陷入困境?
本系列专栏,属于小白入门的,因为我也是小白,期望跟着大家一起成长,你们不需要弄清楚每一个小细节,因为我已经为你做了所有需要做的这些,还有更多,只需跟着博客文章走,即可
我们中的很多人都对我们现在所处的生活、我们正在做的事情以及我们正在做的工作感到满意。如果你是这样的,我不怪你,因我和你一样,但我很快就意识到我已经停止进步了。我在信息安全行业的大多数玩的好的朋友都获得了更好工作、岗位、职业发展,并且能够实现他们的职业目标,但不是我。
然后我决定,与其感到舒服或处在一个舒适的环境里,不如尝试一些挑战我不会的东西,毕竟这就是我们所有人的成长方式,无论是专业的还是普通的。我决定开始学习物联网的基础知识,将其作为安全行业中最新兴、最令人兴奋(甚至是现在)的领域之一
我面临的第一个挑战是没有足够的可用资源来学习物联网安全,大家从上面的介绍需要的工具中就看出需要购买的工具,就要消耗掉不菲的费用,光是好点的逻辑分析仪就价值数万元甚至数万美金不等(后面我们尽量减少一定开支来做学习,避免产生过高的费用导致学习进展不下去),却网上几乎没有任何关于物联网安全比较系列的教程,只有几次会议演讲和技术文章等都比较零散,不能系统化的学习。然后有相当多的文章和博客文章,但是当我尝试时,有些东西或其他东西都不起作用,我很难找到自己的方法。
由此,我想到来一条路,希望有一个从基础开始教授物联网安全的技术博客,让我为现实世界的物联网安全研究做好准备,因为我正在从事的领域是车联网安全,物联网安全是我必须要去学习掌握的技能。
所以,我尽我所能… …
以攻击者视角将物联网,按照攻击面分解各应用组件,可分为生态系统、设备内存、设备物理接口、设备Web 界面、 设备固件、网络服务、管理界面、本地数据存储、云Web 界面、第三方后端APIs、更新机制、移动应用程序、供应商后端 APD、生态系统通信、网络流量、认证与授权、隐私和硬件
事情到这里,其实还要走很长一段路,但重点是我做出了决定,并朝着目标迈出了一步。正如,你所见的那样,学的东西太多了,压根段时间掌握不了,博主同学我也没啥太多的技巧,业余时间碎片化学习,期望能对同学你有帮助,您不必重新造轮子,你不需要弄清楚每一个小细节。我已经为你做了所有这些,还有更多,当然我也会有错的时候,欢迎大家指出一起进步
假如,你跟博主同学一样,今天迈出了自己的一步,迈出了让自己开始的第一步呢? 从那里开始,它只是动力,这种势头往往会让我们走很长的路。这只是第一步,仿佛一座山,它会让我们在头脑中创造了所有无限可能的思维过程
OT(Operation Technology 操作技术),是为工厂自动化控制系统提供技术支持,确保生产正常进行的专业技术
随着工业4.0的来临,ICT技术被引入到OT中,IT、OT、CT将紧密的融合(智能制造)
可编程逻辑控制器(Programmable Logic Controller,PLC)
有效的物联网设备的安全测试,需要对于给定设备进行综合评估并发现所有的攻击面。评估IoT攻击面的技术相比于评估Web应用程序、移动应用程序并没有改变很多,多数仍是以Web攻击面为主,比如市面上常见的网关+路由器的组合
细分IoT的组成:
常见IoT架构:
IoT 安全相当于一个安全的集合,要学的是真的多,看着就脑壳痛… …,需要很多专业的设备进行研究和测试使用,结果还没入门就劝退很多想入门的同学,包括我自己,哈哈… …
遵循以下步骤可以更快的发现IoT的攻击面:
下表是IoT架构中一个“组件”的攻击面分析:
组件 | 攻击面 | 案例 | 预期输出/数据获取 |
---|---|---|---|
IoT网关 | 基于硬件的攻击向量 | 1. 使用串口进行通信 2. 固件导出技术 | 1. 调试日志,shelli访问权限 2. 访问固件,逆向分析固件漏洞 |
云网络通信 | 1. 嗅探通信数据 2. 修改和重放数据 | 1. 理解通信数据,检查是否正在发送数据 2. 确定云端是否检查消息的真实性和合法 |
上述分析步骤完成,就可以执行实际的测试攻击,既然已经有了明确的想法接下来看看可以使用什么样的攻击技术
1.IoT网关
2.设备
3.移动应用程序
4.云端/WEB程序
下面内容记录了对某款物联网设备的攻击面及安全分析,包括网关、设备、云端、移动客户端之间的通信安全,云端API接口逻辑、网关与设备绑定和解绑等关键操作的安全情况
产品型号 | 联合报警网关 |
---|---|
设备固件版本 | V1.4.1 |
移动客户端版本 | V2.5.6 |
网关-云端-移动客户端:
在套用上面的攻击面分析模型后可以发现待测设备的机密性得到了良好的保护。联合报警网关、设备、云端系统、移动客户端四者之间的通信,除了日志统计信息(对于与 logs.***.com
服务器的通信)外全部是加密通信,TCP 链接使用 TLS1.2 通信,使用 HTTPS 传输,UDP 数据使用 AES-128-ECB 加密后传输,完整性通用得到了良好的保护。HmacSHA256,HmacSHA1,HmacMd5 的方式保护,Hmac 的 Key 来自于用户登录之后服务端下发的 token,联合报警设备的旧系统固件将数据本地明文存储在 xml 文件中,新版本中本地数据是加密存储的。虽然保证了机密性和完整性但仍存在安全问题,云端接口无法抵御重放攻击
api.******.com
无防重放机制,通过api.******.version.check
获取当前APP版本,通过更改客户端版本到较低版本,再重放该请求,可以返回需要升级的Response包POST /api/*****/version/check HTTP/1.1
Host: api.******.com
api.*****.login
通过传输用户名和加密的密码和短信验证码结合才可登录,该接口可以重放,通过分析业务安全防护逻辑可发现虽然云端有IP登录次数限制,但在次数限制内更换代理IP可以持续爆破用户名和密码POST /api/*****/login HTTP/1.1
Host: api.*****.com
api.*****.getit
仍可以重放,客户端退出账户,云端未将客户端sessionid做过期处理,导致云端还可以接受该sessionid并且返回相应的返回值POST /api/*****/getit HTTP/1.1
Host: api.*****.com
注:类似这样的接口还很多在此不一一列举。大家看着是否觉得跟我们平时在做Web安全的暴力破解、在JS中获取未鉴权的接口构建数据包获取敏感信息书差不多的,前提条件是如果发现它们的利用点在哪里才是关键
客户端与服务端的通信安全:
检查项 | 结果 |
---|---|
机密性 | http协议使用https传输 tcp使用AES286加密 UDP未加密 |
完整性 | 到达服务端的请求没有完整性校验 |
可用性 | SMS CODE可爆破 没有防重放机制 |
客户端逆向分析通信的系统和认证方式:
系统 | 访问控制分析 |
---|---|
api.*****.com | 1. Identify: sessionId 2. Authentication: sessionId方式 3. 请求数据格式:JSON Data=json&sessionId&****** |
api.*****.com | 1. Identify: clientType、clientVersion、sessionId 2. Authentication: sessionId方式 3. 请求数据格式:JSON Data=json&clientType&clientVersion&sessionId&****** |
api.*****.com | 1. Identify: clientType、clientVersion、sessionId 2. Authentication: sessionId方式 3. 请求数据格式:JSON Data=json&clientType&clientVersion&sessionId&****** |
移动客户端访问云端系统使用不同的认证方式,有 token 和 session 校验这两种。在IoT架构设计层面,云端为了验证每次移动客户端的请求都要求附带token,而每次移动客户端向云端请求token将增加云端服务的压力,故该联合网关报警产品允许单次批量获取token存储本地供请求时调用。默认每次申请10个token,将count值改为100甚至更多仍可获取相应数量的token
如果你接触过IoT设备,你会知道联合报警网关可搭配:烟雾探测器、水浸传感器、红外探测器等使用。实际上传感器与网关设备的绑定、解绑也存在安全问题
下面感觉跟写软件测试用例一样,emo了:
场景 | 内容 | 结果 |
---|---|---|
用户绑定设备的前提条件 | 用户登录成功后获取有效时间为5min的sessioni,设备提交绑定请求到服务器完成绑定 | 优势:实现未绑定设备不能注册到服务端,减小云端压 力 缺陷:不在同一局域网也可绑定设备 |
设备解绑的前提条件 | 用户主动删除绑定关系,新的绑定关系覆盖旧的绑定关系 | 优势:不存在退换货,但是用户没有解绑的业务风险 缺陷:设备被盗后还可以使用或二次销售,恶意用户可以通过二维码或设备编码强制绑定设备 |
预览的前提条件 | 绑定摄像头 | 无明显缺陷 |
Wi-Fi配置过程 | 重置设备之后,设备加电进入Wi-Fi配置状态,通过二维码的形式将Wi-Fi的ssid和密码传输给设备 | 无明显缺陷 |
设备序列号丢失的解决 | 对用户没有实质性影响 | 无明显缺陷 |
设备注册 | 云端通过deviceSerialNo、 sessionId以及validateCode 来验证设备的合法性,云端下发resultCode=0标注设备注册成功 | 优势:缓解设备序列号与验证码冲突的问题 缺陷:无明显缺陷 |
用户注册 | 通过手机验证码或邮箱注册 | 手机验证码注册:四位验证码可以爆破,发送手机短信 的接口可以给不同的手机号码发送短信,绕过60s限制 邮箱注册:四位验证码可以爆破 |
遥控、传感器与网关通信的频率为868MHZ,如下图所示:
抓取到的报警信号如下图所示:
休眠模式波形如下:
静默模式如下:
使用HackRF抓取传感器向联合报警网关发送的告警信号并重放,发现联合报警网关没有防重放机制,将抓取到的信号重放警报声马上响起
现在我们可以很容易地将IoT的各个组成部分隔离开来,并尝试为每个组件分别定义攻击面,然后将它们组合起来以创建 一个整体的概述。物联网生态系统的攻击面。我称其为IoT生态系统而不是IoT产品,因为它确实是一个由不同组件相互交谈并解决特定现实问题的生态系统。让我们继续定义IoT生态系统的攻击面,并详细讨论每个组件的攻击面。按组件划分的攻击面可以分为三个或四个(如果我们将通信作为攻击面)主要区域如下:
OWASP现在还在IoT安全方面做了很多工作。他们还定义了攻击面。希望大家可以好好阅读它。理解不同的想法是一件好事,因为它可以帮助您创建自己的综合攻击面
注意:
移动是物联网的重要用户界面之一,移动端是IoT用户了解物理设备状态的一个重要接口,移动App与IoT系统之间的命令发送和数据读取,是与IoT通信的窗口。通过它最终用户可以洞悉物理世界的状态。由于移动应用程序与IoT生态系统进行通信以发送命令和读取数据,因此它成为IoT生态系统的切入点之一。以下IoT系统移动端可能面临的一些攻击面:
云是物联网的重要组成部分之一,通常来自产品线所有实例的数据都在这里汇聚。这使其成为非常有趣的攻击点。记住,我在上一篇文章中提到物联网不仅与硬件有关。原因是云将保存所有已部署的IoT实例的数据,并具有向所有实例发送命令的特权。通常它是由用户启动的,但是如果受到威胁,攻击者将获得对全球部署的设备(及其数据)的控制权,这很危险。
IoT系统不只包括硬件,云端服务对IoT服务来说同样重要,它是产品线的各种实例汇聚,而实例中又包含了所有终端用户使用者的相关数据,同时云端服务还具备一定的命令执行权限,攻击者一旦成功渗透,就能对相关部署设备形成管理控制,危害甚大。总体而言,攻击面专注于它提供的接口,其中包括如下:
接下来是设备,它是IoT技术的游戏规则改变者。它与物理世界进行交互,并与虚拟世界进行通信。这是物理世界数据的第一站。鉴于围绕用户隐私存储的用户敏感数据(例如房屋数据,身体数据,个人信息),围绕用户隐私存在着整个争论。将来,设备可能会直接通过其钱包或单独的临时钱包使用用户的加密货币来购买物品,进行维修等。
当家电企业忙着让自己的家电“联网”“智能”的时候,人们并没有意识到这些智能硬件会成为无处不在的威胁,于是路由器被入侵、洗衣机被入侵、电视机被入侵、家用摄像头被入侵、专业的安防摄像头也被入侵,直到连智能网联汽车也被成功入侵并可以被远程控制!
除此之外,近年来涌现的热点 IOT 设备,如智能门锁,攻击者可以绕过云端验证或攻破云端防护,直接破解开锁。共享单车,可以通过特定攻击手段,无须支付即可开锁和屏蔽定位,实现共享单车的破解,更多的诸如智能手表,儿童手表等,都存在诸多的安全隐患。
对于传统硬件设备厂商而言,在硬件研发过程中,往往主要考虑的是对功能的实现,但随着物联网的发展,传统硬件开始走向云端,以往独立的设备通过云端成为了整体,因此也暴露出了越来越多的安全问题,然而多数厂商因工艺、生产、研发等原因,沿袭的依然是传统硬件的研发思路,在设备本身的安全性上没有引起足够的重视,从而留下了安全隐患,对硬件层面的安全性检测,是提升设备安全的有效手段。
IoT设备构成分为硬件和软件,硬件方面如下:
设备是任何物联网架构的关键,这里的设备指的是架构中所涉及的任何硬件设备(网关、传感器、遥控器等)。
硬件设备,它是物理世界的接口体现也是虚拟数字世界的通信媒介。相关的数据转换会首先经过硬件设备,由于它本身存储了用户相关的敏感信息(例如家庭统计数据、身体统计信息、个人信息等),所以这种用户隐私存储机制也存在一些争议。而在未来,不同硬件设备还能使用用户的电子钱包或绑定账户实现商品购买或远程维护等服务。其存在的攻击面可能有:
存储介质
认证方式
加密手段
通信方式
感应接口(传感器接口)
外设接口(外围接口)
硬件接口(硬件接口)
人机交互接口
在多数IoT智能环境中,设备通常包括网关和操作设备,网关作为其他设备的控制中心,而操作设备是执行实际动作的设备(如按键遥控器)或监控传感器(烟雾探测器、水浸传感器、红外探测器等)。
设备漏洞指的是嵌入式设备中常见的漏洞,比如:串口root权限访问,闪存中提取固件等…
硬件层面的攻击不同于传统的安全领域,它主要包括三个角度:不安全的调试接口、未保护的闪存芯片、硬件敏感信息的泄露
当IoT设备被制造的时候,调试接口比如UART会被留在电路板上以便维修。如果它缺少身份验证或者仅有弱身份验证,攻击者就可以通过接口来获得高权限,对固件进行修改或者替换。调试接口在IoT安全检查中排在第一位
UART(通用异步接收器发送器)是一个硬件组件,它允许两个硬件外设之间进行异步串行通信。它们可以在同一块板上(例如与电动机或LED屏幕对话的微控制器),也可以在两个不同设备之间(例如与PC对话的设备微控制器)之间。这是一个有趣的攻击面,因为它可能允许通过串行方式对设备进行读/写访问。在许多设备中,板上的UART端口保持开放状态,任何人都可以通过串行端口进行连接和访问,以获得某种类型的控制台,例如简单的外壳,自定义命令行控制台,日志输出等。设备通常具有一组针脚,输出连接到微控制器的UART RX和TX引脚,用于发送和接收串行数据
典型的4引脚UART端口:
微控制器具有使用指定的引脚在运行时进行调试的规定,这些引脚连接到板上的引脚输出。这些引脚(端口)供开发人员和设计人员用来调试,读取/写入固件和微控制器内部存储器,并在生产后控制/测试微控制器引脚。鉴于调试端口提供给攻击者的能力和访问权限,这使得调试端口成为最关键的攻击面之一。有一些用于此目的的标准接口如下:
JTAG(联合测试行动小组):随着微控制器和PCB越来越小,在生产后对其进行测试变得越来越困难。
因此,为了有效地在生产后测试电路板,电子行业创建了一个同名协会,
并定义了一种在生产后测试电路板的方法。后来改编为IEEE标准1149.1。
JTAG协议定义了可用于测试和调试微控制器的标准接口和命令。JTAG定义了四个引脚接口(和一个附加的可选引脚TRST)
TMS:测试模式选择
TCK:测试时钟
TDI:测试数据输入
TDO:测试数据输出
TRST:测试复位(可选引脚)
除测试芯片外,调试器还使用这些引脚与微控制器上实现的TAP(测试访问端口)进行通信。从安全角度来看,识别JTAG端口并与之连接可以使攻击者提取固件,对逻辑进行逆向工程并在设备上刷新恶意固件。以后会在以后的博客文章中提供更多信息
1)cJTAG(紧凑型JTAG):这是标准IEEE 1149.7中定义的新JTAG协议。它不会替代1149.1标准,而是会进一步扩展它,并且与JTAG向后兼容。它定义了两个引脚的接口(TCK和TMS)以及实现新功能的新TAP
2)SWD(串行线调试):SWD是用于调试微控制器的另一个接口/协议。它是一个两针接口:a。SWDIO(双向)b。SWCLK(时钟)这是ARM特定的协议,使用ARM调试接口v5中定义的ARM CPU标准双向有线协议。SWD的好处是它声称比JTAG更有效
PCB在JTAG端口(JTAG端口不一定是10个引脚),如下:
还有许多其他硬件接口用于与设备通信。作为最后一个阶段,分析并发现所有接口中的缺陷和旁路机制非常重要。一些众所周知的接口包括(但不限于):
d类微型- https://en.wikipedia.org/wiki/D-subminiature
ecommended标准(RS232,RS485等)–有关RS协议的更多详细信息,请参见 https://en.wikipedia.org/wiki/EIA_standards
板载诊断(OBD)– https://en.wikipedia.org/wiki/On-board_diagnostics
网络通讯接口
该接口允许设备与虚拟世界的其余部分进行对话,包括传感器网络,云和移动设备。负责网络通信的硬件接口可能具有提供通信功能的独立微控制器/固件。在这种情况下,攻击面是实施低级通信的固件或驱动程序代码
wifi接口存在一些已知问题。从攻击面的角度来看,攻击wifi芯片可能会损坏它,DOS,绕过安全限制或执行代码会很有趣
以太网接口(与wifi接口一样)具有低级别的TCP / IP堆栈漏洞,硬件实现漏洞和类似的攻击媒介
考虑到许多物联网产品已转移到/正在使用无线电通信构建,无线电接口已成为最重要的攻击面之一。优先选择源于以下事实:在许多情况下,通过Wifi /有线网络连接使用无线电更为有效。我将Wifi进行单独分类而不是在本节中进行分类的原因主要是为了清楚地区分可以直接连接到互联网的设备(Wifi /有线)和需要网关(例如智能集线器)的设备,这些设备必须同时实现无线电以及Wifi /有线接口,分别用于与传感器和Internet进行通信。从实际的通信角度来看,可以将其视为两种不同的通信模式:
1)Bluetooth and BLE
2)ZigBee
3)Zwave
4)NFC
5)RFID
6)LORA
7)Wireless HART …
因为闪存通常用来存储固件,因此也成为了关注的重点。如果芯片没有读写保护,安全研究者就可以通过读取固件来分析或者修改固件,来绕过接口的身份验证
这些用于各种用途,包括读/写传感器数据,引导程序,固件,凭证,密钥等。在测试硬件板时,查看存储在芯片上的数据至关重要。我们还可以对内存和微控制器之间的通信进行运行时分析,以分析在不同操作期间存储/读取的数据类型。这可以通过使逻辑分析仪嗅探总线通信来实现。在触发设备上的特定操作时,您会发现正在读取/写入的有趣数据。内存芯片有以下几种:
I2C串行EEPROM:
当谈到易失性内存时,“ RAM”一词立即浮现在脑海中。它们广泛用于PC和嵌入式系统中,并在运行时保存代码和数据。关闭设备电源后,数据将丢失。一些常见的RAM类型如下:
硬件电路的密封性并不好,诸如声音和电量消耗的硬件信息泄露可以造成侧信道攻击,攻击者可以由此获得重要的信息,比如密钥
集成电路间是一种短距离通信协议,用于在同一板上的芯片之间进行通信。它是由飞利浦(现在为NXP)发明的。它具有主从(多)架构,并使用两线总线
I2C的一种使用情况是在EEPROM芯片中,该芯片连接到微控制器的I2C引脚,通常存储数据或代码。典型的攻击包括篡改数据,提取敏感信息,破坏数据等。我们应该分析EEPROM芯片上的静态数据,以及通过嗅探I2C通信执行运行时分析以了解行为和安全隐患
串行外设接口也是一种短距离通信协议,用于在同一板上的芯片之间进行通信。它是由摩托罗拉公司开发的。它是全双工的,并使用主从结构(单个主服务器)。与I2C相比,它还具有更高的吞吐量。它使用四线串行总线:
包括SIMO,SDI,DI,DIN,SI,MTSR
SOMI,SDO,DO,DOUT,SO,MRST
S?S?,SSEL,CS,C?S?,CE,nSS,/ SS,SS#
它用于与各种外围设备通信。闪存和EEPROM芯片也使用SPI。测试和分析的方法类似于I2C,只是我们具有不同的总线接口。
该设备可以具有用于充电或通讯的USB(微型/微型等)接口。对于后者,有必要测试接口的已知或未知问题。我们应该嗅探通信以进行运行时分析,并模糊USB接口中的未知错误
这是一个宽松的名称,我们指的是与物理世界的接口。它可以不必限于感测类型的接口。例如,温度传感器将是一个完美的例子,但门锁除了“ Lock / Unlock”(锁定/解锁)动作可控制物理世界之外,什么也不会感测。根据它们的操作,它们可以分为三种类型:
尽管通信攻击不是一种有形的攻击,其理想的有形攻击面将是通信接口和负责通信的各个驱动器和固件,但这只是其中的一部份,因为无数通信协议会共同在有线和无线介质上作用于物联网生态系统。以下是通信方式可能存在的攻击面:
硬件接口允许实际通信。但是,实际的数据通信/数据包是由软件中实现的上层定义的。因此,在此“攻击表面积”(通信)中,我们将仅讨论协议。尽管协议中的缺陷可能导致对驻留在移动设备,设备或云上的协议端点的攻击,但为清楚起见,我们将其保留为单独的攻击面。这里的列表中有太多标准要提及。但是,我们将列出各种物联网产品中使用的一些常见协议:
物联网协议一般分为两大类:
无线电通信是IoT架构安全的重要方面,基于无线电通信,简单说任何通信都是发生于设备与设备或应用程序与设备之间。IoT中常用的通信协议有:WiFi、BLE、ZigBee、ZWave、6LowPAN和蜂窝数据等
将物联网协议分解为以下层以提供一定程度的组织:
可以在如下链接找到 Contiki、Riot OS 等物联网软件项目的列表:
http://postscapes2.webhook.org/internet-of-things-software-guide
以太网
WirelessHart:WirelessHART 技术为各种过程测量、控制和资产管理应用提供了强大的无线协议
DigiMesh:DigiMesh 是一种专有的对等网络拓扑,用于无线端点连接解决方案。
ISA100.11a:“ISA100.11a 是由国际自动化协会 (ISA) 开发的无线网络技术标准。官方描述为《工业自动化无线系统:过程控制及相关应用》
IEEE 802.15.4:IEEE 802.15.4 是一种标准,它规定了低速率无线个人区域网络 (LR-WPAN) 的物理层和媒体访问控制。它由 IEEE 802.15 工作组维护。它是 ZigBee、ISA100.11a、WirelessHART 和 MiWi 规范的基础,每一个规范都通过开发 IEEE 802.15.4 中未定义的上层进一步扩展了标准。或者,它可以与 6LoWPAN 和标准互联网协议一起使用,以构建无线嵌入式互联网
NFC:基于标准 ISO/IEC 18092:2004,使用中心频率为 13.56 MHz 的电感耦合设备。与无线传感器网络相比,数据速率高达 424 kbps,范围只有几米
ANT:ANT 是一种专有的无线传感器网络技术,具有无线通信协议栈,使在射频频谱(“ISM 频段”)的 2.4 GHz 工业、科学和医疗分配中运行的半导体无线电能够通过建立共存的标准规则进行通信、数据表示、信令、认证和错误检测
蓝牙:蓝牙工作在 2.4 GHz ISM 频段并使用跳频。数据速率高达 3 Mbps,最大范围为 100m。每个可以使用蓝牙的应用程序类型都有自己的配置文件
Eddystone : 一种协议规范,定义了用于接近信标消息的蓝牙低功耗 (BLE) 消息格式
ZigBee:ZigBee 协议使用 802.15.4 标准并在 2.4 GHz 频率范围内以 250 kbps 运行。网络中的最大节点数为 1024,范围可达 200 米。ZigBee 可以使用 128 位 AES 加密。
EnOcean:EnOcean 是一种能量收集无线技术,适用于欧洲的 868 MHz 和北美的 315 MHz。传输范围在建筑物内可达 30 米,在室外可达 300 米。
无线网络
WiMax:WiMax 基于标准 IEEE 802.16,适用于无线城域网。固定站的范围不同,最长可达 50 公里,而移动设备的范围为 5 到 15 公里。WiMAx 以 2.5 GHz 至 5.8 GHz 的频率运行,传输速率为 40 Mbps
GPRS/2G/3G/4G/5G 蜂窝
开放信任协议 (OTrP):一种用于在可信执行环境 (TEE) 中安装、更新和删除应用程序以及管理安全配置的协议
X.509:用于管理数字证书和公钥加密的公钥基础设施 (PKI) 标准。传输层安全协议的关键部分,用于保护 Web 和电子邮件通信
物联网设备通常使用的是以下通讯方式:
直连模式是近距离传输,一般通过无线(蓝牙、WIFI、NFC等)以及有线(USB、网线、电缆)进行操控设备
网关模式由中心路由或网关统一操控,方便做身份验证、流量识别
云模式中除了HTTP、FTP、SSH等通用服务外,MQTT、AMQP、CoAP等与云端服务通信所使用的协议也是研究的重点
协议接口层的攻击包括了通信和API,它涉及到用户侧直接控制和由云端间接控制的设备,以及以上两种通信过程中的信息保护问题,并不涉及到协议的安全。例如,IoT通信协议的滥用和AR-Ddos攻击正是通过IoT通信协议CoAP、SSDP和SNMP执行的,它的目标不是IoT设备,但是它也是IoT安全一个重要的研究方向。协议接口层的攻击主要包括一下三个角度:不安全的远程管理接口、数据传输过程中的信息泄露、弱身份验证
为了方便管理,IoT设备使用http服务之类的远程管理方式,这带来了诸多漏洞,例如sql注入、XSS和远程执行漏洞等
IoT通信协议使用了弱加密算法或者根本不进行加密,导致敏感信息泄露。例如论文Passwords in the Air中提到的,当IoT设备接入网络时,WiFi密码以明文传输
由于安全需要,管理IoT设备需要身份验证绑定,于是产生了一个新的攻击面。攻击者可以绕过身份验证,重复绑定然后获得用户的信息,论文Phantom Device Attack在这个攻击面上找到了四种攻击方法
IoT设备构成分为硬件和软件,软件方面如下:
物联网设备中的软件和云组件包括以下元素:
IoT架构中每个“组件”部分都有特定的漏洞,此处内容后面再讲。
软件层面的攻击对应着设备构成中bootloader和固件的软件部分,它主要包括以下五个方面:不安全的bootloader、不安全的操作系统、固件敏感信息泄露、不安全的应用服务、不正确的配置策略
因为bootloader是一段在设备运行后加载的代码,因此是一个容易被忽略的攻击点。它的功能是初始化并加载固件,因此当问题出现时它的危险程度很高。例如checkm8这个Boot ROM 漏洞被称为是iphone、ipad、apple TV和 apple watch上的史诗级漏洞
由于研发周期短和轻量化的需求,IoT设备的操作系统内核是定制的,版本也不经常更新,这导致了大量的缓冲区溢出问题,如提权等。除此之外,设备使用了各种各样的传感器和通信模块,包括内核中大量的驱动。例如,Marvell WiFi芯片驱动找到了多个漏洞,包括 CVE-2019-14901, CVE-2019-14897 和CVE-2019-14896,它们导致了内核中基于栈或堆的缓冲区溢出。这也是攻击面中重要的一部分
IoT设备的本地存储通常使用轻量化的存储方案,开发者通常忽略了它的安全性,并使用了明文或只是进行了简单的加密,这很容易导致敏感数据的泄露
设备使用的存储空间。这可以进一步分为内部和外部,持久性和易失性
SD卡通常用于存储配置和产品数据。它们也可以用于存储固件更新。这是一个非常有趣的攻击面,我们将在以后的博客文章中讨论通过SD卡可能发生的某些攻击
某些产品可能使用USB驱动器来存储与SD卡中相似的数据,以及读取已下载或存储在USB驱动器中的数据。与SD卡类似的攻击也适用于USB存储设备
应用服务开发缺少安全标准。为了加快产品的开发,通常直接编译、使用了简单、不安全的应用代码,因此引入未知的漏洞。IoT安全研究者们已经发现了大量开发时产生的应用漏洞,包括出于未知原因留下的后门
为了方便管理IoT设备,ssh、telnet等服务是默认的开启,这样会造成配置问题。默认配置下的弱验证策略使攻击者容易获得设备的权限。例如,Telestar Digital GmbH 的物联网收音机可通过未经验证的telnet服务器被远程攻击者劫持利用,这些漏洞已经被CVE-2019-13473和CVE-2019-13474收录
与传感器接口一样,我们使用HMI作为通用术语来定义用户与设备之间的接口,而并不局限于工业控制系统中使用的术语。这是用户可用来与设备通信并直接在其上进行操作的界面。一些常见的例子是触摸屏,按钮,触摸板等。测试此接口以发现任何旁路机制,安全漏洞等非常重要
物联网操作系统是运行在物联网设备上的提供物物相连能力的操作系统,其核心在于能够将各种物体连接到互联网,并提供数据通信能力。
如果把常见的操作系统按照其应用场景进行分类,可主要分为桌面操作系统、移动操作系统和物联网操作系统,各个领域主要操作系如下:
到目前为止,桌面操作系统和移动操作系统目前市场占比都形成了比较稳定的格局。相比之下,物联网操作系统领域的碎片化问题则非常严重,并没有哪几个操作系统占据绝对优势,正处于“百花齐放、百家争鸣”的阶段。
大部分物联网操作系统是从嵌入式操作系统发展而来的,像uC/OS、FreeRTOS等,也有一些是从Linux、Android等大型系统裁剪而来,像RT Linux、Android Things等,而AliOS Things则是专门为物联网应用场景而研发的
当然,肯定不止这么一点,还有其它的物联网操作系统,此处只列出部分,如下:
https://github.com/attify/firmware-analysis-toolkit
过程的主要目的,是从其周围的传感器收集数据或向其周围的执行器发出数据。设备应该需要与数据收集源连接,这些设备要么自行工作(本质上是自主的),要么可以由用户根据他们的需要工作(用户控制)
例如,传感器的气体传感器、水质传感器、湿度传感器等
处理器是物联网系统的大脑,主要的功能是对传感器捕获的数据进行处理,以便从收集的海量原始数据中提取有价值的数据,可以说它为数据提供了智能。处理器大多是实时工作的,可以很容易地被应用程序控制。它们还负责保护数据——即执行数据的加密和解密。
嵌入式硬件设备、微控制器等是处理数据的设备,因为它们附有处理器。
网关有助于数据的来回通信。它为数据提供网络连接。网络连接对于任何物联网系统进行通信都是必不可少的
例如,LAN、WAN、PAN 等是网络网关
应用程序构成物联网系统的另一端。应用程序对于正确利用收集的所有数据至关重要。这些基于云的应用程序负责为收集的数据提供有效的含义,应用程序由用户控制,是特定服务的交付点。
例如,包括家庭自动化应用、安全系统、工业控制中心等
目前IoT安全研究大致分为三大部分:
IoT固件分析领域:
硬件领域:
无线电领域:
参考链接:
https://blog.csdn.net/weixin_44309300/article/details/118525929
https://blog.csdn.net/prettyX/article/details/120914901
https://blog.certcube.com/iot-pentesting-for-beginners/
https://blog.csdn.net/wweiru/article/details/90613617
https://blog.csdn.net/HiWangWenBing/article/details/107570137
https://blog.certcube.com/iot-primer-for-pentesters-iii/
https://paper.seebug.org/1045/#_3
https://blog.csdn.net/HaaSTech/article/details/120671550
https://blog.csdn.net/HaaSTech/article/details/116699087
https://blog.csdn.net/weixin_44540329/article/details/104074540
https://www.anquanke.com/post/id/84762
https://blog.csdn.net/weixin_47200070/article/details/123458828
https://blog.csdn.net/sunweixiang1002/article/details/106363128
https://blog.csdn.net/xu_xy1/article/details/89704452
https://www.freebuf.com/geek/154059.html
你以为你有很多路可以选择,其实你只有一条路可以走
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。