Rootkit是啥?就是后门工具箱,它的功能是在肉鸡上隐藏自身以及指定的文件、进程和网络链接等信息。

1.数据搜集和数据清洗

KDD99样本数据,通过KNN识别基于Telnet连接的Rootkit行为。Rootkit相关特征主要是TCP连接的内容特征,包含41个。

第42个值是标签,前41个值得含义如下,其中9--21和识别rootkit相关。

duration: continuous.
protocol_type: symbolic.
service: symbolic.
flag: symbolic.
src_bytes: continuous.
dst_bytes: continuous.
land: symbolic.
wrong_fragment: continuous.
urgent: continuous.
hot: continuous.//访问系统敏感文件和目录的次数
num_failed_logins: continuous.//登录尝试失败的次数
logged_in: symbolic.//登录成功为1 否则0
num_compromised: continuous.//compromised条件出现的次数
root_shell: continuous.//获得root shell为1 否则0
su_attempted: continuous.//出现'su root'命令为1 否则0
num_root: continuous.//root用户访问次数
num_file_creations: continuous.//文件创建次数
num_shells: continuous.//使用shell命令的次数
num_access_files: continuous.//访问控制文件的次数
num_outbound_cmds: continuous.//FTP会话中出站连接的次数
is_host_login: symbolic.//登录是否属于'hot'列表
is_guest_login: symbolic.//若是guest登录则为1 否则0
count: continuous.
srv_count: continuous.
serror_rate: continuous.
srv_serror_rate: continuous.
rerror_rate: continuous.
srv_rerror_rate: continuous.
same_srv_rate: continuous.
diff_srv_rate: continuous.
srv_diff_host_rate: continuous.
dst_host_count: continuous.
dst_host_srv_count: continuous.
dst_host_same_srv_rate: continuous.
dst_host_diff_srv_rate: continuous.
dst_host_same_src_port_rate: continuous.
dst_host_srv_diff_host_rate: continuous.
dst_host_serror_rate: continuous.
dst_host_srv_serror_rate: continuous.
dst_host_rerror_rate: continuous.
dst_host_srv_rerror_rate: continuous.

2.特征化

['0', 'udp', 'private', 'SF', '105', '147', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '2', '2', '0.00', '0.00', '0.00', '0.00', '1.00', '0.00', '0.00', '255', '255', '1.00', '0.00', '0.01', '0.00', '0.00', '0.00', '0.00', '0.00', 'normal.']

现在把这包含42个值的列表称作特征,这样的特征有311029条,我们需要筛选出标记为rootkitnormal,并且是telnet协议的特征,筛选出了90条。

y列表存标签,(90个标签)

