基于VxWorks系统驱动层的数据访问监控系统及其控制方法

文档序号:10555584阅读:337来源:国知局
基于VxWorks系统驱动层的数据访问监控系统及其控制方法
【专利摘要】本发明公开了一种基于VxWorks系统驱动层的数据访问监控系统,主要包括:设置在VxWorks系统驱动层的访问过滤器、访问决策器和访问权限库;访问过滤器用于在驱动层中实时监控经过该层的数据包,同时获取数据包的头部信息;访问权限库将各类数据包信息进行排列组合,构成多条访问规则,共同形成一个访问控制列表;访问决策器同时加载访问过滤器和访问权限库,并对访问控制规则和数据包头部信息作出比对,将得出的控制方案传递给访问过滤器,由其完成对驱动层当前数据的处理操作。本发明还提供了一种基于VxWorks系统驱动层的数据访问监控系统的控制方法。本发明在VxWorks系统的驱动层引入包过滤访问控制技术,不仅增强了VxWorks系统的信息安全性,而且相比于现有的驱动层数据访问控制方法,更为简便高效。
【专利说明】
基于VxWorks系统驱动层的数据访问监控系统及其控制方法
技术领域
[0001 ]本发明属于计算机网络与信息安全技术领域,特别涉及一种基于VxWorks系统驱动层的数据访问监控系统。
【背景技术】
[0002]VxWorks操作系统因其卓越的可靠性和实时性被广泛应用于通信、军事、航空等实时性要求较高的领域。同样,正是由于这一被人认可的实时高效稳定性,VxWorks操作系统的民用需求也在不断增加。因而,伴随而来的VxWorks网络文件传输的安全性,成了一个不容忽视且急需解决的问题。
[0003]现有的关于VxWorks系统访问控制机制的研究,一种是在操作系统上集成实现,具体是从操作系统协议栈入手,通过修改内核,将自定义的安全协议集成到主机操作系统上的TCP/IP中,作为协议栈的一部分;另外一种就是在应用层修改应用程序,在文件传输前后添加一些加密模块和完整性认证模块。田战玲等人提出了基于VxWorks系统的网络文件传输安全技术研究(田战玲,刘利强.基于VxWorks网络文件传输安全性的研究[J].信息技术与信息化,2011,54(4):32-35.),就是综合采用上述两种方法来加强对VxWorks系统的访问防护,然而这种方法的缺陷在于,非法用户可以在VxWorks系统出现故障时,跳过这两个层次,从而对系统的安全性造成破坏。除此以外,也有少量的研究是在VxWorks系统驱动层设立访问机制,戴跃伟等人公开的一种VxWorks系统驱动层块设备数据访问控制方法(戴跃伟.一种V X W ο r k s系统驱动层块设备数据访问控制方法:中国,C NI O 4 3 18 I 5 2 A [ P ].2015.01.28.),该方法专注于VxWorks系统中块设备敏感数据的访问防护,但是未对系统中实时传送的数据安全性作研究,因而系统安全性仍然存在隐患。

【发明内容】

