Rootkit是一种特殊的恶意软件,它的功能是在安装目标上隐藏自身以及指定的文件,进程和网络链接等信息。
1.数据搜集
KDD 99 TCP连接内容特征包括hot ,num_faild_logins ,logged_in ,num_compromised ,root_shell ,su_attempted ,num_root ,num_file_creations ,num_shells ,num_access_files ,num_outbound_cmds ,is_hot_login ,is_guest_login
加载KDD99数据集中的数据:
def load_kdd99(filename):
x=[]
with open(filename) asf:
for line in f:
line=line.strip('\n')
line=line.split(',')
x.append(line)
return x
筛选标记为Rootkit和normal且是telnet协议的数据:
if (x1[41] in ['rootkit.','normal.']) and (x1[2]=='telnet'):
if x1[41]=='rootkit.':
y.append(1)
else:
y.append(0)
2.特征化:挑选Rootkit有关的特征作为样本特征
x1 = x1[9:21]
v.append(x1)
for x1 in v:
v1 =[]
for x2 in x1:
v1.append(float(x2))
w.append(v1)
3.训练样本
clf = KNeighborsClassifier(n_neighbors = 3)
4.效果验证
print cross_validation.cross_val_score(clf, x, y, n_jobs=-1, cv=10)