一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于基础设施即服务安全性的蜜罐的制作方法

2022-04-14 01:57:30 来源:中国专利 TAG:

用于基础设施即服务安全性的蜜罐
1.相关申请的交叉引用
2.本技术依据35 u.s.c.119(e)要求于2019年9月4日提交的标题为“honeypots for infrastructure-as-a-service security”的美国申请no.62/895,847和于2020年9月1日提交的标题为“honeypots for infrastructure-as-a-service security”的美国申请no.17/009,634的优先权权益,这些申请的内容通过引用整体并入本文,用于所有目的。
技术领域
3.本公开涉及计算机安全,并且更具体地,涉及用于使用蜜罐(honeypot)来引诱攻击者并收集与基础设施即服务(iaas)实例上的攻击模式(attack pattern)有关的数据的技术。收集到的数据然后可以被分析并用于主动防止此类攻击。


背景技术:

4.随着基于云的服务(例如,软件即服务(saas)、平台即服务(paas)、基础设施即服务(iaas))的快速增长和流行,越来越多的组织(例如,公司、企业、政府实体、教育机构)正在订阅由云服务提供商提供的云服务,以执行其关键业务操作。随着此类云提供的产品数量的增加,云服务提供商正面临越来越多的安全威胁,这些威胁来自恶意用户对提供云服务的基础设施的攻击。云服务的订阅者(例如,组织)也受到这些攻击的不利影响。能够识别和防止此类攻击符合用户和云服务提供商二者的最大利益。
5.然而,关于云产品,很多时候不清楚攻击将如何发生和/或如何防止它。这是因为云安全相对来说是非常新的——与传统的网络和/或设备级别的安全相比,它是一种较新的安全类型。现有的云安全解决方案本质上非常简单和被动——我们受到了攻击,现在让我们弄清楚该怎么做。
6.虽然早期的云攻击针对的是提供saas和paas服务的实例,但最近,随着越来越多的计算、存储和虚拟网络被抽象到云中并经由各种iaas实例而暴露,因此对iaas实例的攻击增加。例如,比特币等加密货币的流行导致iaas实例受到攻击以“窃取”计算、存储器和联网资源来执行需要大量计算机、存储、和联网资源的加密货币挖掘(例如,比特币挖掘)的频率越来越高。与saas和paas攻击相比,iaas攻击更不为人所知。


技术实现要素:

