
web安全
林咚咚
今夜依旧繁星满天
展开
-
学习笔记(一):使用K近邻算法检测web异常操作
黑客入侵Web服务器后,通常会通过系统漏洞进一步提权,获得ROOT权限。我们可以通过搜集LINUX服务器的bash操作日志,通过训练识别出特定用户的操作习惯,然后进一步识别出异常操作的行为。1.数据搜集 训练集包括50个用户的操作日志,每个日志包括15000个操作命令,其中5000条都是正常操作,后面的10000条日志中随机包含有异常操作,每100条操作作为一个操作序列,保存在...原创 2018-10-13 20:27:55 · 1066 阅读 · 0 评论 -
学习笔记(十五):RNN识别WebShell
1.使用ADFA-LD数据集,逐行读取,并记录系统调用序号的最大值。max_sequences_len=300max_sys_call=0def load_one_flle(filename): global max_sys_call x=[] with open(filename) as f: line=f.readline() ...原创 2018-11-19 10:41:37 · 686 阅读 · 0 评论 -
学习笔记(十七):朴素贝叶斯和多层感知机检测Linux后门
1.数据集使用ADFA-LD数据集def load_all_files(): import glob x=[] y=[] files=glob.glob("ADFA-LD/Attack_Data_Master/*/*") for file in files: with open(file) as f: lines...原创 2018-11-20 18:43:28 · 579 阅读 · 0 评论 -
学习笔记(十一):使用K-Means算法检测DGA域名
1.数据收集与清洗:同(十)2.特征化:同(十)3.训练样本model = KMeans(n_clusters = 2, random_state=random_state)y_pred = model.fit_predict(x) 4.效果验证:使用TSNE将高维向量降维tsne = TSNE(learning_rate=100)x=tsne.fit_transfo...原创 2018-10-15 23:45:48 · 1029 阅读 · 0 评论 -
学习笔记(十):使用支持向量机区分僵尸网络DGA家族
1.数据搜集和数据清洗 ·1000个cryptolocker域名 ·1000个post-tovar-goz域名 ·alexa前1000域名 从DGA文件中提取域名数据:def load_dga(filename): domain_list = [] with open(filename) as f: f...原创 2018-10-15 23:27:58 · 1495 阅读 · 0 评论 -
学习笔记(九):使用支持向量机识别XSS
1.特征化:提取特征,对特征进行向量化,标准化,均方差缩放,去均值操作def get_len(url): return len(url)def get_url_count(url): if re.search('(http://)|(http://)',url,re.IGNORECASE): return 1 else: return...原创 2018-10-15 22:16:01 · 575 阅读 · 0 评论 -
学习笔记(八):使用逻辑回归检测JAVA溢出攻击以及识别验证码
(1)检测JAVA溢出攻击1.数据搜集:加载ADFA-LD正常样本数据,定义遍历目录下文件的函数,从攻击数据集中筛选和JAVA溢出攻击相关的数据,原理同(四)2.特征化:与(四)一致,使用词集模型3.训练样本logreg = linear_model.LogisticRegression(C=1e5)4.效果验证与(四)原理一致(2)识别验证码1.数据搜集:使用MNI...原创 2018-10-15 17:56:45 · 477 阅读 · 0 评论 -
学习笔记(七):朴素贝叶斯在Web安全中的六个应用
一、检测Web异常操作 1.数据搜集:一样 2.特征化 使用词集模型,统计全部操作命令,去重后形成字典或词汇表:with open(filename) as f: for line in f: line=line.strip('\n') dist.append(line)fdist = Fre...原创 2018-10-15 17:43:12 · 688 阅读 · 0 评论 -
学习笔记(六):使用随机森林算法检测FTP暴力破解
1.数据搜集: 加载ADFA-LD中正常数据 定义遍历目录下文件 从攻击数据中筛选出和FTP暴力破解有关的数据 都与(四)原理相同2.特征化:与(四)相同3.训练样本clf= RandomForestClassifier(n_estimators=10)4.效果验证:与(四)原理相同,十折交叉...原创 2018-10-15 11:38:37 · 626 阅读 · 0 评论 -
学习笔记(五):使用决策树算法检测POP3暴力破解
1.数据搜集 加载KDD 99中的数据:def load_kdd99(filename): x=[] with open(filename) asf: for line in f: line=line.strip('\n') line=line.split(',') x.appe...原创 2018-10-15 11:30:45 · 1709 阅读 · 0 评论 -
学习笔记(四):使用K近邻算法检测WebShell
1.数据搜集 加载ADFA-LD中正常样本数据:def load_adfa_training_files(rootdir): x=[] y=[] list = os.listdir(rootdir) for i in range(0, len(list)): path=os.path.join(rootdir,list[i]) ...原创 2018-10-14 16:46:27 · 553 阅读 · 0 评论 -
学习笔记(三):使用K近邻算法检测Rootkit
Rootkit是一种特殊的恶意软件,它的功能是在安装目标上隐藏自身以及指定的文件,进程和网络链接等信息。1.数据搜集 KDD 99 TCP连接内容特征包括hot ,num_faild_logins ,logged_in ,num_compromised ,root_shell ,su_attempted ,num_root ,num_file_creations ,...原创 2018-10-14 15:55:32 · 715 阅读 · 0 评论 -
学习笔记(二):使用K近邻算法检测Web异常操作
使用全量比较,而不是最频繁和最不频繁的比较。1.数据搜集 我们使用词集的模型,将全部命令去重后形成一个大型向量空间,每个命令代表一个特征,首先通过遍历全部命令,生成对应词集。with open(filename) as f:for line in f: line = line.strip('\n') dist.append(line)fdist = F...原创 2018-10-13 21:29:39 · 692 阅读 · 3 评论 -
学习笔记(十六):CNN识别垃圾邮件
1.数据集清洗(load_one_file()这里需要注意一下,系统默认utf-8编码,但是"utf-8"以及"gbk"编码数据集文件都会报错,所以使用encoding="cp852")def load_one_file(filename): x="" with open(filename,encoding="cp852") as f: for line ...原创 2018-11-19 15:44:12 · 1177 阅读 · 2 评论