一种检测Linux系统USB设备插拔的方法技术方案

技术编号:35272519 阅读:13 留言:0更新日期:2022-10-19 10:46
本发明专利技术提供了一种检测Linux系统USB设备插拔的方法,涉及互联网安全技术领域,该方法具体为监视Linux系统中的sysfs文件系统目录,通过感知sysfs文件系统目录中文件的增删变化,来检测USB设备的插入和拔出。本发明专利技术提出的内核设备对象文件监控方法,采用了一种全新的检测方法,使得USB设备插拔的检测不局限于Linux udev设备管理接口,可以像监控普通文件一样进行USB设备的审计,方法简单,易于实施。易于实施。易于实施。

【技术实现步骤摘要】
一种检测Linux系统USB设备插拔的方法


[0001]本专利技术属于互联网安全
,尤其涉及一种检测Linux系统USB设备插拔的方法。

技术介绍

[0002]USB技术在带来便利的同时,也引入了一些安全风险,如通过U盘传播的病毒和木马,因此有必要对USB设备的使用进行审计和管控,禁止随意使用未授权的USB设备。
[0003]对USB设备的审计和管控,要求具备检测USB设备插入和拔出事件的能力。
[0004]在Windows系统中,可以通过WMI(Windows Management Instrumentation,Windows管理规范)接口监听USB插拔事件,如专利“CN109359489A一种计算机USB设备接入的检测及预警方法”就采用了这个方法。
[0005]目前在Linux系统中,是通过udev机制来管理热拔插设备的,设备插入和拔出的时候都会产生uevent事件。Uevent事件消息中的关键字add和remove,指示了这是插入了一个USB设备,还是拔出了一个USB设备。
[0006]应用程序可以通过netlink接口,接收到uevent事件消息。netlink是一种特殊的socket接口,在Linux系统中用于应用程序与内核之间传输数据。
[0007]专利“CN113343240A一种USB伪装入侵的检测方法及装置”,即提到“基于Linux内核UDEV接口,实时获取USB设备基于加载类型加载时的运行信息”。
[0008]专利“CN107918550B一种在Linux系统下审计USB设备历史使用情况的方法”,根据udev规范,编写了一个udev规则,规则中指示了对设备增删时的处理程序。这种做法,没有主动地调用udev接口去检测设备的插拔,而是告知系统,在有设备插拔时,调用一下处理程序,从而达到审计的效果。
[0009]udev属于驱动类技术,采用udev方法识别Linux系统中USB设备的插拔,其过程较为复杂,需要进行系统性的学习。

技术实现思路

