数据库审计方法及设备的制造方法_4

文档序号:9417507阅读:来源:国知局
以及所述中间件与服务器之间的数据流数据,并对所述数据流数据和业务流数据进行预处理,保留与匹配相关的信息。在获取到业务流数据和数据流数据时,通过预处理的手段仅保留与后续的匹配处理相关的信息,可以减少后续处理时的计算量,降低计算负载,提高处理效率。仍以前述场景为例,对于业务流数据中的URL,可以分离相关的参数,将URL处理为仅包含文档路径的格式,如前述提及的URL即可以处理为:/login.aspx。而对于数据流数据中的SQL语句进行的预处理为将命名绑定参数格式或者非绑定参数格式的SQL语句处理为无序绑定参数格式。其中,所述非绑定参数格式的SQL语句中参数采用具体值表示,例如前述提及的 SQLi吾句:update t_sess1n set username = ^superadmin? , status =‘active’ where userid = 1234即为非绑定参数格式,所述命名绑定参数格式的SQL语句中参数米用变量名表不,例如 update t_sess1n set username = ‘superadmin,,status=‘active’where userid = id,其中id即为变量名。在将上述命名绑定参数格式或者非绑定参数格式的SQL语句处理为无序绑定参数格式时,分离其相关的参数,并将参数的部分采用问号替代,最终处理得到的无序绑定参数格式的SQL语句为:update t_sess1n setusername = ?,status = ? where userid = ? 0
[0086]进一步地,所述匹配装置520具体用于:根据所述业务流数据与数据流数据的产生时间以及所包含的参数对所述业务流数据与所述数据流数据进行匹配。在实际应用中,数据流数据与业务流数据并非孤立的数据,两者之间存在一定的关联。由于中间件一般会在接收到业务流数据之后,随即生成数据流数据,因此一般情况下两者的产生时间比较接近。
[0087]具体地,所述匹配装置520进行匹配的方式如下:根据所述业务流数据的产生时间和所述数据流数据的产生时间确定匹配的时间加权值,并根据所述业务流数据所包含的参数和所述数据流数据的所包含的参数确定参数加权值;以及根据所述时间加权值和参数加权值对所述业务流数据与所述数据流数据进行匹配。
[0088]在实际应用中,可以用URL表示业务流数据,SQL语句表示数据流数据。例如,某一 SQL语句sqla的产生时间为09:00:01:000,若此时有两条URL,分别为urla和urlb,其中urla的产生时间为09:00:00:955,而urlb的产生时间为09:00:00:020,由此可知urla的产生时间与sqla的产生时间更为接近。根据产生时间的接近程度,可以对urla和urlb分别进行打分,获取时间加权值,作为后续匹配是否成功的依据。其中,对于时间加权值的具体打分方式,可以根据具体应用场景来设定,例如根据时间差,在某一设定的时间差内时间加权值最大,在此基础上时间差越大,时间加权值越小。对于上述的urla和urlb,显然urla比urlb的时间加权值更大。
[0089]在进行参数加权时,通过比较URL和SQL语句中是否包含同样的参数来确定参数加权值。仍以前述URL和SQL语句为例,sqla:select*from table where name='aaa,urla 为:http://192.168.0.1:80/find, aspx ? param = aaa,而 urlb 为:http://192.168.0.1:80/login, aspx ? username = superadmin&cs = utf-8&br = ie。对于urla,其存在参数“aaa”,sqla中也存在同样的参数“aaa”,而urlb中没有参数与所述sqla中的参数相同。因此,urla的参数加权值比urlb的更大。若在数据获取装置510中已经完成了业务流数据和数据流数据的预处理,通过分离的参数即可快速确定参数加权值。
[0090]在根据所述时间加权值和参数加权值对所有的URL与SQL语句进行匹配时,可以按照时间加权值和参数加权值进行匹配过滤,最终保留I个(匹配成功)或者O个(匹配失败)URL。在上述场景下,由于urla的时间加权值和参数加权值均大于urlb,因此,相对于urlb,urla更有可能是与该SQL语句匹配的URL。在匹配过滤时,可以针对时间加权值和/或参数加权值设定最低的阈值,例如,若urla的时间加权值和/或参数加权值未达到阈值,则可以判定为匹配失败,否则判定为匹配成功,完成sqla与urla的匹配。
[0091]此外,若对于urla的时间加权值大于urlb,而urla的参数加权值小于urlb的情形,则需要进一步结合时间加权值和参数加权值的权重来确定。在本实施例中,优先考虑时间加权值,参数加权值次之,即在确定匹配关系时,时间加权值的权重大于参数加权值。仍以前述URL和SQL语句为例,若urla的时间加权值为10、参数加权值为5,urlb的时间加权值为6、参数加权值为10,具体的匹配过滤规则可以采用如下所述的任意一种。例如,设定时间加权值的权重值为3,参数加权值的权重值为2,在考虑权重的情况下考虑两项加权值的总分值,此时urla的总分值为10 X 3+5 X 2 = 40,而urla的总分值为6 X 3+10 X 2 = 38,再根据urla的时间加权值和/或参数加权值是否达到阈值,来最终确定是否匹配成功。再如,优先考虑时间加权值,当时间加权值相同时再考虑参数加权值,如uric、urld、urle三个URL,其中uric的时间加权值为10、参数加权值为5,urld的时间加权值为10、参数加权值为8,urle的时间加权值为6、参数加权值为10,由于uric和urld的时间加权值均为10,且大于urle,此时仅需要再将uric和urld的参数加权值进行比较,由于urld的参数加权值较大,再根据urld的时间加权值和/或参数加权值是否达到阈值,来最终确定是否匹配成功即可。在此,本领域技术人员应当理解,上述匹配过滤规则仅为举例,其他现有的或今后可能出现的匹配过滤规则如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
[0092]进一步地,本申请实施例还提供了一种优选的数据库审计设备,如图6所示,包括数据获取装置510、匹配装置520’、映射装置530和查询装置540。具体地,所述获取装置510用于获取浏览器端与中间件之间的业务流数据以及所述中间件与服务器之间的数据流数据,其中所述业务流数据包含用户信息,所述数据流数据包含操作信息。所述查询装置540用于在对所述数据流数据与所述业务流数据进行匹配之前,在规则库中查找所述数据流数据包含的操作信息,其中所述规则库包含已经建立的操作信息与用户信息之间的映射关系;当在规则库查找到所述操作信息时,根据所述映射关系确定所述数据流数据包含的操作信息所对应的用户信息。所述匹配装置520’用于当未在规则库查找到所述操作信息时,对所述数据流数据与所述业务流数据进行匹配。所述映射装置530用于在匹配成功时,确定所述数据流数据包含的操作信息与所述业务流数据包含的用户信息的映射关系。
[0093]在此,所述规则库中包含的已经建立的操作信息与用户信息之间的映射关系,可以是在特定时间或者特定环境下进行匹配学习的方式获取的映射关系,也可以是在实际审计过程中对所述数据流数据与所述业务流数据进行匹配所确定的操作信息与用户信息之间的映射关系。通过将已经完成匹配的映射关系添加至规则库,在后续获取到数据流数据后,根据规则库中已有的映射关系,可以由操作信息直接匹配到对应的用户信息,从而提高匹配的速度,提升数据库审计的效率。
[0094]一般情况下,由于在实际审计过程中同时产生的业务流数据和数据流数据的较多,其匹配的准确度相对低于在特定时间或者特定环境下进行匹配学习的方式获取的映射关系。因此,作为一种优选的实施方式,在采用该设备进行数据库审计时,首先选择一个适合的时间或者环境进行学习,在该时间或者环境下仅有某一特定用户使用该数据库,从而能够准确地确定该用户的用户信息与其对应的特定操作信息之间的映射关系。
[0095]同样地,数据获取装置510也可以对获取到的所述数据流数据和业务流数据进行预处理,保留与匹配相关的信息,从而提高后续处理的效率。在所述规则库中,每条映射关系可以采用如下形式保存:URL、以及该URL对应的浏览器端IP、登录用户名和SQL语句。其中、URL和SQL语句均可以采用预处理后的格式。例如,查询装置540采用预处理后的SQL语句 update t_sess1n set username = ?,status = ? where userid = ?在规则库中进行查找,若规则库中已经存在该条SQL语句,则可以查找到对应的URL以及对应的用户信息。由此确定S
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1