用于防止对音频数据的非授权访问的系统和方法转让专利

申请号 : CN201610630205.7

文献号 : CN107305609B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 维亚切斯拉夫·I·列夫琴科亚历山大·V·加里宁

申请人 : 卡巴斯基实验室股份制公司

摘要 :

本公开披露了用于防止对音频数据的非授权访问的系统和方法。一种示例方法包括:将从音频端点设备接收的音频数据存储在数据缓冲区中;安装与音频会话相关联的软件驱动程序,其中,该软件驱动程序防止未经授权的软件应用程序访问该音频数据;并且从请求访问存储在该数据缓冲区中的音频数据的软件应用程序接收进程标识符数据。另外,该方法包括:确定请求访问该音频数据的该应用程序是否是未经授权的软件应用程序;并且控制该软件驱动程序以防止所确定的未经授权的软件应用程序访问该音频数据。

权利要求 :

1.一种用于防止对音频数据的非授权访问的方法,该方法包括:通过audiodg.exe进程将从音频端点设备接收的该音频数据存储在数据缓冲区中;

在计算机的存储器中安装与音频会话相关联的软件驱动程序,该软件驱动程序被配置成用于防止未经授权的软件应用程序访问该音频数据;

通过该计算机的处理器从请求访问存储在该数据缓冲区中的该音频数据的软件应用程序接收进程标识符数据;

通过该处理器基于该进程标识符数据确定请求访问该音频数据的该软件应用程序是否是未经授权的软件应用程序,其中,该未经授权的软件应用程序包括具有被识别为不可信任的、恶意的或未经用户授权访问该音频数据的至少一个进程的应用程序;

通过该处理器控制该软件驱动程序以防止所确定的未经授权的软件应用程序访问该音频数据;以及当确定请求访问该音频数据的该软件应用程序是未经授权的软件应用程序时,通过该软件驱动程序将该音频数据转换成多个零。

2.根据权利要求1所述的方法,进一步包括通过该处理器监视并且截取来自该软件应用程序的,用于访问存储在该数据缓冲区中的该音频数据的请求。

3.根据权利要求1所述的方法,其中,确定请求访问该音频数据的该应用程序是否是未经授权的软件应用程序包括以下各项中的至少一项:监视做出请求的该应用程序的活动以确定该应用程序是可信任的还是不可信任的;

通过访问已知病毒的签名数据库并且比较做出请求的该应用程序的签名来扫描做出请求的该应用程序;以及从用户处接收是否准许做出请求的该应用程序访问该音频数据的指令。

4.根据权利要求1所述的方法,进一步包括:

将从该音频端点设备接收的该音频数据直接存储在该数据缓冲区中;以及通过该软件驱动程序仅准许访问该音频数据。

5.根据权利要求1所述的方法,进一步包括:

如果请求访问该音频数据的该应用程序是经授权的软件应用程序,则指示该软件驱动程序准许访问该音频数据;

通过该软件驱动程序将该音频数据作为音频流进行处理;并且通过该软件驱动程序将该音频数据传输给所确定的经授权的软件应用程序。

6.根据权利要求1所述的方法,进一步包括:

在该存储器中安装分别与该音频会话中的多个音频流相关联的多个软件驱动程序,该软件驱动程序被配置成用于分别防止未经授权的软件应用程序访问该音频流;

通过该处理器从请求访问该多个音频流之一的至少一个软件应用程序接收进程标识符数据;

通过该处理器确定请求访问该音频流的该至少一个应用程序是否是未经授权的软件应用程序;以及通过该处理器控制对应的该软件驱动程序以防止所确定的未经授权的软件应用程序访问该音频流。

7.一种用于防止对音频数据的非授权访问的系统,该系统包括:数据缓冲区;

存储器;以及

处理器,该处理器被配置成用于:

通过audiodg.exe进程将从音频端点设备接收的音频数据存储在该数据缓冲区中;

在该存储器中安装与音频会话相关联的软件驱动程序,该软件驱动程序被配置成用于防止未经授权的软件应用程序访问该音频数据;

从请求访问存储在该数据缓冲区中的该音频数据的软件应用程序接收进程标识符数据;

基于该进程标识符数据确定请求访问该音频数据的该应用程序是否是未经授权的软件应用程序,其中,该未经授权的软件应用程序包括具有被识别为不可信任的、恶意的或未经用户授权访问该音频数据的至少一个进程的应用程序;

控制该软件驱动程序以防止所确定的未经授权的软件应用程序访问该音频数据;以及当基于接收的进程标识符确定请求访问该音频数据的该应用程序是未经授权的软件应用程序时,将该音频数据转换成多个零。

8.根据权利要求7所述的系统,其中,该处理器被进一步配置成用于监视并且截取来自该软件应用程序的,用于访问存储在该数据缓冲区中的该音频数据的请求。

