掌桥专利:专业的专利平台
掌桥专利
首页

用于将数据从第一网络传送到第二网络的网络网关和方法

文献发布时间:2023-06-19 19:28:50


用于将数据从第一网络传送到第二网络的网络网关和方法

技术领域

本发明总体上涉及网络通信领域,更具体地,涉及用于将数据从第一网络传送到第二网络的网络网关和方法。

背景技术

目前,数字服务在工业物联网(IIoT)中的应用变得越来越广泛。此类数字服务通常安装在远程服务器上,并且通常用于处理和分析从基于物联网(IoT)的信息系统(Information System,以下简称IS)的设备(硬件)接收的数据。来自IS设备(例如换能器和传感器、致动器)的数据通过网络网关传送到远程服务器。

网络网关(以下称为网关)负责确保IS设备与远程服务器的可靠且安全的连接。IS设备通过网关与服务器通信。换言之,IS设备相对于服务器位于内部网络上。服务器位于外部网络上,服务器与IS设备之间的通信通过网关进行。通常,应保护内部IS网络免受来自外部网络的基于计算机的攻击。远程服务器通常是最容易受到攻击的部件,因为它连接到外部网络,例如互联网。因此,远程服务器可能会受到各种计算机攻击,包括但不限于:MITC攻击(Man in the cloud,云端中的人);使用远程服务器代码和架构以及已安装的服务中的错误和漏洞的攻击;缓冲区溢出攻击;结构化查询语言(SQL)注入数据库攻击;特权提升攻击;易受攻击的通道攻击;分布式拒绝服务(DDoS)攻击;数据完整性违规攻击;证书欺骗攻击;网络钓鱼攻击;密码选择或密码重置以获得未经授权的访问;社会工程学攻击;涉及安装恶意软件(以下简称“SW”)的攻击;利用漏洞的攻击;不安全的应用程序安装攻击等。MITC攻击是一种基于窃取唯一令牌的攻击,这些令牌在首次使用服务时生成并为了方便而存储在用户的机器上。通过在远程服务器上运行计算机攻击,攻击者可以持续对网关进行攻击并获得对内部IS网络的访问权限。访问内部网络又可能导致对IS设备数据的未经授权的访问,甚至使IS设备和IS本身无法运行。应当注意的是,对远程服务器的攻击可以在外部和内部进行,例如,通过对服务器的物理访问而进行。

对内部IS网络的另一种类型的计算机攻击是对网关和远程服务器之间的通信通道的攻击,即对外部网络的攻击。攻击者可以通过例如通过开放端口搜索设备、搜索设备漏洞、侵入通信链路、执行中间人攻击、以及通过获得对设备应用程序的未经授权的访问来执行此类攻击。

第三种类型的计算机攻击是网关攻击,其可以通过物理访问网关或通过在成功攻击远程服务器或外部网络的情况下使用外部网络来实现。

因此,出现的技术问题涉及连接到第一网络(内部网络)的设备抵御源自第二网络(外部网络)的计算机网络攻击的安全水平。

然而,已知技术没有解决所述技术问题,因为将网络流量复制到隐藏网络中以供分析不能完全保护操作网络免受来自互联网的计算机攻击。因此,需要提高连接到内部网络的设备抵御源自外部网络的计算机网络攻击的安全水平。

发明内容

公开了用于使用网关将数据从第一网络传送到第二网络的系统和方法。

有利地,所公开的方法执行从第一网络到第二网络的安全单向数据传送。

另一个优点是通过在网关处于第一(“安全”)状态时允许访问可信存储器并通过在网关处于第二(“工作”)状态时拒绝访问可信存储器来提高网络网关的可信存储器抵御计算机网络攻击的安全水平。

在一个方面,一种使用网关将数据从第一网络传送到第二网络的方法包括由安全监控器将网关的状态设置为第一状态。第一状态向目的地代理指示对可信存储器的访问被准许并且对第二网络和不可信存储器的访问被拒绝。在网关处于第一状态时,基于存储在可信存储器中的一个或多个参数来配置目的地代理。目的地代理被配置为将从源代理接收的数据传送到第二网络。源代理被配置为接收要从第一网络传送的数据。将网关的状态改变为第二状态。第二状态向目的地代理指示对可信存储器的访问被拒绝并且对第二网络和不可信存储器的访问被准许。当网关处于第二状态时,控制从第一网络的源代理到第二网络的目的地代理的数据传送。目的地代理利用不可信存储器来执行该数据传送。

在一方面,第一状态包括“安全”状态,第二状态包括“工作”状态。

在一方面,第二状态还指示从源代理到目的地代理的数据传送被允许并且从目的地代理到源代理的数据传送被禁止。

在一方面,由安全监控器将网关的状态改变为第二状态还包括在目的地代理的配置完成之后,由安全监控器将网关的状态改变为第二状态。

在一方面,存储在可信存储器中的目的地代理的一个或多个参数包括用于向第二网络传送数据的一个或多个授权参数。

在一方面,存储在可信存储器中的目的地代理的一个或多个参数包括要从第一网络传输到第二网络的数据的列表。

在一方面,配置目的地代理还包括:创建一个或多个规则以基于目的地代理的一个或多个参数过滤接收到的数据,以及利用该一个或多个规则来后续仅将过滤后的数据从第一网络传送到第二网络。

在一方面,不可信存储器包含用于存储要传送的数据的缓冲区,并且还包含与目的地代理相关的服务信息。

在一方面,由安全监控器控制数据的传送还包括由安全监控器根据一个或多个预定义的安全策略控制一个或多个资源之间的通信,其中,控制通信包括准许或者拒绝一个资源对另一个资源的访问,其中,一个或多个资源包括:目的地代理、源代理、可信存储器和不可信存储器。

附图说明

并入本说明书中并构成本说明书的一部分的附图示出了本发明的一个或多个示例方面,以及连同具体实施方式一起用来解释这些示例方面的原理和实现方式。

图1A、图1B和图1C是基于具有微内核架构的操作系统的示例使用安全监控器进行进程间通信(IPC)通信的示例图。

图2是示出安全监控器的示例系统图。

图3A示出了示例系统图,其示出了用于将数据从第一网络传送到第二网络的网关。

图3B示出了图3A的网关的系统图,其中指示了来自第二网络的攻击者对网关组件和第一网络的计算机攻击的可能类型。

图4是示出用于将数据从第一网络传送到第二网络的方法的流程图的示例。

图5示出了可以在其上实现本文公开的系统和方法的变型方面的计算机系统的示例。

具体实施方式

本文在用于在不想要的调用发生时保护用户数据的系统、方法和计算机程序产品的上下文中描述各示例性方面。本领域普通技术人员将意识到,以下的描述仅仅是说明性的,而不意图以任何方式进行限制。了解本发明的优点的本领域技术人员将很容易想到其他方面。现在将详细地参考如附图中所示的示例性方面的实现方式。贯穿附图和以下描述将尽可能地使用相同的附图标记来指代相同或相似的项目。

术语表:本文定义了许多术语,这些术语将用于描述本发明的变型方面。

进程:在程序或其一部分连同有用数据的执行中的一系列操作,其可以包括一个或多个线程和相关联的系统资源。

进程间通信(IPC):一组用于在一个或多个进程中的多个线程之间交换数据的方法。进程可以在通过网络相互连接的一台或多台计算机上启动。IPC方法可以分为交换消息、同步、共享存储器和远程过程调用的方法。

