找到NLP在软件分析和漏洞挖掘的契合点之后,我们需要去调研这方面现有的研究情况。发现已经有人使用NLP来对二进制代码进行分析,主要有3种方向上使用NLP分析二进制代码,但大多数都是对二进制代码进行静态分析,以下就这三种分析方向进行介绍。
Code Similarity Detection
至今,已经有两篇文章使用NLP做代码相似性检测,分别是1)Safe: Self-attentive function embeddings for binary similarity 发表在 2019 Detection of Intrusions and Malware & Vulnerability Assessment 和2)Neural Machine Translation Inspired Binary Code Similarity Comparison beyond Function Pairs发表在 2019 NDSS。
首先1)文章描述了二进制分析已经从安全人员进行代码审计转换为将二进制代码转换为多维向量表示,然后通过简单有效的几何运算来比较向量。这种方法通常使用手工提取从二进制代码导出特征,这样导致漏洞检测或恶意代码检测的成功与否都受到安全人员选择特征提取方向的影响。所以这篇文章创新的提出了基于自注意神经网络的函数嵌入架构,直接通过反汇编二进制程序得到汇编代码作为数据集,并通过tensorflow的skip-gram来得到预训练模型。对于之后的自注意网络使用了双向递归神经网络以嵌入后的指令向量作为输入,RNN计算一个总结向量考虑到指令本身及其上下文。最终嵌入是所有
Original: https://blog.csdn.net/weixin_43926330/article/details/121628125
Author: 飞天王八易
Title: 基于NLP的软件分析和程序漏洞挖掘(二)
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/531570/
转载文章受原作者版权保护。转载请注明原作者出处!