9.根据权利要求7所述的系统,其中,该处理器被进一步配置成用于通过以下各项中的至少一项确定请求访问该音频数据的该应用程序是否是未经授权的软件应用程序:监视做出请求的该应用程序的活动以确定该应用程序是可信任的还是不可信任的;

通过访问已知病毒的签名数据库并且比较做出请求的该应用程序的签名来扫描做出请求的该应用程序;以及从用户处接收是否准许做出请求的该应用程序访问该音频数据的指令。

10.根据权利要求7所述的系统,其中,该处理器被进一步配置成用于:将从该音频端点设备接收的该音频数据直接存储在该数据缓冲区中;以及该软件驱动程序仅准许访问该音频数据。

11.根据权利要求7所述的系统,其中,该处理器被进一步配置成用于如果请求访问该音频数据的该应用程序是经授权的软件应用程序,则指示该软件驱动程序准许访问该音频数据;并且该软件驱动程序被配置成用于将该音频数据作为音频流进行处理,并且将该音频数据传输给所确定的经授权的软件应用程序。

12.根据权利要求7所述的系统,其中,该处理器被进一步配置成用于:在该存储器中安装分别与该音频会话中的多个音频流相关联的多个软件驱动程序,该软件驱动程序被配置成用于分别防止未经授权的软件应用程序访问该音频流;

从请求访问该多个音频流之一的至少一个软件应用程序接收进程标识符数据;

确定请求访问该音频流的该至少一个应用程序是否是未经授权的软件应用程序;并且控制对应的该软件驱动程序以防止所确定的未经授权的软件应用程序访问该音频流。

说明书 :

用于防止对音频数据的非授权访问的系统和方法

技术领域

[0001] 本文中的披露内容总体上涉及防止数据丢失的保护,并且更具体地涉及一种用于抵制非授权访问麦克风数据的系统和方法。

背景技术

[0002] 在现代世界,用户遇到许多网络威胁,其中之一就是非授权访问用户麦克风以达到窃听目的。为了实现对用户计算机上运行的部分进程的麦克风数据访问控制,有必要对操作系统中的某些请求进行过滤或者获得对请求数据上下文的访问以识别请求访问的进程,以便阻止那些非授权访问的进程。在Windows XP以及更老的操作系统中,经借助于截取“KSmixer.sys”内核组件(Windows内核流式技术)域中的流量解决了这一功能。读取被截取的流量的框架中的麦克风数据的请求已经通过了读取麦克风数据的进程的上下文中的特定过滤器。
[0003] 随着Windows Vista系统的出现,开发了一种由许多内核组件和用户模式组成的新架构WASAPI,其中虽然所有的音频流量都通过在端口驱动程序“portcls.sys”上注册的新音频驱动程序的私有COM接口,但是Windows内核流式技术保留在“基本变量(basic variant)”下。这些音频驱动程序可以实现,成使得在直接存取存储器(DMA)控制器的帮助下,音频流量一旦在用户模式缓冲区中时就立即结束,即不涉及处理器或任何补充代码。这个缓冲区被映射到受保护的进程“audiodg.exe”中,在处理器的帮助下,数据从该进程上拷贝到同一进程“audiodg.exe”上下文的用户进程的缓冲区中。也就是说,从Windows Vista系统开始,Windows内核流式技术中的控制过滤器已经变得完全不适合了。
[0004] 由于上述原因,需要出现一种能够从链接到进程(该进程从该麦克风读取数据)上下文的麦克风中截取音频流量的方法,以便保护音频数据传输。

发明内容

