掌桥专利:专业的专利平台
掌桥专利
首页

一种网络靶场场景隔离情况下的资源访问方法与系统

文献发布时间:2024-01-17 01:20:32


一种网络靶场场景隔离情况下的资源访问方法与系统

技术领域

本发明涉及一种网络靶场场景隔离情况下的资源访问方法与系统,属于网络安全、计算机软件技术领域。

背景技术

网络靶场是一个专门用于进行网络安全训练和演练的虚拟或物理环境。它模拟真实的网络环境,并允许安全专业人员、渗透测试人员和网络管理员在其中进行各种安全测试、攻击和防御实验。

OpenStack作为一个开源的云计算平台,旨在为公有云、私有云和混合云提供可扩展的基础设施即服务解决方案。在目前的网络靶场环境中,虚拟环境一般是基于OpenStack搭建的云平台构建的,OpenStack为网络靶场提供了靶标资源、虚拟的网络环境等。为了能够提供真实的攻防演练、攻击实验、和公平公正的比武竞赛环境,需要对不同靶场场景提供隔离环境,这就要求靶场场景之间是相互隔离的,靶场场景与宿主机是隔离的,靶场场景和外界是隔离的。

靶场场景通常是由虚拟机靶标、容器靶标、虚拟路由器、虚拟机交换机、实装设备等资源组成。用户通常在场景启动的时候接入到靶标内进行相关的实验或者比武竞赛,在实验过程中或者比武竞赛过程中有时会需要访问某些资源并下载,如工具库、漏洞库、或者软件包等,常见的实施方案有:一、将所需的全部资源封装到靶标镜像模板里;二、构建存放资源的共享存储;三、将资源从用户端浏览器拷贝到靶标里。

上述方案一存在的问题:1、靶标资源有可能是三方提供,且不可以二次改造;2、用户在靶标里面用的资源会因人而异,存在非通用性的,一方面把全部资源封装进去靶标镜像会非常大,不利于传输和保存;另一方面资源越多靶标越臃肿,会拖慢场景的启动速度;3、降低灵活性,随着应用程序和环境的变化,可能需要频繁创建不同版本的靶标镜像,增加了维护和管理的复杂性。

上述方案二存在的问题:1、靶标内部访问共享存储会破坏靶场场景的隔离性,容易被利用和攻击;2、需要额外维护共享存储;且共享存储协议众多,不利于在靶标内都进行支持。

上述方案三存在的问题:靶标接入支持场景很单一,如果支持文件上传的功能,极易容易被利用,如上传恶意工具进行暴力破解赛题。

发明内容

发明目的:针对上述现有技术存在的问题,本发明目的在于提供一种网络靶场场景隔离情况下的资源访问方法与系统,通过为靶标提供域名解析和流量转发能力达到在不破坏靶场场景隔离能力的前提下访问资源的目的。

技术方案:为实现上述发明目的,本发明采用如下技术方案:

一种网络靶场场景隔离情况下的资源访问方法,包括如下步骤:

在网络靶场提供DHCP和DNS服务的软件模块,增加元数据服务地址或预先设定资源服务地址与预设主机名的映射关系;所述预设主机名作为预设的靶场场景里靶标访问资源的域名;

监听元数据服务地址或预先设定资源服务地址的请求,并通过Linux socket转发到元数据服务代理或资源服务处理模块,元数据服务代理或资源服务处理模块接收到请求后,通过请求头中的信息识别出资源访问请求后,进行改造处理,将请求的域名加入到请求路径里进行标识,并转发到访问代理模块;

访问代理模块识别到请求中有标识的域名后,根据配置的转发规则,将请求转发到靶场资源中心;

靶场资源中心依据配置的访问策略提供资源访问。

作为优选,在基于OpenStack的网络靶场中,通过dnsmasq的addn-hosts指令扩展主机名解析功能;通过dhcp-optsfile指令扩展DHCP的路由自动化配置功能。

作为优选,所述访问代理模块采用Nginx实现,通过配置Nginx的转发规则,将标识的域名映射到访问资源的地址。

作为优选,通过配置域名映射关系控制资源的可见范围,对于全局模式的域名,能够访问全部资源;对于网络或子网定制模式的域名,只有对应网络或子网内的靶标能够访问域名关联的资源。

作为优选,对于全局模式的域名,在每个网络的命名空间里增加元数据服务地址或预先设定资源服务地址与预设主机名的映射关系;对于定制模式的域名,为对应的网络或子网增加元数据服务地址或预先设定资源服务地址与预设主机名的映射关系。

作为优选,资源的访问策略分为仅下载模式和可修改模式。

一种网络靶场场景隔离情况下的资源访问系统,包括:

