一种基于隐马尔科夫理论的bbs用户异常行为审计方法

文档序号:6481025阅读:195来源:国知局

专利名称::一种基于隐马尔科夫理论的bbs用户异常行为审计方法
技术领域
:本发明属于计算机和信息安全
技术领域
,特别涉及一种基于隐马尔科夫理论的BBS用户异常行为审计方法。
背景技术
:BBS的英文全称是BulletinBoardSystem,翻译为中文就是"电子公告板"。目前BBS系统能够把各种共享资源提供给各种各样的用户,所有人都可以在注册帐号后浏览系统中的文章,共享系统中的文件。目前,国内除了提供公众的BBS外,还提供包括各种商业用途的BBS服务站。BBS提供了诸如讨论区、信件区、聊天区、文件共享区等多种工作栏目,也可以根据BBS站的站长或用户自己的需要主持和开辟新的BBS栏目。但是,当前各类BBS系统中,往往只关心网络上传输的数据的安全性和访问过程中的身份安全性,对用户使用了哪些信息、资源、使用的时间、以及如何使用(执行何种操作)无法以书面的方式提供证据,导致管理员在事故发生后无法进行原因査找、分析和责任鉴定。
发明内容本发明的目的时为了克服现有技术的不足之处,提出一种基于马尔科夫理论的BBS用户异常行为审计方法。基于隐马尔科夫模型(H醒)的审计跟踪处理具体实现步骤如下,如图l所示步骤l:从数据库读取审计数据,得到待检测行为的观察值序列;步骤2:从隐马尔科夫模型数据库读取经过训练的模型参数;步骤3.利用Viterbi算法,通过观察值序列计算^态值序列,保存到数据库中;步骤4.调用前向、后向算法,计算观察值序列出现的概率,并与预先设定的阈值比较,低于阈值,进入步骤5,否则进入步骤6;步骤5.低于阈值作为异常行为,产生告警;步骤6.正常行为,隐马尔科夫模型参数修正,并存入隐马尔科夫模型的参数文件屮。步骤1所述的观察值序列是指BBS用户的行为,在BBS中主要的用户行为如下阅读文章,发表文章,修改文章,删除文章,娱乐,收发邮件,,删除用户、禁止用户发表文章、仲裁、审计和隐身。由于删除用户、禁止用户发表文章、仲裁、审计和隐身是具有一定权限的用户才可以执行的,属于特殊行为,统一归为其他。确定的观察值序列为{阅读文章,发表文章,修改文章,删除文章,娱乐,收发邮件,其他}。确定好的观察值序列,需要使用量化的信息表述。本发明方法观察值序列量化的信息定义为用户每种操作在某一段时间内进行的次数。即观察值序列0(/力€{01,,...,077},这里f代表的是一段时间,可以取一星期的时间,而/代表的是不同操作,这里其取值为1^/S7。步骤2所述的隐马尔科夫模型,初始参数设置如下a)观察值序列{阅读文章,发表文章,修改文章,删除文章,聊天,收发邮件,其他};b)状态数目{经常,有时,很少,从不};'c)初始状态概率向量(;r)的确定。由于是初次确定这些参数,在数据量还不是很大的情况下,可以认为各种状态间以等概率转移。;r=(,&,...,),其中;r,p"=&),由于状态S只有经常,有吋,很少,从不这样四种状态,即iV^4,所以有丌l=丌2="3="4=1Z4°d)状态转移概率(A)的确定采用等概率转移进行初始设定,即状态转移概率矩阵中所有的值均为1/4。e)观察值概率.(B)的确定,具体步骤如下A.随机初始化观察值概率矩阵^,与设定好的初始状态概率向量"和状态转移概率矩阵^共同构成初始模型参数A;'B.调用Baum-Welch算法,对初始参数进行极大似然估计,得到新的模型参数^,其中Baum-Welch是一种公知算法;C.再将得到的2作为初始参数,作为异常行为检测时的参数;D.当对正常行为进行模型参数训练时,也以2为初始参数,并逐歩修正为I;步骤3所述的状态值序列是指用户各种观察值的操作频度,根据用户对某种操作的频繁程度划分为{经常,有时,很少,从不}这样四种状态,即状态值序列g(m)=其中^£{经常,有时,很少,从不}。步骤3所述的Viterbi算法是一种公知的算法,本发明方法在原Viterbi算法基础上,采用取对数的方法将概率矩阵的值放大;步骤4中所述的阈值,本文采用均值的方法,即通过多次出现该观测值的概率的均值求得。当检测到的观察值序列OH^,02,…,(^)出现的概率p((9i;i),当出现概率低于设定的阈值时,认为是异常状态。步骤4中所述的前向、后向算法也是一种公知算法,本发明在计算alpha矩阵和beta矩阵时采用比例因子法进行操作。由于中间得到的alpha矩阵,beta矩阵都作为Baum-Welch算法需要调用到的参数值,故它们的值不能仅仅放大,还要有还原,也即先放大后还原的过程,这里采用的是比例因子法进行操作,先放大一定的比例因子,最终再还原为原值。步骤6所述的隐马尔科夫模型参数修正,是指由于初始阶段,对于用户模型的先验知识不足,隐马尔科夫模型的初始设置并不是固定的,需要逐渐修正。通过文件保存当前隐马尔科夫模型参数。模型参数包括1)JT:初始状态概率向量7=(,;2"2,...,),其中^=/7(力=&),ql为状态值。由于状态&只有经常,有时,很少,从不这样四种状态,即^=4,这里需要记录的变量有对应;r,.的下标和对应巧的值。2)状态转移概率矩阵力其中=/^,+1=~|仏=&],1《z》'《iV。需要保存的变量有状态的起点z',状态的终点_/及的值。3)观察值概率矩阵5其中~&)=;7[《|仏=~],lSA:S:r。需要保存的变量有状态的起点/,状态终点/t及^.(W的值。根据Baum-Welch算法,由观察值序列0和选取的初始值模型义=(乂,丑,",重估公式求得一组新参数^,^,^,则可以得到一个新的模型5^2,瓦^),可以证明,/KOI》>p(OI义),由重估公式得到的》比A在表现观察值序列0要好。则重复这个过程,逐步改进模型的参数,直到p(OI》收敛,也就是不再明显增大为止,此时的7就是所求的模型。有益效果加入审计跟踪后的BBS不但有助于帮助系统管理员确保系统及其资源免遭非法授权用户的侵害,同时还能在对数据进行恢复时提供帮助。审计跟踪可以实现多种安全相关目标,包括个人职能、事件重建、入侵检测和故障分析,大大提高了系统的安全性。图l、为基于H醒的审计跟踪流程图。图2、为BBS审计模块总体框图。图3、为图2发表文章审计数据采集模块数据流示意图。图4、为修改文章审计数据采集模块数据流示意图。图5、为删除文章审计数据采集模块数据流示意图。图6、为用户信息审计数据采集模块数据流示意图。图7、为版面信息审计数据流示意图。'图8、为审计员登录信息审计数据采集数据流示意图。图9、为审计员操作信息审计数据采集数据流示意图。图10、为异常检测部分函数调用流程图。图ll、为前台BBS与后台HMM的结合示意图。具体实施例方式BBS审计模块总体框图如图2所示。采集的审计数据包括发表文章审计数据、修改文章审计数据、删除文章审计数据、用户信息审计数据、版面信息审计数据和审计模块自身审计数据。其中审计模块自身数据由审计员登录信息审计数据和审计员操作信息审计数据组成。发表文章审计数据的采集流程如图3所示。审计数据来源于BBS下的版面文章索引文件和文章文件,版面索引文件包含多个fileheader结构,每个结构对应一篇文章,从索引文件中可以提取出相应的数据,从正文文件中提取文章正文,所有的数据经过处理保存在数据库的Publish_p表和审计文件Publish,txt中。修改文章审计数据的采集流程如图4所示。审计数据来源于BBS下的版面文章索引文件和文章文件,由调用本模块的函数给出的参数找到版面索引文件和文章文件,修改行为会改变这两个文件的内容,需要提取修改后的数据,提取出的数据经过处理保存在数据库的Modify—p表和审计文件Modify,txt中。另外要修改数据库中发表文章表Publish—p和审计文件Publish,txt中相应元组的修改标志,将原数加1。删除文章审计数据的采集流程如图5所示。审计数据来源于调用本模块的函数和用户信息审计表User,提取出的数据经过处理保存在数据库的Delete』表和审计文件Delete,txt中。另外要修改数据库中发表文章表Publish—p和审计文件Publish,txt中相应元组的删除标志,将原数置l。用户信息审计数据的采集流程如图6所示。审计数据来源于用户帐号基本信息文件PASSWDS和每个用户自己的路径下的帐号补充信息文件userdata,PASSEDS文件包含多个userec结构,每个用户有自己的userec结构,记录该用户的主要帐号信息,按照审计数据的要求提取出相关数据,保存在数据库表User和审计文件User,txt中。版面信息审计数据的采集流程如图7所示。审计数据来源于版面信息文件BOARDS中的boardheader结构,每个boardheader结构对应BBS下的一个版面,记录版面的相关信息,根据参数给出的版面名找到对应的boardheader结构,从中取得此版面相关信息,并从共享内存结构中取得版面总文章数,并计算增量。审计信息保存在数据库表Board和审计文件Board,txt中。审计模块自身审计数据包括审计员登陆信息审计数据和审计员操作信息审计数据。审计员登录信息审计数据的采集流程如图8所示。审计数据包括审计员用户名和登录时间,存入数据库表Audit—1和审计文件audit—log.txt。审计员操作信息审计数据的采集流程如图9所示。系统在审计员进行某项操作期间,记录审计员的用户ID,同时记录操作类别,针对文章状态和用户行为的査询操作还要记录审计进行的查询项,针对用户行为的查询还要记录审计员进行的统计项。取得这些信息后一方面要保存在数据库中,另一方面要存储在审计文件中。-本实施例中将发表文章、修改文章和删除文章这三个行为作为审计对象,审计策略采用,审计模块自行从这三个行为相关的信息中提取审计数据进行存储,存储的审计数据放在审计数据库中,审计对象以表格形式存储在审计数据库中。包括如下表格表1审计数据——发表文章表文章编号版面发帖人名称用户ID用户真实用户真实IPV4地址IPV6地址IP地址验证码发表时间文章主题Hash值文章正文Hash值表2审计数据-修改文章表文章版面修改人名称用户ID用户真实用户真实IPV4地址IPV6地址IP地址验证码修改时间文章主题Hash值文章正文Hash值表3审计数据——-删除文章表文章编号版面名称删除人用户用户真实IPV4地用户真实IPV6地ID址址IP地址验证码删除时间表4审计数据——-版面信息表版面编号版面名称操作用户用户真实IPV4地ID址用户真实IPV6地址IP地址验证码操作时间表5审计数据——审计员登录表编号审计员用户ID登录时间_表6审计数据——审计员査询操作表_审计员ID审计时间审计事件审计项开始时间审计项结束时间审计内容审计策略为(U,M,A,0,APB,C),其中U^ul,u2,u3,,un)用户集合,M是拥有审计权利的用户的集合,A={a,a2,a3,…,an)是操作集合,0={ol,o2,o3,…,on)是对象集合。APB是审计策略库,C表示约束条件,定义了以下关系U属于0用户也是一个对象M属于0审计员也是一个对象A—0每个操作对应一个对象审计策略规则库由多个审计策略项,审计策略规则库决定是否对一个事件进行审计。审计策略项<a,o,u,t,r,m〉a表示待审计操作,o表示操作的对象,u表示进行操作的用户,t表示审计的时间范围,r表示操作的结果,m表示制定审计策略的审计员。本实施例将用户的行为模型定义为<B,A,T,IP>。用户浏览版面习惯B=<bl,b2,b3,…,bn-〉。bi表示BBS系统下的版面,按照用户对各个版面的关注程度排序。例如某一个用户访问关注最多的是精华版,其次是讨论版,其他版面没有浏览过,该用户的浏览版面习惯的属性可以表示为B-〈精华版,讨论版〉。用户操作的习惯A=<al,a2,a3,,an>。ai表示该用户角色的权限决定的用户能够进行的操作,各种操作按比例由大到小排序。例如,普通用户的行为包括阅读(read),发帖(publish),修改(modify),删除(delete),聊天(chat),邮件(mail)。某一个用户的操作习惯为A=<read,publish,chat>。用户登录系统的时间习惯1=〈tl,t2,t3,…,tn>。将用户登录系统的时间泛化为上午(morning)[06:00,12:00],下午(afternoon)[12:00,18:00],晚间(evening)[18:00,24:00],夜间(night)[00:00,06:00]四个时间段。例如某一个用户大部分在晚间登录系统,偶尔在下午登录,该用户的登录时间属性就可以表示为T二〈evening,afternoon〉。用户登录系统的习惯IP地址IP=<ipl,ip2,iP3,…,ipn〉按照用户使用IP地址的频度由大到小排序。例如一个用户固定使用IP地址192.168.2.110上网,偶尔一次使用了202.110.12.25这个地址,这种行为习惯可以表示为IP=<192.168.2.110,202.110.12.25>。隐马尔科夫模型审计跟踪处理审计数据。由于H薩读入序列的值是整数,故根据操作的不同,用数字1-7分别代表read,publish,modify,delete,chat,email,other,将用户的行为对应输入给HMM的观察值序列,实现HMM与BBS的结合。接下来是产生观察值序列OberserveSequence.txt和待检测观察值序列NewObserveSequence.txt的实现,主要通过从数据库中读入用户某种操作的起始时间,计算出用户对该操作的持续时间,然后设定每隔30s记录一次用户的操作,就自动按照审计员欲检测的时间段产生出用户的历史信息ObserveSequence.txt以及用户待检测信息NewObserveSequence.txt。最终通过模型算法计算出的用户异常行为信息会被存入alertinfo表中,供前台调用返回结果时使用,异常检测模块后台数据库中存放记录用户历史操作信息的traininfo表和异常检测后返回的检测结果表alertinfo表,如下所示表7traininfo表<table>tableseeoriginaldocumentpage10</column></row><table>表8alertinfo表<table>tableseeoriginaldocumentpage10</column></row><table>具体流程如图10所示,步骤入下步骤l.调用隐马尔科夫初始化模型(InitHMM);步骤2.打开观察值序列文件ObserveSequence.txt;步骤3.设置窗口大小为25,步长为l;步骤4.判断读入数据是否结束,如果结束则执行步骤8,如果没有结束则执行步骤5;步骤5.从观察值序列文件OberveSequence.txt逐次读入窗口大小的观察值序列;步骤6.修改隐马尔科夫(ModifyHMM)训练模型;步骤7.修改后的模型参数写入Hram.txt文件中;步骤8.打开待检测观察值序列NewObserveSequence.txt文件;步骤9.用训练好的HMM调用异常检测函数(AbnormalDetect);步骤10.判断是否异常,如果异常则执行步骤ll,否则执行步骤12;步骤ll.终止用户异常行为;步骤12.将异常检测结果写入Alert,txt中。前台与后台界面的结合如图11所示。权利要求1、一种基于隐马尔科夫理论的BBS用户异常行为审计方法,其特征在于包括以下步骤步骤1从数据库读取审计数据,得到待检测行为的观察值序列;步骤2从隐马尔科夫模型数据库读取经过训练的模型参数;步骤3.利用Viterbi算法,通过观察值序列计算状态值序列,保存到数据库中;步骤4.调用前向、后向算法,计算观察值序列出现的概率,并与预先设定的阈值比较,低于阈值,进入步骤5,否则进入步骤6;步骤5.低于阈值作为异常行为,产生告警;步骤6.正常行为,隐马尔科夫模型参数修正,并存入隐马尔科夫模型的参数文件中。2、权利要求1所述的一种基于隐马尔科夫理论的BBS用户异常行为审计方法,其特征在于步骤l所述的观察值序列,定义为用户每种操作在某一段时间内进行的次数。3、权利要求1所述的一种基于隐马尔科夫理论的BBS用户异常行为审计方法,其特征在于步骤3所述的Viterbi算法采用取对数的方法将概率矩阵的值放大。4、权利要求1所述的一种基于隐马尔科夫理论的BBS用户异常行为审计方法,其特征在于步骤3所述的状态值序列是指用户的行为频度。5、权利要求1所述的一种基于隐马尔科夫理论的BBS用户异常行为审计方法,其特征在于步骤4所述的前向、后向算法,计算产生的结果作为Baum-Welch的调用参数,该参数采用比例因子法进行放大和还原。6、权利要求1所述的一种基于隐马尔科夫理论的BBS用户异常行为审计方法,其特征在于步骤4所述阈值采用均值方法求得,即通过多次出现该观测值的概率的均值求得,观察值概率的确定,具体方法如下A.随机初始化观察值概率矩阵5,与设定好的初始状态概率向量;r和状态转移概率矩阵^共同构成初始模型参数义;B.调用BaimrWelch算法,对初始参数进行极大似然估计,得到新的模型参数2;C.再将得到的2作为初始参数,作为异常行为检测时的参数;D.当对正常行为进行模型参数训练时,也以2为初始参数,并逐步修正为1。.7、权利要求1所述的一种基于隐马尔科夫理论的BBS用户异常行为审计方法,其特征在于步骤6所述的隐马尔科夫模型参数修正的具体方法如下1);r:初始状态概率向量"=(,其中7T,=;(^=5,)'N=4;2)状态转移概率矩阵4其中""=/^,+1=&^=&],1《z',ysiV,需要保存的变量有状态的起点/,状态的终点y'及a々.的值;'3)观察值概率矩阵5其中~("=到<^|《,1《ys7V,1《A^r,需要保存的变量有状态的起点_/,状态终点A:及^.("的值;根据Baum-Welch算法,由观察值序列O和选取的初始值模型A=(A丑,W,重估公式求得一组新参数^,^,则可以得到一个新的模型1=(^,万,^),可以证明,;Kc>^)>MO|;i),由重估公式得到的2比;i在表现观察值序列o要好,则重复这个过程,逐步改进模型的参数,直到p(OI》收敛,也就是不再明显增大为止,此时的5就是所求的模型。全文摘要一种基于隐马尔科夫理论的BBS用户异常行为审计方法,属于计算机和信息安全
技术领域
,方法如下从数据库读取审计数据,得到待检测行为观察值序列;从隐马尔科夫模型数据库读取经过训练的模型参数;利用Viterbi算法,计算状态值序列;调用前向、后向算法,计算观察值序列概率,与预先设定的阈值比较,低于阈值,产生告警,否则属于正常行为,隐马尔科夫模型参数修正,存入隐马尔科夫模型的参数文件。加入审计跟踪后的BBS有助于帮助系统管理员确保系统及资源免遭非法授权用户的侵害,同时还能在对数据进行恢复时提供帮助。审计跟踪可以实现安全相关目标,包括个人职能、事件重建、入侵检测和故障分析,大大提高了系统的安全性。文档编号G06F17/30GK101615186SQ20091001277公开日2009年12月30日申请日期2009年7月28日优先权日2009年7月28日发明者英姜,张登科,刚李,李福亮,王兴伟,明董,静陈申请人:东北大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1