Page 125 - 《软件学报》2020年第11期
P. 125

汪洁  等:子图相似性的恶意程序检测方法                                                            3441


                    逆拓扑标识可以将一个子图映射成一个字符串,字符串间的比较相比图的匹配更简单、更迅速.同时,字符
                 串中蕴含了子图的结构信息,子图结构不同其字符串表示也不同,并且本文中子图间的相似性学习并不是依据
                 子图本身的结构而是子图的“上下文”信息.但必须注意的是,
                    1)   子图中存在环时方法将失效.子图语料库中的子图都是基于 TreeWalk 算法,而 TreeWalk 算法可以确
                        保提取的子图中不存在环.
                    2)   子图字符串长度与子图的深度有关,当子图深度比较大时,字符串的长度会变得非常冗长.
                    然而,子图的最大深度取决于最大提取深度 D,从后续的实验中可以看出,最大深度 D 最佳取值为 5,因而子
                 图表示长度仍在合理范围内.

                 2.4   特征子图库构建
                    子图语料库是以训练样本中恶意程序图中每个节点作为根节点,提取深度为 0~D 的子图,这会造成简单的
                 子图频繁出现,例如单个节点、两个节点如进程读取注册表等,这些子图无论在恶意还是非恶意程序都是普遍
                 存在的.然而这些简单的高频子图就类似于文本中高频出现的 a,the 等词,借鉴最新的神经语言模型处理高频词
                 的方法  [19] ,我们采取了简单的子采样方法,在子图语料库 sg cors 中,每个子图 sg i 具有以下概率被放弃,其计算公
                 式为
                                                                t
                                                     ( Psg  ) 1=−                                     (2)
                                                       i
                                                               ( f sg  )
                                                                 i
                                                             −3
                 其中,f(sg i )表示子图 sg i 的频率;t 表示选择门槛,通常在 10 左右.我们选择这个子采样公式是因为它能够对频率
                 大于 t 的子图进行子采样,即频率愈大其被剔除的概率也愈大.虽然这个子采样公式是启发式的,不仅加速了学
                 习速度而且提高子图的准确率,同时子图语料库 sg cors 中低频的子图可以直接使用剔除的方法,即将子图语料库
                 频率小于某一定值的子图剔除.实验中,我们取值为 3.子图语料库中对高频子图进行子采样,对低频子图进行剔
                 除,剩余的子图就是普遍存在于训练样本恶意程序中,我们将子图语料库中剩余的子图称为特征子图库.
                 3    子图嵌入

                    本节的目的是将特征子图库中的子图向量化,这利用了神经语言模型 SkipGram                        [19−21] 的思想(如图 5 所示).
                 神经语言模型可以解决词相似性问题,即可以从文本中找出语境相似的词,如“苏维埃”与“俄罗斯”“语文”与“数
                 学”等.其核心思想是,将每个词表示成多维向量,并且每次更新使得一个词与其上下文的词(相邻的词)相似而与
                 其他词不相似.通过对文本不断地学习,会使得上下文相似的词相似,具体表现词向量的空间距离相近.我们将
                 图视作为一种特殊的语言,类似于不同的词组成句子一样,不同的子图构成图,提出了 SubSkipGram 模型去学习
                 子图间的相似性.

                                                INPUT PROJECTION  OUTPUT

                                                                     w(t−2)


                                                                     w(t−1)

                                              w(t)

                                                                      w(t+1)


                                                                     w(t+2)

                                                   Fig.5   SkipGram model
                                                    图 5   SkipGram 模型
   120   121   122   123   124   125   126   127   128   129   130