外部介质的安全挂载的制作方法

文档序号:18235948发布日期:2019-07-24 08:42阅读:431来源:国知局
外部介质的安全挂载的制作方法

计算机和计算系统几乎影响了现代生活的每个方面。计算机通常涉及工作、娱乐、医疗保健、交通、娱乐、家庭管理等。

许多计算系统包括用于将可移除介质连接到计算系统的设备。例如,这种计算系统可以允许诸如USB闪存驱动器、存储器卡(诸如SD存储器卡)等的可移除介质设备连接到计算系统。这允许通过使用小巧、紧凑和轻便的装置以简单和方便的方式将数据从一个位置移动到另一个位置以及从一个设备移动到另一个设备。然而,恶意的行为人可能能够使用可移除介质来破坏可移除介质所连接的计算系统。虽然许多用户了解与执行可移除介质设备上的受破坏的文件相关联的风险,但大多数用户并不知道可移动设备上的实际文件系统(不包括文件系统中的文件)可能会以这样的方式被破坏,以使得对可移除介质设备所连接的计算系统产生风险。例如,文件系统可能(有意或无意地)通过访问受限或关键资源导致计算系统崩溃。备选地或附加地,文件系统可以被配置为获取计算系统中存在的文件以窃取用户数据。

文件系统通常在内核模式下运行,几乎不受限制地访问计算资源。因此,可能难以保护计算系统免受这种攻击。

本文要求保护的主题不限于解决任何缺点或仅在诸如上述那些环境中操作的实施例。相反,提供该背景仅用于说明可以实践本文描述的一些实施例的一个示例性技术领域。



技术实现要素:

本文示出的一个实施例包括挂载用于介质的文件系统的计算机实施的方法。方法包括检测介质已经连接到计算系统。方法还包括使用于介质的文件系统挂载到虚拟机。虚拟机耦合到服务器。方法还包括使来自通过文件系统组织的介质的文件数据从服务器提供给计算系统。

提供本发明内容是为了以简化的形式介绍一些构思,这些构思将在下面的具体实施方式中进一步描述。本发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。

附加的特征和优点将在下面的描述中阐述,并且部分地将从描述中显而易见,或者可以通过实践本文的教导进行学习。借助于所附权利要求中特别指出的仪器和组合,可以实现和获得本发明的特征和优点。根据以下描述和所附权利要求,本发明的特征将变得更加明显,或者可以通过实践如下所阐述的本发明进行学习。

附图说明

为了描述可以获得上述和其他优点和特征的方式,将通过参考附图中图示的特定实施例来呈现上面简要描述的主题的更具体的描述。应当理解,这些附图仅描绘了通常的实施例,并且因此不应当认为是对其范围的限制,将通过使用附图的附加特征和细节来描述和解释实施例,其中:

图1图示了被配置为将可移除介质上的文件系统挂载到虚拟机的系统;

图2图示了用于挂载文件系统和提供文件数据的流程;

图3图示了被配置为将可移除介质上的文件系统挂载到虚拟机的备选系统;和

图4图示了挂载文件系统的方法。

具体实施方式

本文图示的一些实施例在计算设备上实施轻量级虚拟机。当在计算设备处检测到可移除介质时,可移除介质的文件系统被挂载到轻量级虚拟机。轻量级虚拟机连接到计算设备上的服务器。然后,服务器可以将可移除介质上的任何文件提供回计算设备。因此,例如,计算设备将基本上远程地进入在计算设备本身上运行的虚拟机。如果可移除介质上的文件系统以对其连接的系统进行攻击的方式受到破坏,则它将只能攻击虚拟机,而不能攻击主机计算设备。例如,可移除介质上的文件系统将只能使虚拟机崩溃或从虚拟机中获取文件(其中很可能没有文件对计算设备的用户很重要,甚至没有文件与计算设备的用户有关)。

现在参考图1,其图示了一个示例。图1图示了计算设备100。计算设备100在计算设备100上运行虚拟机102。

计算设备100包括端口104。端口104可以是例如USB端口、安全数字(SD)端口、eSATA端口或用于将可移除介质106连接到计算设备100的其他适当端口。

