物联网安全概述
物联网的本质,是从端到云的数据交互及计算过程。根据这个特点,可以将物联网划分为3个层次:云、网络和设备,也就形成了物联网的攻击面。
其中,云层包括云端提供的服务,例如物联网平台、日志等等;
网络层代表云和设备、设备与设备之间的传输过程;
设备层包括了IoT设备、网关设备及其上的系统和应用。
对黑客而言,以上三个层次都具有攻击的价值。在IoT架构中,我们可以把安全威胁归类为以下几种:
身份伪装
通过获取的认证信息,将恶意的设备、服务伪装成合法设备和服务。
拒绝服务
使服务、设备或网络传输过程瘫痪。
数据篡改
对系统、应用和数据进行篡改。
信息窃取
窃取隐私信息。
越权
强迫应用进行超过其权限范围的行为。
结合安全威胁类型和IoT系统架构,总结出了如下的威胁模型:
在IoT架构的不同层次上,均有与设备端OS相关的安全威胁存在;而IoT设备资源受限、物理暴露等特性,直接导致了设备端安全能力的不足。接下来,结合具体场景,对与设备端OS相关的安全风险逐一进行分析。
安全风险分析与防范手段
S1:身份伪装
阿里云已经为IoT设备提供方便的上云方式。对于设备认证,阿里云目前提供了设备证书、LinkID2等认证方案。对于开发者来说,最常用的方式是通过设备认证信息认证:开发者从云端服务获取设备认证信息,并将其烧写到设备上。当设备连接云端时,阿里云会根据设备认证信息对设备进行认证。在这种场景下,如果能够通过漏洞或物理接触窃取到设备认证信息,黑客就能够将其他设备伪装成用户的设备,从而向用户发送伪造数据。
防范手段
通过加密保护设备认证信息。
在具备SE的情况下,利用SE对加密密钥进行保护。
在不具备SE的情况下,利用keychain对加密密钥进行保护。
N2:数据篡改 & N3:信息窃取:
对于设备之间、设备端与云端之间的不安全通信,黑客可以发起中间人攻击,截获数据包并提取隐私数据,或者对数据包中的数据进行篡改和继续转发。
防范手段:
为传输过程进行TLS加密保护。
D1:身份伪装
通过DNS欺骗,黑客可以直接伪装云端服务。如果设备端应用未进行双向验证,黑客可以伪装云端服务与设备进行数据交互、操纵设备;在设备间通信时,如果设备上开启了被动连接服务,黑客可以利用窃取的认证信息伪造合法设备与目标设备交互。
防范手段:
提供认证服务端的能力,例如提供CA证书。
通过ID2支持双向认证。
禁用设备上的被动连接服务,设备之间通过云端通信。
D2:数据篡改
与服务器不同的是,IoT设备常常会处于“暴露”的状态。这意味着在设备端,黑客不仅能够利用应用和内核中的漏洞对设备上的系统、应用和文件进行篡改,还能通过物理接触的方式篡改设备上的内容。物联网产品从出厂后到投入使用的整个生命周期中,会接触到许多不同的角色,任何一个环节都可能出现威胁。
防范手段-针对利用漏洞的情况:
利用KSPP降低内核漏洞的威胁。
注:KSPP(Kernel Self-Protection Project)是为了让 Linux 内核本身具有对漏洞利用的防御能力,主要工作是参考 PaX/Grsecurity 的实现来移植或者重新实现类似的功能然后推进到 Linux 内核主线。
通过安全扫描保证设备端应用的安全性,并通过OTA支持漏洞补丁。
利用沙箱机制限制应用漏洞的能力。
提供只读rootfs。
通过安全启动 + IMA的整体方案防止篡改。
提供TEE保护隐私信息。
防范手段-针对物理接触的情况:
根据场景提供不同粒度的加密方案。
利用SE或keychain提供加密可信基。
通过安全启动 + IMA的整体方案防止篡改。
D3:信息窃取
设备上不仅会保存了隐私数据,还有应用的可执行文件。通过漏洞或物理接触,黑客可以直接获取用户隐私(例如摄像头数据、密钥等),还能获得应用的二进制文件以进行逆向分析。
防范手段-针对利用漏洞的情况:
利用沙箱限制应用漏洞的能力。
利用KSPP降低内核漏洞的威胁。
通过安全扫描保证设备端应用的安全性,并通过OTA支持漏洞补丁。
提供TEE保护隐私信息。
防范手段-针对物理接触的情况:
根据场景提供不同粒度的加密方案。
利用SE或keychain提供加密可信基。
提供代码混淆能力。
D4:越权
当黑客利用漏洞攻破设备上的某个应用时,他可能会迫使应用进行默认权限之上的行为:例如关闭系统、访问其他应用的数据、大量占用系统资源。黑客可以通过越权直接进行攻击,或者为其他攻击方式提供条件。
防范手段:
通过安全扫描保证设备端应用的安全性,并通过OTA支持漏洞补丁。
利用沙箱限制应用漏洞的能力。