破局传统算法痛点,腾讯安全首提基于跨模态检索的二进制代码-源代码匹配
文章插图
文章插图
整理 | 高卫华
出品 | AI科技大本营
头图 | CSDN付费下载自视觉中国
近日 , 在NeurIPS 2020正式发布的论文入选名单中 , 腾讯安全科恩实验室聚焦解决二进制安全问题的《CodeCMR: Cross-Modal Retrieval For Function-Level Binary Source Code Matching》 , 凭借首次提出基于AI的二进制代码/源代码端到端匹配算法的创新研究入选 。
该论文首次提出了基于AI的二进制代码/源代码端到端匹配算法 , 与传统算法相比 , 准确率大幅提升 , 并为逆向分析领域提供了新的思路 , 可提升工业部署方面的效率 。
目前 , 该论文成果已在腾讯安全科恩实验室研发的代码检索工具BinaryAI实现了落地应用 。
文章插图
论文背景
在AAAI 2020中 , 腾讯安全科恩实验室提出了一项利用图神经网络解决二进制程序函数相似性分析问题的技术 , 得到广泛关注 。
在此基础上 , 科恩实验室将研究方向扩展到二进制代码与源代码的交叉领域 , 进一步实现其在AI+安全新兴方向中的全新探索与突破 。
二进制代码-源代码匹配是信息安全领域的重点研究方向之一 。 在给定二进制代码的情况下 , 逆向分析的研究人员希望可以找到它对应的源代码 , 从而提升逆向分析的效率和准确率 。
B2SFinder和BinPro等传统算法提取源代码和二进制代码的字符串、立即数等特征进行匹配 , 而函数级别的源代码与二进制代码的特征非常少 , 匹配准确率不高 。 另外 , 要设计合适的特征 , 需要大量的专家经验 。
图1展示了一个函数的源代码与二进制代码 , 从中可看出 , 除了字符串和立即数特征 , 代码中隐藏的语义特征也很关键 。
因此 , 该论文设计了一种端到端的模型 , 可以自动提取代码间的语义特征 , 从而提升匹配的准确率 。
文章插图
图1 - 二进制代码与对应的源代码
文章插图
CodeCMR框架介绍
二进制代码-源代码间的检索任务中 , 把两种代码当作两个模态输入 , 可类比到图文互搜等跨模态检索场景 。
对此 , 科恩实验室基于AI设计了CodeCMR框架 , 以解决传统算法匹配准确率不高的问题 。
计算最终向量前 , 两个模态之间没有信息传递 , 在实际应用时可预先计算向量 , 节省线上计算时间以及存储空间 。
文章插图
图2 - CodeCMR整体框架
整体结构
模型输入中有源代码特征和二进制代码特征两部分 , 其中源代码特征是字符级别的源代码、从源代码中提取的字符串和立即数 , 二进制代码特征是控制流图、二进制代码的字符串和立即数 。
CodeCMR框架能够以不同模型对源代码特征和二进制代码特征两大模块的语义、字符串、立即数等三大输入特征进行向量计算 , 并以在基础上用拼接+BatchNorm方式实现高效匹配转化 , 最后使用triplet loss作为损失函数 。
文章插图
语义模型
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采样方法相比 , 表现出更好的匹配效果 。
- 逛逛|淘宝内容化再升级:“买家秀”变身“逛逛”试图冲破算法局限
- 小店|抖音小店无货源是什么?与传统模式有什么区别?
- 算法|【远见】个人信息保护法将出台 揭开数据算法的神秘“面纱”
- 字化转型|疫情重构经济,传统企业「数字化」的通关密码是什么?
- 卖场|大卖场如何破局?
- 继传统行业被马云抢饭碗后,互联网巨头又对菜贩出手了!生意难做
- 挑战|德邦股份:社区团购是对传统电商的一种补充,对物流企业来说有机会也有挑战
- 算法|为什么长视频没有强算法推荐的产品
- 纽带|高瓴资本:全面布局智能制造,做连接新经济与传统行业的纽带
- 数据结构与算法系列 - 深度优先和广度优先