失效
一种基于攻击图的云外包服务数据泄露安全测试用例自动化生成方法
樊旭东、詹静、赵勇、高雅琪、韩瑾
北京工业大学
摘要
本发明公开了一种基于攻击图的云外包服务数据泄露安全测试用例自动化生成方法,基于数据流分析的覆盖云外包数据服务生命周期的数据泄露检测指标生成方法;基于数据泄漏攻击对象攻击树模型的攻击图自动化构建;基于攻击图及XML安全测试描述语言自动化生成XML安全测试用例;基于模板的安全测试脚本自动化生成;本发明基于数据流分析覆盖云外包数据服务生命周期的数据泄露威胁,自动化构建云平台外包数据服务场景下的数据泄露安全指标体系;基于数据泄漏攻击点攻击树模型构建攻击树以及攻击图,提高攻击检测效率;提出基于XML安全测试描述语言,自动化生成可执行安全测试用例脚本。
1.一种基于攻击图的云外包服务数据泄露安全测试用例自动化生成方法,其特征在于,该方法包括以下4个步骤:步骤1基于数据流分析的覆盖云外包数据服务生命周期的数据泄露检测指标生成方法;本步骤将结合云外包数据服务场景下的DO数据生命周期,分析生命周期中存在的威胁角色及不同服务模式下威胁角色之间的关系,从攻击者视角对正常数据流进行分析,依次按照数据所处不同位置,针对不同层次的服务商以及被攻击对象自动化生成数据泄露检测指标;步骤2基于数据泄漏攻击对象攻击树模型的攻击图自动化构建;本步骤2将基于步骤1中生成的数据泄露检测指标,结合数据生命周期的不同阶段及数据具体流向,采用攻击树模型来描述数据流经关键点被攻击对象的具体攻击方式,并组合被攻击对象、攻击路径及攻击方式构建攻击图;步骤3基于攻击图及XML安全测试描述语言自动化生成XML安全测试用例;采用XML Schema语言描述的XSD文件对XML安全测试文件中包含的场景数据元素与属性字段进行定义,包括三部分数据元素:攻击策略元素AttackStrategy、测试策略元素TestStrategy以及测试报告元素TestReport;其中,攻击策略元素是由一条或者多条攻击路径attackPath元素组成的集合,定义如下:attackScenesType,attacker,attackPath=<attackScriptLocation,attackScriptLanguage,〉attackScript,attackPoint,attackDescription攻击策略元素定义了在某种攻击子场景下,攻击者使用场景攻击脚本路径下某一种编程语言实现的攻击脚本对攻击点发起攻击以及攻击过程的描述;测试策略元素是由一种或者多种测试方法testMethod元素组成的集合,定义如下:testScenesType,tester,testMethod=<testScriptLocation,testScriptLanguage,>testScript,testTime测试策略元素定义了在某种攻击后的子场景下,测试者使用该场景测试脚本路径下某一种编程语言实现的测试脚本对该场景是否存在某类攻击进行安全测试以及执行的测试次数;测试报告元素不包含其他子元素,描述测试者进行安全测试的测试日期以及测试报告的存储路径,定义如下:TestReport=<tester,dir,testDate>基于攻击图与XML安全测试描述语言,生成XML安全测试用例基本步骤如下:对步骤2中的攻击图执行深度优先遍历算法,从正常状态节点出发,得到其邻接节点后,依次对所有邻接节点元素进行遍历,得到所有从正常状态节点出发到异常状态节点的攻击路径;对每一条攻击路径,通过定义的AttackStrategy元素去描述每一条攻击路径对应的攻击策略,包括attackScriptLanguage,attackScriptLocation,attackScript内容;依据定义的TestStrategy元素描述测试策略,包括testScriptLanguage,testScriptLocation,testScript内容,同时依据定义的TestReport元素描述tester,dir,testDate内容,待攻击图遍历完毕之后,创建XML文件,最终生成XML安全测试用例;步骤4基于模板的安全测试脚本自动化生成;根据shell语言的基本语法格式,所定义的脚本生成模板内容包括该脚本使用的shell解释器以及相关注释说明;首先通过xml.etree.ElementTree模块,将XML格式的安全测试用例转化ET树;对元素树进行遍历,首先获取XML安全测试用例中AttackStrategy元素对象,依次获取attackPath子元素对象,将attackPath下的attackScript、attackScriptLanguage、attackScriptLocation元素值组合并进行语法转换;同样对TestStrategy子元素testStrategy下的testScript、testScriptLanguage、testScriptLocation元素值以及TestReport中的tester,dir,testDate值组合并进行语法转换后,写入到初始安全测试脚本生成模板中;最后输出shell支持的可执行安全测试脚本,完成安全测试脚本的自动化生成过程,用于后续的安全测试。
2.根据权利要求1所述的一种基于攻击图的云外包服务数据泄露安全测试用例自动化生成方法,其特征在于,步骤1.1云外包数据服务场景下数据生命周期、数据流及威胁角色权限分析;典型的云外包数据生命周期,即DCSP使用CSP提供的IaaS服务建立数据服务,然后为DO提供数据计算应用;对于数据执行过程来说,数据处理在数据服务平台作业执行虚拟机内存中进行,计算完成后上传数据计算结果到分布式文件系统,因此数据泄露威胁来自恶意CSP管理员以及DCSP管理员;步骤1.2基于数据流的数据泄露指标体系自动化生成由步骤1.1中的DO生命周期中的作业数据流可知,按照数据所处不同位置进行分类,分为内存、文件系统以及网络三类;根据数据流经节点类型进行分类,分为云平台宿主机、外包数据服务虚拟机两类;通过节点类型与数据所处不同位置进行组合,对攻击位置进一步划分:将内存进一步划分为云平台宿主机内存与外包数据服务虚拟机内存;文件系统进一步划分为云平台宿主机文件系统,外包数据服务平台虚拟机本地文件系统,外包数据服务平台分布式文件系统;网络进一步划分为云平台宿主机网络与外包数据服务虚拟机网络;按照云平台不同服务模式进行分类,分为IaaS、PaaS、SaaS三种;由步骤1.1可知,按照攻击者角色进行分类,分为CSP以及DCSP两类;不同服务模式下的攻击者角色管控能力不同:对于云平台宿主机内存,云平台宿主机网络、云平台宿主机文件系统,无论是IaaS、PaaS还是SaaS服务模式,均由CSP控制;对于外包数据服务虚拟机内存,外包数据服务虚拟机网络、外包数据服务虚拟机文件系统、外包数据服务分布式文件系统,在IaaS或PaaS服务模式下由CSP和DCSP控制,而在SaaS服务模式下则由CSP控制;其次,根据不同攻击位置的被攻击对象进行分类,将其分为静态策略与配置文件和动态可执行程序文件;依据数据泄露方式进行分类,分为直接泄露与间接泄露两种,其中,直接泄露方式是由于内存中运行的可执行程序本身存在恶意行为,在运行时直接读写DO数据;而间接泄露方式则是由于位于文件系统的静态策略与配置文件以及可执行文件被攻击后所导致的组合上层细化的被攻击对象与检测指标类型,生成云外包数据服务场景下的数据泄露检测指标;依据不同服务模式,遍历不同攻击位置被攻击对象,与检测指标组合得到数据泄露指标体系。
3.根据权利要求2所述的一种基于攻击图的云外包服务数据泄露安全测试用例自动化生成方法,其特征在于,云计算能够提供IaaS、PaaS或SaaS三种不同的服务模式:1)在典型云外包数据服务中,CSP仅提供IaaS服务,由DCSP租用IaaS虚拟机部署分布式数据计算服务集群平台,此时CSP负责提供云平台虚拟机,而DCSP负责管理虚拟机,运行在虚拟机上的数据服务平台及数据计算程序;2)CSP提供包括数据服务的PaaS服务,由DCSP租用PaaS服务部署数据计算程序,此时CSP负责提供云平台虚拟机,以及运行在虚拟机上的数据服务计算平台,DCSP提供相应的数据计算程序;3)CSP提供包括数据服务和数据计算应用的SaaS服务,此时CSP与DCSP相当于一个角色,由CSP负责提供云虚拟机,运行在虚拟机上的数据服务计算平台,以及相应的数据计算程序。
4.根据权利要求2所述的一种基于攻击图的云外包服务数据泄露安全测试用例自动化生成方法,其特征在于,DO作业数据流包括如下7个流程:1)DO通过云平台虚拟网络设备将数据文件上传至外包数据服务平台虚拟机分布式文件系统;2)DCSP将数据计算程序上传至外包数据服务平台虚拟机本地文件系统;对于上传数据过程,数据经过云平台宿主机文件系统,云平台虚拟网络设备、数据服务平台管理虚拟机文件系统与分布式文件系统;对于云平台宿主机文件系统以及虚拟网络设备来说,数据泄露威胁来自恶意CSP管理员,对于数据服务平台管理虚拟机文件系统以及分布式文件系统来说,攻击者来自恶意CSP管理员以及DCSP管理员;3)使用DCSP提供的数据计算程序运行作业,此时生成数据计算程序jar包,作业配置文件,分片元数据文件并上传到分布式文件系统中;4)执行作业时通知作业执行虚拟机从外包数据服务平台分布式文件系统中下载作业所需数据文件到作业执行虚拟机本地文件系统;对于提交作业过程来说,数据经过数据服务平台分布式文件系统以及作业执行虚拟机本地文件系统,因此,数据泄露威胁来自恶意CSP管理员以及DCSP管理员;5)数据计算程序在作业执行虚拟机内存中运行作业任务,分析DO数据;6)分析完成后上传数据分析结果到分布式文件系统指定输出目录中;7)DO从分布式文件系统中下载获取数据分析结果使用。
5.根据权利要求2所述的一种基于攻击图的云外包服务数据泄露安全测试用例自动化生成方法,其特征在于,步骤2.1攻击树构建依据步骤1.2中确定的数据泄漏检测指标体系,结合不同阶段的作业数据流向及数据流经关键点,分析不同阶段被攻击对象的具体攻击子目标或攻击方式,从攻击者的角度出发构建攻击树;基本步骤为:对步骤1.2生成的所有被攻击对象检测指标,分别以被攻击对象检测指标为根节点,创建只包含根节点的攻击树;依次获取每一个根节点包含的攻击子目标或攻击方式,根据攻击子目标或攻击方式的逻辑关系,将其作为叶子节点插入到对应根节点攻击树中,作为根节点的孩子节点;从而,构建包含不同逻辑结构的攻击树;所构建的攻击树由根节点,非叶子节点以及叶子节点构成;其中,根节点表示步骤1中的被攻击对象,叶子节点为具体攻击方式,非叶子节点为实现根节点被攻击对象的攻击子目标;节点包括两种类型,一种为“与”节点,一种为“或”节点;“与”节点表示所有子节点之间是逻辑“与”关系,即当且仅当实现所有子节点所表示的攻击方式或攻击子目标时,才可以实现父节点;而“或”节点表示所有子节点之间是逻辑“或”关系,当且仅当实现任一子节点表示的攻击方式或攻击目标时,就可以实现父节点;步骤2.2分阶段攻击图构建;通过抽象攻击图与攻击树组合构建算法实现攻击图构建过程,包括两个步骤:步骤2.2.1,生成抽象攻击图;结合确定的云外包数据生命周期不同阶段以及被攻击对象,由DO生命周期中的正常数据流分析可知,数据流经路径上的关键点依次为:云平台宿主机文件系统,云平台虚拟网络设备,外包数据服务平台管理虚拟机本地文件系统,外包数据服务平台分布式文件系统,外包数据服务平台任务调度节点虚拟机本地文件系统,外包数据服务平台任务调度节点虚拟机内存;基于生命周期每一阶段,创建正常状态节点,并通过遍历不同阶段数据流经关键点获取被攻击对象,创建被攻击对象中间节点,将其设置为正常状态节点的邻接节点;创建异常状态节点,作为被攻击对象中间节点的邻接节点,这样就建立了不同阶段下由正常状态节点出发,依次经过被攻击对象中间节点,最后到异常状态节点的抽象攻击图;步骤2.2.2,构建实际攻击图;首先,对每一阶段的抽象攻击图进行深度优先遍历,得到所有被攻击对象中间节点,然后遍历以此被攻击对象中间节点为根节点的攻击树,根据攻击树根节点的孩子节点“与”、“或”关系类型,生成所有被攻击对象的组合攻击方式;之后使用被攻击对象的组合攻击方式依次替换抽象攻击图中相应被攻击对象中间节点,从而构建包含被攻击对象具体攻击细节的实际攻击图。



