对未授权的访问请求使用假肯定响应的网络安全转让专利

申请号 : CN201210557173.4

文献号 : CN103179106B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : C.赫伯特

申请人 : SAP欧洲公司

摘要 :

请求处理机可以接收用于访问应用服务器的应用服务器资源的访问请求,并且确定访问请求是未授权的。响应管理器可以提供包括对应用服务器资源的表面访问的假肯定响应。

权利要求 :

1.一种包括记录在计算机可读存储介质上且可通过至少一个处理器读取的指令的计算机系统,该系统包括:请求处理机,其在被配置为代表应用服务器资源接收用于访问应用服务器的应用服务器资源的访问请求的欺骗管理器处执行,其中所述应用服务器利用针对与所述应用服务器的操作相关联的合法通信的可用端口的第一子集,并且其中不需要用于所述合法通信的端口的第二子集被指定为针对与所述欺骗管理器的操作相联系的通信打开,所述请求处理机被配置为确定访问请求是未授权的,其中所述请求处理机包括探针检测器,其被配置为确定所述访问请求是关于端口的第二子集中的端口;以及响应管理器,其被配置为使所述至少一个处理器提供包括对应用服务器资源的表面访问的假肯定响应。

2.如权利要求1所述的计算机系统,其中,所述请求处理机被配置为在网络防火墙处执行。

3.如权利要求1所述的计算机系统,其中,所述请求处理机包括密码系统,其被配置为确定访问请求包括不与任何授权的用户相关联的假密码。

4.如权利要求1所述的计算机系统,其中,所述请求处理机被配置为与知识库通信,以便确定访问请求正在请求不可用的或不当请求的服务器资源,并相应地确定访问请求是未授权的。

5.如权利要求1所述的计算机系统,其中,所述请求处理机被配置为结合应用服务器的应用执行,而且其中,所述请求处理机被配置为检测应用级攻击。

6.如权利要求5所述的计算机系统,其中,所述请求处理机被配置为与欺骗者库代理通信,以便确定访问请求正在请求不可用的或不恰当地请求的应用级资源,并相应地确定访问请求是未授权的。

7.如权利要求1所述的计算机系统,其中,所述响应管理器被配置为在欺骗管理器处执行,该欺骗管理器被配置为代表应用服务器资源接收访问请求。

8.如权利要求7所述的计算机系统,其中,所述响应管理器被配置为执行为反向代理服务器,以便将未授权的访问请求重路由到诱骗服务器,该诱骗服务器被配置为提供表面访问。

9.如权利要求1所述的计算机系统,其中,所述表面访问模仿所请求的应用服务器资源的外观和功能。

10.如权利要求1所述的计算机系统,其中,所述访问请求是从客户端计算机接收的,而且其中,所述系统包括日志引擎,其被配置为在表面访问期间监控并存储客户端计算机的交互。

11.一种使至少一个处理器执行记录在计算机可读存储介质上的指令的计算机实现的方法,该方法包括:接收用于访问应用服务器的应用服务器资源的访问请求,其中所述应用服务器利用针对与所述应用服务器的操作相关联的合法通信的可用端口的第一子集,并且其中不需要用于所述合法通信的端口的第二子集被指定为针对与欺骗管理器的操作相联系的通信打开;

通过确定所述访问请求是关于端口的第二子集中的端口,确定访问请求是未授权的;

以及

提供包括对应用服务器资源的表面访问的假肯定响应。

12.如权利要求11所述的计算机实现的方法,其中,确定访问请求是未授权的包括:与知识库通信以便确定访问请求正在请求不可用的或不当请求的服务器资源;以及相应地确定访问请求是未授权的。

13.如权利要求11所述的计算机实现的方法,其中,提供假肯定响应包括:将未授权的访问请求重路由到诱骗服务器,该诱骗服务器被配置为提供表面访问,而且其中,该诱骗服务器被配置为提供包括模仿所请求的应用服务器资源的外观和功能的表面访问。

14.一种用于网络安全的设备,包括:

至少一个处理器;

数据存储器,具有存储于其上的指令,其中所述指令被配置为安排所述至少一个处理器执行:接收用于访问应用服务器的应用服务器资源的访问请求,其中所述应用服务器利用针对与所述应用服务器的操作相关联的合法通信的可用端口的第一子集,并且其中不需要用于所述合法通信的端口的第二子集被指定为针对与欺骗管理器的操作相联系的通信打开;

通过确定所述访问请求是关于端口的第二子集中的端口,确定访问请求是未授权的;

以及

提供包括对应用服务器资源的表面访问的假肯定响应。

15.如权利要求14所述的设备,其中,确定访问请求是未授权的包括确定访问请求是对于关闭的端口且是端口扫描攻击的一部分。

16.如权利要求14所述的设备,其中,该指令当被执行时,被配置为使至少一个处理器确定访问请求包括不与任何授权的用户相关联的假密码。

17.如权利要求14所述的设备,其中,所述访问请求是从客户端计算机接收的,而且其中,该指令当被执行时,被配置为使至少一个处理器在表面访问期间监控并存储客户端计算机的交互。