如上所述,计算设备100可以包括虚拟机102。虚拟机是可以通过使用主机系统(诸如计算设备100)上的资源来提供物理计算机系统的功能的模拟计算机系统。对虚拟机102分配来自主机系统的资源,主机系统在所图示的示例中是计算设备100。这种资源可以包括处理器周期、系统存储器、系统存储、对网络堆栈的访问、对所连接的外围设备的访问等。

来自主机系统(即,计算设备100)的资源的分配由管理程序108控制。虚拟机102只能访问由管理程序108分配给虚拟机102的资源。因此,虚拟机102基本上从计算设备100上的其他资源“沙盒化”。因此,虚拟机102不能访问管理程序108未授予访问权限的其他资源。这可以用于防止在虚拟机102处实施的可移除介质106的受破坏的文件系统120影响计算设备100的其他部分。如本文所使用的,文件系统是用于控制如何在存储介质上存储和检索数据的架构。文件系统还可以包括存储在使用该架构的介质上的文件数据。

注意,当可移除介质连接到计算设备100时,虚拟机102可以作为沙盒系统在计算设备100上连续运行以便随时可用。备选地,如下面将更详细地说明的,在一些实施例中,当可移除介质连接到计算设备100时,虚拟机102将被实例化。

注意,管理程序108通常被配置为实施具有最小特征集的轻量级虚拟机102。特别地,期望虚拟机102使用尽可能少的资源。因此,在一些实施例中,虚拟机102将排除可能存在于其他虚拟机中的许多功能,而仅包括基本文件系统挂载和访问功能,以及任何所需的通信功能。

因此,例如,一些实施例将阻止在虚拟机102中启动应用。除了实施轻量级虚拟机之外,这还可以保护虚拟机102以免被用于启动存储在可移除介质106上的恶意软件应用。

在一个备选的或附加的示例中,虚拟机102可以具有在虚拟机102处实施的有限组的通信协议。即,可以从虚拟机102中明确地排除某些协议。另外,如果不需要各种端口和通信通道来传输文件数据,则可以从虚拟机102中排除这些端口和通信通道。这可以帮助实施轻量级虚拟机以及防止外部试图破坏虚拟机102。

在所图示的示例中,管理程序108可以被配置成通过端口104挂载可移除介质106作为用于虚拟机102的文件系统。

虚拟机102耦合到在计算设备100处运行的服务器110。服务器110可以是文件服务器。虚拟机102可以使其文件系统120中的文件数据对服务器110可用,从而允许服务器110将文件从可移除介质106的文件系统120提供给服务器110的客户端。

例如,服务器110可以类似于网络文件访问服务器,诸如华盛顿州雷蒙德市的微软公司的Windows服务器中可用的共享文件夹服务器。这些服务器使用服务器消息块(SMB)协议来共享文件、打印机、串行端口,并使用命名管道和/或信箱在不同系统之间传输信息。因此,服务器110在连接到服务器110的客户端看来像是共享可移除介质106的文件系统120中的文件的文件共享。然而,连接到服务器110的客户端将从计算设备100本身连接,而不是在外部使用具有外部连接的网络。例如,如图1中所示,计算设备100处的客户端112将连接到服务器110以进行文件访问。值得注意的是,客户端112可以使用网络连接来附加地访问计算设备100外部的服务器(诸如服务器110b)以访问网络文件共享,但是也能够访问计算设备100本身上的服务器110以基于可移除介质106的文件系统120中的数据来访问文件共享。因此,客户端112可以是多用途的,因为它可以用于访问本地服务器110以及计算设备100外部的其他服务器。

客户端112、服务器110和虚拟机102可以被配置成以多种不同的方式进行通信。例如,在一些实施例中,客户端112和服务器110以及虚拟机102和服务器110可以使用应用层网络协议进行通信。这些协议可以包括TCP、NetBios API、UDP或其他协议中的一个或多个。以这种方式,来自可移除介质106的文件系统120的数据,特别是文件数据可以通过虚拟机102传输到服务器110和客户端112。

备选地或附加地,一些实施例可以使用由计算设备100的操作系统118控制的进程间通信。具体地,进程间通信允许在计算设备(诸如计算设备100)上操作的不同进程之间共享数据。因此,例如,在图1中所图示的示例中,计算设备100可以具有可以在计算设备100上的不同进程之间共享的共享存储器114。具体地,如图1所示,服务器110和客户端112可以共享共享存储器114。因此,在该示例中,服务器110可以从虚拟机102和可移除介质106获得文件数据。然后,可以将来自虚拟机102的该文件数据存储在共享存储器114。服务器110可以向客户端112提供指针。指针标识文件数据存储在共享存储器114中的位置。以这种方式,服务器110不需要将实际的文件数据发送到客户端112。相反,服务器110可以简单地将指向共享存储器114中的数据的指针发送到客户端112。这在服务器110和客户端112之间创建了更有效的通信过程。

