
python
林咚咚
今夜依旧繁星满天
展开
-
学习笔记(七):朴素贝叶斯在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 评论 -
学习笔记(八):使用逻辑回归检测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 评论 -
学习笔记(九):使用支持向量机识别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 评论 -
学习笔记(十):使用支持向量机区分僵尸网络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 评论 -
学习笔记(十一):使用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 评论 -
学习笔记(十三):用Tensorflow识别垃圾邮件
1.数据集的收集清洗 找一个入门级的垃圾邮件分类训练集,如SpamBase(下载传送门:http://archive.ics.uci.edu/ml/machine-learning-databases/spambase/),提取58个属性,最后一位是垃圾邮件的标志位,其余用空格隔开。def load_SpamBase(filename): x=[] y=[] ...原创 2018-11-18 21:17:46 · 1642 阅读 · 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 评论 -
学习笔记(十四):RNN识别恶意评论
1.数据集的收集清洗使用Movie Review Data数据集,分为正负两种评论,将评论作为时序数据,取文件的前100个单词作为一个序列,每个单词又由词袋模型进行编码。MAX_DOCUMENT_LENGTH = 200EMBEDDING_SIZE = 50n_words=0def load_data(): x=[] y=[] x1,y1=load_f...原创 2018-11-19 09:36:39 · 1946 阅读 · 0 评论 -
隐写术-关于UTF-8编码解码
UTF-8维基百科:https://zh.wikipedia.org/wiki/UTF-8UTF-8 是 UNICODE的一种变长度的编码表达方式,也就是说一个字符串中,不同的字符所占的字节数不一定相同def binaryToString(binary): index = 0 string = [] rec = lambda x, i: x[2:8] + ...转载 2018-11-16 22:32:03 · 657 阅读 · 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 评论 -
学习笔记(十六):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 评论 -
【python】蒙特卡洛树搜索(MCTS)简单实现
过程包括以下四步:选择 Selection:从根节点 R 开始,递归选择最优的子节点(后面会解释)直到达到叶子节点 L。扩展 Expansion:如果 L 不是一个终止节点(也就是,不会导致博弈游戏终止)那么就创建一个或者更多的字子节点,选择其中一个 C。模拟 Simulation:从 C 开始运行一个模拟的输出,直到博弈游戏结束。反向传播 Backpropagation:用模拟的结果输...转载 2018-12-24 16:46:47 · 24601 阅读 · 4 评论 -
【python】机器学习算法的简单实现
1.7考试,愁啊,看一些基础算法将就着过吧,而且跨年总不能看着基础物理过不是,那不是个新年的好兆头。日更,直到更完逻辑回归,softmax回归,支持向量机,随机森林,线性回归(包括牛顿法),K-means算法(包括K-means++),基于图的推荐算法,最后回顾一下之前写过的PCA-LDA,以及做游戏决策用到的基于矩阵分解的推荐算法以及libFM,算是给2018画上一个圆满的句号吧。=====...原创 2019-01-01 22:14:17 · 731 阅读 · 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近邻算法检测web异常操作
黑客入侵Web服务器后,通常会通过系统漏洞进一步提权,获得ROOT权限。我们可以通过搜集LINUX服务器的bash操作日志,通过训练识别出特定用户的操作习惯,然后进一步识别出异常操作的行为。1.数据搜集 训练集包括50个用户的操作日志,每个日志包括15000个操作命令,其中5000条都是正常操作,后面的10000条日志中随机包含有异常操作,每100条操作作为一个操作序列,保存在...原创 2018-10-13 20:27:55 · 1066 阅读 · 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 评论 -
学习笔记(三):使用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近邻算法检测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 评论 -
学习笔记(十二):推荐系统-隐语义模型
#代码摘自唐宇迪《推荐系统》视频课程,数据集来自http://pan.baidu.com/s/1eS5VZ8Y中的“ml-1m"数据from collections import dequefrom six import nextimport readersimport tensorflow as tfimport numpy as npimport timenp.rand...原创 2018-10-18 11:40:19 · 466 阅读 · 0 评论 -
keras模型可视化pydot_ng和graphviz在python3.6环境下的安装和配置(Windows10)
使用keras的函数plot_model可视化模型from keras.utils import plot_modelplot_model(model, to_file='model.png')运行结果出错---------------------------------------------------------------------------ImportError ...原创 2019-05-28 18:10:43 · 1561 阅读 · 4 评论