0%

BlockScope

BlockScope: Detecting and Investigating Propagated Vulnerabilities in Forked Blockchain Projects

Yi X, Fang Y, Wu D, et al. BlockScope: Detecting and Investigating Propagated Vulnerabilities in Forked Blockchain Projects[C].Network and Distributed System Security (NDSS) Symposium 2023 27 February - 3 March 2023, San Diego, CA, USA.

NDSS23的工作

许多区块链重用或者fork了比特币/以太坊等经典区块链的代码,不难理解,当fork或频繁fetch时可能将原来链上存在的漏洞传播到当前链上。本文设计了BlockScope,能够在输入现有的BC/Ethereum安全补丁后,检测出多个cloned漏洞

BlockScope采用基于相似度的代码匹配机制,设计了一种新的计算代码相似度的方法来覆盖所有syntax-wide变量的克隆

BlockScope能够自动抽取补丁的上下文,找到潜在的相关代码进行对比

和现有工作ReDebug相比,能在精度接近的情况下实现1.8倍的recall(确定更多可能执行的路径或者函数调用)

分别在13/16个forked区块链上发现了101个漏洞

  • 40个被接受或修复
  • 66被知情,等待中
  • 4个被拒绝

总结出了3类从源到分叉的链的漏洞传播规律

仅开源了具体的漏洞报告 VPRLab/BlkVulnReport: A Summary of Vulnerabilities Found in the BlockScope NDSS’23 Paper (github.com),没有源代码

Intro

因为开源,所以可以fork或重用eth和Bitcoin的代码

漏洞传播可能的途径

  • 最初分叉
  • update commits

创新点

  • 相似度检查而不是精确的hash对比,相似度计算方法改进,更好处理增删和重排序
    • 更接近Soundness:大幅降低假阴率,略微提高假阳率
  • 抽取并利用补丁代码的语境定位可能相关的代码段
    • 提高执行效率和精度

数据集采用了38个补丁

  • 32个是比特币的代码仓库中来的(CVE只有4个
  • 6个Ethereum的CVE

分别测试了11+6个fork链的C/Go的代码,准确率和recall率为91.8%

发现漏洞后试图总结传播规律

  • 最初fork时传播
  • fetch时传播
  • 被非显式的commit感染

大多数分叉链修补的时间延迟约为200天

提供的具体漏洞CVE和PR:VPRLab/BlkVulnReport: A Summary of Vulnerabilities Found in the BlockScope NDSS’23 Paper (github.com)

wu老师的主页总结了学术界和工业界安全相关会议的ddl Daoyuan Wu’s HomePage (daoyuan14.github.io)

design choices and system overview

  • 基于补丁的代码检测
  • 不针对特定编程语言,不采用类似程序分析的抽象
  • 创新点
    • 利用补丁代码上下文,仅定位相关的代码(不用分析全程序,精度更高)
    • 采用基于代码相似度的代码匹配机制,支持3类代码克隆

问题与思考

  • 什么是similariry based code match
  • recall:分析结果中确定可达分支的能力
  • extract之前需要normalizing and tokenizing