[0010]本专利技术的目的在于提供一种新的检测Linux系统USB设备插拔的方法,以解决上述
技术介绍
中提出的问题。
[0011]Linux系统中有一种特殊的文件系统sysfs,这是一种虚拟的基于内存的文件系统,它提供了一种访问内核对象及其属性的接口。sysfs文件系统挂载在/sys目录上,使得可以像访问普通文件一样读取内核对象的属性。插入USB设备时,/sys目录中会产生新的描述该设备的内核对象文件,拔出后内核对象文件就会消失。本专利技术基于这个原理,提出了一种通过文件监控手段来检测Linux系统中USB设备的插拔,具体为监视Linux系统中的sysfs文件系统目录,通过感知sysfs文件系统目录中文件的增删变化,来检测USB设备的插入和拔出。
[0012]进一步地,监视的Linux系统中的sysfs文件系统目录具体为目录/sys/dev/char。
[0013]本专利技术提供第一种检测方法,具体包括以下步骤:
[0014]步骤101:遍历目录/sys/dev/char,目录/sys/dev/char中的文件类型为链接文件,每个文件代表一个设备,指向设备的属性文件,从属性文件中读取设备的接口类型(是否USB接口)、型号、厂家和序列号,将当前所有设备及其属性存入数据库,建立初始设备数据库;
[0015]步骤102:用inotify机制监视/sys/dev/char目录;
[0016]步骤103:判断目录/sys/dev/char中文件的变化是创建还是删除,若有文件被创建,则转入步骤104,若有文件被删除,则转入步骤105;
[0017]步骤104:若有文件被创建,说明插入了一个新设备,读取新创建文件指向的设备属性文件的内容,把新设备及其属性添加到设备数据库中;
[0018]步骤105:若有文件被删除,说明拔出了一个老设备,从设备数据库中查询出该设备的属性,并从设备数据库中删除;
[0019]步骤106:通过从属性文件中读取设备的接口类型判断被创建和/或被删除的文件是否为USB设备文件,若是,则转入步骤107,否则转入步骤102;
[0020]步骤107:对于被创建的文件所对应的设备报告USB设备插入,并根据管控策略禁止或允许该USB设备,对于被删除的文件所对应的设备则报告USB设备拔出。
[0021]本专利技术提供第二种检测方法,具体包括以下步骤:
[0022]步骤201:遍历目录/sys/dev/char,目录/sys/dev/char中的文件类型为链接文件,每个文件代表一个设备,指向设备的属性文件,从属性文件中读取设备的接口类型(是否USB接口)、型号、厂家和序列号,将当前所有设备及其属性存入设备数组,建立设备数组A;
[0023]步骤202:初始时间戳t取当前时间;
[0024]步骤203:监视/sys/dev/char目录,判断目录/sys/dev/char的修改时间mtime是否大于时间戳t,若是,则转入步骤205,若否,则转入步骤204;
[0025]步骤204:睡眠一定时间,继续判断目录/sys/dev/char的修改时间mtime是否大于时间戳t;
[0026]步骤205:更新时间戳t为目录/sys/dev/char的修改时间mtime,遍历目录/sys/dev/char,解析目录/sys/dev/char中的设备对象文件,即设备及其属性,建立设备数组B;
[0027]步骤206:比较设备数组A和设备数组B,只存在于设备数组A中的设备为被删除的设备,只存在于设备数组B中的设备为新增的设备;
[0028]步骤207:通过从属性文件中读取设备的接口类型判断被创建和/或被删除的文件是否为USB设备文件,若是,则转入步骤208,否则忽略本此设备的变化,转入步骤209;
[0029]步骤208:对于新增的设备报告USB设备插入,并根据管控策略禁止或允许该USB设备,对于被删除的老设备则报告USB设备拔出;
[0030]步骤209:用设备数组B替代设备数组A,转入步骤203,继续检测是否有新的设备变化。
[0031]进一步地,步骤204中睡眠时间为0.1秒、0.5秒、1秒、1.5秒或2秒。
[0032]本专利技术提供第三种检测方法,具体包括以下步骤:
[0033]步骤301:遍历目录/sys/dev/char,目录/sys/dev/char中的文件类型为链接文
件,每个文件代表一个设备,指向设备的属性文件,仅将从属性文件中读取的设备接口类型为USB的设备及其属性存入设备数组,建立USB设备数组a;
[0034]步骤302:初始时间戳t取当前时间;
[0035]步骤303:监视/sys/dev/char目录,判断目录/sys/dev/char的修改时间mtime是否大于时间戳t,若是,则转入步骤305,若否,则转入步骤304;
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种检测Linux系统USB设备插拔的方法,其特征在于,监视Linux系统中的sysfs文件系统目录,通过感知sysfs文件系统目录中文件的增删变化,来检测USB设备的插入和拔出。2.如权利要求1所述的检测Linux系统USB设备插拔的方法,其特征在于,监视的Linux系统中的sysfs文件系统目录具体为目录/sys/dev/char。3.如权利要求2所述的检测Linux系统USB设备插拔的方法,其特征在于,具体包括以下步骤:步骤101:遍历目录/sys/dev/char,目录/sys/dev/char中的文件类型为链接文件,每个文件代表一个设备,指向设备的属性文件,将当前所有设备及其属性存入数据库,建立初始设备数据库;步骤102:用inotify机制监视/sys/dev/char目录;步骤103:判断目录/sys/dev/char中文件的变化是创建还是删除,若有文件被创建,则转入步骤104,若有文件被删除,则转入步骤105;步骤104:若有文件被创建,说明插入了一个新设备,读取新创建文件指向的设备属性文件的内容,把新设备及其属性添加到设备数据库中;步骤105:若有文件被删除,说明拔出了一个老设备,从设备数据库中查询出该设备的属性,并从设备数据库中删除;步骤106:通过从属性文件中读取设备的接口类型判断被创建和/或被删除的文件是否为USB设备文件,若是,则转入步骤107,否则转入步骤102;步骤107:对于被创建的文件所对应的设备报告USB设备插入,并根据管控策略禁止或允许该USB设备,对于被删除的文件所对应的设备则报告USB设备拔出。4.如权利要求2所述的检测Linux系统USB设备插拔的方法,其特征在于,具体包括以下步骤:步骤201:遍历目录/sys/dev/char,目录/sys/dev/char中的文件类型为链接文件,每个文件代表一个设备,指向设备的属性文件,将当前所有设备及其属性存入设备数组,建立设备数组A;步骤202:初始时间戳t取当前时间;步骤203:监视/sys/dev/char目录,判断目录/sys/dev/char的修改时间mtime是否大于时间戳t,若是,则转入步骤205,若否,则转入步骤204;步骤204:睡眠一定时间,继续判断目录/sys/dev/char的修改时间mtime是否大于时间戳t;步骤205:更新时间戳t为目录/sys/dev/char的修改时间mtime,遍历目录/sys/dev/char,解析目录/sys/dev/char中的设备对象文件,建立设备数组B;步骤206:比较设备数组A...

【专利技术属性】
技术研发人员:宋为辉郑翔
申请(专利权)人:上海湖顶大数据科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1