操作是在所考虑的进程中执行的基本动作(操作的非限制性示例可以是API函数调用)。

现代操作系统可以使用同步和异步操作来使用IPC方法在两个进程之间传递数据。

有限状态机(FSM)是分立设备的模型,其特征在于多个状态和从一个状态到另一个状态的转变。有限状态机的每个状态表征有限状态机可以处于的可能情况之一。

物联网(IoT)是配备有用于彼此交互或与外部环境交互的内置技术的物理对象(“事物”)的计算网络。物联网还可以包括但不限于诸如可穿戴设备、电动车辆系统、智能汽车、智能城市、工业系统等的技术。

工业物联网(IIoT)由联网设备和处理从联网设备获得的数据的高级分析平台组成。存在从小型天气传感器到复杂的工业机器人的广泛的IIoT设备。

计算机攻击(也称为“网络攻击”)是通过基于软件的手段对信息系统以及信息网络和电信网络的有针对性的影响,其执行目的是破坏这些系统和网络中信息的安全性。

本地计算机网络的网络网关(也称为网关)是将本地计算机网络连接到另一个网络的设备。

现代操作系统(以下简称OS)是具有大量用于执行各种功能的安装软件的复杂的IS。同时,软件开发者在不断地进行错误修正,并不断地扩展软件的功能。然而,由于软件的漏洞以及未经授权安装恶意软件的可能性,此类软件的数量和范围可能会带来重大的信息安全风险。针对这些威胁的第一层保护是OS架构的内置安全特征。OS提供用于处理和控制IPC的机制,这些机制尤其可以通过在进程之间交换消息来实现。

许多流行的操作系统(例如但不限于Windows 9x、Linux、Android等)可以使用单片内核。单片内核具有许多优点,例如,驱动器之间的通信简单性和性能。然而,由于内核软件模块数量众多,而且代码出错的概率很高,结果很难确保单片OS的可靠性和安全性。因此,如果OS中存在漏洞,则IPC处理和控制特征仍可能允许在进程之间传递某些不想要的或恶意的消息。进程之间的此类恶意消息的一个示例是请求访问存储器的受保护区域的消息。另一种类型的OS是具有微内核的OS(例如,KasperskyOS、Symbian等)。微内核可以提供与硬件一起工作的基本过程控制和抽象函数的最小集合。OS的微内核架构的特征可以在于微内核的小尺寸和可信计算平台。微内核架构有助于提高OS微内核架构的可靠性和安全性,因为它更容易验证少量微内核代码的正确性。然而,微内核架构通常具有较低的性能。也存在具有混合内核的操作系统(例如但不限于MacOS X、Windows NT等),这些混合内核允许操作系统在保持单片核的性能的同时利用结构良好的OS微内核架构。

图1A、图1B和图1C是基于具有微内核架构的操作系统100的示例使用安全监控器120的IPC通信的示例图。

图1A所示的OS 100可以包括可以通过IPC相互交互的OS 100的应用程序的单独进程131-132。进程132-132还可以借助编程接口通过消息140(也是IPC消息,在图1A-图1B中由以点开始的粗箭头指示)与OS内核110交互。消息140可以包括但不限于以下内容:启动141进程131的请求、来自进程131的请求142或来自另一个进程132的回复143(例如,第一进程131对第二进程132的方法的调用)、进程132对安全监控器120的请求(安全请求144)。应当注意,如本文所使用的消息140被理解为是指通常促进OS 100的各种进程(包括进程131-132)之间的通信的IPC消息。安全监控器120可以是被配置为控制上述消息140的传递的OS100的部件。下面将公开安全监控器120的实现细节。消息140还可以包括响应于来自进程131-132的消息140而来自OS内核110的错误通知。在这种情况下,进程实现的上述接口可以是包含实现相应进程的功能的已声明方法的数据结构。

上述接口可以静态定义,并且进程之间允许的通信可以预先定义。

消息140可以借助对OS内核110的系统调用由进程131-132发送和接收。

系统调用可以包括但不限于以下内容:

Call():由第一进程131用于向第二进程132发送请求142以及从第二进程132接收回复143以执行IPC;

recv():由第二进程132使用以接收请求142;

reply():由第二进程132使用以将回复143发送给第一进程131。

在一方面,系统调用reply()可以在执行调用recv()的同一进程线程中执行。

安全监控器120可以实现为具有在运行OS 100的计算机处理器上运行的能力(图5中示出了通用计算机20的示例)。安全监控器120可以被配置为根据决定150来控制消息140的传递,决定150是基于来自策略数据库121的安全策略而做出的。对消息140的传递的控制可以包括允许或禁止传递消息140,并因此允许或禁止执行使用消息140的通信。关于控制消息140的传递的方法的决定150可以指示消息140的授权或传输符合安全性策略。决定150可以被安全监控器120或其组件用来实现对消息140的传递的控制(见图2)。基于来自策略数据库121的安全策略,可以使用消息140中的数据(例如,要启动的进程的名称或调用的进程方法的实际自变量)来发布决定150。

此外,关于控制消息140的传递的方法的决定150可以取决于消息140的结构的正确性。因此,如果消息140具有无效结构,则消息140的传输可以被禁止。在这种情况下,可以使用消息140的进程接收方的接口的声明性描述来定义有效消息结构。上述结构可以包含消息140的大小、有效自变量和消息的其他有效参数140。

在一方面,安全监控器120可以是OS内核110的一部分或是单独的应用程序。在另一方面,安全监控器120可以在OS内核110的特权模式下运行。

OS 100的一方面还可以包括审计服务133,审计服务133被设计为记录消息140的传递控制的结果。在这种情况下,消息140的传递的控制还可以包括使用审计服务133执行审计。另一方面,安全监控器120可以控制消息140的传递,还考虑审计服务133的当前状态。该状态指示审计服务133准备好接收和存储消息140。例如,如果第一进程131(通过第二进程132)向安全资源(在该安全资源中应当始终记录关于对安全资源的访问的信息)发送请求142,但是审计服务133的状态指示审计服务133当前没有存储消息140,则安全监控器120可以根据安全策略禁止这样的请求142。

在一方面,OS 100可以包含安全监控器上下文122。安全监控器120还可以考虑上下文122来控制消息140的传递。安全监控器上下文122可以包含安全策略参数的值。在一方面,安全监控器120还可以被配置为改变上下文122以基于来自策略数据库121的安全策略考虑决定150。在一方面,安全策略可以使用有限状态机模型、强制完整性控制模型或其他实现安全策略的模型。这些模型的细节将在稍后的图3A的描述中公开。根据安全策略使用的模型,上下文122可以包含不同的安全策略参数。例如,对于基于强制完整性控制模型的安全策略,上下文122可以包含完整性等级和对受保护资源的访问等级的值。对于基于有限状态机的安全策略,上下文122可以包含有限状态机的状态的当前值和有限状态机的转变表。

图1B示出了使用安全监控器120控制将被允许的请求142从第一进程131传递到第二进程132的示例。第一进程131可以调用第二进程132的接口方法,第一进程131可以为此发送包含被调用方法的输入自变量的请求142。第一进程131可以通过OS内核110发送请求142。OS内核110又可以将请求142发送到安全监控器120以进行验证。安全监控器120可以基于来自策略数据库121的安全策略发布决定150“允许”并且可以将该决定150传送到OS内核110。然后,OS内核110可以基于决定150将请求142转发到第二过程132。

