当前位置: 代码迷 >> 综合 >> USENIX2021-Fine Grained Dataflow Tracking with Proximal Gradients
  详细解决方案

USENIX2021-Fine Grained Dataflow Tracking with Proximal Gradients

热度:1   发布时间:2023-12-14 02:35:25.0

具有近梯度的细粒度数据流跟踪

摘要

我们介绍了近端梯度分析(PGA),这是一种新的、理论上有根据的方法,可以跟踪更精确和细粒度的数据流信息。PGA使用近似梯度(不可微函数梯度的推广)在程序中精确地合成不可微操作上的梯度。在程序上合成渐变消除了DTA中发生的许多数据流传播错误,并提供了关于每个测量数据流如何影响程序的更丰富信息。我们将我们的原型PGA实现与7个现实世界程序上的三种最先进的DTA实现进行了比较。我们的结果表明,PGA可以在不引入任何显著开销(平均<5%)的情况下,将数据流跟踪的F1精度提高33%(平均20%)。我们通过发现22个bug(20个由开发人员确认)和2个侧通道泄漏,并在测试程序中识别19个现有CVE中可利用的数据流,进一步证明了PGA的有效性。

实现代码:https://github.com/gryan11/PGA

主要内容

在本文中,我们提出了一种替代的数据流度量方法,它解决了DTA的局限性,同时保留了DTA在可伸缩性方面的优势。我们观察到,梯度是初等微积分导数的多变量推广,是通过可微模型跟踪输入影响的常用方法。
优势:
(一)细粒度跟踪。梯度测量影响的大小和方向,这表明对操作输入的更改将如何影响其输出。这意味着可以使用渐变来确定哪些标记源最有影响力,以及它们将如何影响程序行为。这如图1所示,其中梯度的大小确定了最有影响的输入,梯度的方向指示了如何改变输入以达到漏洞。
?

  相关解决方案