• 注:本篇博客可以看作是拜读《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安全结合的基础相关推荐

  1. 基于机器学习的web异常检测(转)

    阿里聚安全 Web防火墙是信息安全的第一道防线.随着网络技术的快速更新,新的黑客技术也层出不穷,为传统规则防火墙带来了挑战.传统web入侵检测技术通过维护规则集对入侵访问进行拦截.一方面,硬规则在灵活 ...

  2. 基于机器学习的web异常检测——基于HMM的状态序列建模,将原始数据转化为状态机表示,然后求解概率判断异常与否...

    基于机器学习的web异常检测 from: https://jaq.alibaba.com/community/art/show?articleid=746 Web防火墙是信息安全的第一道防线.随着网络 ...

  3. 基于机器学习的web异常检测

    Web防火墙是信息安全的第一道防线.随着网络技术的快速更新,新的黑客技术也层出不穷,为传统规则防火墙带来了挑战.传统web入侵检测技术通过维护规则集对入侵访问进行拦截.一方面,硬规则在灵活的黑客面前, ...

  4. Linux下Web服务器应用之基础简介

    Linux下Web服务器应用之基础简介 一.web服务器基本知识: WWW 是 World Wide Web 的缩写 URL:<协定>://<主机地址或主机名>[:port]/ ...

  5. 好程序员web前端分享HTML基础篇

    好程序员web前端分享HTML基础篇,最近遇到很多新手,都会问,如果要学web前端开发,需要学什么?难不难学啊?多久能入门之类的问题?那么今天好程序员就先来给大家分享一下web前端学习路线:HTML基 ...

  6. 机器学习中的算法-支持向量机(SVM)基础

    机器学习中的算法-支持向量机(SVM)基础 版权声明: 本文由LeftNotEasy发布于http://leftnoteasy.cnblogs.com, 本文可以被全部的转载或者部分使用,但请注明出处 ...

  7. 短小精悍-机器学习核心概念、模型、基础知识点简明手册-免费分享

    该手册只有130页,整理了几乎所有关机机器学习的概念.模型.基础知识点,它将帮助读者快速回顾关于机器学习相关的核心知识点和重要公式.模型.概念.涉及概率模型.处理离散数据的生成模型.高斯模型.贝叶斯模 ...

  8. 一个Web开发的客户端基础技术测试Demo

    最近参加了一个Web开发的客户端基础技术测试,虽然对于做前台开发的程序员来说比较简单,但对于一直做后台代码编写的程序员想掌握前台开发的基础来说,应该是一个比较好的Demo.对于Web初学者来说,也是一 ...

  9. Web前端之JavaScript基础

    Web前端之JavaScript基础 JavaScript介绍 变量 变量类型 基本的数据类型Number String Boolean underfined null typeof运算符 引用的数据 ...

  10. web快速入门之基础篇-js:3_3、简易购物车

    目录 一.前言 二.js代码实例演示 1.简易购物车01_数量变化 (1)实例代码 (2)效果演示 2.简易购物车02_数量价格同步 (1)实例代码 (2)效果演示 一.前言 上一篇介绍了DHTML对 ...

最新文章

  1. 《LeetCode力扣练习》第121题 买卖股票的最佳时机 Java
  2. mysql数据类型符号位_MySQL数据类型
  3. 启用事务操作,解决批量插入或更新sqlite,mssql等数据库耗时问题
  4. python好找工作吗2017-2017,再来聊一聊Python,未来发展怎样?
  5. sonarqube静态扫描代码环境搭建及使用(本地环境)
  6. java卸载_java快速入门篇之windows-MySQL-5.6安装与卸载
  7. c++ 遍历所有点且距离最短_编程小白暑期进阶笔记41-C语言数据结构与算法图遍历的应用...
  8. 简单的Gradle Java插件自定义
  9. 分布式是写出来的(二)
  10. oracle使用关键字做表字段名_ArcGIS SQL使用
  11. maven添加外部jar,以及springboot打包
  12. 菜鸟教程Python教程100例合集
  13. linux u盘保护,u盘被写保护
  14. python爬虫—练习题(re,requestBeautifulSoup,selenium)
  15. python重装之前要卸载吗_关于fedroa下安全地卸载和重装python
  16. 华硕冰刃4不显示,拆开检查2个故障,如不仔细分析上电又要烧板
  17. LCQuAD2.0-问题数据集生成-论文阅读笔记
  18. Pytorch + Win10系统 + pip安装+ CUDA9.1版本(安装CUDA10.2版本)
  19. 晒晒老衲用的WordPress插件
  20. 18-CSS3的2D和3D属性

热门文章

  1. oppo强制升级android版本,OPPO R17升级更新安卓9.0固件rom刷机包:正式版本-C.10
  2. 基于深度学习的银行卡号识别 卡号识别和分割
  3. Cuda驱动安装/更新
  4. mysql嵌套查询是从外向内执行的吗_MySQL嵌套查询
  5. SpringCloud Alibaba Nacos作为配置中心(三)----------yml格式配置文件
  6. 安装教程 | 在谷歌安装印象笔记插件(实用,在谷歌浏览器添加印象笔记插件,整理遇到bug,收藏解决bug的文章)
  7. 详解使用可道云Kodbox快速在云服务器上搭建云盘
  8. C语言打印金字塔,菱形,V形图案
  9. 简述计算机总线概念内涵,总线的概念及其它相关知识细解
  10. InstallShield Crack,虚拟应用程序构建可靠