原文标题:《黑暗森林之侠客行》 有一篇广为流传的文章《以太坊:黑暗森林》。这篇文章里,介绍了一种「泛用型交易机器人」。这种机器人会监听已经被广播,但还没有上链的交易。一旦发现原交易是有利可图的,就以更高的 gas 发送相同的交易,抢在原交易之前成交。 如果你看过火影忍者,这就像复制忍者卡卡西,复制了再不斩的忍术并抢先发动 以太坊世界就像就像一片黑暗森林,遍布着这种机器人,你的一举一动都被暗中观察着。这听起来是一个冰冷且无情的故事,但我们接下来要讲的事情,充满了温暖和侠义。 我们犯了个错误北京时间 3 月 9 日早上 8 点。 我接到了社区经理的电话,说我们的合约在凌晨 5 点被攻击了。我立刻给技术团队打电话查看具体情况。 随后我们发现,资金池的初始化函数存在漏洞,可以被重复调用。攻击者利用闪电贷将真币借出,随即通过重新对合约初始化将资金池代币对替换为攻击者创建的假币,从而绕过闪电贷资金归还检查。 这不是负责审计的 Peckshield 的问题,而是我们在上线前,为了简化代码逻辑,进行了几处修改,漏掉了一处权限控制。我们犯了个巨大的错误。 好在这一问题只影响了我们 V2 资金池的部分业务,交易模块不受影响。而且只有项目方受影响,普通用户没有损失。 我们立刻开始补救。技术团队在 15 分钟内把所有还存在漏洞的资金都救了回来(大约 8w 美元)。随后产品上封闭建池入口,运营端发公告,通知用户和项目方事情的进展。 与此同时,我们统计了损失,大概 380w 美元价值的 USDT、ETH 和项目代币。之后我们立即开始追查。 来自 samczsun 的好消息北京时间 3 月 9 日早上 8 点半。 事发后半小时内,我收到了来自白帽 samczsun 的一条的私信,说有一位不愿透露姓名的神秘人士,我们暂且称之为猎豹先生,「意外地获得」了其中一笔价值 189w 美金的被盗资金,并委托 samczsun 告知愿意全额归还给我们。 猎豹先生到底是谁,到底如何获得部分被盗资金,是否知晓剩余被盗资金的去向或线索? 扑朔迷离的事件过程我们对攻击事件进行分析后发现,共有两个地址执行了攻击,我们分别称之为河马先生 (0x368)和羚羊先生 (0x355)。 河马先生执行了两次攻击。其中 20w 美金进入了中心化交易所,我们立刻联系交易所冻结了。而另一笔 189w 美金,正好与猎豹先生要还给我们的金额一致。所以我们推测,河马先生应该就是猎豹先生,他很可能是一个白帽黑客。 (责任编辑:admin) |