基于USB接口粒度的USB设备监控方法及装置转让专利

申请号 : CN201510624219.3

文献号 : CN105335661B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 龚建新王军顾德仲姜涛

申请人 : 北京北信源软件股份有限公司

摘要 :

本发明公开了一种基于USB接口粒度的USB设备监控方法及装置,涉及信息安全技术领域,本发明根据配置USB请求块来确定待监控USB设备所有USB接口对应的端点,当正在传输数据的端点对应的USB接口属于预设类型的USB接口时,阻断该端点的数据传输,其采用底层技术,有效监控所有USB设备操作,无进程且不易卸载,安全性好,并且可以保证USB复合设备的各子设备独立,有选择的进行阻断,而不是阻断所有子设备,避免引发预期之外的副作用。

权利要求 :

1.一种基于USB接口粒度的USB设备监控方法,其特征在于,所述方法包括:拦截由USB总线向待监控USB设备发送的配置USB请求块,所述配置USB请求块包括待监控USB设备所有USB接口对应的端点的描述符;

根据所述配置USB请求块来确定待监控USB设备所有USB接口对应的端点;

当正在传输数据的端点对应的USB接口属于预设类型的USB接口时,阻断该端点的数据传输,以实现对USB设备的监控。

2.如权利要求1所述的方法,其特征在于,所述拦截由USB总线向待监控USB设备发送的配置USB请求块,进一步包括:在检测到所述待监控USB设备向所述USB总线发送配置选择USB请求块后,拦截由所述USB总线向所述待监控USB设备发送的配置USB请求块。

3.如权利要求1所述的方法,其特征在于,所述配置USB请求块包括:待监控USB设备所有USB接口对应的端点的句柄。

4.如权利要求3所述的方法,其特征在于,所述根据所述配置USB请求块来确定待监控USB设备所有USB接口对应的端点,进一步包括:根据所述配置USB请求块来确定待监控USB设备所有USB接口对应的端点,并获取所述待监控USB设备所有USB接口对应的端点的句柄;

相应地,所述阻断该端点的数据传输,进一步包括:

对该端点的句柄进行阻断,以阻断该端点的数据传输。

5.如权利要求1~4中任一项所述的方法,其特征在于,当正在传输数据的端点对应的USB接口不属于预设类型的USB接口时,允许该端点的数据传输。

6.一种基于USB接口粒度的USB设备监控装置,其特征在于,所述装置包括:配置拦截单元,用于拦截由USB总线向待监控USB设备发送的配置USB请求块,所述配置USB请求块包括待监控USB设备所有USB接口对应的端点的描述符;

端点确定单元,用于根据所述配置USB请求块来确定待监控USB设备所有USB接口对应的端点;

传输阻断单元,用于当正在传输数据的端点对应的USB接口属于预设类型的USB接口时,阻断该端点的数据传输,以实现对USB设备的监控。

7.如权利要求6所述的装置,其特征在于,所述配置拦截单元,进一步用于在检测到所述待监控USB设备向所述USB总线发送配置选择USB请求块后,拦截由所述USB总线向所述待监控USB设备发送的配置USB请求块。

8.如权利要求6所述的装置,其特征在于,所述配置USB请求块包括:待监控USB设备所有USB接口对应的端点的句柄。

9.如权利要求8所述的装置,其特征在于,所述端点确定单元,进一步用于根据所述配置USB请求块来确定待监控USB设备所有USB接口对应的端点,并获取待监控USB设备所有USB接口对应的端点的句柄;

相应地,所述传输阻断单元,进一步用于对该端点的句柄进行阻断,以阻断该端点的数据传输。

10.如权利要求6~9中任一项所述的装置,其特征在于,所述装置还包括:传输允许单元,用于当正在传输数据的端点对应的USB接口不属于预设类型的USB接口时,允许该端点的数据传输。

说明书 :

基于USB接口粒度的USB设备监控方法及装置

技术领域

[0001] 本发明涉及信息安全技术领域,特别涉及一种基于USB接口粒度的USB设备监控方法及装置。

背景技术

