CN105934927B - 针对跨安全边界的sdn api调用的动态过滤 - Google Patents
针对跨安全边界的sdn api调用的动态过滤 Download PDFInfo
- Publication number
- CN105934927B CN105934927B CN201580004391.7A CN201580004391A CN105934927B CN 105934927 B CN105934927 B CN 105934927B CN 201580004391 A CN201580004391 A CN 201580004391A CN 105934927 B CN105934927 B CN 105934927B
- Authority
- CN
- China
- Prior art keywords
- filters
- api
- parameters
- network element
- call
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0245—Filtering by information in the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0263—Rule management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/16—Implementing security features at a particular protocol layer
- H04L63/168—Implementing security features at a particular protocol layer above the transport layer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computing Systems (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本文提出了用于减少网络元件关于恶意API调用的漏洞的技术。验证跨网络元件处的API边界的数据的一个或多个过滤器被动态地加载到该网络元件中,以使得使用一个或多个过滤器不需要重启该网络元件。针对API函数的API调用被接收,其中,API调用包含与API函数相关联的一个或多个参数值。这些参数可以利用一个或多个过滤器进行验证。如果确定一个或多个过滤器证实API函数的参数,则可以利用这些参数值执行API函数。如果确定一个或多个过滤器未证实API函数的参数,则API函数的执行可以被中止。
Description
技术领域
本公开涉及验证应用程序接口(API)调用。
背景技术
为了改变网络元件(例如,交换机、路由器、防火墙、虚拟交换机和路由器等)的配置设置,管理员通常会通过网络浏览器或直接登录设备。软件定义网络(SDN)提供了至网络元件的内部功能的应用程序接口(API),并且允许内部和外部应用“在运行中(on-the-fly)”动态地改变网络元件的行为和配置。
API暴露了本来从未意图或设计为被暴露的内部网络元件的功能。单个API调用可以访问若干个内部调用,这些内部调用本身可以调用其他的内部调用。因此,没有被设计为稳健地处理恶意输入的潜在的数百个内部设备调用可能接收到恶意输入。
附图说明
图1示出包括与控制器通信的一个或多个网络元件的示例性系统,并且这些网络元件可以配置有本文所述的动态API调用过滤和验证能力。
图2示出描绘利用动态过滤技术调用网络元件的API时的操作的一般示例性流程图。
图3示出用于验证API调用的参数的动态过滤技术的更详细的示例性流程图。
图4示出被配置为根据本文提出的技术验证API调用的参数的网络元件的示例性框图。
具体实施方式
综述
本文提出了用来减少网络元件关于恶意API调用的漏洞的技术。验证跨网络元件处的API边界的数据的一个或多个过滤器被动态地加载到该网络元件中,以使得利用一个或多个过滤器不需要重启该网络元件。针对API函数的API调用被接收,其中,API调用包含与API函数相关联的一个或多个参数值。可以利用一个或多个过滤器来验证这些参数。如果确定一个或多个过滤器证实该API函数的参数,则可以利用这些参数值执行该API函数。如果确定一个或多个过滤器未证实API函数的参数,则API函数的执行可以被中止。
示例实施例
首先参考图1,图1示出系统100,在系统100中,SDN控制器105或客户端110可以经由网络120与网络元件115(a)-115(f)通信。软件定义网络(SDN)是在其中将控制从硬件解耦并将控制给予软件应用(被称为控制器)的网络化方法。SDN控制器105可以从物理计算设备或者从虚拟的或基于云的计算资源操作。SDN控制器利用协议和标准(例如,思科系统的One Platform Kit(OnePK))来管理网络元件,以允许控制器指示或配置网络元件如何处理和路由分组。使用SDN控制器的管理员可以利用应用编程接口(API)调用通过网络改变任意网络元件的规则,并且可以优先化、去优先化以及阻止跨网络的特定类型的分组。
图1示出网络元件115(a)是物理网络交换机,而网络元件115(b)是物理网络路由器,它们两者都可以经由SDN API层135(a)-135(f)在网络120中接收和转发流量。网络元件115(c)是监视和控制哪些流量可以被转发到网络120的物理网络防火墙/安全装置。防火墙还可以在另一网络元件(例如,物理服务器115(f))上的软件中实现。网络120中可以存在任意数量的交换机、路由器和防火墙,它们都可以包含允许与SDN控制器105进行交互的相应的SDN API层135(a)-135(f)。
除了上文所述的物理元件之外,给定网络部署可以包括一个或多个虚拟交换机115(d)和虚拟路由器115(e)。每一个虚拟交换机115(d)和虚拟路由器115(e)可以被配置为管理一个或多个虚拟机125(尤其是虚拟网络和/或子网络(子网))的通信。每一个虚拟交换机115(d)可以由软件体现并且可以在物理服务器130上存储和执行。因此,虚拟交换机115(d)实现物理交换机设备的功能。类似地,每一个虚拟机125可以是在物理服务器130上存储和执行的软件并且可以实现类似于例如物理机115(f)的功能。虚拟机125被配置为经由网络120与其他虚拟机交换通信。应该理解的是系统100中可以存在托管任意数量的虚拟交换机、虚拟路由器和虚拟机的任意数量的物理服务器。
客户端110可以采用物理或虚拟计算设备的形式,并且可以通过网络120在网络元件115(a)-115(f)中的任意元件上发起API调用。这可以例如经由控制器(例如,SDN控制器105)发生。然而,元件115(a)-115(f)是示例性物理和虚拟网络元件,其他网络元件可以被配置为执行本文所提出的技术。
通常,网络元件被设计成需要网络管理员在本地或者在局域网上登录设备以改变该网络元件的配置或设置的封闭系统。受信任的管理员一般将经由命令行接口或浏览器接口来配置网络元件。这些配置会保持静态并且设备无法适应于变化的网络需求。SDN提供了可以通过局域网或广域网连接从任意位置被调用或者甚至可以从在网络元件内运行的应用中被调用的强大的API。SDN API调用进而可以调用多个内部操作系统功能以在给定网络设备上执行给定请求。这些调用进而可以影响操作环境中的其他调用。结果,之前不能直接利用网络元件的内部调用的外部用户通过使用API调用可以直接或间接地调用本来从未被设计为被暴露的数百个API函数。例如来自OnePK的大量API集合的单个API调用可以暴露数千个代码路径和功能。然而,客户端110和其他用户可能是恶意的,并且网络元件配置功能未必是针对鲁棒性构建的。虽然网络元件的鲁棒性通常随着时间被改善,但是网络元件的调用栈常常很庞大,因此不可能完成对所有路径的测试。此外,部署修复可能花费数月的时间,因此,需要可以被快速部署的允许保护设备免遭恶意调用的解决方案。
为了说明这些问题并且提出解决方案,图2示出描绘在调用网络元件的API时的动态过滤技术的操作的示例性流程图。在步骤205处,来自API调用的数据被接收。这可以是本地调用或者来自远程服务器,例如,来自控制器105或客户端110。调用可以利用套接字、进程间通信(IPC),并且可以利用传输层安全(TLS)等进行加密。在步骤210处,数据中的信息被解析。这可以包括API调用参考、API调用的参数、以及验证信息(例如,会话标识符(ID)或用户名和密码)。如果所有信息被正确解析,则过程继续。在步骤215处,解析出的信息被用于认证调用者以及验证API的调用者具有适当的授权来进行所请求的调用。如果调用者具有授权,则过程继续。如果调用者已经在被认证的路径中,则步骤215是可选的。在步骤220处,根据本文提出的技术,动态过滤器被应用于API调用。操作220的细节在下文结合图3进行描述。在步骤225处,如果过滤器没有发现错误,则所请求的API调用可以利用提供的参数被调用,并在必要时调用底层操作系统、路由器、交换机或网络元件调用。
如先前所讨论的,API调用中包含的信息可能是不受信任的。为了防止错误的或恶意的调用被执行,API调用可以在没有步骤220的动态过滤器的情况下被验证,但是这种验证可能是不完善的。例如,在认证步骤215中,网络元件可能不能正确地核查信息,从而允许攻击者利用系统。授权信息可能是恶意的。例如,API调用可能在用户名字段中具有JaveScript,或者可能在数字证书信息中存在缓冲溢出等。另一个问题是步骤225处的API调用正作用于它必须核查的数据。如果系统没有正确地验证API调用信息,则系统可能被不当利用(exploit)。不当利用可能是在API调用本身中或者可能在它所调用的、路由器或交换机的功能中的一个功能中。
另一个问题是简化复杂性。步骤205-225可以被移植到多个网络元件中。如上文提到的,单个API可能触及数百个特定于底层平台的功能调用。再加上网络元件通常不被整体设计成外部稳健(即,坚固的)的事实,保证网络元件固件中没有不当利用几乎是不可能的。API集合(例如,思科系统的OnePK所包含的API集合)过于庞大以致于黑客和其他恶意用户很可能找到利用参数中的不正确数据的方式,以导致例如泛滥的不当利用、权限提升、或者单纯地导致网络元件崩溃。提升权限在用户能够通过恶意输入提升他们的访问等级时发生。例如,低级用户通常只能访问状态信息API,但是可能能够获得对管理网络元件的操作设置的更高级的API的访问。甚至享有高权限的用户可能能够通过不当利用来获得更高的根状态。
即使黑客和其他恶意用户有可能发现使用API调用的安全问题,但是对网络元件进行安全修复即使不需要超过一年的时间来部署,也可能花费数月的时间。此外,网络元件用户在执行他们自己的测试时可能推迟采纳网络元件固件更新。在此期间,网络元件制造商的名声可能大大受损。此外,网络元件用户可能决定完全不采纳固件更新(例如,安全修复),因为在用户端/客户端上进行测试和验证的成本可能相当高。因此,需要步骤220的动态过滤来保护网络设备和元件。
图3中的流程图的操作流程更加详细示出了动态过滤功能。在步骤305处,一个或多个过滤器可以被加载到网络元件中。过滤器可以是包含用来验证接收到的API调用的指令的软件,或者它可以是指示一个或多个API调用、参数、以及过滤器类型和值的数据文件。当网络元件被启动、重启、重新加载时,或者当被指示进行加载时,解决网络元件上的一个或多个已知漏洞的一个或多个过滤器可以被加载。每一个过滤器可以针对特定的API调用以及针对特定的API调用参数。过滤器可以经由与SDN控制器105通信的网络元件上的SDNAPI 135(a)-135(f)被加载。可替换地,经由SDN API加载过滤器可能被用户或管理员禁用。因为在给定网络元件上可能存在安全漏洞,这些漏洞可以被用来加载恶意的或不期望的过滤器、或者删除现有的过滤器。可替换地,可以要求能够利用动态过滤器的给定网络元件的用户或管理员使用非SDN和非API方法(例如,命令行接口(CLI))来加载过滤器。
在步骤310处,包含API调用的原始缓冲数据(可能来自本地或远程来源)被接收。缓冲数据可以使用套接字、IPC,并且可以利用TLS等进行加密。在步骤315处,过滤器可以首先在解析数据层处被加载并且被应用,以便于检查可以不当利用数据解析漏洞的畸形数据(例如,畸形字符串)。如果过滤器没有检测到问题,则缓冲数据被解析。经解析的缓冲数据可以包括API调用本身、API调用的参数、以及认证信息(例如,会话标识符(ID)、用户名和密码)。在解析出API调用后,API调用值可以被用于识别该API调用。通过利用API调用识别,相关联的过滤器还可以被加载和应用于检查API调用中的畸形数据。步骤315中的过滤器是可选的,并且用于被识别的特定API调用的过滤器可以优先于用于原始缓冲数据的过滤器被执行以减少计算成本。如果对于缓冲数据或API调用本身,信息被正确解析并且没有检测到畸形数据,则流程进行至授权步骤320。
在步骤320处,解析出的信息被用于认证调用者以及验证该调用者具有适当授权来进行所请求的调用。如果调用者已经在被认证的路径中,则该功能模块是可选的。过滤器可以与该步骤相关联,以便于在认证层中查找恶意信息。如果认证和授权通过,并且任意相关联的过滤器也在没有错误的情况下通过,则流程进行至步骤325。
在步骤325处,在调用API函数之前,系统进行检查以查看是否存在与API调用参数相关联的、已加载的动态过滤器。过滤器是动态的,因为它们不一定被硬编码在操作系统映像中。相反,它们可能从过滤器文件或过滤器数据存储中被动态地加载。如果在过滤器集合文件中不存在用于API函数的相关联的过滤器,则API函数可以在步骤350处被直接调用。通过这种方式,在没有相关联的过滤器的情况下处理和时间开销是最少的。如果存在与API调用相关联的过滤器,则系统可以逐参数地应用过滤器。当一个或多个过滤器与给定参数相关联时,这些过滤器可以是串联(in-line)的并且无旁路(non-bypassable)。因此,用户不可能在API调用过程中绕过对过滤器的应用。在步骤330处,如果存在用于给定参数的相关联的过滤器,则过滤器被执行以在步骤335处验证API调用参数。在步骤340处,如果存在尚未检查的另外的参数,则流程返回至步骤330,并且重复执行与API调用的任意剩余的参数相关联的任意剩余的过滤器。通过这种方式,一个或多个过滤器可以被应用于API调用的一个或多个参数中的每一个参数。
在步骤345处,如果在迭代的参数过滤器检查过程中的任意点处存在过滤器违规,则流程进行至步骤355并且API函数不可以被调用。如果不存在过滤器违规,则网络元件的API函数可以在步骤350处被调用。如上文提到的,这些过滤器可以动态地和自动地从文件或数据存储中被加载,并且它们可以是临时的。当随着安全修复发布了针对网络元件的新的固件映像时,相关联的过滤器可以被自动移除。
过滤器应用可以是可选的。当在“野外”由客户端或其他用户发现或者在网络元件供应商公司内部发现漏洞时,可以准备好过滤器并提供给每一个网络元件客户端用户。网络元件可以联系供应商以取回列表或者取回所有可用的过滤器和相关联的信息。然后,客户端用户可以决定他们是否希望自动应用过滤器。过滤器可以利用可扩展标记语言(XML)来写,但是还设想到其他的格式并将它们纳入本文提出的技术的精神和范围内。过滤器可以在数小时或数天内被准备好,从而避免与对网络元件映像的固件更新相关联的长时间帧。
过滤器还可以作为进行参数检查的独立可插模块被输入。这些模块可以是动态可加载的软件而不是可加载的验证规则。在这种实施例中,系统具有API层可以加载的钩子。这将允许过滤器在运行中被动态地加载。
过滤器可以施行各种输入请求。例如,给定参数可能有最小整数值或最小字符串长度、或最大整数值或字符串长度。可能存在要检查的、被直接认定为有效、无效、或者与另外的逻辑相关联的一个或多个特定的整数或字符串值。过滤器还可以包含字符串需要符合以被接受的一个或多个正则表达式白名单。过滤器还可以包括一个或多个正则表达式黑名单,如果输入字符串与正则表达式黑名单匹配,则验证自动失败。其他类型的过滤器也将符合本文提出的技术。
现在将进一步详细描述在图3中讨论的示例性步骤。进行API调用的用户可以是SDN控制器105或诸如客户端110之类的任意用户。API层可以在物理和虚拟元件115(a)-115(f)上存在。API层可以使用类似于Corva的接口描述语言(IDL),但是根据本文提出的技术其他语言也是可行的。IDL通告函数的内容。示例性API函数如下所示:
上文所示的API函数示例具有三个参数,每一个参数可以与一个或多个过滤器相关联。如所示,函数getSomeInfoIDL()具有参数session(会话)、severity(严重性)和message(消息)。如关于步骤325所讨论的,如果没有与API函数getSomeInfoIDL()相关联的过滤器,则可能只需要进行简单的布尔(Boolean)检查,以便最小化开销。例如:
如先前所讨论的,如果不存在过滤器,则流程可以进行至步骤350以调用API函数。如果确实存在过滤器,则可以对逐个参数迭代地执行过滤器。再次注意,简单的布尔检查可以被用于只验证具有相关联的过滤器的参数,这有助于最小化开销。例如:
上述代码可以首先针对每一个给定参数检查是否存在过滤器,然后迭代执行与给定参数相关联的每一个过滤器。在所示示例中,对于整数参数,validate_int函数被调用,而对于字符串参数,validate_string函数被调用。对于这些验证函数中的每一个验证函数来说,第一参数是参数的值,第二参数是参数过滤器。在所示示例中,验证变量可以记录是否存在过滤器违规。在执行了与一个或多个参数中的每一个参数相关联的一个或多个过滤器后,如果验证变量增大,则过滤器肯定已经违规,因此函数中断并且API函数不会被调用。
示例性validate_int函数是:
在本示例中,“return 1(返回1)”表示已经存在过滤器违规,所以该函数可以向getSomeInfoIDL()发回已经存在验证错误的报告,这会阻止API函数被调用。相反地,“return 0(返回0)”表示针对该参数不存在过滤器违规。上述黑名单条件句示例检查不被许可的数字的精确匹配。这种条件句还可以针对每一个列入黑名单的值进行迭代循环。如先前所讨论的,迭代施行正则表达式白名单和黑名单的另外的过滤器也是可行的。较为耗费计算的过滤器(例如,正则表达式)可以被最后执行,以便于将效率最大化并且将计算成本最小化。
过滤器还可以例如通过测量中央处理单元(CPU)的影响被基准化,从而在决定是否实施过滤器时向客户端用户/顾客提供更多的信息。客户端用户可以选择当新近可用的过滤器可用时将它们加载到每一个网络元件中的设置。客户端还可以定期地检查来自供应商的更新,并且按照需要选择性地加入可用的过滤器。供应商还可以主动向客户端用户通知当前未用于给定网络元件的可用的和推荐的过滤器。此外,所有过滤器更新可以被直接应用于网络元件。
过滤器甚至还可以由客户端用户定义,从而允许他们按需要限制或允许可能的SDN使用。例如,特定的API调用可以运行命令行上的字符串。客户端用户可能不希望命令行上所有可能的字符串都是可用的。因此,客户端用户可以定义白名单过滤器,以仅允许一个或若干个预定的输入被执行。例如,“Sudo”是允许以根权限执行命令的Linux命令行。基于Linux的网络元件上的SDN API可以具有允许执行命令行字符串的API调用。网络运营商可能具有有限的用户简档以允许简单的命令行调用,但可能希望限制“sudo”调用。过滤器可以被加入命令行执行、API调用以过滤寻找命令“sudo”的执行字符串。另一网络运营商可能想要阻止访问API调用的子集。运营商可以为每一个API调用创建过滤器,以过滤出API调用本身或者设置过滤器以使得无论字段中的一个字段的值是什么,它都不能进行验证。例如,如果存在基于无符号整数(0或更大)的会话标识符,不允许0或更大值的过滤器将阻止实现API调用。这些限制还可以帮助客户端用户获得增强的网络元件性能,因为具有高性能成本的API函数可以被限制。因此,可以为网络元件动态添加此类过滤器以锁定不想要的SDNAPI访问。
所提供的另一技术是监视和记录/记载在给定网络元件处接收到的所有API调用。单个API调用可以被证实并且不会造成安全风险,但是单个有效的API调用的某些组合和排序可能一起造成威胁是有可能的。例如,以特定顺序接收的三个API调用可能导致网络元件关闭或软件崩溃。因此,过滤器可能不只需要监控进入的API调用,还需要监控接收到的API调用的历史,以识别造成潜在威胁的序列。如果最后的API调用以已知的威胁序列被接收,则最后的API调用可以被丢弃,即相关联的API函数不被执行。威胁序列中的一个或多个API调用可以被类似地丢弃。
还有可能是下述情况,给定的一系列API调用未必构成威胁,但当该系列API调用的参数具有给定值或已知范围的值时可能构成威胁。虽然具有给定参数的这些API调用通常可能不会令人担忧,但是如果按给定序列进行调用,则可能发生崩溃。因此,过滤器可以定义可能造成安全风险的API调用序列和相关联的参数值。例如,过滤器可以要求如果特定序列的三个API调用被接收,其中第二个调用具有特定的参数值,并且第三个调用具有特定范围的参数值,则这三个API调用中的一个或多个调用可以被丢弃。
图4示出被配置为执行本文提出的技术的物理网络元件(例如,元件115(a)-115(c)、130和115(f))的示例性框图。网络元件400包括多个网络端口405、网络处理器专用集成电路(ASIC)单元410、处理器415和存储器420以及其他组件。端口405被配置为接收网络通信(例如,分组)和发送网络通信。端口被耦合于网络处理器ASIC 410。网络处理器ASIC410使得能够在网络中转发由网络元件400接收到的分组。例如,当网络元件400在第一端口处接收分组时,网络处理器ASIC 410确定分组应该在其上被转发至网络中的第二端口。也就是说,如果在第一端口处接收到来自服务器1的分组,则网络处理器ASIC 410可以确定将该分组转发到第二端口,该第二端口可能服务服务器2。
网络处理器ASIC 410被耦合于处理器415。例如,处理器415是被配置为执行用于实现如上文所述的网络元件设备400的各种操作和任务的程序逻辑指令(例如,软件)的微处理器或微控制器。处理器415的功能可以由在一个或多个有形计算机可读存储介质或设备(例如,存储设备,光盘、数字视频光盘、闪速存储器驱动等,以及嵌入式逻辑,诸如ASIC、数字信号处理器指令、由处理器执行的软件等)中编码的逻辑实现。
存储器420可以包括只读存储器(ROM)、随机访问存储器(RAM)、磁盘存储介质设备、光存储介质设备、闪速存储器设备、电的、光的、或其他物理/有形(非暂态)的存储器存储设备。存储器420存储API过滤器425、过滤处理逻辑430、以及SDN API 135的数据/信息和软件指令,当由处理器415执行时,它们都包含用于实现本文提出的技术的指令。SDN API135可以与端口405交互以发送和接收数据,并且可以接收可能使网络元件中的相关联的API函数被执行的API调用。因此,一般来说,存储器420可以包括编码有包括计算机可执行指令的软件的一个或多个计算机可读存储器介质(例如,存储器存储设备),并且当软件被(例如,由处理器415)执行时,它可操作来执行本文所述的针对过滤器425和过滤器处理逻辑430的技术。此外,存储器420可以存储针对虚拟交换机115(d)和虚拟路由器115(e)的虚拟机的指令。进而每一个虚拟网络元件(例如,虚拟交换机115(d)和虚拟路由器115(e))可以具有在它们的存储器存储中的它自己的API过滤器425和过滤处理逻辑430。
API过滤器425、过滤器处理逻辑430、以及SDN API 135可以采用各种形式中的任意形式,例如,固定逻辑或可编程的逻辑(例如,由处理器执行的软件/计算机指令),以便于被编码在一个或多个计算机可读存储介质或存储设备中用于执行。处理器415可以是包括固定数字逻辑或其组合的ASIC。
因此,提供了支持SDN架构并且允许在数小时内而非数月内部署API函数修复的解决方案。这通过避免加快固件修复来将供应商的成本降至最低,并且允许网络运营商快速地保护他们的环境。输入验证可以与处理协调发生,并且不要求类似于反病毒(AV)引擎的单独监视器。过滤器可以在网络元件持续地运行和提供服务的同时被动态加载,而不需要像传统安全更新要求那样重启网络元件。此外,这种解决方案不要求添加或插入新的可执行函数。也就是说,不需要加载运行的代码,不需要改变网络元件的源代码,也不需要加载新的网络元件的固件映像。此外,网络运营商/用户/顾客可以选择应用哪些过滤器,并且可以根据每个网络元件或者每个网络元件类型来应用它们。每一个过滤器可以被严格地定制为解决特定的缺点和安全漏洞。此外,首先可以应用具有最低计算成本的过滤器,接下来应用具有较高计算成本的过滤器。因此,从存储器、CPU利用和处理时间的角度来看,这种解决方案的效率更高。
总之,提供了一种方法,包括:动态地加载验证跨网络元件中的应用程序接口(API)边界的数据的一个或多个过滤器,以使得使用一个或多个过滤器不需要重启网络元件;接收针对API函数的API调用,其中,API调用包含与API函数相关联的一个或多个参数值;使用一个或多个过滤器来验证参数;如果确定一个或多个过滤器证实API函数的参数,则使用这些参数值执行API函数;以及如果确定一个或多个过滤器未证实API函数的参数,则中止API函数的执行。
还提供了一种装置,包括:多个网络端口;被耦合于多个网络端口的网络处理器单元;以及被耦合于网络处理器单元的处理器。该处理器被配置为执行以下操作:动态地加载验证跨应用程序接口(API)边界的数据的一个或多个过滤器,以使得使用一个或多个过滤器不需要重启网络元件;接收针对API函数的API调用,其中,API调用包含与API函数相关联的一个或多个参数值;使用验证穿过网络元件的API边界的数据的一个或多个过滤器来验证参数;如果确定一个或多个过滤器证实API函数的参数或者没有相关联的过滤器,则利用这些参数值执行API函数;以及如果确定一个或多个过滤器未证实API函数的参数,则中止API函数的执行。
提供了一种编码有包括计算机可执行指令的计算机可读存储介质,并且当软件被执行时能操作来执行以下操作:动态地加载验证跨应用程序接口(API)边界的数据的一个或多个过滤器,以使得使用一个或多个过滤器不需要重启网络元件;接收针对API函数的API调用,其中,API调用包含与API函数相关联的一个或多个参数值;使用验证穿过网络元件的API边界的数据的一个或多个过滤器来验证这些参数;如果确定一个或多个过滤器证实API函数的参数或者没有相关联的过滤器,则使用参数值执行API函数;以及如果确定一个或多个过滤器未证实API函数的参数,则中止API函数的执行。
虽然本文所述的技术被体现在一个或多个示例中,但是并非意图受限于所示细节,因为在权利要求的等同物的范围内可以对其进行各种修改和结构性变化。因此,应该理解所附权利要求可以由权利要求书所提出的内容进行更广义的解释。
Claims (20)
1.一种用于应用程序接口(API)调用的方法,包括:
在网络元件中动态地加载验证跨API边界的数据的一个或多个过滤器,以使得使用所述一个或多个过滤器不需要重启所述网络元件;
接收针对API函数的API调用,其中,所述API调用包含与所述API函数相关联的一个或多个参数值;
使用所述一个或多个过滤器来验证这些参数;
如果确定所述一个或多个过滤器证实所述API函数的所述参数,则使用所述参数值执行所述API函数;以及
如果确定所述一个或多个过滤器未证实所述API函数的所述参数,则中止所述API函数的执行。
2.根据权利要求1所述的方法,还包括:向用户呈现与加载所述一个或多个过滤器相关联的性能成本数据;
从所述用户接收针对是否加载所述一个或多个过滤器的确认;以及仅根据是否从所述用户接收到确认来加载所述一个或多个过滤器。
3.根据权利要求1所述的方法,还包括:
响应于接收到所述API调用,应用一个或多个过滤器来识别所述API调用中的畸形数据;
响应于确定在所述API调用中不存在畸形数据,解析所述API调用以确定所述参数值。
4.根据权利要求3所述的方法,还包括:
解析所述API调用以确定授权值;以及
应用一个或多个过滤器来识别恶意授权值。
5.根据权利要求1所述的方法,其中,对所述一个或多个过滤器的加载由软件定义网络控制器发起以将所述一个或多个过滤器下载至所述网络元件。
6.根据权利要求1所述的方法,其中,所述一个或多个过滤器包括正则表达式黑名单过滤器和正则表达式白名单过滤器中的至少一者。
7.根据权利要求1所述的方法,还包括:
监视多个API调用;以及
响应于在所述多个API调用中识别出在所述一个或多个过滤器中定义的造成安全风险的序列,从所述多个API调用中丢弃一个或多个API调用。
8.根据权利要求1所述的方法,其中,验证所述API调用还包括:
如果确定存在与所述API函数相关联的一个或多个过滤器,则确定是否存在与所述一个或多个参数相关联的一个或多个过滤器;以及
如果确定存在与所述一个或多个参数相关联的一个或多个过滤器,则使用这些相关联的一个或多个过滤器来验证所述API参数。
9.根据权利要求1所述的方法,还包括:
接收针对所述网络元件的固件更新以修复与已经被加载到所述网络元件中的一个或多个过滤器相关联的安全漏洞;以及
响应于接收到所述固件更新,移除与所述安全漏洞相关联的过滤器。
10.一种用于应用程序接口(API)调用的装置,包括:
多个网络端口;
被耦合于所述多个网络端口的网络处理器单元;
被耦合于所述网络处理器单元的处理器,并且所述处理器被配置为执行以下各项操作:
动态地加载验证跨API边界的数据的一个或多个过滤器,以使得使用所述一个或多个过滤器不需要重启网络元件;
接收针对API函数的API调用,其中,所述API调用包含与所述API函数相关联的一个或多个参数值;
使用验证穿过网络元件的API边界的数据的一个或多个过滤器来验证所述参数;
如果确定所述一个或多个过滤器证实所述API函数的所述参数或者没有相关联的过滤器,则使用所述参数值执行所述API函数;以及
如果确定所述一个或多个过滤器未证实所述API函数的所述参数,则中止所述API函数的执行。
11.根据权利要求10所述的装置,其中,所述处理器还被配置为执行以下操作:
向用户呈现与加载所述一个或多个过滤器相关联的性能成本数据;
从所述用户接收针对是否加载所述一个或多个过滤器的确认;以及
仅根据是否从所述用户接收到确认来加载所述一个或多个过滤器。
12.根据权利要求10所述的装置,其中,所述处理器还被配置为执行以下各项操作:
响应于接收到所述API调用,应用一个或多个过滤器来识别所述API调用中的畸形数据;
响应于确定所述API调用中不存在畸形数据,解析所述API调用以确定所述参数值。
13.根据权利要求10所述的装置,其中,所述处理器还被配置为执行以下各项操作:
监视多个API调用;以及
响应于在所述多个API调用中识别出在所述一个或多个过滤器中定义的造成安全风险的序列,从所述多个API调用中丢弃一个或多个API调用。
14.根据权利要求10所述的装置,其中,所述处理器还被配置为执行以下各项操作:
如果确定存在与所述API函数相关联的一个或多个过滤器,则确定是否存在与一个或多个参数相关联的一个或多个过滤器;以及
如果确定存在与所述一个或多个参数相关联的一个或多个过滤器,则使用该相关联的一个或多个过滤器来验证所述参数。
15.根据权利要求10所述的装置,其中,所述处理器还被配置为执行以下各项操作:
接收针对所述网络元件的固件更新以修复与已经被加载到所述网络元件中的过滤器相关联的安全漏洞;以及
响应于接收到所述固件更新,移除与被修复的安全漏洞相关联的过滤器。
16.一种被编码有包括计算机可执行指令的软件的计算机可读存储介质,并且当所述软件被执行时能操作来执行以下各项操作:
动态地加载验证跨应用程序接口(API)边界的数据的一个或多个过滤器,以使得使用所述一个或多个过滤器不需要重启网络元件;
接收针对API函数的API调用,其中,所述API调用包含与所述API函数相关联的一个或多个参数值;
使用验证穿过网络元件的API边界的数据的一个或多个过滤器来验证所述参数;
如果确定所述一个或多个过滤器证实所述API函数的所述参数或者没有相关联的过滤器,则使用所述参数值执行所述API函数;以及
如果确定所述一个或多个过滤器未证实所述API函数的所述参数,则中止所述API函数的执行。
17.根据权利要求16所述的计算机可读存储介质,还包括能操作来执行以下各项操作的指令:
向用户呈现与加载所述一个或多个过滤器相关联的性能成本数据;
从所述用户接收针对是否加载所述一个或多个过滤器的确认;以及
仅根据是否从所述用户接收到确认来加载所述一个或多个过滤器。
18.根据权利要求16所述的计算机可读存储介质,还包括能操作来执行以下各项操作的指令:
响应于接收到所述API调用,应用一个或多个过滤器来识别所述API调用中的畸形数据;
响应于确定所述API调用中不存在畸形数据,解析所述API调用以确定所述参数值。
19.根据权利要求16所述的计算机可读存储介质,还包括能操作来执行以下各项操作的指令:
如果确定存在与所述API函数相关联的一个或多个过滤器,则确定是否存在与所述一个或多个参数相关联的一个或多个过滤器;以及
如果确定存在与所述一个或多个参数相关联的一个或多个过滤器,则使用所述一个或多个过滤器来验证所述API调用参数。
20.根据权利要求16所述的计算机可读存储介质,还包括能操作来执行以下各项操作的指令:
监视多个API调用;以及
响应于在所述一个或多个过滤器中定义的所述多个API调用中识别到造成安全风险的序列,从所述多个API调用中丢弃一个或多个API调用。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/153,742 | 2014-01-13 | ||
US14/153,742 US9258315B2 (en) | 2014-01-13 | 2014-01-13 | Dynamic filtering for SDN API calls across a security boundary |
PCT/US2015/010212 WO2015105758A1 (en) | 2014-01-13 | 2015-01-06 | Dynamic filtering for sdn api calls across a security boundary |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105934927A CN105934927A (zh) | 2016-09-07 |
CN105934927B true CN105934927B (zh) | 2020-01-17 |
Family
ID=52359015
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580004391.7A Active CN105934927B (zh) | 2014-01-13 | 2015-01-06 | 针对跨安全边界的sdn api调用的动态过滤 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9258315B2 (zh) |
EP (1) | EP3095224B1 (zh) |
CN (1) | CN105934927B (zh) |
WO (1) | WO2015105758A1 (zh) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2463228C (en) | 2003-04-04 | 2012-06-26 | Evertz Microsystems Ltd. | Apparatus, systems and methods for packet based transmission of multiple data signals |
US9661013B2 (en) * | 2014-05-30 | 2017-05-23 | Ca, Inc. | Manipulating API requests to indicate source computer application trustworthiness |
US10050935B2 (en) * | 2014-07-09 | 2018-08-14 | Shape Security, Inc. | Using individualized APIs to block automated attacks on native apps and/or purposely exposed APIs with forced user interaction |
US10510016B2 (en) * | 2014-11-17 | 2019-12-17 | Optimitive S.L.U. | Methods and systems using a composition of autonomous self-learning software components for performing complex real time data-processing tasks |
US10439908B2 (en) | 2014-12-23 | 2019-10-08 | Talari Networks Incorporated | Methods and apparatus for providing adaptive private network centralized management system time correlated playback of network traffic |
US10693901B1 (en) * | 2015-10-28 | 2020-06-23 | Jpmorgan Chase Bank, N.A. | Techniques for application security |
TWI575401B (zh) * | 2015-11-12 | 2017-03-21 | 財團法人資訊工業策進會 | 行動裝置及一種適用於行動裝置的監控方法 |
US9823950B1 (en) | 2016-08-16 | 2017-11-21 | International Business Machines Corporation | Dynamically forming and executing application programming interface pipelines |
US10558467B2 (en) | 2017-03-30 | 2020-02-11 | International Business Machines Corporation | Dynamically generating a service pipeline comprising filtered application programming interfaces |
US10581684B2 (en) | 2017-12-06 | 2020-03-03 | Schweitzer Engineering Laboratories, Inc. | Network management via a secondary communication channel in a software defined network |
US10853457B2 (en) * | 2018-02-06 | 2020-12-01 | Didi Research America, Llc | System and method for program security protection |
US10756956B2 (en) | 2018-03-05 | 2020-08-25 | Schweitzer Engineering Laboratories, Inc. | Trigger alarm actions and alarm-triggered network flows in software-defined networks |
US10560390B2 (en) | 2018-03-05 | 2020-02-11 | Schweitzer Engineering Laboratories, Inc. | Time-based network operation profiles in a software-defined network |
US10812392B2 (en) | 2018-03-05 | 2020-10-20 | Schweitzer Engineering Laboratories, Inc. | Event-based flow control in software-defined networks |
US10931675B2 (en) * | 2018-04-10 | 2021-02-23 | Microsoft Technology Licensing, Llc | Local API access authorization |
US10880124B2 (en) * | 2018-12-28 | 2020-12-29 | Alibaba Group Holding Limited | Offload controller control of programmable switch |
US11516253B1 (en) * | 2019-03-28 | 2022-11-29 | Amazon Technologies, Inc. | Identity-aware filtering proxy for virtual networks |
US11012442B2 (en) | 2019-04-11 | 2021-05-18 | Schweitzer Engineering Laboratories, Inc. | Address resolution protocol response handling |
US11861304B2 (en) * | 2019-05-13 | 2024-01-02 | Mcafee, Llc | Methods, apparatus, and systems to generate regex and detect data similarity |
EP3973427A4 (en) * | 2019-05-20 | 2023-06-21 | Sentinel Labs Israel Ltd. | SYSTEMS AND METHODS FOR EXECUTABLE CODE DETECTION, AUTOMATIC FEATURE EXTRACTION, AND POSITION-INDEPENDENT CODE DETECTION |
US11425033B2 (en) | 2020-03-25 | 2022-08-23 | Schweitzer Engineering Laboratories, Inc. | SDN flow path modification based on packet inspection |
US11201759B1 (en) | 2020-07-08 | 2021-12-14 | Schweitzer Engineering Laboratories, Inc. | Reconfigurable dual-ring network redundancy |
CN113472808B (zh) * | 2021-07-16 | 2023-07-14 | 浙江大华技术股份有限公司 | 日志的处理方法、装置、存储介质及电子装置 |
US11677663B2 (en) | 2021-08-12 | 2023-06-13 | Schweitzer Engineering Laboratories, Inc. | Software-defined network statistics extension |
US11882057B2 (en) | 2022-03-28 | 2024-01-23 | Bank Of America Corporation | Pluggable cloud security system |
US11882002B2 (en) | 2022-06-22 | 2024-01-23 | Schweitzer Engineering Laboratories, Inc. | Offline test mode SDN validation |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1624657A (zh) * | 2003-12-05 | 2005-06-08 | 微软公司 | 安全相关的编程接口 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7302634B2 (en) * | 2001-03-14 | 2007-11-27 | Microsoft Corporation | Schema-based services for identity-based data access |
US7559082B2 (en) * | 2003-06-25 | 2009-07-07 | Microsoft Corporation | Method of assisting an application to traverse a firewall |
US8627458B2 (en) | 2004-01-13 | 2014-01-07 | Mcafee, Inc. | Detecting malicious computer program activity using external program calls with dynamic rule sets |
US7607172B2 (en) | 2004-03-02 | 2009-10-20 | International Business Machines Corporation | Method of protecting a computing system from harmful active content in documents |
US8582567B2 (en) * | 2005-08-09 | 2013-11-12 | Avaya Inc. | System and method for providing network level and nodal level vulnerability protection in VoIP networks |
US7954090B1 (en) * | 2004-12-21 | 2011-05-31 | Zenprise, Inc. | Systems and methods for detecting behavioral features of software application deployments for automated deployment management |
US7703094B2 (en) * | 2004-12-30 | 2010-04-20 | Intel Corporation | Adaptive and dynamic filtering of threaded programs |
US20090052443A1 (en) | 2007-08-23 | 2009-02-26 | Santosh Kolenchery | Method and apparatus for managing dynamic filters for nested traffic flows |
US8339959B1 (en) | 2008-05-20 | 2012-12-25 | Juniper Networks, Inc. | Streamlined packet forwarding using dynamic filters for routing and security in a shared forwarding plane |
US8424053B2 (en) | 2008-07-01 | 2013-04-16 | International Business Machines Corporation | Method of dynamically updating network security policy rules when new network resources are provisioned in a service landscape |
US20120137137A1 (en) * | 2010-11-30 | 2012-05-31 | Brickell Ernest F | Method and apparatus for key provisioning of hardware devices |
US9003543B2 (en) * | 2010-12-21 | 2015-04-07 | Microsoft Technology Licensing, Llc | Providing a security boundary |
US8640245B2 (en) | 2010-12-24 | 2014-01-28 | Kaspersky Lab, Zao | Optimization of anti-malware processing by automated correction of detection rules |
EP2590100A1 (en) * | 2011-11-04 | 2013-05-08 | British Telecommunications Public Limited Company | Method and apparatus for securing a computer |
US20130218872A1 (en) | 2012-02-16 | 2013-08-22 | Benzion Jair Jehuda | Dynamic filters for data extraction plan |
-
2014
- 2014-01-13 US US14/153,742 patent/US9258315B2/en active Active
-
2015
- 2015-01-06 EP EP15700616.4A patent/EP3095224B1/en active Active
- 2015-01-06 CN CN201580004391.7A patent/CN105934927B/zh active Active
- 2015-01-06 WO PCT/US2015/010212 patent/WO2015105758A1/en active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1624657A (zh) * | 2003-12-05 | 2005-06-08 | 微软公司 | 安全相关的编程接口 |
EP1542426A2 (en) * | 2003-12-05 | 2005-06-15 | Microsoft Corporation | Security-related programming interface |
Also Published As
Publication number | Publication date |
---|---|
CN105934927A (zh) | 2016-09-07 |
US9258315B2 (en) | 2016-02-09 |
EP3095224B1 (en) | 2020-03-11 |
EP3095224A1 (en) | 2016-11-23 |
US20150200955A1 (en) | 2015-07-16 |
WO2015105758A1 (en) | 2015-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105934927B (zh) | 针对跨安全边界的sdn api调用的动态过滤 | |
US11218445B2 (en) | System and method for implementing a web application firewall as a customized service | |
CN111819544B (zh) | 用于虚拟计算资源的部署前安全分析器服务 | |
US10581873B2 (en) | Securing micro-services | |
US10747875B1 (en) | Customizing operating system kernels with secure kernel modules | |
US10693899B2 (en) | Traffic enforcement in containerized environments | |
US10171463B1 (en) | Secure transport layer authentication of network traffic | |
US20130173782A1 (en) | Method and system for ensuring authenticity of ip data served by a service provider | |
US11665138B2 (en) | System and method for automatic WAF service configuration | |
JP6663937B2 (ja) | 動的なセキュリティーモジュールサーバー装置及びその駆動方法 | |
CN108351923B (zh) | 与统一可扩展固件接口系统可执行的脚本有关的阈值 | |
CN110199283B (zh) | 用于在网络功能虚拟化环境中认证平台信任的系统和方法 | |
CN116057525A (zh) | 利用来自安全访问服务器边缘(sase)的情报的增强型受信应用管理器 | |
US20190268311A1 (en) | Trusted cyber physical system | |
US11803647B2 (en) | Computer system vulnerability lockdown mode | |
US8272031B2 (en) | Policy-based virtualization method involving adaptive enforcement | |
US10523635B2 (en) | Filtering outbound network traffic | |
US11392700B1 (en) | System and method for supporting cross-platform data verification | |
US20190089595A1 (en) | Automatic security configuration | |
Budigiri et al. | Zero-cost in-depth enforcement of network policies for low-latency cloud-native systems | |
EP4170530A1 (en) | Securing containerized applications | |
CN117220933A (zh) | 一种漏洞热修复方法及服务器 | |
Hareesh et al. | Accurate fork bomb detection by process name | |
CN116961977A (zh) | 安全检测方法、装置、设备及计算机程序产品 | |
KR101330832B1 (ko) | 클라우드 서버 및 클라이언트의 요청을 처리하는 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |