基于变体堆叠去噪自编码器与逻辑回归的JavaScript代码检测器
1. 核心概念介绍
1.1 堆叠自编码器与去噪自编码器
堆叠自编码器(Stacked Autoencoder)是一种具有多层编码器和解码器的自编码器。单个自编码器可能无法生成足够低维的向量来保留原始信息的鲁棒性,因此提出堆叠多个自编码器来生成鲁棒特征,以保留原始数据的大部分信息。
去噪自编码器(Denoising Autoencoder,dA)是自编码器的一种变体,用于处理含噪数据。它可以从含噪输入数据中恢复出原始输入数据,生成的特征比普通自编码器更鲁棒。当dA的编码器和解码器包含多层时,这种结构被称为堆叠去噪自编码器(Stacked Denoising Autoencoder,SdA)。
1.2 检测模型架构
检测混淆JS代码的模型主要包含四个阶段:
1. 数据预处理 :使用反混淆工具和代码解包方法去除JS代码的混淆,得到清理后的JS代码。
2. 特征生成 :将清理后的JS代码解析为抽象语法树(AST)的一维数组,再通过随机投影生成短的投影特征向量。
3. 特征提取 :使用变体SdA模型提取JS代码的相似特征。
4. 模型检测 :采用带有softmax函数的逻辑回归(LR)对JS代码进行良性或恶意分类。
下面是该模型架构的mermaid流程图:
graph LR
A