发明名称 一种用于收集和截获计算机内存行为的蜜罐方法
摘要 一种用于收集和截获计算机内存行为的蜜罐机制及方法,包括:内存虚拟化模块、蜜罐模块、内省模块、控制模块和蜜罐记录模块;本机制基于内存虚拟化技术,支持SMP结构,可以在操作系统运行时部署轻量化虚拟机,对蜜罐中的内存行为进行监视;也可作为其它虚拟机的子模块实现相同功能;蜜罐在系统运行时监视多个核中的每个进程对内存关键区域的精确修改情况,由位图表示,同时通过内省模块收集相关的进程详细信息和进程当时完整的运行时状态,所有记录统一集中到蜜罐记录模块;本发明基于事件驱动,不修改目标操作系统的任何代码,相对于现有的指令级监视性能损耗低,灵活度高,适合用于实时取证和动态分析。
申请公布号 CN104021344B 申请公布日期 2015.06.24
申请号 CN201410203373.9 申请日期 2014.05.14
申请人 南京大学 发明人 伏晓;程盈心;骆斌;杨瑞;阮豪
分类号 G06F21/56(2013.01)I 主分类号 G06F21/56(2013.01)I
代理机构 南京瑞弘专利商标事务所(普通合伙) 32249 代理人 陈琛
主权项 一种用于收集和截获计算机内存行为的蜜罐方法,其特征在于:包括内存虚拟化模块、蜜罐模块、内省模块、控制模块和蜜罐记录模块;所述内存虚拟化模块用于控制虚拟机内存操作权限,包括二级地址转换功能、和在地址转换过程中的读写及执行权限的控制,在发生违反读、写或执行权限的事件时,将当前CPU的控制流转到蜜罐模块的事件处理函数中,在函数返回后,恢复CPU的正常运行;所述蜜罐模块由多个可配置的独立蜜罐个体组成,每个蜜罐个体对应操作系统中的一张内存页,即成为蜜罐页;蜜罐模块以蜜罐页为单位,在系统运行时监视多个核中的各个进程对蜜罐区域的精确修改情况,并由位图表示;所述内省模块在蜜罐模块收集信息的同时,收集相关的进程详细信息和进程当时完整的运行时状态;所述控制模块提供外部控制接口,并将控制命令信号转发到蜜罐模块对应的控制接口中,用于设置蜜罐模块监视的内存区域,启动、停止和重置蜜罐功能;所述蜜罐记录模块收集蜜罐模块和內省模块提交的数据,记录每个进入蜜罐进程的完整行为;所述蜜罐模块的具体运行步骤如下:(1)配置阶段,蜜罐模块获取空闲的蜜罐个体、并将空闲的蜜罐个体对应到目标内存页上,即成为蜜罐页;(2)运行阶段,利用蜜罐页的蜜罐个体监视目标内存页上的进程读写情况,同时通过內省模块获取操作系统中相关进程的详细信息,不断提交到蜜罐记录模块中;所述蜜罐页的具体运行步骤如下:a、初始化,打开内存屏障;b、捕捉目标进程,当有进程第一次访问蜜罐页对应的内存时,触发硬件保护事件,控制流陷入虚拟机监视器,目标进程暂停运行,蜜罐页截获写事件,通过內省模块获得目标进程详细信息和进程运行状态,将內省模块获得的目标进程详细信息和进程运行状态挂接到蜜罐页中;并在目标进程写入内存之前获取内存页快照,为目标进程生成内存修改位图做准备;之后,蜜罐页允许目标进程在当前CPU的写操作,并返回虚拟机中;之后,目标进程在当前CPU上写入蜜罐;c、进程切换事件处理,当前CPU在切换进程上下文时,将陷入虚拟机监视器;此时,蜜罐模块将取消所有蜜罐页内存在当前核中的写权限,这样,在进程继续写入蜜罐页时,蜜罐页可以检查在切换进程后访问蜜罐页的是否还是目标进程,如果是,则进入步骤d,如果否,则进入步骤f;d、缺页事件处理,有缺页中断事件发生时,若系统发现被置换出的页属于蜜罐页,系统将继续保存蜜罐页的当前状态,并在下次被置换进物理内存时更新其物理内存地址;e、跟踪目标进程,在捕捉完进程后,若在其它核中有进程访问蜜罐页,或者在CPU进程切换事件发生后在蜜罐页中发生写入操作,蜜罐页将检查试图写入的进程是否是当前正在监视的进程,若是,则继续步骤c、步骤d和步骤e,允许单个进程中的多个线程对蜜罐的同步访问;若否,则打开内存屏障保护当前的改动记录,并转入步骤f提交目标进程的监视记录,保证不同进程在同一时间对单个蜜罐页的互斥访问;f、提交目标进程监视记录,蜜罐页启动提交过程,将当前的内存页内容和步骤b中快照内存页内容逐BYTE进行对比,生成一个为当前内存页1/8大小的修改情况位图,更新到蜜罐记录模块的对应位置,同时将目标进程的详细信息和捕捉到的目标进程的状态挂接到蜜罐记录模块的对应位置中;之后转到步骤a,为新的进程初始化蜜罐页;若蜜罐模块正在进入停止阶段,则打开所有写权限;(3)停止阶段,蜜罐模块控制所有蜜罐页完成最后一次提交,并停止蜜罐的运行。
地址 210093 江苏省南京市鼓楼区汉口路22号