[0005] 披露了一种用于通过将音频数据从麦克风传输到进程来抵制非授权访问音频数据的系统、方法和计算机程序产品。
[0006] 根据一个示例性方面,披露了一种用于防止非授权访问音频数据的方法。在这个方面,该方法包括通过audiodg.exe进程将从音频端点设备接收的音频数据存储在数据缓冲区中;在计算机的存储器中安装与音频会话相关联的软件驱动程序,该软件驱动程序被配置成用于防止未经授权的软件应用程序访问该音频数据;通过该计算机的处理器从请求访问存储在该数据缓冲区中的该音频数据的软件应用程序接收进程标识符数据;通过该处理器确定请求访问该音频数据的该应用程序是否是未经授权的软件应用程序;并且通过该处理器控制该软件驱动程序以防止所确定的未经授权的软件应用程序访问该音频数据。
[0007] 根据另一个示例性方面,该方法包括当确定请求访问该音频数据的该应用程序是未经授权的软件应用程序时,通过该软件驱动程序将该音频数据转换成多个零。
[0008] 根据另一个示例性方面,该方法包括通过该处理器监视并且截取来自该软件应用程序的、用于访问存储在该数据缓冲区中的该音频数据的请求。
[0009] 根据另一个示例性方面,确定请求访问该音频数据的该应用程序是否是未经授权的软件应用程序包括以下各项中的至少一项:监视做出请求的该应用程序的活动以确定该应用程序是可信任的还是不可信任的;通过访问已知病毒签名数据库并且比较做出请求的该应用程序的签名来扫描做出请求的该应用程序;并且从用户接收是否准许做出请求的该应用访问该音频数据的命令。
[0010] 根据另一个示例性方面,该方法包括将从该音频端点设备接收的该音频数据直接存储在该数据缓冲区中;以及通过该软件驱动程序仅准许访问该音频数据。
[0011] 根据另一个示例性方面,该方法包括如果请求访问该音频数据的该应用程序是经授权的软件应用程序,则指示该软件驱动准许访问该音频数据;通过该软件驱动程序将该音频数据作为音频流进行处理;并且通过该软件驱动程序将该音频数据传输给所确定的经授权的软件应用程序。
[0012] 在该存储器中安装分别与该音频会话中的多个音频流相关联的多个软件驱动程序,这些软件驱动程序被配置成用于分别防止未经授权的软件应用程序访问该音频流;通过该处理器接收从请求访问该多个音频流之一的至少一个软件应用程序接收进程标识符数据;通过该处理器确定请求访问该音频流的该至少一个应用程序是否是未经授权的软件应用程序;以及通过该处理器控制对应的该软件驱动程序以防止所确定的未经授权的软件应用程序访问该音频流。
[0013] 根据另一个示例性方面,披露了一种用于防止对音频数据的非授权访问的系统。在这个方面,该系统包括数据缓冲区;存储器;以及处理器,该处理器被配置成用于:通过audiodg.exe进程将从音频端点设备接收的音频数据存储在该数据缓冲区中;在该存储器中安装与音频会话相关联的软件驱动程序,该软件驱动程序被配置成用于防止未经授权的软件应用程序访问该音频数据;从请求访问存储在该数据缓冲区中的该音频数据的软件应用程序接收进程标识符数据;确定请求访问该音频数据的该应用程序是否是未经授权的软件应用程序;以及控制该软件驱动程序以防止所确定的未经授权的软件应用程序访问该音频数据。
[0014] 以上示例方面的简要概述用于提供对本公开的基本理解。此概述不是所有的设想的方面的广泛概要并且不旨在标识所有方面的关键要素或重要要素也不界定本公开的任何或所有方面的范围。该概述的唯一目的是以简化的形式呈现一个或多个方面作为之后披露内容的更加详细说明的序言。为了实现上述目的,本公开的一个或多个方面包括权利要求书中描述的特征以及指出的示例。

附图说明

[0015] 结合在本说明书中并构成本说明书一部分的附图,展示了本公开的一个或多个示例性方面,并且与详细说明一起用于解释其原理以及实现方式。
[0016] 图1展示了Windows音频栈的新高级模型的框图。
[0017] 图2展示了根据一个示例性方面的音频子系统的框图。
[0018] 图3展示了根据一个示例性方面的用于抵制对麦克风数据的非授权访问的系统的框图。
[0019] 图4展示了根据一个示例性方面的用于抵制对麦克风数据的非授权访问的方法的流程图。
[0020] 图5展示了通用计算机系统的示例,所披露的系统和方法能够在该系统上实现。

具体实施方式

