A software vulnerability could be exploited without any visible symptoms. When no source code is available, although such silent program executions could cause very serious damage, the general problem of analyzing silent yet harmful executions is still an open problem. In this work, we propose a graph neural network (GNN) assisted data flow analysis method for spotting silent buffer overflows in execution traces. The new method combines a novel graph structure (denoted DFG+) beyond data-flow graphs, a tool to extract {\tt DFG+} from execution traces, and a modified Relational Graph Convolutional Network as the GNN model to be trained. The evaluation results show that a well-trained model can be used to analyze vulnerabilities in execution traces (of previously-unseen programs) without support of any source code. Our model achieves 94.39\% accuracy on the test data and successfully locates 29 out of 30 real-world silent buffer overflow vulnerabilities. Leveraging deep learning, the proposed method is, to our best knowledge, the first general-purpose analysis method for silent buffer overflows. It is also the first method to spot silent buffer overflows in global variables, stack variables, or heap variables without crossing the boundary of allocated chunks.
翻译:软件的脆弱性可以在没有任何可见的症状的情况下加以利用。当没有源码时,尽管这种静默的方案处决可能造成非常严重的损害,分析静默但有害处决的一般问题仍然是一个尚未解决的问题。在这项工作中,我们提出一个图形神经网络(GNN)协助的数据流分析方法,用于在执行痕迹中发现静默缓冲溢出。新的方法将数据流图以外的新的图表结构(注DFG+)结合起来,这是从执行痕迹中提取 kt DFG ⁇ 的工具,以及作为GNN模型的修改的Relational图表革命网络。评价结果表明,在没有任何源代码支持的情况下,可以使用经过良好训练的模式来分析执行痕迹(以前未见的方案)中的弱点。我们的模型在测试数据上实现了94.39 ⁇ 的准确度,成功地定位了30个真实世界静默缓冲溢出脆弱性中的29个。在深层次学习中,建议的方法是,我们最了解的是,用于静默缓冲溢出的首个通用目的分析方法。它也是第一个在不设全球变量、堆积变量或高位变量中找到静缓冲溢出处的缓冲溢出点的方法。