机器学习之恶意流量检测的特征工程

【机器学习之恶意流量检测的特征工程】传统的机器学习除了使用Tfidf-ngram的方式外还有其他做特征工程方式,还可以通过定义不同维度的特征来做特征工程,这种特征工程方式需要安全工程师对每一种攻击有良好特征提取能力 。这种方法举个例子来说可以这样理解,我的输入是姚明,此时我在特征工程阶段需要将姚明转化为身高2.2米、体重400斤等等数值特征,再经过标准化等转化为机器可以识别的量纲单位进行学习预测 。

机器学习之恶意流量检测的特征工程

文章插图
 
机器学习流程&特征工程传统的机器学习可以理解成是生产算法的算法 。需要人来先做特征提取,然后再把特征向量化后交给机器去训练 。为什么要做特征工程,有这么一句话在业界广泛流传:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已 。我们做特征工程的目的是为了让训练后的结果达到最优的状态 。
 
 
机器学习之恶意流量检测的特征工程

文章插图
 
本例中我们的目的是从流量中识别恶意流量,首先需要在所有的负例样本中筛选出最具代表的特征,在所有的负例样本中筛选出最具代表的特征,我们先从简单关键词特征开始 。观察正例样本基本没有类似information_schema.table、 sleep() 、alert(/1/)这种的特殊字符 。
format=xml&platform=ppap&channel=withoutchannelfilename=sgim_eng.zip&h=B2EF665558623D671FC19AC78CA2F0F3&v=8.0.0.8381&ifauto=1
md5=d10015a0eb30bd33bb917e1d527c649num=8&PaperCode=600054daid=41&clientuin=1264523260
clientkey=00015947C124007000F19A1CB5D10832A25TAG=ieg.qqpenguin.desktopdaid=41&clientuin=1264523260
观察负例样本可以将如下负例样本看作是请求的value部分如http://x.x.x/path?key1=value1&key2=value2,可以观察到同类型攻击具有很多相同的特征,比如xss来说具有很多JAVAscript、alert、onerror=等特征,sql注入具有information


    推荐阅读