在图1B所示的示例中,第二进程132然后可以向第一进程131发送回复143(未指示消息140的相反顺序),其中回复143可以包含被调用方法的输出自变量。发送回复143的方法可以与发送请求142的方法相同,但是顺序相反,即从第二进程132发送到第一进程131。也就是说,第二进程132可以借助OS内核110发送回复143。OS内核110又可以将回复143发送到安全监控器120以进行验证。安全监控器120可以基于来自策略数据库121的安全策略发布新的决定150“允许”并且可以将这个新的决定150传送回OS内核110。然后,基于新的决定150,OS内核110可以转发对第一进程131的回复143。

图1C示出了对从第一进程131到第二进程132的被禁止请求142进行控制的示例。在所示示例中,安全监控器120可以通过禁止传递请求142来控制请求142的传递。第一进程131可以通过OS内核110发送请求142。OS内核110又可以将请求142发送到安全监控器120以进行验证。安全监控器120可以基于来自策略数据库121的安全策略发布决定150“禁止”,并且可以将该决定150传送到OS内核110。OS内核110然后可以基于决定150向第一进程131发送错误通知。在这种情况下,请求142将不被传送到第二进程132。

图2是示出安全监控器的示例系统200。用于生成安全监控器的系统200可用于在交换消息140时提高OS 100的安全性并且还用于对消息140的传递至接收者进行控制。在这种情况下,软件开发者可以在各种操作系统100和/或使用消息140的交换的任何其他计算机系统中使用安全监控器120,包括但不限于在数据库和应用程序软件中使用。这种使用的示例在前面已经结合图1A-图1B进行了讨论。对于每个操作系统100,可以基于OS架构240的特征并通过考虑如安全策略中表达的该操作系统100的安全要求来生成安全监控器120。应当注意的是,基于OS 100的各种软件和固件开发系统(以下简称开发系统),可以共享OS架构240的主要对象。此类对象的示例可以包括但不限于负责操作OS内核110和操作系统的其他组件260的进程、服务、应用程序、驱动器。同时,OS架构240的负责开发系统的功能的其他对象对于所提到的每个系统可能会有所不同。因此,可能需要不同的安全策略来控制消息140的传递。开发系统可以包括软件以及固件系统。

系统200可以包含策略数据库121,该策略数据库121可以被配置为存储控制消息140的传递所需的安全策略。系统200还可以包含至少一个配置工具220,配置工具220可以被设计为基于从生成工具210接收的安全策略来配置相应的验证模块221。验证模块221可以被配置为根据安全监控器120在实现来自策略数据库121的安全策略时的请求生成关于控制消息140的传递的方法的决定150(以下称为决定)。系统200还可以包含OS架构240的描述。OS架构240的描述可以包括但不限于:OS架构对象,例如进程和OS 100的应用程序。在一方面,所述OS架构对象还可以包括基于OS 100的开发系统的对象。在一个方面,OS架构对象还可以包括但不限于:

服务提供进程,该服务提供进程可以包括至少一个软件组件,该软件组件可以被配置为实现给定进程的软件接口;可以利用上述接口执行与给定进程的通信(例如,这样的服务可以是转换外部事件流和请求事件处理进程的应用程序);

每个进程的编程接口列表;也可以指定实现相应进程的功能的相应接口方法。

在一方面,OS架构对象还可以是资源驱动器——管理资源并访问它们的进程。资源可以是但不限于文件、端口或进程。例如,文件系统是资源驱动器,文件本身是文件系统可以提供其他进程对其的访问的资源。

此外,系统200可以包含生成工具210,生成工具210可以被配置为分析安全策略。该分析可以包括但不限于:识别使用给定安全策略的进程。在一方面,前述分析可以考虑OS架构对象240,包括前述进程和应用程序。生成工具210还可以被配置为从策略数据库121中为相应的配置工具220选择安全策略,并且将至少一个所选择的安全策略传送给相应的配置工具220。生成工具210还可以被配置为基于分析结果,使用从每个配置工具220获得的配置的验证模块221生成安全监控器120。在一方面,生成工具210可以通过创建安全监控器120的代码来生成安全监控器120。所述代码可以包括但不限于源代码、中间代码或可执行代码。此外,安全监控器120的代码的生成还可以包括代码优化和错误分析。因此,生成工具210可以是生成所讨论的代码的编译器。

OS架构240、策略数据库121和配置工具220可以使用开发工具250预先配置。例如,开发工具250可以提供一组用于软件开发的API(应用编程接口)或插件模块。如本文所使用的,术语“接口”是指前面描述的进程接口。在一方面,OS架构240的至少一部分、来自策略数据库121的安全策略的一部分、以及配置工具220的一部分可以在不同的操作系统100之间共享(基于模板)。在这种共享的情况下,开发人员可以使用开发工具250、OS架构240和来自策略数据库121的安全策略来配置配置工具220。在一方面,开发人员可以向所讨论的模板添加模板中缺少的安全策略、OS架构对象240以及配置工具220,可能需要这些安全策略、OS架构对象240以及配置工具220来反映OS 100的特征或基于OS 100的开发系统的特征、以及OS 100或基于OS 100的开发系统的安全要求,其中,给定开发者为OS 100生成安全监控器120。此外,如果在OS100或OS开发系统100中不需要某些数据,则可以从所讨论的模板中删除这些数据。例如,可以删除某些安全策略和应用程序。

安全监控器120可以与OS的其他组件260一起被生成,并且还可以被并入操作系统100中。安全监控器120和OS组件260的上述并入可以使用本领域已知技术来实现。例如,安全监控器120和OS组件260可以在OS 100的编译阶段使用OS 100编译器、或通过在OS 100上安装安全监控器120而被并入。如前所述,安全监控器120可以是OS内核110的一部分或OS100的单独应用程序。安全监控器120可以在OS内核110上以特权模式运行。对于OS 100,还可以创建OS安装映像270来将OS 100安装在最终用户计算设备上。OS安装映像270可以是但不限于存档材料、可执行文件或安装包。安装包可以是存档文件,包括OS 100的文件、控制文件、以及可选地用于配置OS 100的安装进程的文件。此外,安装包可以包括基于OS 100的系统开发者文件。这些文件可以作为源代码、中间代码或可执行代码提供。

来自策略数据库121的安全策略可以使用诸如PSL(策略规范语言)的规范语言来定义。在PSL示例中,可以由策略类Mandatory_integrity_control定义强制完整性控制。安全策略的类(族)可以定义一组与安全策略中使用的模型的规则相匹配的规则。安全策略规范可以确定这些规则与系统中的通信的对应关系,这些系统中的通信可以通过在进程之间交换消息140来实现。对于每次通信尝试,即每次安全监控器120验证消息140时,安全监控器120可以应用这些规则来生成关于给定通信(消息140的传递)的有效性的决定150。为了使用策略类,可以基于策略类创建为其指定配置的策略对象。

图3A示出了示例系统图,其示出了用于将数据从第一网络310传送到第二网络350的网络网关300。在一方面,网关300可以实现为单独的计算机设备或硬件路由器。在另一方面,网关300可以实现为运行在通用计算机20的处理器上的虚拟机。网关300中使用的操作系统可以是OS 100(其示例在图1A-图1B中示出),并且可以包括实现为具有在网关300的处理器上运行的能力的安全监控器120。第一网络310可以是基于物联网的IS 340的内部网络。数据源311可以包括连接到第一网络310并连接到网关300的IS 340的设备,用于通过网关300也连接到的第二网络350将数据传送到数据目的地服务器351。数据目的地服务器351可以包括但不限于例如远程服务器。

