一种计算机内存取证方法、设备及内存取证分析系统
技术领域
本发明涉及计算机技术领域,尤其是一种计算机内存取证技术,具体为一种计算机内存取证方法、设备及内存取证分析系统。
背景技术
随着互联网技术的快速发展及各项互联网应用的快速普及,信息技术已经广泛应用于社会生活及生产的各个领域,整个社会及生产都越来越依赖于信息技术,因此信息安全也越来越受到重视。从个人计算机到服务器,都采用了一定的安全防护措施,如杀毒软件、防火墙、加密软件、数据备份等来保护个人、商业数据或设备。然而,计算机入侵事件却时有发生。特别是存在一些有目的的、针对性的计算机入侵事件。这些入侵利用各种技术的和人为的漏洞,入侵计算机系统,并获取被控计算机的数据。通常,这种高水平的计算机入侵手段,被入侵的计算机管理者常常在很长的时间后才发现,入侵者通常采用数据加密的方式把数据通过网络转移出去,而且,这种专业的入侵,会判断被入侵计算机的活动情况,一旦发现查杀病毒软件、读取内存软件等活动,会暂停入侵任务,清除自己的入侵痕迹,让管理者无计可施。
在现有的技术中,提取计算机内存,可以分为软件方法和硬件方法,
软件读取内存,最大的问题是软件本身对操作系统的影响。对于一般的应用分析,问题还不大,但是,对于高级的入侵,一旦检测到软件读取自己使用的内存,会进行自我现场破坏,读出的内存,已经没有价值了。
对应硬件方法,利用通过PCI Express总线读取计算机物理内存。例如公开号为:“CN103399830A”公开了一种通过PCI Express总线读取计算机物理内存的设备,包括USB控制器、PCI-E桥接控制器、供电模块和时钟模块,供电模块、时钟模块给USB控制器和PCI-E桥接控制器分别提供电源和时钟脉冲信号;所述USB控制器与PCI-E桥接控制器通过CPLD逻辑器件相连接,USB控制器上设置有与取证计算机相连接的USB接口,PCI-E桥接控制器上设置有与目标计算机相连接的PCI Express接口;CPLD逻辑器件用于实现USB控制器与PCI-E桥接控制器之间的数据传输,但是在该技术中,需要将内存读取设备配置为以PCI-to-PCI桥与目标计算机相连接,并分配PCI总线号、设备号,目标计算机为内存读取设备分配PCI总线号和PCI设备号,目标计算机自动加载内存读取设备的驱动程序以及配置绕开UMA地址段,绕开目标计算机内存中的UpperMemoryArea地址段,获取目标计算机的内存数据,上述的硬件读取的方式,目前仅仅是在一些特定的环境或者条件下,受很大的限制。
发明内容
本发明的目的在于提供一种计算机内存取证方法、设备及内存取证分析系统,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:
一种计算机内存取证方法,包括
提供一个目标计算机,
将内存取证设备插入目标计算机获取对目标计算机物理地址访问,
提供一个取证计算机,该取证计算机通过设置在内存取证设备的外部接口与内存取证设备连接,
在所述取证计算机上设置一个采集与控制模块,
通过所述采集与控制模块向所述内存取证设备发送采集指令,所述内存取证设备接收采集指令以读取目标计算机的物理内存数据,将读取的物理内存数据经外部接口单元发送至所述采集与控制模块,所述采集与控制模块接收内存取证设备读取的物理内存数据,并保存为二进制文件。
进一步地,所述内存取证设备上设置有PCI-E接口单元,通过所述PCI-E接口单元插入所述目标计算机使得内存取证设备与目标计算机连接,利用目标计算机的PCI-E总线将内存取证设备和目标计算机进行链接,使所述内存取证设备与DMA单元完成数据交换。
进一步地,所述内存取证设备与DMA单元完成数据交换的方法为:
所述内存取证设备对PCI-E协议进行解析,将解析后的信号数据通过内存取证设备的逻辑控制模块一转换协议后存放于局部总线缓冲器,待进一步与数据通信模块通信完成对所述PCI-E接口单元与外部接口单元的逻辑桥接;所述外部接口单元至所述PCI-E接口单元的数据通信与之相反,逻辑控制模块一从局部总线缓冲器读取数据并转换协议后通过所述PCI-E接口单元送至目标计算机。
进一步地,所述外部接口单元为以太网接口。
进一步地,利用所述以太网接口与所述PCI-E接口进行逻辑桥接时,
所述以太网接口具有物理层处理接口和媒体控制层处理接口,通过所述物理层处理接口和媒体控制层处理接口在所述FPGA主控模块内部实现协议应用层,通过逻辑控制模块二将命令控制数据经过格式转换后传至局部总线缓存器中,逻辑控制模块一从局部总线缓冲器读取控制命令数据并转换协议后通过所述PCI-E接口单元送至目标计算机。
本发明还提供了一种内存取证设备,包括
FPGA主控模块,所述FPGA主控模块控制DMA单元以及PCI-E接口单元,
所述DMA单元用于获得PCI-E总线的读取权限,获得目标计算机物理内存的访问,读取目标计算机的内存数据,将读取的目标计算机的内存数据存储在DDR3存储器上,
PCIE接口单元,用于插入目标计算机,使内存取证设备与目标计算机连接,利用目标计算机的PCI-E总线将内存取证设备和目标计算机进行链接,使所述内存取证设备与DMA单元完成数据交换,
外部接口单元,与所述PCI-E接口单元进行逻辑桥接,
锁相环单元,为所述FPGA主控模块提供参考时钟,
电源模块,为所述DMA单元、DDR3存储器、PCI-E接口单元、锁相环单元以及外部接口单元供电,所述FPGA主控模块与DMA单元、DDR3存储器、PCI-E接口单元以及外部接口单元分别连接。
本发明还提供了一种内存取证分析系统,包括
提供一个目标计算机,
将内存取证设备插入目标计算机获取对目标计算机物理地址访问,
提供一个取证计算机,该取证计算机通过设置在内存取证设备的外部接口与内存取证设备连接,
在所述取证计算机上设置一个采集与控制模块,
所述采集与控制模块接收内存取证设备读取的物理内存数据,
在所属取证计算机上设置有一内存分析模块,所述内存分析模块内存取证设备读取的物理内存数据,将内存取证设备读取的物理内存数据保存为内存镜像文件,
所述内存分析模块对所述内存镜像文件进行分析,获取分析结果。
进一步地,所述分析结果包括:
检查内存进程;
或,检查进程详细信息;
或,查看进程细节包括共享库、开始和结束的位置信息;
或,查看可疑文件的位置;
或,查看网络链接情况;
或,获取入侵采用的密钥、加密算法。
与现有技术相比,本发明的有益效果是:
内存取证设备是一款绕开CPU,基于DMA方式的通过PCI-E来读取内存的内存取证设备,与背景技术中的技术相比,本发明采用以太网接口与所述PCI-E接口进行逻辑桥接,所述以太网接口具有物理层处理接口和媒体控制层处理接口,通过所述物理层处理接口和媒体控制层处理接口在所述FPGA主控模块内部实现协议应用层,通过逻辑控制模块二将命令控制数据经过格式转换后传至局部总线缓存器中,逻辑控制模块一从局部总线缓冲器读取控制命令数据并转换协议后通过所述PCI-E接口单元送至目标计算机。因此无需将内存读取设备配置为以PCI-to-PCI桥与目标计算机相连接,也无需分配PCI总线号、设备号,目标计算机为内存读取设备分配PCI总线号和PCI设备号。
本发明中,在所述取证计算机上设置一个采集与控制模块,通过所述采集与控制模块获取内存取证设备读取的物理内存数据,并保存为二进制文件,因此无需在内存取证设备配置驱动程序以实现目标计算机的连接。且所述采集与控制模块给物理内存读取卡下达读取命令,并具备把内存读取卡返回的内存数据做持久化保存的功能。
本发明中,内存分析模块对返回的内存数据,实现分析,提供人机交互,把分析结果可视化和告警。
附图说明
图1是本发明中内存取证方法的流程图;
图2是本发明中内存取证设备的框架原理图;
图3是本发明中分析系统的流程图;
图4是本发明中FPGA控制模块的电路原理图;
图5是本发明中PCI-E接口单元的的电路原理图;
图6是本发明中锁相环单元的电路原理图;
图7是本发明中DDR3存储器的电路原理图;
图8是本发明中以太网接口的电路原理图;
图9是本发明中电源模块的供电原理图。
具体实施方式
以下结合附图对本发明进行详细的描述。
DMA单元(直接存储器访问),是所有现代电脑的都具有的功能,它允许不同速度的硬件装置来沟通,而不需要依赖于CPU的大量中断负载,在实现DMA传输时,是由DMA控制器直接掌管总线,因此,存在着一个总线控制权转移问题。即DMA传输前,CPU要把总线控制权交给DMA控制器,而在结束DMA传输后,DMA控制器应立即把总线控制权再交回给CPU。一个完整的DMA传输过程必须经过DMA请求、DMA响应、DMA传输、DMA结束4个步骤。
请求:CPU对DMA控制器初始化,并向I/O接口发出操作命令,I/O接口提出DMA请求。
DMA响应:DMA控制器对DMA请求判别优先级及屏蔽,向总线裁决逻辑提出总线请求。当CPU执行完当前总线周期即可释放总线控制权。此时,总线裁决逻辑输出总线应答,表示DMA已经响应,通过DMA控制器通知I/O接口开始DMA传输。
DMA传输:DMA控制器获得总线控制权后,CPU即刻挂起或只执行内部操作,由DMA控制器输出读写命令,直接控制RAM与I/O接口进行DMA传输。在DMA控制器的控制下,在存储器和外部设备之间直接进行数据传送,在传送过程中不需要中央处理器的参与。开始时需提供要传送的数据的起始位置和数据长度。
DMA结束:当完成规定的成批数据传送后,DMA控制器即释放总线控制权,并向I/O接口发出结束信号。当I/O接口收到结束信号后,一方面停止I/O设备的工作,另一方面向CPU提出中断请求,使CPU从不介入的状态解脱,并执行一段检查本次DMA传输操作正确性的代码。最后,带着本次操作结果及状态继续执行原来的程序。
由此可见,DMA传输方式无需CPU直接控制传输,也没有中断处理方式那样保留现场和恢复现场的过程,通过硬件为RAM与I/O设备开辟一条直接传送数据的通路。
基于此,本发明的主要目的在于,通过DMA单元可以直接获取CPU的数据,提供一种可以与DMA单元进行数据交换的取证方法、设备以及取证后的分析系统。
参照图1,本发明提供了一种计算机内存取证方法,包括
提供一个目标计算机,
将内存取证设备插入目标计算机获取对目标计算机物理地址访问,
提供一个取证计算机,该取证计算机通过设置在内存取证设备的外部接口与内存取证设备连接,
在所述取证计算机上设置一个采集与控制模块,
通过所述采集与控制模块向所述内存取证设备发送采集指令,所述内存取证设备接收采集指令以读取目标计算机的物理内存数据,将读取的物理内存数据经外部接口单元发送至所述采集与控制模块,所述采集与控制模块接收内存取证设备读取的物理内存数据,并保存为二进制文件。
所述内存取证设备上设置有PCI-E接口单元,通过所述PCI-E接口单元插入所述目标计算机使得内存取证设备与目标计算机连接,利用目标计算机的PCI-E总线将内存取证设备和目标计算机进行链接,使所述内存取证设备与DMA单元完成数据交换。
在上述中,所述内存取证设备与DMA单元完成数据交换的方法为:所述内存取证设备对PCI-E协议进行解析,将解析后的信号数据通过内存取证设备的逻辑控制模块一转换协议后存放于局部总线缓冲器,待进一步与数据通信模块通信完成对所述PCI-E接口单元与外部接口单元的逻辑桥接;所述外部接口单元至所述PCI-E接口单元的数据通信与之相反,逻辑控制模块一从局部总线缓冲器读取数据并转换协议后通过所述PCI-E接口单元送至目标计算机。
传统的以太网接口通过以太网控制器外接一个PHY芯片来完成主机与外部通信。对于使用FPGA的通信方式通常有两种,一个使用只含有物理层(PHY)的控制器,则需要在FPGA内部来实现MAC功能,另一个是自带物理层(PHY)处理接口和媒体控制层(MAC)处理接口,此种使用FPGA控制模块只关心数据协议的处理,。因此无需将内存读取设备配置为以PCI-to-PCI桥与目标计算机相连接,也无需分配PCI总线号、设备号,目标计算机为内存读取设备分配PCI总线号和PCI设备号。
在上述中,所述外部接口单元为以太网接口。利用所述以太网接口与所述PCI-E接口进行逻辑桥接时,所述以太网接口具有物理层处理接口和媒体控制层处理接口,通过所述物理层处理接口和媒体控制层处理接口在所述FPGA主控模块内部实现协议应用层,通过逻辑控制模块二将命令控制数据经过格式转换后传至局部总线缓存器中,逻辑控制模块一从局部总线缓冲器读取控制命令数据并转换协议后通过所述PCI-E接口单元送至目标计算机。
本发明中,在所述取证计算机上设置一个采集与控制模块,通过所述采集与控制模块获取内存取证设备读取的物理内存数据,并保存为二进制文件,因此无需在内存取证设备配置驱动程序以实现目标计算机的连接。且所述采集与控制模块给物理内存读取卡下达读取命令,并具备把内存读取卡返回的内存数据做持久化保存的功能。
参照图3,本发明还提供了一种内存取证分析系统,包括
提供一个目标计算机,
将内存取证设备插入目标计算机获取对目标计算机物理地址访问,
提供一个取证计算机,该取证计算机通过设置在内存取证设备的外部接口与内存取证设备连接,
在所述取证计算机上设置一个采集与控制模块,
所述采集与控制模块接收内存取证设备读取的物理内存数据,
在所属取证计算机上设置有一内存分析模块,所述内存分析模块内存取证设备读取的物理内存数据,将内存取证设备读取的物理内存数据保存为内存镜像文件,
所述内存分析模块对所述内存镜像文件进行分析,获取分析结果。
进一步地,所述分析结果包括:
检查内存进程;
或,检查进程详细信息;
或,查看进程细节包括共享库、开始和结束的位置信息;
或,查看可疑文件的位置;
或,查看网络链接情况;
或,获取入侵采用的密钥、加密算法。
获取内存原始信息,实现内存分析,是反入侵的一个有效途径,可以揪出入侵者的尾巴,并为做好反入侵、有所反制提供了技术手段和技术参考。
参照图2,本发明还提供了一种内存取证设备,包括
FPGA主控模块,所述FPGA主控模块控制DMA单元以及PCI-E接口单元,
所述DMA单元用于获得PCI-E总线的读取权限,获得目标计算机物理内存的访问,读取目标计算机的内存数据,将读取的目标计算机的内存数据存储在DDR3存储器上,
PCIF接口单元,用于插入目标计算机,使内存取证设备与目标计算机连接,利用目标计算机的PCI-E总线将内存取证设备和目标计算机进行链接,使所述内存取证设备与DMA单元完成数据交换,
外部接口单元,与所述PCI-E接口单元进行逻辑桥接,
锁相环单元,为所述FPGA主控模块提供参考时钟,
电源模块,为所述DMA单元、DDR3存储器、PCI-E接口单元、锁相环单元以及外部接口单元供电,所述FPGA主控模块与DMA单元、DDR3存储器、PCI-E接口单元以及外部接口单元分别连接。
具体的,参照图4,在本发明中,FPGA主控模块,采用采用的主控芯片为Xilinx公司的Kintex-7系列中的一款FPGA。Kintex-7系列是一种新型Xilinx FPGA,采用28nm工艺可以实现最佳成本/性能/功耗平衡,并完全支持PCI-Express 2.0标准和10Gigabit Ethernet等主流标准。
所述FPGA控制模块上电配置模式采用Master-SPI模式,所述FPGA控制模块上电配置数据用的SPI-F1ash采用高速QSPI-Flash芯片。
参照图5,所述PCI-E接口单元采用PCI-Express Addin板卡标准,采用x4 Lane金手指规范,
参照图6,所述锁相环单元采用采用PLL锁相环芯片主要是为FPGA内部实现10GEthernet数据收发电路提供高精度、低抖率的参考时钟。
参照图7,所述DDR3存储器采用三星公司的DDR3-SDRAM存储颗粒,用2个4Gbit颗粒构成1Gbyte容量@32bit位宽的高速数据缓存电路。
参照图8,以太网接口采用的是带屏蔽罩的标准SFP+连接器,连接器上的万兆网口电信号直接和FPG主控模块A对应10G Ethernet高速信号GTX接口互联。万兆网卡的光电转换电路由外置支持SFP+的光电转换模块实现。
参照图9,电源输入采用PCI-E金手指所提供的+12V作为本内存取证设备的唯一电源输入。内存取证设备上各电路及散热器风扇所需电压都有本12V输入电源生成。
所述FPGA主控芯片所需电压由TPS53319DQPT芯片生成。FPGA主控芯片辅助电压VCCAUX(1.8V)由RT7235GQW芯片生成。FPGA主控芯片的GTX用AVTT终端电压由RT9018A-12ZQW芯片生成。
DDR3-SDRAM存储电路所需主电压1.5V由RT7259GQW芯片生成,DDR3-SDRAM存储器电路的终端电压0.75V由RT9088GQW芯片生成。
外围电路所需的通用电压生成,外围各电路及芯片所需的通用电源3.3V电压生成。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实例的说明只是用于帮助理解本发明的方法及其核心思想。以上所述仅是本发明的优选实施方式,应当指出,由于文字表达的有限性,而客观上存在无限的具体结构,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进、润饰或变化,也可以将上述技术特征以适当的方式进行组合;这些改进润饰、变化或组合,或未经改进将发明的构思和技术方案直接应用于其它场合的,均应视为本发明的保护范围。