slowmist / SlowMist-Learning-Roadmap-for-Becoming-a-Smart-Contract-Auditor
- воскресенье, 22 октября 2023 г. в 00:00:11
Smart contract audit skills roadmap for beginners, auditors, engineers, etc.
By: Kong'@慢雾安全团队
本技能表是慢雾安全团队智能合约安全审计工程师的技能集合,旨在为团队成员列出智能合约安全审计的所需技能并驱动团队成员形成研究、创造、工程的自我进化思维。
智能合约安全审计技能主要分为四个部分:寻门而入、倚门而歌、融会贯通、破门而出,由浅至深地列出在各个阶段所需掌握的专业技能。而在此之前,需要一些通用技能武装我们的大脑,出发准备部分将会是我们审计之路的锚点。
所谓磨刀不误砍柴功,在正式出发之前强化自己的思维是必要的,这可以使我们走得坚定、走得更远。
认知与实践是密不可分的,理论与实践应相统一。
道德和法律是安全从业者的底线,安全从业者在坚守底线的同时也要锻造过硬的技术,在关键时刻出奇制胜。
单个人的能力覆盖面总是有限,团队战斗可以很好地补全个人的不足。
协同审计流
审计工作流
Hacking Time 文化
加密世界发展至今其涵盖了密码学、经济学、数据科学等学科,面对知识体量极为庞大的加密世界,如何寻门而入是为关键。本阶段将从 Ethereum (以太坊) 及其智能合约语言 Solidity 开始寻找进入加密货币世界的大门。
在了解智能合约是什么之前,应该先了解智能合约所运行的区块链平台是什么。
在不同的区块链可能会使用不同的语言构建智能合约,例如:Solidity、Move、Rust、Vyper、Cairo、C++ 等。目前 EVM 兼容链使用的 Solidity 仍是最流行且易于入门的智能合约语言,应该确保完整阅读完其语言文档。且应了解运行在 Ethereum(以太坊) 上的代币合约的设计标准与具体的合约实现。在此基础上了解智能合约是如何做到可升级的,并实操掌握智能合约的编写与测试。
在学习完成智能合约基础知识后应掌握其常见的基础漏洞,并知晓漏洞原理。其中 Quillhash 整理的漏洞列表聚合了多个来源,其较为完备的展示了当前常见的智能合约漏洞类型。(但对于初学者来说建议反复阅读所有列表以加深印象)
作为审计人员,必须了解智能合约的最佳实践以及安全标准。最佳实践为审计中寻找安全问题提供参考,安全标准为审计中提出的安全问题提供依据。
在学习了区块链与智能合约基础知识以及常见的智能合约漏洞后,可以通过一些简单的 CTF 挑战巩固以及实践所学的知识。
掌握了区块链与智能合约的基础知识后,我们便推开了 Solidity 智能合约安全审计的大门,门后的智能合约世界仍极为广阔。本阶段将从去中心化金融(DeFi) 开始深入地探索门后更为广阔的智能合约应用。
区块链和智能合约使 DeFi 的构建成为可能,DeFi 的出现也使得 Ethereum 等公链快速发展。在做进一步探索之前,理应了解 DeFi 是什么?
在初步了解了 DeFi 是什么后,应进一步了解它们实现了什么/是如何实现的?通过阅读当前头部去中心化金融(DeFi)协议的技术文档以初步了解头部 DeFi 协议是如何实现的。
当前多数 DeFi 项目都相互依赖、组合,一些头部的 DeFi 协议成了构件 DeFi 组合基石,所以掌握这些 DeFi 的实现极为重要。在先前通过协议技术文档对 DeFi 的实现进行初步了解后,再通过阅读全量源代码的方式掌握其具体的逻辑、经济模型。
DeFi 并不局限于智能合约,前端、后端也是其重要的组成部分,绝大部分用户通过前端与 DeFi 进行交互。因此在了解了 DeFi 的运作与实现后,通过前端安全实践、后端安全配置要求与 DeFi 历史漏洞对其面临的风险进行学习与实践。
在进行审计时,个人的角度总是会有所遗漏,无法覆盖所有情况。因此通过阅读他人的审计报告以学习不同的漏洞发现方式和审计思考方式很重要。
进行较有难度的 CTF 挑战以巩固知识。
在对头部 DeFi 的探索过程中将建立起对 DeFi 的深刻理解,接下来通过从底层 EVM 到 DeFi 上层经济模型的学习来继续加深对智能合约的理解。并且在此过程中,可以通过独立审计复杂智能合约以沉淀自己的审计方法论。
EVM 负责执行智能合约指令,深入了解 EVM 有助于我们对智能合约的部署、调用、执行、数据存储有更为深入的理解。同时可以为 Gas 优化、漏洞发现打好基础。
链上交易的执行都需要付出 Gas 成本。对于复杂合约来说,优化 Gas 可以降低用户交互成本,吸引用户使用。这就要求审计人员需要对 Gas 优化设计有一定的了解。
经济模型是 DeFi 产品的核心部分,所以了解经济模型的风险是很有必要的。在学习过程中应沉淀出自己的见解与方法论。
在将这些技能融会贯通后,审计人员应具备拆解分析复杂的高原创性 DeFi 协议的能力。
学习其他优秀同道者所研究的内容可以给我们更多的启发,拓宽我们的视野。
在独立审计过足够多的复杂项目,并经历过各种业务场景,沉淀了大量知识后,能够使我们快速应对突发安全事件并进行快速分析与输出。下面是一些常用的分析工具:
进行实战,以最真实的场景检测能力。
在由 Solidity 智能合约寻门而入后,不应再满足于在单一领域兜兜转转,而是应该沉淀出自己方法论,大胆地凿出一道新门,破门而出,在深耕当前领域的同时拓展其他领域。
在从 Solidity 智能合约入门后不应只局限于此,也应拓展其他类型、语言,并对其涉及的审计方法有所沉淀。
将智能合约安全审计技能融会贯通后,可以沉淀出属于自己的方法论,帮助我们快速的触及问题的核心并确定解决思路,好的方法论能让我们事半功倍。
创造力是我们能够克敌制胜的法宝,是我们保持前进所需具备的东西。在按部就班地掌握技能后,再武装我们的思维,这能够使我们走得更远。
感谢朋友们对本文提出的宝贵建议。