审计算法

审计算法

毫无疑问,没有任何一种加密软件可以宣称自己是绝对安全的,防者处处小心,攻者却也无孔不入。即使加密软件多管齐下,让系统始终处于多重保护之下,可是泄密者却是绝对存在的,泄密的因素很多,泄密的机率也不可小觑。泄密者的行为是不露痕迹的,用户可能在事发之前完全没有防备,从而遭受重大损失。那么事后肯定要追究责任,是由谁(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加解密次数

授权次 数

授权申请方

打印份数

登录失败次数

与外网通信时间

报警次数

泄密级别

时间

正常 时间

非正常时间

正常 时间

非正常时间

正常 时间

非正常时间

正常 时间

非正常时间

正常 时间

非正常时间

正常 时间

非正常时间

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值