Skip to content

数据流窗口

铲子科技 edited this page Nov 12, 2024 · 10 revisions

功能列表

  • 数据流窗口用于显示当前选中的漏洞的数据流信息,即污点分析的污点传播路径
  • 数据流节点默认只显示数据流节点的变量名称,用户可以勾选显示文件名复选框,让数据流节点显示节点对应的代码文件名及行号

漏洞代码定位

  • 鼠标点击数据流节点可以在编辑器中打开对应的文件位置,并选择节点对应的代码中的变量

漏洞的数据流节点与边

  • 鼠标停留在数据流节点可以查看节点的详细信息
  • 鼠标停留在数据流节点之前的小三角,会显示数据流的边,即污点的传播方式

名词解释

  • 数据流:这里的数据流指数据在代码中的流动,如果一个数据能从规则中定义的source点流到sink点,就会检测出漏洞,一个完整的数据流包括一些列数据流节点和边
  • 数据流节点:这里主要是指各种变量、常量,代码中的表现形式:局部变量、成员变量、常量(字符串 布尔常量 整形常量等),包括这种变量常量的声明、引用。
  • 数据流边:数据的传播方式:比如赋值、变量使用、方法调用、构造函数、foreach等都会引起数据传播,形成边。
  • 注:对于无参call,我们会采用一个名称为noArg的占位参数,参数位置属性argPosition为-1,以形成完整的callgraph,但目前在数据流检测时尚未用到。对于接口和抽象类的call,数据流会流向它的子类的同一个方法的同一个参数,以应对spring 依赖注入类似的功能导致的数据流中断。

截图效果

  • 下图展示了数据流窗口的效果 image
Clone this wiki locally