技术领域
本发明涉及一种用于保护基于SIP(会话发起协议)的应用的方 法,其中,对SIP消息进行分析,并对潜在构成基于SIP的应用的安 全风险的恶意SIP消息进行识别。
背景技术
会话发起协议(SIP)是用于在两个或多个参与者之间建立会话 的标准化网络协议。许多制造商的设备都支持SIP,近年来,SIP已经 发展为针对基于IP的语音(VoIP)的广泛使用的协议。SIP应用并不 局限于因特网电话,而是可以为多个不同的数据流建立通信会话。SIP 仅用于通信会话的建立,而在其它协议(会话描述协议(SDP)、实时 传输协议(RTP))上执行实际通信数据的交换。
然而,SIP在易于实现性、可量测性、扩展性和灵活性方面是有 利的,而对于应用安全和身份(identity)管理的方面相当无奈。存在 安全风险,即恶意用户可以获取不安全信息,以便发起针对基于SIP 的系统的安全攻击。当前,IETF努
力对一整套安全协议和应用进行标 准化,以便将安全相关特征添加至基于SIP的应用。但是即使这些努 力成功了,但是这样的标准也不会100%安全,即恶意用户不能利用 适合的知识来破坏。
关于安全身份管理,即使这样的标准将会是可用的,在将来也必 然总将会有准备公开SIP身份的一些服务提供商。在存在这样的不足 的身份管理的情况下,存在着恶意用户捕获多个SIP身份、以便以之 为
基础来针对基于SIP的系统发起安全攻击的安全威胁。
以下,将详细描述两种最重要的不同的安全攻击。首先,这两种 安全攻击的目标是扰乱或中断服务,并被称为DoS(服务否定)攻击。 其它攻击是在因特网电话环境下被称为SPIT(垃圾网络电话)的社会 攻击。SPIT的威胁可以与垃圾邮件在
电子邮件业务中的威胁相提并 论;唯一的差别在于,无用的消息以电话呼叫的形式分布。实际上, 这会意味着,一人接到仅包含宣传消息的上百个电话呼叫、或者电话 始终响铃。针对因特网电话的快速发展和分布,不得不担心DoS攻击 和SPIT也将成为电话世界中的主导。
现今可用的防止DoS攻击的技术主要是基于对对话和事务处理 的SIP协议的严格语法分析(解析),以便发现会导致服务中断的协议 的不合理性。丢弃在检测到与SIP语法有偏差的那些消息。
用于保护基于SIP的应用免受DoS攻击的其它方法利用了系统过 载会导致服务中断的事实,因而致力于将SIP业务限制于SIP消息所 允许的最大速率,以防止SIP系统的过载。
现今可用的用于防止SPIT攻击的技术主要是基于白名单和黑名 单、以及基于内容过滤。通过目的在于发现呼叫者是否是人类或机器 的某种
图灵测试,来执行语音呼叫的内容过滤。其它近年来提出的方 法还考虑了用户之间的社会网络、以及使用伙伴列表的朋友关系。
关于如上所述的身份管理,已知的方法还具有一些缺点。例如, 电子邮件系统尝试通过电子邮件消息报头中的发送方的原始IP地址, 来识别发送方。基于该信息,电子邮件系统执行DNS检查。问题在于, 恶意发送方不插入他们的真实IP地址或域名,所以已知的系统不能正 确地匹配。无论如何,由于在不同的时间标尺(time scale)上运行, 所以,在如这里提出的实时通信的情况下,这样的分析不适用。例如, 电子邮件应用不是实时应用,而作为实时应用的VoIP不能等到检查了 DNS名。此外,由于不能将多个电子邮件消息的同时发送看作是恶意 动作、而应看作普通的使用,所以存在完全不同的业务特性。相反地, 在基于SIP的应用的情况下,则该业务特性很有可能被看作是恶意的。 因此,从电子邮件世界中得知的用于安全和身份管理的方法无论如何 不能转移到基于SIP的应用。
发明内容
因此,本发明是基于以下任务:设计并进一步开发一种用于保护 上述种类的基于SIP的应用的方法,根据该方法,通过易于实现的方式 来实现非常高级别的安全。
根据本发明,通过示出了
权利要求1的特征的方法,来解决以上提 及的任务。根据权利要求1,按照以下方式来设计并进一步开发这样的 方法,即,从SIP消息中提取预先可定义个数N的预先可配置参数(身 份),以及对于每个SIP消息,执行与从先前的SIP消息中提取的身份的 身份比较,基于该比较,对于每个SIP消息,来评价恶意程度(恶意级 别(ML))。
根据本发明,可以认识到,可以通过考虑多种不同的身份,创造 广泛分析的机会,来实现基于SIP应用的特别高级别的安全。根据本发 明,首先,提取预先可定义个数N的预先可配置参数(以下将称为身 份)。根据本发明,接下来,通过将每个SIP消息的身份与先前SIP消息 的所提取身份进行比较,来评价每个SIP消息的恶意级别ML。利用根 据本发明的方法,可以考虑SIP事务处理的多个安全相关方面,这导致 了与仅考虑单个方面(例如,SIP消息的语法)的已知方法相比的显著 提高的安全性。换言之,关键问题在于,不仅检查单个参数,而且检 查还包括(N-1)个另外的参数。因此,由于业务特征仅作为部分方面 而输入设计用于广泛执行的检查,所以根据本发明的方法解决了开始 在特定业务特征环境中描述的问题。
此外,由于基本上仅需要执行几乎不需要任何特定
硬件的比较操 作,所以根据本发明的方法易于实现。此外,可以以非常简单和灵活 的方式,针对要分析的不同的环境来调整根据本发明的方法。例如, 在具有最大优先级安全的敏感数据的SIP事务处理的情况下,可以选择 较大的N,即,基于多个不同方面来执行对恶意SIP应用的识别。相比 之下,如果安全不是这种主要问题、和/或如果可用于安全检查的资源 非常有限,则可以选择较小的N。
具体地,例如,可以通过会话边界
控制器(SBC)、应用层
防火墙、 代理
服务器、背靠背
用户代理、或者通过客户机等来执行分析和识别。
对于所提取的身份,可以设置:该身份一方面是用户特定参数、 和/或另一方面是设备特定参数。在特别有利的方式中,提取发送消息 方的SIP URI(唯一资源标识符)作为身份。通常,SIP URI具有“用户 @域”的形式,并且是最有意义的身份,所以,证实在提取的身份组中 总是包括该身份是有利的。此外(或可选地),身份组包括MAC地址、 主
机身份协议(HIP)标识符、SIP Via报头字段值、SIP联系报头字段 值、和/或包含发送方的IP地址和/或端口的SDP协议报头字段值。该列 举是不完全的,当然也可以提取其它参数。
对于所提取参数值的简明的存储,可以设置:总是使用对所提取 值执行的转换的结果作为身份。以特别有利的方式中,该转换可以是 散列函数的应用。
在特别优选
实施例的环境下,设置了N维超空间的生成,其中, 由所给身份来形成空间的N维。然后,在特别简明的方式中,则可以 通过将所提取的身份列在超空间的坐标轴上,来将每个SIP消息表示为 超空间中的一点。该点表示包括从各个SIP消息中所提取的预先定义的 N个身份的值的N维元组。
对于可用信息的可能地全面和有效的使用,可以将第n个消息的恶 意级别定义为超空间中所列入的先前消息的点的函数f。n是表示消息 到达的时间顺序的占位符。换言之,为了定义第n个消息的恶意级别 ML,可以使用从第一、第二、...、第(n-1)个消息中提取的先前获 得的信息。
为了在较长时间段内独立地分析多个到达消息(即,不受操作者 的干预),并且对于所需存储需求的限制,有利地,根据输入顺序,在 预先可配置的时间段之后,从超空间中除去点。为了评价第n个消息的 恶意级别ML,因而不再存在可用的消息1、2、...、n-1,而是仅存在 消息i、i+1、...、n-1,其中,1<=i<n。这些点保持存储于超空间中的 时间段是可配置参数,并可以预先配置、或者可以在分析期间根据各 自当前的具体情况来动态地调整该时间段,优选地,要考虑
数据速率。
对于函数f,可以设置:选择函数f,使得如果比较表明第n个点(即, 第n个消息的点)的至少一个身份与输入点中的至少一个点的身份匹 配,则第n个消息的恶意级别ML不等于0。此外,函数f可以具有以下 特征:第n个消息的恶意级别ML随其中至少一个身份与第n个消息点的 相应身份匹配的输入点的个数的增加而增加。此外,函数f可以具有以 下特征:随第n个消息的恶意级别ML的增加,在输入点之一与第n个消 息点之间的匹配身份的个数越多。
在特定身份的情况下,相关的是,不仅知道两个值是否匹配或不 同、而且此外还知道身份的确切值。SIP身份将会是这样的情况的示例。 例如,如果你看到身份SIP ID_1=用户@域1、SIP ID_2=用户2@域2、 以及SIP ID_3=用户3@域3,则这些都彼此不同,但是从安全技术
角 度来看,消息是从不同域的同一用户发出的、还是从同一域的不同用 户发出的是不同的。
为了在评价恶意级别ML时考虑这些差别,引入距离的概念是有益 且有利的。因此,可以以N维超空间中的点的预先可配置距离之和来 计算恶意级别ML。在以上给出的示例中,SIP ID_1和SIP ID_2之间的 距离(dist(ID_1;ID_2))可以归为不同于SIP ID_1和SIP ID_3之间的 距离(dist(ID_1;ID_3))的值。在探测期间,可以提前固定各个距 离的具体值。可选地,可以针对特定情况,动态地调整各个距离的具 体值。
对于N维身份的有效存储,可以提供使用散列表的实现方式。散 列表一方面允许快速查找匹配条目、另一方面限制存储的复杂度。例 如,具体地,散列表可以用于每个身份。在散列表的关键列中,将存 储各个身份的相应散列值,并且可以将身份组(N-元组)作为条目存 储。
对于关于存储复杂度的另一优化,可以在散列表中设置所谓“共享 条目”,其中,在散列表的关键列中,依次存储相应身份的各个散列值, 不过,仅将共享身份组(N-元组)的
指针作为条目存储。通过这些方 式,可以再次显著降低存储的复杂度。
对于效率的进一步增加,特别有利地,仅对正确的SIP消息进行语 法分析。为此,如从技术发展
水平中得知的,可以提供提前执行的语 法分析(解析),并仅对不显示任何可疑特征的已经经过了语法分析的 那些SIP消息进行分析。
对于恶意级别ML,可以设置
阈值,在超过这些阈值时,将会把SIP 消息归类为恶意的。在有利的方式中,对于最佳灵活性,可以动态地 更新阈值。具体地,可以根据时间动态地更新阈值,这是由于,通过 这样做,可以考虑峰值时间的数据业务模式明显不同于在夜晚期间观 察的数据业务模式的事实。还可以基于关于到此刻为止所执行的分析 的效率的体验值,来执行动态更新。例如,可以想象,如果特定攻击 引起了系统的崩溃,则将由值z定义的阈值减小,即,为了更好地保护 系统免受这样的攻击。
为了保护系统,可以设置:识别为恶意的SIP消息触发警报,和/ 或阻断该识别为恶意的SIP消息。此外,可以将警报的生成用作触发来 追溯恶意消息的源头。为此,可以应用后处理
算法来识别恶意行为随 时间的发展。这种方案的简单实现可以包括:通过SIP URI、通过IP地 址、或以类似的方式来识别恶意发送方。在执行了识别之后,可以通 过阻断源自该恶意用户的所有通信,来(临时地)阻断该恶意用户访 问受保护的系统。
在有利的设计的环境下,可以设置两个或多个阈值,超过这些阈 值中的每个都具有不同的结果。例如,超过第一较低阈值会导致发送 方必须在被允许
访问受保护的系统之前经过附加测试。仅超过第二较 高阈值会触发对访问的阻断,其中,可以预想对访问的临时限制、以 及最终阻断。
现在,存在以有利的方式设计和进一步发展本发明的教导的多个 选项。为此,一方面,必须参照从属于权利要求1的权利要求,另一方 面,必须参照用于保护SIP应用的根据本发明方法实施例的优选示例的 以下解释。与实施例和
附图的优选示例的解释相结合,通常还将会解 释优选的设计和教导的进一步发展。
附图说明
图1是示出了用于保护基于SIP的应用的、根据本发明实施例的 方法示例的方案的图示;
图2是示出了将身份存储于具有双倍条目的散列表中的方案的图 示;
图3是示出了将身份存储于具有共享条目的散列表中的方案的图 示;
图4是示出了从SIP消息中提取不同身份的方案的图示;
图5是示出了N=2维的超空间实施例示例的图示;以及
图6是示出了图5所指的超空间的图示,其中还描述了距离。
具体实现方式
图1示出了根据本发明的方法的基本功能的方案。对通过SIP事 务处理在网络(表示为
云)上通信的三个SIP客户机1进行了描述。 为了保护基于SIP的应用免受恶意用户2的攻击,从SIP消息中提取 预先定义的个数N(N>1)个预先可配置参数(称为身份),其中,SIP 消息是在SIP客户机1彼此之间、或者SIP客户机1与世界的其它客 户机之间交换的。
对于每个SIP消息,作出与从先前交换的SIP消息中提取的身份 的身份比较。然后,对于每个SIP消息,基于所执行的比较来评价恶 意级别ML。可以通过多个设备来执行对于SIP消息的分析、以及对 识别为恶意的识别。这些设备中的至少一个包括SIP消息分析器、身 份提取器、身份比较器和恶意级别评价部分。在图1中,仅给出了可 能设备的三个示例。具体地,它们是防火墙3、背靠背用户代理4和 代理服务器5。
在图2中,以表描述了用于存储N维身份的具体存储模式。这是 将散列表用于数据存储的实现方式。在图2中描述的表利用复制条目 来起作用。换言之,该实现方式针对每个身份来使用散列表。每个散 列表的关键列是各个身份的散列值,而条目包含身份组。这表示,在 N个身份的情况下,对每个身份组(事务处理)进行N次复制。这导 致了要由N*n*N*a计算的存储复杂度,其中,n是条目个数(或者所 分析的消息的个数),a是身份元素的大小,以及N是身份个数。因此, 该复杂度二次地依据识别个数。这表示,身份个数加倍就使存储复杂 度成四倍。对于事务处理n的个数,复杂度是线性的。
图3示出了与根据图2的实现方式相比、关于存储复杂度进行了 优化的存储的实现方式。通过使用共享条目来实现该优化。然而对于 每个身份,使用散列表,散列表中的条目不包含完全的条目,而仅包 含指向共享身份组的指针。这种存储导致以N*n+N*n*a计算的存储复 杂度,其中,该术语与在图2的环境中解释的术语相同。因此,存储 复杂度关于身份个数N成线性,并且关于事物处理n的个数成线性。 假设在散列表中有少量的冲突(这可以通过选择足够大的散列表大小 来实现),则计算复杂度关于条目/事务处理的个数成线性。此外,搜 索关于身份个数成线性。
图4示意性地示出了根据本发明的方法的示例应用。为了进行分 析,SIP消息经过设备,该设备在具体示例中示为代理服务器5。代理 服务器5从SIP消息中提取两个身份,即,SIP身份本身和SIP消息 发送方的IP地址。因此,N=2。在从其接收到SIP消息的IP地址不 可用作参数的情况下,由于该应用不可以访问IP层信息,所以该应用 可以从SIP消息主体中提取IP地址参数,其中,例如,可以将IP地 址写入SIP VIA报头中。
在图5中,示出了二维超空间(即,平面),该二维超空间由作 为第一提取参数的SIP身份(在x轴上绘出)和作为第二提取参数的 IP地址(在y轴上绘出)形成。同时,示出了五个点,这五个点表示 五个分析过的SIP消息,其中,在下面将假设到达的顺序:
(SIP IDl=用户1@域1;IP ADDRl);
(SIP ID2=用户2@域1;IP ADDR3);
(SIP ID2=用户2@域1;IP ADDRl);
(SIP ID3=用户3@域2;IP ADDRl);
(SIP ID4=用户4@域1;IP ADDR2);
在第n个消息到达时,执行以下步骤:
将第n个点 插入已经解释了的在具体示例中为平面的超空间 中。
对已经插入平面的点,即,与先前分析的消息对应、并具有与 相同的SIP身份、或共享相同的SIP地址的点进行识别。
按照下式计算恶意级别ML:
k依据在步骤2中识别的所有点而改变。
为了计算ML,引入距离的概念,距离使得在计算ML时不仅能 够考虑的相同/不相同的比较,而且还能够考虑身份的确切值。在系统 中,通过距离所呈现的值是可配置的参数。
对于图5中示出的示例,在图6中示出了所定义的距离。对于其 它部分,两幅图是相同的。所示出的特定示例背后的基本原理如下:
基本上,将源自相同SIP身份、并使用不同IP地址的多个事物处 理看作潜在恶意的。它们是恶意消息的可能性越高,从其产生事务处 理的不同IP地址的个数就越多。然而,这种事务处理也可以是合法的, 并只是由发送用户的移动性所导致的。但是,在移动性场景中,用户 执行SIP事务处理的时间标尺通常不同于对SIP事务处理进行分析的 时间标尺。所提出的方法通常这样工作,从而发现在较短时间标尺上 的特别的异常。
通常,源自相同IP地址、但使用不同SIP身份的多个事务处理也 将被认为是恶意的。这里,以下事实同样正确:这样的事务处理是恶 意的可能性越高,共享相同IP地址的SIP身份的个数越多。
该论点在多个用户位于NAT(网络地址转换器)之后、并发送 SIP事务处理的情况下是无效的。但是,在相同NAT之后的多个用户 将事务处理发送至相同的目标地址的可能性足够小,以致于可以坚持 基本假设。如果这种可能性不是足够小,则附加身份(例如,层4的 端口号)可以用于正确地辨别在NAT之后的合法用户与恶意用户。
当定义在图6中描述的值时,通过在具有不同域的SIP身份之间 定义比具有相同域的SIP身份之间更长的距离,已经考虑了这种可能 性。该定义认为在相同NAT之后的用户具有较高可能性在SIP URI 中示出相同的域。对于在图6中描述的示例,对ML值估计如下:
在第一消息到达时,由于在平面上仅有一个点,所以ML=0。在 消息2到达时,检测到两个所提取的身份均不同于消息1,所以ML=0 仍保持为真。在消息3到达时,检测到消息3示出了与消息1相同的 IP地址、以及与消息2相同的SIP ID,所以ML=1+3=4。在消息4到 达时,检测到IP地址与消息1和3的IP地址匹配,所以对于ML, 有:ML=5+5=10。在消息5到达时,没有检测到与先前分析过的消息 的匹配,所以ML=0有效。
对于根据本发明的方法的另一有利实施例,为了避免重复,参照 本
说明书的综述部分、以及所附权利要求。
最后,特别要指出,以上根据本发明的教导的实施例示例仅用作 根据本发明的教导的示例,但是并不意味着将本发明限制于实施例的 所给示例。