温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
2023
网络
靶场
攻防
场景
设计
框架
网络靶场攻防场景设计框架
摘 要:随着网络威胁的暴露范围越来越广,开发新的工具来改进网络防御是一个重大挑战。网络防御中最重要的问题是人员技能培训,网络靶场就是用于此目的。它提供用于训练和对抗比赛的虚拟环境。本文用VDSL语言定义了一个定制的网络环境,并实现了一个框架,允许将网络靶场场景转换为Prism模型。这样就可以进行训练和赛事结果的定量分析并可以对这个框架进行持续优化。
关键词:网络靶场;VDSL;攻防场景;框架
中图分类号:TP311.1 文献标识码:A
Abstract:
As exposure to cyber threats is getting wider and more prevalent, it becomes a major challenge to develop new tools to improve cyber defense. The most important issue in cyber defense is staff training, and cyber ranges are used for this purpose. A cyber range is a virtual environment used for training and competition. This paper defines a customized network environment with VDSL (Virtual Scenarios Descriptive Language) language and implements a framework allowing to convert the cyber range scenarios into Prism models. In this way, the quantitative analysis of training and competition results can be carried out and the framework can be continuously optimized.
Keywords:
cyber range; VDSL; attack and defense scenarios; framework
1 引言(Introduction)
当前,IT平安在我们的生活中变得越来越重要,网络威胁的程度越来越广泛,给个人生活、企业生产乃至国家重点根底设施等带来的风险都是严重的。开发新的技术和新的工具来提高网络防御能力是一个重大挑战。北约合作网络防御中心将网络防御定义为:探测或获取有关网络入侵、网络攻击或即将进行的网络行动的主动措施活动。很明显,这些活动在很大程度上取决于平安专家的技能。因此,防御的根底是对人员进行技能培训,技能可通过实践和演习活动进行强化[1]。受训人员必须在模拟真实应用,并且平安可控的场景中训练和操作,网络靶场用于提供这样的仿真受训环境。
2 需求分析(Demand analysis)
(1)网络靶场可支撑的用户分析[2]。
①学生:在模拟的应用环境中运用理论知识,提高操作技能,也可作为团队一员共同参与比赛,合力解决平安问题。
②教师:可以把网络靶场作为评价学生的实践课堂。
③组织:可以使用网络靶场来评估组织的平安能力、培训团队和测试新技术。
(2)在网络靶场内的演习涉及几个不同角色的团队,角色功能如图1所示。
①红色团队扮演攻击者的角色,試图通过到达访问特定数据或破坏特定资源实现攻击。可以使用的攻击工具有:用于攻击的脚本、用于注入目标的恶意软件或后门、用于拦截数据流的工具或异常流量生成器等。
②蓝色团队的任务是防御,其目的是在有限的时间内验证和改进根底设施的平安性,可以使用用于执行平安分析和故障管理的工具及数字取证工具等。
③绿色团队负责维护物理和在线根底设施,相当于运维团队,可以使用用于根底设施监控的工具,如监控和网络管理软件等。
①训练框架是各类用户的接入点,支持个人训练和团队培训相关的事务管理与组织。
②仪表板是一个交互式工具,由管理员使用,用于管理和监控网络靶场。
③工具集为网络靶场用户提供一套攻击和防御工具,用于设备和系统的训练和测试。
④事件和流量生成器模块可以在自动模式下模拟根底设施内的正常流量。
⑤连接器允许网络靶场的传统架构扩展到不同的架构,称为混合网络靶场架构,以便将硬件或物理设备插入到模拟场景中。
(4)场景
场景[3]是包括网络、硬件、软件,以及在实践过程中的操作环境。网络靶场的主要目的是准备满足训练要求的场景。在如图3所示的场景中,整个网络由效劳器机房、实验室、会议室和控制室四个子网组成。在效劳器机房网络中,有三个节点,一个具有特定的操作系统漏洞,其他的都包含易受攻击的效劳和恶意软件。在实验室网络中,连接了两台笔记本,其中一台可以通过远程访问,另一台移动终端可以进入会议室网络。会议室网络包含具有文件效劳器功能(即SAMBA效劳)的主机。控制室网络包含一台运行了防病毒软件的个人计算机和一台包含有要保护数据(也就是FLAG值)的个人计算机。
蓝队在靶场内先执行一定时间的防御任务,然后停止并切换到脱机状态。然后红对开始进入攻击状态,红队访问功能受限,仅能访问公共子网。红队的目标是通过实施多种技术最终到达目标节点并窃取目标FLAG数据。
3 相关技术(Relevant technologies)
涉及相关技术包括:领域特定语言(Domain-Specific Language,DSL)、虚拟场景描述语言(Video Scene Description Language,VSDL)、Prism模型(Prism Model)检查器和离散时间马尔可夫链(Discrete Time Markov Chain,DTMC)。
(1)领域特定语言DSL是解决特定问题的领域标准语言
①Xtext,它是一个基于Eclipse的框架,用于实现DSL。它使用户能够快速实现语言,并负责实现开发集成环境的所有方面,例如,链接器、编译器、类型检查器和解析器。
②Xtend,它是一种通用编程语言,与完全用Xtext开发的代码具有互操作性。Xtend源于Java编程语言,但它有比Java更简洁的语法和一些额外的功能。
(2)虚拟场景描述语言VSDL
虚拟场景描述语言VSDL是一种用于为网络靶场建模虚拟场景领域特定语言。
使用虚拟场景描述语言实现的场景。场景由名字和一系列场景元素标识,场景元素包括节点或网络。节点和网络都由唯一的标识符标识。对于节点,可以表示为:类型(如效劳器、客户端、移动设备等),硬件配置文件(CPU数量、RAM和磁盘大小等),软件功能(特定操作系统或操作系统系列等)。对于网络,可以表示为接入公共网络、寻址方法和所连接的节点。
以如图3所示的场景为例,用VSDL语言描述后的例如如图4所示,可以看到其中对于实验室和会议室网络,规定了以下特别功能:当漫游节点从会议室移动到实验室时,要求最多t=15秒后节点必须连接于网络,并且在0和t时间值内,漫游节点应处于未连接状态。
(3)Prism模型检查器
Prism模型检查器是一个建模和分析概率行为的系统工具。这些系统包括平安协议、随机算法等。模型是用Prism语言定义的,而属性可以通过各种时态逻辑来指定。Prism模型检查器的输入形式是马尔可夫链。如图5所示为概率模型检查器实现的功能例如。概率模型检验允许对系统进行定量分析,用以确定在网络靶场范围内攻击发生的概率是多少?攻击成功的概率有多大?
(4)马尔可夫链
马尔可夫链是一种马尔可夫过程。一个过程满足马尔可夫性质,就如同一个人能够仅仅基于当前状态就可以对未来进行预测,也就是说以系统的当前状态为条件判断和预测未来,未来和过去的状态是完全独立的。当马尔可夫过程的状态空间是离散值时,它被称为马尔可夫链。马尔可夫链可以被看作是一系列随机事件,其中系统的当前状态与所有过去状态无关。
离散时间马尔可夫链(DTMC)[4]指具有离散状态空间和离散时间{Xt,t>0}的随机过程。
(5)Prism建模语言
先解释Prism语言的根本概念:模块的并行组合和同步,之后可以了解Prism模型检查器中的模型是如何定义的。
并行组合:在Prism模型的每个状态中,都有一些可用的命令,在这些命令之间选择哪个命令?选择取决于模型的类型。对于DTMC,选择是有概率,可以以相同的概率选择每个启用的命令。
同步:在Prism模型中,命令可以标记为动作。这些操作将用于使两个(或更多)模块同时执行转换。
用Prism语言编写的概率模型可以用rewards值或者与模型的状态或状态转换相关的值来量化[5]。rewards结构可用于计算预期得分等属性,也可以分配给模型状态和状态转换。
状态rewards:rewards结构为模型的每个状态分配20个reward。左边为布尔值,记为受保护状态,右边的值(20)記为rewards。简单地理解为,满足保护的状态被记作布尔值true,并分配相应的rewards。如图6所示。
如图7所示的例如可以解释为:在没有动作标签的情况下,模型中的所有转换分配200的rewards;标有“与网络连接的行动〞的转换分配值为500;对所有标有SQL注入动作的转换给予分配10000。
可以通过两种方式指定基于rewards的财富值:
R bound [rewardprop](在这个条件表达式中,其中bound为比较运算符,可以是小于、小于等于、大于或大于等于)。
R query [rewardprop](在这个赋值表达式中,query为赋值运算符,可以是等于多少、最小是多少、最大是多少)。
如果从模型状态开始时与模型的rewardprop相关联的预期报酬满足bound这个条件表达式,那么,R bound [rewardprop]条件运算的结果为真,那么R query [rewardprop]将返回实际预期rewards值。总财产R将返回在rewards结构中指定的预期总数。
4 设计(Design)
首先利用扩展VSDL语法定义场景,其中包含对存有漏洞节点的记录,实现了一个结合VSDL标准和漏洞描述符的Prism模型生成器,其结果是一个需要用Prism验证的模型。网络靶场攻击策略架构[6]的目标是实现如图8所示的逻辑流程。首先在VSDL中编写场景,然后根据场景生成Prism模型,用于验证漏洞利用情况,此时可以接受场景或对场景进一步优化。
(1)VSDL中的漏洞标准
VSDL标准根据其核心元素(即节点和网络)及其特性描述场景。在这种情况下,可将漏洞视为额外的节点特性。因此,使用新的节点属性扩展了VSDL的语法。格式为:Vulnerability:。为了研究漏洞,必须对场景中的漏洞特性进行研究。例如在图9中,标明了Pc_1这台机器遭受SQL注入攻击。
(2)代码生成
代码生成过程是这样的:框架获取从JSON文件生成Prism代码所需的信息。这意味着对于每种类型的漏洞,都需要一个适当的JSON文件。整个过程可以描述如下:靶场攻击策略框架从场景中读取所需漏洞的类型,然后从相应的JSON文件中获取必要的信息来创立Prism代码。
如果选择跨站点脚本(XSS)漏洞,需要一个名为XSS.json的文件,其中包含创立Prism模型所需要的有用信息。该模型显然将使用Prism语言编写,那么如何创立此JSON文件?
(3)漏洞标准脚本语言
创立了一个标准脚本,用于为任何类型的漏洞创立适当的JSON文件。每个场景都可以用Prism模型来表示,Prism模型可以包含全局变量、常量、模块,还有rewards结构。考虑到每个模型的组件和VSDL场景的特性,为JSON文件创立了一个标准结构,如图10所示。JSON对象分为三个局部:头部、主体和rewards。
①头部