在又一备选的或附加的实施例中,计算设备100的某些实施例可以包括基于硬件的解决方案,其中服务器110和客户端112可以被实施成硬件设备,使得客户端112和服务器110可以实施直接存储器访问(DMA)功能。特别地,DMA允许计算机系统的某些硬件子系统与CPU 116无关地访问系统存储器。类似于进程间通信,DMA可以用于在服务器110和客户端112之间共享文件数据,而无需在两个组件之间复制数据。而是,文件数据简单地在共享存储器114中共享并使用DMA功能来访问。

现在参考图2,其图示了流程200。流程200图示了可以在实施本发明的一些实施例中执行的各种动作。

在202处,检测可移除介质。例如,实施例可以检测到可移除介质106连接到端口104。例如,端口104可以具有与其相关联的中断,当可移除介质106连接到端口104时触发这些中断。这些中断可以中断硬件和/或软件,诸如用于计算设备100的CPU 116和/或用于计算设备100的操作系统。这可以使硬件和/或软件向管理程序108指示可移除介质的文件系统120应当被挂载到虚拟机。

在204处,确定虚拟机102是否正在运行。例如,可以由控制虚拟机102的管理程序108做出该确定。

如在206处所示,如果虚拟机102正在运行,则可移除介质的文件系统将被挂载到虚拟机102。

然而,如在208处所示,如果虚拟机102未运行,则将启动虚拟机102,然后可移除介质的文件系统120将被挂载到虚拟机102,如在206处所示那样。

注意,在一些实施例中,虚拟机102可以被配置为在预期可移除介质106连接到计算设备100的情况下连续运行。然而,在其他实施例中,虚拟机可以被配置为仅在可移除介质106连接到计算设备100时运行。

如在210处所示,确定服务器110是否正在运行。如果服务器110正在运行,则如在212处所示,虚拟机102连接到服务器110,以使文件系统120中的文件对服务器110可用。如果服务器110未运行,则如在214处所示,启动服务器110并且虚拟机102连接到服务器110,如在212处所示那样。

如在216处所示,服务器110然后将文件提供给计算设备100上的客户端112。如前所述,这可以例如通过将实际文件数据发送到客户端112,或者通过将文件数据存储在共享存储器114中,并向客户端提供指向文件数据的指针来完成。

在一个实施例中,文件系统120可以被挂载到虚拟机102以确定文件系统120是否会使虚拟机102崩溃或者是否试图从虚拟机102获取文件。如果文件系统120没有使虚拟机102崩溃,则可移除介质106的文件系统可以从虚拟机102卸载并直接挂载到计算设备100,使得计算设备可以访问可移除介质106上的文件数据,而无需通过客户端112、服务器110和虚拟机102来访问数据。

注意,在一些这种实施例中,如图3中所示,虚拟机102实际上可以在计算设备100外部的外部系统300上实施。在该示例中,可移除介质106仍然可以耦合到计算设备100的端口104,然而,将使用计算设备100和外部系统300之间的网络功能将可移除介质的文件系统120挂载到计算设备外部的虚拟机。如果文件系统120没有使在计算设备100外部的虚拟机崩溃,则虚拟机可以向计算设备100指示这一点,然后计算设备100将文件系统120直接挂载到计算设备100以供在计算设备100处的应用和硬件使用。直接将文件系统120挂载到计算设备100可以包括,例如,允许操作系统118和/或计算设备100的其他内核组件访问和管理文件系统120。

注意,能够检测文件系统120何时使虚拟机102或计算设备100外部的虚拟机崩溃的一些实施例还可以包括用于报告文件系统120使虚拟机102崩溃的功能。特别地,该报告机制可以被配置为向各种操作系统制造商和提供商报告崩溃。这可以帮助操作系统制造商和提供商解决崩溃,以便防止文件系统120使不具有针对本文所示的计算设备100所示的保护的其他计算设备崩溃。在一些实施例中,管理程序108或计算设备100外部的系统上的管理程序可以被配置成向操作系统制造商和提供商报告虚拟机的崩溃。备选地或附加地,可以实施专门的报告服务来报告虚拟机的崩溃。