域名映射模块,用于在网络靶场提供DHCP和DNS服务的软件模块,增加元数据服务地址或预先设定资源服务地址与预设主机名的映射关系;所述预设主机名作为预设的靶场场景里靶标访问资源的域名;

请求改造模块,用于监听元数据服务地址或预先设定资源服务地址的请求,并通过Linux socket转发到元数据服务代理或资源服务处理模块,元数据服务代理或资源服务处理模块接收到请求后,通过请求头中的信息识别出资源访问请求后,进行改造处理,将请求的域名加入到请求路径里进行标识,并转发到访问代理模块;

访问代理模块,用于识别到请求中有标识的域名后,根据配置的转发规则,将请求转发到靶场资源中心;

靶场资源中心,用于依据配置的访问策略提供资源访问。

进一步地,系统还包括:配置中心,用于配置资源访问的域名映射关系;通过配置域名映射关系控制资源的可见范围,对于全局模式的域名,能够访问全部资源;对于网络或子网定制模式的域名,只有对应网络或子网内的靶标能够访问域名关联的资源。

进一步地,配置中心还用于配置资源的访问策略,分为仅下载模式和可修改模式。

作为优选,所述域名映射模块中,对于全局模式的域名,在每个网络的命名空间里增加元数据服务地址或预先设定资源服务地址与预设主机名的映射关系;对于定制模式的域名,为对应的网络或子网增加元数据服务地址或预先设定资源服务地址与预设主机名的映射关系。

有益效果:本发明提供的一种网络靶场场景隔离情况下的资源访问方法与系统,靶标和靶场场景不需要做任何调整就具备相应的域名解析能力,用户在靶标内部只需简单的域名访问便可以获得需要的资源,原有的网络隔离能力不变,并且通过配置调整资源和域名、靶标所在的网络或者子网的映射关系,可以改变资源的访问能力。与现有技术相比,本发明具有如下优点:

1、管理方便:可以在靶场资源中心直接导入和管理合规的资源,而无需手动封装和分发到每个靶标上,简化了管理流程。

2、隔离性强:不需要额外的网络打通,不破坏原有靶场场景的隔离性。

3、使用快捷:用户端不需要额外配置,无需借助用户浏览器工具传输资源,开箱即用。

4、扩展能力强:通过配置域名、流量转发规则以及资源访问策略,可实现域名、资源、网络或子网间的映射关系,灵活控制资源的可见范围和访问权限,并具有很强的扩展能力。

5、安全性强:通过在请求内封装相关标识,并通过配置的策略进行转发,可以增强资源访问的安全性,防止未经授权的访问。

附图说明

图1为本发明实施例的应用场景示意图。

图2为本发明实施例的资源访问处理流程示意图。

具体实施方式

下面将结合附图和具体实施例,对本发明的技术方案进行清楚、完整的描述。

本发明实施例公开一种网络靶场场景隔离情况下的资源访问方法,通过为靶标提供域名解析(DNS)和流量转发能力达到在不破坏靶场场景隔离能力的前提下访问资源的目的。首先,在网络靶场提供DHCP和DNS服务的软件模块,增加元数据服务地址(或预先设定资源服务地址)与预设主机名的映射关系;该预设主机名即作为预设的靶场场景里靶标访问资源的域名;然后监听元数据服务地址(或预先设定资源服务地址)的请求,并通过Linuxsocket转发到元数据服务agent(或资源服务处理模块),元数据服务agent(或资源服务处理模块)接收到请求后,通过请求头中的信息识别出资源访问请求后,进行改造处理,将请求的域名加入到请求路径里进行标识,并转发到访问代理模块;访问代理模块识别到请求中有标识的域名后,根据配置的转发规则,将请求转发到靶场资源中心;靶场资源中心依据配置的访问策略提供资源访问。

由图1所示,域名映射和流量转发能力由靶场管理系统提供,本实施例中的靶场管理系统低层基于OpenStack平台实现,生成靶标到预订的服务地址(OpenStack平台的元数据服务地址为169.254.169.254)的域名映射,并提供靶场平台资源的代理。用户通过靶场平台(用户访问入口)登录到靶标内部,只需简单的域名访问便可以获得需要的资源。

基于本发明实施例的方法,靶场管理员或者赛事管理员可以通过管理员账号将合规的资源通过靶场平台导入,配置资源访问的域名映射关系(控制资源的可见范围)和资源的访问策略;靶场管理系统会为靶场场景里所有的靶标建立域名(例如cyberpeace.resource.com)到169.254.169.254的映射,并在请求内封装相关标识,然后配置转发规则,将请求转发给靶场平台里的资源中心;用户通过浏览器接入靶场平台,开启靶场场景接入到靶标内,在靶标内即可通过访问域名浏览和下载管理员预置的资源。管理员可以动态调整资源的访问权限,和浏览并导出资源的访问历史进行合规审查。

