黑客入侵Web服务器后,通常会通过系统漏洞进一步提权,获得ROOT权限。我们可以通过搜集LINUX服务器的bash操作日志,通过训练识别出特定用户的操作习惯,然后进一步识别出异常操作的行为。
1.数据搜集
训练集包括50个用户的操作日志,每个日志包括15000个操作命令,其中5000条都是正常操作,后面的10000条日志中随机包含有异常操作,每100条操作作为一个操作序列,保存在列表里面,同时进行标注,每个操作序列只要有1条操作异常就认为这个操作序列异常。
with open(filename) as f:
i=0
x=[]
for line in f:
line = line.strip('\n')
x.append(line)
dist.append(line)
i+=1
if i==100:
cmd_list.append(x)
x=[]
i=0
统计最频繁使用的前50个命令和最不频繁的前50个命令:
fdist = FreqDist(dist).key()
dist_max = set(fdist[0:50])
dist_min = set(fdist[-50:])
2.特征化
(1)去重操作命令个数。以100个命令为统计单元,作为一个操作序列,去重后的操作命令个数作为特征。
(2)最频繁使用的前10个命令,以及