一些实施例可以被配置为通过使管理程序108做出改变来影响可移除介质106上的文件数据的任何改变。特别地,如果计算设备100上的应用需要改变可移除介质106上的文件数据,则应用可以向管理程序108指示。然后,管理程序108可以使用挂载到虚拟机102的文件系统120来做出这些改变。这可以用于实施计算设备100和文件系统120之间的内置空气间隙。

实施例可以被配置为以对计算设备100的用户无缝的方式将可移除介质106的文件系统120挂载到虚拟机102。特别地,可能期望使得计算设备100的用户没有意识到文件系统120被挂载到虚拟机102。相反,如果在用户看来文件在计算设备100上直接可用,则对用户可能是有益的,即使可移除介质106上的文件数据是通过虚拟机102、经过服务器110和客户端112提供的。在一些实施例中,客户端112可以被配置成与计算设备100的文件系统浏览器122一起集成。特别地,客户端112可以与文件系统浏览器122的用户界面交互以在文件系统浏览器122的用户界面中显示来自文件系统120的文件数据。例如,文件系统浏览器122可以配置有允许用户察看挂载到计算设备100的文件系统中的文件数据的用户界面。用户界面还可以被配置成连接到客户端112,以用于显示来自可移除介质106的文件系统120的文件数据,即使该文件系统120未被直接挂载到计算设备120。在一些实施例中,文件系统120可以被表示为文件系统浏览器122的用户界面中的驱动。

在一些实施例中,文件系统120可以简单地显示为文件系统浏览器122中的下一个可用的驱动。备选地或附加地,文件系统浏览器122可以将用于可移除介质106的文件系统120的驱动标识为间接耦合到计算设备100的驱动。这可以用于允许技术用户对来自可移除介质106的文件系统100的文件数据的使用做出工程选择。

实施例可以被配置为打开和关闭本发明的各种特征。例如,一些实施例可以包括用户可选择的特征,其允许用户确定可移除介质106是否将其文件系统120挂载到虚拟机102或者直接挂载到计算设备100而不经过虚拟机102。

本文图示的实施所描述的特征的实施例中的一些实施例可以用于创建更安全的计算设备100,其能够受到保护以免受可移除介质上的文件系统的损害,以避免能够损害计算设备100。另外,实施例可以被配置成通过防止可移除介质的文件系统从计算设备100中获取信息来创建更安全的计算设备100。

现在,以下讨论涉及可以执行的许多方法和方法动作。虽然方法动作可以按特定顺序讨论或在流程图中以特定顺序发生,但除非特别说明或要求(因为动作取决于在该被执行的动作之前完成的另一动作),否则不需要特定的顺序。

现在参考图4,其图示了方法400。

方法400包括检测介质已经连接到计算设备(动作402)。例如,如图1所示,操作系统118可以检测到可移除介质106耦合到计算设备100的端口104。

方法400还包括使用于介质的文件系统挂载到虚拟机,其中虚拟机耦合到服务器(动作404)。例如,文件系统120挂载到虚拟机102。虚拟机102耦合到服务器110。

方法400还包括使来自介质的通过文件系统组织的文件数据从服务器提供给计算设备(动作406)。例如,将文件从服务器110和计算机系统100上的虚拟机102提供回到计算机系统100本身上的客户端112。

方法400还可以包括确定文件系统不会使虚拟机崩溃,并且因此将文件系统直接挂载到计算设备。例如,这是一种确保可移除介质在挂载时不会使系统崩溃的方法。如果可移除介质不会使系统崩溃,则可以允许它直接连接到计算设备100本身。特别地,在所图示的示例中,通过使计算设备100处的操作系统118管理文件系统120而不是从服务器110提供文件,可以将文件系统120直接挂载到系统100。

可以在计算设备上实施虚拟机和服务器的情况下实践方法400。因此,如图1中所示,可以在相同的计算设备100上实施虚拟机102和服务器110。

在一些实施例中,使用共享存储器将文件数据从服务器提供给计算设备处的客户端。因此,如图1中所示,共享存储器114可以用于将文件系统120中的文件数据从服务器110提供给客户端112。