由于网关300是基于OS 100的计算机设备,因此安全监控器120可用于控制与网关300的通信。在一方面,安全监控器120可实现为单独的计算机设备,例如图5所示的通用计算机20。安全监控器120可以被配置为控制网关300的软件组件之间的通信,所述软件组件可以以安装在网关300上的OS 100的服务、应用程序和进程的形式提供,并且可以被实现为具有在网关300的处理器上运行的能力。网关300的组件可以包括但不限于:第一网络接口卡(NIC)驱动器313、第一I/O系统314、源代理315、数据处理服务316、第一虚拟文件系统(VFS)317、数据存储驱动器320、第二VFS 356、目的地代理355、第二I/O系统354、和第二NIC驱动器353。在一方面,数据存储驱动器320可以存储在可信存储器331以及不可信存储器332中。在这种情况下,可信存储器331和不可信存储器332也可以是网关300的组件,这意味着它们可以包含被实现为具有在网关300的处理器上运行的能力的服务、应用程序和进程。同时,可信存储器331和不可信存储器332可以驻留在网关300的具有数据存储能力的机器可读介质上。

对于网关300的每个组件,可以在策略数据库121中定义安全策略,根据该安全策略,安全监控器120可以控制网关300的上述组件之间的每个通信。

网关300可以具有称为“安全”和“工作”的至少两种状态。“安全”状态可以指示目的地代理355允许访问可信存储器331并拒绝访问第二网络350和不可信存储器332。“工作”状态可以指示目的地代理355被拒绝访问可信存储器331,被允许访问第二网络350和不可信存储器332并且还被允许将数据从源代理315传送到目的地代理355,以及禁止将数据从目的地代理355传送到源代理315。例如,关于网关300的当前状态的信息可以存储在安全监控器120中。在另一方面,关于网关300的当前状态的信息可以存储在可信存储器331中或网关300的单独的暂时或永久的数据存储器中(图3中未示出)。因此,安全策略也可以取决于网关300的状态。例如,可以指定安全策略,在该安全策略下可以允许目的地代理355在网关300的“安全”状态下访问可信存储器331。可以存在拒绝目的地代理355在网关300的“工作”状态下访问可信存储器331的另一安全策略。关于安全策略的更详细信息将在下面描述。

由于网关300使用安全OS 100,因此网关300的上述组件可以使用IPC在它们本身之间进行通信。这些组件还可以通过使用软件接口通过消息140(也是IPC消息)的交换而与OS内核110通信。上述接口可以由进程实现,可以静态定义,并且可以预先定义进程之间允许的通信。进程131-132可以借助对OS内核110的系统调用来发送和接收消息。安全监控器120可以被配置为通过控制所讨论的消息140的传递来控制这些通信。关于安全OS 100和安全监控器120对IPC通信的控制的更多信息在前面结合图1A-图1B进行了描述。

根据一方面,安全监控器120可用于将网关300的状态设置为“安全”。“安全”状态可以指示目的地代理355被授权访问可信存储器331并拒绝访问第二网络350和不可信存储器332。为了实现这些许可和禁止,可以在策略数据库121中定义至少一个安全策略,在该至少一个安全策略下,在网关300的“安全”状态下,目的地代理355被允许访问可信存储器331并且被拒绝访问第二网络350和不可信存储器332。

应当注意的是,安全策略可以由网关300的管理员预先定义。此外,安全策略可以由安全监控器120在网关300的操作进程中定义。

可信存储器331可以包含对网关300和数据源311的安全操作至关重要的数据,例如用于向第二网络350传送数据的授权设置(包括但不限于登录名、密码、证书、对数据传送进程进行授权程所需的电子/数字签名)、网关300上的软件、网关300的各种组件的配置文件(设置)(特别是目的地代理355的设置)等。不可信存储器332可以包含对网关300和数据源311的安全操作不重要的数据。此类非关键数据可以包括但不限于:数据目的地服务器351的服务信息、目的地代理355的服务信息、以及用于存储要传送的数据的缓冲区。服务信息可以包括数据目的地服务器351以及安装在上述数据目的地服务器351上的应用程序和服务的授权信息。这样的授权数据可以包括例如访问API令牌。

在所示的情况下,目的地代理355可以被配置为与数据目的地服务器351建立通信,并且还可以被配置为将从源代理315接收的数据通过第二网络350传送到数据目的地服务器351。如果数据目的地服务器351是基于西门子MindSphere的云服务器,则目的地代理355的一个非限制性示例可以是Mind

源代理315可以被配置为例如使用OPC UA(统一架构)工业通信协议从数据源311接收来自第一网络310的上述数据。OPC是工业自动化领域和其他行业中安全且可靠的数据交换的互操作性标准。此外,倘若实施了来自策略数据库121的安全策略,则安全监控器120可以被配置为根据来自目的地代理355的请求提供对可信存储器331的访问。

目的地代理355可以被设计为基于来自可信存储器331的目的地代理355的参数被配置为网关300的“安全”状态。该配置可以由目的地代理355本身来执行。在一方面,目的地代理355可以由安全监控器120配置。目的地代理355的这种配置可以在网关300处于目的地代理355被允许访问可信存储器331并且被拒绝访问第二网络350和不可信存储器332的“安全”状态时执行。同时,可以使用第一VFS 317给予目的地代理355对可信存储器331的访问权。安全监控器120也可以在目的地代理355被配置之后,将网关300的状态改变为“工作”状态。同时,网关300的“工作”状态可以向目的地代理355指示其被拒绝访问可信存储器331,被允许访问第二网络350和不可信存储器332,以及允许从源代理315向目的地代理355传送数据并且禁止从目的地代理355向源代理315传送数据。为了实现这些许可和禁止,可以在策略数据库121中设置安全策略,根据该安全策略,在网关300的“工作”状态中,目的地代理355被拒绝访问可信存储器331并被允许访问第二网络350和不可信存储器332,而源代理315被允许将数据传送到目的地代理355并且目的地代理355不被允许将数据传送到源代理315。在这种情况下,在配置之前,目的地代理355可能未被提供上述许可和禁止。

在一方面,目的地代理355的指定配置可以包括但不限于准备授权请求,该授权请求包含到第二网络350上的数据目的地服务器351的授权参数(包括但不限于登录名、密码、证书、对数据传送进程进行授权程所需的电子数字签名)。因此,目的地代理355的配置结果可以包括上述授权请求。同时,在网关300的状态变为“工作”状态后,可以使用目的地代理355向数据目的地服务器351发送准备好的请求,以授权并建立用于后续数据传送的连接。在一方面,包含在可信存储器331中的目的地代理355的参数还可以包括要从第一网络310传送到第二网络350的数据列表。这样的列表可以包括但不限于:例如,仅来自数据源311的指定设备的数据、或指定数据类型的数据等。在该示例中,目的地代理355的配置可以可选地包括如下步骤:根据指定的参数配置数据过滤器以过滤(也处理)从源代理315接收到的数据。数据过滤器的配置可以包括但不限于根据目的地代理355的上述参数创建用于过滤接收到的数据的规则,以便后续仅将过滤后的数据传送到第二网络350。数据过滤器也可以是目的地代理355的一部分。

可以在安全监控器120的控制下使用源代理315和目的地代理355将数据从第一网络310传送到第二网络350。安全监控器120可以基于目的地代理355的配置实施来自策略数据库121的安全策略。在这种情况下,目的地代理355可以使用不可信存储器332来执行给定的数据传送。不可信存储器332可以包括但不限于接收方、即数据目的地服务器351的服务信息。

