人工智能与漏洞识别-devign【3】修改CPG图

该项目还在进行,具体细节暂不公布

前期

不使用自动暂停时,大佬复现给出的Accuracy 0.5247524752475248,F10.6129032258064515
人工智能与漏洞识别-devign【3】修改CPG图_第1张图片
以上结果并不算太好,在论文当中作者提到了DFG,但实际上大佬复现的项目并没有使用,但使用了PDG,我们就按照作者的想法继续探索,DFG用于跟踪数据流的变化,本文最后使用了污点追踪的方法,连接相应的Node,edge类型为ast。

总体思路

  1. 对数据集进行slice
  2. 为单个c文件生成cpg图
  3. 对每一个cpg图生成method_json
  4. 获取c标准函数
  5. 使用joern进行污点追踪
  6. 生成总cpg图,并连接node
  • 方法缺陷:每次追踪的sink都是c 标准函数,但还是存在各种函数,仅仅是作者进行前期判断发现把sink设为c标准函数,追踪结果才可能不为空。

污点追踪

在程序当中,作者把source设为该个c文件的主函数,sink为c标准函数。

连接node

人工智能与漏洞识别-devign【3】修改CPG图_第2张图片 人工智能与漏洞识别-devign【3】修改CPG图_第3张图片

根据joern社区的提示我们可以进行连边操作

  1. 声明节点
v
  1. 连边

你可能感兴趣的:(深度学习,人工智能)