聚焦源代码安全,网罗国内外最新资讯!
编译:代码卫士
一名 JS 开发讲述了自己如何在60天的代码审计中发现多个漏洞并获得2.5万美元赏金的过程。
旅程开始
2022年12月,我开始学习solidity,当时已作为全栈 js 开发人员工作了六年。我从Cryptozombies 学到了很多,另外由于当时对加密世界一无所知,所以也学习了对新手非常友好的《How to DeFi》这本书。另外我还顺着crypto zombies的链接做了一些 etheranut 挑战,不过多数时候一直在看答案。
2023年3月,我还不太了解审计,偶然看到 Andy Li 和 Pashov 的访谈,他们建议开始审计并在此过程中进行学习。所以我决定尝试几个月。现在,我已经知道审计可以给我带来稳定的收入,自己对审计的兴趣也超过js开发。这是我当时在 code4rena 和 Sherlock 上的战绩,所有这些比赛都是从2023年3月5日持续到5月30日。
比赛 | 奖励 | 高危,中危 | nSLOC |
Aragon Protocol | $53.96 gas 报告 | 0 | |
Wenwin | $81.41 gas 报告 | 0 | |
Neo Tokyo | $19.30 gas 报告 | 0 | |
Y2K | $255.64 | 1, 2 | ~1519 |
Canto Identity | $1,992.82 | 1, 1 | 687 |
Asymmetry | $37.07 | 0, 2 | 653 |
Rubicon | $179.48 | 0, 4 | 1500 |
Frankencoin | $22.67 | 0, 1 | 900 |
EigenLayer | $12,193.66 | 2, 0 | 1560 |
Ajna | $606.99 | 1, 0 | 1191 |
Venus | $6,690.03 | 1, 4 | 3069 |
Index | $4,190.16(初步) | ?, ? | 4225 |
Aragon 协议、Wenwin、Neo Tokyo:$150
按照 Andy 和 Pashov 的建议,我从 gas 报告开始。我从之前的比赛中打开了两三个最好的 gas 报告,一边开始查找同样的漏洞一边谷歌查询它们是什么意思。我花了一整天会每个比赛都写了一份 gas 报告,结果非常成果,有两份评为B,一份评为A(最高等级)。一些人在群聊中说自己的 gas 并未被接受,因此我对150美元的赏金非常满意。同时,我还试着阅读之前比赛中的报告,了解自己下次的审计目标。
Y2K:$255
Y2K 可能是我尝试理解的第一个代码库。我获得了第一个中危和高危漏洞。我阅读了其他人的提交报告,Sherlock 允许在不打开 code4rena 等后台的情况下这样做,不过我从别人的提交报告中没有理解太多。
Canto Identity:$2000
我在比赛中运行了一些测试,找到一个高危漏洞。首先我查看了 NFT 的 SVG 并找到了测试中的不同之处。结果发现用户可以买到比预期更少的 NFT,由此又找到一个中危漏洞。第二天早上看到结果后高兴了一整天,甚至告诉我姐说我在两天内就得到了1992.82美元,太不可思议了!
Asymmetry、Rubicon、Frankencoin:$250
也有一些比赛颗粒无收。在这些比赛中,我没有在所有比赛上花费足够多的时间,只是从一个比赛跳到另一个比赛,在每个比赛上都花了一两天的时间并来回跳转。我本应听取顶级审计人员的劝告,在整个过程中坚持跟进一个比赛。后来我就逐渐这么做了,当时效率不怎么样,只是同时查看之前的一些报告。
EigenLayer:$12200
到目前为止对于每个项目,我最开始想的都是这个协议是干啥的,然后在谷歌查询比赛说明中的每个字。随后学习了很多关于 Ethereum staking 的知识。在这个比赛进行期间,我的时间都盯在上面,结果找出了两个高危漏洞,那天真是高兴坏了,无以言表。不过之后我的报告并未被评为最佳报告,因为只有三个人找到了某个高危漏洞,为此找到它的人获得30%的加持并获得第一,而我获得第二名。我从这个比赛中学习了很多关于 beacon staking 的知识及其相关生态系统。最终我找到了2个高危和1个中危,目前尚未公开,因此我也无法给出更多详情。
Ajna:$600
遗憾的是,我没有在这个比赛中花费太多时间,不过找到了一个价值600美元的中危漏洞,也还不错。
Venus:$6700
最后,就像 Cmichel 在文章中说的那样,必须知道 Compound 是所有去中心化端对端借款协议的基础。你应该了解它,因为很多 DeFi 原语都以某种方式和借款协议进行交互。我花了很多时间越多很多很棒的compound 相关文档,希望自己能从中学到一些基本知识。我非常享受从 Venus 找漏洞的过程,最终找到了4个中危和一个高危,我对这个结果非常满意,并最终获得第三名!
Index:$4200(初步)
我学习了一些关于 Set 令牌及其模块工作的知识。这个项目使用的是 Aave v3,那么我是如何从这个比赛中获得几乎所有的漏洞?我只不过是在 solodit 中输入 “aave v3” 并阅读了几份报告。Spearbit 中的一篇文章帮了大忙,不过结果只是初步的,后续可能会有变动,希望改动不要太大。另外通过在 Sherlock 上审计顶级审计人员的提交报告获得大概700美元的奖励,不过如果是新手的话所获的奖励就是随机的。
结论
从这些比赛中,我在5月份获得2.2万美元的奖励。太不可思议了!而且也让我在为期60天的 code4rena 榜单上获得第一名,并在90天的榜单获得第二名。我希望有人知道,作为一名 web3 安全研究员并做出尝试,不仅有钱拿还非常有意思。即使你才刚刚开始涉足,也可以在某天因为 gas 报告获得50美元的奖励并在此过程中学习到 web3 安全的方方面面,真的非常有趣!我确实非常喜欢这个领域。
代码卫士试用地址:https://codesafe.qianxin.com
开源卫士试用地址:https://oss.qianxin.com
推荐阅读
谷歌开源文件访问漏洞审计工具 PathAuditor(详解)
原文链接
https://0xvolodya.hashnode.dev/how-i-earned-25000-auditing-and-ranked-1-on-60-day-leaderboard
题图:Pixabay License
本文由奇安信编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。
奇安信代码卫士 (codesafe)
国内首个专注于软件开发安全的产品线。
觉得不错,就点个 “在看” 或 "赞” 吧~