一种基于cpu时空隔离机制实现应用软件行为监控系统的方法
【技术领域】
[0001]本发明涉及一种软件监控方法,具体地说是一种基于(PU时空隔离机制实现应用软件行为监控系统的方法,属于软件监控领域。
【背景技术】
[0002]随着信息技术的不断发展,国民经济及国防军工信息化技术运用的普及,计算机应用系统处于经济、国防的基础支撑地位,而其安全性问题已经成为决定经济、国防安全的关键,一旦计算机应用系统遭到破坏,将会导致灾难性后果。作为计算机应用系统安全防护的重要一环,当前基于恶意代码行为特征匹配的传统计算机防护软件,无法及时检测经过多态、加壳、变形、反跟踪等隐藏技术的恶意代码。从应用软件运行操作的角度出发,任何应用软件对系统资源的操作都是通过进程进行系统调用,而可以表征应用软件行为特征的系统调用序列和系统调用参数信息(参数字符类型、参数长度、返回值类型)在局部范围内是一个规则集合,因此,为了解决传统防护软件在时效性与可靠性方面的不足,通过提取应用软件正常行为特征建立规则样本库的应用软件行为监控系统被提出来,并且受到国内外信息安全研究领域的广泛关注。
[0003]当前应用软件行为监控系统所采用的技术方案主要有:1、操作系统用户层监控技术,通过系统调用接口函数获取所要分析的数据信息,然而应用软件行为监控系统自身安全无法保障,且必须依赖系统管理员经验判断是否发生入侵,不能满足系统安全的时效性和可靠性要求。2、操作系统内核层监控技术,通过内核安全钩子函数截获进程对某个特定API的函数调用,使得API的执行流程转向指定的检测、分析、监控代码。如果恶意代码一旦获得系统内核访问权限,那么内核层监控技术的有效性明显受到挑战,应用软件行为监控系统存在被绕过的风险。3、基于硬件虚拟化的监控技术,通过运行于计算机硬件平台与操作系统内核之间的虚拟机管理软件,监管系统内存空间使用、应用软件行为特征及动态内核对象访问权限等信息,其更高特权级的CPU运行态可以保障应用行为监管系统的高可靠性,然而虚拟机管理软件只能获取系统硬件级别的信息,比如CPU中寄存器的参数信息,内存地址等,因此从硬件平台上直接获取到的系统信息与操作系统之间存在语义差别,可读性较差,额外的系统语义转换严重影响系统性能。
【发明内容】
[0004]为了解决上述问题,本发明设计了一种基于CPU时空隔离机制实现应用软件行为监控系统的方法,提高了应用软件行为监控系统的时效性和可靠性,增强了计算机应用系统的安全性。
[0005]本发明的技术方案为:
[0006]—种基于CPU时空隔离机制实现应用软件行为监控系统的方法,所述监控系统的方法,包括以下步骤:
[0007]1、在通用操作系统运行环境下,利用系统调用拦截技术提取应用软件进程系统调用序列、系统调用参数信息及返回值,通过数据分析技术建立进程正常行为样本库;
[0008]2、在通用操作系统运行环境下,拦截应用软件行为信息,并保存于通用操作系统共享内存空间;通过预设的安全时钟中断处理将系统运行状态切换至安全内核;
[0009]3、安全内核中的应用软件行为监控系统基于安全时钟的中断处理以读取拦截的应用软件进程行为信息,并通过应用正常行为样本库进行异常检测;如果异常度值大于预设安全阀值,则发生异常,系统根据安全策略进行安全处理,反之;
[0010]4、检测处理完毕,系统状态返回。
[0011]所述监控系统包括以下组成部分:
[0012]1、异常检测模块
[0013]异常检测模块读取已拦截的应用软件系统调用序列、系统调用参数信息及返回值,利用数据分析技术建立应用软件正常行为模型,通过比较异常度值和预设安全阀值的大小来确定是否发出异常;两种工作模式:
[0014]I)训练模式
[0015]在通用操作系统运行环境下,通过操作系统内核的异常处理模块来拦截安全应用软件系统调用序列、参数信息及返回值,经过一段时间的拦截试验,形成应用软件正常行为样本库;
[0016]2)检测模式
[0017]在通用操作系统运行环境下,保存已拦截的应用软件系统调用信息;基于安全时钟的中断处理,通过系统状态切换指令使得系统运行状态切换至安全内核;此时,在安全内核运行环境下的应用软件行为监控系统读取已拦截的系统调用信息,并与应用软件正常行为样本库进行模式匹配,比较异常度值与安全阀值来判断软件行为是否异常;
[0018]2、样本库管理
[0019]I)初始化模式
[0020]存储应用软件正常行为模型的初始样本库;
[0021]2)动态加载行为样本
[0022]对于应用软件更新、升级过程中所出现的新的行为信息通过询问用户的方式,动态选择加载到应用软件的正常行为样本库;
[0023]3、异常处理模块
[0024]在安全内核环境下,对经过匹配分析的应用软件根据安全策略进行放行、中止、询问等操作,并对系统状态进行异常返回。
[0025]CPU时空隔离机制是指利用CPU虚拟化技术以时间片的方式运行两个不同状态的CPU虚拟核,通常划分为安全核和普通核;通过内存管理单元MMU对系统内存域进行空间划分,配置内存控制相关的寄存器以确保不同内存区域的访问权限,达到访问控制内存隔离的效果。
[0026]本发明以CPU、操作系统、应用软件行为监控系统的紧耦合为基本思想,突出系统实现整体性和软硬件协同性,力图基于CPU时空隔离机制来确保应用软件行为监控系统的高时效和高安全。为了实现目标,首先,需要构建一个应用软件行为监控系统的基本运行环境,即安全内核。安全内核提供基本的内存管理、进程调度、异常处理、系统调用功能,通过CPU虚拟化技术,运行于CPU安全核。其次,构建一个普通应用软件的基本运行环境,即通用操作系统,运行于CPU普通核。最后,需要构建一个安全监控器,负责在两个操作系统之间进行上下文切换,运行于CPU安全核。
[0027]本发明的优点在于:
[0028]1、在获取系统底层调用信息的同时,不存在与操作系统之间的语义差别,对系统性能损伤小;
[0029]2、运行于安全内核的应用行为监控系统具有更高的隔离性,可以确保对应用软件行为监控的有效性及系统自身的安全性;
[0030]3、在专用计算机应用领域,该应用软件行为监控系统完全可以使得因为软件漏洞而引起的系统安全风险降到最低。
[0031]下面结合附图和实施例对本发明作进一步说明。
【附图说明】
[0032]图1为本发明实施例监控系统的方法示意图;
[0033]图2为本发明实施例监控系统的结构组成图,图中,ELn代表CPU运行状态特权级,η= 0,1,,3。
【具体实施方式】
[0034]以下对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
[0035]实施例1
[0036]—种基于CPU时空隔离机制实现应用软件行为监控系统的方法,如图1所示,所述监控系统的方法,包括以下步骤:
[0037]1、在通用操作系统运行环境下,利用系统调用拦截技术提取应用软件进程系统调用序列、系统调用参数信息及返回值,通过数据分析技术建立进程正常行为样本库;
[0038]2、在通用操作系统运行环境下,拦截应用软件行为信息,并保存于通用操作系统共享内存空间;通过预设的安全时钟中断处理将系统运行状态切换至安全内核;
[0039]3、安全内核中的应用软件行为监控系统基于安全时钟的中断处理以读取拦截的应用软件进程行为信息,并通过应用正常行为样本库进行异常检测;如果异常度值大于预设安全阀值,则发生异常,系统根据安全策略进行安全处理,反之;
[0040]4、检测处理完毕,系统状态返回。
[0041]如图2所示,所述监控系统包括以下组成部分:
[0042]1、异常检测模块
[0043]异常检测模块读取已拦截的应用软件系统调用序列、系统调用参数信息及返回值,利用数据分析技术建立应用软件正常行为模型,通过比较异常度值和预设安全阀值的大小来确定是否发出异常;两种工作模式:
[0044]I)训练模式
[0045]在通用操作系统运行环境下,通过操作系统内核的异常处理模块来拦截安全应用软件系统调用序列、参数信息及返回值,经过一段时间的拦截试验,形成应用软件正常行为样本库;
[0046]2)检测模式
[0047]在通用操作系统运行环境下,保存已拦截的应用软件系统调用信息;基于安全时钟的中断处理,通过系统状态切换指令使得系统运行状态切换至安全内核;此时,在安全内核运行环境下的应用软件行为监控系统读取已拦截的系统调用信息,并与应用软件正常行为样本库进行模式匹配,比较异常度值与安全阀值来判断软件行为是否异常;
[0048]2、样本库管理
[0049]I)初始化模式
[0050]存储应用软件正常行为模型的初始样本库;
[0051]2)动态加载行为样本
[0052]对于应用软件更新、升级过程中所出现的新的行为信息通过询问用户的方式,动态选择加载到应用软件的正常行为样本库;
[0053]3、异常处理模块
[0054]在安全内核环境下,对经过匹配分析的应用软件根据安全策略进行放行、中止、询问等操作,并对系统状态进行异常返回。
[0055]例如,基于国产FT1500A CHJ硬件平台,以Linux修改版内核、tee_os安全内核、AArch64-Moni tor作为基础软件平台,使用本应用软件行为监控系统的实现方法,对Iinux操作系统中的最复杂的sendmail进程系统调用信息进行拦截,并通过数据挖掘建立了正常行为样本库,可以检测出由MIT林肯实验室DARPA入侵检测评估数据集所提供的syslog、sscp、deocde等脚本攻击。
[0056]在实现中使用的系统函数接口设计如下所示:
[0057]—Intercept;//系统调用拦截函数接口
[0058]typedef struct_syseall_informat1n{
[0059]unsigned int params_length[];
[0060]unsigned int param_type[];
[0061]unsigned int syscallno[5];
[0062]Curent_Thread_info thread_ID;
[0063]}_syscall_informat1n;//应用软件系统调用信息
[0064]typedef struct_SharedMemory {
[0065]void*buffer;
[0066]size_t size;
[0067]unit32_t flags;
[0068]}_SharedMemory;//共享内存区
[0069 ] Ve c tor_EL012_64_sync: //安全监控器系统切换的异常向量入口
[0070] SMC_64:://安全监控器状态切换指令异常处理接口
[0071 ] Read_syscall_informat1n://读取系统调用参数信息接口
[0072]Patern_Matching://样本匹配接口
[0073]Except1n_Handler: / / 异常处理接口
[0074]通过以上关键的函数接口及处理函数,完成了对sendmail进程异常行为的检测,保证了应用软件行为监控系统实现的时效性;其利用CPU的时空隔离机制,实现了系统自身的高可靠性。
【主权项】
1.一种基于CPU时空隔离机制实现应用软件行为监控系统的方法,其特征在于:所述监控系统的方法,包括以下步骤: (1)、在通用操作系统运行环境下,利用系统调用拦截技术提取应用软件进程系统调用序列、系统调用参数信息及返回值,通过数据分析技术建立进程正常行为样本库; (2)、在通用操作系统运行环境下,拦截应用软件行为信息,并保存于通用操作系统共享内存空间;通过预设的安全时钟中断处理将系统运行状态切换至安全内核; (3)、安全内核中的应用软件行为监控系统基于安全时钟的中断处理以读取拦截的应用软件进程行为信息,并通过应用正常行为样本库进行异常检测;如果异常度值大于预设安全阀值,则发生异常,系统根据安全策略进行安全处理,反之; (4)、检测处理完毕,系统状态返回。2.根据权利要求1所述的一种基于CPU时空隔离机制实现应用软件行为监控系统的方法,其特征在于:所述监控系统包括以下组成部分: (1)、异常检测模块 异常检测模块读取已拦截的应用软件系统调用序列、系统调用参数信息及返回值,利用数据分析技术建立应用软件正常行为模型,通过比较异常度值和预设安全阀值的大小来确定是否发出异常;两种工作模式: 1)训练模式 在通用操作系统运行环境下,通过操作系统内核的异常处理模块来拦截安全应用软件系统调用序列、参数信息及返回值,经过一段时间的拦截试验,形成应用软件正常行为样本库; 2)检测模式 在通用操作系统运行环境下,保存已拦截的应用软件系统调用信息;基于安全时钟的中断处理,通过系统状态切换指令使得系统运行状态切换至安全内核;此时,在安全内核运行环境下的应用软件行为监控系统读取已拦截的系统调用信息,并与应用软件正常行为样本库进行模式匹配,比较异常度值与安全阀值来判断软件行为是否异常; (2)、样本库管理 1)初始化模式 存储应用软件正常行为模型的初始样本库; 2)动态加载行为样本 对于应用软件更新、升级过程中所出现的新的行为信息通过询问用户的方式,动态选择加载到应用软件的正常行为样本库; (3)、异常处理模块 在安全内核环境下,对经过匹配分析的应用软件根据安全策略进行放行、中止、询问等操作,并对系统状态进行异常返回。
【专利摘要】本发明公开了一种基于CPU时空隔离机制实现应用软件行为监控系统的方法,利用CPU虚拟化技术以时间片的方式运行两个不同状态的CPU虚拟核,通常划分为安全核和普通核;通过内存管理单元MMU对系统内存域进行空间划分,配置内存控制相关的寄存器以确保不同内存区域的访问权限,达到访问控制内存隔离的效果;基于CPU时空隔离机制利用安全运行环境对通用运行环境中的应用软件行为进行了管控。本发明的优点在于:提高了应用软件行为监控系统的时效性和可靠性,增强了计算机应用系统的安全性。
【IPC分类】G06F21/56, G06F21/53
【公开号】CN105488388
【申请号】CN201510961044
【发明人】王定健, 陈鲁, 符兴斌, 李锁在, 孟亚平, 孙铁, 陶亮, 郝斌, 白雷, 白秋霞, 房子成
【申请人】中软信息系统工程有限公司
【公开日】2016年4月13日
【申请日】2015年12月22日