CN110598428B - 一种基于Linux用户空间的USB设备管控系统 - Google Patents
一种基于Linux用户空间的USB设备管控系统 Download PDFInfo
- Publication number
- CN110598428B CN110598428B CN201910776287.XA CN201910776287A CN110598428B CN 110598428 B CN110598428 B CN 110598428B CN 201910776287 A CN201910776287 A CN 201910776287A CN 110598428 B CN110598428 B CN 110598428B
- Authority
- CN
- China
- Prior art keywords
- usb
- equipment
- client
- management server
- monitoring log
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/73—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by creating or determining hardware identification, e.g. serial numbers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/82—Protecting input, output or interconnection devices
- G06F21/85—Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Automation & Control Theory (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种基于Linux用户空间的USB设备管控系统,包括:管理服务器、数据库服务器和客户端;管理服务器,用于管理两个以上的客户端,包括显示客户端连接状态,接收并存储客户端发送的USB设备监控日志,并在接收到USB设备监控日志后给出告警提示;数据库服务器,用于存储USB设备监控日志和USB设备授权名单;客户端,用于以后台程序方式运行,实时监测USB设备的插入和拔出情况以及USB设备的写入操作,并阻止未授权USB设备被系统加载,生成USB设备监控日志并发送至管理服务器。采用前述系统,能够管理Linux系统下的所有USB外设,提供一种简单、高效且易部署的用于Linux平台的非加密USB设备管控系统,提升了网络安全。
Description
技术领域
本发明涉及网络安全领域,尤其涉及一种基于Linux用户空间的USB设备管控系统。
背景技术
随着计算机技术的飞速发展,对于通用串行总线(Universal Serial Bus,USB)接口的应用也越来越广泛。USB接口实现了外接设备的即插即用和热拔插功能,因此如U盘、移动硬盘、USB无线网卡、摄像头等外接设备通常设计为使用USB接口与计算机连接,此类外接设备即可称为USB设备。
人们在享受USB设备带来的易用性的同时,也面临着它带来的一系列数据泄露问题,因此人们对USB设备的安全管控要求也越来越高。随着物联网时代的到来,对于商用网络环境,需要对各类USB设备进行严格管控,除了需要对常见的U盘和移动硬盘管控外,USB无线网卡、USB摄像头等其他新型的USB设备都需要管控,以防商业秘密的泄露。
但是,传统的加密U盘管控手段中,需要使用专用工具对U盘进行格式化,格式化后的U盘只能在安装有解密程序的计算机上使用。因此,传统的加密U盘管控手段的安全性高,限制性也高。此外,传统的加密U盘管控手段只能对U盘进行管控,而无法管控无线网卡、蓝牙传输设备等新型USB设备。
发明内容
本发明提供了一种基于Linux用户空间的USB设备管控系统,以解决现有的USB设备管控系统只能对U盘进行管控,导致新型USB设备无法被管控这一问题。
本发明提供一种基于Linux用户空间的USB设备管控系统,所述系统包括管理服务器、数据库服务器和客户端;
所述管理服务器,用于管理两个以上的客户端,包括:显示客户端连接状态,接收并存储客户端发送的USB设备监控日志,并在接收到所述USB设备监控日志后给出告警提示;
所述数据库服务器,用于存储USB设备监控日志和USB设备授权名单;
所述客户端,用于以后台程序方式运行,实时监测USB设备的插入和拔出情况以及USB设备的写入操作,并阻止未授权USB设备被系统加载,生成USB设备监控日志并发送至所述管理服务器。
进一步地,所述管理服务器包括:
客户端连接状态显示模块,用于将客户端的连接状态信息显示于所述管理服务器显示界面,所述连接状态信息包括:客户端程序运行状态信息和客户端网络连通状态信息;
其中,所述客户端程序运行状态信息包括:客户端程序正常运行状态和客户端程序非正常运行状态;所述客户端网络连通状态信息包括:客户端计算机与管理服务器网络正常连通状态和客户端计算机与管理服务器网络断开连接状态;
USB设备监控日志接收模块,用于接收所述客户端发送的USB设备监控日志,并将所述USB设备监控日志显示于管理服务器的显示界面;
USB设备监控日志存储模块,用于接收所述客户端发送的USB设备监控日志后,将所述USB设备监控日志存储在数据库服务器中;
多客户端管理模块,用于支持两个以上的所述客户端连接于计算机,对所述两个以上的客户端发送的USB设备监控日志进行分类管理;
告警提示模块,用于在接收到客户端发送的未授权USB设备插入信息时,对所述未授权USB设备插入信息进行告警提示,所述告警提示显示于管理服务器的显示界面。
进一步地,所述数据库服务器包括:
USB设备监控日志存储模块,用于通过构建监控日志的数据表结构,存储所述客户端发送的USB设备监控日志;
USB设备授权名单存储模块,用于通过构建USB设备授权名单的数据表结构,存储所述USB设备授权名单,所述USB设备授权名单包括白名单和灰名单。
在一种实现方式中,所述USB设备授权名单包括:所述USB设备的制造商编号、产品编号、通用唯一识别码、读写权限和编码方式;
其中,通用唯一识别码、读写权限和编码方式仅用于USB存储设备,不用于非USB存储设备;
对所述USB设备是否为USB存储设备的判断在客户端进行。
进一步地,通过是否使用读写权限字段将所述USB设备授权名单分为白名单和灰名单,对所述白名单和灰名单的管理配置在管理服务器进行;
如果所述USB存储设备在白名单中,赋予所述USB存储设备读取权限与写入权限;
如果所述USB存储设备在灰名单中,赋予所述USB存储设备读取权限,而不赋予写入权限。
进一步地,所述客户端包括:
隐身模块,用于通过修改进程名为空在ps命令中隐藏;所述客户端使用root权限运行,同时要求用户使用普通权限登录;
已连接设备查询模块,用于在所述客户端启动后查询所有已连接的USB设备,禁用未授权USB设备,对灰名单中的USB存储设备进行只读挂载;
USB设备实时监测模块,用于实时监测USB设备的插入和拔出情况,并在发生USB设备插入事件时接管系统对USB设备的处理;
USB存储设备判断模块,用于通过在监测到USB设备插入事件后预设时间内调用blkid命令,查询是否有新设备来确定插入的USB设备是否为USB存储设备;其中,如果在预设时间内blkid命令产生新的设备条目,则认定所述USB设备为USB存储设备;
阻止模块,用于客户端在监测到发生USB设备插入事件后,向管理服务器拉取USB设备授权名单,并判断所述USB设备是否为授权USB设备,将判断结果发送至所述管理服务器;
监控日志发送模块,用于在发生USB设备插入事件或USB设备拔出事件时,向所述管理服务器发送USB设备监控日志;
记录模块,用于如果所述USB存储设备在白名单中,审计所述USB存储设备的文件写入信息,所述文件写入信息包括:文件写入路径和文件名。
进一步地,所述阻止模块包括:
如果所述USB设备不在USB设备授权名单中,则阻止所述USB设备的加载;
如果所述USB设备在白名单中,则将所述USB设备控制权交还给系统;
如果所述USB设备为USB存储设备,且所述USB存储设备在灰名单中,则阻止系统自动挂载所述USB存储设备,使用root权限对所述USB存储设备进行只读挂载。
进一步地,所述USB设备授权名单由管理服务器集中管理,并将所述USB设备授权名单存储在数据库服务器中。
进一步地,所述客户端在无法连接管理服务器的情况下,在本地文件临时存储USB设备离线监控日志,并在再次连接到管理服务器时,优先发送所述USB设备离线监控日志。
由以上技术方案可知,本发明提供一种基于Linux用户空间的USB设备管控系统,所述系统包括管理服务器、数据库服务器和客户端;所述管理服务器,用于对两个以上的客户端进行管理,包括:显示客户端连接状态,接收并存储客户端发送的USB设备监控日志,并在接收到USB设备监控日志后给出告警提示;所述数据库服务器,用于存储USB设备监控日志以及,存储USB设备授权名单;所述客户端,用于以系统后台程序方式运行,实时监测USB设备的插入和拔出情况和USB设备的写入操作,生成USB设备监控日志并发送至所述管理服务器。
本发明通过构建基于Linux用户空间的USB设备管控系统,可用于管理Linux系统下的所有USB外设,包括但不限于U盘、移动硬盘、键盘、鼠标、摄像头、USB无线网卡等。基于Thrift框架构建客户端和服务器的数据传输系统,由于USB规范中对序列号没有强制要求,本发明通过检查存储设备通用唯一识别码(Universally Unique Identifier,UUID)来准确区分USB存储设备。本发明客户端在单机状态下依然可以正常工作,但将通过判断USB标准中规定的设备类型来拒绝所有除键盘、鼠标外的USB设备。本发明系统同时支持USB存储设备白名单和灰名单功能,满足对非加密USB存储设备的双向导入导出和单向导入需求,并能够记录写入USB存储设备的文件路径和文件名称;本发明系统基于用户空间实现易于部署,不需对内核进行修改。
本发明利用Linux命令查询UUID作为存储设备唯一标识符,具有USB存储设备读写控制功能,面向Linux平台非加密USB设备,不仅限于U盘,还具有管控USB摄像头、USB无线网卡等非USB存储设备的能力,并能够记录USB存储设备的写入操作。本发明在Linux用户空间实现对USB存储设备的开机前插入控制、读写权限控制、授权控制和唯一标识控制。现有技术中,USB设备管控系统只能对U盘进行管控,导致新型USB设备无法被管控这一问题。而本发明提供一种简单、高效、易于部署的用于Linux平台的非加密USB设备管控系统,相对于现有技术提升了网络安全。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例部分提供的一种基于Linux用户空间的USB设备管控系统中的数据流程示意图;
图2为本发明实施例部分提供的一种基于Linux用户空间的USB设备管控系统中对USB设备插入事件处理流程示意图;
图3为本发明实施例部分提供的一种基于Linux用户空间的USB设备管控系统中Thrift服务器连接流程示意图;
图4为本发明实施例部分提供的一种基于Linux用户空间的USB设备管控系统中对USB设备拔出事件处理流程示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
为了更方便的数据交互,部分涉密等级不高的场所并不需要加密U盘管控手段,此时使用非加密U盘管控手段能带来更多的便利,相对于加密U盘,非加密U盘不需要使用专用工具,可直接被系统读取。除加密U盘外,常用的USB键盘、USB鼠标、USB无线网卡等USB设备都属于非加密USB设备,而本发明针对非加密USB设备使用场景设计,实现对非加密USB设备的有效管控。
本发明实施例公开一种基于Linux用户空间的USB设备管控系统,所述系统包括管理服务器、数据库服务器和客户端。
所述管理服务器,用于管理两个以上的客户端,包括:显示客户端连接状态,接收并存储客户端发送的USB设备监控日志,并在接收到USB设备监控日志后给出告警提示。
所述数据库服务器,用于存储USB设备监控日志和USB设备授权名单。
所述客户端,用于以后台程序方式运行,实时监测USB设备的插入和拔出情况和USB设备的写入操作,生成USB设备监控日志并发送至所述管理服务器。
本实施例中,所述客户端通过在/etc/rc.local中添加后台开机自动启动命令从而以后台程序方式运行,具体为在计算机开机时该客户端后台程序自动启动。如果所述客户端不在计算机开机时自动启动,而在计算机开机且用户使用USB设备后再启动,重要数据可能已被泄露。因此,所述客户端以后台程序方式运行且在计算机开机时自动启动,能够及时对USB设备进行管控,进一步地提升本发明所述系统对USB设备管控的有效性。
所述一种基于Linux用户空间的USB设备管控系统中,所述管理服务器包括:
客户端连接状态显示模块,用于将客户端的连接状态信息显示于所述管理服务器显示界面,所述连接状态信息包括:客户端程序运行状态信息和客户端网络连通状态信息。
其中,所述客户端程序运行状态信息包括:客户端程序正常运行状态和客户端程序非正常运行状态;所述客户端网络连通状态信息包括:客户端计算机与管理服务器网络正常连通状态和客户端计算机与管理服务器网络断开连接状态。
USB设备监控日志接收模块,用于接收客户端发送的USB设备监控日志,并将所述USB设备监控日志显示于管理服务器显示界面。
USB设备监控日志存储模块,用于接收客户端发送的USB设备监控日志后,将所述USB设备监控日志存储在数据库服务器中。
多客户端管理模块,用于支持两个以上的客户端连接,对两个以上的客户端发送的USB设备监控日志进行分类管理,所述分类管理即根据不同客户端对USB设备监控日志进行管理。
告警提示模块,用于在接收到未授权USB设备插入信息时,对所述未授权USB设备插入信息进行告警提示,所述告警提示显示于管理服务器的显示界面。
本实施例中,USB设备是否为授权USB设备的判断在客户端进行,具体的,在客户端的阻止模块进行。当客户端拉取管理服务器维护的白名单,并在客户端的阻止模块进行判断后,将判断结果反馈给管理服务器。例如,插入的USB设备为未授权USB设备,客户端首先拉取管理服务器维护的白名单,并在客户端的阻止模块得到该USB设备为未授权USB设备的判断结果,根据该判断结果,客户端向管理服务器的告警提示模块发送未授权USB设备插入信息,所述告警提示模块能够对所述未授权USB设备插入信息进行告警提示,进一步提升了本发明所述系统管控USB设备的有效性。
具体的,所述告警提示的内容包括:客户端IP地址、USB设备插入/拔出时间、USB设备类型、USB生产厂商、USB存储设备的通用唯一识别码(Universally Unique Identifier,UUID)、告警类型以及告警等级,所述告警等级包括一般告警等级和严重告警等级,所述告警方式可以采用高亮提醒方式。
所述一种基于Linux用户空间的USB设备管控系统中,所述数据库服务器包括:
USB设备监控日志存储模块,用于通过构建监控日志数据表结构,存储所述管理服务器接收的USB设备监控日志;
USB设备授权名单存储模块,用于通过构建USB设备授权名单的数据表结构,存储所述USB设备授权名单,所述USB设备授权名单包括白名单和灰名单。
所述一种基于Linux用户空间的USB设备管控系统中,所述USB设备授权名单包括:制造商编号、产品编号、通用唯一识别码、读写权限和编码方式;
其中,通用唯一识别码、读写权限和编码方式仅用于USB存储设备,不用于非USB存储设备。
具体的,对所述USB设备是否为USB存储设备的判断在客户端进行。
本实施例中,所述通用唯一识别码由操作系统在对USB存储设备进行格式化时自动分配;
所述一种基于Linux用户空间的USB设备管控系统中,通过是否使用读写权限字段将所述USB设备授权名单分为白名单和灰名单,对所述白名单和灰名单的管理配置在管理服务器进行;
如果所述USB存储设备在白名单中,赋予所述USB存储设备读取权限与写入权限;
如果所述USB设备在灰名单中,赋予所述USB存储设备读取权限,而不赋予写入权限。
所述一种基于Linux用户空间的USB设备管控系统中,所述客户端包括:
隐身模块,用于通过修改进程名为空在ps命令中隐藏,具体的,本实施例中,通过使用memset(argv[0],0,strlen(argv[0]));在ps命令中隐藏;客户端使用root权限运行,同时要求用户使用普通权限登录。
本实施例中,通过隐藏客户端,能够防止用户查询到进程名称,通过使用root权限运行,同时要求用户使用普通权限登录,能够防止客户端被用户恶意终止,进一步提升了本发明所述系统管控USB设备的有效性。
已连接设备查询模块,用于在客户端启动后查询所有已连接的USB设备,禁用未授权USB设备,对灰名单USB存储设备进行只读挂载。
本实施例中,通过该所述已连接设备查询模块,可有效防止未授权的设备在开机前插入计算机以躲避对USB插入事件的监测的行为。
USB设备实时监测模块,客户端以后台服务的方式运行,用于实时监测USB设备的插入和拔出情况,并在发生USB设备插入事件时接管系统对USB设备的处理;
USB存储设备判断模块,用于通过在监测到USB设备插入事件后预设时间内调用blkid命令,查询是否有新设备来确定插入的USB设备是否为USB存储设备;其中,如果在预设时间内blkid命令产生新的设备条目,则认定所述USB设备为USB存储设备;
本实施例中,所述预设时间,原则上为不可造成系统长时间运行阻塞的时间,并且在所述预设时间内,系统已向blkid命令产生的列表中添加了USB存储设备。具体的,本实施例中,所述预设时间可以为1s。
阻止模块,用于客户端在监测到发生USB设备插入事件后,向管理服务器拉取USB设备授权名单,并判断所述USB设备是否为授权USB设备,将判断结果发送至所述管理服务器;
如果所述USB设备不在USB设备授权名单中,则阻止所述USB设备的加载;
如果所述USB设备在白名单中,则将所述USB设备控制权交还给系统;
如果所述USB设备为USB存储设备,且所述USB存储设备在灰名单中,则阻止系统自动挂载所述USB存储设备,使用root权限对所述USB存储设备进行只读挂载。
监控日志发送模块,用于在发生USB设备插入事件或USB设备拔出事件时,向所述管理服务器发送USB设备监控日志;
本实施例中,所述USB设备监控日志包括:客户端IP地址、USB设备插入时间、USB设备拔出时间、USB设备类型、USB设备生产厂商、USB存储设备的通用唯一识别码、白名单设备、灰名单设备以及禁止挂载设备。
记录模块,用于如果所述USB存储设备在白名单中,审计所述USB存储设备的文件写入信息,所述文件写入信息包括:文件写入路径和文件名。
所述一种基于Linux用户空间的USB设备管控系统中,所述USB设备授权名单由管理服务器集中管理,并将所述USB设备授权名单存储在数据库服务器中。
本实施例中,只有管理服务器能够对USB设备授权名单进行增加、修改或删除,并将修改信息存储到数据库服务器中。客户端只能从管理服务器获取USB设备授权名单,不能增加、修改、删除USB设备授权名单内容,不能直接操作数据库服务器。客户端每次检索USB设备授权名单均需向管理服务器申请并拉取USB设备授权名单,脱离管理服务器的客户端将阻止除键盘鼠标外的所有USB设备被系统加载,具体的,通过Libusb可以获取USB设备的设备类型,键盘、鼠标属于人机交互(Human Interface Device,HID)类设备,系统默认将HID类设备排除在禁止之列。
所述一种基于Linux用户空间的USB设备管控系统中,所述客户端在无法连接管理服务器的情况下,临时存储产生的USB设备离线监控日志,并在再次连接到管理服务器时,优先发送所述USB设备离线监控日志。
图1为本发明实施例部分提供的一种基于Linux用户空间的USB设备管控系统中的数据流程示意图,如图1所示,本发明采用Thrift框架进行管理服务器与客户端之间的消息通讯,所述系统包括管理服务器、数据库服务器和客户端。
具体的,当发生USB设备插入事件后,客户端向管理服务器发送USB设备插入信息,同时向管理服务器发出获取USB设备授权名单请求,获取授权名单后,判断插入的USB设备是否在授权名单中;
如果插入的USB设备是U盘等USB存储设备,客户端需调用blkid命令查询USB存储设备的UUID;
当发生USB设备拔出事件后,客户端向管理服务器发送USB设备拔出信息。
所述blkid命令主要用来对系统的块设备所使用的文件系统类型、卷标、UUID等信息进行查询。本实施例中,blkid命令将会输出所有可用的USB存储设备的设备信息,所述设备信息包括它们的UUID、文件系统类型及卷标,客户端调用blkid命令的算法流程如下:
客户端每100毫秒调用1次blkid命令,查询blkid命令输出结果;
blkid命令输入结果如下所示,其中UUID后为设备的通用唯一识别码,TYPE后为文件系统类型,LABEL后为卷标,如果没有卷标则没有LABEL项:
/dev/sda1:UUID="1b7a6330-c00c-4ad9-aba5-a3813bf6c8ba"TYPE="ext4"
/dev/sda2:UUID="cV88LX-mDVA-eZ2T-4Biy-v6EL-VYiM-ksK1A5"TYPE="LVM2_member"
/dev/mapper/VolGroup-lv_root:UUID="2ec12342-6e8f-49fa-9e4e-0b79c86c68e7"TYPE="ext4"
/dev/mapper/VolGroup-lv_swap:UUID="682f2b75-1b15-4138-831f-f09dbed3d20d"TYPE="swap"
每行为一个存储设备的信息,当系统检查到USB存储设备插入后,会在blkid命令输出结果后插入一条数据,如下:
/dev/sda1:UUID="1b7a6330-c00c-4ad9-aba5-a3813bf6c8ba"TYPE="ext4"
/dev/sda2:UUID="cV88LX-mDVA-eZ2T-4Biy-v6EL-VYiM-ksK1A5"TYPE="LVM2_member"
/dev/mapper/VolGroup-lv_root:UUID="2ec12342-6e8f-49fa-9e4e-0b79c86c68e7"TYPE="ext4"
/dev/mapper/VolGroup-lv_swap:UUID="682f2b75-1b15-4138-831f-f09dbed3d20d"TYPE="swap"
/dev/sdb1:LABEL="UNTITLED"UUID="C767-19ED"TYPE="vfat"
当循环检测到blkid命令输出结果行数发生变化后,说明系统中有存储设备插入,通过分析blkid命令最后一行输出分析存储设备的UUID。本实施例中,所述存储USB设备的UUID即:C767-19ED。
如果插入的USB设备是非USB存储设备,循环检测blkid输出结果在等待1秒后退出监测,并将USB设备标记为非USB存储设备。
管理服务器采用后台服务和图形界面程序两层架构。本实施例中,后台服务为用于构建thrift服务器的Usbmanager服务,图形界面程序为Usbmanager_gui。Usbmanager服务随管理服务器自动启动,方便移植于无图形界面的服务器系统。Usbmanager服务主要负责构建thrift服务器,用于多线程处理、获取客户端发送的USB设备监控日志、存储USB设备监控日志到数据库服务器、从数据库服务器中读取USB设备授权名单。而Usbmanager_gui程序用于系统可视化管理,如表1所示,可从数据库服务器中读取USB设备监控日志、分析监控日志的日志类型,对告警日志产生告警、管理USB设备授权名单、获取客户端连接状态、在客户端计算机开机但无法检测到客户端连接时发出告警。
此外,本实施例中,管理服务器在启动时从数据库服务器中读取USB设备授权名单,所述USB设备授权名单存储在内存中。客户端是向管理服务器索取USB设备授权名单。此处指管理服务器从数据库服务器中读取USB设备授权名单,与客户端从管理服务器拉取USB设备授权名单不冲突。
数据库服务器用于存储USB设备监控日志和USB设备授权名单,所述USB设备监控日志的数据表格式如表1所示,USB设备授权名单的数据表格式如表2所示。
表1 USB设备监控日志的数据表格式
表2 USB设备白名单的数据表格式
图2为本发明实施例部分提供的一种基于Linux用户空间的USB设备管控系统对USB设备插入事件处理流程示意图,如图2所示,客户端以后台程序方式运行在客户端计算机上,包括以下步骤:
步骤201,客户端在计算机开机时自动启动,查询所有已连接的USB设备;
如果所述已连接的USB设备为未授权USB设备,禁用所述已连接的USB设备;
如果所述已连接的USB设备为在灰名单中的USB存储设备,对所述已连接的USB设备进行只读挂载;
本步骤中,禁用未授权USB设备以及对灰名单中的USB存储设备进行只读挂载步骤与对USB设备插入事件监测后的拦截相同,具体详见后续对USB设备插入事件监测后的拦截步骤。具体的,拦截步骤包括步骤202中判断所述USB设备是否是USB存储设备的步骤、步骤203、步骤204、步骤205、步骤206、步骤207、步骤208和步骤209;
本实施例中,通过步骤201可有效防止未授权USB设备在开机前插入计算机以躲避对USB设备插入事件的监测的行为。
步骤202,实时监听是否有USB设备插入事件,如果监听到USB设备插入事件,获取USB设备控制权,判断所述USB设备是否是USB存储设备。
本步骤中,具体的判断方法为:通过在监测到USB设备插入事件后预设时间内调用blkid命令,查询是否有新设备来确定插入的USB设备是否为USB存储设备;其中,如果在预设时间内blkid命令产生新的设备条目,则认定所述USB设备为USB存储设备,所述预设时间的典型时间为1s。
步骤203,如果所述USB设备是USB存储设备,则尝试读取所述USB设备的制造商编号、产品编号和UUID,同时向管理服务器发送USB设备插入事件日志;
步骤204,查询所述USB存储设备是否在USB设备授权名单中;
本步骤中,对于USB存储设备,需要比对制造商编号、产品编号和UUID,三者同时满足授权名单中某一条目时确定为授权USB存储设备。具体的,USB设备授权名单的数据表结构如表2所示。
步骤205,如果所述USB存储设备在USB设备授权名单中,所述且读写权限字段为“rw”,所述授权USB存储设备即白名单设备,则将控制权交还给系统,继续加载USB设备,并向管理服务器发送白名单USB设备说明;同时,使用Linux下的inotifytools工具包监控系统对USB存储设备的文件写入操作,当写入发生时,向管理服务器发送文件写入信息,所述文件写入信息包含文件写入路径及文件名。
本步骤中,所述inotifytool工具包为Linux下文件监控工具提供一套C的开发接口函数。
步骤206,如果所述USB存储设备在USB设备授权名单中,且读写权限字段为“r”,所述授权USB存储设备即灰名单设备,则阻止系统自动挂载USB存储设备,而使用root权限以只读模式挂载USB存储设备,同时向管理服务器发送灰名单USB设备说明。
本实施例中,系统需要在root权限下运行客户端程序,以便获得最高系统控制权,同时客户端用户不能有root用户权限,以防对客户端程序产生破坏性操作。
步骤207,如果所述USB设备为非USB存储设备,则读取所述非USB存储设备的制造商编号和产品编号,同时向管理服务器发送USB设备插入事件日志。
步骤208,查询所述非USB存储设备是否在USB设备授权名单中。
本步骤中,对于非USB存储设备,需要比对制造商编号和产品编号,两者同时满足USB设备授权名单中某一条目时确定为授权非USB存储设备,即为白名单非存储设备,则将控制权交还给系统。
本步骤中,USB设备授权名单的数据表结构如表2所示。
步骤209,如果所述USB设备不在USB设备授权名单中,则利用libusb从内核中卸载USB设备驱动,libusb使用ioctl控制对USB设备的驱动卸载操作,同时向管理服务器发送危险USB设备告警。
本步骤中,ioctl是设备驱动程序中对设备的输入/输出通道进行管理的函数,libusb可以实现用户空间和USB设备直接通讯。
本实施例中,所述步骤206中的阻止系统自动挂载USB存储设备过程为:
循环检测“umount/dev/sdb1&&echo$?”命令的输出结果,如果为0则说明成功阻止了系统挂载,命令中的/dev/sdb1为系统为设备分配的设备文件,可通过读取blkid命令的输出结果查到,为blkid命令输出的第一列,本实施例中系统为USB存储设备分配的文件为/dev/sdb1;
调用系统命令“mount/dev/sdb1/media/UNTITLED-t vfat-ro iocharset=utf8”进行只读挂载,其中/media/UNTITLED为挂载点位置,一般用/media+卷标,vfat为文件格式,utf8为U盘编码,所述卷标和文件格式都可以从blkid命令输出中获得,所述U盘编码通过查询数据库服务器中的USB设备授权名单获取。
图3为本发明实施例部分提供的一种基于Linux用户空间的USB设备管控系统中Thrift服务器连接流程示意图,如图3所示,客户端在每次需要向管理服务器发送USB设备监控日志时,会尝试连接Thrift服务器:
如果Thrift服务器连接失败,即为客户端无法接连管理服务器的情况,此时的USB设备监控日志即为USB设备离线监控日志,将所述USB设备离线监控日志存储到本地文件中的临时存储区,待下次发送监控日志数据时在发送当次监控日志数据之前发送,并产生无法连接服务器告警日志。
如果Thrift服务器连接成功,则首先查询临时存储区是否有未发送的USB设备离线监控日志,如果有则首先发送临时存储区中的USB设备离线监控日志到管理服务器,并删除临时存储区中已经发送的USB设备离线监控日志,之后再发送当前需要发送的USB设备监控日志。
图4为本发明实施例部分提供的一种基于Linux用户空间的USB设备管控系统对USB设备拔出事件处理流程示意图,如图4所示,客户端以后台程序方式运行在客户端计算机上:实时监听是否有USB设备拔出事件,如果监听到有USB设备拔出事件,则发送USB设备拔出日志到Thrift服务器,Thrift服务器将所述USB设备拔出日志记录到数据库服务器中。
综上,本发明实施例公开的一种基于Linux用户空间的USB设备管控系统,包括管理服务器、数据库服务器和客户端。管理服务器用于显示客户端连接状态,提供多客户端管理能力,接收并记录客户端发来的USB设备监控日志,分析监控记录并产生告警、管理USB设备授权名单、获取客户端连接状态、以及在客户端计算机开机但无法检测到客户端连接时发出告警;数据库服务器用于存储USB设备监控日志和USB设备授权名单;客户端以系统后台程序方式运行,实时监测USB设备的插入和拔出情况,阻止未授权USB设备被系统加载,监控USB设备的写入操作,并向管理服务器发送USB设备监控日志。
本发明可用于管理Linux系统下的所有USB外设,包括但不限于U盘、移动硬盘、键盘、鼠标、摄像头、USB无线网卡等。由于USB规范中对序列号没有强制要求,本发明通过检查存储设备UUID来准确区分USB存储设备。本发明客户端系统在单机状态下依然可以正常工作,但将拒绝所有除键盘、鼠标外的USB设备。本发明系统同时支持USB存储设备白名单和灰名单功能,满足对非加密USB存储设备的双向导入导出和单向导入需求,并能够记录写入USB存储设备的文件路径和文件名称;本发明系统基于用户空间实现易于部署,不需对内核进行修改。
具体实现中,本发明还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的一种基于Linux用户空间的USB设备管控系统的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-only memory,简称:ROM)或随机存储记忆体(英文:random access memory,简称:RAM)等。
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中各个实施例之间相同相似的部分互相参见即可。以上所述的本发明实施方式并不构成对本发明保护范围的限定。
Claims (7)
1.一种基于Linux用户空间的USB设备管控系统,其特征在于,所述系统包括管理服务器、数据库服务器和客户端;
所述管理服务器,用于管理两个以上的客户端,包括:显示客户端连接状态,接收并存储客户端发送的USB设备监控日志,并在接收到所述USB设备监控日志后给出告警提示;
所述数据库服务器,用于存储USB设备监控日志和USB设备授权名单;所述USB设备授权名单包括:所述USB设备的制造商编号、产品编号、通用唯一识别码、读写权限和编码方式;其中,所述通用唯一识别码、读写权限和编码方式仅用于USB存储设备,不用于非USB存储设备;对所述USB设备是否为USB存储设备的判断在客户端进行;
所述客户端,用于以后台程序方式运行,实时监测USB设备的插入和拔出情况以及USB设备的写入操作,并阻止未授权USB设备被系统加载,生成USB设备监控日志并发送至所述管理服务器;
所述客户端包括阻止模块,用于所述客户端在监测到发生USB设备插入事件后,向所述管理服务器拉取USB设备授权名单,并判断所述USB设备是否为授权USB设备,将判断结果发送至所述管理服务器;
所述阻止模块包括:如果所述USB设备不在USB设备授权名单中,则阻止所述USB设备的加载;如果所述USB设备在白名单中,则将所述USB设备控制权交还给系统;如果所述USB设备为USB存储设备,且所述USB存储设备在灰名单中,则阻止系统自动挂载所述USB存储设备,使用root权限对所述USB存储设备进行只读挂载。
2.根据权利要求1所述的一种基于Linux用户空间的USB设备管控系统,其特征在于,所述管理服务器包括:
客户端连接状态显示模块,用于将客户端的连接状态信息显示于所述管理服务器显示界面,所述连接状态信息包括:客户端程序运行状态信息和客户端网络连通状态信息;
其中,所述客户端程序运行状态信息包括:客户端程序正常运行状态和客户端程序非正常运行状态;所述客户端网络连通状态信息包括:客户端计算机与管理服务器网络正常连通状态和客户端计算机与管理服务器网络断开连接状态;
USB设备监控日志接收模块,用于接收所述客户端发送的USB设备监控日志,并将所述USB设备监控日志显示于管理服务器的显示界面;
USB设备监控日志存储模块,用于接收所述客户端发送的USB设备监控日志后,将所述USB设备监控日志存储在数据库服务器中;
多客户端管理模块,用于支持两个以上的所述客户端连接于计算机,对所述两个以上的客户端发送的USB设备监控日志进行分类管理;
告警提示模块,用于在接收到客户端发送的未授权USB设备插入信息时,对所述未授权USB设备插入信息进行告警提示,所述告警提示显示于管理服务器的显示界面。
3.根据权利要求1所述的一种基于Linux用户空间的USB设备管控系统,其特征在于,所述数据库服务器包括:
USB设备监控日志存储模块,用于通过构建监控日志的数据表结构,存储所述管理服务器接收的USB设备监控日志;
USB设备授权名单存储模块,用于通过构建USB设备授权名单的数据表结构,存储所述USB设备授权名单,所述USB设备授权名单包括白名单和灰名单。
4.根据权利要求1或3所述的一种基于Linux用户空间的USB设备管控系统,其特征在于,通过是否使用读写权限字段将所述USB设备授权名单分为白名单和灰名单,对所述白名单和灰名单的管理配置在管理服务器进行;
如果所述USB存储设备在白名单中,赋予所述USB存储设备读取权限与写入权限;
如果所述USB存储设备在灰名单中,赋予所述USB存储设备读取权限,而不赋予写入权限。
5.根据权利要求1所述的一种基于Linux用户空间的USB设备管控系统,其特征在于,所述客户端还包括:
隐身模块,用于通过修改进程名为空在ps命令中隐藏;所述客户端使用root权限运行,同时要求用户使用普通权限登录;
已连接设备查询模块,用于在所述客户端启动后查询所有已连接的USB设备,禁用未授权USB设备,对灰名单中的USB存储设备进行只读挂载;
USB设备实时监测模块,用于实时监测USB设备的插入和拔出情况,并在发生USB设备插入事件时接管系统对USB设备的处理;
USB存储设备判断模块,用于通过在监测到USB设备插入事件后预设时间内调用blkid命令,查询是否有新设备来确定插入的USB设备是否为USB存储设备;其中,如果在预设时间内blkid命令产生新的设备条目,则认定所述USB设备为USB存储设备;
监控日志发送模块,用于在发生USB设备插入事件或USB设备拔出事件时,向所述管理服务器发送USB设备监控日志;
记录模块,用于如果所述USB存储设备在白名单中,审计所述USB存储设备的文件写入信息,所述文件写入信息包括:文件写入路径和文件名。
6.根据权利要求1所述的一种基于Linux用户空间的USB设备管控系统,其特征在于,所述USB设备授权名单由管理服务器集中管理,并将所述USB设备授权名单存储在数据库服务器中。
7.根据权利要求6所述的一种基于Linux用户空间的USB设备管控系统,其特征在于,所述客户端在无法连接管理服务器的情况下,在本地文件临时存储USB设备离线监控日志,并在再次连接到管理服务器时,优先发送所述USB设备离线监控日志。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910776287.XA CN110598428B (zh) | 2019-08-22 | 2019-08-22 | 一种基于Linux用户空间的USB设备管控系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910776287.XA CN110598428B (zh) | 2019-08-22 | 2019-08-22 | 一种基于Linux用户空间的USB设备管控系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110598428A CN110598428A (zh) | 2019-12-20 |
CN110598428B true CN110598428B (zh) | 2021-08-06 |
Family
ID=68855149
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910776287.XA Active CN110598428B (zh) | 2019-08-22 | 2019-08-22 | 一种基于Linux用户空间的USB设备管控系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110598428B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111125796B (zh) * | 2019-12-26 | 2022-06-21 | 深信服科技股份有限公司 | 对移动存储设备进行保护的方法及装置、设备、存储介质 |
CN111221751B (zh) * | 2020-01-13 | 2023-10-27 | 中孚安全技术有限公司 | Linux系统下提升usb批量传输速度的方法及系统 |
US11880459B2 (en) | 2020-04-30 | 2024-01-23 | Siemens Aktiengesellschaft | Method and apparatus for controlling mobile storage device, and computer-readable medium |
CN111597544B (zh) * | 2020-05-18 | 2024-05-14 | 贵州电网有限责任公司 | 一种应用于usb接口的中介式物理隔离方法及系统 |
CN112463661A (zh) * | 2020-12-14 | 2021-03-09 | 西安网虫信息科技有限公司 | 一种usb设备管理系统及管理方法 |
CN113569272B (zh) * | 2021-09-27 | 2022-01-11 | 深圳市永达电子信息股份有限公司 | 一种安全计算机实现方法和安全计算机 |
CN114021104A (zh) * | 2021-10-29 | 2022-02-08 | 安天科技集团股份有限公司 | 一种usb设备管控方法、装置及电子设备 |
CN114444113A (zh) * | 2021-12-15 | 2022-05-06 | 北京鼎普科技股份有限公司 | 一种刻录信息监控方法、装置、电子设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1619527A (zh) * | 2003-11-22 | 2005-05-25 | 鸿富锦精密工业(深圳)有限公司 | 远程监控通用串行总线设备的系统及方法 |
EP2343647A3 (en) * | 2010-01-12 | 2012-01-04 | KCODES Corporation | Processing system and method for connecting a remote USB device automatically |
US9026712B2 (en) * | 2012-06-25 | 2015-05-05 | Intel Corporation | USB device control using endpoint type detection during enumeration |
CN105589657A (zh) * | 2014-10-23 | 2016-05-18 | 中兴通讯股份有限公司 | 一种实现移动存储挂载的方法及装置 |
CN105718825A (zh) * | 2015-11-16 | 2016-06-29 | 哈尔滨安天科技股份有限公司 | 一种恶意usb设备的检测方法及装置 |
CN107483434A (zh) * | 2017-08-10 | 2017-12-15 | 郑州云海信息技术有限公司 | 一种移动存储设备的管理系统及方法 |
CN107679421A (zh) * | 2017-10-23 | 2018-02-09 | 郑州云海信息技术有限公司 | 一种移动存储设备监控防护方法及系统 |
CN108427649A (zh) * | 2018-01-16 | 2018-08-21 | 广州杰赛科技股份有限公司 | Usb接口的接入管理方法、终端设备、系统及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140101345A1 (en) * | 2012-10-08 | 2014-04-10 | Analog Devices, Inc. | Universal serial bus (usb) plug-in event detection system and associated method |
CN108304222A (zh) * | 2017-01-13 | 2018-07-20 | 中标软件有限公司 | 设备管控系统及方法 |
CN109784103B (zh) * | 2019-01-21 | 2021-06-08 | 北京天融信网络安全技术有限公司 | 一种usb设备使用记录的获取方法和装置及存储介质 |
-
2019
- 2019-08-22 CN CN201910776287.XA patent/CN110598428B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1619527A (zh) * | 2003-11-22 | 2005-05-25 | 鸿富锦精密工业(深圳)有限公司 | 远程监控通用串行总线设备的系统及方法 |
EP2343647A3 (en) * | 2010-01-12 | 2012-01-04 | KCODES Corporation | Processing system and method for connecting a remote USB device automatically |
US9026712B2 (en) * | 2012-06-25 | 2015-05-05 | Intel Corporation | USB device control using endpoint type detection during enumeration |
CN105589657A (zh) * | 2014-10-23 | 2016-05-18 | 中兴通讯股份有限公司 | 一种实现移动存储挂载的方法及装置 |
CN105718825A (zh) * | 2015-11-16 | 2016-06-29 | 哈尔滨安天科技股份有限公司 | 一种恶意usb设备的检测方法及装置 |
CN107483434A (zh) * | 2017-08-10 | 2017-12-15 | 郑州云海信息技术有限公司 | 一种移动存储设备的管理系统及方法 |
CN107679421A (zh) * | 2017-10-23 | 2018-02-09 | 郑州云海信息技术有限公司 | 一种移动存储设备监控防护方法及系统 |
CN108427649A (zh) * | 2018-01-16 | 2018-08-21 | 广州杰赛科技股份有限公司 | Usb接口的接入管理方法、终端设备、系统及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110598428A (zh) | 2019-12-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110598428B (zh) | 一种基于Linux用户空间的USB设备管控系统 | |
US8667576B2 (en) | Method for preventing data in a computer system from being accessed by unauthorized user | |
CN111416811A (zh) | 越权漏洞检测方法、系统、设备及存储介质 | |
US11416601B2 (en) | Method and system for improved data control and access | |
US20050216466A1 (en) | Method and system for acquiring resource usage log and computer product | |
US20230198760A1 (en) | Verified presentation of non-fungible tokens | |
US7100162B2 (en) | System and method for process management | |
US20170372311A1 (en) | Secure payment-protecting method and related electronic device | |
US20030075599A1 (en) | Personal work environment setting method | |
US20150020167A1 (en) | System and method for managing files | |
CN115098038A (zh) | 一种挂载目录的绑定方法、装置及其介质 | |
CN112464176B (zh) | 一种权限管理方法、装置、电子设备及存储介质 | |
CN106682512B (zh) | 一种防止程序被修改的方法及其装置、系统 | |
KR101716690B1 (ko) | 데이터 무단 엑세스 차단 방법 및 그 기능이 구비된 컴퓨팅 장치 | |
KR102149711B1 (ko) | 위장 프로세스를 이용한 랜섬웨어 행위 탐지 및 방지 장치, 이를 위한 방법 및 이 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체 | |
CN113596600B (zh) | 直播嵌入程序的安全管理方法、装置、设备及存储介质 | |
KR101763184B1 (ko) | 백업을 이용한 파일 복구 방법 | |
KR20130124885A (ko) | 인증되지 않는 액세스를 방지하기 위해 클라우드 데이터에 보안을 제공하는 전자 장치 및 이의 보안 제공 방법 | |
CN111506893A (zh) | 一种外部设备管理方法、装置、电子设备及存储介质 | |
US11392704B2 (en) | Apparatus for LAN booting environment-based file security and centralization, method therefor, and computer-readable recording medium on which program for performing same method is recorded | |
CN109543420B (zh) | 基于sudo的权限配置方法、装置、电子设备及存储介质 | |
CN111444061A (zh) | 一种服务器资源监控方法和系统 | |
JP5146880B2 (ja) | 情報管理装置、情報管理システム、情報管理プログラム、及び情報管理方法 | |
EP4421664A1 (en) | Unauthorized access detection system and unauthorized access detection method | |
KR102379098B1 (ko) | 가상 드라이버를 통한 데이터베이스 로그인 정보 관리 시스템 및 그 제어방법 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |