

以下是基于关联分析方法进行日志分析的例子:
通过典型的基于关联分析的Apriori 算法进行日志分析得出的是特征模式,例如通过
对用户历史数据的分析,发现如下关联规则:
模式1: username=A, timestamp=am, hostip = 192.168.1.119, userip =192.168. 1.201[0.98, 0.60]
模式2: username =A, command=vi, param=.c[0.45, 0.05]模式1 表示用户A 通常在每天的上午登录,登录的主机是192.168. 1.1 19 ,登录时的IP 地址是192.168. 1.201 。模式2 表示用户A 经常执行Vi 命令,执行命令时所使用的参数通常是.c 为后缀名的文件。模式后面括号内的分别为置信度和支持度。模式1 的置信度为98% ,支持度为60%; 模式2 的置信度为45% ,支持度为5% 。
如果在Apriori 算法的基础上加上一个时间约束则是时间序列分析算法,它用于分析不同审计记录之间的相关性。它的形式为X, Y• Z[C, S, w] , X, Y, Z 为项集,w为时间约束。含义:若X,Y 发生,则在w 秒内,Z也发生。
S=Support(XYZ)是规则的支持度z 满足规则的样本百分比。
C=Support(XYZ)/Support(XY)是置信度:当X , Y 发生时Z 发生的条件概率。
除了时间序列分析以外还有系统调用序列,与时间序列分析不同的是它只有一个支持度,没有时间窗口的限制,也没有置信度。
例如,通过对用户A 所执行的命令序列进行分析,发现如下序列模式:
模式3: command=vi. param=.c• command=gcc, p缸'am=-g-o→command=gdb(0.4)
模式3 表示用户经常执行的命令序列是:首先用vi 编辑c 程序,然后用gcc 编译再使用gdb 进行程序的调试。
系统调用序列模式的关键是模式的支持度。对于序列模式p ,假设其长度为1,则支持度计算公式为Support(p)=Np/Nt , 其中Np代表序列模式P 在审计记录集中出现的次数,Nt代表审计记录集所包含的所有长度为1 的序列数。上述序列模式的支持度为40% 。
依据以上挖掘出的关联规则和序列模式,可以判断出用户A 应该是一个C 程序员,其上作时间是每天的上午,并且通常从E 为192.168. 1.201 的客户机登录到IP 为192.168. 1.1 19 的主机上进行编程操作。如果在实际的检测过程中,发现某一天该用户突然在晚间登录,或者从一个陌生的E 地址登录到系统主机,或者在登录过程中执行了大量与编程无关的操作,访问主机的敏感口录和文件,则可以推断出该用户出现了某种异常。这种异常可能是该用户正在试图超越其正常的操作权限,也可能是有人冒用该用户的账号进行恶意的操作。虽然异常并不一定意味着攻击行为,但至少应该引起安全管理员的密切注意。
对DDoS 攻击的关联分析:
输入z 连接记录的ID 号,即DDoS RECORD 里的DNO 。
输出:连接记录闰的关联关系。
对Finger 攻击的关联分析:
输入:连接记录里各个特征对应的数字标号。
输出:连接记录内各个特征属性的关联关系。
输入形式123|145|234|1234|23 (假设1, 2, 3, 4, 5 代表审计记录号或者特征号)。
输出形式4←5 00.0%, 100.0%) 00.0%是置信度, 100%是支持度)
4• 5 (10.0%, 100.0%) 00.0%是置信度, 100%是支持度)
4• 5(3 0.0%, 100.0%) 含义是:当数字5 所代表的特征出现时,数字4 所代表的
特征出现的概率是100% ,这种事件占整个事件的30.0% 。
| 各省软考办 | ||||||||||