[0004]发明目的:为了克服现有技术的不足,本发明提供了一种安全性更高,结构更加简单的基于VxWorks系统驱动层的数据访问监控系统。
[0005]技术方案:本发明提供了一种基于VxWorks系统驱动层的数据访问监控系统,包括设置在VxWorks系统驱动层的访问过滤器、访问决策器和访问权限库;其中:
[0006]所述访问过滤器,用于实时监控途经VxWorks系统驱动层的数据包,直接拦截数据包,并根据数据包的标准结构,完成对数据包的头部信息的获取;
[0007]所述访问权限库中用于存储所有经过驱动层的数据包的头部信息,并根据头部信息中不同类型信息构成的访问权限判断条件与需要的控制结果形成一个访问控制列表;
[0008]所述访问决策器,一边加载访问权限库,获取访问权限判断条件,同时接收来自访问过滤器的数据包的头部信息,将接收的数据包的头部信息与访问权限判断条件进行比较后获得控制方案,并将控制方案交由访问过滤器,访问过滤器完成对驱动层当前数据的处理。
[0009]进一步,所述的访问过滤器设置于VxWorks系统驱动层中数据接收进程和数据发送进程之间的数据通路上。这样可实时对接收到的,或者即将要发送的数据进行监控。更加安全,方便。
[0010]进一步,所述的访问权限库设置于VxWorks系统驱动层头文件库中。这样加载方便,VxWorks启动时,自动加载权限库;调用方便,监控器处理经过驱动层的数据包,当然调用驱动层头文件库,更方便;能够有效的节省时间,把对VxWorks系统实时性的影响,降到最低。
[0011]进一步,所述访问权限判断条件列表选取的权限判断信息包括:源MAC地址、目的MAC地址、协议类型、源IP地址、目的IP地址、源端口号以及目的端口号。
[0012]进一步,所述访问权限库分为接收权限库和发送权限库,所述接收权限库选择源MAC地址、协议类型、源IP地址和源端口号作为权限信息生成权限判断条件列表;所述发送权限库选用目的MAC地址、协议类型、目的IP地址和目的端口号作为权限信息生成权限判断条件列表。根据数据包的去向,加载相应的权限库,不仅能够保证VxWorks系统文件传输的双向安全性,而且可以提高系统的遍历访问处理速度,满足VxWorks系统实时性的要求。
[0013]进一步,所述的访问决策器设置于VxWorks系统驱动层中数据接收进程和数据发送进程之间的数据通路上,与所述的访问过滤器属于平行结构,两者之间存在数据交换。
[0014]本发明还提供了一种采用上述基于VxWorks系统驱动层的实时数据访问监控系统的控制方法,包括以下步骤:
[0015](I)在VxWorks系统驱动层中数据接收进程和数据发送进程之间的数据通路上设置访问过滤器;在VxWorks系统驱动层头文件库中设置访问权限库,所述访问权限库中存有访问控制列表;在VxWorks系统驱动层中数据接收进程和数据发送进程之间的数据通路上设置访问决策器;
[0016](2)所述访问过滤器直接拦截数据包,并根据数据包的标准结构,完成对数据包的头部信息的获取;并将获取的数据包的头部信息发送给所述访问决策器;
[0017](3)所述访问决策器一边加载访问权限库,获取访问控制列表,同时接收来自访问过滤器的数据包的头部信息,将接收的数据包的头部信息与访问权限判断条件进行比较后获得控制方案,并将控制方案交由访问过滤器,访问过滤器完成对驱动层当前数据的处理。
[0018]进一步,所述步骤(2)中获取数据包的头部信息的方法为:查询数据包的首地址,移动该首地址指针以获取数据包头部信息,将相应的数据包头部信息保存在一个设定的数据结构中。
[0019]进一步,所述步骤(3)中访问过滤器对驱动层当前数据的处理方法为:若访问决策器给出的指令是对当前数据包作放行处理,则将该数据包交由接收进程,传递到上一层网络层,或者交由发送进程,传递到下一层物理层;若访问决策器给出的指令是对当前数据包作丢弃处理,则将该数据包所处缓存区置空。
[0020]有益效果:与现有技术相比,本发明在VxWorks系统的驱动层引入包过滤访问监控系统及方法,增强了 VxWorks系统的文件传输的安全性,而且优化了访问控制结构,相较于现有VxWorks系统驱动层的数据访问控制方法,更为简便高效。
【附图说明】
[0021 ]图1为本发明的一种基于VxWorks系统驱动层的实时数据访问控制结构图;
[0022]图2为中断数据接收处理驱动函数中访问过滤器的具体嵌入位置图;
[0023]图3为VxWorks系统内核数据帧的封装结构图;
[0024]图4为网络数据通信中标准的数据包封装结构图;
[0025]图5为访问权限库所设计的用户控制规则示意图;
[0026]图6为访问过滤器中数据访问控制流程图。
【具体实施方式】
[0027]下面结合附图对本发明做更进一步的解释。
[0028]以ARM9开发板搭载的VxWorks系统为例,进一步阐明本发明的一种基于VxWorks系统驱动层的实时数据访问控制方法。
[0029]如图1所示,本发明提供的监控系统是在VxWorks系统的驱动层嵌入访问过滤器,实时监控当前途经驱动层的数据包,同时获取数据包的头部信息,将获取的数据包头部各种信息传递给访问决策器,访问决策器再将这些信息和从访问权限库加载所得的访问控制列表和控制列表中给出的对应的访问权限判断条件进行比对,得出控制方案反馈给访问过滤器,最后由访问过滤器根据该控制方案完成对VxWorks系统驱动层当前数据包的处理操作。
[0030]采用本发明提供的基于VxWorks系统驱动层的数据访问监控系统的控制方法具体实施步骤如下:
[0031]步骤1:在VxWorks系统驱动层中数据接收进程和数据发送进程之间的数据通路上设置访问过滤器;在VxWorks系统驱动层头文件库中设置访问权限库;在VxWorks系统驱动层中数据接收进程和数据发送进程之间的数据通路上设置访问决策器;
[0032](I)设置访问过滤器;
[0033](Ia)明确访问过滤器嵌入位置:
[0034]首先找出VxWorks系统开源驱动函数库xxxEnd.c所在位置,再从该驱动函数库中找出中断数据接收驱动函数xxxRcvIntO与数据发送驱动函数xxxSendO。以中断数据接收驱动函数为例,如图2所示,从预设数据包缓存区开始,接着完成对数据包的接收,再到对数据包进行封装,然后调用上层接收进程将封装好的数据包传递到网络层,之后将初始的数据包缓存区置空,最后使能中断并结束函数运行。因此,若要实现VxWorks系统驱动层的数据访问控制,必须在其调用上层接收进程之前,嵌入访问过滤器,用于实时监控拦截途经驱动层的数据包,以待检测。所以,访问过滤器设置在VxWorks系统驱动层中数据接收进程和数据发送进程之间的数据通路上。
[0035](Ib)设置访问过滤器函数
[0036]首先明确VxWorks系统中的数据帧封装格式。如图3所示,对于VxWorks系统而言,数据帧都封装在一个M_BLK的结构体中,而M_BLK结构体当中不仅包含其本身mBlk,还包括clBlk以及Cluster这两个层次结构,VxWorks系统通过mBlk和clBlk结构来跟踪必要的信息,以便访问和管理存储在Cluster中的数据包。其中,M_BLK,mBlk,clBlk和Cluster为VxWorks源程序中定义的数据包的结构体变量名和缓存区变量名,无实际中文意义,仅仅是一个代号。
[0037]具体而言,M_BLK及其相关结构均定义在VxWorks系统的内核头文件netBufLib.h中,其中M_BLK结构体的内层元素M_BLK_HDR结构体中就包含一个字符指针mData,该指针指向Cluster中的数据包的包头地址,即数据包首地址。如图4所示,当用户向外发送数据时,从应用层开始,纯数据包分别会经过传输层、网络层、链路层,因而会相应地添加TCP/UDP包头、IP包头、以太网包头,反之当用户接收外来数据时,则会以相反的方向层层解析,剥离相应的包头。因此,以数据包首地址为参数设置访问过滤器函数AccessFilterO:定义一个结构体DATA_HDR,用于保存数据包头部信息;按照上述标准数据包封装协议,逐次移动数据包首地址指针,找出数据包头部信息,将之保存在DATA_HDR结构体当中。其中,以太网包头中含有数据包的源MAC地址和目的MAC地址信息,IP包头中含有数据包的协议类型、源IP地址和目的IP地址信息,TCP/UDP包头中含有数据包的源端口号以及目的端口号信息。
[0038](2)设置访问权限库;
[0039](2a)设置访问权限库函数
[°04°] 首先找到上述步骤I中VxWorks系统的内核头文件netBufLib.h所在位置,接着在此处设置访问权限库函数AccessAuthorityO:在访问权限库中存储了所有可能经过驱动层的数据包的头部信息作为判断的权限信息,其中包含了四种本机权限信息,分别是本机MAC、本机协议类型、本机IP地址和本机端口号。同时在访问权限库中根据需要拦截或者放行的数据包的头部信息中的类型形成访问权限判断条件,访问权限判断条件和访问权限位形成一个访问控制列表。其中,访问权限判断条件主要是为了判断数据包头部信息中的某项信息是否需要进行对比判断,因此选取一个七元组权限信息,对应着数据包的头部信息,分别为源MAC地址、目的MAC地址、协议类型、源IP地址、目的IP地址、源端口号以及目的端口号;根据用户的拦截要求,选取相应的七元组权限信息的逻辑组合,设置不同的访问权限判断条件,比如权限信息的标志位设为的O表示不检测当前数据包的头部信息,权限信息的标志位设为的I表示检测当前数据包的头部信息。访问权限位则用来表示符合上述访问判断条件的数据包是被拦截的还是被放行的。访问权限位设为O表示不允许当前数据包通过VxWorks系统驱动层,访问权限位设为I表示允许当前数据包通过VxWorks系统驱动层。
[0041]例如,用户需要限制来至外网的TCP数据包,那么只需在访问权限库中设置一条访问权限判断条件,一条访问权限判断条件和访问权限位形成一个访问控制列表。如图5所示,其中,将外网的源MAC地址S_MAC、TCP协议类型TCP以及源IP地址S_IP所对应的标志位设为1,访问权限位Permis1n设置为0,即可满足上述用户的需求。其表示,将当前数据包中的源MAC地址、TCP协议类型和源IP地址进行对比,如果均符合,则进行拦截。
[0042](2b)细化访问权限库函数
[0043]为了能够保证VxWorks系统文件传输的双向安全性,需要改变权限规则,分别设置接收权限库和发送权限库,作为访问权限库的两个子库,因而可在访问权限库函数中设立两个分支函数:AccessAuthorityIn()和AccessAuthority0ut()。其中,接收权限库选用的权限信息分别是源MAC地址、协议类型、源IP地址和源端口号,发送权限库选用的权限信息分别是目的MAC地址、协议类型、目的IP地址和目的端口号,根据VxWorks系统驱动层当前数据包的去向,调用相应的权限子库,可以提高系统的遍历访问处理速度,满足VxWorks系统实时性的要求。
[0044](3)设置访问决策器;
[0045](3a)明确访问决策器嵌入位置
[0046]首先找到上述步骤I中访问过滤器函数所在位置,接着在其完成数据包头部信息DATA_HDR结构体保存之后,嵌入访问决策器,由其得出当前数据包的处理方案。所以访问决策器设置在VxWorks系统驱动层中数据接收进程和数据发送进程之间的数据通路上。
[0047](3b)设置访问决策器函数
[0048]选择上述步骤I中用于保存数据包头部信息的结构体DATA_HDR作为访问决策器函数的参数设置访问决策器函数:访问决策器函数AccessDecis1nO根据当前驱动层数据包的源IP地址是否与当前VxWorks系统的IP地址一致为判断条件,若两者一致,则调用访问发送权限库函数A c c e s s A u t h ο r i t y O u t (),反之则调用访问接收权限库函数AccessAuthorityInO ;根据访问控制列表中对应的当前数据包头部信息与访问权限库函数中的数据包头部信息进行对比,若两者匹配,则放行当前数据包,反之则丢弃当前数据包,分别以TRUE和ERROR的形式作为返回值,返回给访问过滤器函数AccessFi I ter O。
[0049]步骤2:访问过滤器直接拦截数据包,并根据数据包的标准结构,完成对数据包的头部信息的获取;并将获取的数据包的头部信息发送给访问决策器;
[0050]步骤3:访问决策器一边加载访问权限库,获取访问控制列表,同时接收来自访问过滤器的数据包的头部信息,将接收的数据包的头部信息与访问权限判断条件进行比较后获得控制方案,并将控制方案交由访问过滤器,访问过滤器完成对驱动层当前数据的处理。
[0051]如图6所示,访问决策器首先通过对比数据包的IP地址,判断是否为本地的IP地址,如果是接收到的数据包,即I P地址不相同则调用访问接收权限库函数AccessAuthoritylnO,如果要发送的数据包,即IP地址相同则调用访问发送权限数据库函数AccessAuthorityOut O。然后根据读取的访问控制列表中的判断条件对当前数据包中对应的头部信息进行判断,结合访问控制列表中的访问权限位的值返回TRUE或者ERROR到滤波器中,滤波器以此为依据来决定VxWorks系统驱动层当前数据包的去留。若当前数据包为接收到的数据包,并且决策器函数的返回值为TRUE,则对当前数据包作放行处理,即将该数据包交由上层接收进程,传递到上一层网络层;若当前数据包为需发送的数据包,并且决策器函数的返回值为TRUE,则对当前数据包作放行处理,即将该数据包交由下层接收进程,传递到下一层物理层;若决策器函数的返回值为ERROR,无论当前数据包是接收到的数据包还是需发送的数据包,都对当前数据包作丢弃处理,则将该数据包所处缓存区置空,即当前未接到数据包或者无数据包需发送。
【主权项】
1.一种基于VxWorks系统驱动层的数据访问监控系统,其特征在于:包括设置在VxWorks系统驱动层的访问过滤器、访问决策器和访问权限库;其中: 所述访问过滤器,用于实时监控途经VxWorks系统驱动层的数据包,直接拦截数据包,并根据数据包的标准结构,完成对数据包的头部信息的获取; 所述访问权限库中用于存储所有经过驱动层的数据包的头部信息,并根据头部信息中不同类型信息构成的访问权限判断条件与需要的控制结果形成一个访问控制列表; 所述访问决策器,一边加载访问权限库,获取访问权限判断条件,同时接收来自访问过滤器的数据包的头部信息,将接收的数据包的头部信息与访问权限判断条件进行比较后获得控制方案,并将控制方案交由访问过滤器,访问过滤器完成对驱动层当前数据的处理。2.根据权利要求1所述的基于VxWorks系统驱动层的数据访问监控系统,其特征在于:所述的访问过滤器设置于VxWorks系统驱动层中数据接收进程和数据发送进程之间的数据通路上。3.根据权利要求1所述的基于VxWorks系统驱动层的数据访问监控系统,其特征在于:所述的访问权限库设置于VxWorks系统驱动层头文件库中。4.根据权利要求1所述的基于VxWorks系统驱动层的数据访问监控系统,其特征在于:所述访问权限判断条件列表选取的权限判断信息包括:源MAC地址、目的MAC地址、协议类型、源IP地址、目的IP地址、源端口号以及目的端口号。5.根据权利要求4所述的基于VxWorks系统驱动层的数据访问监控系统,其特征在于:所述访问权限库分为接收权限库和发送权限库,所述接收权限库选择源MAC地址、协议类型、源IP地址和源端口号作为权限信息生成权限判断条件列表;所述发送权限库选用目的MAC地址、协议类型、目的IP地址和目的端口号作为权限信息生成权限判断条件列表。6.根据权利要求1所述的基于VxWorks系统驱动层的数据访问监控系统,其特征在于:所述的访问决策器设置于VxWorks系统驱动层中数据接收进程和数据发送进程之间的数据通路上,与所述的访问过滤器属于平行结构,两者之间存在数据交换。7.采用上述基于VxWorks系统驱动层的数据访问监控系统的控制方法,其特征在于:包括以下步骤: (1)在VxWorks系统驱动层中数据接收进程和数据发送进程之间的数据通路上设置访问过滤器;在VxWorks系统驱动层头文件库中设置访问权限库,所述访问权限库中存有访问控制列表;在VxWorks系统驱动层中数据接收进程和数据发送进程之间的数据通路上设置访问决策器; (2)所述访问过滤器直接拦截数据包,并根据数据包的标准结构,完成对数据包的头部信息的获取;并将获取的数据包的头部信息发送给所述访问决策器; (3)所述访问决策器一边加载访问权限库,获取访问控制列表,同时接收来自访问过滤器的数据包的头部信息,将接收的数据包的头部信息与访问权限判断条件进行比较后获得控制方案,并将控制方案交由访问过滤器,访问过滤器完成对驱动层当前数据的处理。8.根据权利要求7所述的基于VxWorks系统驱动层的数据访问监控系统的控制方法,其特征在于:所述步骤(2)中获取数据包的头部信息的方法为:查询数据包的首地址,移动该首地址指针以获取数据包头部信息,将相应的数据包头部信息保存在一个设定的数据结构中。9.根据权利要求7所述的基于VxWorks系统驱动层的数据访问监控系统的控制方法,其特征在于:所述步骤(3)中访问过滤器对驱动层当前数据的处理方法为:若访问决策器给出的指令是对当前数据包作放行处理,则将该数据包交由接收进程,传递到上一层网络层,或者交由发送进程,传递到下一层物理层;若访问决策器给出的指令是对当前数据包作丢弃处理,则将该数据包所处缓存区置空。
【文档编号】G06F21/60GK105915528SQ201610329398
【公开日】2016年8月31日
【申请日】2016年5月18日
【发明人】翟江涛, 高斌, 薛朋骏, 戴跃伟
【申请人】江苏科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1