在一方面,可信存储器331和不可信存储器332可以是两个单独的数据存储器(机器可读介质)。在另一方面,可信存储器331和不可信存储器332可以是同一数据存储器330的位于数据存储器330的不同地址范围内的两个不同分区。数据存储器330可以包括但不限于例如,硬盘、闪存或其他机器可读数据存储介质。在这种情况下,对可信存储器331和不可信存储器332的访问可以实现为对各个设备的访问。因此,上述两个实施方式都可以在网关300中使用。为了便于说明,下面将考虑其中可信存储器331和不可信存储器332是同一数据存储器330的两个分区的第二方面。数据存储器330、并因此可信存储器331和不可信存储器332可以使用数据存储驱动器320来访问。数据存储驱动器320可以被配置为在安全监控器120的控制下并观察来自策略数据库121的安全策略来对数据存储器300执行I/O操作。

然而,第一VFS 317可以被配置为组织对网关300中的可信存储器331的访问(对文件的读取和写入访问),并且第二VFS 356可以被配置为组织对不可信存储器332的访问。可以定义允许所列出的通信并禁止其他通信的安全策略。换言之,可以为第一VFS 317分配仅引用对应于可信存储器331的、数据存储器300的存储器地址的第一范围的安全策略。类似地,可以为第二VFS 356分配仅允许引用对应于不可信存储器332的、数据存储器300的存储器地址的第二范围的安全策略。因此,根据安全策略,第一VFS 317可以被允许访问可信存储器331并且被拒绝访问不可信存储器332。第二VFS 356也可以被允许访问不可信存储器332并且被拒绝访问可信存储器331。

网关300还可以包含第一NIC 312,第一NIC 312可以被配置为提供到第一网络310的连接性。第一NIC 313的驱动器可以被配置为发送和接收来自第一NIC 312的设备、特别是来自数据源311的数据。在一方面,源代理315可以通过第一I/O系统314访问第一NIC驱动器313。可以定义允许这些通信并且禁止其他通信的安全策略。特别地,在网关300的“安全”和“工作”状态下,第一I/O系统314可以被允许访问第一NIC驱动器313和源代理315,而第一NIC驱动器313可以被允许访问第一I/O系统314并且还可以被允许通过第一NIC312从第一网络310上的数据源311接收数据。但是,可以禁止未指定的通信。

为了与第二网络350进行连接,网关300可以包含第二NIC 352。第二NIC驱动器353可以被配置为发送和接收来自第二网络350上的设备、特别是数据目的地服务器351的数据。在一方面,目的地代理355可以被配置为通过第二I/O系统354访问第二NIC驱动器352。在这种情况下,安全策略可以被定义为允许所列出的通信并禁止其他通信,特别是但不限于以下内容:

在网关300的“安全”状态下:对于第二I/O系统354和第二NIC驱动器353可能没有被允许的通信;

在网关300的“工作”状态下:第二I/O系统354可以被允许访问目的地代理355和第二NIC驱动器353,第二NIC驱动器352可以被允许访问第二I/O系统354,并且还可以允许与第二网络350上的设备进行数据交换(使用第二NIC 352);

可以禁止未指定的通信。

第一NIC 312和第二NIC 352可以是本领域中任何已知的或以后开发的网卡(包括但不限于网板、网络适配器、网络接口控制器)。第一NIC 312和第二NIC 352可以是分别用于网关300与第一网络310或第二网络350的其他设备之间的通信的设备。这种网卡的示例包括但不限于以太网适配器、Wi-Fi适配器、蓝牙适配器等。

在一方面,源代理315可以使用数据处理服务316通信地联接到目的地代理355。数据处理服务316可以用于从源代理315请求和接收数据以及随后向目的地代理355单向传送数据。应当注意的是,可以在策略数据库121中为数据处理服务316指定允许在网关300的“工作”状态下访问目的地代理355的安全策略。同时,对于目的地代理355,可以指定拒绝在网关300的“工作”状态下访问数据处理服务316的安全策略。该方案可以在网关300的“工作”状态下实现单向数据传送。然而,在网关300的初始化过程期间,当网关300处于“安全”状态时,目的地代理355可以被认为是网关300的可信组件并且可以被允许访问可信存储器331。

根据上述方面,包含在可信存储器331中的目的地代理355的参数可以包括但不限于要从第一网络310传送到第二网络350的数据列表。根据另一方面,数据处理服务316还可以被配置为获得目的地代理355的上述参数,然后配置数据过滤器来根据给定的参数过滤(处理)从源代理315接收的数据。在这种情况下,数据处理服务316可以在网关300的“安全”状态下从目的地代理355或通过源代理315从可信存储器331获得上述参数。在这两种情况下,在策略数据库121中都可以定义允许这些通信并禁止其他通信的安全策略。

数据过滤器的配置可以包括但不限于根据目的地代理355的上述参数创建用于过滤接收到的数据的规则,以便后续仅将过滤后的数据传送到第二网络350。数据过滤器可以是数据处理服务316的一部分。

数据处理服务316可以被配置为在网关300的“工作”状态下将已经过滤的数据传输到目的地代理355。该方案实现了在网关300的“工作”状态下使用数据处理服务316从源代理315到目的地代理355的单向数据传送。此外,在攻击者可能危害目的地代理355的情况下,攻击者将仅获得对过滤后的数据的访问权,而不是对源代理315接收的原始数据的访问权。同时,攻击者仍然可以通过危害第二网络350或数据目的地服务器351来访问过滤后的数据。因此,这方面进一步增强了第一网络310的数据安全性。

安全策略的描述

在特定方面,安全策略可以使用以下模型中的至少一者:基本操作;有限状态机;定时自动机;基于角色的访问控制;强制性完整性控制;正则表达式;离散事件系统(DES);对象能力模型;时间逻辑。

来自策略数据库121的安全策略可以使用规范语言来定义,规范语言例如但不限于PSL(策略规范语言)和可扩展访问控制标记语言(“XACML”)。在PSL示例中,可以由策略类finite_state_machine定义有限状态机。安全策略的类(族)可以定义一组与安全策略中使用的模型的规则相匹配的规则。安全策略规范可以确定这组规则与OS 100中的通信的对应关系,所述通信可以通过在对应于网关300的组件的进程之间交换消息140来实现。对于每次通信尝试,即每次当安全监控器120验证消息140时,安全监控器120都可以应用至少一个规则来生成关于给定通信(消息140的传递)的有效性的决定。为了使用策略类,可以由安全监控器120基于策略类创建为其指定配置的策略对象。

在一方面,对OS架构240的安全策略和对象的分析可以包括但不限于以下分析类型中的至少一种:词法分析、句法分析、语义分析。安全策略分析可以识别OS架构240的对象,特别是在消息140的交换中涉及的可以对其应用指定的安全策略的进程。换言之,安全监控器120可确定OS架构240中所识别的对象与应用于指定对象的安全策略之间的对应关系。例如,如果安全策略允许从第一进程131到第二进程132的请求142,则对该安全策略的分析可以识别具体进程131-132和关于被允许的请求142的信息。应当注意的是,由于该安全策略分析,可以进一步识别OS架构240的在指定的安全策略中通过验证的其他对象。例如,当消息140被发送到进程接口方法并将被传递到指定的进程接口时,安全监控器120可以识别该指定方法。在这种情况下,安全策略可以验证当在识别的进程之间交换消息140时,使用定义的进程接口和定义的接口方法的要求。

