审计算法

审计算法

毫无疑问,没有任何一种加密软件可以宣称自己是绝对安全的,防者处处小心,攻者却也无孔不入。即使加密软件多管齐下,让系统始终处于多重保护之下,可是泄密者却是绝对存在的,泄密的因素很多,泄密的机率也不可小觑。泄密者的行为是不露痕迹的,用户可能在事发之前完全没有防备,从而遭受重大损失。那么事后肯定要追究责任,是由谁(WHO)泄了密,这就要求我们的加密软件提供一个可行的解决方案。审计算法便由此诞生了。

一、     算法前提

加密软件的所有模块都已完成,预期功能也已实现,现在就只剩下一个责任问题了。关于内部资料的泄密,加密软件必须为其提供解决方案,事后如何追究责任,谁该对此负责,审计算法就在这样的前提下被提出,要其完成应该完成的功能。

二、算法思想

1、          泄密的途径可能不止一种,审计的方法也就不可能是单一的。但是,由我们加密软件的实际情况来看,我们重点保护的是文档,这些文档也是泄密者和偷窃者的终极目标。所以,我们只要能完全掌握任何一个FN的相关操作,捕获到任何操作此FN的客户端,并给出泄密级别,此算法就算成功了。

2、          客户端想要进行任何的有效操作,都必须先插入USB-Key,让CA对其进行身份验证。如果是合法用户就能成功登录,否则CA检测到客户端登录时的错误信息,那么此次的登录行为也就宣告失败,同时CA要记录登录失败的用户信息,并进行一个计数。当同一个用户登录失败的次数达到5次,CA就会自动报警,并锁定此USB-Key用户。

3、          客户端在成功登录后,CA要分配一把私有DES给客户端,客户端的所有文件都由这把DES进行加解密,其它用户因为没有此私有DES,是没有办法加解密的。计算机将自动记录下客户端的加解密操作。

4、          公共DES是由程序生成,全网唯一,所有的可公开信息(比如通知、公告、普通文档)都是由此DES来加解密的。这些可公开信息都是放在公共的共享目录中,所有客户端都能共享这把DES来进行加解密的操作。此操作同样被记录下来。

5、          授权方在授权行为中,充当了拍板人与负责人的角色,那么关于授权方、授权文件与授权DES就要记录在案。

6、          客户端打印了文件,就意味着内部信息有可能被带出去,也就是说打印行为同样要被记录。

7、          除了以上几种行为是可能的泄密途径外,内网与外网的通信也是泄密的一大可能,只要此行为发生,我们就要记录下来。

8、          从我们这个审计算法出发,我们要对登录、加解密、授权、打印以及内网与外网的通信这五种操作进行跟踪审计。

9、          记录将以日期作为分类保存的依据,生成日审计文件,月审计文件,季度审计文件以及年度审计文件。每到一个时期,审计文件就该进行一次存储清理,并备份以前的数据,然后清空,便于下一次的存储。但是,不断膨胀的数据放在后台数据库显然是不合适的,审计要不要有一个专用服务器呢?我想,不同的用户可能会有不同的考虑。总之,不管数据放在哪里,审计的步骤是不会变的。

10、     有了审计数据后,我们要对这些数据进行聚类和关联。然后对每个客户端的所有相关操作进行一个统计,并给出客户端的泄密级别。

11、     审计的结果将以审计报表的格式显示出来,但是结果肯定不是一条记录,而是一个记录集。这样的数据只是作为审计的参考,泄密级别也只是一个估计的值,误差是绝对存在的。所以,审计报表给出的数据,不一定是百分之百正确的,审计人员根据这些数据进行判断,达到一个有智能化分析的效果。

三、符号说明

Num:表示员工编号

InputNum:表示客户端在登录时输入的员工编号

FN:表示文件名

DDES:表示用于解密的DES

EDES:表示用于加密的DES

K:表示授权DES

UnEnTSum:表示失败登录的次数。0表示一次性登录成功,非0表示登录失败以及失败次数。

Sli:表示文件打印的份数

Time:表示某个操作或行为发生的时间

Normal:表示客户端行为发生时间的合法性。如果行为发生时的Time是客户端的正常工作时间,那么Normal的值就为正常时间,否则值为非正常时间。
ComTime:表示客户端与外网通信的长达时间

四、算法说明

(一)审计数据的记录格式

为了更加快速地进行审计数据的记载和备份归档,我们的审计数据采用数据库文件的方式来保存。一旦客户端发生登录、加解密、授权和打印这四种操作,相关记录便经由计算机自动产生了。审计数据的内容要包括人,DES,文件,时间等信息。为了防止客户端修改本机的系统时间,我们在审计算法中用到的Time都将调用服务器的系统时间。

在作审计之前必须要先建立一个审计数据库,审计数据库里有5张表,分别为登录表、加解密表、授权表、打印表、外网通信表。

登录表的项有:InputNum,Num,UnEnTSum,Time,Normal

加解密表的项有:Num,FN,DDES, EDES,Time, Normal

授权表的项有:Num,FN,K,Time, Normal

打印表的项有:Num,FN,DDES,Sli,Time,Normal