18.如权利要求14所述的设备,其中,该指令当被执行时,被配置为使至少一个处理器将未授权的访问请求重路由到诱骗服务器,该诱骗服务器被配置为提供表面访问,而且其中,该诱骗服务器被配置为提供包括模仿所请求的应用服务器资源的外观和功能的表面访问。

说明书 :

对未授权的访问请求使用假肯定响应的网络安全

技术领域

[0001] 本说明书涉及计算机安全。

背景技术

[0002] 网络计算资源的恶意的和其他不正当的潜在用户可能试图使用各种技术来获得对这样的计算资源的未授权的访问。例如,这样的未授权的用户(有时被称为黑客)可能试图获得对数据或其他资源的访问,该数据或其他资源以旨在向有限的一组授权的用户提供安全的、机密的访问的方式在网络上已经可用。在具体的例子中,公司可以提供被设计为与客户和潜在客户进行交互的公共网站,而且黑客可能试图以不期望的方式修改这样的网站,和/或修改或以其他方式访问用于支持相关网站的功能的机密数据。同时,网络使用上的目前趋势包括对基于网络/基于云(web-based/cloud-based)的应用的更多使用,包括对基于网络的数据存储的使用。因此,这样的趋势为黑客和其他未授权的用户提供增加的高价值目标。

发明内容

[0003] 根据一个总的方面,计算机系统可以包括记录在计算机可读存储介质上且可通过至少一个处理器读取的指令。该系统可以包括:请求处理机,其被配置为使所述至少一个处理器接收用于访问应用服务器的应用服务器资源的访问请求,并且确定访问请求是未授权的;以及响应管理器,其被配置为使所述至少一个处理器提供包括对应用服务器资源的表面访问的假肯定响应。
[0004] 根据另一个总的方面,用于使至少一个处理器执行记录在计算机可读存储介质上的指令的计算机实现的方法可以包括:接收用于访问应用服务器的应用服务器资源的访问请求。计算机实现的方法还可以包括确定访问请求是未授权的,以及提供包括对应用服务器资源的表面访问的假肯定响应。
[0005] 根据另一个总的方面,计算机程序产品可以被有形地具体实施在计算机可读介质上,并且计算机程序产品可以包括指令,该指令当被执行时,被配置为使至少一个处理器执行:接收用于访问应用服务器的应用服务器资源的访问请求;确定访问请求是未授权的;以及提供包括对应用服务器资源的表面访问的假肯定响应。
[0006] 一个或多个实现的细节将在附图和以下描述中阐明。从描述和附图以及从权利要求,其他特征将是明显的。

附图说明

[0007] 图1是用于向潜在的未授权的访问请求提供假肯定响应(false positiveresponse)的系统。
[0008] 图2是示出图1的系统的示例性操作的流程图。
[0009] 图3是示出与图1的系统的示例性配置相关的示例性操作的流程图。
[0010] 图4是示出图1的系统的运行的示例性实现的流程图。

具体实施方式

