01.How to audit a project
2023-07-31 13:12:30
# 11.experience
How to audit a project
- 将仓库克隆到本地,如果对项目非常陌生,建议看一下文档、白皮书、项目网站、博客等。必须了解:技术设计、项目目标等
- 选择自己擅长的工具,比如项目是hardhat写的,然后可以建一个新的foundry,移动过去
- 使用
cloc . --by-file
来排版,得到每个文件中的行数(注意不要计算依赖的),然后放到excel或者生成到markdown中。这样自己就有一个大概的任务认知了,通过标记哪些完成了,哪些没完成,从简单的开始 - 审计之前运行一些工具:静态分析工具比如mythx和slither
审计过程中
时刻注意
- 找个md文档随时记录下来自己的看法,审计看法
- 不要太深入某个单一问题
- 对方法进行模糊测试,比如使用foundry
- 向开发人员适当提出问题
审计
- 常见的漏洞
- 关键功能的访问控制检查
- 合约是否符合标准
- 函数的调用逻辑
编写PoC,我推荐使用Foundry
- 撰写报告
- 漏洞摘要:对该漏洞的清晰、简洁的描述
- 漏洞严重性
- 证明:PoC攻击脚本或者任何攻击证明攻击的代码
- 修复漏洞的意见
专业技能占一半,编写可读性报告占一半。项目的安全是你和项目方的共同责任,你需要倾尽全力,但是如果最终出现一些问题,也不必自责