[0002] 随着计算机技术的发展,USB设备如U盘、移动硬盘等设备越来越普及,随之而来的一个非常显著的问题就是:如何保证这些设备的安全,比如有些涉密计算机不允许使用某些移动存储设备,但是却允许另一些USB存储设备访问,故而,USB设备监控方式就尤为重要。
[0003] 现有技术的USB设备监控方式主要采用以下两种方式:
[0004] 第一种为:应用层方式,即应用程序监控USB设备的插入、拔出动作,调用Setup API系列函数,对特定类别的USB进行禁止或启用。禁止时,其表现为设备管理器中相应设备被禁用(有一个红叉)。使用该方法最大的缺陷是安全性,用户可以手动启用设备,且该应用进程也可能被用户终止。其次,因为应用软件层次较高,无法获取所有USB设备的描述符。因此某些设备可能无法禁止,不能保证所有USB设备都能被监控到。
[0005] 第二种为:基于设备粒度的USB过滤驱动方式,即拦截USB总线发来的URB数据包,优点是可安全有效地监控所有USB设备,但其以“USB设备”作为单位,导致对于USB复合设备(即包含多个接口的设备),要么全部禁止,要么全部放行,例如,安卓手机通常包含多个接口设备,如存储设备、ADB设备、媒体设备等。使用该方式,只能全部禁止这些接口设备,不能有选择的禁用某个接口设备,即监控粒度不够精细,容易产生非预期结果。

发明内容

[0006] 鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种基于USB接口粒度的USB设备监控方法及装置。
[0007] 依据本发明的一个方面,提供了一种基于USB接口粒度的USB设备监控方法,所述方法包括:
[0008] 拦截由USB总线向待监控USB设备发送的配置USB请求块;
[0009] 根据所述配置USB请求块来确定待监控USB设备所有USB接口对应的端点;
[0010] 当正在传输数据的端点对应的USB接口属于预设类型的USB接口时,阻断该端点的数据传输,以实现对USB设备的监控。
[0011] 可选地,所述拦截由USB总线向待监控USB设备发送的配置USB请求块,进一步包括:
[0012] 在检测到所述待监控USB设备向所述USB总线发送配置选择USB请求块后,拦截由所述USB总线向所述待监控USB设备发送的配置USB请求块。
[0013] 可选地,所述配置USB请求块包括:待监控USB设备所有USB接口对应的端点的句柄。
[0014] 可选地,所述根据所述配置USB请求块来确定待监控USB设备所有USB接口对应的端点,进一步包括:
[0015] 根据所述配置USB请求块来确定待监控USB设备所有USB接口对应的端点,并获取所述待监控USB设备所有USB接口对应的端点的句柄;
[0016] 相应地,所述阻断该端点的数据传输,进一步包括:
[0017] 对该端点的句柄进行阻断,以阻断该端点的数据传输。
[0018] 可选地,当正在传输数据的端点对应的USB接口不属于预设类型的USB接口时,允许该端点的数据传输。
[0019] 依据本发明的另一个方面,提供了一种基于USB接口粒度的USB设备监控装置,所述装置包括:
[0020] 配置拦截单元,用于拦截由USB总线向待监控USB设备发送的配置USB请求块;
[0021] 端点确定单元,用于根据所述配置USB请求块来确定待监控USB设备所有USB接口对应的端点;
[0022] 传输阻断单元,用于当正在传输数据的端点对应的USB接口属于预设类型的USB接口时,阻断该端点的数据传输,以实现对USB设备的监控。
[0023] 可选地,所述配置拦截单元,进一步用于在检测到所述待监控USB设备向所述USB总线发送配置选择USB请求块后,拦截由所述USB总线向所述待监控USB设备发送的配置USB请求块。
[0024] 可选地,所述配置USB请求块包括:待监控USB设备所有USB接口对应的端点的句柄。
[0025] 可选地,所述端点确定单元,进一步用于根据所述配置USB请求块来确定待监控USB设备所有USB接口对应的端点,并获取待监控USB设备所有USB接口对应的端点的句柄;
[0026] 相应地,所述传输阻断单元,进一步用于对该端点的句柄进行阻断,以阻断该端点的数据传输。
[0027] 可选地,所述装置还包括:
[0028] 传输允许单元,用于当正在传输数据的端点对应的USB接口不属于预设类型的USB接口时,允许该端点的数据传输。
[0029] 本发明根据配置USB请求块来确定待监控USB设备所有USB接口对应的端点,当正在传输数据的端点对应的USB接口属于预设类型的USB接口时,阻断该端点的数据传输,其采用底层技术,有效监控所有USB设备操作,无进程且不易卸载,安全性好,并且可以保证USB复合设备的各子设备独立,有选择的进行阻断,而不是阻断所有子设备,避免引发预期之外的副作用。

附图说明

[0030] 通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0031] 图1是本发明一种实施方式的基于USB接口粒度的USB设备监控方法的流程图;
[0032] 图2是USB设备各描述符之间的关系示意图;
[0033] 图3是本发明一种实施方式的基于USB接口粒度的USB设备监控方法的流程图;
[0034] 图4是本发明一种实施方式的基于USB接口粒度的USB设备监控装置的结构框图。

具体实施方式

