一、检测Web异常操作
1.数据搜集:一样
2.特征化
使用词集模型,统计全部操作命令,去重后形成字典或词汇表:
with open(filename) as f:
for line in f:
line=line.strip('\n')
dist.append(line)
fdist = FreqDist(dist).keys()
以此词汇表作为向量空间,将每个命令序列转换成对应的向量:
def get_user_cmd_feature_new(user_cmd_list,dist):
user_cmd_feature=[]
for cmd_list in user_cmd_list:
v = [0]*len(dist)
for i in range(0, len(dist)):
if dist[i] in cmd_list:
v[i] +=1
user_cmd_feature.append(v)
return user_cmd_feature
3.训练模型
clf = GaussianNB().fit(x_train,y_train)
4.效果验证
二、检测WebShell(一)
将互联网上搜集到的Webshell作为黑样本,当前最新的wordpress原码作为白样本。将一个PHP文件作为字符串处理,以基于单词的2-gram切割ÿ