术语

image-20210619174724726.png

什么是机器学习关于网络安全的算法?

没有特定算法,是算法工具集,这些工具集可以应用于各个领域,其中重要的不同点是在于数据集。

来源于网络安全的数据

  • 数据包(packets)
  • 网络数据包(Network packets)
  • 日志文件(log files)
  • 文件本身等

不同的信息具有不同的格式、来源,这些信息需要转化成一种特定的形式——向量空间模型(vector space model)

这些内容被转化为空间模型,他就可以应用于机器学习

这门课程中的重点在于这些信息建模,而不是机器学习的算法,因为你可能使用的是几乎一样的代码,但是会碰到不同的数据集

工具

  • WEKA,一个基于Java的GUI环境,用于机器学习

  • Python

    • 使用Numpy和Pandas两个库进行数据预处理、清洗数据等
    • Sklearn,传统机器学习
    • Tensorflow,深度学习
  • Hadoop,集群

  • Spark,基于系统分配数据

  • AWS

  • GPUs,CPUs,TPUs,cognitive processors

什么是机器学习

  • 一种基于模型的用来预测、探测或者分组数据样本的方法(Methods for predicting, detecting , or grouping data samples based on a model)
  • 这个模型必须用数据进行学习(The model must be learned with data )
  • 建模方法可以是几何(基于距离指标和线性边界)的,也可以不是(Methods can be geometrical (or not) and the model is based on distance metrics or linear boundaries)

机器学习其实是一种几何,通常我们在考虑“空间向量模型”的时候,我们也在考虑“点”,从而构建一些曲线。

为什么把机器学习应用于网络安全

网络安全通常依赖于特定领域的专业知识,一个人分析数据可能性需要花费很长的时间

  • 过多的数据(Too much data)
  • 手工构造模型会耗费大量的精力(Building models by hand is labor intensive)
  • 机器学习可以学习模型,从而帮助你了解在数据中的模式(Machine learning can also learn models )

什么是大数据

  • Lots of data

    • Terabytes
  • So much data that a single computer with 8 RAM and latest CPU cannot do the work

  • Instead, need more powerful computer

  • Better yet, several computers working in parallell

  • Two main approaches:

    • Parallel CPUs
    • GPUs (1 or several also in parallel)

机器学习的专业术语

监督学习(Supervised)

有样本、标签、网络流量

Data Labels
[network] [0] Bad
[network] [1] Good

image-20210619184028016.png

数据集将被分为测试集和训练集,通过训练集选择分类器来进行建模,然后建立模型,将其用于与测试集,得到Y-test值,然后比较训练集得出的Y-predicted值。

非监督学习(Unsupervised)

没有标签,也就是不知道一个数据的好坏,这样就无法学习相关性,但是可以学习分组。(聚类?)

image-20210619193623808.png

其他

  • 特征:Features
  • 数据集:Data sets
  • 数据预处理:Data pre-processing
  • 性能指标:Performance metrics

理解如何获取原始数据,并把它转化成向量空间模型,然后把他应用于机器学习的模型。我们需要花费大量的时间来寻找特征。

常见的机器学习算法

  • 朴素贝叶斯(Naïve Bayes)
  • 决策树(Decision trees)
  • 随机森林(Random forest)
  • KNN
  • 线性回归(Linear regression)
  • Logistic回归(Logistic regression)
  • 神经网络(Neural networks)
  • 支持向量机(Support Vector Machines)
  • 深度神经网络(deep neural networks)

什么是深度学习

  • 在输入层和输出层之间有更多层的神经网络(Neural networks with more layers between the input and output layers)
  • 批处理大数据(Batch processing for big data)
  • Matrix multiplication operation takes advantage of GPUs
  • Have outperformed all others since around 2012

image-20210621200136404.png

机器学习基本流程

image-20210621201116770.png

数据集格式

  • .csv
    • 0,tcp,http,SF,162,4528,0,0,0,1, … ,normal.
  • .libsvm
    • [label] [index 1]:[value 1] [index 2]:[value 2] …
  • .arff(用于weka)
    • The format of Weka storage data
    • @duration numeric
      @protocol_type {tcp,udp,icmp}

      @data
    • 0,tcp,http,SF,162,4528,0,0,0,1, … ,normal
  • etc…

image-20210621201859489.png

数据集

  • NSL-KDD network intrusion——入侵检测(IDs)
  • Unsw big data networking(IOT)
  • Iris——标准Iris数据集
  • Phishing——网络钓鱼数据集
  • Honeypot unsupervised
  • Denial of service
  • Malware——恶意软件数据集
  • Ransomware
  • Biometrics