www.youtube.com/@0xOwenThurm
旨在帮助有一定基础的安全研究人员提升技能,成为高级审计员。课程内容涵盖了智能合约安全的基础知识、高级DeFi概念、常见的攻击模式以及审计技巧。
课程总时长超过20小时的 Web3 安全培训课,还包括几个安全任务。同时提供了大量的代码示例,帮助学员理解各种概念和攻击模式。
课程涵盖了智能合约设计原则、外部调用攻击向量、重入漏洞、智能合约测试原则、永续合约、抢跑交易、三明治攻击、审计技巧、EVM基础知识等。
实战任务: 课程包含实战任务,例如构建永续合约协议,旨在帮助学员深入理解DeFi概念和开发者的常见问题。
审计技巧: 课程强调了审计方法,包括代码审查、漏洞分析和报告撰写。 EVM精通: 课程深入讲解了EVM的内存管理、调用数据等底层概念。 强调实践: 课程鼓励学员完成作业
课程中提供了很多提高安全性方法:
Less Code原则: 强调代码简洁的重要性,指出代码量与漏洞数量呈指数关系,并建议精简存储变量。
避免循环: 强调避免在智能合约中使用循环,以防止DoS攻击。
限制输入: 强调对用户输入进行严格验证,防止恶意输入导致意外行为。
处理所有情况: 强调考虑所有可能的情况,包括稳定币脱钩、资不抵债的清算等。
避免并行数据结构: 强调避免使用并行数据结构,以防止数据不一致。\n*
外部调用安全: 强调外部调用的风险,包括重入、DoS攻击、返回值处理和gas限制。 后置检查: 强调在交易完成后进行后置检查,以确保状态一致性。\
代码覆盖率的局限性: 强调100%代码覆盖率并不意味着没有漏洞,需要关注边缘情况。Fuzzing测试: 强调Fuzzing测试的重要性,可以发现手动分析难以发现的漏洞。Echidna工具: 介绍了Echidna工具,可以进行Fuzzing测试,并生成代码覆盖率报告。 路径依赖测试: 介绍了路径依赖测试,可以发现由于交易顺序不同而产生的漏洞。
重入漏洞: 介绍了四种重入漏洞,包括经典重入、跨函数重入、跨合约重入和只读重入。
抢跑交易攻击: 介绍了抢跑交易攻击,以及如何通过设置滑点保护来防止攻击。
三明治攻击: 介绍了三明治攻击,以及如何通过设置滑点保护来防止攻击。