7.本公开涉及计算机安全,并且更具体地,涉及用于使用蜜罐来引诱攻击者并收集关于基础设施即服务(iaas)实例上的攻击模式的数据的技术。然后可以分析收集到的数据并将其用于主动防止此类攻击。本文描述了各种实施例,包括方法、系统、存储程序、代码或可由一个或多个处理器执行的指令的非暂态计算机可读存储介质等。
8.在某些实施例中,提供了用于引诱攻击者与蜜罐服务器建立会话的技术。蜜罐服务器接收来自攻击者的请求,其中该请求与基础设施即服务实例(iaas实例)相关。蜜罐服务器生成对该请求的响应,并使该响应响应于该请求而被传送给攻击者。蜜罐服务器还记
录与攻击者相关的数据,以及与攻击者和蜜罐服务器进行的一次或多次交互相关的数据。在一些实施例中,可以提供蜜罐服务器的网络(称为蜜网(honeynet))。
9.作为处理从攻击者接收到的请求的一部分,蜜罐服务器确定对应于该请求的动作。该动作可以例如是请求对iaas实例进行实例化的动作。然后,蜜罐服务器使用计算机资源、存储资源或联网资源中的至少一者来实例化所请求的iaas实例。然后,蜜罐服务器将响应发送回攻击者,指示iaas实例已被成功实例化。
10.在某些情况下,从攻击者接收到的请求可以请求使用iaas实例执行动作,其中iaas实例先前已经被实例化。然后,蜜罐服务器可以通过将该动作应用于先前实例化的iaas实例来生成对该请求的响应。
11.在某些实施例中,蜜罐服务器可以确定该请求请求执行动作,其中该动作将实例化iaas实例。然后,蜜罐服务器可以生成对该请求的响应,指示所请求的iaas实例已经被成功实例化,但实际上没有实例化该iaas实例。在一些情况下,来自攻击者的请求可能请求使用iaas实例来执行操作。蜜罐服务器被配置为生成对所请求的动作的适当响应,而实际上不执行该动作并且也不实例化iaas实例。在这种场景中,蜜罐服务器可以使用规则信息来生成适当的响应。例如,规则信息可以包括识别多个动作的信息,以及对于每个动作识别与该动作对应的至少一个响应的信息。然后,蜜罐服务器可以使用该规则信息来为攻击者请求的动作找到适当的响应。在一个实施例中,蜜罐服务器可以搜索规则信息以在规则信息中找到某个条目,与该条目对应的动作与攻击者所请求的动作相匹配。然后,蜜罐服务器可以使用该条目来确定要发送给攻击者的响应,以便使攻击者相信所请求的动作已经被成功执行。
12.可以使用不同的技术来将攻击者引诱到蜜罐服务器。例如,可以通过攻击者通常进行搜索以策划攻击的一个或多个端口(诸如shell(ssh)端口22或文件传输协议(ftp)端口21)来广告一组一个或多个凭证。这些凭证可以包括用户名-密码对、证书、密钥、标识符(例如,租户标识符)等。
13.攻击者可以有不同的类型。例如,攻击者可能是自动化机器人。在一些情况下,攻击者可能是使用应用(诸如浏览器、基于gui的应用等)来策划攻击的用户。
14.在参考以下说明书、权利要求和附图时,前述内容以及其它特征和实施例将变得更加清楚。
附图说明
15.图1描绘了根据某些实施例的包括蜜罐的蜜网的实施方式。
16.图2描绘了根据某些实施例的包括蜜罐的蜜网的另一个实施方式。
17.图3是根据某些实施例的分布式环境的简化框图,该分布式环境结合了包括一个或多个蜜罐的蜜网。
18.图4是根据某些实施例的蜜罐服务器的简化框图。
19.图5描绘了根据某些实施例的蜜罐服务器的简化框图。
20.图6是根据某些实施例的蜜罐服务器的简化框图。
21.图7是根据某些实施例的示例蜜罐实施方式的流程图。
22.图8是图示根据某些实施例的用于实现云基础设施即服务系统的一个模式的简化
框图。
23.图9是图示根据至少一个实施例的用于实现云基础设施即服务系统的另一个模式的简化框图。
24.图10是图示根据某些实施例的用于实现云基础设施即服务系统的另一个模式的简化框图。
25.图11是图示根据某些实施例的用于实现云基础设施即服务系统的另一个模式的简化框图。
26.图12是图示根据某些实施例的示例计算机系统的简化框图。
具体实施方式
27.在以下描述中,出于解释的目的,阐述了具体细节以便提供对某些实施例的透彻理解。然而,显然可以在没有这些具体细节的情况下实践各种实施例。附图和描述并非旨在限制。词语“示例性”在本文用于表示“用作示例、实例或图示”。本文描述为“示例性”的任何实施例或设计不一定被解释为优选或优于其它实施例或设计。
28.随着更多的业务操作被抽象到云,给定组织的整体威胁面同时增加。需要内部来源的威胁情报馈送,以更好地理解云环境如何在自然环境中(in the wild)受到攻击。
29.本公开涉及计算机安全,并且更具体地,涉及用于使用蜜罐来引诱攻击者并收集关于基础设施即服务(iaas)实例上的攻击模式的数据的技术。然后可以使用收集到的数据来主动防止此类攻击。
30.在某些实施例中,设立一个或多个蜜罐服务器(蜜罐),其中每个蜜罐服务器(蜜罐)是为攻击者进行某种不法活动而故意设立的某个端点节点。例如,虚假的银行应用、与关键基础设施相关的应用(例如,支付处理、石油钻井平台温度)等。此类蜜罐被用于收集关于攻击者的数据。
31.在某些实施例中,可以部署蜜罐以欺骗恶意用户(本文称为攻击者)认为攻击者已经破坏了真实实例(诸如真实的基础设施即服务(iaas)实例),而实际上攻击者正在使用由蜜罐服务器提供的孤立的虚假或虚拟资源进行操作,对受保护的资源没有实际影响。可以部署蜜网(或者说,此类蜜罐的网络)以模拟由云服务提供商提供的iaas服务或服务产品。例如,可以提供蜜网(或多个蜜网)来模拟由oracle提供的oracle云基础设施(oci)iaas服务。作为另一个示例,可以将一组服务器设立为具有一组受限计算资源来挖掘比特币的蜜网。
32.可以使用比如安全壳(ssh)或文件传输协议(ftp)之类的协议来设立蜜罐服务器。蜜罐可以设置有一些凭证(例如,用户名-密码对、密钥等),攻击者可以访问这些凭证和用其进行登录。使攻击者觉得他们通过访问真实的iaas实例而中了“大奖(jackpot)”。
33.当攻击者与虚假iaas实例交互时,蜜网基础设施被配置为向攻击者提供适当的响应以欺骗攻击者相信攻击者正在与真实iaas实例而不是虚假实例进行交互。在某些实施例中,可以为提议的攻击者建立预先制定的/预先准备的交互流。
34.攻击者与蜜罐(和蜜网)的交互被记录或记载。为攻击者记录的数据可以包括攻击者的活动(例如,威胁行动者的用户行为模式、用户独有的其它属性)、关于攻击者的独特属性,诸如特定攻击者的连接和设备级别的属性(例如,连接信息、攻击者用于发起攻击调用
和请求的设备的ip地址、自治系统编号(asn)跟踪路由信息、域名等)以及与攻击相关的其它数据。记录的数据可以包括关于攻击者的一系列动作、由攻击者访问的对象、由攻击者进行的api调用(例如,由攻击者进行的rest api调用)等的数据。
35.然后可以分析记载的数据以识别关于攻击模式的信息和分析。例如,记载的数据可以被用于回答诸如以下的问题:攻击者是如何策划攻击的;攻击者在攻击什么;攻击背后的目的或意图是什么;攻击的频率是多少;等等。
36.如本文所描述的,蜜网为云安全提供了附加且必要的保护机制,在云安全中,威胁向量通常不是二元的,而是由多个顺序的动作或独特属性组成的。当集成到数据湖及其各自的提取、加载和变换机制中时,有可能使用无监督机器学习技术来确定新的零日(new zero day)威胁(例如,以前从未见过的威胁)。
37.然后可以使用由蜜网捕获或记录的数据来唯一地识别特定的攻击者和攻击者的类别并找到关于他们的攻击的模式。使用蜜网收集到的数据对于理解攻击机制和防止这些攻击机制继续是重要的,包括组织可能不知道的零日漏洞。蜜网服务可以作为安全服务提供,使得当特定ip地址被识别为不良地址时,可以对其进行标记并采取适当的动作。
38.由蜜网记录或记载的数据可以被发送到分析平台以进行分析。例如,可以将记录的数据发送到基于人工智能(ai)的机器学习(ml)平台,以构建用于识别此类攻击的一个或多个模型。蜜网系统捕获的数据提供了有价值的相关训练数据,该数据可以被用于进一步增强正被用于识别安全威胁的机器学习技术。可以使用由蜜网记载的数据来构建新的增强安全模型。
39.由蜜网针对攻击者或多个攻击者记录的数据可以被用于各种目的。在某些实施例中,由一个或多个蜜网收集到的数据可以从蜜网转发到集中化的记载服务器。记载服务器然后可以转发收集到的数据或提供对收集到的数据的访问以进行分析。例如,可以转发收集到的数据以供被配置为识别攻击者和类似威胁的威胁情报工具进行分析和使用。例如,威胁情报工具可以使用收集到的ip网络信息及其与威胁行动者的关联来识别类似攻击。收集到的数据(例如,密钥对值、事件、对象信息等)可以被馈送到机器学习管道中,以学习关于威胁攻击的特性的信息。这些数据可以被用于理解关于当前用户的一系列事件,并从他们的云活动简档中得出他们是否构成威胁。
40.在某些实施例中,用于分析由一个或多个蜜网记录的数据的机器学习管道可以使用分布式流传输平台(诸如apache kafka管道)来实现。由蜜网收集到的事件和审计日志被提供给kafka管道,该kafka管道将数据存储在数据湖中。然后可以对存储的数据进行聚类算法,诸如k-means或k-means 算法,以识别威胁简档和识别威胁。
41.然后可以针对识别出的威胁发起主动预防动作。在一些情况下,甚至可以在恶意动作被执行之前就识别此类威胁并采取预防动作。例如,当用户的活动简档中的信息与基于蜜网收集到的关于攻击者的数据而生成的信息或简档相匹配时,可以生成警报。在一些其它情况下,可以在快速的时间范围内识别威胁并采取预防动作,使得减少攻击者所具备的执行恶意动作的时间。例如,一旦识别出与攻击的简档匹配的一个或两个动作,就可以识别出威胁。
42.在某些实施例中,蜜网提供的安全功能本身可以作为云服务提供。对于订阅租户,这样的云服务可以被配置为识别对资源的访问并标记不适当的访问并采取适当的响应动
作(例如,当特定ip地址被识别为不良地址时,它可以被标记并采取适当的动作)。
43.因此,蜜网或蜜罐的网络被用作如下工具,即,该工具捕获和收集关于攻击者的数据并进入攻击者的思想——了解此类攻击源自何处以及如何起源和被执行、被攻击的资源、此类未授权访问期间的动作模式、顺序信息、其动机是什么,以及获取关于他们的上下文信息(例如,他们来自何处、他们正在使用哪种操作系统、一天中的什么时间它们在攻击,以及与攻击相关联的其它属性)。蜜网可以被用于查找关于此类攻击的更多数据,而不会损害实际有价值的资源。对于云服务提供商,可以在提供商的一个或多个数据中心处设置一个或多个蜜网,每个蜜网包括一个或多个蜜罐。蜜网使得能够主动识别新类型的威胁,并通过以自主方式主动获取更好的数据来使云安全软件/人员能够领先于攻击者一步。
44.示例实施例#1
45.下面描述根据某些实施例的示例工作流程。下面描述的工作流程包括几个步骤。这些步骤和它们的顺序并非旨在进行限制。
46.步骤1:让攻击者(例如,暗网用户)能够访问蜜网
47.第一步骤涉及建立蜜网,使得攻击者被吸引到蜜网。在某些实施例中,可以设置一组服务器以拦截来自攻击者通过诸如http或ftp之类的一些协议的请求。方便的是,一些凭证可以存储在目录结构中的某个csv或数据库文件中,使得攻击者找到这些方便放置的凭证。当攻击者找到服务实例(例如,iaas实例)的虚假凭证时,攻击者然后将尝试使用这些虚假凭证来访问该服务实例并使用经由该服务实例可用的资源。
48.例如,攻击者可能经由端口22或端口21(用于安全登录、ftps、端口转发等)上的ftp侦听模式拦截诱饵节点,如图1和图2中所示。凭证可以被设置为公共命名约定(即,root/密码)。攻击者查看连续的目录列表,并且将找到.csv/.db文件,该文件将具有前置文本(超级用户)。暗网用户将找到一些随机生成的凭证,但置于指定超级用户的该文件的最顶部。这些凭证可以是超级用户名/密码的形式。这些凭证旨在允许攻击者访问由iaas蜜网提供的虚假iaas实例,该虚假iaas实例已被设置为“要被攻击”。
49.蜜网可以使用各种技术来识别攻击者。一般而言,普通用户不会在互联网上寻找诱饵节点。例如,如果某个诱饵节点正在用于ssh的端口22上运行,那么普通常规用户(例如,云服务提供商的合法客户端或租户)不会试图找到该诱饵节点,因此不会浏览它以寻找凭证。诱饵节点本身可以用作分发虚假凭证的机制,攻击者将被吸引到这些虚假凭证,并访问和使用这些凭证来执行恶意活动。攻击者被引导认为凭证是被无意中留在端口上打开的诱饵节点上。
50.有几种可能发生攻击的方式,以下两种是最常见的。
51.(1)使用自动化机器人(bot)。机器人可以被配置为学习尽可能多的凭证,然后可以使用脚本来使用学习的凭证执行不良操作。
52.(2)攻击者对自己例如使用浏览器或其它某种gui应用与服务进行交互感兴趣。攻击者可以使用gui与云服务(例如,oracle的oci服务)进行交互。这可以通过命令行接口(cli)(例如,由rest api驱动的请求)请求来完成,该请求行进到某个api端点,该端点能够响应于攻击者的请求而执行动作。gui本质上是cli请求的包装器。可以使用命令行模式或使用一些gui界面来生成cli请求。
53.在某些实施例中,本文描述的蜜网能够处理基于机器人的攻击和基于gui的攻击
二者。
54.步骤2a:攻击者是自动化机器人(cli模式)
55.为了步骤2a的目的,假设攻击是在命令行界面(cli)模式下使用自动化机器人执行的。图1描绘了根据某些实施例的用于处理从自动化机器人接收到的请求的蜜网系统100。蜜网100可以包括一个或多个蜜罐。在图1中,由蜜网提供的iaas实例102显示在虚线内。
56.如图1中所绘出的,诱饵节点104使得攻击者能够访问rest api节点106,rest api节点106可以是到iaas服务的实例102的网关。在图1(和图2)中,iaas实例102(图2中的实例202)由虚线显示,并且包括计算、存储和联网资源。诱饵节点104可以向攻击者提供对用于访问包括一个或多个蜜罐的蜜网的凭证的访问,其中蜜罐提供一个或多个“虚假”iaas实例102。所提供的凭证使得攻击者能够连接到由iaas蜜网提供的虚假iaas实例之一。
57.rest api(命令和控制)节点106(图2中的206)充当攻击者与攻击者想要对其进行某种恶意操作的资源或对象之间的中介(broker)。例如,rest api端点106(图2中的206)用作根据由机器人/攻击者生成的cli get请求而创建的所有资源/动作的中介。在某些实施例中,rest api节点106从攻击者接收cli请求、解析cli请求以理解由攻击者请求的动作,并向攻击者提供针对该请求的预期输出或响应。
58.rest api节点106还具有欺骗攻击者认为他们已经访问了实际的非虚假资源并对实际的非虚假资源执行了一些动作的能力。这是通过对从攻击者接收到的请求(例如,get、post请求)提供适当的虚假响应来完成的,从而欺骗攻击者认为他们的攻击实际上成功了(即,在攻击者请求执行的动作方面成功了)。例如,这些响应使攻击者误以为攻击者能够设立iaas实例并能够使用该实例执行各种操作。rest api节点106向攻击者馈送错误或虚假的信息,使攻击者相信他们的恶意活动已经成功,即欺骗攻击者相信他/她正在请求的事情正在实际发生。该节点用作保持表面现象持续进行的工具。
59.rest api节点106具有处理从攻击者接收到的请求并向攻击者馈送预期信息以欺骗攻击者继续攻击的能力。在某些实施例中,rest api节点106被配置为:
60.(1)接收和解析从攻击者接收到的请求,并执行或假装执行所请求的动作。这些动作可以包括按照攻击者的请求而设立正确的资源(例如,启动数据库、计算机、容器等)。
61.(2)向攻击者提供响应,包括执行错误处理,以使攻击者相信他们已访问真正的非虚假实例。
62.关于解析请求和设立资源,用于响应于订阅请求来供给资源的技术可以被用于设立实例。在某些实施例中,rest api节点106基于由服务提供商使用的供给技术来确定攻击者正在请求什么资源。在一些其它实施例中,诸如regex(正则表达式)脚本和/或nlp(自然语言处理)高速缓存的字典(例如,利用适当的webhook)之类的技术可以被用于处理来自攻击者的cli get请求。
63.蜜网可以使用各种技术来提供适当的响应,从而使攻击者相信攻击者已经访问了真实的iaas实例。在一些情况下,针对请求,蜜网可以生成适当的响应并将其提供给攻击者,而实际上不执行所请求的(一个或多个)动作。在一些实施例中,蜜网已经预先加载了post请求以与攻击者选择的cli工具进行通信。一种这样做的方法是使用自然语言处理
(nlp)技术,诸如设立和使用nlp字典,其中包含在给定适当条件下被自动发送回攻击者的请求和响应。有不同的方法可以处理这个问题,例如,使用串解析来理解请求正在要求什么,然后从字典中确定适当的响应。
64.在某些实施例中,如图1和图2中所绘出的,反向代理112(在图1中)(图2中的212)可以可选地作为如下流程的一部分提供,即,该流程可以从客户端获取附加信息并向虚假虚拟私有云(vpc)中设立的服务器提供安全性和匿名性。反向代理112可以被配置为记录关于攻击者或由攻击者使用的客户端设备的一些属性。反向代理112还充当被攻击者启动的资源的隐私和安全屏障。例如,攻击者可能启动一些数据库或计算机或联网资源,并且反向代理112被用于将资源的身份匿名化。反向代理节点112保留实例102的匿名性,从而确保攻击者不知道他们的真实身份。
65.与攻击者进行交互的iaas实例102资源可以在计算、存储和存储器资源方面受到限制,并提供几个基本功能。攻击者访问的iaas服务/对象提供维护iaas实例的“完整性”所必需的正确响应。
66.步骤2b:攻击者是“真实”用户(gui模式)
67.在一些情况下,攻击者可能是真实用户,例如,经由在攻击者的客户端系统上执行的应用策划攻击,例如,使用其它gui应用的浏览器来发起对iaas实例的访问。图2中描绘了用于处理gui模式攻击的请求和响应的系统200。
68.gui模式的处理与cli模式的处理非常相似。在gui模式下,攻击者可能正在使用伪造的浏览器gui 204来发起攻击并发送请求。攻击者与控制台(例如,客户端设备)和gui应用的交互可以由图2中的日志节点210(图1中的节点108)记录。例如,可以记录关于用户/攻击者登录、攻击者与浏览器的交互(例如,攻击者单击的链接以及单击的顺序等)的数据。在某些实施例中,异步事件监听器210可以被用于收集关于攻击者如何与gui控制台交互的数据。收集到的数据可以被用于更好地理解攻击者在后端采取的最终动作,以及在控制台本身上正在进行什么动作。
69.步骤2c:错误处理
70.在某些实施例中,iaas蜜网api控制和命令服务器向攻击者提供所有状态:200响应,除非api get请求的格式不正确和/或输出类型不正确。在格式和/或数据类型不正确的情况下,rest api节点206将向攻击者发送正确的错误处理代码。
71.步骤3:以详细模式记载
72.如图1和图2中所绘出的,在某些实施例中,可以设立单独的记载节点(图1中的108和图2中的208)以记录在由蜜网提供并被攻击者访问的蜜网iaas实例中被访问的所有事件/资源/对象。可以按时间顺序执行该记载。
73.步骤4:etl/机器学习管道、本地威胁情报馈送等。
74.在某些实施例中,记载节点1108、208或服务器存储所有攻击者交互。该数据可能以不同格式存储,诸如原始.csv。记载的数据可以定期导出到分析平台以进行分析。例如,可以使用每日cron作业将记载的数据上传到etl(提取-变换-加载)/机器学习管道以供将来训练。进行记载的服务器将提供攻击者独有的核心属性,用于本地威胁情报馈送,该馈送直接馈送到由安全监视、检测和预防程序使用的内部黑名单中,以抵御先前已经攻击过iaas蜜网的行动者的未来威胁。
75.可以基于用于引诱攻击者和捕获攻击者活动信息的可允许成本来确定可用于由蜜网设立的虚假iaas实例的资源的量。在一些实施例中,可以分配有限数量的计算、存储和联网资源。例如,可以提供一定数量的预先准备的映像(image),每个映像具有固定数量的计算、存储和联网资源,并且这些预先准备的映像可以被用于设立攻击者所请求的iaas实例并执行攻击者请求的动作。这些预先准备的虚拟化映像或容器化映像可以是硬编码的,使得它们不会超出一些预设约束。
76.蜜网诱使攻击者连接并设立与蜜网的会话,并使攻击者相信攻击者正在攻击某个真实/合法的资源以及执行某个期望的恶意活动,并进一步诱使攻击者执行进一步不良活动。在某个时刻,蜜网可以确定停止攻击者的活动并关闭攻击者与蜜网的会话。在一些情况下,例如,当蜜网已经确定关于攻击者以及攻击者与蜜网和虚假实例的交互的足够数据已被记录时,可能达到这一点。在一些其它情况下,这一点可以是基于时间的。例如,当攻击者与虚假实例和蜜网的会话的总持续时间达到或超过某个预先配置的时间阈值时,蜜网可以确定已经到达该点。也可以使用各种其它因素来确定何时“切断”攻击者。上述因素和其它因素的组合也可以被用于替代实施例中。
77.示例实施例#2
78.iaas实例包括捆绑在一起用于提供计算、存储和联网服务的处理资源(例如,核心、处理器)、存储资源(例如,存储器资源)和联网资源的配置。iaas云实例提供最低层—存储器、计算和资源层—的云虚拟化。iaas云提供与计算和存储能力相关的服务产品,这些计算和存储能力与联网能力交错在一起提供。iaas实例攻击与saas实例或paas实例攻击非常不同,因为saas/paas实例攻击不涉及攻击计算/存储器/联网资源,而是针对由saas/paas应用使用的数据。使用iaas,可能涉及几个资源,资源的配置难以理解,因此缺乏现有的解决方案来防止iaas攻击。监视iaas资源并识别对这些资源的攻击非常困难,因为有太多移动部分,每个部分都有其自己的配置,而且很容易让事情陷入困境。结果,一些iaas攻击完全被忽视。
79.图3是根据某些实施例并入包括一个或多个蜜罐的蜜网的分布式环境300的简化框图。如图3中所示,分布式环境300包括云服务提供商的数据中心302,其中云服务提供商可以提供iaas、paas、saas和其它云服务中的一个或多个。这些服务可以使用一个或多个真实服务实例304来提供。这里使用术语“真实”来对这些实例与由蜜网提供的“虚假”实例进行区分。真实服务实例可以包括提供一个或多个iaas服务的一个或多个真实iaas实例(例如,r-iaas#1)、提供一个或多个paas服务的一个或多个真实paas实例(例如,r-paas#1),以及提供一个或多个saas服务的一个或多个真实saas实例(例如,r-saas#1)。提供这些真实云服务的基础设施是由云服务提供商提供的。例如,基础设施可以由数据中心302提供。客户或租户可以订阅由云服务提供商使用数据中心302提供的云服务中的一个或多个。
80.图3中描绘的分布式环境300仅是示例,并且不旨在不当地限制要求保护的实施例的范围。本领域普通技术人员将认识到许多可能的变化、替代和修改。例如,在替代实施例中,分布式环境300可以具有比图3中所示的更多或更少的系统或部件、可以组合两个或更多个系统,或者可以具有不同的系统配置或布置。图3中描绘的数据中心302的配置仅是示例并且不旨在进行限制。虽然出于简单的目的在图3中仅描绘了一个数据中心302,但典型的分布式环境可以包括可能位于不同地理位置的多个数据中心。多个数据中心可以经由一
个或多个通信网络相互通信地耦合。通信网络可以是诸如互联网、广域网(wan)、局域网(lan)、以太网、公共或专用网络、有线网络、无线网络等各种类型,和/或其组合。可以使用不同的通信协议来促进通信,包括有线和无线协议,诸如ieee 802.xx协议套件、tcp/ip、ipx、san、和其它协议。
81.攻击并且恶意地和未经授权地使用由数据中心302提供的资源的攻击者可以有不同的风格。未经适当授权而试图连接到数据中心302或使用数据中心302提供的资源的任何实体都被视为攻击者。例如,使用虚假凭证来访问和使用由数据中心302提供的资源的实体被认为是攻击者。
82.攻击者可以以各种形式出现,包括自动化机器人攻击者或人类用户攻击者。在图3中描绘的示例中,在客户端设备310上执行的自动化机器人308可能尝试攻击和未经授权地使用由数据中心302提供的资源。自动化机器人308可以被配置为寻找拦截和连接到数据中心302内的某个端点节点的方法,然后使用该连接来使用由数据中心302提供的资源。攻击还可以源自人类用户312,该人类用户312使用在客户端设备316上执行的一些应用或软件(例如,gui浏览器314)来攻击和未经授权地使用由数据中心302提供的资源。攻击本身可以使用不同的机制来执行,诸如命令行界面(cli)机制、基于gui的机制等。
83.被攻击者(例如,机器人或人类用户)侵入并恶意使用的资源可以包括由数据中心302提供的真实实例304中的一个或多个。例如,攻击者可能试图连接到由数据中心302提供的真实iaas实例,并开始未经授权地使用由该真实iaas实例提供的计算、存储和/或联网资源或服务。例如,攻击者可能连接到真实的iaas实例并使用该真实的iaas实例来“窃取”计算、存储器和联网资源,以执行需要大量计算机、存储和联网资源的加密货币挖掘操作(例如,挖掘比特币)。
84.如图3中所描绘的,数据中心302提供蜜网306,蜜网306被配置为在不损害数据中心302的真实资源(例如,真实实例)的情况下引诱这样的攻击者并收集关于攻击者的数据。蜜网306包括各种部件,包括蜜罐服务器(或蜜罐)的网络。每个蜜罐可以表示提供对一组特定iaas资源的访问的特定iaas服务实例。每个蜜罐被配置为欺骗攻击者相信攻击者已成功获得对真实iaas实例的访问。可以为不同类型的iaas服务提供不同的蜜罐318、320、322等。虽然图3中绘出的实施例描绘了单个蜜网,但这并不是限制性的。数据中心可以提供一个或多个蜜网。
85.在图3中绘出的实施例中,蜜网306还包括记载服务器330,其被配置为接收或收集关于由蜜罐记录的攻击的数据。然后将收集到的数据存储在非易失性存储器中以供后续分析。在一些实施例中,例如在图3中绘出的实施例中,蜜网306本身包括分析平台或服务器332,其被配置为分析由蜜罐收集并由记载服务器330记载的数据。在一些其它实施例中,分析平台332可以在数据中心302级别提供。这样的分析平台可以接收并用于分析由数据中心302提供的一个或多个蜜网所收集到的数据。在一些情况下,分析平台可以远离数据中心302。在这种情况下,记载服务器330可以被配置为使用数据中心302的通信接口344将由蜜网306收集到的数据从数据中心302传送到远程分析平台。
86.在某些实施例中,某一组可用资源324被留出以供蜜网306的蜜罐使用。可用资源324可以包括计算资源(例如,核心、处理器)、存储资源(例如,存储器)、联网资源、数据库资源、容器等。蜜罐可以使用来自可用资源324的资源来启动欺骗攻击者相信攻击者已连接并
正在使用真实iaas实例的虚假iaas实例。在一些实施例中,可用资源324中的资源可以被预先打包成包(称为“荚(pod)”),每个包包括某些计算、存储器和联网资源的预设配置。然后,蜜罐可以使用一个或多个这些预先打包的包(或者说,荚)来启动虚假iaas实例。
87.数据中心302可以提供一个或多个主机机器(例如,计算机系统),其提供用于提供图3中描绘的数据中心302的各种服务和部件的基础设施。这些主机机器可以被用于提供真实实例304、一个或多个蜜网306及其部件,以及图3中描绘的数据中心302的各种其它服务器和部件。例如,包括在蜜网306中的蜜罐可以跨数据中心302的一个或多个主机机器部署。
88.在某些实施例中,出于安全原因,蜜网与真实实例隔离和分离。相应地,被用于提供蜜网的数据中心302的基础设施与被用于支持真实实例304的基础设施保持分开。例如,用于执行和支持蜜网306的主机机器可以与数据中心302中的其它主机机器分离。
89.使用各种不同的技术来引诱攻击者进入蜜网306。攻击者(包括自动化机器人和人类攻击者)通常会寻找ssh端口22和ftp端口21并使用由这些端口提供的漏洞进行攻击。在图3中绘出的实施例中,诱饵服务器或者说节点336被用于引诱攻击者。诱饵服务器336被配置为通过数据中心302的一个或多个端口(诸如通过ssh端口22和ftp端口21)公开地广播信息,以将攻击者的注意力吸引到这些端口。当攻击者连接到这些端口之一时,可以方便地放置虚假或伪造凭证338,使得攻击者能够访问这些凭证。在一些实施例中,诱饵服务器336可以广播关于虚假凭证338的信息,同时使凭证看起来是无意被广播的。虚假凭证338可以包括虚假受限信息,诸如虚假的用户名/密码信息、api密钥、mac地址、证书、租户标识符、密码等。目的是使攻击者相信他们已经获取他们可以用来攻击由数据中心302提供的资源的真实凭证。在一些实施例中,可以将一些默认凭证设立为虚假凭证。在一些情况下,攻击者可能会发送api调用(例如,get凭证)来访问虚假凭证338,然后虚假凭证被发送以作为对该api调用的响应。对api调用的处理可以由api网关服务器340来执行。
90.例如,在典型场景中,对于已经合法订阅由云服务提供商使用数据中心302提供的服务的实体(租户),在订阅时(或随后),向租户提供针对该租户定制的一个或多个凭证。这些凭证使该租户能够登录到数据中心302并设立与提供所订阅的服务的真实实例(例如,提供特定类型的iaas服务的真实iaas实例)的会话。在设立会话时,会向租户请求凭证,然后这些凭证被用于对租户进行认证。在成功认证后,针对提供租户所订阅的服务的真实实例,为租户设立会话。
91.虚假凭证也使得攻击者能够设立会话,但与合法租户会话不同,虚假凭证被用于为攻击者设立与蜜网306的会话。可以设立与蜜网中的蜜罐或者与由蜜罐启动的虚假iaas实例的会话。
92.一旦攻击者获得对某个虚假对象的访问,攻击者就可以向数据中心302发送请求以设立实例的会话以及发送随后的请求以在该会话期间执行一个或多个动作。这些请求可能是由攻击者发出的api调用的形式。在图3中绘出的实施例中,这些api请求由api网关服务器340接收和处理。api网关服务器340可以被配置为读取请求、潜在地认证请求,并且然后将请求转发到数据中心302的后端部件以处理该请求。
93.例如,在图3中绘出的实施例中,自动化机器人可能被引诱到数据中心302的特定端口并使用该端口来访问虚假凭证338。然后,自动化机器人308可以用获取的虚假凭证向数据中心302发送请求,从而请求为攻击者设立会话。该请求被api网关服务器340接收和处
理,并且在确定该请求来自攻击者而不是来自数据中心302的合法租户时,该请求被转发到蜜网306进行处理。在某些实施例中,该请求可以被转发到蜜网306中的如下特定蜜罐,即,该蜜罐被配置为提供在攻击者的请求api调用中所请求的特定类型的iaas服务。
94.由合法租户做出的api调用与由攻击者做出的api调用是相同的。基于api调用以及经由该api调用而接收到的信息,api网关服务器340必须确定请求是来自合法租户还是来自攻击者,以便可以将请求转发到适当的后端部件进行处理。api网关服务器340可以使用不同的方式来执行这种识别,诸如:
95.(1)对于请求设立会话的api调用,api调用典型地还包括用于在会话设立之前对请求者进行认证的凭证(例如,用户名/密码)。如果api网关服务器340确定这些凭证是虚假凭证,那么api网关服务器340知道请求来自攻击者或不良行为者。api网关服务器340然后将该请求转发到蜜网306的部件以供进一步处理。
96.(2)在攻击者登录并能够设立与虚假iaas实例的会话之后,收集并记载与攻击者和攻击者在会话期间的活动有关的数据。例如,该记载的数据可以包括例如设备级别信息,其关于由攻击者用于发起攻击请求的设备。在某些情况下,可以从api调用本身确定该设备级别信息。因此,对于由api网关服务器340接收到的api调用,如果api网关服务器340确定该api调用的设备级别信息与所存储的用于攻击者的设备的设备级别信息(可能先前已在攻击者与数据中心302交互期间被记录)相匹配,那么api网关服务器340确定该api调用来自攻击者并将该api调用转发到蜜网306的部件以进行处理。
97.(3)api网关服务器340还可以使用关于通过其接收请求的端口号的信息来确定该请求是否来自攻击者。例如,如前所述,诸如ssh端口22和ftp端口21之类的端口通常被用于策划攻击。因此,经由这些端口接收到的请求和api调用可以被标记为来自攻击者的请求。例如,在某些实施例中,api网关服务器340基于连接端口和基于虚假凭证而知晓请求不是合法的,而是来自不良行为者或攻击者的请求。
98.(4)上述各种信息的组合也可以被用于识别来自攻击者的请求。
99.在将请求识别为源自攻击者时,api网关服务器340将该请求转发到蜜网306的部件以进行处理。在某些实施例中,在识别出攻击者时,api网关服务器340将攻击者连接到来自蜜网306的特定蜜罐服务器并为攻击者打开与该特定蜜罐服务器的会话。例如,api网关服务器340可以为攻击者设立与特定蜜罐(该蜜罐被配置为提供该请求中所请求的iaas服务)的会话,然后将该请求转发到该蜜罐进行进一步处理。
100.在攻击者和特定蜜罐之间建立会话之后,攻击者可能发送进一步的请求以启动iaas实例并使用由该iaas实例提供的资源。在某些实施例中,蜜罐可以启动虚假iaas实例,例如,由图3中的hp1 318启动的虚假iaas实例d-iaas#1。然后,蜜罐可以将响应发送回攻击者,指示所请求的iaas实例已被设立并准备好供攻击者使用。该响应使得攻击者相信已经启动了适当的—而不是虚假的—iaas实例。
101.在虚假iaas实例已经启动之后,在会话期间,攻击者可能会发送一个或多个请求以使用与所启动的iaas实例相关联的资源来执行各种动作。例如,攻击者可能使用由虚假iaas实例提供的计算、存储和联网资源来执行诸如比特币挖掘操作之类的动作。攻击者与之建立了会话的蜜罐被配置为接收这些请求,并且对于每个请求,解析该请求以识别该请求所请求的一个或多个动作或操作、使用所启动的虚假iaas实例执行这些动作,并生成与
动作和请求向对应的响应并将该响应发送给攻击者。生成的响应使得让攻击者相信该该响应是来自真实iaas实例的有效响应,并且攻击者已成功地使用了由启动的iaas实例提供的服务和资源。
102.在某些实施例中,蜜罐能够在不实际设立或启动虚假iaas实例的情况下生成并向攻击者发送与从攻击者接收到的请求动作和api调用相对应的适当响应。例如,蜜罐可以使用一组规则来生成响应。该组规则可以包括标识攻击者可以请求的一组可能的动作与针对每个动作的适当的一个或多个响应的映射。在接收到来自攻击者的请求后,蜜罐可以将该请求转换成一个或多个动作,然后使用该映射来确定针对该一个或多个动作的一个或多个响应。然后可以响应于接收到的请求而将该一个或多个响应传送回攻击者。蜜罐生成的响应使得让攻击者相信攻击者已成功启动了iaas实例并使用了由启动的iaas实例提供的服务和资源,即使是甚至没有启动虚假iaas实例。该规则信息(例如,映射信息)可以存储在蜜罐可访问的非易失性存储器中,诸如数据库中。
103.在某些实施例中,蜜罐可以使用虚假iaas实例和一组规则的组合来生成对从攻击者接收到的请求的响应。在一个这样的实施例中,蜜罐能够基于所启动的虚假iaas实例来学习新规则,诸如动作和响应的新映射。例如,蜜罐可以使用虚假iaas实例来学习对从攻击者接收到的某些请求动作的响应,然后将新的动作-响应映射条目添加到规则信息中。当将来请求相同的动作时,该规则信息而不是iaas实例将被用于生成对该动作的适当响应。一种或多种机器学习技术可以被用于学习、构建和扩展规则信息映射。
104.除了处理请求之外,蜜罐还被配置为收集和记录与攻击者和攻击者的活动以及与蜜罐的交互有关的数据。针对攻击者所记录的数据可以包括攻击者的活动(例如,威胁行动者的用户行为模式、用户独有的其它属性)、关于攻击者的独特属性,诸如特定攻击者的连接和设备级别的属性(例如,连接信息、攻击者使用的设备的ip地址、自治系统编号(asn)跟踪路由信息、域名等),以及与攻击相关的其它数据。记录的数据可以包括关于攻击者的动作的序列、攻击者在与蜜罐的会话期间访问的对象、攻击者做出的api调用(例如,攻击者做出的rest api调用)等数据。记载的数据可以包括:关于从攻击者接收到的api请求的信息、蜜罐响应于api请求而生成和发送的响应、请求源自的ip地址、攻击者用于连接到数据中心的端口号、javascript on.events(用于基于gui的交互;例如,可以监视客户端设备上的基于浏览器的事件)、设备级别信息、请求的间隔等。
105.在某些实施例中,诸如蜜网306的蜜网可以包括记载服务器330,记载服务器330被配置为收集和/或接收由蜜网306中的蜜罐收集到的数据。在这样的实施例中,由各个蜜罐收集到的数据可以被转发到记载服务器330。记载服务器330被配置为以适当的格式存储数据。该数据可以存储在记载服务器330可访问的非易失性存储器中。记载服务器330还可以充当用于访问收集到的数据的控制器。
106.在某些实施例中,蜜网306可以包括分析子系统332,分析子系统332被配置为分析由蜜网306中的蜜罐收集到的数据。可以分析收集到的数据以深入了解攻击者的动机(例如,攻击的目的和意图)、攻击模式、攻击机制、攻击发起点(从连接性(例如,ip地址、域等)角度)角度、从地理角度)、攻击的不同类型、攻击者在攻击期间访问的资源和对象、攻击者在攻击什么、使用了哪些资源、这些资源是如何使用的、在攻击期间执行的操作、攻击的频率分布等。在某些实施例中,基于该分析,生成用于识别攻击者和攻击的简档。然后可以使
用这些简档在攻击发生之前主动阻止攻击。
107.在某些实施例中,代替具有蜜网级别的分析平台,或作为蜜网级别的分析平台的附加,可以由数据中心302来提供分析平台。在这样的实施例中,由数据中心302中的一个或多个蜜网收集到的数据可以被转发到该分析平台以进行分析。在某些实施例中,分析平台可以由远离数据中心302的计算平台提供。这种远程分析平台可以被配置为收集和/或接收由分布在一个或多个数据中心的多个蜜网收集到的数据、聚合这些数据,并且然后分析聚合的数据。
108.可以使用各种不同的技术来分析由蜜网收集到的数据。在某些实施例中,可以使用机器学习(ml)技术。由蜜网收集到的数据可以作为训练数据提供,并被用于构建和训练模型,该模型用于基于收集到的数据中包含的各种标准来识别攻击者和攻击。然后可以使用这样的模型来主动识别攻击者和攻击,并优选地在此类攻击发生之前阻止它们。
109.在某些实施例中,可以设立大数据管道以处理收集到的数据。例如,可以设立hadoop或数据湖平台来接收和处理由蜜网收集到的数据。
110.在图3中绘出的实施例中,提供反向代理服务器342以提供代理服务器后面的数据中心302的服务器和其它部件的安全性和匿名性。反向代理位于客户端(诸如客户端310和316)之间,并且将代理背后的服务器匿名化。客户端不知道它正在连接到哪个服务器。反向代理服务器提供几个益处,诸如负载平衡、高速缓存、隔离内部流量、记载等。反向代理服务器342还可以被配置为记录与攻击者或攻击者使用的客户端设备有关的一些属性。反向代理服务器342为攻击者所启动的资源充当隐私和安全屏障。例如,攻击者可能启动某个数据库或计算机或联网资源,而反向代理服务器被用来匿名化这些资源的身份。反向代理节点保留实例的匿名性,从而确保攻击者不知道它们的真实身份。
111.如上所述,蜜罐被配置为对从攻击者接收到的请求进行响应,同时收集关于攻击者及其活动的数据。在某个时候,蜜罐可以决定停止攻击者的活动并关闭攻击者的会话。蜜罐可以使用各种不同的因素以及这些因素的组合来做出这个决定。其中一些因素包括:
112.(1)时间阈值——当攻击者会话的总持续时间达到或超过某个预先配置的时间阈值时,蜜罐可以决定停止用户的该会话。
113.(2)间隔时间——等待攻击者停止与蜜罐交互的一时间间隔。例如,您可以让会话活动在攻击者感兴趣时继续进行。一般而言,蜜罐收集到的数据越多,可供下游分析的数据就越多。
114.(3)基于数据——在一些情况下,当蜜罐确定已经记录了与攻击者以及攻击者与蜜罐的交互有关的足够数据时,蜜罐可以决定关闭攻击者的会话。
115.(4)也可以使用各种其它因素来确定何时“切断”攻击者。上述因素和其它因素的组合也可以被用于替代实施例中。
116.在某些实施例中,攻击者可能只被允许与蜜罐进行一个会话。在这样的实施例中,不允许攻击者尝试打开随后的第二会话。在一些其它实施例中,可以允许并行或串行的多个会话。在这样的实施例中,关于攻击者的信息可以跨多个会话而保持。
117.在某些实施例中,由一个或多个蜜网提供的功能可以作为云服务提供给订阅客户。通过订阅此类服务,客户可以主动识别对其资源的攻击。
118.图4是根据某些实施例的蜜罐服务器400的简化框图。蜜罐服务器400(也称为蜜罐
400)可以包括相互通信地耦合的多个子系统。在图4中绘出的实施例中,蜜罐400的子系统包括请求解析器子系统406、响应生成器子系统408、通信接口子系统412和记录器子系统414。这些子系统可以仅用软件(例如,可由一个或多个处理器执行的程序、代码或指令)、用硬件或其组合来实现。图4中描绘的蜜罐400仅仅是示例,并不旨在不当地限制要求保护的实施例的范围。本领域普通技术人员将认识到许多可能的变化、替代和修改。例如,在一些实施方式中,蜜罐400可以具有比图4中所示的更多或更少的子系统或部件、可以组合两个或更多个系统,或者可以具有不同的系统配置或布置。
119.请求解析器子系统406被配置为接收和解析从攻击者接收到的请求。例如,在某些实施例中,在确定请求或api调用来自攻击者时,api网关服务器340从蜜网306中选择特定蜜罐(例如,如图3中所示)并将请求转发到所选择的蜜罐。在该蜜罐处,请求解析器子系统406接收该请求。在接收到请求时,请求解析器子系统406被配置为解析该请求并确定与该请求对应的要执行的一组一个或多个动作。该一个或多个动作可以包括例如设立或启动iaas实例、使用由iaas实例提供的一个或多个资源等的动作。
120.如果该动作涉及启动iaas实例,那么请求解析器子系统406可以使用来自可用资源404的一个或多个资源来设立虚假iaas实例416。虚假iaas实例416可以提供使得能够使用一个或多个计算资源(例如,诸如处理器、核心之类的处理资源)、存储资源(例如,提供存储器资源)、联网资源和其它由虚假iaas实例416提供的资源的服务。例如,如果要执行的动作对应于使用由虚假iaas实例416提供的资源,那么请求解析器子系统406可以使该资源被使用以满足攻击者的请求。在某些情况下,请求解析器子系统406可以将攻击者所请求的动作应用到虚假iaas实例416。蜜罐400可以被配置为启动并使用一个或多个虚假iaas实例。
121.响应生成器子系统408被配置为针对从攻击者接收到的请求而生成虚假响应。由响应生成器子系统408生成的虚假响应使得让攻击者相信该响应是有效的并且是由有效的iaas实例生成的。这会导致攻击者继续攻击者的活动,而不担心攻击者已被检测为不良行为者或恶意用户。
122.在动作和响应之间可以存在一对一、一对多或多对一的关系。根据一对一的关系,每个动作可以具有其自己的响应。根据一对多的关系,一个动作可以具有多个相关联的响应。根据多对一的关系,一个响应可以为多个动作生成并发送。响应生成器子系统408负责为接收到的攻击者请求生成适当的响应。
123.响应生成器子系统408可以使用各种技术来生成响应。根据一种技术,请求解析器子系统406可以将要执行的动作应用到虚假iaas实例416,虚假iaas实例416然后可以向响应生成器子系统408发送对应的响应。响应生成器子系统408然后可以转发从虚假iaas实例416接收到的响应,作为对请求的响应。在一些情况下,响应生成器子系统408可以对从虚假iaas实例416接收到的响应进行格式化或修改以生成要传送给攻击者的响应。
124.根据第二种技术,响应生成器子系统408可以使用一组规则418并且不使用虚假iaas实例416来生成针对攻击者请求的响应。在这样的实施例中,虚假iaas实例甚至可以不被蜜罐400实例化。规则信息418可以存储在蜜罐400可访问的非易失性存储器402中,诸如数据库中。该组规则418可以包括映射信息,该映射信息指定攻击者可以请求的动作与其对应响应之间的映射。动作和响应之间的一对一、一对多或多对一关系可以反映在映射信息中。
125.在接收到来自攻击者的请求时,请求解析器子系统406解析该请求以识别与该请求对应的要执行的一个或多个动作。响应生成器子系统408然后可以搜索规则418以识别对于所请求动作的适当响应。然后可以将基于规则418而识别出的响应作为对攻击者请求的响应而传送回攻击者。由蜜罐生成的响应使得让攻击者相信攻击者已成功启动了iaas实例并使用由所启动的iaas实例提供的服务和资源,即使虚假iaas实例可能没有被启动。例如,蜜罐400可以接收来自攻击者的请求,其中所请求的动作是实例化(启动/设立)iaas实例。响应生成器子系统408然后可以搜索规则信息(例如,映射信息)以找到针对该请求的适当响应,而不实际设立任何iaas实例,但是该响应指示所请求的iaas实例已被设立,从而欺骗攻击者相信攻击者已成功设立有效的iaas实例。
126.在接收到来自攻击者的请求时,请求解析器子系统406可以将该请求转换成要执行的特定动作。响应生成器子系统408然后可以搜索映射信息418以找到映射信息中的如下条目,即,该条目中的动作与要执行的特定动作匹配。响应生成器子系统408使用该匹配条目来识别与该匹配条目对应的响应,即,识别用于该动作的响应。然后,所确定的响应被用于响应于接收到的请求而向攻击者发送响应。
127.在某些实施例中,响应生成器子系统408可以使用第一技术(即,使用虚假iaas实例)和第二技术(即,使用规则信息418)的组合来生成针对从攻击者接收到的请求的响应。在接收到来自攻击者的请求动作时,响应生成器子系统408可以确定是使用第一响应生成技术还是第二响应生成技术,然后使用该确定的技术来生成要传送回攻击者的响应。
128.在一些实施例中,响应生成器子系统408可以使用机器学习规则来学习新的动作-响应映射,并且使用该学习到的信息来添加到规则418中的映射。然后,这些学习到的映射可以被用于为从攻击者接收到的后续请求生成响应。
129.记录器子系统414被配置为记录与攻击者及其与蜜罐400的交互相关的数据。记录器子系统414还可以跟踪和存储与请求以及由响应生成器子系统408生成并且响应于请求而传送给攻击者的对应响应相关的信息。记录器子系统414可以被配置为将所记录的数据存储在非易失性存储器402中作为记录的数据420。在一些实施例中,记录的数据也可以从蜜罐400传送到外部部件,诸如另一个蜜罐、记载服务器330,或者甚至传送到远离数据中心302的位置(例如,远程分析平台)。由蜜罐服务器400收集到的数据也可以被推送到集中化收集服务器(例如,蜜网日志服务器),该集中化收集服务器然后可以将数据推送到其它分析子系统。分析可以在本地或其它地方进行。蜜网日志服务器可以确定要发送哪些数据用于分析,或者可以为分析提供接口以从蜜网日志服务器中拉取数据。在某些实施例中,通信接口412可以促进去往和来自蜜罐400的数据通信。
130.非易失性存储器402还可以存储由蜜罐400用来执行其操作的其它信息422。例如,其它信息422可以包括配置信息,诸如关于可由蜜罐400用于设立虚假iaas实例的预制实例(iaas资源的一些定制组合“荚”)的信息。
131.图5是根据某些实施例的连接到云服务提供商基础设施502的蜜网500的简化框图。蜜网500可以是虚拟计算实例和/或一个或多个虚拟机的集群。上述一个或多个攻击者501和/或云服务提供商502可以通过公共网络504访问蜜网500。云服务提供商502还可以与威胁分析系统506通信,该威胁分析系统506可以被配置为分析收集到的关于攻击者的数据并基于收集到的数据做出推荐、警报和/或威胁预防决策。
132.在一些示例中,可以在蜜网500中设立一组蜜罐端点(蜜罐服务器(或只是蜜罐)s1-s3),其中每个蜜罐是为了让攻击者进行某种不法活动而故意设立的某个端点节点。蜜网500可以部署在一个或多个主机机器上。出于安全原因,这些主机机器可以与云服务提供商502的其余部分隔离(例如,如图5中所示),或者主机机器可以在云服务提供商502内被隔离(例如,如图3中所示,hp1-hp3在数据中心302内实现)。可以提供蜜网管理系统508用于部署、配置蜜罐s1-s3并用于执行本地处理。虽然图5中图示了三个不同的蜜罐s1-s3,但在蜜网500内可以实现任意数量的蜜罐。如将在下面进一步描述的,蜜罐s1-s3可以以各种形状(例如,类型)来实现。
133.不同类型的蜜罐可以部署在蜜网500中以模拟不同种类的服务。示例包括:模拟ssh/telnet服务的ssh和/或telnet蜜罐;模拟smtp(例如,电子邮件服务器)、ssl和tls的基于smtp的蜜罐;模拟http(例如,web服务器)的http蜜罐,其它蜜罐,例如用于凭证收集,以模拟诸如ftp、rdp、http、https等服务;或模拟oracle weblogic服务器环境的web logic蜜罐;等等。由此,每个不同的蜜罐可以模拟不同类型的服务器并且可以具有不同的形状。例如,服务器的形状可以定义用于访问此类服务器的api、文件结构等。(例如,云服务提供商502的)客户507可以请求基于他们感兴趣的蜜罐形状/类型来部署蜜罐,然后挑选和选择他们想要利用的特定蜜罐。该选择可以基于客户所运行(例如,以收集该类型服务的攻击者数据)的服务类型。
134.通过实现这些不同类型的蜜罐,有可能收集不同的、基于网络的损害指标(indicators of compromise,ioc)。当攻击者请求进入到蜜网500时,该攻击者可以基于攻击者所请求的活动、接收到该请求的端口或其它标准而被与适当的蜜罐关联。多个攻击者可能同时与同一个蜜罐进行交互,并且每个蜜罐被配置为向攻击者提供适当的响应,以欺骗攻击者相信攻击者处于真实环境中并且正在与真实的iaas实例而不是虚假实例进行交互。这可以通过模拟来完成。在某些实施例中,蜜罐可以包括实际服务器(例如,weblogic服务器)以使交互更加真实。通过这种交互,在云服务提供商502环境内实现的蜜网平台509可以收集基于网络的ioc,包括与特定攻击类型相关的特定恶意软件样本。可以提供蜜网平台509用于部署和配置蜜网500和各个蜜罐s1-s3。在某些实施例中,docker基础设施被用于部署和管理蜜罐,并且每个蜜罐被实现为docker容器(例如,隔离的、虚拟化的软件包)。
135.如所指出的,客户507可以基于他们的兴趣而选择要部署的各种类型的蜜罐。他们可以从docker配置容器中选择他们想要的特定蜜罐,因为存在攻击不同威胁面的许多不同攻击类型。例如,可能存在提供对支付信息的访问的销售点(pos)系统、提供对健康记录和其它个人身份信息(pii)的访问的医疗保健系统等。因此,客户507可能想要通过在公共网络(例如,互联网)上暴露不同类型的蜜罐来收集不同类型的数据。每个蜜罐可以将关于攻击者活动/交互的数据记载到本地持久存储库中。蜜罐可以记载原始未处理的数据。然后可以在本地处理该数据以生成处理后的蜜罐数据。这种处理可能涉及日志轮换(例如,每5分钟或其它时间间隔轮换数据)、日志验证(例如,确定感兴趣的数据被收集并且是以正确的格式)、pii清理以匿名化数据,以及数据格式化(例如,使数据放入正确的格式(例如,json)以传输到中央系统。处理后的数据然后可以传输到蜜网平台509,蜜网平台509可以将该数据提供给威胁情报分析系统506(例如,外部服务)或威胁分析模块510的内部版本。在一些示例中,威胁情报分析系统506、510中的任一个都可以识别已知攻击者的ip地址(例如,从
分布在全球的蜜罐生成的日志数据中检测)。然后,这些ip地址可以被各种安全产品使用,以在一些情况下,对来自任何这些ip地址的任何特权访问请求要求进行升级(例如,多因素)的认证。
136.实现蜜罐的一个主要问题是攻击者是否可以从蜜罐获得内核级别访问,然后进入主网络(例如,使用恶意二进制文件等)。这可能会对云服务提供商502造成无法弥补的损害。因此,蜜罐的隔离是至关重要的。在一些示例中,这种隔离可以通过使用(例如,除实现蜜网平台509的云服务提供商502之外的)第三方服务提供商实现蜜网500来实现。以这种方式,如果攻击者能够超越蜜罐而进入底层系统,那么攻击者仍然无法访问云服务提供商502。然而,隔离蜜网500的另一种方法是在docker容器和/或用户裸机(例如,不被其它服务共享的隔离的、单租户的物理机器)内实现蜜网。
137.蜜网500可以被配置有各种不同类型的蜜罐。蜜网512和514可以根据期望与蜜网500相同地或不同地配置。例如,蜜网500的任何配置可以也被蜜网512和/或514实现。然而,蜜网512可以在云服务提供商502内实现,而蜜网514可以只是被云服务提供商502实现的任何其它蜜网(例如,就像在第三方主机上实现的蜜网500)。可以例如在世界各地的不同位置实现与蜜网500和514类似的任何数量的附加蜜网。
138.如所指出的,蜜网500可以包括多于一个的蜜罐。作为一个示例,蜜网500包括可通过端口p1访问的第一蜜罐s1;可通过端口p2访问的第二蜜罐s2;以及可通过端口p3访问的蜜罐s3。端口p1、p2、p3中的每一个可以通过公共网络504访问。由此,如果攻击者501扫描互联网以查找开放端口,那么这些端口将被暴露。这是故意的,并且使得能够将攻击者501引诱到蜜罐中。蜜网500可以部署在单个主机设备上(例如,无论该主机设备是在云服务提供商502内部还是外部)。这个单一主机设备可以被容器化,使得存在各种容器,每个蜜罐都包含在单个容器中。根据期望,可以实现其它配置(例如,具有用于蜜网500的多个主机和/或单个容器内有多个蜜罐)。当请求来自实体(例如,攻击者)时,请求的类型和/或与请求相关联的端口可以被用于确定要将哪个蜜罐与该实体连接。例如,如果请求是访问端口p1,那么蜜网管理系统508可以基于在端口p1处的请求而确定将实体连接到与端口22对应的s1蜜罐。
139.可以知道,各种类型的服务使用特定端口。例如,ssh服务通常使用端口22,smtp服务通常使用端口25,ftp服务通常使用端口21等。一旦蜜罐服务被部署在蜜网500内,这些服务就可以经由主机被分配的ip地址而到达。然后,这些服务将基本上具有与任何其它服务器相同的功能。攻击者501可能扫描互联网以查找ip地址,并且可能查找每个ip地址的哪些端口已被打开。具有打开端口的ip地址将成为攻击者的好目标。因此,蜜罐可以被构建成使得这些特定端口在互联网上可用。当然,端口通常将需要密码,即使在现实世界(例如,非蜜罐端口)中也是如此。在一些情况下,可以使密码/用户名组合是公开的。然而,在其它示例中,蜜罐可以配置有各种已知的用户名/密码组合(例如,用户名:admin,密码:password是常见的标准/默认密码)。虽然此处未示出,但每个蜜罐端口(例如,p1-p3)可以具有外部世界不知道的对应的内部端口号。例如,端口22可能是对外暴露的并且有特权的(例如,需要登录)端口;然而,与蜜罐通信的实际端口可能是某个其它端口号。在这种情况下,蜜网管理服务508可以保持每个外部/有特权的端口与其对应的内部(例如,非特权的)端口号之间的映射。
140.在一些示例中,蜜网管理系统508可以通过一些其它/未知端口来访问。用于蜜网管理系统508的端口可以从攻击者不会想到要检查的随机/很少使用的端口的列表中选择。此外,蜜网管理服务508允许服务(例如,客户)管理和/或控制容器如何设立、环境如何配置、蜜罐如何操作。在一些情况下,蜜网管理系统508用来管理和/或控制蜜罐的配置设置可以由云服务提供商502(例如,更直接地,由云服务提供商502的蜜罐平台509)控制。在一些情况下,蜜罐平台509的控制器在控制平面(例如,用于控制蜜网500)和数据平面(例如,用于获取与蜜网500相关联的数据)两者中进行操作。蜜罐平台509还可以包括同步器,该同步器被配置为对从蜜罐接收到的交互数据的记载进行同步。蜜罐平台509还可以包括统计信息收集器,该统计信息收集器可以被配置为聚合收集到的数据(例如,系统日志等)。
141.如所描述的,蜜网500可以替代地在控制蜜网500(例如,蜜网512)的云服务提供商502之内实现。从安全的角度来看,这显然更危险,因为如果攻击者501能够从托管蜜罐的容器逃脱,则他们可能潜在地获得对云服务提供商502的其它私有/安全信息和/或资源的访问。由第三方提供商托管蜜网500可以减轻这种风险。然而,在云服务提供商502内托管蜜网510有一些好处和优势。例如,威胁分析系统510特定于那些可能想要尝试利用该特定服务提供商的攻击者的攻击者数据。一个示例是oracle的weblogic服务器。想要入侵oracle云基础设施服务的攻击者可能会在端口80或端口443上寻找weblogic服务器。通过将模拟的weblogic服务器作为蜜罐并引诱攻击者,oracle可以收集关于将oracle的已知漏洞作为目标的攻击者的有价值数据。
142.通过使用类似的示例,oracle可以选择构建像蜜网512那样存在于oracle云基础设施(oci)服务内的蜜网。为了使蜜罐看起来更真实,蜜罐平台509可以配置蜜网512,使得它看起来更像真实的oracle服务器,即使它只是位于容器中的对服务器的模拟。这应该会奏效,因为试图入侵oracle的攻击者可能会检查weblogic服务器作为他们已成功破坏oci的证据。因此,使蜜罐特定于常驻服务提供商可以帮助捕获以特定oci应用为目标的复杂攻击者(例如,因为这些攻击者知道特定oci应用中的特定漏洞)。
143.将蜜罐配置为看起来更真实(例如,在oracle示例中,当由oracle托管时看起来像oracle)的其它示例包括将蜜罐设计为看起来像fusion applications前端(或任何其它应用开发套件)。一旦攻击者开始与蜜罐的会话,攻击者就可以被呈现模拟的fusion数据或访问模拟的fusion数据。此外,可以将蜜罐配置为使用oracle ip地址进行托管。然后,蜜罐平台509可以跟踪和记载攻击者与机器的交互,并且可以允许攻击者漏出(ex-filtrate)“标记的”数据,然后当/如果该数据在自然环境中被发现时该数据可以被识别。换句话说,一些模拟数据可以照此被标记,并且攻击者可以被允许访问它。如果该攻击者在蜜罐之外使用了该数据,那么它将被检测到,并且攻击者也可以被检测到并被潜在地识别。
144.另一种选项是设立看起来像服务提供商的控制平面api(例如,本示例中的oci)的模仿(mock)控制平面api。它将被配置为看起来像由该服务提供商使用的传统api,并且具有允许攻击者访问的弱凭证。再一次地,服务提供商将跟踪攻击者在网络上时所做的事情。在一些情况下,可以使用裸机硬件来确保攻击者无法破坏可能正在共享管理程序的客户。可以标记每个会话,并监视该租户中的所有网络流量。以这种方式,蜜罐平台509可以跟踪复杂的攻击模式并了解攻击者使用了哪些漏洞在机器之间移动。
145.如将在下文进一步详细描述的,iaas提供商可以被配置有服务租赁、数据平面、控
制平面、特定子网、ip地址、网关等。给定图9-11中所描述的模式(例如,体系架构),在配置蜜罐时尽可能接近地模拟这些模式可能是有利的。无论蜜网在本地运行(例如,蜜网512)还是在外部实现(例如,蜜网500),这都适用。因此,蜜罐平台509可以尝试将蜜罐实例配置为看起来像托管蜜罐平台509的服务提供商的基础设施,即使蜜罐本身在服务提供商之外(诸如在第三方服务提供商机器上)运行。
146.此外,蜜罐平台509可以被配置为提供蜜罐即服务工具,以供其它方使用(例如,订阅客户507)。在这个示例中,客户可能希望针对其自己的数据收集和攻击者保护来运行蜜罐,但却没有计算能力来自己这样做。因此,蜜罐平台509可以将其托管任何类型的蜜网的能力作为服务提供给其他方。在一个示例中,可以经由一个或多个api和/或通过订阅服务来提供该服务。
147.在一些示例中,蜜网服务可以提供能够由多个不同客户访问的单个蜜网。然而,在其它示例中,可以实现单独的蜜网(例如,每个客户一个蜜网)。这样的服务可以由服务提供商(例如,使用蜜网512的云服务提供商502)代表客户507来进行托管,或者它可以被托管在客户507的环境内。附加地,每个客户507可以定制他们想要构建的蜜网类型,包括他们想要执行的哪些蜜罐实例。蜜罐可以被请求以分布在各个蜜网、各个区域(特别是地理区域)等。例如,客户507可以请求在特定区域(例如,印度)中实现特定蜜罐(例如,wordpress服务器)。然后,在这个示例中,蜜网平台508可以在印度构建蜜网(潜在地只有一个蜜罐)以跟踪以该国家中的wordpress服务器为目标的攻击者。在另一个示例中,可以构建各种蜜罐,其中多个不同的蜜罐已经存在于容器中,并且在请求时,蜜罐平台508可以在适当的蜜网中为所请求的类型自动地部署蜜罐容器。
148.照此,蜜罐平台508可以被配置为接收来自客户的对蜜网或蜜罐的请求。这些请求可以包括配置信息,这些配置信息标识有多少蜜网、(一个或多个)蜜网要部署在哪里、(一个或多个)蜜网内要部署什么类型和/或多少蜜罐,以及要记载什么类型的数据。基于该请求,蜜罐平台508可以基于配置信息而构建一个或多个蜜网和/或蜜罐。可以收集、记载、处理和/或分析数据,然后将其传输到威胁分析系统(例如,威胁分析系统506和/或威胁分析系统512)和/或客户本身。蜜罐平台508可以继续代表客户实现这些蜜网和/或蜜罐作为服务,直到经过一定量的时间,或直到客户请求关闭该服务。
149.图6是可以代表蜜罐平台系统602托管蜜网和/或托管由蜜罐平台系统602控制的蜜网的计算系统600的简化框图。在一些实施例中,托管蜜网的计算系统600可以是第三方服务提供商(例如,不是托管蜜罐平台系统602的同一计算机)。然而,在其它示例中,它们可以是相同的计算系统。
150.在一些示例中,托管蜜网的计算系统600可以具有基本操作系统并且可以实现可以模拟一个或多个蜜罐(例如,蜜罐s1、s2、s3、
……
、sn;统称为蜜罐s1-n)的容器604。蜜罐s1-sn可以是任何蜜罐类型(如上所述),它们可以被容器化(例如,在容器604中实现),并且它们可以将数据写入到盘(例如,通过将数据记载到持久存储库608的原始hp数据606)。当攻击者访问蜜罐s1-sn之一时,可以通过将它的活动写入原始hp数据606处的文件来记载它的活动。该数据可以用json格式等写入。在一些情况下,每个hp s1-sn可以基于每个hp s1-sn正在模拟的服务器的类型而推出不同类型的数据。例如,每种类型的服务器可以利用和/或处理不同类型的数据。它的一个示例是ssh数据与邮件服务器数据(例如,smtp)非常不
同。
151.在一些示例中,该数据可以被传输到数据处理系统612的日志轮换器610。数据处理系统612,连同可见性系统616,只是被配置为管理蜜罐s1-sn的蜜罐管理系统614的一部分。日志轮换器610可以以特定间隔(例如,每5分钟或根据期望)轮换日志数据。在一些情况下,计算系统600可能无法控制蜜罐如何记载数据(例如,它可能每天记载到一个单个文件或不同的文件)。因此,日志轮换器610被配置为以数据处理系统612或主机系统600通常期望的特定间隔来轮换日志。日志数据可以以每个时间间隔被截断,使得它可以与hp数据同步器618同步。然而,在将数据传输到hp数据同步器618之前,数据处理系统612可以首先验证数据(例如,使用日志验证器620)、清理数据(例如,使用pii清理器622),并格式化数据(例如,使用数据格式化器624)。数据验证器620可以查看捕获的数据的类型,并确保它对于下游消费者626(例如,客户)感兴趣的字段类型是正确的(例如,如果数据是ip地址,那么它实际上是32位地址等)。pii清除器622可以被配置为清除个人可识别信息,以模糊否则可能被检测到的任何人的身份。数据格式化器624被配置为将数据格式化为json格式(等),使得它可以与理解该格式的平台(例如,hp数据同步器618)(例如,以后在管道中)共享。在被处理之后,数据可以被存储在持久存储库608的已处理hp数据628中。
152.在一些情况下,持久存储库608被配置为块存储装置(例如,为了节省成本)。由于蜜罐s1-sn正在运行(例如,它们可能并行运行)并持续地将数据记载到块存储装置中,首先是原始hp数据606,然后是处理后的hp数据628(一旦被处理)。在一些示例中,不止一个攻击者可能连接到单个蜜罐。这是可能的,因为每个蜜罐都是模拟的服务器。因此,同一个蜜罐实例(例如,对于每种类型)可能同时与多个攻击者通信,但对于每个攻击者来说,单个蜜罐看起来就像单独的实例。然而,模拟的蜜罐实例仅对于与每个攻击者的给定会话是有状态的。因此,如果攻击者登出,那么新的登录将得到的是对同一实例的新模拟。尽管如此,可以针对同一实例上的所有攻击者并行地编写日志。
153.如以上所指出的,使模拟的服务器对攻击者看起来是真实的服务器将是有利的。这将使他们的登录时间更长,因此可以收集更多数据。这也将诱使攻击者尝试更先进的技术,这些技术也可以被记载和分析以向攻击者学习。使模拟环境看起来真实的一些技术包括提供用户界面(ui)、创建攻击者可以访问的虚假账户和/或在裸机上运行实例和/或会话。如所指出的,蜜罐s1-sn在docker容器(或其它类型的容器)中实现。此类容器是模拟所请求的每种类型的服务器或服务的虚拟环境。每个蜜罐s1-sn是模拟一环境的虚拟容器。如果黑客请求文件系统的列表,那么以使模拟环境看起来真实的适当响应进行回复将是有利的。例如,对于web服务器,响应可能会向攻击者显示该服务器正在端口80上运行apache。蜜罐还可以列出如下文件,即,这些文件会是存储在实际运行apache的系统上的标准文件。
154.如以上简要指出的,在登录到蜜罐时,攻击者会话可能是有状态的。在一些示例中,会话可能以特定间隔(例如,五分钟左右)刷新。由于绝大多数攻击都是自动化的并且只持续几秒钟,因此对于单个会话来说五分钟已经是足够的时间。然而,在一些示例中,只要攻击者登录并仍在操作蜜罐(例如,发出请求),会话就会一直运行。
155.一旦数据已经被记载和处理,它就可以被传输回蜜罐平台系统602,例如直接传输到hp数据同步器618。同步器618可以被配置为以一些时间间隔(例如,五分钟)从已处理的hp数据628中获取数据。同步器有助于对数据的间隔化推送进行同步,因此不会丢失数据。
然后同步器618可以将数据推送到下游消费者626和/或威胁分析系统。在一些示例中,蜜罐平台系统602的控制器630可以被配置为添加、拆除、重建、修改或以其它方式控制蜜罐s1-sn中的任何蜜罐。控制器630可以经由ssh型连接和/或安全壳应用来与蜜罐管理系统614通信。此外,系统统计信息收集器632被配置为收集关于系统日志的信息或任何其它日志信息。系统统计信息收集器632可以被实现为蜜罐平台系统602的控制平面的一部分,并且还可以经由ssh与蜜罐管理系统614的可见性系统616通信。在一些示例中,监视和警报系统634可以被配置为对已定义的要监视的文件和文件系统进行检查。监视和警报系统634可以对数据运行校验和以查看是否有任何不匹配的内容,并潜在地恢复文件。这在攻击者实际侵入蜜罐平台系统602(例如,当托管蜜网的计算系统600是托管蜜罐平台系统602的同一计算机时)并改变了某些东西的情况下是有利的。监视和警报系统634然后可以向下游客户、第三方服务(例如,托管蜜网的计算系统600和/或蜜罐平台系统602)发出警报。记载器632可以被配置为在被配置为准备用于可视化的数据的ui或其它应用中呈现所记载的数据。
156.图7是图示用于执行本文描述的技术的示例方法700的流程图。方法700(或本文描述的任何其它过程,或其变体和/或组合)中的一些或全部可以在配置有可执行指令的一个或多个计算机系统的控制下执行并且可以被实现为通过软件、硬件或其组合在一个或多个处理器上共同执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)。代码可以例如以包括可由一个或多个处理器执行的多条指令的计算机程序的形式存储在计算机可读存储介质上。计算机可读存储介质是非暂态的。方法700可以由图3的数据中心302、图4的蜜罐服务器400、图5的蜜网500和/或蜜罐平台509、或图6的托管蜜网的计算系统600和/或蜜罐平台系统602中的一个或多个或组合来执行。
157.方法700可以在框702处开始,其中iaas服务的计算实例可以提供(例如,实现/执行)多个蜜罐服务器。每个蜜罐服务器可以在容器中实现,容器可以是对物理服务器的模拟。此外,每个蜜罐服务器通过蜜罐类型来识别。例如,蜜罐的类型包括smtp蜜罐、weblogic蜜罐、http蜜罐、ftp蜜罐、ssh蜜罐等。基于该类型,每个蜜罐可以与用户不同地进行交互、处理不同的数据等。此外,该多个蜜罐可以被视为蜜网,它可以由单个计算实例来实现,该计算实例可以在iaas服务内本地运行,或者在外部(例如,由第三方服务提供商)运行。
158.在框704处,方法700可以通过计算实例引诱攻击者与蜜罐服务器中的至少一个蜜罐服务器建立会话。该引诱可以基于将与分配给蜜罐的ip相关联的一个或多个端口暴露在公共网络(例如,互联网)上。该引诱还可以包括发布用于蜜罐的登录凭证;然而,在大多数情况下,暴露端口可能足以引诱攻击者,因为攻击者和广大公众知道存在各种用户名/密码组合。
159.在框706处,方法700可以通过计算实例接收来自攻击者的第一请求。在一些情况下,第一请求可以与该实例相关和/或它可以包括请求特性。第一请求通常是登录到位于攻击者感兴趣的端口的另一侧的服务的请求。第一请求特性可以识别通过其发送该请求的端口、所请求的服务的类型、所请求的动作的类型等。
160.在框708处,方法700可以通过计算实例至少部分地基于该请求特性和蜜罐类型来识别多个蜜罐服务器中的特定蜜罐服务器。例如,如果攻击者正在请求访问端口25并且端口25对应于smtp服务器,那么计算实例可以识别正为该攻击者对smtp服务器进行模拟的蜜罐。在这个示例中,请求特性是识别端口25或登录到邮件(smtp)服务器的请求的信息。使用
该信息,计算实例可以(例如,基于特性到类型的映射)识别smtp蜜罐以用于这个潜在连接。在这个示例中识别出的特定蜜罐是smtp蜜罐。
161.在框710处,方法700可以通过计算实例建立与攻击者的会话以用于与该特定蜜罐连接。以这种方式,可以建立具有短期(例如,5分钟)状态的会话。在会话期间,攻击者将有权访问已识别出的特定蜜罐服务器。一旦攻击者登出,将需要建立新的会话,其或者使用相同的蜜罐服务器或者使用另一类型。
162.在框712处,方法700可以通过连接到攻击者的特定蜜罐服务器来生成对来自攻击者的第二请求的响应。第二请求可能是在会话建立之后做出的,因此它可能是从已登录的攻击者接收到的。第二请求可能是启动虚拟计算实例、访问安全资源等的请求。本质上,第二请求可以是攻击者可能选择从他们已登录到的蜜罐服务器请求的任何类型的请求。生成的响应应该是对该请求的适当响应。例如,如果请求是访问数据项,那么该响应应该提供该数据项或该数据项的虚假版本。如果请求是启动虚拟计算实例,那么该响应应该是对此实例化的确认。
163.在框714处,方法700可以通过特定蜜罐服务器响应于第二请求使该响应传送给攻击者。如以上所指出的,该响应应该是适合于给定的请求的,以使攻击者相信他们已连接到真实的服务器。
164.方法700可以在框716处结束,其中计算实例可以记录与攻击者相关的数据或与攻击者与特定蜜罐的一个或多个交互相关的数据。可以处理和/或分析这些数据,以帮助防止将来的攻击。
165.示例实施方式
166.如以上所指出的,基础设施即服务(iaas)是一种特定类型的云计算。iaas可以被配置为通过公共网络(例如,互联网)提供虚拟化计算资源。在iaas模型中,云计算提供商可以托管基础设施部件(例如,服务器、存储设备、网络节点(例如,硬件)、部署软件、平台虚拟化(例如,管理程序层)等)。在一些情况下,iaas提供商还可以提供各种服务(例如,计费、监视、记载、安全性、负载平衡和聚类等)来伴随这些基础设施部件。因此,由于这些服务可能是策略驱动的,因此iaas用户可以能够实现策略来驱动负载平衡,以维持应用的可用性和性能。
167.在一些情况下,iaas客户可以通过诸如互联网之类的广域网(wan)访问资源和服务,并且可以使用云提供商的服务来安装应用栈的剩余元素。例如,用户可以登录到iaas平台以创建虚拟机(vm)、在每个vm上安装操作系统(os)、部署诸如数据库之类的中间件、为工作负载和备份创建存储桶,甚至将企业软件安装到那个vm中。然后,客户可以使用提供商的服务来执行各种功能,包括平衡网络流量、解决应用问题、监视性能、管理灾难恢复等。
168.在大多数情况下,云计算模型将需要云提供商的参与。云提供商可以但不一定是专门提供(例如,供应、出租、销售)iaas的第三方服务。实体也可能选择部署私有云,从而成为其自己的基础设施服务提供商。
169.在一些示例中,iaas部署是将新应用或应用的新版本放置到准备好的应用服务器等上的过程。它还可以包括准备服务器(例如,安装库、守护进程等)的处理。这通常由云提供商管理,位于管理程序层之下(例如,服务器、存储装置、网络硬件和虚拟化)。因此,客户可以负责处理(os)、中间件和/或应用部署(例如,在(例如,可以按需启动的)自助服务虚拟
机等上)。
170.在一些示例中,iaas供给可以指获取计算机或虚拟主机以供使用,甚至在它们上安装所需的库或服务。大多数情况下,部署不包括供给,并且供给可能需要被首先执行。
171.在一些情况下,iaas供给存在两个不同的问题。首先,在任何东西运行之前供给初始基础设施集存在最初的挑战。其次,一旦所有东西已被供给,就存在演进现有基础设施(例如,添加新服务、更改服务、移除服务等)的挑战。在一些情况下,可以通过启用以声明方式定义基础设施的配置来解决这两个挑战。换句话说,基础设施(例如,需要哪些部件以及它们如何交互)可以由一个或多个配置文件来定义。因此,基础设施的总体拓扑(例如,哪些资源依赖于哪些资源,以及它们如何协同工作)可以以声明的方式描述。在一些情况下,一旦定义了拓扑,就可以生成创建和/或管理配置文件中描述的不同部件的工作流。
172.在一些示例中,基础设施可以具有许多互连的元素。例如,可能存在一个或多个虚拟私有云(vpc)(例如,可配置和/或共享计算资源的潜在按需池),也称为核心网络。在一些示例中,还可以供给一个或多个安全组规则以定义如何设立网络的安全性以及一个或多个虚拟机(vm)。也可以供给其它基础设施元素,诸如负载平衡器、数据库等。随着期望和/或添加越来越多的基础设施元素,基础设施可以逐步演进。
173.在一些情况下,可以采用连续部署技术来使得能够跨各种虚拟计算环境部署基础设施代码。此外,所描述的技术可以使得能够在这些环境内进行基础设施管理。在一些示例中,服务团队可以编写期望部署到一个或多个(但通常是许多个)不同的生产环境(例如,跨各种不同的地理位置,有时跨越整个世界)的代码。然而,在一些示例中,将在其上部署代码的基础设施必须首先被设立。在一些情况下,供给可以手动完成,可以利用供给工具供给资源,和/或一旦供给基础设施就可以利用部署工具来部署代码。
174.图8是图示根据至少一个实施例的iaas体系架构的示例模式的框图800。服务运营商802可以通信地耦合到安全主机租赁804,安全主机租赁804可以包括虚拟云网络(vcn)806和安全主机子网808。在一些示例中,服务运营商802可以使用一个或多个客户端计算设备,其可以是便携式手持设备(例如,蜂窝电话、计算平板、个人数字助理(pda))或可穿戴设备(例如,google头戴式显示器)、运行软件(诸如microsoft windows)和/或各种移动操作系统(诸如ios、windows phone、android、blackberry 8、palm os等),并且支持互联网、电子邮件、短消息服务(sms)、或其它通信协议。替代地,客户端计算设备可以是通用个人计算机,包括例如运行各种版本的microsoftapple和/或linux操作系统的个人计算机和/或膝上型计算机。客户端计算设备可以是运行各种商业上可获得的或类unix操作系统,包括但不限于各种gnu/linux操作系统(诸如例如google chrome os)中的任何一种的工作站计算机。替代地或附加地,客户端计算设备可以是任何其它电子设备,诸如瘦客户端计算机、支持互联网的游戏系统(例如,具有或不具有手势输入设备的microsoft xbox游戏控制台),和/或能够通过可以访问vcn 806和/或互联网的网络进行通信的个人消息传递设备。
175.vcn 806可以包括本地对等网关(lpg)810,其可以经由包含在ssh vcn 812中的
lpg 810而通信地耦合到安全壳(ssh)vcn812。ssh vcn 812可以包括ssh子网814,并且ssh vcn 812可以经由包含在控制平面vcn 816中的lpg 810而通信地耦合到控制平面vcn 816。此外,ssh vcn 812可以经由lpg 810通信地耦合到数据平面vcn 818。控制平面vcn 816和数据平面vcn 818可以被包含在可以由iaas提供商拥有和/或操作的服务租赁819中。
176.控制平面vcn 816可以包括充当外围网络(例如,在公司内部网与外部网络之间的公司网络的部分)的控制平面非军事区(dmz)层820。基于dmz的服务器可以承担有限责任并有助于控制安全漏洞。此外,dmz层820可以包括一个或多个负载平衡器(lb)子网822、可以包括(一个或多个)应用子网826的控制平面应用层824、可以包括(一个或多个)数据库(db)子网830(例如,(一个或多个)前端db子网和/或(一个或多个)后端db子网)的控制平面数据层828。包含在控制平面dmz层820中的(一个或多个)lb子网822可以通信地耦合到被包含在控制平面应用层824中的(一个或多个)应用子网826以及可以被包含在控制平面vcn 816中的互联网网关834,并且(一个或多个)应用子网826可以通信地耦合到被包含在控制平面数据层828中的(一个或多个)db子网830以及服务网关836和网络地址转换(nat)网关838。控制平面vcn 816可以包括服务网关836和nat网关838。
177.控制平面vcn 816可以包括数据平面镜像应用层840,其可以包括(一个或多个)应用子网826。包含在数据平面镜像应用层840中的(一个或多个)应用子网826可以包括可以执行计算实例844的虚拟网络接口控制器(vnic)842。计算实例844可以将数据平面镜像应用层840的(一个或多个)应用子网826通信地耦合到可以被包含在数据平面应用层846中的(一个或多个)应用子网826。
178.数据平面vcn 818可以包括数据平面应用层846、数据平面dmz层848和数据平面数据层850。数据平面dmz层848可以包括(一个或多个)lb子网822,其可以通信地耦合到数据平面应用层846的(一个或多个)应用子网826以及数据平面vcn 818的互联网网关834。(一个或多个)应用子网826可以通信地耦合到数据平面vcn 818的服务网关836和数据平面vcn 818的nat网关838。数据平面数据层850还可以包括可以通信地耦合到数据平面应用层846的(一个或多个)应用子网826的(一个或多个)db子网830。
179.控制平面vcn 816和数据平面vcn 818的互联网网关834可以通信地耦合到元数据管理服务852,元数据管理服务852可以通信地耦合到公共互联网854。公共互联网854可以通信地耦合到控制平面vcn 816和数据平面vcn 818的nat网关838。控制平面vcn 816和数据平面vcn 818的服务网关836可以通信地耦合到云服务856。
180.在一些示例中,控制平面vcn 816或数据平面vcn 818的服务网关836可以对云服务856进行应用编程接口(api)调用,而无需通过公共互联网854。从服务网关836到云服务856的api调用可以是单向的:服务网关836可以对云服务856进行api调用,并且云服务856可以将请求的数据发送到服务网关836。然而,云服务856不能发起对服务网关836的api调用。
181.在一些示例中,安全主机租赁804可以直接连接到服务租赁819,服务租赁819否则可以被隔离。安全主机子网808可以通过lpg 810与ssh子网814通信,lpg 810可以使得能够在否则隔离的系统上进行双向通信。将安全主机子网808连接到ssh子网814可以使安全主机子网808访问服务租赁819内的其它实体。
182.控制平面vcn 816可以允许服务租赁819的用户设立或以其它方式供给期望的资
源。在控制平面vcn 816中供给的期望资源可以在数据平面vcn 818中部署或以其它方式使用。在一些示例中,控制平面vcn 816可以与数据平面vcn 818隔离,并且控制平面vcn816的数据平面镜像应用层840可以经由vnic 842与数据平面vcn818的数据平面应用层846通信,vnic 842可以被包含在数据平面镜像应用层840和数据平面应用层846中。
183.在一些示例中,系统的用户或客户可以通过可以将请求传送到元数据管理服务852的公共互联网854来做出请求,例如创建、读取、更新或删除(crud)操作。元数据管理服务852可以通过互联网网关834将请求传送到控制平面vcn 816。请求可以被包含在控制平面dmz层820中的(一个或多个)lb子网822接收。(一个或多个)lb子网822可以确定请求是有效的,并且响应于该确定,(一个或多个)lb子网822可以将请求传输到包含在控制平面应用层824中的(一个或多个)应用子网826。如果请求被验证并且需要对公共互联网854的调用,那么对公共互联网854的调用可以被传输到可以对公共互联网854进行调用的nat网关838。请求可能期望存储的存储器可以存储在(一个或多个)db子网830中。
184.在一些示例中,数据平面镜像应用层840可以促进控制平面vcn816和数据平面vcn 818之间的直接通信。例如,可能期望对包含在数据平面vcn 818中的资源应用对配置的更改、更新或其它适当的修改。经由vnic 842,控制平面vcn 816可以直接与包含在数据平面vcn 818中的资源通信,并且从而可以执行对配置的更改、更新或其它适当的修改。
185.在一些实施例中,控制平面vcn 816和数据平面vcn 818可以包含在服务租赁819中。在这种情况下,系统的用户或客户可能不拥有或操作控制平面vcn 816或数据平面vcn 818。替代地,iaas提供商可以拥有或操作控制平面vcn 816和数据平面vcn 818,这两个平面都可以包含在服务租赁819中。该实施例可以使得能够隔离网络,这可以阻止用户或客户与其它用户或其它客户的资源交互。此外,该实施例可以允许系统的用户或客户私自存储数据库,而无需依赖可能不具有期望安全级别的公共互联网854进行存储。
186.在其它实施例中,包含在控制平面vcn 816中的(一个或多个)lb子网822可以被配置为从服务网关836接收信号。在这个实施例中,控制平面vcn 816和数据平面vcn 818可以被配置为由iaas提供商的客户调用而无需调用公共互联网854。iaas提供商的客户可能期望这个实施例,因为客户使用的(一个或多个)数据库可以由iaas提供商控制并且可以存储在服务租赁819上,服务租赁819可以与公共互联网854隔离。
187.图9是图示根据至少一个实施例的iaas体系架构的另一个示例模式的框图900。服务运营商902(例如,图8的服务运营商802)可以通信地耦合到安全主机租赁904(例如,图8的安全主机租赁804),该安全主机租赁904可以包括虚拟云网络(vcn)906(例如,图8的vcn 806)和安全主机子网908(例如,图8的安全主机子网808)。vcn 906可以包括本地对等网关(lpg)910(例如,图8的lpg810),其可以经由包含在ssh vcn 912中的lpg 810通信地耦合到安全壳(ssh)vcn 912(例如,图8的ssh vcn 812)。ssh vcn912可以包括ssh子网914(例如,图8的ssh子网814),并且ssh vcn 912可以经由包含在控制平面vcn 916中的lpg 910通信地耦合到控制平面vcn 916(例如,图8的控制平面vcn 816)。控制平面vcn 916可以包含在服务租赁919(例如,图8的服务租赁819)中,并且数据平面vcn 918(例如,图8的数据平面vcn 818)可以包含在可能由系统的用户或客户拥有或操作的客户租赁921中。
188.控制平面vcn 916可以包括控制平面dmz层920(例如,图8的控制平面dmz层820),其可以包括(一个或多个)lb子网922(例如,图8的(一个或多个)lb子网822)、可以包括(一
个或多个)应用子网926(例如,图8的(一个或多个)应用子网826)的控制平面应用层924(例如,图8的控制平面应用层824)、可以包括(一个或多个)数据库(db)子网930(例如,类似于图8的(一个或多个)db子网830)的控制平面数据层928(例如,图8的控制平面数据层828)。包含在控制平面dmz层920中的(一个或多个)lb子网922可以通信地耦合到包含在控制平面应用层924中的(一个或多个)应用子网926和可以包含在控制平面vcn 916中的互联网网关934(例如,图8的互联网网关834),并且(一个或多个)应用子网926可以通信地耦合到包含在控制平面数据层928中的(一个或多个)db子网930以及服务网关936(例如,图8的服务网关)和网络地址转换(nat)网关938(例如,图8的nat网关838)。控制平面vcn 916可以包括服务网关936和nat网关938。
189.控制平面vcn 916可以包括数据平面镜像应用层940(例如,图8的数据平面镜像应用层840),其可以包括(一个或多个)应用子网926。包含在数据平面镜像应用层940中的(一个或多个)应用子网926可以包括可以执行计算实例944(例如,类似于图8的计算实例844)的虚拟网络接口控制器(vnic)942(例如,842的vnic)。计算实例944可以促进数据平面镜像应用层940的(一个或多个)应用子网926和可以包含在数据平面应用层946(例如,图8的数据平面应用层846)中的(一个或多个)应用子网926之间的经由包含在数据平面镜像应用层940中的vnic 942和包含在数据平面应用层946中的vnic 942的通信。
190.包含在控制平面vcn 916中的互联网网关934可以通信地耦合到元数据管理服务952(例如,图8的元数据管理服务852),该元数据管理服务952可以通信地耦合到公共互联网954(例如,图8的公共互联网854)。公共互联网954可以通信地耦合到包含在控制平面vcn 916中的nat网关938。包含在控制平面vcn 916中的服务网关936可以通信地耦合到云服务956(例如,图8的云服务856)。
191.在一些示例中,数据平面vcn 918可以包含在客户租赁921中。在这种情况下,iaas提供商可以为每个客户提供控制平面vcn 916,并且iaas提供商可以为每个客户设立包含在服务租赁919中的唯一计算实例944。每个计算实例944可以允许包含在服务租赁919中的控制平面vcn 916和包含在客户租赁921中的数据平面vcn 918之间的通信。计算实例944可以允许在包含在服务租赁919中的控制平面vcn 916中供给的资源被部署或以其它方式在包含在客户租赁921中的数据平面vcn 918中使用。
192.在其它示例中,iaas提供商的客户可以具有存活于客户租赁921中的数据库。在这个示例中,控制平面vcn 916可以包括数据平面镜像应用层940,其可以包括(一个或多个)应用子网926。数据平面镜像应用层940可以驻留在数据平面vcn 918中,但数据平面镜像应用层940可能不存活于数据平面vcn 918中。即,数据平面镜像应用层940可以访问客户租赁921,但是数据平面镜像应用层940可能不存在于数据平面vcn 918中或者由iaas提供商的客户拥有或操作。数据平面镜像应用层940可以被配置为对数据平面vcn 918进行调用,但可以不被配置为对包含在控制平面vcn 916中的任何实体进行调用。客户可能期望在数据平面vcn 918中部署或以其它方式使用在控制平面vcn 916中供给的资源,并且数据平面镜像应用层940可以促进客户的期望部署或资源的其它使用。
193.在一些实施例中,iaas提供商的客户可以将过滤器应用到数据平面vcn 918。在这个实施例中,客户可以确定数据平面vcn 918可以访问什么,并且客户可以限制从数据平面vcn 918对公共互联网954的访问。iaas提供商可能无法应用过滤器或以其它方式控制数据
平面vcn 918对任何外部网络或数据库的访问。客户将过滤器和控制应用到包含在客户租赁921中的数据平面vcn 918上可以帮助将数据平面vcn 918与其它客户以及与公共互联网954隔离开。
194.在一些实施例中,云服务956可以由服务网关936调用以访问公共互联网954、控制平面vcn 916或数据平面vcn 918上可能不存在的服务。云服务956与控制平面vcn 916或数据平面vcn 918之间的连接可以不是实时的或连续的。云服务956可以存在于由iaas提供商拥有或操作的不同网络上。云服务956可以被配置为接收来自服务网关936的调用并且可以被配置为不接收来自公共互联网954的调用。一些云服务956可以与其它云服务956隔离,并且控制平面vcn916可以与可能与控制平面vcn 916不在同一区域的云服务956隔离。例如,控制平面vcn 916可能位于“区域1”,并且云服务“部署8”可能位于区域1和“区域2”。如果包含在位于区域1中的控制平面vcn 916中的服务网关936对部署8进行调用,那么该调用可以被传输到区域1中的部署8。在这个示例中,控制平面vcn 916或区域1中的部署8可能不与区域2中的部署8通信地耦合或以其它方式通信。
195.图10是图示根据至少一个实施例的iaas体系架构的另一个示例模式的框图1000。服务运营商1002(例如,图8的服务运营商802)可以通信地耦合到安全主机租赁1004(例如,图8的安全主机租赁804),该安全主机租赁1004可以包括虚拟云网络(vcn)1006(例如,图8的vcn 806)和安全主机子网1008(例如,图8的安全主机子网808)。vcn 1006可以包括lpg 1010(例如,图8的lpg810),其可以经由包含在ssh vcn 1012中的lpg 1010通信地耦合到ssh vcn 1012(例如,图8的ssh vcn 812)。ssh vcn 1012可以包括ssh子网1014(例如,图8的ssh子网814),并且ssh vcn 1012可以经由包含在控制平面vcn 1016中的lpg 1010通信地耦合到控制平面vcn 1016(例如,图8的控制平面vcn 816)并且经由包含在数据平面vcn 1018中的lpg 1010耦合到数据平面vcn1018(例如,图8的数据平面818)。控制平面vcn 1016和数据平面vcn 1018可以包含在服务租赁1019(例如,图8的服务租赁819)中。
196.控制平面vcn 1016可以包括可以包括(一个或多个)负载平衡器(lb)子网1022(例如,图8的(一个或多个)lb子网822)的控制平面dmz层1020(例如,图8的控制平面dmz层820)、可以包括(一个或多个)应用子网1026(例如,类似于图8的(一个或多个)应用子网826)的控制平面应用层1024(例如,图8的控制平面应用层824)、可以包括(一个或多个)db子网1030的控制平面数据层1028(例如,图8的控制平面数据层828)。包含在控制平面dmz层1020中的(一个或多个)lb子网1022可以通信地耦合到包含在控制平面应用层1024中的(一个或多个)应用子网1026和可以包含在控制平面vcn 1016中的互联网网关1034(例如,图8的互联网网关834),并且(一个或多个)应用子网1026可以通信地耦合到包含在控制平面数据层1028中的(一个或多个)db子网1030以及服务网关1036(例如,图8的服务网关)和网络地址转换(nat)网关1038(例如,图8的nat网关838)。控制平面vcn 1016可以包括服务网关1036和nat网关1038。
197.数据平面vcn 1018可以包括数据平面应用层1046(例如,图8的数据平面应用层846)、数据平面dmz层1048(例如,图8的数据平面dmz层848),以及数据平面数据层1050(例如,图8的数据平面数据层850)。数据平面dmz层1048可以包括可以通信地耦合到数据平面应用层1046的(一个或多个)可信应用子网1060和(一个或多个)不可信应用子网1062以及包含在数据平面vcn 1018中的互联网网关1034的(一个或多个)lb子网1022。(一个或多个)
可信应用子网1060可以通信地耦合到包含在数据平面vcn 1018中的服务网关1036、包含在数据平面vcn 1018中的nat网关1038以及包含在数据平面数据层1050中的(一个或多个)db子网1030。(一个或多个)不可信应用子网1062可以通信地耦合到包含在数据平面vcn 1018中的服务网关1036和包含在数据平面数据层1050中的(一个或多个)db子网1030。数据平面数据层1050可以包括可以通信地耦合到包含在数据平面vcn 1018中的服务网关1036的(一个或多个)db子网1030。
198.(一个或多个)不可信应用子网1062可以包括可以通信地耦合到租户虚拟机(vm)1066(1)-(n)的一个或多个主vnic 1064(1)-(n)。每个租户vm 1066(1)-(n)可以通信地耦合到可以包含在相应容器出口vcn 1068(1)-(n)中的相应应用子网1067(1)-(n),相应容器出口vcn 1068(1)-(n)可以包含在相应客户租赁1070(1)-(n)中。相应的辅助vnic 1072(1)-(n)可以促进数据平面vcn 1018中包含的(一个或多个)不可信应用子网1062与容器出口vcn 1068(1)-(n)中包含的应用子网之间的通信。每个容器出口vcn 1068(1)-(n)可以包括nat网关1038,该nat网关1038可以通信地耦合到公共互联网1054(例如,图8的公共互联网854)。
199.包含在控制平面vcn 1016中以及包含在数据平面vcn 1018中的互联网网关1034可以通信地耦合到元数据管理服务1052(例如,图8的元数据管理系统852),该元数据管理服务1052可以通信地耦合到公共互联网1054。公共互联网1054可以通信地耦合到包含在控制平面vcn 1016中以及包含在数据平面vcn 1018中的nat网关1038。包含在控制平面vcn 1016中以及包含在数据平面vcn 1018中的服务网关1036可以通信地耦合到云服务1056。
200.在一些实施例中,数据平面vcn 1018可以与客户租赁1070集成。在一些情况下,诸如在执行代码时可能期望支持的情况下,这种集成对于iaas提供商的客户可能是有用的或期望的。客户可能提供可能具有破坏性、可能与其它客户资源通信或可能以其它方式导致非期望效果的代码来运行。作为对此的响应,iaas提供商可以确定是否运行由客户给予iaas提供商的代码。
201.在一些示例中,iaas提供商的客户可以向iaas提供商授予临时网络访问,并请求将一功能附加到数据平面层应用1046。运行该功能的代码可以在vm 1066(1)-(n)中执行,并且该代码可以不被配置为在数据平面vcn 1018上的其它任何地方运行。每个vm 1066(1)-(n)可以连接到一个客户租赁1070。包含在vm 1066(1)-(n)中的相应容器1071(1)-(n)可以被配置为运行该代码。在这种情况下,可以存在双重隔离(例如,容器1071(1)-(n)运行代码,其中容器1071(1)-(n)可能至少被包含在(一个或多个)不可信应用子网1062中包含的vm 1066(1)-(n)中),这可以帮助防止不正确的或以其它方式非期望的代码损坏iaas提供商的网络或损坏不同客户的网络。容器1071(1)-(n)可以通信地耦合到客户租赁1070并且可以被配置为传输或接收来自客户租赁1070的数据。容器1071(1)-(n)可以不被配置为从数据平面vcn 1018中的任何其它实体传输或接收数据。在运行代码完成后,iaas提供商可以终止或以其它方式处置容器1071(1)-(n)。
202.在一些实施例中,(一个或多个)可信应用子网1060可以运行可以由iaas提供商拥有或操作的代码。在这个实施例中,(一个或多个)可信应用子网1060可以通信地耦合到(一个或多个)db子网1030并且被配置为在(一个或多个)db子网1030中执行crud操作。(一个或多个)不可信应用子网1062可以通信地耦合到(一个或多个)db子网1030,但是在这个实施
例中,(一个或多个)不可信应用子网可以被配置为在(一个或多个)db子网1030中执行读取操作。可以包含在每个客户的vm 1066(1)-(n)中并且可以运行来自客户的代码的容器1071(1)-(n)可以不与(一个或多个)db子网1030通信地耦合。
203.在其它实施例中,控制平面vcn 1016和数据平面vcn 1018可以不直接通信地耦合。在这个实施例中,控制平面vcn 1016和数据平面vcn 1018之间可能没有直接通信。然而,通信可以通过至少一种方法间接发生。lpg 1010可以由iaas提供商建立,其可以促进控制平面vcn 1016和数据平面vcn 1018之间的通信。在另一个示例中,控制平面vcn 1016或数据平面vcn 1018可以经由服务网关1036调用云服务1056。例如,从控制平面vcn 1016对云服务1056的调用可以包括对如下服务的请求,即,该服务可以与数据平面vcn 1018通信。
204.图11是图示根据至少一个实施例的iaas体系架构的另一个示例模式的框图1100。服务运营商1102(例如,图8的服务运营商802)可以通信地耦合到安全主机租赁1104(例如,图8的安全主机租赁804),该安全主机租赁1104可以包括虚拟云网络(vcn)1106(例如,图8的vcn 806)和安全主机子网1108(例如,图8的安全主机子网808)。vcn 1106可以包括lpg 1110(例如,图8的lpg810),该lpg 1110可以经由包含在ssh vcn 1112(例如,图8的ssh vcn 812)中的lpg 1110通信地耦合到ssh vcn 1112。ssh vcn 1112可以包括ssh子网1114(例如,图8的ssh子网814),并且ssh vcn 1112可以经由包含在控制平面vcn 1116中的lpg1110通信地耦合到控制平面vcn 1116(例如,图8的控制平面vcn816)并且经由包含在数据平面vcn 1118中的lpg 1110耦合到数据平面vcn 1118(例如,图8的数据平面818)。控制平面vcn 1116和数据平面vcn 1118可以包含在服务租赁1119(例如,图8的服务租赁819)中。
205.控制平面vcn 1116可以包括可以包括(一个或多个)lb子网1122(例如,图8的(一个或多个)lb子网822)的控制平面dmz层1120(例如,图8的控制平面dmz层820)、可以包括(一个或多个)应用子网1126(例如,图8的(一个或多个)应用子网826)的控制平面应用层1124(例如,图8的控制平面应用层824)、可以包括(一个或多个)db子网1130(例如,图10的(一个或多个)db子网1030)的控制平面数据层1128(例如,图8的控制平面数据层828)。包含在控制平面dmz层1120中的(一个或多个)lb子网1122可以通信地耦合到包含在控制平面应用层1124中的(一个或多个)应用子网1126和可以包含在控制平面vcn 1116中的互联网网关1134(例如,图8的互联网网关834),并且(一个或多个)应用子网1126可以通信地耦合到包含在控制平面数据层1128中的(一个或多个)db子网1130以及服务网关1136(例如,图8的服务网关)和网络地址转换(nat)网关1138(例如,图8的nat网关838)。控制平面vcn 1116可以包括服务网关1136和nat网关1138。
206.数据平面vcn 1118可以包括数据平面应用层1146(例如,图8的数据平面应用层846)、数据平面dmz层1148(例如,图8的数据平面dmz层848)),以及数据平面数据层1150(例如,图8的数据平面数据层850)。数据平面dmz层1148可以包括可以通信地耦合到数据平面应用层1146的(一个或多个)可信应用子网1160(例如,图10的(一个或多个)可信应用子网1060)和(一个或多个)不可信应用子网1162(例如,图10的(一个或多个)不可信应用子网1062)以及包含在数据平面vcn 1118中的互联网网关1134的(一个或多个)lb子网1122。(一个或多个)可信应用子网1160可以通信地耦合到包含在数据平面vcn 1118中的服务网关1136、包含在数据平面vcn 1118中的nat网关1138以及包含在数据平面数据层1150中的(一个或多个)db子网1130。(一个或多个)不可信应用子网1162可以通信地耦合到包含在数据
平面vcn 1118中的服务网关1136和包含在数据平面数据层1150中的(一个或多个)db子网1130。数据平面数据层1150可以包括可以通信地耦合到包含在数据平面vcn 1118中的服务网关1136的(一个或多个)db子网1130。
207.(一个或多个)不可信应用子网1162可以包括可以通信地耦合到驻留在(一个或多个)不可信应用子网1162内的租户虚拟机(vm)1166(1)-(n)的主vnic 1164(1)-(n)。每个租户vm 1166(1)-(n)可以在相应的容器1167(1)-(n)中运行代码,并且可通信地耦合到可以包含在容器出口vcn 1168中包含的数据平面应用层1146中的应用子网1126。相应的辅助vnic 1172(1)-(n)可以促进包含在数据平面vcn 1118中的(一个或多个)不可信应用子网1162与包含在容器出口vcn 1168中的应用子网之间的通信。容器出口vcn可以包括可以通信地耦合到公共互联网1154(例如,图8的公共互联网854)的nat网关1138。
208.包含在控制平面vcn 1116中以及包含在数据平面vcn 1118中的互联网网关1134可以通信地耦合到元数据管理服务1152(例如,图8的元数据管理系统852),该元数据管理服务1152可以通信地耦合到公共互联网1154。公共互联网1154可以通信地耦合到包含在控制平面vcn 1116中并且包含在数据平面vcn 1118中的nat网关1138。包含在控制平面vcn 1116中并且包含在数据平面vcn 1118中的服务网关1136可以通信地耦合到云服务1156。
209.在一些示例中,图11的框图1100的体系架构所示的模式可以被认为是图10的框图1000的体系架构所示的模式的例外,并且如果iaas提供商不能直接与客户通信(例如,断开连接的区域),那么这个模式可能是iaas提供商的客户所期望的。客户可以实时访问每个客户的vm 1166(1)-(n)中包含的相应容器1167(1)-(n)。容器1167(1)-(n)可以被配置为对包含在数据平面应用层1146的(一个或多个)应用子网1126中的相应辅助vnic 1172(1)-(n)进行调用,其可以包含在容器出口vcn 1168中。辅助vnic 1172(1)-(n)可以将这些调用传输到nat网关1138,nat网关1138可以将调用传输到公共互联网1154。在这个示例中,可以由客户实时访问的容器1167(1)-(n)可以与控制平面vcn 1116隔离,并且可以与数据平面vcn 1118中包含的其它实体隔离。容器1167(1)-(n)也可以与来自其它客户的资源隔离。
210.在其它示例中,客户可以使用容器1167(1)-(n)来调用云服务1156。在这个示例中,客户可以在容器1167(1)-(n)中运行从云服务1156请求服务的代码。容器1167(1)-(n)可以将该请求传输到辅助vnic 1172(1)-(n),辅助vnic 1172(1)-(n)可以将请求传输到nat网关,该nat网关可以将请求传输到公共互联网1154。公共互联网1154可以经由互联网网关1134将请求传输到包含在控制平面vcn 1116中的(一个或多个)lb子网1122。响应于确定该请求是有效的,(一个或多个)lb子网可以将请求传输到(一个或多个)应用子网1126,该(一个或多个)应用子网1126可以经由服务网关1136将请求传输到云服务1156。
211.应该认识到的是,各图中描绘的iaas体系架构800、900、1000、1100可以具有除所描绘的那些之外的其它部件。另外,各图中所示的实施例仅仅是可以结合本公开的实施例的云基础设施系统的一些示例。在一些其它实施例中,iaas系统可以具有比各图中所示更多或更少的部件、可以组合两个或更多个部件,或者可以具有不同的配置或部件布置。
212.在某些实施例中,本文描述的iaas系统可以包括以自助服务、基于订阅、弹性可扩展、可靠、高度可用和安全的方式交付给客户的应用套件、中间件和数据库服务产品。此类iaas系统的示例是本受让人提供的oracle云基础设施(oci)。
213.图12示出了其中可以实现本公开的各种实施例的示例性计算机系统1200。系统
1200可以用于实现上述任何计算机系统。如图所示,计算机系统1200包括经由总线子系统1202与多个外围子系统通信的处理单元1204。这些外围子系统可以包括处理加速单元1206、i/o子系统1208、存储子系统1218和通信子系统1224。存储子系统1218包括有形计算机可读存储介质1222和系统存储器1210。
214.总线子系统1202提供用于让计算机系统1200的各种部件和子系统按意图彼此通信的机制。虽然总线子系统1202被示意性地示出为单条总线,但是总线子系统的替代实施例可以利用多条总线。总线子系统1202可以是若干种类型的总线结构中的任何一种,包括存储器总线或存储器控制器、外围总线、以及使用任何各种总线体系架构的局部总线。例如,这种体系架构可以包括工业标准体系架构(isa)总线、微通道体系架构(mca)总线、增强型isa(eisa)总线、视频电子标准协会(vesa)局部总线和外围部件互连(pci)总线,其可以被实现为按ieee p1386.1标准制造的mezzanine总线。
215.可以被实现为一个或多个集成电路(例如,常规微处理器或微控制器)的处理单元1204控制计算机系统1200的操作。一个或多个处理器可以被包括在处理单元1204中。这些处理器可以包括单核或多核处理器。在某些实施例中,处理单元1204可以被实现为一个或多个独立的处理单元1232和/或1234,其中在每个处理单元中包括单核或多核处理器。在其它实施例中,处理单元1204也可以被实现为通过将两个双核处理器集成到单个芯片中形成的四核处理单元。
216.在各种实施例中,处理单元1204可以响应于程序代码执行各种程序并且可以维护多个并发执行的程序或进程。在任何给定的时间,要被执行的程序代码中的一些或全部代码可以驻留在(一个或多个)处理器1204中和/或存储子系统1218中。通过适当的编程,(一个或多个)处理器1204可以提供上述各种功能。计算机系统1200可以附加地包括处理加速单元1206,其可以包括数字信号处理器(dsp)、专用处理器,等等。
217.i/o子系统1208可以包括用户接口输入设备和用户接口输出设备。用户接口输入设备可以包括键盘、诸如鼠标或轨迹球的定点设备、结合到显示器中的触摸板或触摸屏、滚动轮、点击轮、拨盘、按钮、开关、键盘、具有语音命令识别系统的音频输入设备、麦克风以及其它类型的输入设备。用户接口输入设备可以包括,例如,运动感测和/或手势识别设备,诸如的microsoft运动传感器,其使得用户能够使用手势和语音命令通过自然用户接口来控制诸如的microsoft360游戏控制器的输入设备并与之交互。用户接口输入设备也可以包括眼睛姿势识别设备,诸如从用户检测眼睛活动(例如,当拍摄照片和/或做出菜单选择时的“眨眼”)并且将眼睛姿势转换为到输入设备(例如,google)中的输入的google眨眼检测器。此外,用户接口输入设备可以包括使用户能够通过语音命令与语音识别系统(例如,导航器)交互的语音识别感测设备。
218.用户接口输入设备也可以包括但不限于三维(3d)鼠标、操纵杆或指向棒、游戏面板和绘图板,以及音频/视频设备,诸如扬声器、数码相机、数码摄像机、便携式媒体播放器、网络摄像头、图像扫描仪、指纹扫描仪、条形码阅读器3d扫描仪、3d打印机、激光测距仪和视线跟踪设备。此外,用户接口输入设备可以包括,例如,医学成像输入设备,诸如计算机断层扫描、磁共振成像、正电子发射断层摄影术、医疗超声设备。用户接口输入设备也可以包括,例如,诸如midi键盘、数字乐器等的音频输入设备。
219.用户接口输出设备可以包括显示子系统、指示灯,或者诸如音频输出设备的非可视显示器,等等。显示子系统可以是阴极射线管(crt)、诸如使用液晶显示器(lcd)或等离子显示器的平板设备、投影设备、触摸屏,等等。一般而言,术语“输出设备”的使用意在包括用于从计算机系统1200向用户或其它计算机输出信息的所有可能类型的设备和机制。例如,用户接口输出设备可以包括,但不限于,可视地传达文本、图形和音频/视频信息的各种显示设备,诸如监视器、打印机、扬声器、耳机、汽车导航系统、绘图仪、语音输出设备,以及调制解调器。
220.计算机系统1200可以包括包含软件元件、被示为当前位于系统存储器1210中的存储子系统1218。系统存储器1210可以存储可加载并且可在处理单元1204上执行的程序指令,以及在这些程序的执行期间所产生的数据。
221.取决于计算机系统1200的配置和类型,系统存储器1210可以是易失性的(诸如随机存取存储器(ram))和/或非易失性的(诸如只读存储器(rom)、闪存存储器,等等)。ram通常包含可被处理单元1204立即访问和/或目前正被处理单元1204操作和执行的数据和/或程序模块。在一些实现中,系统存储器1210可以包括多种不同类型的存储器,例如静态随机存取存储器(sram)或动态随机存取存储器(dram)。在一些实现中,诸如包含有助于在启动期间在计算机系统1200的元件之间传送信息的基本例程的基本输入/输出系统(bios),通常可以被存储在rom中。作为示例,但不是限制,系统存储器1210也示出了可以包括客户端应用、web浏览器、中间层应用、关系数据库管理系统(rdbms)等的应用程序1212,程序数据1214,以及操作系统1216。作为示例,操作系统1216可以包括各种版本的microsoftapple和/或linux操作系统、各种可商业获得的或类unix操作系统(包括但不限于各种gnu/linux操作系统、google操作系统等)和/或诸如ios、phone、os、12os和os操作系统的移动操作系统。
222.存储子系统1218也可以提供用于存储提供一些实施例的功能的基本编程和数据结构的有形计算机可读存储介质。当被处理器执行时提供上述功能的软件(程序、代码模块、指令)可以被存储在存储子系统1218中。这些软件模块或指令可以被处理单元1204执行。存储子系统1218也可以提供用于存储根据本公开被使用的数据的储存库。
223.存储子系统1200也可以包括可被进一步连接到计算机可读存储介质1222的计算机可读存储介质读取器1220。与系统存储器1210一起并且,可选地,与其相结合,计算机可读存储介质1222可以全面地表示用于临时和/或更持久地包含、存储、发送和检索计算机可读信息的远程、本地、固定和/或可移除存储设备加存储介质。
224.包含代码或代码的部分的计算机可读存储介质1222也可以包括本领域已知或使用的任何适当的介质,包括存储介质和通信介质,诸如但不限于,以用于信息的存储和/或传输的任何方法或技术实现的易失性和非易失性、可移除和不可移除介质。这可以包括有形的计算机可读存储介质,诸如ram、rom、电可擦除可编程rom(eeprom)、闪存存储器或其它存储器技术、cd-rom、数字多功能盘(dvd)或其它光学储存器、磁带盒、磁带、磁盘储存器或其它磁存储设备,或者其它有形的计算机可读介质。这也可以包括非有形的计算机可读介质,诸如数据信号、数据传输,或者可以被用来发送期望信息并且可以被计算系统1200访问
的任何其它介质。
225.作为示例,计算机可读存储介质1222可以包括从不可移除的非易失性磁介质读取或写到其的硬盘驱动器、从可移除的非易失性磁盘读取或写到其的磁盘驱动器、以及从可移除的非易失性光盘(诸如cd rom、dvd和盘或其它光学介质)读取或写到其的光盘驱动器。计算机可读存储介质1222可以包括,但不限于,驱动器、闪存卡、通用串行总线(usb)闪存驱动器、安全数字(sd)卡、dvd盘、数字音频带,等等。计算机可读存储介质1222也可以包括基于非易失性存储器的固态驱动器(ssd)(诸如基于闪存存储器的ssd、企业闪存驱动器、固态rom等)、基于易失性存储器的ssd(诸如固态ram、动态ram、静态ram)、基于dram的ssd,磁阻ram(mram)ssd,以及使用基于dram和闪存存储器的ssd的组合的混合ssd。盘驱动器及其关联的计算机可读介质可以为计算机系统1200提供计算机可读指令、数据结构、程序模块及其它数据的非易失性存储。
226.通信子系统1224提供到其它计算机系统和网络的接口。通信子系统1224用作用于从其它系统接收数据和从计算机系统1200向其它系统发送数据的接口。例如,通信子系统1224可以使计算机系统1200能够经由互联网连接到一个或多个设备。在一些实施例中,通信子系统1224可以包括用于访问无线语音和/或数据网络的射频(rf)收发器部件(例如,使用蜂窝电话技术,诸如3g、4g或edge(用于全球演进的增强型数据速率)的先进数据网络技术,wifi(ieee802.11系列标准),或其它移动通信技术,或其任意组合)、全球定位系统(gps)接收器部件和/或其它部件。在一些实施例中,作为无线接口的附加或者替代,通信子系统1224可以提供有线网络连接(例如,以太网)。
227.在一些实施例中,通信子系统1224也可以代表可以使用计算机系统1200的一个或多个用户接收结构化和/或非结构化数据馈送1226、事件流1228、事件更新1230等形式的输入通信。
228.作为示例,通信子系统1224可被配置为实时地从社交网络和/或其它通信服务的用户接收数据馈送1226,诸如馈送、更新、诸如丰富站点摘要(rss)馈送的web馈送和/或来自一个或多个第三方信息源的实时更新。
229.此外,通信子系统1224也可被配置为接收连续数据流形式的数据,这可以包括本质上可以是连续的或无界的没有明确终止的实时事件的事件流1228和/或事件更新1230。产生连续数据的应用的示例可以包括,例如,传感器数据应用、金融报价机、网络性能测量工具(例如,网络监视和流量管理应用)、点击流分析工具、汽车流量监视,等等。
230.通信子系统1224也可被配置为向一个或多个数据库输出结构化和/或非结构化数据馈送1226、事件流1228、事件更新1230,等等,这一个或多个数据库可以与耦合到计算机系统1200的一个或多个流式数据源计算机通信。
231.计算机系统1200可以是各种类型之一,包括手持便携式设备(例如,蜂窝电话、计算平板电脑、pda)、可穿戴设备(例如,google头戴式显示器)、pc、工作站、大型机、信息站、服务器机架、或任何其它数据处理系统。
232.由于计算机和网络的不断变化的本质,在图中绘出的计算机系统1200的描述仅仅要作为具体的示例。具有比图中绘出的系统更多或更少部件的许多其它配置是可能的。例如,定制的硬件也可以被使用和/或特定的元素可以用硬件、固件、软件(包括applets)或其
组合来实现。另外,也可以采用到诸如网络输入/输出设备之类的其它计算设备的连接。基于本文提供的公开内容和示教,本领域普通技术人员将认识到实现各种实施例的其它方式和/或方法。
233.虽然已经描述了本公开的具体实施例,但是各种修改、变更、替代构造和等效形式也包含在本公开的范围内。本公开的实施例不限于在某些特定数据处理环境内操作,而是可以在多个数据处理环境内自由操作。此外,虽然已经使用特定系列的事务和步骤描述了本公开的实施例,但是本领域技术人员应该清楚本公开的范围不限于所描述系列的事务和步骤。上述实施例的各种特征和方面可以单独或联合使用。
234.另外,虽然已经使用硬件和软件的特定组合描述了本公开的实施例,但是应当认识到硬件和软件的其它组合也在本公开的范围内。本公开的实施例可以仅用硬件、或仅用软件、或使用它们的组合来实现。本文描述的各种处理可以以任何组合在相同的处理器或在不同的处理器上实现。相应地,在部件或模块被描述为被配置为执行某些操作的情况下,可以通过例如设计电子电路来执行操作、通过对可编程电子电路(诸如微处理器)进行编程来执行操作,或其任何组合来完成这样的配置。处理可以使用多种技术进行通信,包括但不限于用于处理间通信的常规技术,并且不同的处理对可以使用不同的技术,或者同一对处理可以在不同时间使用不同的技术。
235.相应地,说明书和附图被认为是说明性的而不是限制性的。然而,显然可以对其进行添加、减少、删除和其它修改和改变而不背离权利要求中阐述的更广泛的精神和范围。因此,虽然已经描述了具体的公开实施例,但这些并不旨在进行限制。各种修改和等效形式都在以下权利要求的范围内。
236.在描述所公开的实施例的上下文中(尤其在以下权利要求的上下文中)使用术语“一”和“一个”和“该”以及类似的指称要被解释为涵盖单数和复数,除非本文另有指示或与上下文明显矛盾。除非另有说明,否则术语“包括”、“具有”、“包含(including)”和“包含(containing)”要被解释为开放式术语(即,意思是“包括但不限于”)。术语“连接”应被解释为部分或全部包含在、附加到或连接在一起,即使中间存在一些东西。除非本文另有指示,否则本文中值范围的列举仅旨在用作个别引用落入该范围内的每个单独值的速记方法,并且每个单独值被并入说明书中,就好像它在本文中个别列举一样。除非本文另有指示或与上下文明显矛盾,否则本文所述的所有方法都可以以任何合适的顺序执行。本文提供的任何和所有示例或示例性语言(例如,“诸如”)的使用仅旨在更好地阐明本公开的实施例并且不对本公开的范围构成限制,除非另有声明。说明书中的任何语言都不应被解释为指示任何未要求保护的元素对于本公开的实践是必不可少的。
237.析取语言,诸如短语“x、y或z中的至少一个”,除非另有明确说明,否则旨在在一般用于表示项目、术语等的上下文中理解,可以是x、y或z,或它们的任何组合(例如,x、y和/或z)。因此,这种析取语言通常不旨在也不应暗示某些实施例需要x中的至少一个、y中的至少一个或z中的至少一个各自存在。
238.本文描述了本公开的优选实施例,包括已知用于实施本公开的最佳模式。那些优选实施例的变型对于本领域普通技术人员在阅读上述描述后会变得清楚。普通技术人员应该能够适当地采用这样的变型并且可以以不同于本文具体描述的方式来实践本公开。相应地,本公开包括在适用法律允许的情况下对所附权利要求中记载的主题的所有修改和等效
形式。此外,除非在本文中另有指示,否则本公开包括在其所有可能的变化中的上述元素的任何组合。
239.本文引用的所有参考文献,包括出版物、专利申请和专利,均以相同的程度通过引用并入本文,就好像每个参考文献个别且具体地指示通过引用并入并在本文中全文阐述一样。
240.在前述的说明书中,本公开的各方面参考其具体实施例进行了描述,但本领域技术人员将认识到的是,本公开不限于此。上述公开的各个特征和方面可以被单独或联合使用。此外,在不脱离本说明书的更广泛精神和范围的情况下,实施例可以在除本文所述的那些之外的任何数量的环境和应用中被使用。相应地,本说明书和附图应当被认为是说明性而不是限制性的。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献