外网通信表:Num,ComTime,Time,Normal

(二)审计跟踪

1、          跟踪客户端登录信息 

客户端一旦插入USB-Key(假设持有者为A)后,就会弹出登录界面,在客户端输入用户名和密码后,CA便会对其进行验证。

(1)A的登录信息正确,也就是说客户端是合法用户,CA就会产生一把私有DES并将其分配给A。

计算机自动记录下此次的登录行为。记录内容为:InputNumA,NumA,UnEnTSum,Time,Normal

UnEnTSum:0 

Time:yy-mm-dd hh:mm:ss (以下凡涉及到Time都采用此格式)。

如果A是在正常工作时间内一次性成功登录的,也就是说Normal的值为正常时间,那么此行为就不用被记录下来。

(2)A的登录信息错误,也就是说客户端是非法用户,CA会对这一个用户的登录行为进行一次累计计数,记录内容为:InputNumA,NumA,UnEnTSum,Time,Normal

UnEnTSum:表示登录失败的次数。

如果在第五次登录时仍然失败了,那么

UnEnTSum:登录失败五次,USB-Key被锁定。

当登录次数累计到5,可仍就失败了,CA就会将A锁定,A也就无法登录。下次,用户如果要用此USB-Key,必须先解除锁定,否则此USB-Key就永远无法被激活。并且在一年之内都不将此USB-Key激活的话,它就会被彻底注销。

2、跟踪客户端加解密文件信息(假设有某一客户端为A)

当用户在进行任何文件的加解密时,A就自动产生相应的记录(NumA,FN,DDES,EDES,Time,Normal)发送给CA。

如果客户端对自己的文件加解密,那么DDES与EDES相同。如果客户端想把文件上传到公共共享目录,会先用自己的私有DDES解密,再用公共EDES加密,DDES与EDES肯定不同。如果客户端看的是授权文件,不仅DDES与EDES相同,并且还与授权表里的K是相同的。

3、跟踪授权信息

假设申请方为A,被申请方为B,授权方为R。

在我们的授权算法中,A想要和B共享访问,必须得到他们的同一祖先结点R的同意,并由R来进行一个授权操作。这样做是为了达到一个权限控制的目的,也是为了事后如果相关文档泄密,可以找到一个负责人。

R在确认A和B的身份之后,如果允许他们共享访问的话,就会进行授权操作。这时,R的授权行为要记录下来。记录内容为:NumR,FN,K,Time,Normal

如果想获得更多关于授权申请的信息,可查看后台数据库中的授权申请表和授权注销表。这两张表对整个授权申请行为都有比较详细的记录。

4、打印审计跟踪

打印端口应被监控,一旦客户端打印文件,此操作就被记录。记录内容:Num,FN,DDES,Sli,Time,Normal

Sli:Num打印FN的份数。

5、外网审计跟踪

客户端一般都在网内进行通信,但是客户端在某些情况下可能需要与外网交互。我们的加密软件主要是针对内网,但与外网进行通信,也会构成一个安全上的威胁,是内部人员外泄机密的一个途径。因此,客户端只要与外网交互,就必须被审计跟踪。关于这方面的记录可从网管处获得,并由审计人员将相关信息录入外网通信表中,录入格式为:Num,ComTime,Time,Normal

(三)审计数据处理。

审计数据可能会是海量级的,如何更快更准确地找出有用的审计数据呢, CA应按照不同的时间来定期整理和备份。

(1)日审计文件

24小时为制,把00:00:00作为每一天的结束时间,凡是这之后所生成的记录都是第二天的。CA将一天之内的所有记录按其Time生成一个文件,并命名为日审计文件(例如:日审计文件2005-4-27)。
(2)月审计文件

显然,CA在一个月之中会生成很多这样内容相似的记录,那么到了一个月的最后一天,CA按照Time把日审计文件进行合并后,就产生了我们的月审计文件。命名方式:月审计文件2005-4-30。

月审计文件一旦生成,此月中的所有日审计文件便可被删除。

(3)季度审计文件

原理同上,不再赘述。但是生成季度审计文件之后,月审计文件要做好备份工作。

(4)年度审计文件

  同上。不过,因为这个时间很长,所以要注意审计文件本身的保密工作和备份工作。

(五)审计数据的智能分析

到此为止,审计数据的采集与过滤就算完成了。现在要做的就是我们最关键的数据分析了,如何才能得到泄密的一个可能范围,这将是审计算法的核心。

在数据的分析与处理当中,我们将要引入两种分析方法--聚类与关联。

在下面五种情况中,我们会有正常时间与非正常时间的区别。这里说明一下,正常时间是指员工正常上班的时间,非正常时间是指员工的非上班时间。因为,在员工的非正常时间里所做的任何操作,他的泄密可能性都比在正常时间时要大。

(1)聚类与报警

1.登录类

if(正常时间){

if (UnEnTSum==5) {  向CA报警,USB-Key被锁定,并将记录放入登录表  }

if (1<=UnEnTSum<5){  将记录放入登录表  }

}

else {记录放入登录表,向CA报警,有人在非正常工作时间进行登录操作} 

