本发明涉及一种镜像工具的自动化命令编排方法与系统,属于信息处理、网络安全。
背景技术:
1、在安全研究领域,针对镜像进行深入分析研究是至关重要的一环。不同类型的镜像文件,包括内存镜像、硬盘镜像和网络流量镜像等,能为研究人员提供丰富的信息和证据。在进行分析时,研究人员通常会使用多种专用工具,以确保分析的全面性和精确性。
2、工具以命令的形式对外提供能力,每个命令完成对镜像某个特定指标的分析。一个工具提供若干个相互独立的命令,研究人员根据自己的需求手动组合不同的命令进行使用。
3、以内存镜像分析为例,volatility是一种非常流行的工具,广泛应用于内存取证分析中。通过运行“volatility -f memory.img imageinfo”命令,可以确定内存镜像的操作系统版本和服务包信息;通过运行“volatility -f memory.img pslist”命令,可以列出内存中所有运行的进程。
4、现有镜像分析存在如下不足:1、工具提供命令单个指标分析能力,不提供多个命令自动化编排能力,多个分析命令的执行需要靠人工编排,效率低下;2、部分命令的执行存在依赖关系,人工操作的命令执行容易引入人为误差,导致执行结果错误;3、人工模式的命令执行依赖专家经验决定服务器同时并行的最大命令任务数,不利于硬件系统效率最大化。
技术实现思路
1、发明目的:针对上述现有技术存在的问题,本发明目的在于提供一种镜像工具的自动化命令编排方法与系统,提高命令编排和执行效率,以及硬件系统效率。
2、技术方案:为实现上述发明目的,本发明提供的一种镜像工具的自动化命令编排方法,包括如下步骤:
3、加载待执行分析任务的命令模型,所述命令模型中编排了多个命令,每个命令配置有命令名称、执行指令模板、执行顺序、执行结果描述文件以及命令间的依赖关系;所述执行指令模板中设置有框架参数和/或动态参数占位符;所述执行结果描述文件定义了如何解析命令的输出,包括提取命令输出内容的字段;
4、对命令模型中的命令进行排序,确定命令执行优先级,并根据依赖关系对执行顺序进行检验;
5、生成任务的命令运行参数填充表,包括框架参数和动态参数;
6、根据历史统计的命令负载消耗平均值和服务器理论最大负载,确定执行命令的最大并发数;
7、按照优先级从高到低的顺序并发执行命令,每次启动执行命令的实际并发数为最大并发数除去正在运行中的命令数,以及因存在依赖关系无法启动的命令数;每个命令的执行步骤包括:从命令运行参数填充表中获取框架参数和/或动态参数,填充执行指令模板生成实际执行的指令;触发命令执行并阻塞等待返回;对于执行失败的命令,将依赖此命令的待执行命令全部标记为执行失败;对于执行成功的命令,根据执行结果描述文件解析命令的输出,如果命令运行参数填充表中涉及到命令的输出则填充命令运行参数填充表。
8、作为优选,所述框架参数在命令执行初始阶段自动填充,包括命令执行结果的输出地址和镜像文件的存储地址;所述动态参数依赖其他命令执行结果,在命令执行过程中填充;所述框架参数和动态参数在执行指令模板中通过不同形式的占位符区分。
9、作为优选,所述框架参数根据任务编号和命令名称生成;所述动态参数以key-value生成,key值根据任务编号、命令名称和参数名称生成,value值在动态获取到执行结果后填充。
10、作为优选,所述历史统计的命令负载消耗平均值为统计的最近预设次数的执行成功的命令中每个命令的负载消耗并求平均得到;每个命令执行成功后动态更新命令负载消耗平均值。
11、作为优选,对命令模型中的命令进行校验,包括:逐个解析定义依赖字段的命令,如果被依赖的命令执行优先级低于当前命令,提示命令优先级定义错误,停止任务执行;逐个解析执行指令模板中包含动态参数的命令,如果该命令未定义依赖项,提示命令依赖定义错误,停止任务执行。
12、作为优选,所述执行命令的最大并发数为服务器理论最大负载/命令负载消耗平均值。
13、作为优选,根据如下步骤确定命令的实际并发数:
14、设最大并发数为x,正在运行中的命令数为m,则可并行启动的最大命令数为x-m;
15、在待执行的x-m个命令中移除有依赖关系的命令,确保被依赖的命令先执行,设移除了p个命令;
16、在待执行的x-m-p个命令中,校验是否有命令依赖正在执行中的m个命令,如果有依赖,则移除依赖的命令,设移除了q个命令;
17、实际并发执行的最大命令数为r=x-m-p-q。
18、作为优选,命令模型中每个命令还配置有最大执行时间,若等待命令执行结果返回的时间超过最大执行时间,则关闭命令的执行进程,标记此命令执行失败。
19、基于相同的发明构思,本发明提供的一种镜像工具的自动化命令编排系统,包括:
20、加载与分析模块,用于加载待执行分析任务的命令模型,所述命令模型中编排了多个命令,每个命令配置有命令名称、执行指令模板、执行顺序、执行结果描述文件以及命令间的依赖关系;所述执行指令模板中设置有框架参数和/或动态参数占位符;所述执行结果描述文件定义了如何解析命令的输出,包括提取命令输出内容的字段;以及对命令模型中的命令进行排序,确定命令执行优先级,并根据依赖关系对执行顺序进行检验;
21、参数填充模块,用于生成任务的命令运行参数填充表,包括框架参数和动态参数;
22、并发数确定模块,用于根据历史统计的命令负载消耗平均值和服务器理论最大负载,确定执行命令的最大并发数;
23、以及并发执行模块,用于按照优先级从高到低的顺序并发执行命令,每次启动执行命令的实际并发数为最大并发数除去正在运行中的命令数,以及因存在依赖关系无法启动的命令数;每个命令的执行步骤包括:从命令运行参数填充表中获取框架参数和/或动态参数,填充执行指令模板生成实际执行的指令;触发命令执行并阻塞等待返回;对于执行失败的命令,将依赖此命令的待执行命令全部标记为执行失败;对于执行成功的命令,根据执行结果描述文件解析命令的输出,如果命令运行参数填充表中涉及到命令的输出则填充命令运行参数填充表。
24、基于相同的发明构思,本发明提供的一种计算机程序产品,包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现所述的镜像工具的自动化命令编排方法的步骤。
25、有益效果:与现有技术相比,本发明具有如下优点:
26、1、本发明通过抽象工具的命令模型,使得使用者可以基于该模型自由编排指令,编排后的指令能够按照既定的顺序自动执行,实现参数的动态获取,提升了命令执行的效率。
27、2、本发明定义了命令的依赖关系,基于依赖关系可以对参数合理性进行必要的检测,减少了因为人为疏忽而造成的错误,降低了命令执行的错误发生率。
28、3、本发明在执行命令时,能够自动统计命令运行过程中的负载消耗,根据硬件水平能承受的最大负载,自动化决定并行的命令数,提高了硬件的利用率。
1.一种镜像工具的自动化命令编排方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的镜像工具的自动化命令编排方法,其特征在于,所述框架参数在命令执行初始阶段自动填充,包括命令执行结果的输出地址和镜像文件的存储地址;所述动态参数依赖其他命令执行结果,在命令执行过程中填充;所述框架参数和动态参数在执行指令模板中通过不同形式的占位符区分。
3.根据权利要求1所述的镜像工具的自动化命令编排方法,其特征在于,所述框架参数根据任务编号和命令名称生成;所述动态参数以key-value生成,key值根据任务编号、命令名称和参数名称生成,value值在动态获取到执行结果后填充。
4.根据权利要求1所述的镜像工具的自动化命令编排方法,其特征在于,所述历史统计的命令负载消耗平均值为统计的最近预设次数的执行成功的命令中每个命令的负载消耗并求平均得到;每个命令执行成功后动态更新命令负载消耗平均值。
5.根据权利要求1所述的镜像工具的自动化命令编排方法,其特征在于,对命令模型中的命令进行校验,包括:逐个解析定义依赖字段的命令,如果被依赖的命令执行优先级低于当前命令,提示命令优先级定义错误,停止任务执行;逐个解析执行指令模板中包含动态参数的命令,如果该命令未定义依赖项,提示命令依赖定义错误,停止任务执行。
6.根据权利要求1所述的镜像工具的自动化命令编排方法,其特征在于,所述执行命令的最大并发数为服务器理论最大负载/命令负载消耗平均值。
7.根据权利要求1所述的镜像工具的自动化命令编排方法,其特征在于,根据如下步骤确定命令的实际并发数:
8.根据权利要求1所述的镜像工具的自动化命令编排方法,其特征在于,命令模型中每个命令还配置有最大执行时间,若等待命令执行结果返回的时间超过最大执行时间,则关闭命令的执行进程,标记此命令执行失败。
9.一种镜像工具的自动化命令编排系统,其特征在于,包括:
10.一种计算机程序产品,包括计算机程序/指令,其特征在于,所述计算机程序/指令被处理器执行时实现根据权利要求1-8任一项所述的镜像工具的自动化命令编排方法的步骤。