在可用于在策略数据库121中定义安全策略的PSL语言的示例中,对作为请求142的来源的第一进程131的引用可包含在变量“scr”中。对作为请求142的目的地的第二进程132的引用可以包含在变量“dst”中。因此,以PSL语言编写的来自策略数据库121的安全策略的上述分析可以允许识别可以应用指定安全策略的指定OS架构对象。

在另一方面,来自策略数据库121的安全策略的分析还可以包括检查OS架构240的对象的类型,以及分析来自策略数据库121的安全策略中的错误。

在生成安全监控器120时可以考虑上述分析的结果。例如,安全监控器120可以记录安全策略应用条件——OS架构240的对象列表。对象列表可以包括例如与该列表以及验证模块221相对应的进程和安全策略。因此,当从OS内核110接收到消息140时,生成的安全监控器120可以识别OS架构240的参与交换消息140的对象,然后可以确定应用于OS架构240的指定对象的安全策略。安全监控器120然后可以将对应于指定安全策略的消息140发送到验证模块221,以决定如何控制消息140的传递。

在一方面,可以通过构造安全监控器120的代码的句法树来执行句法分析。句法树可以包括由至少一个配置工具220生成的验证模块221的代码。

安全策略可以使用允许或拒绝传送消息140的基本操作,条件是消息140的参数(例如,要启动的进程的名称或要调用的方法的实际自变量)与安全策略中指定的数据匹配。例如,安全策略可以确定第一进程131可以接收任何消息,但不允许第一进程131发送消息。

在安全策略的一方面,可以使用有限状态机,其中有限状态机的状态可以是网关300的状态。安全策略可以根据有限状态机的状态和根据有限状态机的状态转变表确定是允许还是拒绝从网关300的一个组件访问网关300的另一个组件。

以下是示例性secure_gateway有限状态机的描述:

/>

secure_gateway有限状态机可以处于以下状态之一:“安全”(安全状态)、“工作”(操作状态)。secure_gateway有限状态机的状态可以对应于网关300的状态。有限状态机的转变表可以在“transitions(转变)”结构中表示。当secure_gateway有限状态机被初始化时,它可以处于“安全”状态。“安全”状态可以指示目的地代理355被允许访问可信存储器331并且被拒绝访问第二网络350和不可信存储器332。从“安全”状态,有限状态机可以只转变到“工作”状态。“工作”状态可以向目的地代理355指示它被拒绝访问可信存储器331并且被允许访问第二网络350和不可信存储器332。“工作”状态还可以指示从源代理315到目的地代理355的数据传送被允许,并且从目的地代理355到源代理315的数据传送被禁止。

在这种情况下,从“工作”状态,secure_gateway有限状态机可以仅转换到相同的“工作”状态,而不能返回到“安全”状态。

以下是可以使用secure_gateway有限状态机的目的地代理355(Agent_dst)的策略数据库121中的安全策略的示例。

根据上述安全策略,倘若secure_gateway有限状态机处于“安全”状态,则可以允许目的地代理355访问(“Read(读取)”方法)可信存储器331(Safe_storage)。

倘若secure_gateway有限状态机器处于“安全”状态,则该安全策略可以禁止目的地代理355(Agent_dst)例如借助第二I/O系统354(O_ext)访问(“Access(访问)”方法)第二网络350。

根据上述安全策略,倘若secure_gateway有限状态机处于“安全”状态,则可以拒绝目的地代理355访问(“Read”和“Write(写入)”方法)不可信存储器332(Unsafe_storage)。

security src=Secure_monitor,method=Confirm{

secure_gateway.enter[Work];

}

根据该安全策略,可以允许安全监控器120实施安全请求144以将secure_gateway有限状态机的状态改变(方法“确认”)为“工作”。在这种情况下,如果有限状态机的指定的状态改变与有限状态机的转变表相配,则安全监控器120也可以执行有限状态机的状态改变。

根据该安全策略,倘若secure_gateway有限状态机处于“工作”状态,则允许目的地代理355访问(方法“读取”和“写入”)不可信存储器332。

根据该安全策略,倘若secure_gateway有限状态机处于“工作”状态,则拒绝目的地代理355访问(“Read”和“Write”方法)可信存储器331。应当注意的是,如果安全监控器120根据“默认拒绝”模型应用安全策略,则该安全策略可以是可选的(即,不存在于策略数据库121中)。在这种情况下,如果策略数据库121在有限状态机处于“工作”状态时不具有允许目的地代理355访问可信存储器331的安全策略,则该访问将默认被拒绝。

根据该安全策略,倘若secure_gateway有限状态机处于“工作”状态,则允许目的地代理355从源代理315(Agent_src)接收数据(方法“Receive(接收)”)并且不允许向源代理315传送数据(方法“Transfer(传送)”)。

倘若secure_gateway有限状态机处于“工作”状态,则该安全策略允许目的地代理355例如借助第二I/O系统354访问(方法“Access”)第二网络350。

在安全策略的另一方面,可以使用定时自动机模型。例如,安全监控器120可以使用ERA类型(事件记录自动机)定时自动机。ERA自动机是有限状态机的一种特殊情况。在这个模型中,可以为每条消息设置额外的时间参数(定时器),等于自上次收到该消息以来的时间。例如,如果在定时器定义的时间之后接收到消息,则可能发生从一个有限状态机状态到另一种状态的转变。

强制完整性控制模型可用于允许或拒绝消息140的传递。根据强制完整性控制模型,使用安全监控器120,在消息140的传输中涉及的OS架构240的对象(例如,进程131-132)可以被映射到称为完整性等级和访问等级的两个数字。在该过程中,基于强制完整性控制的安全策略可用于基于对象的完整性等级和访问等级的值而允许将消息从一个对象传递到另一个对象。例如,如果第一对象的访问等级的值不小于另一个对象的完整性等级,则可以使用允许一个对象访问另一个对象的安全策略。在PSL规范语言中,可以为强制完整性控制模型定义完整性等级和访问等级。因此,要设置完整性等级,可以将“完整性”策略对象定义为Mandatory_integrity_control类的实例:

完整性策略对象配置可以按升序定义三个完整性等级:低、中和高。换言之,低<中<高。

基于对象能力模型的策略可以基于最小特权原则。这种资源访问组织原则意味着只有成功完成任务绝对必要的特权才会提供给主体(进程或用户)。例如,想要找出文件内容的用户应该只被授予对该文件的读取权限,并且仅在该文件的使用期间被授予。

在一方面,安全策略可以使用时间逻辑。要基于时间逻辑定义安全策略,可以基于时间逻辑公式并使用时间运算符来表述安全属性(要求)。使用安全监控器120,网关300的组件可以被映射到它们的来自一组预定事件的状态事件。对于网关300,该组事件可以包括但不限于以下:{read_safe,data_transfer},其中read_safe是目的地代理355访问可信存储器331的事件,data_transfer是通过从源代理315向目的地代理355进行的从第一网络310到第二网络350的数据传送事件。安全属性可以例如如下表述:

属性1.每当目的地代理355在网关300的“安全”状态下获得对可信存储器331的访问权时,应确保在网关300转变到“工作”状态之后,目的地代理355不应能够从可信存储器331读取数据。还应当确保仅当目的地代理355先前访问过可信存储器331时(即,发生了read_safe事件),目的地代理355才能访问不可信存储器332和外部网络350。此外,当发生read_safe事件时,可以保证允许将数据从源代理315传送到目的地代理355,并且可以禁止将数据从目的地代理355传送到源代理315。指定的属性可以写成公式:

G(data_transfer=>P read_safe),

其中G是时间运算符“always in the future(永远在未来)”,P是时间运算符“atleast once in the past(过去至少一次)”。

基于时间逻辑实现访问控制的策略类对象的构造可以以PSL语言实现为如下结构:

policy object tl_checker=TL{

config“G(data_transfer=>P read_safe)”

}

应当注意的是,属性1的其他表述是可能的。例如,属性1可以定义如下:直到目的地代理355访问可信存储器331(即,直到网关300的状态从“安全”转换为“工作”)才发生数据传送:

!data_transfer U read_safe,

其中U是时间运算符“until such time as the specified event occurs(直到指定事件发生的时间)”。

当将数据从第一网络310传送到第二网络350时,基于时间逻辑模型的策略可以将data_transfer事件与该进程间通信相关联,并且可以验证在策略对象配置中指定的公式的真实性。如果公式为真,则策略可以允许通信,如果为假,则策略可以禁止通信。

可以使用对应于策略的验证模块221来定义基于离散事件模型的策略。这些安全策略也可以用PSL规范语言来描述。这些安全策略可以应用于包含大量组件的开发系统。对于上述系统,具有离散事件的模型可以是由一组有限状态机的组合定义的合成有限状态机。每个有限状态机都可以描述系统的一个单独组件。对于每个有限状态机,当某些事件发生时,可以指示其状态集和状态之间的转变。合成有限状态机的状态可以由系统组件的有限状态机的状态的组合来确定。在这种情况下,可以例如通过有限状态机的同步或异步产生来实现指定的组合。对于合成有限状态机,也可以指定得到的有限状态机的允许转变列表、允许状态列表和禁止状态列表。因此,安全策略可用于验证系统组件以及得到的有限状态机到相应有限状态机的配置(配置可包括但不限于一组状态和转变)中定义的初始状态的转变、发生特定事件时状态之间的转变、相应有限状态机对指定状态之一的占用。

图3B示出了图3A的网关的系统图,其中指示了来自第二网络350的攻击者390对网关300的组件和第一网络310的计算机攻击的可能类型。例如,灰色填充指示可能被攻击者390攻击和危害的工具和模块。灰色箭头指示攻击者的攻击向量,而叉号指示当使用本文公开的网关300时不可能的攻击向量。

攻击者390可以直接攻击目的地服务器351或第二网络350。攻击者390然后可以攻击处理来自第二网络350的所有网络请求的NIC驱动器353和第二I/O系统354。攻击者390可以利用这些组件中的各种漏洞,执行DDoS攻击,执行未经授权的访问等。应当注意的是,通过区分网关300中与第一网络310和第二网络350相关的组件,还可以使用针对网关300的每个组件的安全策略来提高网关300的整体安全性。在一方面,可以将安全策略用于限制第二NIC驱动器353访问第二网络350上的设备的第二NIC驱动器353。例如,安全策略可以只允许访问目的地服务器351。即使指定的第二NIC驱动器353受到危害,基于策略数据库121中的安全策略,安全监控器120也可以不允许第二NIC驱动器353获得对第二网络350中的其他设备的访问权。

因此,在获得对第二I/O系统354的访问权之后,攻击者390可以继续对目的地代理355进行网络攻击。然而,攻击者390无法对数据处理服务316和源代理315中的任一者、或对第一VFS 317和可信存储器331发起攻击。攻击者390无法发起攻击,因为网关300可能处于拒绝目的地代理355访问源代理315和可信存储器331的工作状态。应当注意的是,当网关300刚刚启动并且处于“安全”状态时,可以认为目的地代理355是可信的并且可以拒绝目的地代理355访问第二网络350。因此,在网关300的“安全”状态下,攻击者390无法危害目的地代理355并对网关300的其他组件发起网络攻击。

同时,在网关300的“工作”状态下,已经危害了目的地代理355的攻击者390能够对第二VFS 356和不可信存储器332发起攻击。然而,攻击者390无法危害数据存储驱动器320,因此无法获得对可信存储器331的访问权。数据存储驱动器320可以通过以下事实而受到保护:特定驱动器由于数据存储驱动器320的受限功能而被认为是网关300的可信组件,因此可以对其进行验证以消除错误和漏洞。然而,在一方面,网关300可以包含两个数据存储驱动器,其中一个数据存储驱动器可以提供第一VFS 317对可信存储器的访问,而第二个数据存储驱动器可以提供第二VFS 356对不可信存储器332的访问。

关于攻击者390直接对网关300和第一网络310的可能攻击,网关300的架构可以防止这样的攻击。数据源311可以通过可以允许数据授权的数据传送协议(例如,OPC UA)而与源代理315相关联。因此,无法从数据源311以外的未经授权的数据源传送数据。此外,如果网关300位于工业信息系统的安全范围内,则这消除了对网关300的组件的物理攻击(例如,将未经授权的设备(例如闪存卡)连接到网关300)的可能性。

因此,本发明的各方面可以解决所述技术问题,即第一网络抵御来自第二网络的网络攻击的低保护水平。此外,本发明的各方面允许实现所述的技术结果。这些技术结果可以包括实现从第一网络310到第二网络350的单向数据传送,加强保护第一网络310免受来自第二网络350的网络攻击,以及加强保护网关免受来自第二网络350的网络攻击。

图4是示出用于将数据从第一网络传送到第二网络的方法的流程图的示例。

在步骤410中,安全监控器120可用于将网关300的状态设置为“安全”。在步骤420中,安全监控器120可以根据来自目的地代理355的请求提供对可信存储器331的访问。在一方面,可以检查来自策略数据库121的安全策略的实施要求。接下来,在步骤430中,安全监控器120或目的地代理355可用于基于来自可信存储器331的目的地代理355的参数、特别是用于向第二网络350传送数据的授权参数来配置目的地代理355。在配置目的地代理355之后,在步骤440中,安全监控器120可以将网关300的状态改变为“工作”。

结果,在步骤450中,来自第一网络310的数据通过从源代理315到目的地代理355而被从数据源311传送到第二网络350并到达数据目的地服务器351。可以在来自策略数据库121的安全策略被实施并且目的地代理355的配置结果被考虑时,由安全监控器120来控制该数据传送。在这种情况下,目的地代理355可以使用不可信存储器332来执行上述数据传送。不可信存储器332可以包括目的地代理355的服务信息。应当注意的是,前面针对图3A中的网关300描述的特定方面也适用于图4中所示的将数据从第一网络310传送到第二网络350的方法。

图5示出了可以在其上实现本文公开的系统和方法的不同方面的计算机系统的示例。计算机系统20可以表示图1A的安全监控器120,并且可以是多个计算设备的形式,或者也可以是单个计算设备的形式,例如台式电脑、笔记本电脑、手提电脑、移动计算设备、智能手机、平板电脑、服务器、主机、嵌入式设备和其他形式的计算设备。

如图所示,计算机系统20包括中央处理单元(Central Processing Unit,CPU)21、系统存储器22和连接各种系统部件的系统总线23,各种系统部件包括与中央处理单元21相关联的存储器。系统总线23可以包括总线存储器或总线存储器控制器、外围总线、以及能够与任何其他的总线架构交互的本地总线。总线的示例可以包括PCI、ISA、串行总线(PCI-Express)、超传送