记录为:(InputNum,Num,UnEnTSum, Time,Normal)

2.加解密类

if(正常时间){  记录放入加解密表  }

else {记录放入加解密表,并向CA报警,有人在非正常工作时间进行加解密操作}

记录为:(Num,FN,DDES,EDES, Time,Normal) 

3、授权类

if(正常时间){记录放入授权表}

else {记录放入授权表,并向CA报警,有人在非正常时间对某文件进行授权操作。}

记录为:(Num,FN,K,Time,Normal)

4、打印类

if(正常时间){记录放入打印表}

else {记录放入打印表,并向CA报警,某人在非正常时间对某文件进行打印操作}

记录为:(Num,FN,DDES,Time,Normal)

5、外网通信类

if (正常时间) { 记录放入外网通信表 }

else { 记录放入外网通信表,并向CA报警,某人在非正常时间与外网进行通信}

记录为:(Num,ComTime,Time ,Normal)

(2)关联

仅仅有了聚类是不够的,因为数据之间没有任何的联系,每一个类都是单独的。我们要想办法在它们之间牵线搭桥,用一些规则把数据关联起来,在内部形成一个关系网。我们把这些规则称为关联规则。

接下来的事就是如何关联,怎么来定义规则。

首先需要用户的介入,如果有机密数据被泄密,审计人员手动输入泄密数据的FN与Time,剩下的交给计算机来处理。    

我们在审计时要输入审计参数FN和Time,那么这两个字段就定义为关联字段,凡是数据中有这两个字段且字段值相同的记录便为关联记录。

先根据这两个参数在5张表里找出对应的记录,按Num进行关联并形成用户文档,即一个用户一个审计文档。在各个文档中将4张表里的记录进行分类排列,也就是说来自一个表里的记录是相邻的,都放到一起,并按时间进行排序。

接下来,要对每个用户的相同操作行为以及报警进行计数,并对各个文档进行泄密级别的统计,也即对每个用户的泄密级别进行统计。

泄密级别越高,表明此人的泄密嫌疑越大。最大级别为10级,最小级别为1。

先统计加解密、打印、授权、登录、外网通信这5种操作行为在正常时间与非正常时间的发生次数,将次数的累计和分别表示为R,P,A,L,C。

 

 

 

InputNum,Num,UnEnTSum, Time,Normal

Num,FN,DDES,EDES, Time,Normal

Num,FN,K,Time,Normal

Num,FN,DDES,Sli,Time,Normal

Num,ComTime,Time,Normal

 

 

Num

X=0

for(i=0,R>0,R--)        //加解密统计

{

if(正常时间)

{

if(DDES==EDES!=K){客户端的泄密级别设为X=1级}

if (DDES是自己的私有DES & EDES是公共DES ) {泄密级别设为X=2级}

if ((DDES==EDES==K){ 泄密级别设为X=3级}

}

else {用户的泄密级别设为X=4级}

}  //始终取一个最大级别的值X

 

Y=X

for(i=0,P>0,P--) //打印统计

{

if(X<4){  

{  

if(正常时间){用户的泄密级别设为Y=X+1级}

else {用户的泄密级别设为Y=X+2级}

}

else {用户的泄密级别设为Y=5级}

}  // Y始终取一个最大值

 

Z=Y

for(i=0,A>0,A--) //授权统计

{

if(Y<5)    

{

if(正常时间){用户的泄密级别设为Z=Y+2级}

else {用户的泄密级别设为Z=Y+3级}

}

else {用户泄密级别设为Z=6级}

} // Z始终取一个最大值

 

U=Z

for(i=0,L>0,L--) //登录统计

{

if(正常时间&( UnEnTSum!=0))

{用户的泄密级别设为U=7级}

if(非正常时间){

if(登录成功&(UnEnTSum==0)) {用户的泄密级别设为U=Z+2级}

else U=Z+3

}

} // U始终取一个最大值

 

如果客户端在被审计的时间段内与外网进行过通信,那么由所有相关操作最终推出的泄密值还要加上1,即U=U+1。至此,客户端的泄密级别就算统计完了。

 

每个客户端在某个时间段对FN进行的所有操作都被统计出来了,客户端与外网通信的时间以及被报警次数也已被计数。最后,把它们以审计报表的形式显示出来。

 

这里要说明一下,对于某一个客户端来说,它的授权申请方是如何得来的。假如有NumA,它在Time内有过授权行为,那么在授权表中就会有员工编号为NumA的记录,可能还不止一条。而要看授权文件的那一方,也就是授权申请方,对授权文件就会有一个加解密操作,那么在加解密表中肯定就会有记录,当在FN一样的前提下,有记录的DDES、EDES与K相同时,记录的员工编号(客户端)就是NumA的授权申请方。

 

员工编号

文件名

私有DES加解密次数

公共DES加解密次数

授权次 数

授权申请方

打印份数

登录失败次数

与外网通信时间

报警次数

泄密级别

时间

正常 时间

非正常时间

正常 时间

非正常时间

正常 时间

非正常时间

正常 时间

非正常时间

正常 时间

非正常时间

正常 时间

非正常时间

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值