趣投稿破局传统算法痛点,腾讯安全首提基于跨模态检索的二进制代码-源代码匹配( 二 )


CodeCMR框架中 , 字符级源代码使用DPCNN模型 , 二进制控制流图使用端到端的GNN模型 。
在函数级别 , 字符级源代码的输入通常在4096以上 , DPCNN的效果远优于TextCNN和LSTM 。 另外 , 在语义特征识别中 , 端到端的GNN模型表现出更强的健壮性 , 可帮助破解传统算法高专家经验的痛点 。
趣投稿破局传统算法痛点,腾讯安全首提基于跨模态检索的二进制代码-源代码匹配
本文插图
图3 - 源代码与二进制代码的语义模型
立即数、字符串模型
源代码和二进制代码的字符串和立即数不完全相同 , 需要设计模型进行匹配 。
趣投稿破局传统算法痛点,腾讯安全首提基于跨模态检索的二进制代码-源代码匹配
本文插图
对于立即数 , 科恩实验室设计了Integer-LSTM , 其输入有integer token和integer number两个 。 integer number作用在LSTM的输入门和输出门 , 以控制信息流动 。
对于字符串 , 其采用分层模型 , 先通过LSTM模型得到每个字符串的向量 , 再使用sum pooling方法得到字符串集合的向量 。
Norm weighted sampling
在两大模块的向量采样阶段 , Norm weighted sampling 与随机采样和distance weighted采样方法相比 , 表现出更好的匹配效果 。
distance weighted sampling采样方法可解决hard样本在训练早期收敛到局部极小值的问题 , 在分布中选择各个概率的样本 。
趣投稿破局传统算法痛点,腾讯安全首提基于跨模态检索的二进制代码-源代码匹配
本文插图
在此基础上 , 科恩实验室又提出改进 , 增加超参数s , 帮助调整概率的分布 , 从而适应不同的任务和数据集 。
趣投稿破局传统算法痛点,腾讯安全首提基于跨模态检索的二进制代码-源代码匹配
本文插图
这种融合训练的方法可大幅提升二进制代码/源代码的匹配准确率 , 从而提升工业部署效率 。
趣投稿破局传统算法痛点,腾讯安全首提基于跨模态检索的二进制代码-源代码匹配
本文插图
实验结果
与传统算法仅提取字符串、立即数特征进行匹配的做法不同 , CodeCMR模型能够实现对代码间隐藏语义特征的自动提取 , 从而达到提升二进制代码-源代码跨模态检索匹配效率的目的 。
从实验结果中可以看出 , 在语义模型中 , DPCNN+HBMP取得最优效果 , 表示在二进制侧采用端到端训练优于预训练的node embedding;此外 , 与随机采样、distance weighted采样相比 , norm weighted的采样效果更好 。

趣投稿破局传统算法痛点,腾讯安全首提基于跨模态检索的二进制代码-源代码匹配
本文插图
表1 - 实验结果
train/valid loss曲线也证明了这一点 , 当s=5时 , norm weighted sampling的train loss更高 , valid loss更低 。
趣投稿破局传统算法痛点,腾讯安全首提基于跨模态检索的二进制代码-源代码匹配
本文插图
图4 - 训练与验证的损失函数曲线
论文链接:
https://keenlab.tencent.com/zh/whitepapers/neurips-2020-cameraready.pdf
趣投稿破局传统算法痛点,腾讯安全首提基于跨模态检索的二进制代码-源代码匹配
本文插图

趣投稿破局传统算法痛点,腾讯安全首提基于跨模态检索的二进制代码-源代码匹配
本文插图


推荐阅读