计算机系统20可以包括一个或多个存储设备,诸如一个或多个可移除存储设备27、一个或多个不可移除存储设备28、或其组合。所述一个或多个可移除存储设备27以及一个或多个不可移除存储设备28通过存储器接口32连接到系统总线23。在一方面,存储设备和相应的计算机可读存储介质为用于存储计算机指令、数据结构、程序模块、和计算机系统20的其他数据的电源独立的模块。系统存储器22、可移除存储设备27和不可移除存储设备28可以使用各种各样的计算机可读存储介质。计算机可读存储介质的示例包括:机器存储器,诸如缓存、SRAM、DRAM、零电容RAM、双晶体管RAM、eDRAM、EDO RAM、DDR RAM、EEPROM、NRAM、RRAM、SONOS、PRAM;闪存或其他存储技术,诸如在固态驱动器(Solid State Drive,SSD)或闪存驱动器中;磁带盒、磁带、和磁盘存储器,诸如在硬盘驱动器或软盘中;光学存储器,诸如在光盘(CD-ROM)或数字通用光盘(Digital Versatile Disk,DVD)中;以及可用于存储期望数据且可被计算机系统20访问的任何其他介质。

计算机系统20的系统存储器22、可移除存储设备27和不可移除存储设备28可以用于存储操作系统35、附加应用程序37、其他程序模块38和程序数据39。计算机系统20可以包括用于传送来自输入设备40的数据的外围接口46,所述输入设备40诸如键盘、鼠标、手写笔、游戏控制器、语音输入设备、触摸输入设备、或其他外围设备,诸如借助一个或多个I/O端口的打印机或扫描仪,该一个或多个I/O端口诸如串行端口、并行端口、通用串行总线(Universal Serial Bus,USB)、或其他外围接口。显示设备47(诸如一个或多个监控器、投影仪或集成显示器)也可以通过输出接口48(诸如视频适配器)连接到系统总线23。除了显示设备47之外,计算机系统20还可以装配有其他外围输出设备(未示出),诸如扬声器和其他视听设备。

计算机系统20可以使用与一个或多个远程计算机49的网络连接而在网络环境中工作。所述一个或多个远程计算机49可以为本地计算机工作站或服务器,其包括前面在描述计算机系统20的性质时所述的元件中的大多数元件或全部元件。其他设备也可以存在于计算机网络中,诸如但不限于路由器、网络站点、对等设备或其他网络节点。计算机系统20可以包括用于通过一个或多个网络而与远程计算机49通信的一个或多个网络接口51或网络适配器,该一个或多个网络诸如计算机局域网(Local-Area Network,LAN)50、计算机广域网(Wide-Area Network,WAN)、内联网、和因特网。网络接口51的示例可以包括以太网接口、帧中继接口、SONET(同步光纤网)接口、和无线接口。

本发明的各个方面可以为系统、方法和/或计算机程序产品。计算机程序产品可以包括一种或多种计算机可读存储介质,该计算机可读存储介质上具有用于使处理器执行本发明的各方面的计算机可读程序指令。

计算机可读存储介质可以为有形设备,该有形设备可以保持且存储指令或数据结构的形式的程序代码,该程序代码可以被计算设备(诸如计算机系统20)的处理器访问。计算机可读存储介质可以为电子存储设备、磁性存储设备、光学存储设备、电磁存储设备、半导体存储设备、或其任何合适的组合。作为示例,这类计算机可读存储介质可以包括随机存取存储器(RAM)、只读存储器(ROM)、电可擦可编程只读存储器(EEPROM)、便携式光盘只读存储器(CD-ROM)、数字通用光盘(DVD)、闪存、硬盘、便携式电脑磁盘、记忆棒、软盘、或甚至机械编码设备,诸如在其上记录有指令的凹槽中的打孔卡或凸起结构。如在本文中所使用的,计算机可读存储介质不应被视为暂时性信号本身,暂时性信号诸如无线电波或其他自由传播的电磁波、通过波导或传送介质传播的电磁波、或通过电线传送的电信号。

可以将本文中所描述的计算机可读程序指令从计算机可读存储介质下载到相应的计算设备、或通过网络(例如,因特网、局域网、广域网和/或无线网络)下载到外部计算机或外部存储设备。该网络可以包括铜传送电缆、光学传送光纤、无线传送、路由器、防火墙、交换机、网关计算机和/或边缘服务器。在每个计算设备中的网络接口从网络接收计算机可读程序指令并转发该计算机可读程序指令,用以存储在相应的计算设备内的计算机可读存储介质中。

用于执行本发明的操作的计算机可读程序指令可以为汇编指令、指令集架构(Instruction-Set-Architecture,ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或以一种或多种编程语言(包括面向对象的编程语言和传统程序化编程语言)的任何组合编写的源代码或目标代码。计算机可读程序指令(作为独立的软件包)可以完全地在用户的计算机上、部分地在用户的计算机上、部分地在用户的计算机上且部分地在远程计算机上、或完全地在远程计算机或服务器上执行。在后一种情况中,远程计算机可以通过任何类型的网络(包括LAN或WAN)连接到用户的计算机,或可以进行与外部计算机的连接(例如通过因特网)。在一些实施方式中,电子电路(包括例如可编程逻辑电路、现场可编程门阵列(FPGA)、或可编程逻辑阵列(Programmable Logic Array,PLA))可以通过利用计算机可读程序指令的状态信息而执行计算机可读程序指令,以使该电子电路个性化,从而执行本发明的各方面。

在各个方面,本发明中所描述的系统和方法可以按照模块来处理。如本文中所使用的术语“模块”指的是例如现实世界的设备、部件、或使用硬件(例如通过专用集成电路(ASIC)或FPGA)实现的部件的布置,或者指的是硬件和软件的组合,例如通过微处理器系统和实现模块功能的指令集(该指令集在被执行时将微处理器系统转换成专用设备)来实现这样的组合。一个模块还可以被实现为两个模块的组合,其中单独地通过硬件促进某些功能,并且通过硬件和软件的组合促进其他功能。在某些实现方式中,模块的至少一部分(以及在一些情况下,模块的全部)可以在计算机系统的处理器上运行。因此,每个模块可以以各种适合的配置来实现,而不应受限于本文中所例示的任何特定的实现方式。

为了清楚起见,本文中没有公开各个方面的所有例行特征。应当领会的是,在本发明的任何实际的实现方式的开发中,必须做出许多特定实现方式的决定,以便实现开发者的特定目标,并且这些特定目标将对于不同的实现方式和不同的开发者变化。应当理解的是,这种开发努力会是复杂的且费时的,但对于了解本发明的优点的本领域的普通技术人员来说仍然是工程的例行任务。

此外,应当理解的是,本文中所使用的措辞或术语出于描述而非限制的目的地,从而本说明书的术语或措辞应当由本领域技术人员根据本文中所提出的教导和指导结合(一个或多个)相关领域技术人员的知识来解释。此外,不旨在将本说明书或权利要求中的任何术语归于不常见的或特定的含义,除非明确如此阐述。

本文中所公开的各个方面包括本文中以说明性方式所引用的已知模块的现在和未来已知的等同物。此外,尽管已经示出并描述了各个方面和应用,但是对于了解本发明的优点的本领域技术人员将明显的是,在不脱离本文中所公开的发明构思的前提下,相比于上文所提及的内容而言的更多修改是可行的。

技术分类

06120115928398