Page 291 - 《软件学报》2025年第8期
P. 291

3714                                                       软件学报  2025  年第  36  卷第  8  期


                 2.5   威胁模型
                    在工业场景中, 恶意软件分类器的性能经常会受到概念漂移的影响. 由于恶意软件编程语言和攻击者对抗性
                 攻击方法的变化, 同一家族的恶意软件的组成结构和行为特征会随着时间的推移而演变. 在概念漂移场景中, 在旧
                 恶意样本数据上训练的分类模型在分析新恶意样本时表现出性能下降, 这为实际应用带来了严重阻碍. 本文的目
                 标是通过结合反汇编分析和自然语言处理方法, 利用深度学习算法深入理解恶意软件的内在语义特征, 以此增强
                 分类模型的鲁棒性, 减少概念漂移为分类模型带来的性能下降.
                    为了更加清晰地描述方法和实验, 在本文中不考虑软件加壳对静态分析带来的影响, 并对实验数据进行了脱
                 壳和查壳处理. 软件加壳会改变恶意软件字节流分析的结果, 但由于自动脱壳技术已经相对成熟, 所以本文不作单
                 独讨论.

                 3   基于  BERT  和自编码器的恶意软件分类

                    本文结合反汇编技术、自然语言处理技术和特征降维提取方法, 提出一种基于                          BERT  和自编码器的恶意软件
                 分类方法并实现原型系统         MCBA. 该系统由    3  部分组成, 系统框架图如图      1  所示.

                                              BERT 编码器
                                                T0  CLS
                                                           拼接向量       768 维 356 维 256 维   256 维 356 维 768 维
                                                T1                                  分类预测 y
                                        向量嵌入                                           分类器 g
                                                T2                                    z
                                   …            T3            …    几何中位数子空间投影 r  …  …  …     …   …    …
                                push  ebp
                   …            mov   ebp, esp
                   55 8B EC 83 EC 28 89 4D    sub  esp, 28h  …
                   FC 8B 45 08 8B 48 10 3B  mov   [ebp+var_4], ecx  BERT 编码器      几何中位数子
                   4D 0C 73 0A 68 98 4B 41    mov  eax, [ebp+arg_0]
                   00 E8 D4 0D 00 00 8B 55  mov  ecx, [eax+10h]                    空间投影 s
                   …            cmp  ecx, [ebp+arg_4]
                   二进制文件           …            T0  CLS
                                 反汇编分析
                                                T1
                                                T2
                                                T3
                                    图 1 基于   BERT  和瓶颈自编码器的恶意软件分类模型系统架构

                    首先, 对目标二进制恶意程序进行快速扫描和反汇编分析. 与其他基于字节流分析的方法不同, MCBA                                先通
                 过反汇编分析提取出代表程序语义和行为的反汇编操作码, 过滤掉大部分冗余的程序通用架构和数据信息.
                    然后, 系统将操作码视为自然语言单词, 将代表该程序特征的操作码序列组合成一个近似自然语言的句子.
                 BERT  接收到代表程序信息的句子并将其作为一个整体进行分词和词向量嵌入, 输出代表整个句子特征的                                 [CLS]
                 向量.
                    接下来, 通过几何中位数子空间投影和瓶颈自编码器对代表程序整体特征的                         [CLS] 向量进行降维和关键信息
                 提取, 以得到与分类任务最相关的特征表示形式. 通过训练, 确定几何中位数子空间的投影矩阵以及瓶颈自编码器
                 的网络参数. 最终通过分类器完成恶意软件分类任务.

                 3.1   基于反汇编的执行导向的操作码提取
                    为了去除恶意程序的二进制流中的冗余信息, 提取包含语义等关键信息的原始数据供后续分类模型使用, 本
                 文基于   IDA Pro  为  MCBA  设计了面向程序语义的静态分析模块. 现有基于字节流的分类方法通常直接将整个二
                 进制文件的二进制流以        8  位为单位转换为取值为       0–255  的字节流. 这种字节流转换在一定程度上可以反映恶意程
                 序的整体特征和部分程序上下文关系. 然而, 程序在执行过程中, 指令并不总是按地址顺序执行的. 当执行跳转指
                 令时, 传统方法将失去对上下文语义的捕获. 此外, 标准的二进制文件包含许多与恶意软件特征无关的信息. 冗余
   286   287   288   289   290   291   292   293   294   295   296