在一些实施例中,使用服务器与计算系统上的客户端之间的进程间通信,将文件数据从服务器提供给计算设备处的客户端。

在一些实施例中,以硬件实施服务器和客户端,并且使用服务器和计算系统上的客户端之间的直接存储器访问(DMA)通信将文件数据从服务器提供给计算设备处的客户端。

可以在介质是USB记忆棒或可移动存储器卡中的至少一个的情况下实践方法400。注意,可移除介质可以附加地或替代地包括其他介质,诸如通过USB或Lightning连接器连接的外部硬盘驱动。实际上,可移除介质可以是诸如磁带驱动或其他存储设备的项目。

可以在计算设备外部实施虚拟机和服务器的情况下实践方法400。例如,如图3中所示,在计算设备100外部实施服务器110。然后,客户端112将使用网络通信或其他适当的通信方式与服务器110通信。

另外,方法可以由包括一个或多个处理器和诸如计算机存储器的计算机可读介质的计算机系统来实践。特别地,计算机存储器可以存储计算机可执行指令,在由一个或多个处理器执行该计算机可执行指令时,使各种功能(诸如实施例中记载的动作)得以执行。

本发明的实施例可以包括或利用包括计算机硬件的专用或通用计算机,如下面更详细地讨论的那样。本发明范围内的实施例还包括用于携带或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。这种计算机可读介质可以是可由通用或专用计算机系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是物理存储介质。携带计算机可执行指令的计算机可读介质是传输介质。因此,作为示例而非限制,本发明的实施例可包括至少两种截然不同的计算机可读介质:物理计算机可读存储介质和传输计算机可读介质。

物理计算机可读存储介质包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储(诸如CD、DVD等)、磁盘存储或其他磁存储设备,或者可以是可以用于存储处于计算机可执行指令或数据结构形式并且可由通用或专用计算机访问的所需程序代码方法的任何其他介质。

“网络”被定义为使得能够在计算机系统和/或模块和/或其他电子设备之间传输电子数据的一个或多个数据链路。当通过网络或其他通信连接(硬连线、无线或硬连线或无线的组合)向计算机传送或提供信息时,计算机将连接恰当地视为传输介质。传输介质可以包括网络和/或数据链路,其可以用于携带处于计算机可执行指令或数据结构形式并且可由通用或专用计算机访问的所需程序代码方法。上述的组合也被包括在计算机可读介质的范围内。

另外,在到达各种计算机系统组件时,处于计算机可执行指令或数据结构形式的程序代码方法可以自动地从传输计算机可读介质传送到物理计算机可读存储介质(或反之亦然)。例如,通过网络或数据链路接收的计算机可执行指令或数据结构可以被缓冲在网络接口模块(例如,“NIC”)内的RAM中,然后最终传送到计算机系统RAM和/或计算机系统处的更不易失性计算机可读物理存储介质。因此,计算机可读物理存储介质可以被包括在也(或甚至主要)利用传输介质的计算机系统组件中。

计算机可执行指令包括例如使通用计算机、专用计算机或专用处理设备执行特定功能或功能组的指令和数据。计算机可执行指令可以是例如二进制文件、诸如汇编语言的中间格式指令,或甚至是源代码。尽管用结构特征和/或方法动作专用的语言描述了本主题,但应当理解,所附权利要求中定义的主题不必限于所描述的上述特征或动作。而是,所描述的特征和动作被公开为实施权利要求的示例形式。

本领域技术人员将理解,本发明可以在具有许多类型的计算机系统配置的网络计算环境中实践,包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器或可编程的消费电子产品、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机等。本发明还可以在分布式系统环境中实践,其中通过网络链接(通过硬连线数据链路、无线数据链路或通过硬连线和无线数据链路的组合)的本地和远程计算机系统都执行任务。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备中。

备选地或附加地,本文描述的功能可以至少部分地由一个或多个硬件逻辑组件执行。例如但不限于,可以使用的说明性的硬件逻辑组件的类型包括现场可编程门阵列(FPGA)、程序专用集成电路(ASIC)、程序专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑器件(CPLD)等。

在不脱离本发明的精神或特征的情况下,可以以其他特定形式实施本发明。所描述的实施例在所有方面都应被视为仅是说明性而非限制性的。因此,本发明的范围由所附权利要求而不是前面的描述指示。在权利要求的含义和等同范围内的所有改变都包含在其范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1