物联网安全是个全栈的行为,是“服、用、云、管、边、端”全生态统一协作联合布防才能生效的课题,仅仅从物联网设备端采取严防死守的策略并不能阻抗已经渗透到各个角落的APT攻击。因此我们可以从物联设备启动、Rootkit注入保护、DDOS攻击防御、设备安全准入、数据和协议安全等几个方面综合考查物联网安全的应对之策。除此之外,还要保证物联网管控平台、云平台、互联互通接口、物联网业务系统等基础设施的安全。
1.基于可信计算的安全启动技术
可信计算是由TCG(Trusted Computing Group,可信计算组织)推动和开发的安全计算技术,在计算和通信领域中广泛应用基于硬件安全模块的可信计算平台以提高整个系统和应用软件的安全性与完整性。作为一门新兴技术,其主要目标包括计算平台的完整性、平台的远程证明、数据存储的安全性、数字知识产权保护。
作为高级可持续威胁(APT),如果不是潜伏在系统的最深层,如果不是先于操作系统加载,如果不能在启动过程中制衡保护软件实现对自己“免杀”,那实在不好意思称自己是“合格的APT”。对于这样心高气傲神通广大的威胁代码,唯一的办法就是先于它掌控系统的运行权。可信计算技术就是这场“运行权战争”中的“定海神针”,采用层层度量的方式校验每一个启动步骤的完整性和正确性,通过信任链的可传导性来保证计算平台的完整性。
度量是一级级从底层向上逐级度量的,通常是以先启动的软硬件代码(例如安全芯片)作为信任根,并以此为标准对后一级启动的软硬件进行度量,如此实现信任链的向后传递,以保证系统计算环境可信。整个过程遵循“先度量再执行”的策略,例如在Windows系统启动时,可以以BIOS中的某段代码为核心信任根模块(可信根),对启动链上的BIOS/UEFI、WinLoader、操作系统镜像文件等进行逐级静态度量(如图1所示)。
图1 操作系统启动的信任链
可信根作为整个系统信任链的最底端必须绝对可信,因此可信根一般是通过厂家在安全芯片中直接植入算法和密钥实现的,具有不可覆盖性,因此这部分代码也被称为可信软件基(TSB,Trusted Software Base)。
ARM作为老牌的处理平台厂商亦针对消费类物联设备的安全保密与可信计算提出了TrustZone技术。该技术本质上是一种硬件平台结构和安全框架,将片上系统的软硬件资源分为安全世界与非安全世界(类似X86系统下的0环和3环),通过访问权限的差异性来保证资源的安全性,非安全世界和安全世界通信需要通过中间的Monitor Mode进行转换(如图2所示)。
图2 TrustZone架构视图
2.Rootkit防御技术
Rootkit是系统安全领域老生常谈的一个话题,无论采用哪种处理器架构,也无论在什么操作系统中,Rootkit都鬼影相随。所谓Rootkit,就是系统中以隐藏自身、控制设备和获取隐私信息为目的的恶意代码。物联网设备“中的招”十有八九就是以获取信息和控制设备为特征的Rootkit恶意进程/代码模块,因此对于Rootkit的防御就显得尤为重要。
Rootkit的执行特征如下:
(1)将恶意代码放置在内存的数据区,通过堆栈溢出等手段在数据区执行这些代码。
(2)通过远程线程、默认加载等方式将恶意代码模块加载到应用进程中,即“模块注入”。
(3)通过挂钩操作系统的重要方法(例如系统调用或中断响应例程等)来获取自己渴求的数据。
(4)通过过滤型驱动挂钩网络协议栈,以获取重要网络流量并对数据包进行篡改。
(5)通过挂钩重要可执行模块的EAT/IAT(导出/导入地址表)的方式改变进程执行流程。
从上述Rootkit的运行特征可以反向推导出防范抵御Rootkit攻击的手段。Windows系统在抵御Rootkit方面走在了前面,由于Windows系统的运行环境和计算资源都比较宽松,因此拥有更多的机制和手段保障安全性。而对于物联网的系统,由于其功耗、计算资源等方面的限制,操作系统一般比较精简,因此有针对性地制定Rootkit防御机制就更显必要。
(1)物联网设备通信模块短小精悍,一般不存在协议栈的说法,因此通过过滤型驱动截取网络数据包的方式在物联网设备中不会存在。
(2)物联网系统不存在远程线程、默认加载等复杂的应用机制,因此无需考虑模块注入问题。
(3)堆栈溢出在物联网系统中是比较常见的,因此可以采用类似Win7的数据执行保护(DEP)机制阻止恶意代码在内存数据区被执行。
(4)物联网系统同样也存在中断响应例程、系统调用服务例程等重要的方法,依然需要防止这些重要部位被挂钩。可以采用类似Windows的PatchGuard机制防止这些重要部位被改写。
(5)可采用内核进程签名校验的机制阻断不明进程的安装和运行。
3.抗DDOS攻击技术
DDOS攻击也是网络安全领域亘古不变的话题,无论物联网还是视联网,只要还支持TCPIP协议就面临被DDOS攻击的危险。DDOS是一种攻击大类,核心思想是通过车轮战使目标系统疲于应付而无法正常运行其他进程,它包括细分的多种攻击手段,常见的有以下几种:
(1)SYN Flood
通过伪造大量不存在的IP地址,在极短时间内向服务器不间断发送SYN包,服务器回复确认包SYN/ACK,并等待客户端永远都不会响应的确认回复。如此服务器需要不断重发SYN/ACK直至超时,这些伪造的SYN包将长时间占用未连接队列,正常的SYN请求被丢弃,导致目标系统运行缓慢甚至瘫痪。这是利用TCP传输特性制造的“车轮战”。
(2)ICMP Flood
极短时间内向目标主机不断请求ICMP 回应,导致目标系统负担过重而不能处理正常的IO业务。这是利用ICMP协议制造的“车轮战”。
(3)UDP Flood
极短时间内向目标主机发送大量UDP 报文,致使目标系统负担过重而不能处理正常的IO业务。这是利用UDP协议制造的“车轮战”。
(4)ARP Flood
攻击者可以在极短时间内发送大量ARP请求包以阻塞正常网络宽带,使局域网中有限的网络资源被无用的广播信息所占用而造成网络拥堵。这是利用ARP包制造的“车流战”,瘫痪的是承载网络。
除了上述几种利用二三四层协议营造的DDOS攻击外,应用层、会话层协议亦可以制造DDOS攻击的效果,例如通过短时间超大量的HTTP请求使WEB服务器崩溃、在短时间内通过超大量的流媒体会话协议使视频服务器崩溃等等,这些攻击手段都迎合了DDOS攻击的本意,即极限施压使之疲于应付而崩溃。
一般情况下DDOS攻击的抵御是通过引流的办法,即首先需要防护系统判断发生了DDOS攻击,再启动流量引流机制,将DDOS攻击包引导到攻击缓冲区域进行消化。由于物联网领域设备数量庞大,尤其要注意防DDOS攻击的问题。
(1)在IPv4环境下多采用私网穿透的方式与外部系统进行通信。由于私网穿透通信的单向性,外部系统主动发起DDOS攻击的可能性较低,特别是在部署了对称性NAT服务的时候,从外向内通信的限制非常严格,也能在一定程度上阻断DDOS攻击流。
(2)物联网与互联网之间也会存在网络隔离设备,例如安全接入平台或网闸,其安全级别可以自主设置。虽然其通信效率较低,但能够对网络包进行深度检测(DPI),也能在一定程度上阻抗DDOS攻击流。
4.物联网设备指纹技术
设备指纹是近年来新兴的物联网设备接入准入技术。其核心原理是通过设备的操作系统、厂商ID、MAC地址、端口号、IP地址、协议报文种类等属性生成一系列固定的且与每个设备相关的私有信息,以达到识别设备的唯一性。物联网平台通过设备指纹库识别设备,对于非指纹库内的设备可进行阻断和报警。传统识别设备唯一性的方法是通过ID,但这种方式存在相当大的可仿冒性和可替换性,且由于设备ID一般处于OSI协议栈的高层,仿冒的门槛也更低。而通过设备指纹标识设备的唯一性却具有很低的可仿冒性和可替换性。
(1)设备的操作系统会带有一定的标识,例如版本号、厂商ID等,对于这些属性的仿冒并不容易,可能要通过Patch的手段改动内核态变量。
(2)MAC地址、IP地址、端口号等属性具有设备的唯一性,虽然也具有仿冒性,但仿冒这些联合的属性也并不容易。
(3)协议报文虽然遵循一定的标准,但每个厂商的设备协议的报文头或报文体多少会有些私有信息存在,例如SIP协议头域中的User-Agent属性就会附带厂商信息。再比如协议交互的时间间隔、回复特征等这些更加细微的区别也是设备指纹的重要组成部分。
因此,通过设备指纹鉴定设备的唯一性、检测设备在线、设备私接、设备仿冒具有很高的不可仿冒性和不可替代性。
设备指纹生成包括主动探测和被动监听两种方式。
(1)主动探测方式的主要思想是主动向物联设备发送ICMP、UDP包,或者主动建立TCP连接,甚至主动发起一些应用层以上的协议来探测设备的回复信息(例如ICMP echo reply、ICMP端口不可达、HTTP Response等报文),根据这些报文来识别设备的特殊属性。有的厂家也会支持一些私有协议专门用以标识设备的不可仿冒性。
(2)被动监听方式的主要思想是通过网络探针监听设备的交互报文,并将这些报文旁路到采集端进行分析,通过源端口、源地址、MAC信息、报文特征等信息判别设备的不可替换性。
图3 一种基于OSI协议栈指纹回声的物甄别系统
设备指纹已在视频监控领域有了较为广泛的应用。但在物联网其他领域,由于协议报文种类的繁杂性,且许多设备并不处于TCPIP网络中,因此尚无太多的应用场景。
5.数据安全技术
物联网数据安全包括数据本身的安全和协议安全两重内涵。但无论是哪种内涵,其本质都是对数据和协议报文的加解密,当然也包括协议的证书认证机制。在安防领域,公安部早已制定了GB35114标准,并根据密级高低划分了ABC三个等级,分别对协议报文进行认证加密、对视频NAL进行认证以及对视频内容本身加解密。
国家强制性标准的加持是对数据安全的最强注脚。