[0021] 在用于通过将音频数据从麦克风传输到进程来抵制非授权访问音频数据的系统、方法和计算机程序产品的上下文中,本文中描述了多个示例方面。本领域技术人员将认识到以下说明仅是说明性的,而不旨在以任何方式进行限制。对于从本公开受益的本领域技术人员而言,其他方面将很容易想到。现将详细参考如在附图中所示的示例性方面的实现方式。将尽可能的在全部附图以及以下的说明中使用相同的参考指示符来指代相同或相似的项。
[0022] 为了提高可靠性并且简化使用音频数据工作的应用的开发,微软已经有重要意义地重新开发了音频栈,该音频栈用于从Windows Vista开始的现代操作系统。图1示出了新音频栈的高级模型的框图。这个模型的基础组件在以下列出并且进行了描述。应该理解的是,图1中给出的组件列表不详尽,只包括在本公开的背景下使用的组件和/或对于理解在该新音频栈模型的背景下使用音频数据的工作原理而言重要的组件。
[0023] Windows音频会话API(“WASAPI 101”)是允许控制应用100与音频端点设备107之间的音频数据流的软件接口。出于本公开的目的,术语“音频端点设备”、“音频终端设备”、或“音频端点”同时使用并且可以认为是例如根据一个方面的麦克风。应进一步了解,该麦克风可以嵌入与之连接的音频适配器中,或者该麦克风可以与USB适配器连接或者与设备连接,该设备进而与该适配器连接。
[0024] 在任一种情况下,每个音频流是音频会话的一部分,该音频会话是应用100与特定音频端点设备107(如麦克风108)之间的所有音频流的组合。Windows操作系统使得有可能单独处理音频会话中的每个流,并且还控制整个音频会话中的某些参数,如音量。应注意的是,音频会话可以仅由音频数据渲染流或音频数据捕获流构成。在本公开的上下文中,只考虑音频数据捕获流。应用100可以使用两种模式的WASAPI软件接口:WASAPI共享和WASAPI独占。一个应用程序使用独占模式阻止了所有其他应用程序对音频端点设备的访问。共享模式的使用允许应用100获得对同一个音频端点设备107同时访问。Windows音频设备图形隔离程序(Audio Device Graph Isolation)103组件用于组织对来自一个音频端点设备107的音频数据的共享访问。
[0025] Windows音频设备图形隔离程序103是被设计成用于将来自音频端点设备107的音频数据传递到应用100的音频栈组件,并且其使得可以只使用中央处理器的资源在单个音频会话过程中进行音频流数据的各种变换。例如,Windows音频设备图形隔离程序103可以将来自不同应用的音频流置于在Windows设置中指示的相同形式,即,相同的通道数量、数字化频率和量化程度,或者该音频设备图形隔离程序可以进行音频流混合,并且在音频数据捕获流的情况下,该音频设备图形隔离程序可以拷贝该音频数据捕获流以传输给各个应用100。Windows音频设备图形隔离程序103被实现成在用户模式下开始的受保护进程“audiodg.exe”。
[0026] Windows音频服务104是Windows操作系统中的、被设计成用于创建并且控制音频数据流的服务。这个音频栈组件允许应用100与受保护进程“audiodg.exe”进行交互,对于该进程的直接访问限制在其一部分上。Windows音频服务104还是实现Windows音频策略的组件,该音频策略包括有待在操作系统内应用于音频流的规则集,这些音频流在音频会话内在共享模式下是可访问的。
[0027] 音频驱动程序106是正在描述的音频栈模型内的中间层,包括维持所述音频栈的架构的各个系统驱动程序的组合,并且还包括允许支持其他制造商的组件的驱动程序。例如,对于连接到PCI和PCI Express总线上的音频适配器而言,在Windows操作系统中提供“端口类”(“Port Class”)(portcls.sys)系统驱动程序,包括一组端口驱动程序以实现各种音频适配器功能。并且在连接到USB总线音频适配器的情况下,在Windows操作系统中提供“AVStream”类(Ks.sys)系统驱动程序以及“USB音频”类(Usbaudio.sys)驱动程序。在音频驱动程序106的中间层内实现的新音频栈模型的主要特性在于实现了微软波实时(WaveRT)(Microsoft Wave Real Time)技术,该技术允许音频端点设备在用户模式下直接将音频数据记录在缓冲区中,而无需涉及中央处理器,由受保护进程“audiodg.exe”将该数据从该缓冲区中读出,从而实现Windows音频设备图形隔离程序组件103。就操作系统而言,从其他进程访问这个缓冲区是被禁止的并且是受控制的。
[0028] 本公开中的音频端点设备107是位于音频数据传输通道的一端的设备,该传输通道开始或结束于应用程序100。音频端点设备的示例可以包括(但不限于)麦克风108、耳机、声学扬声器或CD播放机。音频端点设备107可以连接到音频视频器上或作为音频适配器的一部分。
[0029] 微软音频端点构建程序105是Windows操作系统的被设计成用于检测新音频端点设备107的服务,并且还跟踪现有设备并对其进行控制。
[0030] Windows设备列举102是软件接口,这些软件接口允许应用100与微软音频端点构建程序服务105进行交互以获得关于现有音频端点设备107以及这些设备在音频数据渲染或捕获时的使用的信息。
[0031] 以下说明考虑某些音频栈组件,这些组件构成Windows操作系统的音频子系统,在音频子系统中实现本公开。在图2中展示了所述音频子系统的框图。如图所示,这个图描述了一种情形:提供了在音频会话中在共享模式(WASAPI共享)下进行访问的进程200,该音频会话由从音频端点设备(麦克风206)接收的音频数据捕获流组成。在这个图的上下文中,进程200的概念意味着在给定时刻执行的应用。如果应用程序是被动指令集,则进程是这些指令的立即执行。每个进程具有唯一标识符、进程ID(简称PID),给定的进程可以用该标识符来标识。
[0032] 实现用于抵制对麦克风数据的非授权访问的系统和方法的主要困难在于以下事实,在进程与音频端点设备之间循环的所有音频流是单一受保护进程“audiodg.exe”的上下文,该进程实现微软音频设备图形隔离程序组件202。由于该进程受保护,即,关于这个进程有访问权限制,因此当执行许多操作时,通过使用用户模式的标准API功能与这个进程进行交互是不可能的。从而,使用用户模式的标准API功能的另一个进程不能请求与进程“audiodg.exe”的内部数据有关的信息。对于每个进程200与实现微软音频设备图形隔离程序组件202的受保护进程“audiodg.exe”的交互而言,操作系统的微软音频服务201创建专用的跨进程缓冲区207,通过该专用的跨进程缓冲区207,该将音频数据从音频端点设备205之一(如麦克风206)传输。如上所述,跟踪并添加音频端点设备205是在操作系统的Windows微软音频端点构建程序服务204的帮助下完成。
[0033] 该音频端点设备(如麦克风206)与受保护进程audiodg.exe 202的交互还通过专用缓冲区203发生,该专用缓冲区在用户模式下是可访问的。该音频数据直接从麦克风206转移到缓冲区203而无需涉及中央处理器,并且然后由微软音频设备图形隔离程序组件202读出,并且反之亦然,只使用中央处理器的资源(即通过软件)处理该音频数据而无需涉及音频适配器的资源,其中音频端点设备205连接到该音频适配器上或者它们形成该音频适配器的一部分。
[0034] 在已经从缓冲区203读出的音频数据将被传输到进程200之前,该音频数据要经过Windows音频设备图形隔离程序组件202的处理。Windows音频设备图形隔离程序组件202的主要任务是将来自音频端点设备(麦克风206)的音频数据传递到进程100、以及在单一音频会话过程中对音频流数据进行各种变换。对音频流数据进行变换是在上述WaveRT技术的小型端口驱动程序(被称为音频处理对象(APO))的帮助下完成的。区分两种类型的音频处理对象:缩写为GFX APO 212的全局效应和缩写为LFX APO 211的局部效应。在由音频数据捕获流组成的音频会话的上下文中,全局效应音频处理对象GFX APO 212用于从麦克风206接收的传入音频流。然后,对于已经请求创建来自Windows音频服务201的音频流的每个进程200而言,创建独立的音频流是由Windows音频设备图形隔离程序组件202通过拷贝在全局效应音频处理对象GFX APO 212的帮助下处理的传入流来完成的。
[0035] 根据一个示例性方面,每个独立的音频流对应于一个单一进程并且在局部效应音频处理对象LFX APO 211的帮助下被处理。已经加载了Windows音频设备图形隔离程序(即audiodg.exe)的LFX APO 211将音频数据记录在缓冲区中,其中这些音频数据由应用从该缓冲区中读出。如以上指出的,audiodg.exe是受保护进程,该进程使得该系统和方法能够仅仅通过Windows音频服务专用服务(即“audiosrv.exe”)与audiodg.exe进程进行交互。从而,为了创建音频流,应用程序访问audiosrv服务,该服务进而在处理请求创建新音频流的ID应用程序的同时发送指令从而为该应用程序分配新的线程。
[0036] 根据一个示例性方面,用于每个独立音频流的局部效应音频处理对象LFX APO 211的数量可以是相同的或不同的。在局部效应音频处理对象LFX APO 211的帮助下使用每个独立的音频流的数据进行的操控的性质也可以不同,因为音频数据处理对象的参数可以被实时控制。对于每个进程而言,局部效应音频处理对象LFX APO 211可以被单独激活,这将引起局部效应音频处理对象LFX APO 211被添加到与给定进程相对应的音频流上。对于每个进程而言,局部效应音频处理对象LFX APO 211可以被单独解除激活,这将引起局部效应音频处理对象LFX APO 211从与给定进程对应的音频流中去除。以WaveRT小型端口驱动程序的形式实现局部效应音频处理对象LFX APO 211,其中这些小型端口驱动程序安装在操作系统中并且通过将对应记录添加到系统注册表上来与每个特定音频端点设备205相关地注册,之后,局部效应音频处理对象LFX APO 211将由音频子系统自动安装以便处理与音频端点设备相关的每个新音频流,其中给定局部效应音频处理对象LFX APO 211是针对该音频流注册的。
[0037] 为了使在共享访问模式(WASAPI共享)下的进程接收对来自麦克风206的音频数据的访问,该进程制定请求并将其发送至Windows音频服务201。这个请求包括各种参数,包括进程标识符(PID)。Windows音频服务201制定创建新数据流的远程过程调用(RPC)请求并且将其发送到Windows音频设备图形隔离程序组件202,从而传输这个RPC请求中的参数当中的进程标识符(PID),该进程标识符请求创建该音频流。Windows音频服务201创建专用跨进程缓冲区207,其中通过该缓冲区音频数据从麦克风206传输到已经请求创建音频流的进程中。Windows音频设备图形隔离程序202进而创建与上述专用缓冲区207相关的独立音频流,其中通过该缓冲区音频数据被传输到已经请求创建给定音频流的进程。并且最后,音频子系统安装为麦克风206注册的局部效应音频处理对象LFX APO 211,用于处理创建的音频流。
[0038] 图3展示了用于抵制非授权访问麦克风数据的系统的示例性方面。这个系统由图2所示的上述音频子系统、以及用于控制对麦克风数据的访问并集成在所述音频子系统中的子系统这两个子系统组成。该音频子系统可以包括音频流控制模块301(其中进程使用该音频流控制模块通过API功能进行交互以创建和控制音频流),并且根据一个方面可以是Windows音频服务201。此外,该音频子系统可以包括音频流混合和处理模块302,该音频流混合与处理模块被配置成用于混合应用与音频端点设备之间的音频流并且还用于在过滤器的帮助下处理音频流(在一个示例性方面,该模块可以是受保护进程:Windows音频设备图形隔离程序202)。此外,该音频子系统可以包括被配置成用于添加和跟踪音频端点设备的音频端点设备控制模块306,在一个示例性方面,该模块可以是Windows音频端点构建程序服务204。
[0039] 用于控制对麦克风数据的访问的子系统可以包括RPC流量过滤模块310、音频流阻止模块311和访问授权模块312。RPC流量过滤模块310被配置成用于监视音频流控制模块301与音频流混合与处理模块302之间的RPC流量,以便检测创建与音频端点设备(即麦克风)相关的音频流的RPC请求并且确定进程标识符(PID)(其中针对该进程标识符,请求创建音频流)。这种设计使得有可能解决上述对于从麦克风305接收音频数据的进程300进行标识的问题,即在进程300与麦克风305之间循环的所有音频流是单一受保护进程“audiodg.exe”(音频流混合与处理模块302)的上下文。
[0040] 音频流阻止模块311被安装用于来自与音频端点设备(即麦克风305)相关的音频会话的每个新音频流,作为音频流混合与处理模块302中的局部效应音频处理对象LFX APO 211。在一个示例性方面,音频流阻止模块311是驱动程序的形式,如WaveRT小型端口驱动程序。该音频子系统自动安装用于音频会话(该音频会话与一组音频端点设备304中的每个音频端点设备相关,其中针对这些音频端点设备,音频流阻止模块311被注册成局部效应音频处理对象LFX APO 211)中的每个新音频流的音频流阻止模块311。在一个示例性方面,上一句中提到的音频流阻止模块311的自动安装是由音频流混合与处理模块302完成的。安装之后,音频流阻止模块311向访问授权模块312发送请求从而关于是否准予访问音频流数据而对进程(其中给定的音频流阻止模块311是针对该进程安装的)的授权进行检查。
[0041] 为了进行检查,访问授权模块312从RPC流量过滤模块310接收或请求进程标识符(其中针对该标识符,请求所述授权检查)。应注意的是,音频流阻止模块311不具有关于音频流对应于哪个进程的信息(其中该音频流阻止模块是针对该音频流安装的)。RPC流量过滤模块310也不具有这种信息。音频流阻止模块311发送的请求与RPC流量过滤模块310获得的进程标识符的协调(相当于将该音频流与该进程协调)由访问授权模块312完成,。
[0042] 音频流阻止模块311的主要用途是防止未经授权的进程访问音频流数据。为此,音频流阻止模块311将该音频流数据调零(其中针对该音频流数据,请求创建音频流的进程被发现没有被访问授权模块312授权)。
[0043] 访问授权模块312与RPC流量过滤模块310和音频流阻止模块311相连并且被设计成用于通过用于访问与该音频端点设备(如麦克风305)相关的音频流数据的前述进程标识符进行进程授权检查。该进程授权模块可以独立进行进程授权检查以获得对与该组音频端点设备304中的音频端点设备相关的音频流数据的访问,并且同时还可以将与受检查的进程相关的请求发送给一个或多个其他的安全模块。
[0044] 具体地,根据一个示例性方面,该进程授权模块可以查询与其对特定进程的评估相关的特定模块,并且可以基于该模块的响应确定响应。例如,将进程授权模块PID传递给防病毒模块,该防病毒模块可以返回关于该进程是可信任进程还是“未感染”进程的信息,或者可替代地,如果防病毒模块是未知的,这个进程可以进行一系列与该进程有关的测量并扫描该进程中的恶意代码并且返回结果。从而,根据这一方面,该进程授权模块可以将请求发送给任何本地或远程安全模块,该安全模块用PID指示该进程并且请求关于特定进程评估该模块的判定。这些模块可以是防病毒模块、HIPS模块(应用程序控制)、防火墙、系统监视器以及本领域技术人员已知的可以访问进程的任何其他模块。在从这个进程的判定接收到一组模块之后,该进程授权模块PAM仅仅授权所有判定都是“这个进程没有恶意”的那些进程。
[0045] 根据一个示例性方面,其他的安全模块可以包括用于控制进程活动的模块,就进程而言,该模块被设计成用于调节动作,如访问文件系统、访问系统注册表、或与其他进程进行交互,将所有进程划分成:可信任的进程、不可信任的进程、具有较弱限制的进程和具有较强限制的进程。根据另一个方面,其他的安全模块可以进一步包括防病毒模块,该防病毒模块被设计成用于在签名数据库(已知病毒和其他恶意应用的描述)的帮助下寻找病毒并且用于去除或隔离相应对象以及与其相关的数据。根据另一个方面,其他的安全模块可以进一步包括威胁中性化模块,该威胁中性化模块被配置成用于检测不想要的内容、实时发现攻击或威胁、采取措施以关闭任何可疑进程、阻止互联网流量并且还将该系统恢复到其上次已知安全条件。根据又另一方面,其他的安全模块可以进一步包括用户反馈模块,该用户反馈模块可以提醒用户关于进程访问麦克风数据的所有尝试,使得用户可以选择是否允许给定进程访问麦克风,并且该用户反馈模块还可以为用户提供针对所有进程默认阻止访问麦克风的选项。
[0046] 从而,访问授权模块312可以基于来自外部安全模块的判定来将进程识别为未授权的进程。例如,如果进程是恶意的或者如果进程未被用户授权访问麦克风数据,该进程可以被标识为未授权的进程。
[0047] 在一个示例性方面,在一组音频端点设备304上添加一个新音频端点设备,接着将进程授权模块312与音频端点设备控制模块306连接。对于每个新音频端点设备而言,访问授权模块312进行音频流阻止模块311的注册,该音频流阻止模块被注册为局部效应音频处理对象LFX APO 211。在另一示例性方面,访问授权模块312防止改变以及去除该系统注册的所有记录,在该系统注册中,音频流阻止模块311被列为局部效应音频处理对象LFX APO 211。
[0048] 图4展示了用于抵制非授权访问麦克风数据的方法的示例性方面的框图。根据这个框图,在步骤401中,在访问授权模块312的帮助下,音频流阻止模块311可以作为局部效应音频处理模块LFX APO被安装在针对每个音频端点设备(麦克风305)的音频流混合与处理模块302中,该音频端点设备被音频端点设备控制模块306考虑在内。局部效应音频处理模块LFX APO用作音频流混合与处理模块302,用于与每个音频端点设备(即麦克风305)相关的新音频流,其中该给定的局部效应音频处理模块LFX APO被安装用于该音频端点设备。
[0049] 接着,在步骤402中,使用RPC流量过滤模块310监视在音频流控制模块301与音频流混合与处理模块302之间的RPC流量,发现创建与音频端点设备(麦克风305)相关的音频流的RPC请求,并且确定进程标识符,其中前述音频流的创建是针对该进程标识符请求的。
[0050] 在新音频流创建过程中,音频流混合与处理模块302将音频流的局部效应处理模块LFX APO应用在该流上,该局部效应处理模块被安装用于与新音频流相关的音频端点设备。在步骤401中,由于对于每个音频端点设备(麦克风)而言,音频流阻止模块311被安装作为音频流的局部效应处理模块LFX APO,因此这将被应用于与该音频端点设备(麦克风)相关的新音频流,在步骤403中,在安装后,音频流阻止模块311将立即向访问授权模块312发送授权请求。
[0051] 响应于这个请求,在步骤404中,访问授权模块312将使用在步骤402中接收的请求创建该音频流的该进程的标识符来检查是否授权该进程访问提及的音频流数据。基于步骤405中的检查结果,如果在访问授权模块312的帮助下发现请求创建所提及的音频流的该进程是未经授权的,则音频流阻止模块311将所提及的音频流的数据调零。
[0052] 图5展示了根据一个示例方面的通用计算机系统(其可以是个人计算机或服务器)的示例,本公开的系统(包括这些模块中的一个或多个)和方法能够在该系统上实现。如所示,计算机系统20可以包括中央处理单元21、系统存储器22、和将各种系统组件连接的系统总线23,这些组件包括与中央处理单元21相关联的存储器。系统总线23被实现成类似于从现有技术可知的任何总线结构,进而包括总线存储器或总线存储器控制器、外围总线和局部总线,该局部总线能够与任何其他总线架构进行交互。该系统存储器包括只读存储器(ROM)24与随机存取存储器(RAM)25。基本输入/输出系统(BIOS)26包括确保个人计算机20的元件之间信息传递的基本程序,如借助于ROM 24的使用加载操作系统时的那些基本程序。
[0053] 个人计算机20进而包括用于数据读出和写入的硬盘27、用于在可移动磁盘29上读出和写入的磁盘驱动器28和用于在可移除光盘31上读出和写入的光盘驱动器30,如CD-ROM、DVD-ROM和其他光信息介质。硬盘27、磁盘驱动器28和光驱30分别通过硬盘接口32、磁盘接口33和光驱接口34连接到系统总线23上。这些驱动器和对应的计算机信息介质是用于存储计算机指令、数据结构、程序模块和其他个人计算机20的其他数据的电源独立模块。
[0054] 本公开提供了使用硬盘27、可移除磁盘29和可移除光盘31的系统的实现方式,但是应当理解的是,可以采用其他类型的计算机信息介质56,该计算机信息介质能够以计算机可读的形式(固态驱动器、闪存卡、数字磁盘和随机访问存储器(RAM)等)存储数据,该计算机通过控制器55与系统总线23连接。
[0055] 计算机20具有文件系统36,记录的操作系统35存储在该文件系统中,该文件系统进而包含图2描绘的音频子系统60和图3描绘的用于控制麦克风数据61的访问的子系统,并且还包括额外的程序应用37、其他程序模块38和程序数据39。用户能够使用输入设备(键盘40、鼠标42)将命令和信息输入个人计算机20。可以使用其他输入设备(未示出):麦克风、操纵杆、游戏控制器和扫描仪等。这些输入设备通常通过串行端口46插入计算机系统20,该串行端口进而与该系统总线相连,但是它们可以以其他方式相连,例如借助于并行端口、游戏端口或通用串行总线(USB)。监视器47或其他类型的显示设备也经由诸如音频适配器48之类的接口连接至系统总线23。除监视器47之外,个人计算机还可以配备其他外围输入设备(未示出),如扬声器、打印机等。
[0056] 个人计算机20能够使用与一个或多个远程计算机49的网络连接在网络环境中运行。远程计算机(或计算机)49还是具有在描述如图5所示的个人计算机20性质中的大部分或所有前述元件的个人计算机或服务器。其他设备还可以存在于计算机网络中,如路由器、网路工作站、对等设备或其他网络节点。
[0057] 网络连接可以形成局域计算机网络(LAN)50,如有线和/或无线网络以及广域计算机网络(WAN)。这些网络用于企业计算机网络和内部公司网络,并且这些网络通常接入互联网。在LAN和WAN网络中,个人计算机20通过网络适配器或网络接口51与局域网50连接。当使用这些网络时,个人计算机20可以采用用于提供与广域计算机网络(如互联网)的通信的调制解调器54或其他模块。是内部或外部设备的调制解调器54通过串行端口46与到系统总线23连接。应当注意的是,这些网络连接仅仅是示例而不需要描绘网络的精确配置,即,现实中存在其他方式由技术通信模块(如蓝牙)建立一个计算机到另一计算机的连接。
[0058] 在各个方面,可以将本文中所描述的系统和方法实现在硬件、软件、固件、或其任何组合中。如果实现在软件中,可以在非瞬态计算机可读介质上将该方法作为一个或多个指令或代码存储。计算机可读介质包括数据存储空间。例如,但非限制性地,这样的计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM、闪存器或其他类型的电子、磁性或光学存储介质、或可以用于以指令或数据结构的形式来携带或存储所期望的程序代码并可以由通用计算机的处理器访问的任何其他介质。
[0059] 如上所述,在各个方面,本公开中所描述系统和方法是就模块而言的。应重述的是,本文中使用的术语“模块”指代现实世界的设备、组件、或用硬件(如专用集成电路(ASIC)或场可编程门阵列(FPGA))实现的组件安排,或者例如作为硬件和软件的组合,如微处理机系统和实现模块的功能的指令集,这些指令集(当被执行时)将微处理机系统变换成特殊用途设备。模块还可以被实现为具有单独由硬件促成的某些功能的和具有由硬件和软件的组合促成的其他功能的两者的组合。在某些实现方式中,模块的至少一部分(在一些情况中全部)可以在通用计算机的处理器(如在以上图5中更详细描述的通用计算机)上执行。因此,可以用各种合适的配置实现每个模块并且不应限制于本文举例说明的任何示例实现方式。
[0060] 为了清晰,不是这些方面的所有常规特征都在本文中进行了披露。将认识到的是,在本公开的任何实际实现方式的发展中,为了实现开发者的特定目标,必须做出许多实现方式特定决策,并且这些特定的目标将针对不同的实现方式和不同的开发者而不同。将认识到的是,这样的开发工作可能是复杂并且耗时的,但对于那些从本公开获益的本领域技术人员来说这将不过是工程的常规工作。
[0061] 另外,应理解的是,本文中使用的措辞或术语是出于描述而非限制性目的,因此本说明书的术语或措辞将由本领域技术人员按照本文所介绍的教导和指导与相关领域技术人员的知识组合地进行解释。此外,除非明确陈述之外,不旨在将本说明书或权利要求书中的任何术语归为不常见的或特殊的含义。
[0062] 本文中披露的各个方面包括以视图的方式所提及的已知模块的现在和未来已知的等同物。此外,虽然已经示出和描述了多个方面和多个应用,但是对于从本公开中获益的本领域技术人员而言,在不背离本文中披露的创造性概念的情况下,除上述之外的更多修改是可以的。