机器学习与Web安全结合的基础
- 注:本篇博客可以看作是拜读《Web安全之机器学习入门》后的笔记。
人工智能从提出至今,已经得到了长足的发展。从谷歌大脑,到百度无人车,到阿尔法狗围棋大战,人工智能越来越具有生机与活力。
与此同时,国内外的网络安全形势更加严峻,而信息安全人才却一直存在较大的缺口。安全技术和人工智能的人结合已成为大势所趋。事实上已经如此实现了,人工智能在黄反鉴定、 恶意链接、 业务风控领域、 病毒分析、APT检测方面都取得了不错的进展。
我们知道,机器学习的算法就是对数据进行处理,从大量的数据中学得知识并加以运用。所谓巧妇难为无米之炊,人工智能与Web安全的结合发展,势必需要各种有关网络信息安全的数据集来进行机器学习,这是人工智能实现的基础。在众多数据集合中,譬如KDD 99、HTTP DATASET CSIC 2010、SEA数据集、ADFA-LD数据集、Alexa域名数据、Sclikit-Learn数据集、MNIST数据集、Movie Review Data、SpamBase数据集、Enron数据集等数据集。
数字型特征提取有标准化、正则化和归一化操作:
>>> from sklearn import preprocessing
>>> import numpy as np
>>> X=np.array([[1.,-1.,2.],[2.,0.,0.],[0.,1.,-1.]])
>>> X_scaled=preprocessing.scale(X)
>>> X_scaled
array([[ 0. , -1.22474487, 1.33630621],[ 1.22474487, 0. , -0.26726124],[-1.22474487, 1.22474487, -1.06904497]])
>>> X_normalized=preprocessing.normalize(X,norm='l2')
>>> X_normalized
array([[ 0.40824829, -0.40824829, 0.81649658],[ 1. , 0. , 0. ],[ 0. , 0.70710678, -0.70710678]])
>>> min_max_scaler=preprocessing.MinMaxScaler()
>>> X_train_minmax=min_max_scaler.fit_transform(X)
>>> X_train_minmax
array([[0.5 , 0. , 1. ],[1. , 0.5 , 0.33333333],[0. , 1. , 0. ]])
文本型数据的提取本质是单词切分,不同的单词当作一个新的特征:
以hash结构为例:
>>> measurements=[{'city':'Dubai','temperature':33.},{'city':'London','temperature':12.},{'city':'Beijing','temperature':18.},]
>>> from sklearn.feature_extraction import DictVectorizer
>>> vec= DictVectorizer()
>>> vec.fit_transform(measurements).toarray()
array([[ 0., 1., 0., 33.],[ 0., 0., 1., 12.],[ 1., 0., 0., 18.]])
>>> vec.get_feature_names()
['city=Beijing', 'city=Dubai', 'city=London', 'temperature']
在文本特征提取中,词袋模型在词集模型的基础上加上了频率的维度:
导入相关函数库:
>>> from sklearn.feature_extraction.text import CountVectorizer实例化分词对象:
>>> vectorizer=CountVectorizer(min_df=1)
>>> vectorizer
CountVectorizer(analyzer='word', binary=False, decode_error='strict',dtype=<class 'numpy.int64'>, encoding='utf-8', input='content',lowercase=True, max_df=1.0, max_features=None, min_df=1,ngram_range=(1, 1), preprocessor=None, stop_words=None,strip_accents=None, token_pattern='(?u)\\b\\w\\w+\\b',tokenizer=None, vocabulary=None)将文本进行词袋处理:
>>> corpus = ['This is the first document.','This is the secend document.','And the third one.','Is this the first document?',]
>>> X=vectorizer.fit_transform(corpus)
>>> X
<4x9 sparse matrix of type '<class 'numpy.int64'>'with 19 stored elements in Compressed Sparse Row format>获得对应的特征名称
>>> corpus = ['This is the first document.','This is the second document.','And the third one.','Is this the first document?',]
>>> X=vectorizer.fit_transform(corpus)
>>> X
<4x9 sparse matrix of type '<class 'numpy.int64'>'with 19 stored elements in Compressed Sparse Row format>
>>> vectorizer.get_feature_names()==(['and','document','first','is','one','second','the','third','this'])
True
>>> 词袋化后,下面进行向量化:
>>> vocabulary=vectorizer.vocabulary_
我个人做数据挖掘项目时,喜欢Neo4j数据库,常常需要使用到csv格式文件。事实上,处理数据时,CSV是最常见的格式。
效果验证时机器学习非常重要的环节,每次写论文,导师都会敲我脑袋说“性能呢?”。最常使用的就是交叉验证了:
说到web安全,形势极其严峻。像以前学过的XSS攻击、SQL注入相关的安全事件层出不穷。webshell是一种命令执行环境,常常被黑客用来长期控制被害服务器,并进一步进行渗透。webshell功能强大,如文件编辑、注册表管理等等。近年来webshell被控制的事件也屡屡发生,中国菜刀等工具也成为了宠儿。僵尸网络可以说是一对多的典型黑客控制例子,僵尸网络危害巨大。
我们已知在安全中已经产生了各种各样的数据集,结合机器学习,能够快速较为准确的检测恶意操作,这也是机器学习和Web安全结合的前提和基础。
机器学习与Web安全结合的基础相关推荐
- 基于机器学习的web异常检测(转)
阿里聚安全 Web防火墙是信息安全的第一道防线.随着网络技术的快速更新,新的黑客技术也层出不穷,为传统规则防火墙带来了挑战.传统web入侵检测技术通过维护规则集对入侵访问进行拦截.一方面,硬规则在灵活 ...
- 基于机器学习的web异常检测——基于HMM的状态序列建模,将原始数据转化为状态机表示,然后求解概率判断异常与否...
基于机器学习的web异常检测 from: https://jaq.alibaba.com/community/art/show?articleid=746 Web防火墙是信息安全的第一道防线.随着网络 ...
- 基于机器学习的web异常检测
Web防火墙是信息安全的第一道防线.随着网络技术的快速更新,新的黑客技术也层出不穷,为传统规则防火墙带来了挑战.传统web入侵检测技术通过维护规则集对入侵访问进行拦截.一方面,硬规则在灵活的黑客面前, ...
- Linux下Web服务器应用之基础简介
Linux下Web服务器应用之基础简介 一.web服务器基本知识: WWW 是 World Wide Web 的缩写 URL:<协定>://<主机地址或主机名>[:port]/ ...
- 好程序员web前端分享HTML基础篇
好程序员web前端分享HTML基础篇,最近遇到很多新手,都会问,如果要学web前端开发,需要学什么?难不难学啊?多久能入门之类的问题?那么今天好程序员就先来给大家分享一下web前端学习路线:HTML基 ...
- 机器学习中的算法-支持向量机(SVM)基础
机器学习中的算法-支持向量机(SVM)基础 版权声明: 本文由LeftNotEasy发布于http://leftnoteasy.cnblogs.com, 本文可以被全部的转载或者部分使用,但请注明出处 ...
- 短小精悍-机器学习核心概念、模型、基础知识点简明手册-免费分享
该手册只有130页,整理了几乎所有关机机器学习的概念.模型.基础知识点,它将帮助读者快速回顾关于机器学习相关的核心知识点和重要公式.模型.概念.涉及概率模型.处理离散数据的生成模型.高斯模型.贝叶斯模 ...
- 一个Web开发的客户端基础技术测试Demo
最近参加了一个Web开发的客户端基础技术测试,虽然对于做前台开发的程序员来说比较简单,但对于一直做后台代码编写的程序员想掌握前台开发的基础来说,应该是一个比较好的Demo.对于Web初学者来说,也是一 ...
- Web前端之JavaScript基础
Web前端之JavaScript基础 JavaScript介绍 变量 变量类型 基本的数据类型Number String Boolean underfined null typeof运算符 引用的数据 ...
- web快速入门之基础篇-js:3_3、简易购物车
目录 一.前言 二.js代码实例演示 1.简易购物车01_数量变化 (1)实例代码 (2)效果演示 2.简易购物车02_数量价格同步 (1)实例代码 (2)效果演示 一.前言 上一篇介绍了DHTML对 ...
最新文章
- 《LeetCode力扣练习》第121题 买卖股票的最佳时机 Java
- mysql数据类型符号位_MySQL数据类型
- 启用事务操作,解决批量插入或更新sqlite,mssql等数据库耗时问题
- python好找工作吗2017-2017,再来聊一聊Python,未来发展怎样?
- sonarqube静态扫描代码环境搭建及使用(本地环境)
- java卸载_java快速入门篇之windows-MySQL-5.6安装与卸载
- c++ 遍历所有点且距离最短_编程小白暑期进阶笔记41-C语言数据结构与算法图遍历的应用...
- 简单的Gradle Java插件自定义
- 分布式是写出来的(二)
- oracle使用关键字做表字段名_ArcGIS SQL使用
- maven添加外部jar,以及springboot打包
- 菜鸟教程Python教程100例合集
- linux u盘保护,u盘被写保护
- python爬虫—练习题(re,requestBeautifulSoup,selenium)
- python重装之前要卸载吗_关于fedroa下安全地卸载和重装python
- 华硕冰刃4不显示,拆开检查2个故障,如不仔细分析上电又要烧板
- LCQuAD2.0-问题数据集生成-论文阅读笔记
- Pytorch + Win10系统 + pip安装+ CUDA9.1版本(安装CUDA10.2版本)
- 晒晒老衲用的WordPress插件
- 18-CSS3的2D和3D属性
热门文章
- oppo强制升级android版本,OPPO R17升级更新安卓9.0固件rom刷机包:正式版本-C.10
- 基于深度学习的银行卡号识别 卡号识别和分割
- Cuda驱动安装/更新
- mysql嵌套查询是从外向内执行的吗_MySQL嵌套查询
- SpringCloud Alibaba Nacos作为配置中心(三)----------yml格式配置文件
- 安装教程 | 在谷歌安装印象笔记插件(实用,在谷歌浏览器添加印象笔记插件,整理遇到bug,收藏解决bug的文章)
- 详解使用可道云Kodbox快速在云服务器上搭建云盘
- C语言打印金字塔,菱形,V形图案
- 简述计算机总线概念内涵,总线的概念及其它相关知识细解
- InstallShield Crack,虚拟应用程序构建可靠