一种基于白名单的设备过滤方法及系统与流程

未命名 10-09 阅读:162 评论:0

1.本发明涉及信息安全领域,具体涉及一种基于白名单的设备过滤方法及系统。


背景技术:

2.基于usb存储设备的应用环境和系统通常涉及到信息安全,如果不设置保护措施禁止不可信的usb存储设备访问,有可能会导致用户系统中的敏感数据泄露或被非法窃取。
3.目前通用的技术是通过修改设备驱动的方式,辨别usb设备的pid/vid信息,引入相应的usb控制策略,将usb设备的pid/vid信息录入至黑白名单列表,允许白名单的usb设备访问,或者阻止黑名单的usb访问。一般来说,该黑白名单列表存放于程序代码或者配置文件中,对于存放在配置文件中的情况,黑白名单很容易被非法篡改,不具备安全可靠的条件;对于存放于程序代码中的情况,在更新列表时总是需要重新编译程序,不具备便捷性。


技术实现要素:

4.本发明目的是提供一种设备过滤方法及系统,不仅能够实时监测usb存储设备是否存在于白名单列表,而且不需要更新程序,更加高效。
5.本发明为实现上述目的,通过以下技术方案实现:一种基于白名单的设备过滤方法,包括步骤:运行linux系统的设备平台从spi-flash中划分出单独的存储白名单列表的分区,导入白名单列表;实时监测任意usb接口的热插拔事件;识别对应接口插入的usb存储设备,获取设备信息,在白名单列表中的usb存储设备信息中进行检索,如果该设备信息存在于白名单列表,则认为该设备合法,否则将禁用该设备并进行告警。
6.进一步的,实时监测热插拔事件的方法为通过伺服程序中的usbdector类中的创建monitor线程来实时监控每个usb接口的插入事件。
7.进一步的,获取设备信息的方法为:在伺服程序中创建类实例的时候绑定每个usb接口在内存中的地址,当设备平台检测到任意usb接口有usb存储设备插入后,usb设备检测模块解析该设备在scsi总线上的序号n,生成n对应的设备信息,通过cat指令查看设备信息。
8.进一步的,在白名单列表检索设备信息的方法为:先根据usb端口,计算出对应白名单列表的偏移,然后采用枚举法,按字节依次读取,并将读取的数据和获取到的设备信息进行对比,如果设备信息一致,则认为该设备合法。
9.所述设备信息包括厂商信息、产品信息、usb存储设备序列号。
10.进一步的,白名单列表通过专用的白名单载体u盘导入,导入步骤为:将白名单载体u盘接入windows主机,通过windows主机内的管理软件连接白名单载体u盘,将需要添加进白名单列表的usb存储设备插入到windows主机,通过管理软件获取
该usb存储设备的设备信息加入白名单载体u盘的白名单列表;将白名单载体u盘插入设备平台的任意usb接口,伺服程序对白名单载体u盘进行身份认证,认证成功后循环读取其中的白名单列表并写入spi-flash,直到读取完成,并更新spi-flash中的白名单索引表;白名单列表存放于白名单载体u盘中只有管理软件允许访问的隐藏区;管理软件和白名单载体u盘通过私有指令进行通信。
11.进一步的,白名单列表的存储方法为:spi-flash初始化时,根据usb端口的数量分配足够的存储空间,每一个usb端口的白名单索引用二维数组来标记,通过index[n][m]来索引所有usb端口的白名单列表。
[0012]
进一步的,白名单载体u盘隐藏区的的lba中还包含有确定白名单列表是更新还是销毁的bit,每个usb端口对应一个bit位,对应bit位为1时,表示更新当前端口的白名单列表,对应bit位为0时,表示销毁当前端口的白名单列表。
[0013]
本发明还公开了一种基于白名单的设备过滤系统,可以应用以上过滤方法,该系统包括:设备平台,所述设备平台运行linux系统,该设备平台具有单独存储白名单列表分区的spi-flash存储介质;白名单载体u盘,用于更新白名单列表,所述白名单载体u盘具备隐藏区;windows主机,具备管理软件,用于连接白名单载体u盘和需要添加进白名单列表的usb;所述设备平台包括:基于白名单的接口管理模块,用于管理设备平台所有usb接口;usb设备检测模块,用于识别插入的usb存储设备,并获取设备信息;白名单识别模块,用于查找spi-flash中的白名单列表,判断存在插入事件的usb端口对应的usb存储设备是否合法。
[0014]
本发明的优点在于:本发明提出了的usb接口对usb存储设备的过滤方法,与现有技术相比,白名单存绑定usb接口硬件地址,实现了对usb存储设备的定向监听和设备信息查询,不容易被非法篡改。通过设计专有的白名单载体u盘进行白名单的存储及更新,保证了设备平台、usb存储设备的稳定性,无需定期更新和编译程序,只需要对白名单载体u盘的隐藏区进行更新和销毁,更加高效和安全。
具体实施方式
[0015]
下面将结合具体实施例,对本发明的技术方案进行更加清楚、完整地描述。
[0016]
本发明公开了一种基于白名单的设备过滤系统和方法,该系统包括:设备平台、白名单载体u盘、windows主机,设备平台包括:基于白名单的接口管理模块、usb设备检测模块、白名单识别模块。
[0017]
设备平台具有多个usb typea的接口,用于对插入的usb移动存储设备(优盘)的数据进行处理,该平台运行linux系统,具有一个容量为256mbit的spi-flash存储介质,从spi-flash中划分出单独的分区,用于存储白名单列表。
[0018]
白名单列表通过专用的白名单载体u盘导入。导入前需要先将白名单载体u盘接入
windows主机,打开管理软件连接白名单载体u盘,管理软件和载体u盘通过私有指令进行通信,将需要添加进白名单列表的优盘插入到windows主机,通过管理软件获取该优盘的设备信息如下:usb设备id:vid = 0951 pid = 1666设备序列号:eod55ea573ea16c1588503c9设备供应商:kingston设备名称:datatraveler 3.0设备修订版:0200此时使用者只需要选择将该设备加入白名单列表即可,管理软件把该设备的厂商信息、设备信息以及设备序列号写入对应usb端口的白名单列表,白名单列表存放于白名单载体u盘的隐藏区,只有管理软件可以访问,确保了白名单列表的存储安全性。
[0019]
白名单导入指将白名单载体u盘中的白名单列表批量导入到设备平台的spi-flash中存储,也就是白名单载体u盘的主控芯片将flash保密区中的白名单通过usb接口批量传输给spi-flash。首先将白名单载体u盘插入设备平台的任意usb接口,伺服程序检测到白名单载体u盘后,和白名单载体u盘握手,并进行身份认证,身份认证成功后,伺服程序通过scsi私有协议启动白名单导入功能,循环读取白名单载体u盘中的白名单列表,同时写入spi-flash,直到读取完成,并更新spi-flash中的白名单索引表。
[0020]
spi-flash初始化时,根据usb端口的数量分配指定的4k存储空间,每一个白名单信息用512字节存储,最大支持8个。每一个usb端口的白名单索引用二维数组来标记,通过index[n][m]来索引所有usb端口的白名单列表,其中index[0]为usb端口0对应的白名单列表存储位置,依次为0,1,2,3
……
,index[0][0]表示usb端口0对应的第一个白名单信息,index[0][1]表示端口0对应的的第2个白名单信息,依次类推,单个端口对应的列表最大值为8。
[0021]
运行于linux嵌入式系统中的伺服程序,实时检测各个usb typea接口的usb存储设备插拔事件,对于任意usb typea接口的热插拔事件,伺服程序将识别对应接口插入的usb存储设备,并获取该usb存储设备厂商信息、设备信息以及序列号信息,并将获取的信息和该usb typea接口的白名单列表进行对比,如果获取到的信息存在于白名单列表,则认为该设备合法,设备可以正常工作;如果获取到的不存在于白名单列表,则禁用该设备,并进行告警。
[0022]
基于白名单的接口管理模块,支持对设备平台任意usb typea接口的管理,通过私服程序中的usbdector类中的创建monitor线程来实时监控每个usb typea接口的插入事件,在创建类实例的时候绑定每个usb typea端口在内存中的地址,该地址可以从设备树中查询或在各端口都有usb设备插入的时候在“/sys/class/block”目录查看。
[0023]
当系统检测到任意usb typea接口有优盘插入后,usb设备检测模块会解析该优盘在scsi总线上的序号n(的取值从0开始,例如0,1,2,3...),对应的在系统/proc/scsi/usb-storage/路径下,系统会生成n对应的设备信息,通过cat指令查看设备信息如下所示(以当前设备的序号3为例):root@root-e42:~$cat/proc/scsi/usb-storage/3host scsi3:usb-storage
vendor:sandiskproduct:cruzerforceserialnumber:00018130103120141210protocol:transparent scsitransport:bulkquirks:sane_sense这时候,只需要解析该设备的信息,从“vendor”字段获取厂商信息,从“product”字段获取产品信息,从“serial number”字段获取该优盘的序列号,对于某个厂商的某一型产品,其单个优盘的序列号是唯一的,因此,通过上述三个信息,可确保该优盘是唯一的。
[0024]
通过上述方法获取到usb存储设备的信息后,白名单识别模块从spi-flash中查找该usb端口的对应的白名单列表,具体检索方法:先根据usb端口,计算出对应白名单列表的偏移,然后采用枚举法,按512字节依次读取,并将读取的数据和获取到的设备信息进行对比,如果厂商信息、产品信息和序列号均一致,则表示该usb存储设备可以使用该usb端口进行工作,如果遍历完白名单列表,仍未找到对比一致的数据,则表示该usb存储设备禁止使用该usb端口,并强制将usb存储设备卸载后弹出。
[0025]
此外,使用者还可以通过白名单载体u盘隐藏区的第一个lba中的前4个byte来设置白名单对应的白名单列表更新还是销毁,更新和销毁通过一个bit位来判断,最大支持32个usb端口白名单的设置,对应bit位为1时,表示更新当前端口的白名单列表,对应bit位为0时,表示销毁当前端口的白名单列表。
[0026]
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