本发明实施例中的资源访问策略分为仅下载模式、可修改模式(用户可以上传或者修改资源);默认为仅下载模式。资源访问的域名映射关系分为全局模式、定制模式。默认为全局模式,即cyberpeace.resource.com(名字可修改)的域名对应可访问全部资源,所有靶场场景里的靶标都具有这个域名解析,可访问所有的资源。定制模式:可定制靶标所使用的网络(或者子网)、域名、资源的对应关系;例如,管理员通过定制oj_ext这个网络对应的域名为cyberpeace.tools.com以及可查看的资源范围为工具库,这样靶场场景内的靶标只要分配网络属于oj_ext范围内,就可以通过cyberpeace.tools.com的域名访问工具库里的资源了。域名映射关系的多条策略可以叠加使用。

下面结合图2对默认的全局域名解析模式以及流量转发的具体实现细节进行介绍。

1、在基于OpenStack的网络靶场中,默认通过dnsmasq实现DHCP功能,dnsmasq是一个提供DHCP和DNS服务的开源软件,通过改造其在网络靶场的能力,支持靶标在不做任何改动的前提下具体IP地址和对应主机名的映射关系。主要实现参考如下:

dnsmasq --addn-hosts =addn_hosts_file --dhcp-optsfile=opts_file

在dnsmasq 中,addn_hosts_file 文件用于指定IP地址和对应的主机名之间的映射关系。--addn-hosts参数允许指定一个额外的addn_hosts_file文件,以扩展dnsmasq的主机名解析功能。addn_hosts_file内容示例如下:

192.168.1.1 host-192-168-1-1.openstacklocal host-192-168-1-1

192.168.1.254 host-192-168-1-254.openstacklocal host-192-168-1-254

192.168.1.97 host-192-168-1-97.openstacklocal host-192-168-1-97

169.254.169.254 cyberpeace.resource.com cyberpeace.resource.com

--dhcp-optsfile 参数允许指定DHCP 选项文件opts_file的路径,opts_file文件包含了DHCP 服务器要提供的选项信息。在里面会声明到目的地为169.254.169.254/32的静态路由。opts_file内容示例如下:

tag:subnet-ddb0ea7e-3fc5-440f-9f3c-a0902f2bb59b,option:classless-static-route,169.254.169.254/32,10.10.10.1,0.0.0.0/0,10.10.10.201

tag:subnet-ddb0ea7e-3fc5-440f-9f3c-a0902f2bb59b,249,169.254.169.254/32,10.10.10.1,0.0.0.0/0,10.10.10.201

tag:subnet-ddb0ea7e-3fc5-440f-9f3c-a0902f2bb59b,option:router,10.10.10.201

由此,在靶标内部访问cyberpeace.resource.com相当于请求169.254.169.254,169.254.169.254是一个特殊的保留地址,用作靶标元数据服务的地址,它的网段是169.254.0.0/16,它和私有IP(10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)类似,不能用于互联网路由,通常只用于直连网络。可以理解的是,这里的元数据服务地址169.254.169.254也可以被替换为其他预先设定的一个服务地址。

对于全局模式的域名,会在每个网络的命名空间里都启动一个dnsmasq的进程,然后为每个dnsmasq的进程的addn_hosts_file都加上相同的域名和169.254.169.254的对应关系,这样所有网络的靶标都具有相同的域名解析。对于定制模式的域名,会为每个网络或者子网单独启动一个dnsmasq的进程,然后根据配置的规则,为每个dnsmasq的进程的addn_hosts_file加上不同的域名和169.254.169.254的对应关系,这样,不同的网络或者子网里的靶标就具有不同的域名解析。

2、haproxy会监听169.254.169.254的请求,并运行在特定的网络命名空间中(发送请求方对应的网络命名空间,命名空间通常命名方式为qdhcp+网络的uuid),具有网络隔离功能;在有请求过来时,借助Linux socket将其转发到neutron-metadata-agent(元数据服务代理)。

在neutron-metadata-agent中,根据请求头中的Host进行普通请求和资源访问的请求进行区分,改造后的请求头示例如下:

Content-Type: text/plain

Host: cyberpeace.resource.com

User-Agent: curl/7.29.0

X-Forwarded-For: 192.168.1.201

X-Neutron-Network-Id: e91f590a-9b1c-4713-ae61-0d71d6f0b921