[0011] 图1是用于向潜在的未授权的访问请求提供假肯定响应的系统100的框图。通过提供这样的假肯定响应,系统100可以欺骗未授权的用户,使其至少在一段时间内相信,他们的未授权的访问尝试还没有被发现。因此,未授权的用户获得授权的访问可以更加困难(例如,更多的时间消耗和/或更加资源密集型)。此外,到达欺骗未授权的用户使他们相信他们已经获得了真实的、期望的对系统资源的访问的程度,未授权的用户可能满足于所获得的结果,并可能至少暂时停止进一步的访问尝试。再进一步地,到达欺骗未授权的用户使他们相信他们已经获得了期望的真实的访问的程度,未授权的用户可能继续与虚假提供的资源进行交互,从而,例如,这样的交互可以被系统100的操作者追踪,以便例如,对未授权的用户进行法律诉讼、或者以其他方式进行阻止或停止。
[0012] 在图1的例子中,欺骗管理器102可以被配置为与客户端计算机104交互,其中客户端计算机104可以被理解为代表可能是恶意的、未授权的、或其他不期望的访问请求的源。如这里详细描述的,欺骗管理器102可以被配置为访问知识库106,以便确定从客户端计算机104接收到的访问请求是否事实上是恶意的、未授权的,或其他不期望的。
[0013] 另外,欺骗管理器102可以与诱骗服务器108结合来利用知识库106,以便由此向任何这样的不期望的(或潜在的不期望的)访问请求提供欺骗性的假肯定结果。结果,如以上提到的以及如这里详细描述的,客户端计算机104的非法用户可能被欺骗为相信未授权的访问请求已经成功和/或还没有被检测到等,同时一直不能实现所期望的未授权的结果。因此,这样的非法用户可以被阻碍或防止实现这样的期望的、未授权的结果,而合法用户和/或提供者可以继续以便利的方式接收期望的访问,同时经历有限的或者不经历与从客户端计算机104的未授权的用户接收到的非法访问请求相关联的不便。
[0014] 在实践中,可以理解的是,欺骗管理器102和客户端计算机104可以使用任何合适的或相关的通信技术相互通信。例如,欺骗管理器102和客户端计算机104可以在任何合适的计算机网络上通信,包括公共网络(例如公共互联网、或者公共互联网的安全部分),或专用网络(例如,企业内部网)。
[0015] 例如,如在下面更详细的例子中的描述,欺骗管理器102可以与多个网络资源相关联,而且欺骗管理器102可以代表,或者被包括在,用于来自外部网络设备(包括客户端计算机104)的所有访问请求和其他通信的共同入口点(point of entry)。例如,在特定实施中,欺骗管理器102可以在其它常规防火墙设备的环境中、结合其它常规防火墙设备、或者作为其它常规防火墙设备的一部分执行。这样的防火墙设备,通过自身或一般公知的方法提供与安全相关的功能,包括,例如,数据的加密/解密、用户名/密码的维护和管理、以及与保持外部网络设备和底层的、后端的网络资源的机密性、有效性和授权相关的或者与外部网络设备和底层的、后端的网络资源之间的通信相关的其他各种已知的功能。
[0016] 因此,在这里所描述的实施例中,假定客户端计算机104已经被配置为猜测、推断、或以其他方式确定通过欺骗管理器102可以授权的访问请求的适当形式和/或内容。例如,客户端计算机104可以被配置为通过排除过程来进行重复的随机的尝试以建立这样的访问请求的形式和内容,直到确定适当的访问请求。如这里所述,欺骗管理器102可以被配置为检测这样的未授权的访问请求,通过向未授权的访问请求提供假肯定结果,从而欺骗客户端计算机104的操作者使其认为未授权的访问请求是成功的。
[0017] 为了使这种欺骗永久存在,欺骗管理器102可以从客户端计算机104向诱骗服务器108路由未授权的访问请求和随后的通信,诱骗服务器108可以被配置为以模仿已经由被非法请求的网络资源提供的真实通信的方式,响应未授权的访问请求和随后的通信。结果,客户端计算机104的操作者可能继续与诱骗服务器108交互一段时间,直到确定或猜测诱骗服务器108代表假肯定,或直至以其他方式决定停止与诱骗服务器108交互。在这样的交互期间,日志引擎110可以被配置为记录与客户端计算机104的操作者相关联的行动和其他通信。因此,系统100可以便于对客户端计算机104的操作者采取法律行动。在其他例子中,如下面更详细描述的,日志引擎110可以在用于检测和响应未授权的访问请求的未来尝试中实现系统100的改进的性能。
[0018] 在图1的例子中,应用服务器112被示出为网络资源的例子,其可以是客户端计算机104的操作者的未授权访问的目标。如所示,而且如众所周知的,应用服务器112可以与图1的例子中示出为端口114A、114B的多个端口相关联。
[0019] 例如,这样的端口可以包括或代表用于在两个应用之间直接通信(而不需要与主机的IP地址相关联的中间文件或其他存储装置)的逻辑/虚拟连接点,以及用于通信的协议的类型。主要使用端口的协议是运输层协议,诸如互联网协议族的传输控制协议(TCP)和用户数据报协议(UDP)。对于每个地址和协议,通过16位数字来识别端口,通常被称为端口号。
[0020] 因此,端口114A、114B可以被配置为提供特定类型的数据连接,从而每个特定类型的通信可以与端口中的一个或多个相关联。在实践中,各个端口可以与被指定为对应于特定类型的网络通信的具体数字相关联。例如,举几个例子来说,端口可以与FTP(文件传输协议)、Telnet或者BGP(边界网关协议)相关联。
[0021] 在实践中,应用服务器112和/或欺骗管理器102的操作者可能期望利用可用端口的子集与期望的或预期的受众进行合法通信。例如,在数百或数千的可用端口中,一打或更多的端口可以被指定为打开,以便执行合法通信。因此,在传统的情况下,剩余的端口可以被关闭。
[0022] 在图1的例子中,客户端计算机104可以被配置为执行端口扫描软件,该端口扫描软件扫描应用服务器112的所有端口,以便识别已经被配置为打开以用于数据通信的、可用端口的子集中的一个或多个端口。如果成功识别这样的打开的端口(否则这样的打开的端口通常只对被通知该端口可用的合法用户可用),则客户端计算机104的操作者可以使用所发现的打开的端口继续执行未授权的或不期望的通信。
[0023] 然而,在图1的例子中,端口的第二子集(其不需要与期望的受众进行合法通信)但是仍可以被指定为打开,以与欺骗管理器102的操作结合通信。在这种方式中,使用端口扫描软件的客户端计算机104的操作者可以认为已经发现打开的端口,此时实际上,所发现的且表面打开的端口代表用于如这里所述的欺骗客户端计算机104的操作者目的的、由欺骗管理器102提供的假肯定。
[0024] 因此,在图1的简化例子中,可能发生的是,端口114A被指定为打开以用于与应用服务器112的操作相关联的通信,而端口114B可以不要求用于这样的合法通信,但仍可以被虚假地指定为打开,用于欺骗客户端计算机104的操作者的目的。然后,在这样的情况下,客户端计算机104的操作者可以扫描所有可用的端口,尝试与其进行未授权的通信。
[0025] 因此,在这里例子中,如果端口114B被发现,那么欺骗管理器102可以推断或确定任何相关联的访问请求是未授权的,并因此可以将这样的访问请求和相关联的通信路由到诱骗服务器108,该诱骗服务器108可以被配置为模仿应用服务器112的操作从而欺骗客户端计算机104的操作者。
[0026] 如果客户端计算机104的操作者发现两个端口114A、114B表面打开,那么客户端计算机104的操作者可能仍无法确定哪一个端口代表真实打开的端口。类似地,即使客户端计算机104的操作者最初发现打开的端口114A,那么欺骗管理器102的潜在使用的知识可以使客户端计算机104的操作者怀疑与应用服务器112的任何随后的通信的真实性。
[0027] 因此,通过以表面打开的(但真实关闭的)端口的形式提供假的肯定,欺骗管理器102可以迷惑或以其他方式阻碍客户端计算机104的操作者,并因此可以使这样的基于端口的攻击对于客户端计算机104的操作者而言不那么有效,并因此不太可能出现和/或造成损害。到达通过欺骗管理器102和诱骗服务器108欺骗客户端计算机104的操作者使其与诱骗服务器108继续通信的程度,日志引擎110可以被用于追踪和记录这样的交互,从而便于进行针对客户端计算机104的操作者的法律行动和/或未来威慑努力。
[0028] 在附加的例子中,如所示,应用服务器112可以被配置为执行应用116。如众所周知的,应用116和应用服务器112实质上可以代表在网络上可用的任何这样的应用。例如,应用116可以与被设计用于在公共互联网上执行零售交易的商业网站相关联。在其他例子中,应用116可以代表被设计为支持和以其他方式便于企业的操作的业务软件。当然,作为参考,存在应用116的许多其他例子,并且这些例子对本领域技术人员而言将是公知的。
[0029] 如同样已知的,除了上面提到的对于端口114A、114B的网络级攻击,客户端计算机104还可以被配置为对应用116执行应用特定型攻击。例如,应用116可以通过使用授权的用户名/密码组合被保护,在向应用116提供某些类型的访问(例如,访问权限管理)之前,需要由授权的用户输入所述授权的用户名/密码组合。因此,与上述基于端口的扫描技术有些类似,客户端计算机104可以被配置为猜测、推断或确定这样的用户名/密码组合(例如,使用作为排除过程的一部分的随机字符组合),从而由此获得对应于116的操作的未授权的访问。
[0030] 客户端计算机104可以发起其它类型的应用级攻击。例如,可以实现目录遍历攻击,其中资源定位符(例如,在传统的网络浏览器的地址栏的环境中使用的统一资源定位符或URL)被客户端计算机104操纵,以尝试猜测使用应用116和/或应用服务器112存储的、其他方式不可用的文件或文件夹。换句话说,客户端计算机104的操作者可以遍历应用116的目录结构,并由此识别尚未公开可用的资源,而且该资源因此可能被认为是安全的或者不能被未授权的用户访问。
[0031] 例如,应用服务器112可以提供网站的域和相关联的应用116,这些中的许多可以被配置为例如通过使用超链接可公开访问的。同时,应用服务器112的操作者或管理员可以包括私人网页,该私人网页可以被用于,例如,支配和管理各种相关的网站和应用,和/或用于管理例如客户数据的私人数据。这种非公开的站点可以与具体的、非公开的统一资源定位符(URL)相关联。例如,示例的公开网页www.homepage.com可以与例如www.homepage.com/customer_data或www.homepage.com/admin_page的非公开的网页相关联。通过试错(trail and error)进程或其他进程,客户端计算机的104的操作者可以使用基本网站名称www.homepage.com进入、猜测或以其他方式确定被设计且预期为非公开的这样的页面。随后,在传统的系统中,此后可以使得客户端计算机104的操作者能够以非法的或未授权的方式访问或修改数据。
[0032] 客户端计算机104的操作者可以实现各种其它类型的非法访问请求和相关联的攻击技术。例如,如所示,应用116可以包括传统的控制器116A和相关联的页面模型116B。如公知的,控制器116A可以被理解为接收来自用户的输入、咨询页面模型116B、并向发出请求的用户返回期望的信息或功能。在系统100的环境中,客户端计算机104的操作者可以试图强行或以其他方式利用控制器116A和页面模型116B的操作,以便获得期望的、非法的结果。
[0033] 例如,在被称为客户端脚本(CSS)的技术中,客户端计算机104的操作者可以修改被设计为在客户端计算机104处执行的客户端脚本,以便由此使客户端脚本反而修改控制器116A的一般操作。换句话说,客户端计算机104的操作者可以使用仅在特定客户端计算机104处被观看和使用的脚本设计以影响为应用116的许多或所有其他用户观察和利用的应用116的操作。
[0034] 在其他例子中,可以发生的是,页面模型116B包括数据库或者与数据库相关联,数据库诸如是使用流行的结构化查询语言(SQL)管理的数据库。如已知的,SQL是流行的数据库管理语言,其使用户能够修改(更新、删除)、维护或以其他方式管理大型关系数据库。在这些情况下,客户端计算机104的操作者可以利用被称为SQL注入以包括SQL命令的技术,以其他方式与控制器116A正常交互。换句话说,客户端计算机104的操作者可以修改正常或预期的用户输入以便包括非法的或未授权的SQL命令,从而控制器116A此后可以执行未授权的SQL命令。例如,客户端计算机104的操作者可以包括用于从与模型116B相关联的数据删除客户数据的整个数据表的SQL命令。以此方式,客户端计算机104的操作者可以扰乱应用116的操作者,或以其他方式从应用116获得未授权的响应。
[0035] 在许多情况下,上面所提到的各种攻击技术以及相关的攻击技术可以与用于执行上述功能的已知软件相关联。例如,被称为John the Ripper的软件被用于生成潜在的密码,以获得对密码保护的系统的访问。在图1的例子中,这样的已知的攻击软件可以被包括在支持工具/插件118中,或者与支持工具/插件118结合使用。具体而言,如所示,支持工具/插件118可以由知识库106使用,以便更新和配置知识库106,用于随后当评估来自客户端计算机104的访问请求时由欺骗管理器102参考。
[0036] 另外,如以上所提到的,知识库106也可以基于存储在日志(log-in)数据库120中的信息被更新,日志数据库120可以在利用诱骗服务器108执行监控和追踪客户端计算机104的交互的过程中基于日志引擎110的操作被更新,如这里所述的。因此,日志数据库120可以被知识库106使用,或者与知识库106结合,以便保持知识库106的更新的版本,从而知识库106被配置为相对于来自客户端计算机104的访问请求的评估、以及时且准确的方式指示欺骗管理器102。
[0037] 因此,在实践中,请求处理机122A、122B可以被配置为接收来自包括客户端计算机104的各种计算机的访问请求。具体而言,相对于请求处理机122A,如这里所述,欺骗管理器
102可以结合防火墙设备实现,或者实现为防火墙设备的一部分,该防火墙设备被定位在网络上以便接收目的地为应用服务器或其他网络资源的所有访问请求。因此,请求处理机
122A可以被恰当地定位以便截取或以其他方式接收来自客户端计算机104的访问请求。
[0038] 如这里所述,请求处理机122A可以咨询知识库106,以便例如确定给定的接入请求是未授权的。因此,响应管理器124A可以被配置为执行适当的响应,包括将来自发起未授权请求的客户端计算机104的当前特征通信路由到诱骗服务器108。例如,如这里所述,响应管理器124A可以被配置为结合反向代理服务器(reverse proxy)执行、或者作为反向代理服务器的一部分执行,反向代理服务器通常被用于使用多个后端服务器来执行负载平衡和/或故障转移(fail over)功能。
[0039] 也就是说,例如,传统的网站可以利用许多应用服务器以提供单一的网站,从而正常的访问请求可以以平衡方式在各种可用的服务器之间路由,和/或即使在一个或多个可用服务器出现故障的情况下也可以被适当地处理。然而,在图1的例子中,如这里所述,出于将来自客户端计算机104的未授权的访问请求和随后的通信路由到诱骗服务器108的目的,响应管理器124B可以被配置为利用类似的功能,诱骗服务器108被配置以模仿所请求的网络资源(例如,应用服务器112)的操作。
[0040] 在图1中,与上面提供的例子一致,请求处理机122A可以包括探针检测器(probe detector)126,其被配置为相对于端口114A、114B检测客户端计算机104的端口扫描操作。例如,如上文所述,可以发生的是,为了合法的数据流量(data traffic),端口114A被配置为打开,为了合法的数据流量可以不需要端口114B,但是端口114B仍可以被配置为打开。
[0041] 随后,当从客户端计算机104接收到相对于端口114B的访问请求时,探针检测器126可以结合知识库106确定,端口114B已经被配置为只是为了欺骗提交未授权的访问请求的客户端计算机104的操作者而打开的。类似地,请求处理机122A的密码系统128可以被配置为接收来自客户端计算机104的假密码,并从而确定客户端计算机104正在尝试获取对例如应用116的未授权的访问。即,例如,可以发生的是,密码系统128可以被配置为通过例如结合或者增加到可以相对于应用116存在的任何真实的、授权的用户名/密码组合,来生成多个假用户名和/或密码。
[0042] 然后,在这样的例子中,可以理解的是,应用116的真实的用户可以提交其正常的、授权的用户名/密码组合,以获得对应用116的期望的访问。同时,这样的授权的用户可能不知道存在多个假的用户名/密码组合,这些假的用户名/密码组合存在只是为了欺骗客户端计算机104的操作者使其相信已经实现对应用116的期望的、未授权的访问。
[0043] 因此,结合探针检测器126和密码系统128二者,可以理解的是,请求处理机122A可以被配置为确定从客户端计算机104接收到的未授权的访问请求的未授权的性质。于是,响应管理器124可以被配置为将未授权的访问请求和随后的通信路由到诱骗服务器108,如这里所描述的。
[0044] 然而,在许多情况下,请求处理机122A可能错误地将未授权的访问请求识别为授权的和允许的。类似地,请求处理机122A可能在其尝试将特定的访问请求分类为授权的或未授权的时候得到不确定的结果。
[0045] 特别是,相对于上面提到的包括例如目录遍历攻击、客户端脚本攻击和/或SQL注入式攻击的应用级攻击的情况,位于欺骗管理器122处的请求处理机122A可能很难或不可能识别这样的访问请求以及相关访问请求的未授权的性质。
[0046] 特别是,这种类型的访问请求可以特别针对应用116本身的环境,并因此可能很难或不可能通过欺骗管理器102在网络级检测到。然后,在图1的例子中,欺骗者库代理130可以被配置为结合请求处理机122B将访问请求识别为未授权的。例如,存在许多已知的技术,用于检测SQL注入尝试、和上述其他各种应用级攻击以及相关攻击类型。例如,存在使得能够检测嵌入式SQL命令的输入验证和消毒技术,从而能够对相关联的用户输入进行消毒处理(即,可以去除侵犯型的SQL注入尝试、或者丢弃相关联的用户输入的全部)。
[0047] 在图1的例子中,然而,不是丢弃消毒的用户输入,而是响应管理器124B结合欺骗者库130可以被配置为辨认与上述类型的攻击相关联的未授权的访问请求,并在此之后通知欺骗管理器102的响应管理器124A,以便将来自客户端计算机104的未授权的访问请求和随后的通信路由到诱骗服务器108。
[0048] 因此,系统100可以被配置为发送用于代码区域的假的成功响应,该代码区域通常是在防火墙或入侵检测系统的边界之外。例如,这运行发送响应于目录遍历的响应代码,其由此可以迷惑攻击者,并使他们的攻击方法没用。类似地,诱骗服务器108可以被用于假装接收到的SQL注入是成功的,同时不破坏结合分离的合法的访问请求的应用116的正常行为。
[0049] 图1示出系统100的示例性框图,其中如图所示示出和描述了各种功能块。当然,可以理解的是,图1的系统100仅仅旨在为了示例,并且可以提供许多附加的或可替换的实现。
[0050] 例如,图1的例子中在一个位置处示出的组件可以在全部或部分地在它的不同位置处被实现。一般地,图1的例子中的任何单个组件也可以使用两个或更多个组件执行,其中每个组件执行单一的、示出的组件的功能的相应子集。类似地,但反过来说,图1的组件中的任何两个或更多个也可以使用单一组件执行。
[0051] 图2是示出图1的系统100的示例性操作的流程图200。在图2的例子中,操作202至操作206被示出为分离的、顺序的操作。然而,可以理解的是,在附加的或可替换的实现中,操作202至操作206可以以部分或完全重叠或并行的方式执行,和/或可以以嵌套的、迭代的或成环的方式实现。此外,附加的或可替换的操作可以被包括,而一个或多个操作可以被删除。
[0052] 在图2的例子中,可以接收用于访问应用服务器的应用服务器资源的访问请求(202)。例如,请求处理机122A、122B可以接收相对于应用服务器112的应用116的和/或相对于与应用服务器112相关联的各个端口114A、114B的这样的访问请求。例如,探针扫描器126可以从客户端计算机104接收用于访问关闭的端口114B的端口请求。类似地,密码系统128可以从客户端计算机104接收假的用户名/密码。再进一步地,请求处理机122B可以接收相对于应用116的访问请求,其是目录遍历攻击、客户端脚本攻击或SQL注入攻击的一部分。
[0053] 可以确定访问请求是未授权的(204)。例如,请求处理机122A、122B或其组件可以咨询知识库106,以便例如确定给定的接入请求是未授权的。例如,探针扫描器126可以咨询知识库106以便确定所请求的端口(例如,端口114B)只是为了欺骗未授权的用户而打开的。类似地,密码系统128可以与知识库106和相关联的支持工具/插件118结合操作,支持工具/插件118可以提供对识别接收假密码有用的信息。更进一步地,应用116处的请求处理机
122B可以结合欺骗者库代理130来确定访问请求与目录遍历攻击、客户端脚本攻击或SQL注入攻击相关联。
[0054] 可以提供包括对应用服务器资源的表面访问的假肯定响应(206)。例如,如所描述的,响应管理器124A、124B可以被配置为将来自客户端计算机104的未授权的访问请求和随后的通信路由到诱骗服务器108。如所描述的,与端口扫描攻击、密码破解攻击和各种应用级攻击中的任何攻击结合,诱骗服务器108可以被配置为欺骗客户端计算104的操作者使其相信他或她具有对期望的应用资源的访问。因此,如所描述的,日志引擎110可以被配置为追踪和监控客户端计算机104的操作者与诱骗服务器108的交互,以便帮助在未来威慑相同的或未来的攻击者,或对客户端计算机104的操作者提起法律诉讼或其他行动。
[0055] 图3是示出与配置图1的系统100相关联的示例性操作的流程图300。因此,图3的例子示出了行动,该行动可以由与客户端计算机104通信的系统100中的欺骗管理器102、应用服务器和/或各种其它组件的操作者或管理员来采取。
[0056] 在图3的例子中,可以配置假的打开的端口(302)。例如,如所描述的,端口114B(真实的、授权的网络通信不期望或需要该端口114B)仍可以被指定为打开的,用于欺骗客户端计算机104的操作者。如以上所提到的,例如,与应用服务器112相关联的可用端口的数目可以在数百或数千的范围内。因此,可以期望的是,确定要被指定为打开的关闭的端口的数目或百分比。例如,在与应用服务器112的合法操作期间,可能发生的是,只有很小数量的可用端口期望用于应用服务器112的授权的操作。然后,系统100的操作者或管理员可以决定被指定为要打开的其余端口的数量或百分比。
[0057] 在这方面,因为可以理解的是,欺骗管理器102的目标是相对于由诱骗服务器108模仿应用服务器112来欺骗客户端计算机104的操作者。因此,可能不期望的是,将所有关闭的端口指定为打开,因为或在一定程度上,打开与应用服务器112的操作结合的所有端口是不寻常的。相反,基于利用错误结果淹没(flood)客户端计算机104的操作者的期望,可以选择剩余的要打开的端口的数目,而同时通过简单地打开所有可用的端口不警告客户端计算机104的操作者存在这种欺骗。
[0058] 可以配置假密码(304)。例如,如上所述,知识库106可以与支持工具/插件118交互,以确定客户端计算机104的操作者在尝试获对应用116的访问时可能选择的密码的类型。在附加或可替换的例子中,密码系统128可以被配置为产生假密码,其与授权的用户的真实密码有关或类似。
[0059] 此外,可以发生的是,为了方便起见,应用116的网络管理员和其他用户可能倾向于使用某些标准密码,但是代价是为诸如客户端计算机104的操作者的攻击者潜在地提供访问。例如,许多系统管理员可能使用诸如“administrator”或“password”的词以用作密码。因此,密码管理器128可以被配置为接收来自客户端计算机104的访问请求并结合这样的标准密码,在该例子中密码管理器128将这样的标准密码用作假密码,以欺骗客户端计算机104的操作者无害地与诱骗服务器108交互。然而,为了避免拒绝合法用户的访问,密码管理器128可以咨询知识库106或其他适当的资源,以便考虑这样的标准密码已经被授权的用户使用(即,即使在这些密码已经被存储为潜在的假密码的情况下)的可能性。在这种情况下,为了授予即时访问请求,密码管理器128可以考虑接收到的密码是合法的,但是密码管理器128可以指示应用116的请求处理机122b对于潜在的未授权的行动更仔细地检查后续的应用相关的请求。
[0060] 可以对于每个应用配置欺骗者库代理130(306)。也就是说,如以上所提到的,请求处理机122B、响应管理器124B和欺骗者库代理130可以被期望或被要求在相应的特定应用的环境中实现。例如,当使用其它传统工具来检测上面所提到的攻击类型时可以期望或要求这样的实现。
[0061] 可以配置知识库106以提供期望的响应(308)。例如,如以上所提到的,响应管理器124可以被配置为咨询知识库106以便确定除了或替代将客户端计算机104的操作者的通信重路由到诱骗服务器108的、所需的响应。例如,知识库106可以被配置为将在欺骗管理器
102的一部分上的假肯定响应指定为包括如下到客户端计算机104的操作者的返回消息:访问已经授权但由于某些特定的或非指定的原因而延迟。换句话说,知识库106可以被配置为除了或替代将未授权的访问请求和相关联的通信重路由诱骗服务器108使响应管理器124A提供假肯定响应。如以上相对于图1所提到的,支持工具/插件118可以被知识库106用于保持用于监控访问请并对其响应的当前的、最新的技术。
[0062] 可以配置欺骗管理器以访问知识库(310)。例如,请求处理机122A和响应管理器124A可以被配置为使用一个或多个适当的应用编程接口(API)来访问知识库106。诱骗服务器108可以被配置为实现期望的响应(312)。例如,如所描述的,诱骗服务器108可以被配置为模仿应用116或其他期望的应用资源。因此,客户端计算机104的操作者的经历可以与直接同应用116交互的经历完全一致。
[0063] 结果,在诱骗服务器108的环境中,任何不正当的、非法的或其他不期望的行为可以被观察到。当然,在示例性实施例中,诱骗服务器108可以被配置为向与诱骗服务器108非法或其他不当通信的客户端计算机104的操作者提供各种不便。因此,诱骗服务器108不需要精确地模仿应用116,而是,相反,可以被配置为以这样的方式行动:给客户端计算机104的操作者造成不便、和/或鼓励客户端计算机104的操作者继续与诱骗服务器108交互,从而日志引擎110可以执行其期望的目的。
[0064] 图4是示出图1的系统100的示例性运行的流程图400。在图4的例子中,可以接收端口访问请求(402)。例如,探针扫描器126可以接收来自客户端计算机104的、对于端口114A或端口114B的请求。在访问请求针对端口114B的情况下,探针扫描器126可以确定,该访问请求是针对假的或欺骗性打开的端口,并因此可以将来自客户端计算机104的请求和随后的通信路由到诱骗服务器108(422)。否则,如果该访问请求针对合法打开的端口114A,则客户端计算机104可以被提供对应用116的访问(408)。
[0065] 类似地,请求处理机122A(例如,密码系统128)可以接收访问应用116或其它网络资源的请求(410)。密码系统128可以访问知识库106(412),以便判断该访问请求的合法性。如果允许(413),则可以授予应用访问。否则(413),如果该应用被密码系统128保护(410),则当接收到用户名/密码组合时(414),密码系统128可以确定接收到的密码是否代表假密码(416)。
[0066] 如果接收到的密码代表假密码,则密码系统128可以将来自客户端计算机104的访问请求和随后的通信路由到诱骗服务器108(422)。否则,如以上所提到的,即使结合知识库106,请求处理机122A也可能很难确定特定应用的请求是否是合法的。因此,如上所述,请求处理机122A可以提供对应用116的初始访问(408),而同时确保请求处理机122B和欺骗者库代理130对于访问请求的操作。
[0067] 具体来说,请求处理机122B可以接收访问请求并访问欺骗者库代理130(418),从而由此确定访问请求是否是未授权的(420)。如果没有做出这样的确定,则可以继续提供应用访问(408)。
[0068] 否则,如所描述的,可以发生的是,请求处理机122B与欺骗者库代理130结合可以确定,访问请求是与上面提到的例如目录遍历攻击、客户端脚本攻击或SQL注入式攻击的一种或多种类型的攻击相关联。在这种情况下,响应管理器124B可以将对应用116的当前和未来的接入请求路由回到欺骗管理器102处的响应管理器124A,用于将所述接入请求路由到诱骗服务器108(422)。
[0069] 随后,可以为以上提到的各种类型攻击中的任何攻击实现预定的响应计划(424)。例如,日志引擎110可以被配置为监控和追踪客户端计算机104和诱骗服务器108之间的交互,并从而相应地更新日志数据120。同样如上所述,也可以实现其他各种行动,包括法律诉讼和/或对客户端计算机104的警告消息或其他消息。在一些实现中,日志数据120可以用于更新知识库106(426),从而保持关于已有的攻击技术的当前的、最新的信息。
[0070] 这里描述的各种技术的实现方式可以被实施在数字电子电路中,或者实施在计算机硬件、固件、软件,或者它们的组合中。实现方式可以实施为计算机程序产品,即有形地具体实施在信息载体中的计算机程序,信息载体例如在机器可读存储设备中或者在传播的信号中,以供数据处理装置执行或者控制数据处理装置的操作,所述数据处理装置例如可编程处理装置、计算机或多个计算机。计算机程序,诸如上面描述的计算机程序,可以用任何形式的编程语言编写,包括汇编语言或解释语言,并且,它可以被以任何形式部署,包括作为独立的程序或者作为模块、组件、子程序或其他适于在计算环境中使用的单元。计算机程序可以被部署为在一个计算机上执行或在位于一个地点或跨过多个地点分布并被通信网络互连起来的多个计算机上执行。
[0071] 方法步骤可以被一个或多个可编程处理器执行,所述可编程处理器执行计算机程序,以便通过对输入数据操作和产生输出来执行功能。方法步骤还可以被专用逻辑电路执行,或者装置可以被实施为专用逻辑电路,所述专用逻辑电路例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
[0072] 作为例子,适于执行计算机程序的处理器包括通用和专用微处理器,以及任何类型的数字计算机的任意一个或多个处理器。一般来说,处理器将从只读存储器或随机存取存储器接收指令和数据,或者从两者都接收指令和数据。计算机的元件可以包括至少一个用于执行指令的处理器,和用于存储指令和数据的一个或多个存储器设备。一般来说,计算机还可以包括,或者被可操作地连接,以从一个或多个用于存储数据的海量储存设备接收数据,或把数据传送到海量储存设备,或者二者皆有,所述海量储存设备例如:磁盘、磁光盘或光盘。适于具体实施计算机程序指令和数据的信息载体包括所有形式的非易失性存储器,作为例子,包括半导体存储器器件,例如:EPROM、EEPROM和闪存设备、磁盘,例如内置硬盘或可移动磁盘、磁光盘和CD-ROM以及DVD-ROM盘。处理器和存储器可以以专用逻辑电路补充,或者被包含在专用逻辑电路中。
[0073] 为了提供和用户的交互,实现方式可以在具有显示设备和键盘以及定点设备的计算机上实施,显示设备例如阴极射线管(CRT)或液晶显示器(LCD)监控器,用于向用户显示信息,键盘和指示设备例如鼠标或轨迹球,用户利用它们可以提供到计算机的输入。其他种类的设备也可以被用来提供和用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈,并且,可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。
[0074] 实现方式可以被在包括后端组件或包括中间件组件或包括前端组件的计算系统中实施,或者在这些后端、中间件、前端组件的任意组合中实施,后端组件例如数据服务器,中间件组件例如应用服务器,前端组件例如具有图形用户界面,或Web浏览器的客户端计算机,通过图形用户界面或Web浏览器,用户可以和实现方式进行交互。可以利用数字数据通信的任何形式或介质互连组件,数字数据通信介质例如通信网络。通信网络的例子包括:局域网(LAN)和广域网(WAN),例如因特网。
[0075] 虽然如这里所描述的那样已经示出了所描述的实现方式的某些特征,但是本领域普通技术人员现在应当想到很多修改、替换、变化或等同物。因此应当理解,所附权利要求旨在覆盖落入实施例的范围内的所有这样的修改和变化。