网络监控与动态取证系统及方法技术领域
本发明涉及信息安全技术领域。具体涉及信息安全技术中的网络监控、入侵检测、计算
机取证技术、数字签名技术、虚拟专用网络(VPN)技术以及安全日志技术。
背景技术
传统的计算机取证手段是一种静态方法,在事件发生后对数据进行提取、分析、抽取有
效证据,这种方法费时且对取证人员有很高要求,并且不能对付高明的黑客攻击,这些黑客
在完成攻击后会全面彻底销毁证据或者窜改证据,事后即便使用最好的数据分析工具也无能
为力,因此,缺乏对证据的及时处理和有效保护。
另外,中国专利公开号为CN1310526的申请案,该发明原理为:利用现有网络安防产
品收集网络安全相关信息,并生成标准格式信息,通过专用通道向网络监控中心传输采集的
信息,监控中心向下传给客户端反控指令。不足之处在于:该方法不能对大规模的网络活动
实施有效的实时监控,严重依赖市场上现有安全产品和防火墙、IDS系统的能力,且搜集到
的信息由于缺乏不可抵赖性等严格的安全措施,因此导致其不具备权威性,因而无法作为呈
堂证据。
发明内容
本发明提供一种网络监控与动态取证系统及方法,可以对整个内部网络中每台主机进行
实时监控,收集监控时产生的信息,记录外来非法入侵,并实时提取攻击证据,同时将收集
到的证据进行安全处理,妥善存放。
本发明利用了生物免疫学基本原理,通过模拟人体免疫细胞对病原体的识别和分类作
用,从而达到对外来网络入侵的识别并进行在线实时取证的功能。
本发明所述的网络监控与动态取证系统由免疫细胞、动态取证细胞以及证据服务器等组
成。系统中执行实时监控功能的模块为免疫细胞,执行证据提取工作的模块为动态取证细
胞。这两种细胞分布于内部网络里每一台主机,形成一个分布式网络监控与动态取证系统。
系统中定义抗原为网络请求,自体为正常网络请求,非自体为异常网络活动(网络攻击)。
自体和非自体构成了抗原集合,且自体与非自体中不可能存在相同的网络活动。系统中还定
义了抗体,抗体存在于免疫细胞中,用于检测和匹配抗原。系统首先对网络活动信息进行抗
原提呈(特征提取),得到抗原决定基(特征)。当实施免疫执行过程(抗体对抗原进行匹
配)时,一旦匹配成功,则发现网络入侵,立即分泌激素刺激动态取证细胞,这些激素包括
当前主机环境,攻击类型、攻击主机地址和端口号等。动态取证细胞执行证据提取功能,所
取得的证据包括截获的抗原信息和攻击时的周围环境信息。之后对获得的证据进行数字签名
处理,签名过程中加盖了时间戳;签名后的证据经安全VPN传输至证据服务器中,并以数字
水印日志(本人申请的另一项专利:数字水印日志构造方法,申请号为03117842.1)的形式
存放于证据服务器中。免疫细胞和动态取证细胞完成网络入侵的一次监控以及取证过程,取
证的同时完成入侵检测功能。
在详细说明之前,首先定义系统中使用的一些名词、符号以及一些公式:
1)定义字符串集合为
IP包的集合为ψ,并且ψΩ;定义集合
R={<a,b>|a∈D∧|a|=l,b∈ψ},其中D={0,1}l,l为常自然数,|a|表示字符串a的
长度。
2)抗原集合Ag:AgR,为二进制串集合。对任意的抗原x∈Ag,x.b为原始的IP
包,x.a为对原始IP包经过类似抗原提呈细胞(antigen presenting cells,APCs)后得到的
特征(抗原决定基,antigenic determinant),有x.a=APCs(x.b),x.a主要由源、目的IP
地址、端口号、协议类型、协议状态等网络事务特征的二进制串组成。
3)自体、非自体集合:自体集合SelfAg,非自体集合NonselfAg。并且有
Self∪Nonself=Ag,Self∩Nonself=φ。Self为正常网络服务,Nonself为来自网
络的攻击。
4)定义sAgAg,且|sAg|=η*|Ag|,(0<η<1)。
5)定义自体的属于运算∈APCs,如下:
![]()
其中x∈Ag,x.a为抗原决定基。
6)定义免疫细胞集合B,且B={<d,age,count>|d∈D,age,count∈N},其中d为抗
体,它与抗原决定基具有同样的表达形式,age为抗体年龄,count为匹配数,N为自
然数集合。免疫细胞包括成熟免疫细胞Tb和记忆免疫细胞Mb,即B=Mb∪Tb,且
Mb∩Tb=φ,这两种免疫细胞参与免疫执行过程。
7)亲和力(affinity)计算函数fr_con(x,y):这里采用r连续位(r-contiguous bits)匹配函数,
计算公式见公式(2):
![]()
另外,亲和力计算函数也可采用其他函数,例如海明距离、欧拉距离等计算函数。
8)抗原与抗体的匹配:当抗原决定基与抗体的二进制串从某一位开始,有连续r位相
同,则称抗原与抗体是匹配的,得到的值是1;反之,不匹配,得到的值是0。
9)定义未成熟免疫细胞Ib:Ib={<d,age>|d∈D,age∈N},其中d,age的意义同免疫
细胞中d,age的定义。
10)定义证据集合Γ{<t,x,y,s>|t∈N,x∈Ag,y∈Ω,s∈Ω}。其中t为提取证据的时
刻(发生网络入侵的时刻);x为捕获的侵入网络的IP包,x.b为原始证据(原始的IP
包),x.a相当于对原始证据进行初步分析提取(抗原提呈)的证据;y为t时刻网络环境
现状,类似免疫系统中被捕获抗原周围的细胞状态,可以是当时CPU的利用率、系
统进程状况、网络带宽的使用情况、内存状态等等;s为对<t,x,y>的数字签名。
为了进一步说明本发明的原理及特征,以下结合附图进行详细说明。
图1是系统体系结构图。
图1显示了整个系统在网络中的分布:内部网络通过网关与Internet相连,免疫细胞和动
态取证细胞分布于内部网络里的每一台主机中,从而形成一个分布式网络入侵监控取证系
统;证据服务器则通过VPN与内部网相连,确保其安全性和独立性。
图2是系统的工作流程图。
免疫细胞为系统定义的执行实时监控功能的模块,动态取证细胞为执行动态取证功能的
模块,证据服务器为系统的硬件设备部分,用于存放取得的证据。系统的任务是对一个输入
的抗原集合(IP包)Ag,分δ代(δ为常数),每代选出一定数量的抗原组成sAg抗原集合,
通过B集合的检测把它分类为自体和非自体。整个过程分为三个阶段:第一阶段为0时刻到一
个耐受期α结束的时刻,需要定义初始的自体集合Self(0)和未成熟细胞集合Ib(0),后者经前
者耐受后成为成熟细胞。第二阶段从α+1时刻到记忆细胞产生的时刻,为自学习阶段,成熟
细胞通过克隆选择产生能识别大量不同非自体抗原的记忆细胞,而通过检测被分类为自体的
抗原最后送给未成熟细胞进行耐受。第三阶段从记忆细胞产生到系统终止,免疫系统各部件
产生完毕,进行实际环境中的检测:首先由记忆细胞检测,然后成熟细胞对剩下的抗原进行
检测,最后未成熟细胞以剩余抗原为自体进行耐受训练。在第二、三阶段中,当其免疫细胞
识别非自体抗原时,亦即发现一个网络入侵时,立刻提取证据τ,同时将τ利用安全的传输方
式(VPN),送达证据服务器,完成证据的存档工作。
其中,系统中自体的产生过程是:
初始自体集由系统管理员定义,也可以通过离线学习黑客攻击模式得到。以后则来自经
过免疫执行过程存活的抗原。自体的动态演化用方程描述为:
![]()
![]()
Selfnew(t)={y|y为t时刻新增加的自体串} (5)
![]()
![]()
B(t)=Mb(t)∪Tb(t),t≥0 (8)
方程(3)模拟了自体的动态演化情况,其中xi∈R(i≥1,i∈N)为初始自体集合,Selfnew为t
时刻系统新增的自体串。Selfvariationf为t时刻发生变异的自体,即删除自体集合中不再是自体
的元素。fcheck(y,x)(y∈B,x∈Ag)模拟免疫细胞对抗原的分类作用:若免疫细胞匹配了抗
原,且抗原属于Self(t-1),即检测到一个曾经是自体的抗原则返回2;若匹配但不属于Self(t
-1),即检测到一个非自体抗原则返回1;若未匹配,则该抗原为已知的自体抗原,返回0。
fcostimulation模拟免疫系统的协同刺激,指示当前抗原是否为自体抗原,外部信号可以是系统管
理员的应答等。
自体的动态演化主要关键有两点:①自身的免疫监视,随时清除发生变异的自体
(Selfvariation),从而消除错误否定(false negative):将非自体认为是自体。错误否定率的增加将
导致漏报率的增加,自身免疫监视能很好地解决自体随时间变异的问题。②自身的动态生
长,例如:随着时间的推移,网络将提供新的服务,开放新的端口等,即原来不允许的网络
访问,现在开放了。通过及时地增加自体元素(Selfnew),扩大自体的描述范围,可以有效地
降低错误肯定(false positive)率:将自体认为是非自体,产生误报。自身的动态再生机制可以
较好地解决目前IDS误报率较高这一严重问题。
系统中抗原的收集过程为:将网络活动表示为抗原表达式——二进制串。网络请求中包
含的信息有:源地址、目的地址、端口号、服务类型、协议类型等。抗原动态演化过程用方
程描述为:
![]()
sAg(t)Ag(t),|sAg(t)|=η*|Ag(t)|,t≥0 (10)
![]()
![]()
其中sAg为系统每次进行处理的抗原,其元素按比例η(0<η<1)随机从Ag(由自体和非自体元素
组成)中抽取,η为检测系数。Agnonself为t时刻被检测出来的非自体抗原。初始时刻抗原集合为
初始自体集合(此时B为空)。δ为抗原更新周期,表示每δ代,就把Ag换为全新的抗原集合
(Agnew)。更新周期内抗原集合的变化只是删除掉被检测出来的非自体抗原,以完成把剩下的
自体抗原送给未成熟免疫细胞Ib进行耐受的工作。
图3是记忆免疫细胞检测抗原流程图。
记忆免疫细胞对抗原进行匹配。将记忆免疫细胞的抗体与待处理抗原之决定基进行匹
配,匹配时采用r连续位匹配规则。
(1)匹配成功,判断检测到的抗原为上一时刻自体,则删除该免疫细胞;判断检测到的
抗原为非自体,删除被检测抗原,并分泌激素。
(2)匹配不成功,将待处理抗原交与成熟免疫细胞检测。
用方程来刻画记忆免疫细胞的记忆过程为:
![]()
![]()
图4是成熟免疫细胞检测抗原流程图。
经记忆免疫细胞检测后的抗原交给成熟免疫细胞检测,过程为:
(1)判断成熟免疫细胞匹配数是否大于阈值;
(2)大于阈值,升级为记忆免疫细胞;
(3)小于阈值,判断其是否年龄大于年龄阈值;
(4)年龄大于年龄阈值,则删除该成熟免疫细胞;
(5)年龄小于大于年龄阈值,则开始与抗原匹配;
(6)匹配成功,若检测到的抗原是上一时刻自体,则删除该免疫细胞,若检测到的抗原
是非自体,则删除该抗原,并分泌激素;
(7)匹配不成功,将这些剩余的抗原送到骨髓模型中参加耐受过程。
成熟免疫细胞的生命周期用方程刻画为:
![]()
Tb′(t)=Tb″(t)-P(t)∪Tclone(t) (15)
Tb″(t)={y|y.d=x.d,y.age=x.age+1,y.count=x.count,x∈Tb(t-1)} (16)
P ( t ) = { x | x ∈ T b ′ ′ ( t ) , ∃ y ∈ sAg ( t - 1 ) ( f check ( x , y ) = 1 ]]>
![]()
Tclone(t)={y|y.d=x.d,y.age=x.age,y.count=x.count+1,x∈P(t)} (18)
Tnew(t)={y|y.d=x.d,y.age=0,y.count=0,x∈Imaturation(t)} (19)
Tmemory(t)={x|x∈Tb′(t)(x.count≥β)} (20)
Tdead(t)={x|x∈Tb′(t)(x.age>λ∧x.count<β)} (21)
图5是未成熟免疫细胞自体耐受流程图(骨髓模型)。
被检测抗原在经过记忆免疫细胞和成熟免疫细胞两个阶段的检测之后剩下的均认为是自
体抗原,未成熟免疫细胞与这些自体抗原进行耐受训练。
(1)新的自体抗原添加进骨髓模型中,同时随机生成一定数目的未成熟免疫细胞;
(2)未成熟免疫细胞与骨髓模型中的自体抗原匹配;
(3)匹配成功,删除该未成熟免疫细胞,即耐受失败;
(4)匹配不成功,返回到(1),进行下一次耐受,整个过程循环α次(α为耐受期)。
(5)循环结束,存活的未成熟免疫细胞(即未成熟免疫细胞年龄大于α)升级为成熟免
疫细胞,参与到免疫执行过程中。
用方程来刻画该过程为:
![]()
Itolerance(t)={y|y.d=x.d,y.age=x.age+1,
x ∈ ( I b ( t - 1 ) - { x | x ∈ I b ( t - 1 ) , ∃ y ∈ sAg ( t - 1 ) ( f r _ con ( x , y ) = 1 ) } ) - - - ( 23 ) ]]>
Imaturatiio n(t)={x|x∈Itolerance(t),x.age>α} (24)
Inew(t)={y1,y2,…,yk} (25)
图6是证据封装图。
●提取证据包括:
(1)截获匹配的抗原,其上包含原始IP包和经抗原提呈出的决定基(特征值),抗
原决定基可视为对原始IP包的初步分析。
(2)快照攻击现场。得到的证据包括:系统日志文件、内外存状况、swap状况、
进程类型、进程状态、攻击方源地址、目的地址、端口,使用协议、网络连接
数量、连接时间、连接类型以及平均发送包数等。
用方程来刻画该过程为:
![]()
Γnew(t)={τ|τ∈Γ,τ.t=t,τ.x=x,τ.y=y′,τ.s=s′,
s ′ = E kpv ( H ( τ . t + τ . x + τ . y ) ) , x ∈ A g nonself ( t ) } ]]>
(27)
其中Γnew(t)为t时刻面临网络入侵实时收集的证据;x为被截获的攻击数据,包含两个部
分:①x.b为原始的IP包,作为原始证据。②x.a相当于对原始证据进行抗原提呈后得到的原
始证据的基本特征,作为直接证据呈供;y′为收集证据时网络环境的一个快照,如CPU的使
用情况、系统日志文件、内外存状况、swap状况、文件系统的变化情况、进程状态、网络
连接数量、连接时间、连接类型以及平均发送包数等,作为间接证据呈供;s′如前所述为证
据的数字签名,用以确保证据的权威性。
●数字签名:对所获取的证据进行数字签名。用方程来刻画为:
s = E k private ( H ( t + x + y ) ) - - - ( 28 ) ]]>
其中E为签名算法,可采用RSA、DSS签名算法等;kprivate为系统对证据签名时的私钥,
H为单向散列函数例如SHA-1等,+为字符串的连接运算。首先将字符串<t,x,y>合并成一个字
符串,求取该字符串的散列值h,利用系统的私钥kprivate采用公钥算法E对h进行加密得到数字
签名。根据密码学理论,如果kprivate足够长,则s是安全的,能抵御任何攻击。
对任意的证据τ∈Γ,通过验证τ的数字签名,可提供证据的完整性、原始性(权威性、
不可抵赖性)等,验证方法如(29)式所示:
![]()
其中Dkpublic(τ.s)为利用系统的公钥kpublic采取相应的公钥算法对τ.s作解密运算得到原经
加密存储的散列值,H(τ.t+τ.x+τ.y)为利用相应算法重新计算其散列值,若两者相等,则验
证成功,证据τ完整有效;否则,则证据τ已被破坏,不可信。
●封装证据。
将截取抗原的时间、抗原、周围环境以及对这三者的组合进行的数字签名一起封装成证
据记录形式。
图7是证据组织形式结构图。
在证据服务器中,证据的组织形式是生成的数字水印证据文件。
根据数字水印日志构造方法将证据以数字水印日志形式存放在证据服务器中,即在证据
中加入水印,水印为二进制串形式,可以是一段文字、标识、序列号以及图象等。
创建数字水印证据文件时,首先填写文件头的有关信息,如:文件标识符、摘要算法标
识符、非对称加密算法标识符、水印等。其中,文件标识符标识数字水印证据文件;摘要算
法标识符表示数字水印证据文件使用的摘要算法,可采用目前国内外常用的摘要算法,如:
MD2、MD5及SHA-1等;非对称加密算法标识符表示数字水印证据文件使用的非对称加密
算法,可采用国内外常用的非对称加密算法,如:RSA、DSA、ECC及DH等;文件签名数
据字段主要包含水印、所有证据记录摘要信息等,这些信息由非对称加密算法标识符指定的
算法加密后存储。初始时,文件签名数据字段为空,以后每增加一个证据记录,该字段均相
应发生变化;文件签名数据实质上是证据文件中所有证据的摘要信息的数字签名,任何证据
记录的细微改变,均将导致摘要信息的巨大差异,因此,验证此字段的签名信息,可验证整
个证据文件的完整性。
数字水印证据文件建立后,每一条证据记录均写入文件末尾,每添加一条新的证据记
录,重新对证据文件进行数字签名,并且写回至证据文件。
当需要验证整个文件的完整性时,取出文件头的文件签名数据,验证其签名的正确性,
若通过签名验证,则说明所有证据记录没有遭到破坏,证据完整;否则,则说明证据文件已
被破坏。
当需要验证某条证据记录的权威性和不可否认性时,取出该条记录的数字签名,验证其
正确性,若通过签名验证,则说明该条证据记录没有遭到破坏,可信;否则,则说明该条证
据已被破坏或是伪造的,不可信。
注意:文件签名验证成功,则意味着所有的证据记录均是可信的;若验证不成功,则说
明证据文件中部分或全部证据记录已被破坏,此时,可利用证据记录数字签名来验证每一条
证据的合法性。若某条证据记录验证通过,即使整个证据文件验证失败,该条证据也是可信
的。
另外,证据服务器是一台可信度非常高的机器,并且极少人接触证据服务器。通过VPN
与内部网络相连,确保其独立性和安全性。证据服务器用来存放通过取证细胞提取的证据,
以供日后进行证据分析。当证据服务器接收到证据后也要对证据进行一次数据签名,完成证
据的移交过程。