[0035] 下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
[0036] 图1是本发明一种实施方式的基于USB接口粒度的USB设备监控方法的流程图;参照图1,所述方法包括:
[0037] S101:拦截由USB总线向待监控USB设备发送的配置USB请求块(Usb Request Block,URB);
[0038] 需要说明的是,所述配置URB是所述待监控USB设备在枚举过程中,由USB总线向待监控USB设备发送的配置URB。
[0039] 可理解的是,所述待监控USB设备为Windows系统中的USB设备。
[0040] 所述枚举过程的具体过程如下:
[0041] USB总线的驱动程序会自动检测新插入的USB设备,然后读取USB设备内的设备描述符以查明插入的是何种设备,设备描述符中的厂商、产品标识以及其它描述符一同决定具体安装哪一个驱动程序。配置管理器调用USB总线的驱动程序中的AddDevice函数。AddDevice函数做以下工作:创建设备对象,把设备对象连接到USB总线的驱动程序堆栈上等,接着是StartDveiee例程。
[0042] StartDveiee例程的执行过程大致如下:首先为USB设备选择一个配置。大多数USB设备仅有一种配置。选定了某个配置后,接着应该选择配置中的一个或多个USB接口。选定了一个配置和一组USB接口后,会向总线的驱动程序发送配置选择URB,USB总线在接收到配置选择URB后,会按照所述配置选择URB创建配置句柄及接口句柄,为各接口创建对应的端点的句柄。
[0043] 然后,所述总线会将创建的句柄写入接收到的配置选择URB中,以获得配置URB,并将获得的配置URB发送至所述USB设备。至此,设备的枚举过程全部结束。
[0044] S102:根据所述配置USB请求块来确定待监控USB设备所有USB接口对应的端点;
[0045] 需要说明的是,拦截所述配置URB,即可获取待监控USB设备的所有描述符。每个USB都有一个设备描述符,描述设备整体情况,记录的了厂商、设备型号等信息。设备描述符之下是多个配置描述符,每次只能选择一个配置。再往下就是接口描述符,它描述了子设备的类别(如存储设备、打印机设备、HID设备等)。对于复合设备而言,一个配置可以有多个接口,每个接口代表一个子设备。每个接口又存在多个端点,端点是建立USB通讯连接,进行数据传输的实体。各描述符之间的关系,可参照图2。
[0046] S103:当正在传输数据的端点对应的USB接口属于预设类型的USB接口时,阻断该端点的数据传输,以实现对USB设备的监控。
[0047] 所述预设类型的USB接口可理解为设置于黑名单中的USB接口类型,相应地,除了所述预设类型的USB接口之外的其他类型的USB接口则可理解为设置与白名单中的USB接口类型。
[0048] 另外,还可按照USB接口的接口描述符关键字段来判断是否属于预设类型的USB接口。
[0049] 当然,为便于了解所述USB接口的状态,可通过调用控制DLL接口,设置回调函数。当USB设备插入/拔出时,可向用户通过显示、指示灯等方式提示收到通知,如果匹配到规则,还会显示USB设备的接口被阻断或放行的状态。
[0050] 本实施方式根据配置USB请求块来确定待监控USB设备所有USB接口对应的端点,当正在传输数据的端点对应的USB接口属于预设类型的USB接口时,阻断该端点的数据传输,其采用底层技术,有效监控所有USB设备操作,无进程且不易卸载,安全性好,并且可以保证USB复合设备的各子设备独立,有选择的进行阻断,而不是阻断所有子设备,避免引发预期之外的副作用。
[0051] 图3是本发明一种实施方式的基于USB接口粒度的USB设备监控方法的流程图;参照图3,所述方法包括:
[0052] S301:在检测到所述待监控USB设备向所述USB总线发送配置选择USB请求块后,拦截由所述USB总线向所述待监控USB设备发送的配置USB请求块;
[0053] 可理解的是,若所述待监控USB设备未向所述USB总线发送配置选择USB请求块时,是无法得到所述配置USB请求块的,如果一直处于准备拦截所述配置USB请求块的状态,会对系统资源造成浪费,为防止该问题,本实施方式中,拦截所述配置USB请求块是在检测到所述待监控USB设备向所述USB总线发送配置选择USB请求块后进行的。
[0054] S302:根据所述配置USB请求块来确定待监控USB设备所有USB接口对应的端点,并获取所述待监控USB设备所有USB接口对应的端点的句柄,所述配置USB请求块包括:待监控USB设备所有USB接口对应的端点的句柄;
[0055] S303:当正在传输数据的端点对应的USB接口属于预设类型的USB接口时,对该端点的句柄进行阻断,以阻断该端点的数据传输。
[0056] 需要说明的是,由于句柄是由USB总线负责分配且全局范围内唯一的,为便于阻断端点的数据传输,本实施方式中,通过对端点的句柄进行阻断,以实现阻断端点的数据传输。
[0057] 可理解的是,本实施方式的方法的执行主体位于底层USB设备的物理设备对象(Physic Device Object)PDO中,由于底层USB设备PDO由集线器驱动枚举并创建,故而,所有的配置URB均会流经所述装置,从而实现对所有USB设备的控制。
[0058] 本实施方式的方法与现有技术中的第一种方式相比,具有以下优点:1、控制力强,由于采用底层技术,可监听所有设备URB包,有效监控所有USB设备操作。不像应用层依赖于系统的控制特性,对某些设备无法控制。
[0059] 2、灵活性高,USB设备主要由USB描述符来表示。USB描述符分为设备描述符、配置描述符、接口描述符、端点描述符、字符串描述符等等。应用层只能获取部分描述符信息,而驱动方式能获取所有描述符,可通过各种匹配条件(如厂商、型号、序列号、类别等)有选择地进行USB设备控制,灵活性远优于应用层。
[0060] 3、安全性好,无进程且不易卸载,另外在安全模式也有效,防止用户切换到保护模式操作USB设备问题。
[0061] 本实施方式的方法与现有技术中的第二种方式相比,具有以下优点:控制粒度精细,对于USB复合设备,通常包含多个接口,每个接口对应一个子设备。使用设备粒度控制时,要么禁用所有子设备,要么全部通过,控制粒度不够。这会导致诸多问题,假设一个带HUB功能的USB打印机复合设备,它包含打印机接口,和一个扩展用的HUB接口。一旦用户选择禁用USB打印机类,该扩展HUB接口也会被禁用(因为它们同属一个复合设备),导致所有连接到该HUB的下游USB设备失效。而采用基于接口粒度监控方式,可阻断打印机子设备的同时,放行它的HUB子设备,使它的下游设备完全不受影响。
[0062] 在图1或图3所示的实施方式的基础上,当正在传输数据的端点对应的USB接口不属于预设类型的USB接口时,允许该端点的数据传输。
[0063] 对于方法实施方式,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施方式并不受所描述的动作顺序的限制,因为依据本发明实施方式,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施方式均属于优选实施方式,所涉及的动作并不一定是本发明实施方式所必须的。
[0064] 图4是本发明一种实施方式的基于USB接口粒度的USB设备监控装置的结构框图;参照图4,所述装置包括:
[0065] 配置拦截单元401,用于拦截由USB总线向待监控USB设备发送的配置USB请求块;
[0066] 端点确定单元402,用于根据所述配置USB请求块来确定待监控USB设备所有USB接口对应的端点;
[0067] 传输阻断单元403,用于当正在传输数据的端点对应的USB接口属于预设类型的USB接口时,阻断该端点的数据传输,以实现对USB设备的监控。
[0068] 在本发明的一种可选实施方式中,所述配置拦截单元401,进一步用于在检测到所述待监控USB设备向所述USB总线发送配置选择USB请求块后,拦截由所述USB总线向所述待监控USB设备发送的配置USB请求块。
[0069] 在本发明的一种可选实施方式中,所述配置USB请求块包括:待监控USB设备所有USB接口对应的端点的句柄。
[0070] 在本发明的一种可选实施方式中,所述端点确定单元402,进一步用于根据所述配置USB请求块来确定待监控USB设备所有USB接口对应的端点,并获取待监控USB设备所有USB接口对应的端点的句柄;
[0071] 相应地,所述传输阻断单元404,进一步用于对该端点的句柄进行阻断,以阻断该端点的数据传输。
[0072] 在本发明的一种可选实施方式中,所述装置还包括:
[0073] 传输允许单元,用于当正在传输数据的端点对应的USB接口不属于预设类型的USB接口时,允许该端点的数据传输。
[0074] 对于装置实施方式而言,由于其与方法实施方式基本相似,所以描述的比较简单,相关之处参见方法实施方式的部分说明即可。
[0075] 应当注意的是,在本发明的装置的各个部件中,根据其要实现的功能而对其中的部件进行了逻辑划分,但是,本发明不受限于此,可以根据需要对各个部件进行重新划分或者组合。
[0076] 本发明的各个部件实施方式可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本装置中,PC通过实现因特网对设备或者装置远程控制,精准的控制设备或者装置每个操作的步骤。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样实现本发明的程序可以存储在计算机可读介质上,并且程序产生的文件或文档具有可统计性,产生数据报告和cpk报告等,能对功放进行批量测试并统计。应该注意的是上述实施方式对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施方式。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
[0077] 以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。