CN109726079A - 一种usb设备热插拔监控方法和系统 - Google Patents
一种usb设备热插拔监控方法和系统 Download PDFInfo
- Publication number
- CN109726079A CN109726079A CN201811633372.2A CN201811633372A CN109726079A CN 109726079 A CN109726079 A CN 109726079A CN 201811633372 A CN201811633372 A CN 201811633372A CN 109726079 A CN109726079 A CN 109726079A
- Authority
- CN
- China
- Prior art keywords
- hot plug
- usb device
- particular descriptor
- linux system
- monitoring
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种USB设备热插拔监控方法和系统,适用于Linux系统,方法包括:S1、基于netlink套接字创建一个用于描述热插拔的特定描述符,允许所述特定描述符复用于Linux系统的其他端口;S2、接收Linux系统的内核传递出来的USB设备的热插拔信息,检测所述热插拔信息是否符合白名单,符合则生成设备信息记录并输出,不符合则卸载对应USB设备。系统用于执行方法。本发明通过netlink套接字创建特定描述符,将特定描述符复用于Linux系统的其他端口,绑定特定描述符和检测进程以形成监控线程,检测热插拔信息是否符合白名单,符合则生成设备信息记录并输出,不符合则卸载对应USB设备,能记录异常USB接入,防止异常设备的接入导致的系统异常。
Description
技术领域
本发明涉及嵌入式设备安全领域,尤其是一种USB设备热插拔监控方法和系统。
背景技术
出于成本控制和性能满足的要求,很多终端设备并不具备如window这样复杂的OS,对应的,很多终端设备采用的是嵌入式系统,例如Linux。出于系统维护的需要,系统需要进行更新和升级,通过USB设备将升级相关的数据输入终端设备是常用的系统维护方式。
但是,在实践中,用户在购买产品后,可以通过接入U盘一类存储设备完成拷贝数据或升级程序等操作,而存在USB设备具有病毒或者其他可能影响系统稳定的数据的情况,会对系统造成破坏,此时,作为产品供应商难以证明系统的破坏并非本身的问题,容易导致和客户之间的纠纷。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本发明的一个目的是提供一种USB设备热插拔监控方法和系统。
本发明所采用的技术方案是:
第一方面,本发明提供一种USB设备热插拔监控方法,适用于Linux系统,包括步骤:S1、基于netlink套接字创建一个用于描述热插拔的特定描述符,允许所述特定描述符复用于Linux系统的其他端口;S2、接收Linux系统的内核传递出来的USB设备的热插拔信息,检测所述热插拔信息是否符合白名单,符合则生成设备信息记录并输出,不符合则卸载对应USB设备。
优选地,所述特定描述符属于PF_NETLINK协议族的NETLINK_KOBJECT_UEVENT类型。
优选地,步骤S1具体包括:基于netlink套接字创建一个用于描述热插拔的特定描述符,允许所述特定描述符复用于Linux系统的其他端口,利用select在while循环内监听套结字是否可读,如果可读,则执行下一步。
优选地,步骤S1具体包括:基于netlink套接字创建一个用于描述热插拔的特定描述符,利用setsocketopt允许所述特定描述符复用于Linux系统的其他端口,利用bind函数绑定检测进程和所述特定描述符。
优选地,步骤S2具体包括:调用recv接收Linux系统的内核传递出来的USB设备的热插拔信息。
第二方面,本发明提供一种USB设备热插拔监控系统,包括:设置模块,用于基于netlink套接字创建一个用于描述热插拔的特定描述符,允许所述特定描述符复用于Linux系统的其他端口;监控模块,用于接收Linux系统的内核传递出来的USB设备的热插拔信息,检测所述热插拔信息是否符合白名单,符合则生成设备信息记录并输出,不符合则卸载对应USB设备。
优选地,所述特定描述符属于PF_NETLINK协议族的NETLINK_KOBJECT_UEVENT类型。
优选地,所述设置模块,具体用于基于netlink套接字创建一个用于描述热插拔的特定描述符,允许所述特定描述符复用于Linux系统的其他端口,利用select在while循环内监听套结字是否可读,如果可读,则监控模块执行下一步。
优选地,所述设置模块,具体用于基于netlink套接字创建一个用于描述热插拔的特定描述符,利用setsocketopt允许所述特定描述符复用于Linux系统的其他端口,利用bind函数绑定检测进程和所述特定描述符。
优选地,监控模块,具体用于调用recv接收Linux系统的内核传递出来的USB设备的热插拔信息。
本发明的有益效果是:
本发明通过基于netlink套接字创建特定描述符,将特定描述符复用于Linux系统的其他端口,绑定特定描述符和检测进程以形成监控线程,检测热插拔信息是否符合白名单,符合则生成设备信息记录并输出,不符合则卸载对应USB设备,能记录异常USB接入,防止异常设备的接入导致的系统异常。
附图说明
图1是本发明的一种USB设备热插拔监控方法的示意图;
图2是本发明的白名单设置和监控流程的示意图;
图3是本发明一种USB设备热插拔监控系统的示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
实施例1
本实施例的目的在于解释现有技术的缺点和本发明的解决思路。
现在公司提供的终端设备,因为其结构不复杂,也不涉及过多的数据处理,因此不需要复杂运行系统,因此嵌入式系统作为能执行一定功能的小型运行系统,广泛应用于简单的设备。同时,出于运行方法升级或者安全措施的原因,需要对嵌入式系统进行维护和升级,一般的嵌入式系统(设备)都会提供标准的USB接口以进行数据的交换,基于嵌入Linux的产品一般不对接入USB设备监控,对接入的设备只要内核驱动支持即能正常使用;U盘内数据的拷贝及程序升级方式基本是基于扫描特定的文件名称和路径来完成。而如果USB设备存储的数据是对产品有害时,作为产品的生产商在没有证据的情况下,不易解释双方责任,导致与客户发生冲突。
针对于上述问题,本实施例提供如图1所示一种USB设备热插拔监控方法,包括步骤:S1基于netlink套接字创建一个用于描述热插拔的特定描述符,允许所述特定描述符复用于Linux系统的其他端口;S2接收Linux系统的内核传递出来的USB设备的热插拔信息,检测所述热插拔信息是否符合白名单,符合则生成设备信息记录并输出,不符合则卸载对应USB设备。
具体过程包括:
设置监控线程(线程占用一个端口,该端口用于输出记录),首先创建一个PF_NETLINK协议族的NETLINK_KOBJECT_UEVENT类型的特殊文件描述符(套结字,即特定描述符),然后利用setsocketopt允许该文件描述符复用其他端口,再利用bind函数将自身进程(即检测进程,涉及设置监控线程的全部进程)绑定到特殊文件描述符(其目的在于形成一个统一的USB接入事件的记录),最后利用select在while循环内监听套结字是否可读,如果可读(即说明每一个端口都完成监控)则调用recv接收Linux系统内核传递过来的USB热插拔信息,根据白名单过滤机制对设备进行监控,生成相应的事件记录并设置用于上报到主站的消息通知通信线程。
其中,Uevent(即UEVENT)是一种在内核空间和用户空间之间通信的机制,主要用于热插拔事件(hotplug),Uevent是Kobject的一部分,用于在Kobject状态发生改变时,例如增加、移除等;setsocketopt用于获取或者设置与某个套接字关联的选项。
本实施例通过将监控/记录热插拔事件的发生以作为后期的查询异常的证据,通过白名单的方式能够降低异常的发生的概率,有利于提高产品的工作稳定性。
实施例2
本实施例的目的在于提供优选的方案。
本实施例提供如图2所示的白名单设置和监控流程,包括步骤:
S0、开始;S01、创建监控线程;S02、是否有收到新的socket(套接字,在本实施例中为特殊文件描述符,即有新的设备接入),是则执行下一步,否则重新执行S02;S03、判断设备是否属于白名单,属于则执行S041,否则执行S042;S041、生成设备信息事件记录并上报主站;S042、卸载非法设备。
具体的还可以包括步骤S00,设置/更新监控设备的白名单,该步骤可以是承接步骤S041或步骤S01。
实施例3
本实施例提供如图3所示的一种USB设备热插拔监控系统,包括:设置模块1,用于基于netlink套接字创建一个用于描述热插拔的特定描述符,允许所述特定描述符复用于Linux系统的其他端口;监控模块2,用于接收Linux系统的内核传递出来的USB设备的热插拔信息,检测所述热插拔信息是否符合白名单,符合则生成设备信息记录并输出,不符合则卸载对应USB设备。
以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。
Claims (10)
1.一种USB设备热插拔监控方法,适用于Linux系统,其特征在于,包括步骤:
S1、基于netlink套接字创建一个用于描述热插拔的特定描述符,允许所述特定描述符复用于Linux系统的其他端口;
S2、接收Linux系统的内核传递出来的USB设备的热插拔信息,检测所述热插拔信息是否符合白名单,符合则生成设备信息记录并输出,不符合则卸载对应USB设备。
2.根据权利要求1所述的一种USB设备热插拔监控方法,其特征在于,所述特定描述符属于PF_NETLINK协议族的NETLINK_KOBJECT_UEVENT类型。
3.根据权利要求1所述的一种USB设备热插拔监控方法,其特征在于,步骤S1具体包括:
基于netlink套接字创建一个用于描述热插拔的特定描述符,允许所述特定描述符复用于Linux系统的其他端口,利用select在while循环内监听套结字是否可读,如果可读,则执行下一步。
4.根据权利要求1所述的一种USB设备热插拔监控方法,其特征在于,步骤S1具体包括:
基于netlink套接字创建一个用于描述热插拔的特定描述符,利用setsocketopt允许所述特定描述符复用于Linux系统的其他端口,利用bind函数绑定检测进程和所述特定描述符。
5.根据权利要求1所述的一种USB设备热插拔监控方法,其特征在于,步骤S2具体包括:
调用recv接收Linux系统的内核传递出来的USB设备的热插拔信息。
6.一种USB设备热插拔监控系统,其特征在于,包括:
设置模块,用于基于netlink套接字创建一个用于描述热插拔的特定描述符,允许所述特定描述符复用于Linux系统的其他端口;
监控模块,用于接收Linux系统的内核传递出来的USB设备的热插拔信息,检测所述热插拔信息是否符合白名单,符合则生成设备信息记录并输出,不符合则卸载对应USB设备。
7.根据权利要求6所述的一种USB设备热插拔监控系统,其特征在于,所述特定描述符属于PF_NETLINK协议族的NETLINK_KOBJECT_UEVENT类型。
8.根据权利要求6所述的一种USB设备热插拔监控系统,其特征在于,所述设置模块,具体用于基于netlink套接字创建一个用于描述热插拔的特定描述符,允许所述特定描述符复用于Linux系统的其他端口,利用select在while循环内监听套结字是否可读,如果可读,则监控模块执行下一步。
9.根据权利要求6所述的一种USB设备热插拔监控系统,其特征在于,所述设置模块,具体用于基于netlink套接字创建一个用于描述热插拔的特定描述符,利用setsocketopt允许所述特定描述符复用于Linux系统的其他端口,利用bind函数绑定检测进程和所述特定描述符。
10.根据权利要求6所述的一种USB设备热插拔监控系统,其特征在于,监控模块,具体用于调用recv接收Linux系统的内核传递出来的USB设备的热插拔信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811633372.2A CN109726079A (zh) | 2018-12-29 | 2018-12-29 | 一种usb设备热插拔监控方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811633372.2A CN109726079A (zh) | 2018-12-29 | 2018-12-29 | 一种usb设备热插拔监控方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109726079A true CN109726079A (zh) | 2019-05-07 |
Family
ID=66297695
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811633372.2A Pending CN109726079A (zh) | 2018-12-29 | 2018-12-29 | 一种usb设备热插拔监控方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109726079A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111343041A (zh) * | 2020-01-19 | 2020-06-26 | 苏州浪潮智能科技有限公司 | 一种风扇状态监控方法和装置 |
CN111970224A (zh) * | 2019-05-20 | 2020-11-20 | 北京奇安信科技有限公司 | 终端设备的环境状态感知方法、装置和计算机设备 |
CN112346792A (zh) * | 2020-06-11 | 2021-02-09 | 广州锦行网络科技有限公司 | 一种基于Linux系统的端口复用方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8281058B1 (en) * | 2009-10-19 | 2012-10-02 | Symantec Corporation | Systems and methods for using USB device descriptors to identify computing environments |
CN102830970A (zh) * | 2012-08-10 | 2012-12-19 | 深圳市共进电子股份有限公司 | 一种适用于Linux嵌入式系统的热插拔处理方法 |
CN104636655A (zh) * | 2015-02-06 | 2015-05-20 | 电子科技大学 | 一种热插拔设备的可信验证方法 |
CN108228425A (zh) * | 2017-12-29 | 2018-06-29 | 成都三零嘉微电子有限公司 | 一种Linux系统实施获取设备热插拔信息的系统 |
-
2018
- 2018-12-29 CN CN201811633372.2A patent/CN109726079A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8281058B1 (en) * | 2009-10-19 | 2012-10-02 | Symantec Corporation | Systems and methods for using USB device descriptors to identify computing environments |
CN102830970A (zh) * | 2012-08-10 | 2012-12-19 | 深圳市共进电子股份有限公司 | 一种适用于Linux嵌入式系统的热插拔处理方法 |
CN104636655A (zh) * | 2015-02-06 | 2015-05-20 | 电子科技大学 | 一种热插拔设备的可信验证方法 |
CN108228425A (zh) * | 2017-12-29 | 2018-06-29 | 成都三零嘉微电子有限公司 | 一种Linux系统实施获取设备热插拔信息的系统 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111970224A (zh) * | 2019-05-20 | 2020-11-20 | 北京奇安信科技有限公司 | 终端设备的环境状态感知方法、装置和计算机设备 |
CN111970224B (zh) * | 2019-05-20 | 2023-08-22 | 奇安信科技集团股份有限公司 | 终端设备的环境状态感知方法、装置和计算机设备 |
CN111343041A (zh) * | 2020-01-19 | 2020-06-26 | 苏州浪潮智能科技有限公司 | 一种风扇状态监控方法和装置 |
CN112346792A (zh) * | 2020-06-11 | 2021-02-09 | 广州锦行网络科技有限公司 | 一种基于Linux系统的端口复用方法 |
CN112346792B (zh) * | 2020-06-11 | 2021-09-21 | 广州锦行网络科技有限公司 | 一种基于Linux系统的端口复用方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10810001B2 (en) | Device-driven auto-recovery using multiple recovery sources | |
US20180285217A1 (en) | Failover response using a known good state from a distributed ledger | |
US20210266183A1 (en) | Dynamic certificate management as part of a distributed authentication system | |
CN109726079A (zh) | 一种usb设备热插拔监控方法和系统 | |
RU2693188C1 (ru) | Способ управления и блок для переносных устройств хранения и носитель хранения | |
US11829478B2 (en) | Full server recovery architecture for cloud bare metal instances | |
CN108701039A (zh) | 用于无线更新车辆的软件的方法和设备 | |
US20200134163A1 (en) | Monitoring device components using distributed ledger | |
CN107678997B (zh) | Pcie插卡的热插拔方法、系统、装置和可读存储介质 | |
US20230140209A1 (en) | System and method for secure access to a distributed virtual firmware network drive | |
US20220171855A1 (en) | Electronic control device and security verification method for electronic control device | |
US20230359741A1 (en) | Trusted boot method and apparatus, electronic device, and readable storage medium | |
US11831674B2 (en) | Detecting man-in-the-middle attacks in management component transport protocol network server systems | |
US20200272708A1 (en) | Computer system, computer apparatus, and license management method | |
CN111858094A (zh) | 一种数据复制粘贴方法、系统及电子设备 | |
CN106657390A (zh) | 集群文件系统目录隔离方法、装置及系统 | |
CN113268206B (zh) | 一种网络靶场资源热插拔实现方法与系统 | |
CN108228219B (zh) | 一种带外刷新bios时验证bios合法性的方法及装置 | |
KR101901644B1 (ko) | Usim 관리 장치 및 모니터링 프로그램 | |
CN111258805B (zh) | 一种服务器的硬盘状态监控方法、设备和计算机设备 | |
CN112131612B (zh) | 一种cf卡数据防篡改方法、装置、设备及介质 | |
CN113992659B (zh) | 业务模型的跨境流转方法、装置及存储介质 | |
JP7131363B2 (ja) | ライセンス管理装置、ライセンス管理システム、ライセンス管理方法、プログラム | |
US20240159812A1 (en) | Method for monitoring in a distributed system | |
US20240097917A1 (en) | User data management method and related device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190507 |