您的位置:首页 > 运维架构 > Shell

文章阅读:微软深度学习分类powershell

2020-07-28 08:46 323 查看

https://www.microsoft.com/security/blog/2019/09/03/deep-learning-rises-new-methods-for-detecting-malicious-powershell/

首先要记住的是,这篇文章是利用NLP的方法来进行测试,也就是说,跟我之前检测webshell一样都是这个套路。就是利用nlp的方法来进行特征转换。

那么利用这种方法,其实我一开始是拒绝的,就是我想不出来这种方法,跟实际的最终结果有什么关联。可能是是说利用了某个函数就是?或者说什么的?
我个人是认为,不要说什么就是利用深度学习来获取特征,这是一种有些逃避的说法。还是要说明的是,当前这个步骤是对文本进行简单的 处理,可能文本分类中的算法都要进行这些操作。这个操作流程大家都认为是将单词转化为向量。
那么,one-hot也可以,你说他有缺点,就是说缺失了两个单词之间的相似度这种,但是注意,这种相似度,在文本分类中可能是说
就是他在嵌入空间中能达到什么效果呢?
多个样本之间能够有什么效果。这个才是应该思考的问题。

(其实这些都是基础的问题,就是你为什么要做这件事,然后按照流程走袭来)
之前我也说到过,怎么样来理解这个过程,怎么来界定这个东西就是恶意的。这个才是关键。问题就出在你使用了这种利用自然语言处理的方式。
以前使用机器学习都是直接利用的特征,那么机器学习只是充当一个中间协助学习关系的函数。
但是这个时候不一样了,他的特征是由单词生成的向量,我缺失了这部分内容的含义,我就不能知道应该怎么做,不是不知道怎么做,而是说我不知道这个东西是怎么成功的。没有了中间可理解的过程。

下面来简单思考一下:

  1. 我要做的就是将恶意shell检测出来,那么输入是文件,或者说文本内容,然后输出是一个标记,这个标记代表着是否是恶意的。
  2. 文本内容并不能直接输出到模型中,需要使用一些其他的方法将这个文件转化为数值向量;那么这里我就使用简单的词袋模型,将每个词汇都做了索引,然后就是这个词汇出现的次数或者是0-1模型;因为我词汇表是等长的,所以最后输出的向量是一致的。(这里假定我使用就是频数,不进行频率的归一化,不过这个归一化也得思考思考,他是怎么处理得)
  3. 好了现在向量出来了,如果不管别的,我们就直接上深度学习或者说某些机器学习算法,直接使用这种东西输入到模型中,然后进行关系式的学习。这在之前的方式中可能是比较好弄的,因为各个特征是有语义的。现在的问题就是,你怎么来判定目前的这种方法。

前面就已经算是把完整的步骤给分析清楚了。但是对于第三个步骤,具体的变量是怎么和最后的映射弄到一起的,这个是关键问题。
好了,假设我是用得是频数,那么从处理过程得语义上就是,这个单词出现的次数高,然后结合其他一些特征,这样来进行判断。
嵌入模型在转化为向量的时候,考虑的是单词间以及上下文之间的关系。其实我还是没理解他前面所说的。使用one-hot编码的时候,通过这个向量出现的频率来进行判断。那么嵌入模型呢?就是前面起到的这种语义关系有什么作用呢?就是他在这个判定的过程中能发挥什么作用。
这个才是应该思考的,并不是说别人说缺失了这种语义上的关联,你就要使用。或者你逆向过来思考,你知道了他有用,那么他怎么发挥的作用。

反过来思考,其实机器学习就是帮助你学习了这个关系,如果特征是有意义的,你就能更明显的知道这个关系,但是如果特征没有意义,你就很难知道这个关系,虽然最后结果能出来。

2020/05/28 -
还有一个问题没有嫁接上,就是说,这个函数的学习!!!
你如果都是数值,那好,没什么问题,反正就是数嘛,也无所谓。但是你吧这个东西映射回去,怎么思考。

使用embedding方法来获取特征把,然后同时利用了cnn和lstm做分类。

https://www.microsoft.com/security/blog/2020/05/08/microsoft-researchers-work-with-intel-labs-to-explore-new-deep-learning-approaches-for-malware-classification/
这个是说微软要跟intel合作来进行恶意软件检测。

2020/06/05
但我也思考了一下,我之前的时候,曾经使用php编写的webshell脚本作为检测的目标进行过一些小实践。
然后结果出奇的好,甚至于都100了。这种情况,自然没有什么可以再继续的可能性。毕竟,你使用深度学习的方法,效果也没有什么提升。这种情况下,反而增加了训练的复杂度而已。但是对于学术论文不一样,他们只要不说,你这个东西使用普通的方法的效果,就说这个东西我使用了深度学习的形式,就能发表,也是醉了。
所以这里的问题是,你所发现的问题是什么。

2020/06/05
不过我简单反思了一下我前面写到的一些相关内容。我就感觉,其实我思考的是,为什么机器学习能够学习一样,就跟前几年的时候,我思考这个问题一样。但也不完全是,因为我没有对这个映射关系是如何生成的有太多的疑问。但是肯定是有这部分内容的相关性,导致我就感觉没有完全的思路通畅。对于大部分原因来说,还是因为没有把整个流程走通。更具体点来说,就是特征工程这个部分,我没有思考清楚,或者说,不是说没有思考清楚,而是说没有完全理解。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