一种面向TinyOS的物联网系统信息安全测评工具Word格式文档下载.docx
《一种面向TinyOS的物联网系统信息安全测评工具Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《一种面向TinyOS的物联网系统信息安全测评工具Word格式文档下载.docx(9页珍藏版)》请在冰豆网上搜索。
tinyos;
testtool
0引言
物联网(theinternetofthings,iot[1])是近几年提出的概念,在实际应用中,可以把感应器、处理器和无线通信模块嵌入或装备到电网、铁路、桥梁、隧道、公路、建筑等各种物体中,使它们相互连接,构成物联网。
以tinyos[2]、zigbee、rfid为代表的新一代信息技术在物联网的应用过程中已经得到广泛应用。
其中的tinyos是美国加州大学伯克利分校开发的一种专门应用于传感网节点的操作系统,设计精巧、易于安装,为尽量降低能耗,在结构上舍弃了经典操作系统常用的复杂的进程调度、内存管理和安全机制。
目前tinyos传感网操作系统已广泛地应用于传感网节点上,成为传感网操作系统的事实标准。
伴随物联网在各行业各领域内的应用推广,信息安全问题成为制约物联网规模化应用的重要因素之一。
与传统的互联网相比,物联网面临着更为严峻的安全挑战。
一是传感器节点安全。
传感器节点呈现多源异构性,通常情况下运算速度低(8051级别的cpu)、携带能量少(使用电池),节点运行的软件例如tinyos应用程序就不能做得十分复杂,这使节点无法拥有比较完善的安全保护能力,在面对伪造报文和窃听等恶意攻击行为时相当脆弱。
二是传感网安全。
传感网中节点数量庞大,例如zigbee协议在同一网络内最多可支持65535个节点,tinyos支持的节点数量也无严格限制,因此导致大量数据发送使网络拥塞,产生拒绝服务攻击。
此外,现有网络的安全架构都是从人通信的角度设计的,对以物为主体的物联网,要建立适合感知信息传输与应用的安全架构。
三是业务安全。
物联网业务平台有不同类型,如云计算、分布式系统、海量信息处理等,这些平台要为上层服务和行业应用建立起高效、可靠和可信的系统,而大规模、多平台、多业务类型使业务安全面临新的挑战,是针对不同的行业应用建立相应的安全策略,还是建立相对独立的安全架构?
因此,物联网的安全特征体现了感知信息的多样性、网络环境的多样性和应用需求的多样性,网络规模和数据量大,决策控制复杂,给安全研究提出了新的挑战。
1现有物联网安全测试工具介绍
从前述物联网安全问题的阐述可知:
任何物联网系统在运行的第一天起就面对着形形色色的安全挑战。
如何尽早地发
现这些安全隐患是推动物联网安全测试工具发展的原始动力。
当前的物联网安全测试工具的发展情况以及各种工具的特点是下面我们需要分析的。
既有网络安全工具的问题
目前主流的网络安全测试工具有ibm的appscan、赛门铁克sitm等工具。
这些工具虽然在互联网中得到广泛应用但是并不适合在物联网环境下使用。
原因是物联网从底层到高层都不同于互联网:
例如物联网中占很大比重的传感网使用的协议是zigbee,不是tcp/ip,也不是以太网;
操作系统是tinyos,不是windows、linux和ios。
因此,主流的安全测试工具并不适合于物联网领域,必须针对物联网的特点开发专门的测试仿真工具。
对当前的物联网安全测试工具的分析
物联网安全问题受到人们的普遍关注,相关的安全测试仿真工具也得到了快速发展。
以下将介绍一些科研机构开发的安全测试工具及其功能和结构。
这些系统有的面向通用领域的物联网安全,有的针对特定范畴的安全问题,反映了当前物联网安全测试仿真工具的研究特点。
sensec系统
sensec[3]是美国加州大学洛杉矶分校开发的一种物联网信息安全测试系统。
sensec主要由真实应用模拟器(realapplicationsimulatorras)、攻击库(attackrepositoryar)、攻击控制器(attackcontrollerac)三部分组成。
其结构如图1所示。
真实应用模拟器包括了离散事件模拟器(discreteeventssimulatordes)和传感器应用程序两部分。
离散事件模拟器提供对物理层和链路层的模拟。
目前的离散事件模拟器使用的是qualnet模拟器。
攻击库包括一些组件和对这些组件的设置机制。
这些组件主要有通用化定义组件(generalizedefinitiongd)和特定应用定义组件(application-specifieddefinitionasd),提供了对攻击案例的定义手段。
利用gd组件定义好的案例与具体平台无关,具有较好的可移植性。
而利用asd组件定义的案例与具体平台有关,具有更强的针对性。
攻击控制器实际执行仿真过程中的攻击行为。
攻击控制
图1sensec系统结构图器包括了攻击发生器(attackgeneratorag)、攻击执行器(attackexecutorae)、模拟状态处理器(simulationstateprocessorssp)和des接口(desi)。
攻击发生器用于自动产生可能的攻击程序(与平台相关);
攻击执行器和模拟状态处理器协同完成模拟的攻击行为。
desi接口使得攻击可以扩展到其它支持本接口的模拟器上。
sensec属于通用的物联网安全测试仿真工具,与具体的通信协议如zigbee、操作系统如tinyos结合并不是很紧密。
banaid系统
banaid[4]是澳大利亚新南威尔士大学开发的一种研究传感网蛀洞攻击的测试网络。
如图2所示,banaid由两种无线传感节点组成。
一类是普通的无线传感网节点(mica2),如图2中的椭圆形节点所示;
一类是用于模拟蛀洞攻击的攻击节点stargate,如图中的六角形节点所示。
在无线传感网节点上运行的都是基于tinyos的程序,通信协议为zigbee。
stargate节点是基于英特尔pxa225处理器开发的无线通信节点,可通过插槽与无线传感网节点直连并给该传感节点供电,因此可以与其它普通无线传感网节点通信;
但stargate节点最大特点是相互之间可通过wifi无线协议传递数据。
图2banaid系统结构图
banaid的蛀洞仿真过程如下:
以常用的自组网按需距离向量路由算法(adhocondemanddistancevectoraodv)为例,正常情况下stargate节点关闭,1、4节点之间的通路只有一条,即通过节点2、3形成的链路通信。
在蛀洞测试时,stargate节点启动。
1、4节点之间的通路不再只有节点2、3链路还有节点5、6链路。
由于stargate节点可以wifi通信,而wifi的速率比zigbee快,加之aodv算法只关注邻近节点的通信效率,那么很快1、4节点都会在路由表中分别选中速度更快的5、6节点从而顶掉原来的2、3节点。
而5、6节点之间的链路并非zigbee,这样,“蛀洞”就出现了。
banaid工具侧重于研究蛀洞攻击,主要是路由协议层次。
tap-sns系统
tap-sns[5](testingalgorithmandprotocolsforsensor.networksecurity)是德国不莱梅大学开发的物联网
信息安全仿真与验证系统,可提供安全测试和仿真服务。
在硬件部署之前仿真与验证各种加密机制,提高开发效率,降低开发成本。
图3tap-sns系统作用图
在传感网中按照一般存在以下几类节点:
采集节点、簇节点(网关节点)和控制节点,不同节点由于成本等因素,不能采用同样强度的通信安全机制。
因此,在设计和验证传感网的通信安全机制时,就需要平台具备灵活的支持能力,包括不同的报文定义手段和加密函数接口,这样就可以在x86平台上对于将要部署在嵌入式平台的应用软件的通信安全性进行仿真和验证,通过调整时隙、握手等参数,开发出易于在嵌入式平台上运转的通信软件。
tap-sns提供了encrylib加密库和wsnmanager管理器供上述仿真和验证。
加密库可模拟不同的加密程序,例如utesla等软件。
管理器(见图4)运行在模拟的采集节点和簇节点/控制节点之间,用户可从簇节点/控制节点向采集节点发送自己定义的报文,观察采集节点的回应以考察节点通信过程的安全性。
图4tap-sns管理器界面
tap-sns的重点在于加密技术的测试仿真,与具体的操作系统、通信协议关系较弱。
总之,上述工具以及前面介绍过的几种测试系统(sensec、banaid、tap-sns)或者与tinyos没有合适的接口,或者只是侧重于tinyos信息安全中的某一方向,或者与tinyos联系不是很紧密,不能仿真与之直接相关的安全问题,也就不能更深入更结合实际地研究物联网安全问题。
2自主开发的物联网安全测试工具
与tinyos面临的严峻安全形势相比,当前适合tinyos的安全与可靠性测试与仿真工具的研究现状还很落后。
很多已经商业化的测试仿真工具并不适合,如opnet、ns2……原因是它们的体系建立较早,在设计上没有充分考虑tinyos的特点,因此不适合研究tinyos的安全问题。
现在tinyos已成为物联网特别是传感网的工业标准之一,越来越多的物联网应用是基于tinyos开发的,而前面提到的这些工具由于各种原因对tinyos安全问题的研究都有所限制;
因此我们开发了基于tinyos的安全性与可靠性仿真系统(security&
reliabilityemulationsystemsres)。
下面将对sres所面向的应用和结构做一简要介绍。
自主开发的测试工具面向的场景
sres面向的应用场景有两类,一类针对节点路由安全测试与仿真,另一个针对节点数据传输安全测试与仿真。
在第一类场景中:
sres可模拟发送伪造的节点路由报文,在传感网路由初始化过程或者路由变换过程中攻击传感网关;
测试各节点的路由程序的安全机制与抗攻击能力。
在第二类场景中:
sres可发送伪造的节点数据报文,在数据传输中模拟恶意攻击,测试评估传感网传输中的安全机制和抗攻击能力。
工具架构
tossim(tinyossimulator)是tinyos携带的仿真器,可仿真一个完整的基于tinyos操作系统的传感网络。
sres就是在tossim基础上开发的仿真系统。
sres包括一个注入器(injector)、一个接收器(receiver)、一个分配器(dispatcher)和一个图形化界面,图形化界面包括进程管理、数据解析和报文处理等模块。
测试前首先要定义好被测系统,比如使用c++程序编写,然后编译出被测系统的tossim可执行程序,之后即可开展测试。
测试中被测系统与sres各部分的关系如图5所示。
图5sres系统结构与工作流程图
工作过程如下:
首先通过图形化界面的进程管理启动被测系统a,然后通过进程管理控制一个或多个注入器从外部向tossim发送数据;
这些注入的数据被嵌入在tossim中的接收器所接收,注入器与接收器之间通过套接口(socket)传递数据;
接收器再将数据传递给分配器,分配器将对数据的内容分析并判断出仿真的场景,从而选择进行下一步数据传递时的内部格式,注入的关键数据被传递给运行中的被测系统a。
由于注入行为所产生的各种后果都会通过a运行所产生的报文数据反应出来,而这些数据被反馈回图形化界面,并继续被数据解析模块解析出来以图形方式表达,于是就可以通过图形界面直观地看到a仿真的过程和结果。
注入器、接收器和分配器的数据传递机制
在设计过程中,考虑到注入器和tossim之间,tossim内部分配器和接收器之间的数据往来过程必须是异步的,不应当出现tossim等待注入器发送数据后才能继续运行以及分配器必须等待接收器发送数据后才能运行的情况,因此将注入器、接收器都设计成各自使用独立进程运行的模式。
图6表现了注入器、接收器和分配器之间的数据传递过程。
在接收器和分配器之间有一数据缓冲区。
首先由注入器向接收器发送带有源节点、目的节点和具体数据的报文,如前所述,这一发送通道是建立在套接口机制上的,为保证传递的准确性,使用tcp传输协议。
接收器接收到报文后,存入数据缓冲区,并将设置缓冲区数据写入标志。
分配器检查缓冲区数据写入标志,如果该标志有效则从缓冲区读走报文并清除缓冲区写入标志。
分配器随后将分析报文并转发或直接将报文提交tossim发送模块发送。
图6sres数据流示意图
为保持与tossim原有数据结构的兼容性,我们定义了适于在接收器和分配器之间的数据缓冲区所使用的新数据结构msg_q。
其主要内容如表1:
数据缓冲区可以放置最多64个msg_q变量。
对于每个变量而言,source表示源节点。
dest为目标节点。
字符串内容被置于msg_t变量域中,msg_t也是一个自定义的结构型变量,内含一个整型数组,字符串就放置在该数组中。
clean_flag是用于指示第二类场景下,该变量是否可以被丢弃的标志,通常在该变量已经被分配器读取后设置为可丢弃。
ctp_cp_flag用于第一类场景测试。
msg_q数据结构的内容可以根据未来不同测试内容的需要而扩充。
图形化界面
图7为图形化界面,使用qt开发。
原因是qt已经能够支持多种平台例如linux和微软的window;
此外qt已经推出很长时间,资源丰富,技术支持较好。
用户可以通过这个界面向仿真系统注入自己定义的报文。
用户在此可以给注入的报文选择源节点和目的节点、定义需要发送的报文内容,也可以通过界面指令仿真系统运行或停止,并通过图形化界面查看仿真过程中产生的各类信息。
在图7的主界面里显示了当前运行系统的网络拓扑,不同颜色表示不同类型的节点。
例如蓝色表示服务器节点,绿色表示sink节点,黄色表示普通节点。
图7显示的操作为第二类场景下的数据注入。
在图7右侧上方的小窗口中输入的是被测系统的程序名,右侧下方小窗口中有三个区域,分别对应于源节点、目的节点和注入数据。
如果输入1、3、er点击该窗口的start键之后,sres注入器将发送出一条报文给接收器,内容是将字符串er从节点1发给节点3。
由于被测系统将被注入的报文视同自身运行产生的报文,这些报文回馈给图形化界面的数据解析模块,最终在主界面的网络拓扑中以动画方式显示出字符串er从节点1发送给节点3。
图7sres界面
图形化界面由一组c++和头文件实现,主要文件的名称和作用如表2所示:
是整个图形化界面的核心。
本文件描述了mainwindow类以及该类的各个内部变量和槽函数等方法。
这个类是整个工具的主干,不仅大部分的图形化界面例如菜单与快捷键布局等是在这里完成,而且某些可见的功能例如图形文件的打开、存储、动画显示都是直接在mainwindow.cpp中完成,还有一些重要的后台功能如搜寻指定的连接等功能也在这里完成。
此外,这里还定义并使用了图形文件操作中所需要的关键的中间变量。
与描述了diagramscene类以及该类的各个内部变量和槽函数等方法。
包含了创建节点、创建连接、节点计数、寻找节点、统计所有节点、统计所有连接等功能。
与主要作用是绘制节点。
在这里主要是给节点自动编号,对节点及阴影区调整大小、颜色和颜色梯度。
与主要作用是绘制节点之间的连接,此外还可通过该类获取某个节点连接中源节点和目的节点的编号。
这在系统根据指令自动调整网络拓扑时非常方便。
与主要作用是提供图形界面中进程管理的功能,可在此类的窗口下执行各种外部命令。
这样就可以运行被测程序了。
与主要作用是提供报文定义和注入的窗口。
这样就可以测试被测程序了。
与主要作用是过滤读取被测程序的输出结果。
用户可以设置过滤的内容。
测试工具的后续发展
sres的未来发展方向包括以下几个方向:
增强报文编辑能力,加入硬件仿真接口,建立脚本数据库,提高反应速度,改善图形化界面。
报文编辑能力对于提高sres的安全性可靠性仿真的多样性、灵活性和真实性有很大影响,需要加强系统拟制各类报文的能力;
硬件仿真是对于当前纯数学方式的重要补充,有了硬件接口,sres可以更有针对性和更趋近实际环境地进行模拟和仿真;
脚本数据库有助于筛选出高效的攻击手段并研究更先进的攻击方式,从而提高仿真的效果;
目前sres通过读取仿真中产生的信息图形化显示仿真效果,速度存在一定程度的滞后,从提高效率出发,还需要进一步提高反应速度;
当前的图形化界面还比较简陋,也不够方便,模块化程度不高,因此有必要继续开发更为友好的人机交互界面。
3结论
物联网的蓬勃发展对物联网安全研究提出了越来越迫切的需求,及早发现物联网安全问题能大大降低物联网的运行风险,具有显著的社会和经济效益。
物联网安全测试工具为人们提供了极其重要的技术手段发现物联网中隐藏的安全问题。
随着我国物联网技术的快速发展和物联网应用的迅速开展,上述工作将越来越为人们所关注。
参考文献
[1]contijp.theinternetofthings[j].communicationsengineer,2006,4(6):
20-25.
[2]tinyos:
(2008)
[3]wang,.,bagrodi,r.:
scalableemulationoftinyosapplicationsinheterogeneousnetworkscenarios.mass’09.pp.140–149(oct2009)
[4]alzaidhani,abanmisuhail.awirelesssensornetworkstest-bedforthewormholeattack.internationaljournalofdigitalcontenttechnologyanditsapplicationsvolume3,number3,september2009
[5]goreckic,behrensc,westphald,etal:
tapsns-atestplatformforsecurecommunicationinwirelesssensornetworksforlogisticapplications.in:
12thinternationalsensorconference.sensor2005,amaservices,hannover,2005,pp.335-340