- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于朴素贝叶斯分类算法数据库入侵检测系统
基于朴素贝叶斯分类算法数据库入侵检测系统
摘 要:在网络信息安全体系中,数据库的安全保护最为关键,入侵检测系统(IDS)是目前较为理想的数据库安全工具。论文提出了一种数据库入侵检测方法,包含一种可反映同一个数据库事务中SQL语句的关联性的数据库日志数据结构,以及采用朴素贝叶斯分类算法(NBC)的机器学习算法与入侵检测算法。实验证明,论文提出的检测系统具备较高的准确率。
关键词:入侵检测;朴素贝叶斯分类算法;数据库
1 引言
数据库系统的安全保护机制有诸如用户认证、事务处理加密、数据水印与入侵检测等。用户认证可阻止未授权用户连接数据库。事务处理加密可防止攻击者破译数据库查询语句。入侵检测是在其他防护措施被绕过的情况下可尽早识别恶意入侵行为的技术。
数据库入侵检测有两种模型,异常检测与滥用检测。异常检测模型基于大量正常用户行为的数据档案,通过将用户行为比对正常的用户行为库,如果有较明显的差异,则将其定义为入侵行为。异常检测实现的难点在于,建立完整的正常用户行为库有一定难度,将正常行为定义得太严格易于导致误判,太宽松又将漏掉攻击行为。滥用检测则是比对用户行为与典型攻击行为库,滥用检测的不足在于仅能用于检测已知的攻击行为[1]。
本文在IDS系统的框架下提出了一种更有效率,适用于RBAC(基于角色的权限访问控制)数据库的异常检测系统。本文提出的系统基于数据库事务处理建立用户行为库,可以反映出同一事务处理中SQL语句之间的关系。
2 系统设计
本文提出一个为每个数据库角色建立档案,基于角色建立用户行为库,发现不符合该角色正常行为的即判断为入侵行为的检测方法。因为基于角色定义用户行为库,所以其数据规模将远小于基于用户定义的行为库,因此本系统将有较高的可用性。
本文提出的系统实现难点主要在于,如何构建一个可以反映正常用户行为的用户行为库,如何利用这个用户行为库进行基于角色的行为检测。第二个问题是,如何通过数据库日志文件构建用户行为库。
2.1 数据库日志文件处理
为了定义用户行为,本系统使用数据库日志做为分析用户行为的原始数据。在数据库日志文件中,每一个SQL查询语句都是一条独立的记录,这些记录必需被组合起来形成系统学习与分析所需的数据。本系统提出的方法是,将同一个数据库事务(Transaction)中的SQL语句组织在一起成了一条记录,代表基于特定角色的该用户的行为。
为了构建用户行为数据,系统必须将数据库日志数据转化为可以被分析的格式。因此,本文提出一种六个字段的数据结构R(CMD、REL、ATT、REL2、ATT2、REST),其中CMD代表数据库操纵语句,REL代表操纵语句涉及的字段,ATT代表操纵语句中涉及的属性,REL2代表SQL语句选取的字段,ATT2代表SQL语句选取的属性,REST代表SQL语句中可能存在的剩余部分。图1说明了这种数据结构和数据库日志文件之间的对应关系。
图2所示的数据库模式中包含两个关系集,G1 = {A1;B1; C1; D1} 和 G2 = {A2; B2; C2; D2}。用户数据结构的完整表达式为(CMD, REL[ ], ATT [ ][ ], REL2[ ], ATT2[ ][ ], REST[ ])。SCMD代表SQL语句中的第一个命令,REL[ ]是一个二进制数组,如果SQL查询语句对应对该关系,取值为1,否则为0。ATT[ ][ ]是二维数组,ATT[i][j]取值为1说明SQL语句对应了i字段的j属性,否则为0。REL2[ ]是一个二进制数组,果SQL查询语句对应对该关系,取值为1,否则为0。ATT2[ ][ ]是一个二进制数组,ATT2[i][j] 取值为1说明SQL语句对应了i字段的j属性,否则为0。REST[ ]等于剩余SQL语句的长度,无内容则值为NULL。
本文提出的这种数据结构可以将不同的事务处理SQL语句转化为同一格式的数据,便于分析和统计,使得分类算法可以更准确的识别异常行为。
2.2 分类算法
本文提出一种基于朴素贝叶斯分类的算法,贝叶斯算法采用的基于特征属性条件概率的估算使得其学习模式和工作模式所需的运算量都很小。
在学习模式下,首先必须提供一定量的数据库日志样本数据,并以上文提出的数据节构对日志文件进行预处理,将其输出为可以被算法分析的数据结构。
朴素贝叶斯分类算法的工作流程可以由图2表示。
根据朴素贝叶斯分类算法,将一个数据库事务处理实例定义为x,将分类器定义为f(x),f(x)从有限的数据库V中取值,训练样本数据为Dt,一个实例包含若干个属性(a1,…,an),目标是预测出x所属的类别[2]。
本文提出的算法为,计算出给定实例可能性最高的所
文档评论(0)