01.How to audit a project
2023-07-18 23:50:17 # 11.experience

How to audit a project

  1. 将仓库克隆到本地,如果对项目非常陌生,建议看一下文档、白皮书、项目网站、博客等。必须了解:技术设计、项目目标等
  2. 选择自己擅长的工具,比如项目是hardhat写的,然后可以建一个新的foundry,移动过去
  3. 使用cloc . --by-file来排版,得到每个文件中的行数(注意不要计算依赖的),然后放到excel或者生成到markdown中。这样自己就有一个大概的任务认知了,通过标记哪些完成了,哪些没完成,从简单的开始
  4. 审计之前运行一些工具:静态分析工具比如mythx和slither
  5. 审计过程中

    • 时刻注意

      1. 找个md文档随时记录下来自己的看法,审计看法
      2. 不要太深入某个单一问题
      3. 对方法进行模糊测试,比如使用foundry
      4. 向开发人员适当提出问题
    • 审计

      1. 常见的漏洞
      2. 关键功能的访问控制检查
      3. 合约是否符合标准
      4. 函数的调用逻辑
  6. 编写PoC,我推荐使用Foundry

  7. 撰写报告
    1. 漏洞摘要:对该漏洞的清晰、简洁的描述
    2. 漏洞严重性
    3. 证明:PoC攻击脚本或者任何攻击证明攻击的代码
    4. 修复漏洞的意见

专业技能占一半,编写可读性报告占一半。项目的安全是你和项目方的共同责任,你需要倾尽全力,但是如果最终出现一些问题,也不必自责