然后针对资源访问的请求进行改造处理,将请求的域名加入到请求路径里进行标识,然后将改造的请求转发给Nginx处理。改造后Nginx收到的请求示例为:http://xxxxx:8081/cyberpeace.resource.com/;普通的请求仍为:http://xxxxx:8081。

3、根据定制的Nginx转发规则,识别到相关请求有标识的域名后,将请求转发到靶场平台的资源中心;资源中心,根据管理员在配置中心配置的访问策略进行相应的资源提供。

Nginx的转发规则示例如下:

server {

listen 8081;

server_name metadata_proxy;

location / {

proxy_pass http://127.0.0.1:8775;

}

location /cyberpeace.resource.com/ {

proxy_pass http://127.0.0.1:8088/resource;

autoindex_exact_size off;

autoindex_localtime on;

charset utf-8;

}

include /etc/nginx/conf.d/metadata/*.conf;

}

此时,普通的请求按照原有路径进行发送,访问靶场资源的请求被转发到靶场资源提供的服务上。

可以理解的是,本实施例中复用的是OpenStack的元数据服务流程的通道,将隔离环境的靶标的资源访问请求从虚拟机内部转移到宿主机外部,并通过改造请求将流量转发到资源中心。我们也可以自行开发提供一个资源服务处理模块,并约定域名解析中的资源服务地址来实现类似的功能。流量转发本实施例中采用Nginx实现,也可以采用其他的访问代理软件,或者自行开发访问代理模块,根据配置的转发规则进行流量转发即可。

此外,本发明实施例还可支持定制DNS的力度到靶标所在的网络(network)层面,例如不同的network下面配置不同的域名来隔离区分夺旗赛、攻防赛、渗透赛、理论赛的资源,将各个资源进行区分和隔离。

例如针对network1在配置中心里配置的域名为cyberpeace.tools.com,可访问的资源是工具库,network2在配置中心里配置的域名为cyberpeace.rpm.com,可访问的资源为软件包,配置中心会动态调整Nginx的转发策略,示例如下:

location /cyberpeace.tools.com/ {

proxy_pass http://127.0.0.1:8088/tools;

autoindex_exact_size off;

autoindex_localtime on;

charset utf-8;

}

location /cyberpeace.rpm.com/ {

proxy_pass http://127.0.0.1:8088/rpm;

autoindex_exact_size off;

autoindex_localtime on;

charset utf-8;

}

靶标场景启动后,如果靶标被分配在network1里,便可以通过访问域名cyberpeace.tools.com来访问工具库里的资源,被分配在network2里的靶标可以通过cyberpeace.rpm.com来访问软件包资源,如果靶标同时在两个网络内,则两个资源都能访问。

管理员可以实时动态的赋予靶标对资源的可见性,例如,不同隔离的网络下资源所对应的域名不一样,管理员通过动态的调整配置项将域名关联的资源规则进行修改,用户在靶标内可访问的资源也会对应的改变。

本发明方案中,所有的靶标仍然处于原本隔离的靶场场景内,不需要额外的网络打通,原有场景的配置和拓扑均不需改变,且用户在靶标内部只能访问提供的资源;如果资源较大,靶场场景规模较大的时候,可以通过配置负载均衡策略,来提高资源的访问速度。

基于相同的发明构思,本发明实施例公开一种网络靶场场景隔离情况下的资源访问系统,包括:域名映射模块,用于在网络靶场提供DHCP和DNS服务的软件模块,增加元数据服务地址或预先设定资源服务地址与预设主机名的映射关系;请求改造模块,用于监听元数据服务地址或预先设定资源服务地址的请求,并通过Linux socket转发到元数据服务代理或资源服务处理模块,元数据服务代理或资源服务处理模块接收到请求后,通过请求头中的信息识别出资源访问请求后,进行改造处理,将请求的域名加入到请求路径里进行标识,并转发到访问代理模块;访问代理模块,用于识别到请求中有标识的域名后,根据配置的转发规则,将请求转发到靶场资源中心;靶场资源中心,用于依据配置的访问策略提供资源访问。此外系统还可包括配置中心,用于配置资源访问的域名映射关系以及配置资源的访问策略。各模块的具体实现细节参见上述方法实施例,此处不再赘述。

相关技术
  • 一种远程隔离的秘钥访问方法、装置及系统
  • 一种网络靶场管理系统及其实现方法、装置、存储介质
  • 一种网络资源访问方法及装置
  • 一种IPv6地址访问IPv4资源的方法、设备、系统及介质
  • 一种基于动态域名的网络靶场场景隔离接入方法与系统
  • 网络靶场的访问方法及网络靶场系统、计算机存储介质
技术分类

06120116147209