用于识别和防止恶意入侵的系统和方法

文档序号:7961493阅读:133来源:国知局

专利名称::用于识别和防止恶意入侵的系统和方法
技术领域
:本发明一般地涉及计算机系统,并且更特别地涉及识别和防止恶意入侵。
背景技术
:计算机攻击或者入侵在当今是普遍的。一些示例如病毒、蠕虫、缓冲区溢出攻击、畸形的URL攻击、以及蛮力/拒绝服务攻击。计算机入侵通常经由网络内部网或者因特网接口被接收,并且以操作系统或者已安装的服务为目标。计算机防火墙可以防止一些类型的恶意入侵,尽管它们通常需要病毒或者蠕虫的签名或者黑客的源IP地址以阻止入侵。在识别出病毒或者蠕虫以及其签名之前,不能配置防火墙来阻挡它。计算机病毒是本质上通常对计算机用户有害的计算机程序。计算机病毒经由多种媒体被接收,例如计算机磁盘、电子邮件或者有漏洞的程序。一旦用户接收到病毒,该病毒保持“潜伏”直到用户(或者其它程序)执行它。病毒通常要求用户或者程序执行该病毒以扩散该病毒并且感染其它的用户。当计算机病毒作为附件包含在电子邮件中时,电子邮件和附件被发送到指定的目的地(或目标)IP地址,以及目的地地址处的所指定目的地(或目标端口)。目的地端口通常与通信协议和应用相关联,以处理消息。计算机蠕虫是类似于计算机病毒的计算机程序,只是计算机蠕虫不要求人为动作以变为激活。计算机蠕虫利用系统中的一些漏洞来获得对该系统的访问。一旦蠕虫感染了特定的系统,它通过执行自身来进行复制。通常,蠕虫执行它们自身并且产生搜寻附近网络中的其它计算机的进程。如果发现了具有漏洞的计算机,蠕虫感染该计算机并且继续这个循环。当计算机蠕虫作为附件包含在电子邮件中时,电子邮件和附件被发送到指定的目的地(或目标)IP地址,以及目的地IP地址处的所指定目的地(或目标)端口。如上所述,目的地端口通常与通信协议和应用相关联,以处理消息。如上所述,一些类型的计算机入侵(包括病毒和蠕虫)具有特有的签名,通过它们可以识别入侵。取决于病毒或者蠕虫的本质,签名可以采用各种形式,但是通常包括特殊的并且出现在病毒或蠕虫程序中的、纯文本的或者可执行代码的几个连续行。一旦为新的计算机病毒或者蠕虫的签名被确定,则可以创建入侵检测或者入侵防止软件并且将其分发给用户,以将其包括在它们的防火墙中。入侵检测或者入侵防止软件从网络接口卡(NIC)或者当病毒或者蠕虫试图穿过防火墙时,检测病毒或者蠕虫。检测是通过对于病毒或者蠕虫的签名的“关键字”搜索来完成的。入侵防止或者入侵检测软件然后将通过对操作系统发送合适的命令,来将其删除或者防止其执行,从而阻止病毒或者蠕虫。在新入侵被释放后,尽可能快地识别新计算机入侵(以及它们的签名)是重要的。然后,可以识别其签名并且可以创建入侵防止或入侵检测软件并且将它们分发给用户。黑客也可以发送“利用(exploitation)”代码给受害者的服务器或者工作站,这些代码,如同黑客手动操作一样,自动地利用受害者服务器中的漏洞。例如,缓冲区溢出攻击利用程序,利用一个允许任意代码在目标系统上执行的漏洞,这通常由程序员的错误引起。如另一个示例,黑客可以将特殊的机器代码注入到程序变量中(通常由用户输入)以引起任意代码在程序中执行。这个特殊的代码,一旦让程序执行,就被置于计算机存储器的正确区域中,使得正在执行的程序不知道所注入代码的恶意。有几种类别的缓冲区溢出,包括格式串,远程的和本地的。阻止利用代码与病毒和蠕虫一样是重要的。入侵检测系统(IDS)目前已广为人知并且具有已知或者怀疑的病毒、蠕虫和其它普通入侵的签名列表。IDS可以逻辑地位于防火墙之后。IDS对其收到的每一个包查找其列表中的签名,并且从而检测病毒、蠕虫或者其它入侵。当这个出现的时候,IDS通知安全操作中心(“SOC”),并且SOC将检查企业或者用户网络中当前是否安装了合适的反病毒、反蠕虫或者其它入侵保护软件。尽管IDS能够有效地保护企业防止已经确认的某些病毒、蠕虫和已知或怀疑的其它入侵,还是需要进行改进以识别尚未被识别的以及其签名还尚未被识别的恶意入侵。还已知一些类型的源配置文件(profiling)用以识别新的计算机入侵。例如,美国公布的专利申请US2002/0035698A1公开了接收和分析发给服务的网络业务量以识别对服务的不期望的使用。该公布的专利申请还公开了对业务量的拓扑上异常的应用层模式的识别以及从网络中实时地删除这些数据流。当出现业务量时,该公布的专利申请考虑时间参数,例如一天中的时间、一周中的一天、一月中的一天以及假期。美国公布的专利申请US2004/0117478A1公开了用于分析网络业务量以检测可疑的包并且识别入侵或者潜在威胁的系统。检测出符合所定义的标准的数据包并且将它们的细节转发到数据库服务器,在那里将存储这些细节,以便可以用于结合其它被检测的包的细节进行分析。公布的专利申请的目的是允许用户检测敌意的网络行为,并且根据实时的信息以及与历史数据的相关两者来采取行动。该公布的专利申请执行历史分析和业务量关联,以建立两种攻击者的配置文件。公布的专利申请还公开了为了检测一些类型的入侵,在嗅探器中带有一些状态是有用的。状态性在针对具体机器的拒绝服务攻击中检测大量的悬挂连接是重要的。另一个状态性有用的区域是检测指向具体主机或者具体端口的包数量的突然高峰。当检测到业务量模式的变化,即使单个包似乎是无害的,并且该变化未被记录到数据库中时,将发起告警。
发明内容本发明的目的是识别新的计算机病毒、蠕虫和其它不希望的入侵。本发明旨在用于识别恶意入侵的计算机系统、方法和程序产品。在预定的时段中,从源IP地址识别出第一数量的不同目的地IP地址、第二数量的不同目的地端口以及第三数量的不同消息的签名。确定在一个或者多个其它这样预定的时段中,源IP地址是否发送了具有该第一数量的不同目的地IP地址、该第二数量的不同目的地端口以及该第三数量的不同签名的消息。根据本发明的特征,基于在一个或者多个其它这样预定的时段中,源IP地址发送了具有该第一数量的不同目的地IP地址、该第二数量的不同目的地端口以及该第三数量的不同签名的消息的确定,做出这些消息具有恶意入侵的特性的确定。图1是包括了本发明的计算机系统的框图。图2A和2B形成了说明在图1的计算机系统中的入侵识别程序的流程图。图3是图2的入侵识别程序中的统计分析功能的流程图。具体实施例方式参考附图将对本发明进行详细描述,其中贯穿全文相同的参考标号指示相同的元件。图1说明包括了本发明的计算机系统10。系统10包括已知防火墙19、20和21,它们根据现有技术基于病毒、蠕虫和其它入侵的已知签名、源IP地址、源端口或者目的地端口来阻挡上述已知病毒、蠕虫和其它入侵,以防止它们穿过防火墙到达要发至的目的地IP地址。但是,有一些其它的入侵没有防火墙19、20和21已知为恶意的源IP地址、签名、源端口或者目的地端口。这样,不可以对防火墙19、20和21进行配置以阻挡它们(直到被确认为恶意)。然而,对于这些消息中的一些,有标记来怀疑它们是恶意的,例如下列标记由消息所生成的数据的本质。已知存在的恶意软件的目的地TCP端口。为试图验证用户的多个失败的到主机的登录尝试。试图执行代码的TCP/IP包内容数据。多个不完整的TCP/IP“三方握手”。来自已知“记入黑名单的”(坏IP地址列表)IP地址的连接尝试。系统10包括逻辑上位于各个防火墙19、20和21之后的入侵检测传感器16、17和18。作为示例,传感器16、17和18包括通过将单个TCP/IP包匹配到位于硬件设备中的签名来检测恶意行为的网络硬件设备。传感器16、17和18检测穿过各个防火墙19、20和21的被怀疑的入侵(基于上述的因素)。响应于这种被怀疑的入侵,传感器16、17和18经由因特网14通知安全事件数据库服务器12。在通知中,传感器16、17或18就每个被怀疑为入侵的消息识别入侵的签名(如果其匹配传感器内的列表中的一个);入侵的一天中的时间、一周中的一天、以及一月中的一天;源IP地址、目的地IP地址、目的地端口以及包的内容。服务器12在数据库20中存储描述每个消息的数据。服务器12也在控制台13上显示关于消息的“原始”数据以用于人类分析师的(无辅助)分析。系统10还包括入侵分析服务器30,分析服务器30包括常规的CPU50、RAM52、ROM54、存储器56、操作系统58和TCP/IP适配器卡59。服务器30还包括根据本发明的入侵识别程序32。程序32负责为与被怀疑为入侵的消息有关的数据(历史的和当前的两者)建立配置文件以检测指示恶意入侵的模式。服务器30还在控制台35上向人类分析师显示由程序32生成的配置文件和其它分析,以允许分析师最终确定检测到的消息是否是恶意的。如果是,分析师可以通知防火墙19、20和21的管理员以阻挡来自这些消息的源IP地址的后续消息以及所有具有该签名的消息。可选地,分析师可以相应地直接更新防火墙16、17和18中的配置文件以阻挡来自该源IP地址的后续消息或所有具有该签名的消息。图2更详细地说明了入侵识别程序32以及相关的手动和自动处理。在步骤100中,入侵检测传感器16、17和18检测已经穿过各个防火墙19、20和21的消息并且基于上述标记中的一个或者多个怀疑该消息为入侵。在响应中,传感器16、17和18通知数据库服务器12并且识别被怀疑为入侵的消息(如上所述)。在响应中,服务器12在数据库20中记录与所怀疑入侵有关的信息,包括其源IP地址、目的地IP地址、目的地端口、签名(如果为传感器16、17和18已知)、一天中的时间、一周的一天、一月中的一天、一年中的一周(步骤102)。周期性地,例如每天,人类分析师在控制台13对数据库20中的记录进行概括分析(步骤104)。该概括分析包括检查在控制台13上滚动过的数据,以及尽人类分析师所知地确定该数据已知为恶意的或者为善意的。可选地,程序32可以通过将数据与已知为恶意的源IP地址、源端口等的列表进行比较来概括地分析该数据。在步骤104之后,并行地执行两个系列的步骤。在一个系列中,程序32为每一个源IP地址分类和记录,在例如每一天的预定的时段中不同目的地IP地址的数量、不同目的地端口的数量以及匹配的不同签名的数量。该分类和记录按如下执行。在步骤108中,程序32在数据库20中查询每个源IP地址的不同的目标IP地址、不同的目标端口和不同的被怀疑的入侵签名的记录。在步骤109中,程序32每天分类或者聚集在步骤300中获得的每个源IP地址的记录,并且将它们记录在HTML表40中。接着,分析师对消息内的单个包进行深入分析(步骤110)。该深入分析包括使用已知的专门的数据分析工具来比概括分析更详细地查看数据。即,如果人类分析师识别出恶意业务量,或者识别出他或她认为是恶意业务量的内容,则人类分析师可以使用常规数据分析工具来证明或者推翻他们的假设。常规数据分析工具执行例如下列功能的功能将原始数据绘制成图以用于视觉表达,其中x轴可以是时间,y轴可以是源IP地址、目的地IP地址、目的地端口、消息签名等等,不同的源IP地址、目的地IP地址、目的地端口、消息签名等等具有不同的颜色,以及记录分析师给客户的人类分析结果的报告,以及IDS检测为可疑的不同类型的签名。接下来,程序32显示HTML表40并且程序32和分析师检查由程序32制作的汇编,该汇编指示在每天中每个源IP地址的不同目标IP地址的数量、不同目标端口的数量以及匹配的不同入侵签名的数量(步骤112)。每个HTML表包括在几天或者很多天(例如30天)中该所怀疑入侵的日常数据。接下来,基于表40中的数据和统计,入侵分析程序32确定是否存在已知入侵的消息特性的模式,其中入侵不管是无害的还是有害的(判断114)。作为示例,这种对于每个源IP地址的模式可以是下列的组合(a)在预定(例如,每天)的时段中,来自同样的源IP地址的所有消息中的不同目标IP地址的数量;(b)在同样的预定(例如,每天)的时段中,来自同样的源IP地址的所有消息中的不同目标端口的数量;以及(c)在同样的预定(例如,每天)的时段中,来自同样的源IP地址的所有消息中的匹配的(针对传感器中的列表)不同的所怀疑入侵签名(不包括病毒,蠕虫等)的数量;其中(d)在一个较长的预定的时段内,例如每月,至少有两个(并且通常几个)每天的时段,在这些时段中同样的源IP地址的不同目标IP地址的数量、不同目标端口的数量和不同入侵签名的数量是相同的。例如,在一个月的时段中可能有不同的11天,在这些天中,源于同样的源IP地址的消息,总共有五个不同的目标IP地址,四个不同的目标端口以及三个不同的匹配入侵签名。如下面更详细的解释,这些数目的重复通常代表指示消息本质的模式,不管是友好的或者是恶意的。(通常,在一个月的时段中这些数目的频繁重复倾向于指示恶意的入侵,假设不知道源IP地址是友好的)。在一些情况下,在一天中具体源IP地址的具体数量的不同目标IP地址、具体数量的不同目标端口以及具体数量的不同入侵签名(匹配于在传感器16、17和19中的所怀疑的入侵的列表)的组合在一个月中的重复指示恶意入侵(判断114,“是”分支)。这是基于服务器32所存储的记录,基于在先前分析(例如,每月)时段中程序32的过去迭代以及在这样的时段中检测到的模式。在这种已知了组合以指示入侵的情况下,程序32向分析师显示,或者向防火墙19、20和21的管理员发送通知,说明确定为恶意的消息类型或者消息业务量模式(步骤125)。然后,管理员可以采取步骤来改正状况(步骤126)。这样的步骤可以更新防火墙19、20和21的配置以阻挡检测到的消息类型。例如,管理员可以更新防火墙以阻挡恶意软件的源IP地址或者恶意软件的签名。作为另外的示例,管理员可以更新防火墙19、20和21以阻挡去往已知隐藏了恶意程序的特定TCP端口的业务量。再次参考判断114,“否”分支,其中具体源IP地址的具体数量的不同目标IP地址、具体数量的不同目标端口以及具体数量的匹配的不同入侵签名的组合,在该月的某个数量的天中不等于先前确定为恶意入侵指示的组合。在这种情况下,程序32或者分析师确定是否存在另一个原因可以断定来自源IP地址的消息可能是恶意的或者是“恶意软件”(判断118)。程序32(或者人类分析师)通过查找事先确定的或者较高数量的天数(至少两天并且通常几天)来作出确定,在该天数期间具有相同数量的不同目标IP地址、相同数量的不同目标端口和相同数量的不同入侵签名(由传感器匹配的),其中不知道源IP地址是友好的。(程序32或者人类分析师可以通过联系客户并且询问客户是否知道源IP地址为友好的,来了解IP地址是否为友好的)。总之,具有相同数量的不同目标IP地址、相同数量的不同目标端口和相同数量的匹配的不同入侵签名的天数越多,这些消息越有可能是入侵,假设分析师或者客户不知道源IP地址是友好的。如果这样的天的数量超过了预定的数量(并且分析师或者客户不知道源IP地址是友好的),那么程序32或者分析师警告防火墙管理员该源IP地址和签名可能是恶意的(步骤119)。再次参考判断118,“否”分支,其中不同目标IP地址的数量、不同目标端口的数量和匹配的不同入侵签名的数量的组合,基于程序32的先前迭代或者其它已知模式,不指示该消息是恶意的。在这种情况下,原因可能是有一天或者两天的数据不具有消息的特性。因此,分析师将检查每个源IP地址每天的数目,以确定具体源IP地址的具体数量的不同目标IP地址、具体数量的不同目标端口以及具体数量的匹配的不同入侵签名的哪个组合,最能代表来自源IP地址的消息的模式(步骤120)。例如,如果有八天具有相同数量的源IP地址、相同数量的目标端口以及相同数量的不同的匹配签名,并且有一天具有不同数量的目标IP地址、不同数量的目标端口或不同数量的匹配的签名,则分析师将忽略这一天。在步骤120后,分析师在数据库(数据仓库)表40中为该源IP地址建立一个条目以反映不同目标IP地址、不同目标端口和不同匹配的签名的代表性数目(步骤122)。然后,程序32或者分析师使用代表性的数目重复判断118的分析。如果代表性的数目指示恶意的入侵(步骤118,“是”分支),则程序32执行步骤119的处理。如果代表性数目没有指示恶意的入侵,则程序32认为消息不是恶意的并且忽略它们(步骤124)。再次参考步骤104和其它与步骤108-124并行执行的系列步骤。在步骤130中,入侵分析程序32创建目的地端口“数据透视”表(pivottable)42以代表在一个月中每个源IP地址的目的地端口的数量分布。端口数据透视表是基于在预定的天数,例如30天中,所计算的平均值的标准偏差。图3更详细地说明了步骤130。在步骤300中,程序32从HTML表40中识别出预定数量(例如20)的具有最大量的输入消息业务量的目的地端口。然后,对于每个这样的目的地端口,程序32为最后的预定的时段(例如30天)计算输入消息数量的标准偏差和平均数量(步骤302)。然后,程序32从最后的预定的时段(例如30天)的平均值中减去每天的输入消息的总数(步骤304)。然后,程序32将步骤304中计算的每天的差除以步骤302中计算的标准偏差从而得到标准偏差(“X”)高于或者低于当天的平均值的数量(步骤306)。标准偏差的数量高于平均值越多,端口正遭受攻击的风险就越大。因此,程序32确定“X”是否小于2但是不等于0(判断310)。如果是,则程序32将该端口分类或者划分为“低关注”,即不太可能成为恶意软件的目标(步骤312)。接下来,程序32确定“X”是否大于1而小于4(判断314)。如果是,则程序32将该端口分类或者划分为“中等关注”,即中度可能地成为恶意软件的目标(步骤316)。接下来,程序32确定“X”是否大于或者等于4(判断318)。如果是,则程序32将该端口分类或者划分为“高度关注”,即可能成为恶意软件的目标(步骤320)。如果“X”小于或者等于0,则程序32将该端口分类或者划分为不重要,并且将其从列表中丢弃(步骤322)。然后,程序32为列表中的端口在HTML表40中建立记录(步骤324)。该记录指示端口数量、一天中输入消息的数量、来自平均值的标准偏差、10天中输入消息的总数以及关注的级别。人类分析师周期性地检查步骤324中建立的记录,以确定是否需要进一步的调查(步骤326)。该确定基于特定端口从平均值偏离了多少个标准偏差。再次参考图2,在程序32在步骤130中创建目的地端口数据透视表之后,程序32确定是否有任何目的地端口具有很异常的数据,即落在该端口正常行为范围之外的数据量(判断132)。如果没有具有很异常的数据的目的地端口(判断132,“否”分支),则程序32结束其对端口的分析;不怀疑入侵(步骤134)。但是,如果有具有很异常的数据的任何目的地端口(判断132,“是”分支),则程序33或者人类分析师对这样的目的地端口进行深入分析(步骤136)。该深入分析包括显示与该端口有关的信息,例如运行在该给定端口上的公用程序以及一段选定的时间(例如,30天,60天或90天)内端口的量的数据。程序32可以从计算机存储介质中,例如磁带或者磁盘、光CDROM、DVD等中载入服务器12,或者经由TCP/IP适配器卡从因特网的网络介质中下载,并且存储在服务器12的RAM中。存储介质、网络介质以及RAM合称为“计算机可读介质”。基于前述,已经公开了用于识别恶意入侵的系统、方法和程序。但是可以做出多种修改和替换而不背离本发明的范围。因此,本发明通过非限制性的说明的方式进行了公开,并且应该参考下面的权利要求书来确定本发明的范围。权利要求1.一种用于识别恶意入侵的方法,所述方法包括步骤在预定的时段内,从源IP地址确定第一数量的不同目的地IP地址、第二数量的不同目的地端口以及第三数量的不同消息的签名;以及确定在一个或者多个其它这样预定的时段内,所述源IP地址发送了具有所述第一数量的不同目的地IP地址、所述第二数量的不同目的地端口以及所述第三数量的不同签名的消息。2.根据权利要求1所述的方法,进一步包括步骤基于确定在一个或者更多其它这样预定的时段内,所述源IP地址发送了具有所述第一数量的不同目的地IP地址、所述第二数量的不同目的地端口以及所述第三数量的不同签名的消息的步骤,确定所述消息具有恶意入侵的特性。3.根据权利要求2所述的方法,进一步包括步骤确定在另一个这样预定的时段内,所述源IP地址发送了具有所述第一数量的不同目的地IP地址、所述第二数量的不同目的地端口以及所述第三数量的不同签名的消息;以及基于确定在所述一个或者多个其它这样预定的时段内以及所述另一个这样预定的时段内,所述源IP地址发送了具有所述第一数量的不同目的地IP地址、所述第二数量的不同目的地端口以及所述第三数量的不同签名的消息的步骤,确定所述消息具有恶意入侵的特性。4.一种用于识别恶意入侵的系统,所述系统包括用于在预定的时段内,从源IP地址确定第一数量的不同目的地IP地址、第二数量的不同目的地端口以及第三数量的不同消息的签名的装置;以及用于确定在一个或者多个其它这样预定的时段内,所述源IP地址发送了具有所述第一数量的不同目的地IP地址、所述第二数量的不同目的地端口以及所述第三数量的不同签名的消息的装置。5.根据权利要求4所述的系统,进一步包括响应于所述用于确定在一个或者多个其它这样预定的时段内,所述源IP地址发送了具有所述第一数量的不同目的地IP地址、所述第二数量的不同目的地端口以及所述第三数量的不同签名的消息的装置,用于确定所述消息具有恶意入侵的特性的装置。6.根据权利要求5所述的系统,进一步包括用于确定在另一个这样预定的时段内,所述源IP地址发送了具有所述第一数量的不同目的地IP地址、所述第二数量的不同目的地端口以及所述第三数量的不同签名的消息的装置;以及响应于所述用于确定在所述一个或者多个其它这样预定的时段内以及所述另一个这样预定的时段内,所述源IP地址发送了具有所述第一数量的不同目的地IP地址、所述第二数量的不同目的地端口以及所述第三数量的不同签名的消息的装置,用于确定所述消息具有恶意入侵的特性的装置。7.一种用于识别恶意入侵的计算机程序产品,所述计算机程序产品包括存储在计算机可读介质中用于执行权利要求1-3中任何一个权利要求的方法步骤的计算机程序指令。全文摘要用于识别恶意入侵的计算机系统、方法和程序产品。在预定的时段中,从源IP地址识别出第一数量的不同目的地IP地址、第二数量的不同目的地端口以及第三数量的不同消息的签名。确定在一个或者多个其它这样预定的时段中,源IP地址发送了具有该第一数量的不同目的地IP地址、该第二数量的不同目的地端口以及该第三数量的不同签名的消息。基于在一个或者多个其它这样预定的时段中,源IP地址发送了具有该第一数量的不同目的地IP地址、该第二数量的不同目的地端口以及该第三数量的不同签名的消息的确定,做出这些消息具有恶意入侵的特性的确定。文档编号H04L12/24GK1885794SQ20061008265公开日2006年12月27日申请日期2006年5月24日优先权日2005年6月24日发明者杰弗里·S·拉汉恩,弗雷德里克·G·蒂勒,迈克尔·A·沃尔特申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1