[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

v列表存9--21rootkit相关的特征,(90个特征)

[0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 2.0, 1.0, 0.0, 9.0, 1.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[3.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 30.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[5.0, 0.0, 1.0, 7.0, 0.0, 0.0, 6.0, 12.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[1.0, 0.0, 1.0, 2.0, 1.0, 0.0, 4.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[7.0, 0.0, 1.0, 49.0, 1.0, 0.0, 145.0, 1.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 796.0, 1.0, 2.0, 878.0, 0.0, 0.0, 1.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 4.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[4.0, 0.0, 1.0, 57.0, 1.0, 0.0, 51.0, 7.0, 5.0, 0.0, 0.0, 0.0]
[0.0, 3.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[4.0, 0.0, 1.0, 381.0, 1.0, 0.0, 401.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 4.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 611.0, 1.0, 2.0, 684.0, 0.0, 0.0, 3.0, 0.0, 0.0]
[1.0, 0.0, 1.0, 2.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 16.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 5.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 6.0, 0.0, 0.0, 0.0, 13.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 4.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 6.0, 1.0, 0.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 5.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 1.0, 4.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]

3.训练样本

实例化KNN算法,邻居数设置为3。

clf = KNeighborsClassifier(n_neighbors=3)

4.效果验证

吸取了上2次的经验教训,这次采用交叉验证,效果明显,准确率在90%左右。

[0.9        0.9        1.         1.         1.         0.777777781.         1.         1.         1.        ]

5.完整代码

import re
import os
from sklearn.feature_extraction.text import CountVectorizer
from sklearn import cross_validation
import os
from sklearn.naive_bayes import GaussianNB
from sklearn.neighbors import KNeighborsClassifierdef load_kdd99(filename):x=[]with open(filename) as f:for line in f:line=line.strip('\n')line=line.split(',')x.append(line)return xdef get_rootkit2andNormal(x):v=[]w=[]y=[]for x1 in x:if ( x1[41] in ['rootkit.','normal.'] ) and ( x1[2] == 'telnet' ):if x1[41] == 'rootkit.':y.append(1)else:y.append(0)x1 = x1[9:21]v.append(x1)for x1 in v :v1=[]for x2 in x1:v1.append(float(x2))w.append(v1)return w,yif __name__ == '__main__':v=load_kdd99("../data/kddcup99/corrected")x,y=get_rootkit2andNormal(v)clf = KNeighborsClassifier(n_neighbors=3)print  cross_validation.cross_val_score(clf, x, y, n_jobs=-1, cv=10)

KNN检测Rootkit相关推荐

  1. 使用chkrootkit检测rootkit

    Rootkit介绍 Rootkit是一个特殊的恶意软件,它可隐藏自身以及指定的文件.进程.网络.链接.端口等信息.Rootkit可通过加载特殊的驱动修改系统内核,进而达到隐藏信息的目的.Rootkit ...

  2. Linux几种检测rootkit隐藏进程的方法

    Rootkit通常会隐藏进程,隐藏文件和网络连接.这里主要记录几种对隐藏进程的检测方法 一. 隐藏进程的方法 1.1 用户级Rootkit 通过LD_PRELOAD来hook libc库,从而过滤/p ...

  3. 机器学习之KNN检测恶意流量

    背景 任何智能活动的都可以称为人工智能,而机器学习(Machine Learning)属于人工智能的一个分支,深度学习(Deep Learning)则是机器学习的分支.近年来,随着基础设施的完善,海量 ...

  4. 回忆2018年AI入门学习路线

    幸运的是2018年刚刚毕业就做AI安全领域的应用,那时候是个小白,零基础研究了半年,积累的一点小小的经验,算是我的AI入门学习路线.这不4年过去了,啥也不记得了,打算花1个月时间从新入门AI,把实验从 ...

  5. linux下基于内存分析的rootkit检测方法

    0x00 引言 某Linux服务器发现异常现象如下图,确定被植入Rootkit,但运维人员使用常规Rootkit检测方法无效,对此情况我们还可以做什么? 图1 被植入Rootkit的Linux服务器 ...

  6. 介绍linux上两种rootkits检测工具: Rootkit Hunter和Chkrootkit

    原贴:http://blog.csdn.net/linkboy2004/archive/2007/03/22/1537890.aspx 介绍linux上两种rootkits检测工具: Rootkit ...

  7. 如果反病毒软件不工作 有可能中了Rootkit Rootkit检测和清除还是有办法的

    Rootkit 是一种特殊的 恶意软件 ,因为它们能够在操作系统启动前就加载,还能躲过普通的恶意软件扫描和防护.这种逃避检测的能力让它们尤其难以清除,后续清理工作更难以进行. Rootkit难以查找, ...

  8. rkhunter(rootkit检测)

    rkhunter MD5校验测试,检测文件是否有改动 检测rootkit使用的二进制和系统工具文件 检测特洛伊木马程序的特征码 检测常用程序的文件属性是否异常 检测系统相关的测试 检测隐藏文件 检测可 ...

  9. rootkit后门检测工具

    1. 关于rootkit rootkit是Linux平台下最常见的一种木马后门工具,它主要通过替换系统文件来达到入侵和和隐蔽的目的,这种木马比普通木马后门更加危险和隐蔽,普通的检测工具和检查手段很难发 ...

最新文章

  1. 不止JDK7的HashMap,JDK8的ConcurrentHashMap也会造成CPU 100%
  2. spring--(14)利用注解建立bean与bean之间的关系
  3. 连接池,数据库连接池
  4. 史无前例,阿里云或将空降 M7 级高管
  5. [hystar整理]Entity Framework 教程
  6. python windows故障处理_python+windows automation windows有时会出现故障
  7. 中英文计算机核心期刊目录
  8. 使用Wireshark抓包分析TCP协议
  9. 后缀表达式转前缀表达式
  10. 电脑误删了计算机 怎么恢复,电脑误删文件怎么恢复 电脑误删文件恢复方法【步骤介绍】...
  11. 启动计算机按住del不放,电脑黑屏bios界面都进不去怎么办
  12. 详解单片机中的关键字:sfr sbit
  13. APP测试的主要内容
  14. Excel 实现多列文本合并/合并单元格内容 的三种方法
  15. HDU 4417 Super Mario(划分树问题求不大于k的数有多少)
  16. 视频剪辑教程自学如何剪辑视频,混剪视频怎么做
  17. jop怎么读音英语怎么说_job是什么意思_job的翻译_音标_读音_用法_例句_爱词霸在线词典...
  18. 前端入门——JavaScript
  19. 项目实训第五周团队及个人进展汇报
  20. Linux 搭建本地yum仓库(yum源)

热门文章

  1. @FeignClient configuration参数配置
  2. 内固定取出术后护理_内固定物取出方法及手术技巧图文汇总
  3. DOM解析XML应用之铃声多多改歌曲名称
  4. 「大话设计模式 - 解读」0 设计原则
  5. 【Spring Boot组件集成实战】集成Kaptcha谷歌验证码
  6. 前后端开发-springboot项目/java搭配vue获取谷歌验证码
  7. Android P 15个新功能及特性
  8. c++ Sleep函数头文件
  9. mysql级联删除外键约束_玩转MySQL的外键约束之级联删除篇
  10. 内置虚拟化,自动分层,重复数据删除,固态硬盘,IBM Storwize V7000亮点解析