技术特征:
1.一种基于白名单的设备过滤方法,其特征在于,包括步骤:运行linux系统的设备平台从spi-flash中划分出单独的存储白名单列表的分区,导入白名单列表;实时监测任意usb接口的热插拔事件;识别对应接口插入的usb存储设备,获取设备信息,在白名单列表中的usb存储设备信息中进行检索,如果该设备信息存在于白名单列表,则认为该设备合法,否则将禁用该设备并进行告警。2.根据权利要求1所述基于白名单的设备过滤方法,其特征在于,所述实时监测热插拔事件的方法为通过伺服程序中的usbdector类中的创建monitor线程来实时监控每个usb接口的插入事件。3.根据权利要求2所述基于白名单的设备过滤方法,其特征在于,所述获取设备信息的方法为:在伺服程序中创建类实例的时候绑定每个usb接口在内存中的地址,当设备平台检测到任意usb接口有usb存储设备插入后,usb设备检测模块解析该设备在scsi总线上的序号n,生成n对应的设备信息,通过cat指令查看设备信息。4.根据权利要求1所述基于白名单的设备过滤方法,其特征在于,所述在白名单列表检索设备信息的方法为:先根据usb端口,计算出对应白名单列表的偏移,然后采用枚举法,按字节依次读取,并将读取的数据和获取到的设备信息进行对比,如果设备信息一致,则认为该设备合法。5.根据权利要求1-4任一所述基于白名单的设备过滤方法,其特征在于,所述设备信息包括厂商信息、产品信息、usb存储设备序列号。6.根据权利要求1所述基于白名单的设备过滤方法,其特征在于,白名单列表通过专用的白名单载体u盘导入,导入步骤为:将白名单载体u盘接入windows主机,通过windows主机内的管理软件连接白名单载体u盘,将需要添加进白名单列表的usb存储设备插入到windows主机,通过管理软件获取该usb存储设备的设备信息加入白名单载体u盘的白名单列表;将白名单载体u盘插入设备平台的任意usb接口,伺服程序对白名单载体u盘进行身份认证,认证成功后循环读取其中的白名单列表并写入spi-flash,直到读取完成,并更新spi-flash中的白名单索引表;所述白名单列表存放于白名单载体u盘中只有管理软件允许访问的隐藏区;所述管理软件和白名单载体u盘通过私有指令进行通信。7.根据权利要求6所述基于白名单的设备过滤方法,其特征在于,白名单列表的存储方法为:spi-flash初始化时,根据usb端口的数量分配足够的存储空间,每一个usb端口的白名单索引用二维数组来标记,通过index[n][m]来索引所有usb端口的白名单列表。8.根据权利要求6所述基于白名单的设备过滤方法,其特征在于,所述白名单载体u盘隐藏区的的lba中还包含有确定白名单列表是更新还是销毁的bit,每个usb端口对应一个bit位,对应bit位为1时,表示更新当前端口的白名单列表,对应bit位为0时,表示销毁当前端口的白名单列表。9.一种配合权利要求1-8任一方法的基于白名单的设备过滤系统,其特征在于,包括:
设备平台,所述设备平台运行linux系统,该设备平台具有单独存储白名单列表分区的spi-flash存储介质;白名单载体u盘,用于更新白名单列表,所述白名单载体u盘具备隐藏区;windows主机,具备管理软件,用于连接白名单载体u盘和需要添加进白名单列表的usb;所述设备平台包括:基于白名单的接口管理模块,用于管理设备平台所有usb接口;usb设备检测模块,用于识别插入的usb存储设备,并获取设备信息;白名单识别模块,用于查找spi-flash中的白名单列表,判断存在插入事件的usb端口对应的usb存储设备是否合法。

技术总结
本发明提出一种新的白名单的管理方法,对接入设备平台USB接口中的USB存储设备进行合法性判断和筛选,只有设备信息符合白名单列表的设备,才能正常工作并使用设备平台的功能。在设备平台中,白名单列表存放于平台硬件的SPI-FLASH模块,运行于设备管理平台的伺服程序,会实时监测USB接口中的热插拔事件,如果有USB存储设备插入,将判定对应端口的USB存储设备信息是否存在于白名单列表,若存在,则使能USB存储设备,若不存在,则禁用USB存储设备并告警。白名单列表可以通过专用的密钥U盘进行更新。通过以上方法,大大提高了白名单列表更新的便捷性以及系统的整体安全性,降低了数据泄露的风险。泄露的风险。


技术研发人员:姜向阳 秦法林 张忠国 石念伟
受保护的技术使用者:山东华芯半导体有限公司
技术研发日:2023.07.06
技术公布日:2023/10/7
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