Web3 常见安全指南
2022-08-12 14:45
AvatarDAO
2022-08-12 14:45
订阅此专栏
收藏此文章

推特:https://twitter.com/avatardaocn 不和谐:https://discord.gg/avatardao

2022.7.25

整 理: 葫芦娃

主 持:AvatarDAO   小小   WaTell

嘉 宾:Tommy Deng 行者涵雨   Sam   DeFinder   Web3Donny

嘉宾介绍

Tommy Deng 行者涵雨:我们公司是 2018 年成立,主要是以做智能安全合约审为主营业务,至今已经审计了超过 2000 分的智能合约,包括,Defi、NFT、GameFi 以及 layer one/ layer2 的区块链平台啊。同时我们的另一块业务是做被盗资产的追回。近期很多安全热点事件,包括最近的 Harmony 跨链桥被攻击事件。然后,很多项目方包括个人的资产都有可能会被攻击,那么我们有独家的链上追踪技术,尤其是被盗资产进入了龙卷风这些混币器我们也有能力将其找到,然后跟合作的执法机关。进行联合处理,最终将被盗资产追回。第 3 个服务就是我们最近刚上线的一个平台,然后这个也是我们面向于 to C 用户的一个产品。这个产品主要是给普通的投资者去追踪一些项目,包括一些比较热门的 GameFi,还有 NFT 以及一些 crystal 的一些发币的项目。通过观察其链上的一些行为,比如说大额的资金转入转出啊,闪电贷以及智能合约所有权的转移等等。去给到一定预警,然后提前在项目方出现问题的时候,得到这个预警保证自己的资产安全。

Definder:我们是一个区块链链上的一个分析平台。通过对链上数据的原子分析,然后希望为用户挖掘和追踪 smart Money,然后让用户能第一时间获得动态的链上数据,从而发现新的投资机会。然后我们是致力于做加密投资者首选的一个区块链数据分析数据分析平台,可以让加密投资变得更加简单。

话题一:Web3 的安全隐患有哪些?

Tommy Deng 行者涵雨:安全事件分为几类:

1、合约的安全,也就是项目合约本身出现的漏洞,造成了黑客的攻击。然而这一类现在是占到项目方安全事件的主要因素。这一块主要是由于代码逻辑或者说它的一些设计缺陷,导致了黑客找到了一些攻击手段,通过漏洞窃取资产或者发起了大规模的一个资产转移。另一方面的话就是闪电贷,闪电贷本身这个安全是没有问题的。它是通过以很低廉的手段去大量的去贷出这个资产,然后导致了流动性的下降啊,造成了项目方的这个资金池枯竭。

2、主要是项目方自身的团队安全,也就是说团队卷款跑路,其实最近熊市到来,很多项目方他都不想干了,或者说他出了一些资金的问题,那么项目方由于这个资金集中在少数人手中,所以说他们就大量地将资产抛售,然后或者是通过一些办法去转移到其他的地方去。然后,将这个项目的钱带走了。然后这个主要是跟合约安全无关。但是这个确实也可以通过一些手段去得到预警。比如说项目方最近都没有更新他的 Twitter 了,或者说他的几个创始人最近都没有什么说话,那可能他准备跑路了,因为按理说正常情况一个项目正常运行的话项目方都会积极跟用户去交互嘛。

3、对于个人投资者来讲,主要是就是他的那个密钥被被泄露了,所以导致了黑客窃取了他的密钥,然后,将资产进行了转移,然后同时呢,也有一些情况是钓鱼网站。就比如说用户去参加一些空头,或者说参与一些 Fremont 的活动,他可能没有注意到这是个钓鱼网站,然后他就点击了授权,然后这个合约就进行了操作,比如说将他资产转移到了一个黑客的地址。这个是个人投资者可能遇到的一些风险问题。

针对不同的风险问题,我们也有不同的解决方案,针对于合约安全,我们建议就是项目方来找安全公司做审计,然后对于个人来讲的话,那我就觉得做好平常保管好助记词,尽量不要那个截图,因为其实所有很多那个手机的 APP 都是有访问你的这个储存的这个权限,他只要能访问你的手机储存,他就可以去将你的照片传到云上去。那么如果有一些 APP,它可能这种风控做得不好。那么他后台运营人员可能会去把你的这个注意词给记下来,然后这个就会造成你的泄露。所以我们建议就是尽量不要截图,这个助记词最好记在纸上,这个是最保险起见的。另一方面就是在参与一些 Framing 的公投活动的时候我们建议使用一些不太常用的钱包,里面尽量不要放什么资产,那么如果被盗,被钓鱼的话其实也没有什么损失,大不了再换一个新的。储存尤其是一些 NFT 的时候,尽量就储存在一些冷钱包里面。尽量就是 mint 完之后就不要动,这样能保证你的这个钱包很少与链上进行交互,这样也能降低你被黑客攻击的风险。主要是这么几点。谢谢。

Sam:我从用户的角度,谈几个需要注意的地方,就是普通用户,他还是要去学习一些,像钱包方面的知识,比如这个助记词、私钥、地址之间的关系,我今天就看到一个群里面有个人很着急,他说助记词记下来了,但是当时他好像有好几个地址,他不知道一个助记词怎么搞出好几个地址来,他这个这方面的知识比较欠缺。那其实就是他只要知道这个助记词是可以生成多把私钥的,然后私钥可以去生成地址,那他不知道的情况下,他就比较着急,那一着急呢就容易出错。比如有些可能居心叵测的人是吧,说,哎,那你助记词给我,我帮你去生成这个地址,那这时候他的资产可能就会被盗,所以就他本身的这个学习也是非常重要的,不能够真的成为一个小白,那第 2 个是,可以用一些有安全提示的钱包。当然,这手机钱包像 Mate Mask 现在没有这种安全提示,我之前也用过一款钱包他就有这种安全提示,他的某个项目啊,他有没有开源啊。他那个项目方是不是公开的,那这些安全提示告诉这个用户,那这时候在使用的时候就会相对来说会提高一些警惕,那这是外部工具。然后就是像这个软件钱包硬件钱包,他要知道,比如这个硬件钱包为什么比软件钱包要安全,可能他更多是因为硬件钱包它不联网是吧,联网的这个次数非常少,那它的安全程度就高,那这些知识了解之后,那他对这个钱包这一块可能出问题的概率就会比较小。那第 3 个是他还要去学习一下这个基本的这种智能合约的知识,比如 ERC20、ERC721。他们那个,set Pro 授权到底什么回事?授权到底是做了什么东西的操作,如果他知道这个是吧?那像之前那个 print 里面被那个黑客注入一些操作的时候,当然要授权的时候他就可以知道,喔,我现在是要给哪个合约进行授权。要操作哪个合约里面哪个授权的方法,那知道之后,他只要去查一下。这个合约跟这个 premium 到底有没有关系,他马上就能够判断出这个是不是有问题?但如果没有这些知识的话,他就很容易陷入他们的那些陷阱里面去了。所以我觉得对普通用户来讲,除了要使用一些比较好的工具之外啊,自己的知识还是要静下心来去学一下啊。然后,对这个项目方,我觉得就是,要学一些掌握一些优秀的这种库,像 open setting,这种库要必须非常精通。然后呢,有了这些库之后,其实少写代码,自己少写代码,那肯定少出错。你写的代码越多,就越容易出错了。那怎么才能少写代码?就是用这种优秀的库,优秀的库就可以减少很多问题。然后就是去学一些。优秀项目的这种合约像 Uniswap 这种合约,或者是借贷合约。就学了之后,你看人家是怎么写的,这个合约到底是考虑哪些地方,那这个时候其实对于这个合约开发者,它的这个本身的素质提高就很有帮助了。然后,还有一个就是从软件工程这个角度,项目方还是要做好这种测试工作的,不能因为这个复杂一点智能合约,就几千行代码它就放弃对这个单元测试这种可能做的比较比较粗浅。其实是这种更需要覆盖率必须要做到就 90% 以上,那就相对来说会安全性会比较高一些。剩下的我觉得对 DEFI 这种项目,那就不仅要项目方或者开发者,他深度要好,它的广度也要很广才行,因为 DEFI 一些堆积木的项目,那堆积木必须要知道周边生态一些项目到底是怎么用的,才能把这个积木堆好。所以他不仅要深,还要广。然后这个 NFT 倒还好目前相对来说它的项目都是比较闭环的,自己就可以形成这个闭环,然后代码大部分的这个 NFT 项目代码都不多,然后他们也就不太做审计,很多时候都是找一些开发者自己帮忙看一下这个合约,因为代码比较少,所以出问题的可能性就是也比较小。我大概就说这些吧。

DeFinder:我是 defender 这边的一个技术负责人,然后我们是一个区块链链上数据分析的一个平台。然后,虽然我没有像刚才那两位老师一样直接去做合约开发,但平时也是看了比较多的大家写的一些合约吧。然后我非常赞同刚才 Sam 老师的观点。我们现在是区块链世界嘛,其实非常讲究的是链上资产归用户所有,那对应的其实资产风险也是需要用户自己重视起来的。然后刚才 Sam 老师分享了,用户需要注意的方面,然后我这边稍微补充一下,就比如说在用户的角度来讲,首先用户需要注意的,一个是钱包安全方面。然后刚才另外一位老师其实提到了,钱包备份的时候是不太建议去做截图。其实现在还有另外一个方面就是目前许多的 APP 都会去采集用户的一个剪贴板内容,比如说比较常见像淘宝,他们需要做一些谈话提示的时候,其实就会去关比较关注用户的一个剪贴板。所以在钱包备份安全方面,其实另外一个点就是大家对于剪贴板内容的一个控制,比如说我个人去备份钱包的时候就不太会完整的去复制我的一个私钥啊,或者怎么样我可能会分段复制,然后中间可能会缺省几位,然后去自己做一个手动填充。然后就是 Sam 老师刚才提到的一个钓鱼,其实,目前有一个被忽略的点就是用户比较习惯的,对相似的域名就直接去做点击了。另外就是还有一个非常明显大家可以避免的点就是当一个域名出现 HTTP 的一个错误证书提示的时候,用户就千万不要再去访问了,因为它极有可能就是一个高风险的网站了。然后另外一点的话就是,一个代币合约风险方面。目前其实有挺多家平台会做代理风险的检测。有一家叫 GO Plus Lips 的一个平台其实非常推荐给大家使用,他们平台可以输入合约之后就可以检测非常多的一些恶意行为,包括一些买卖费率啊,是否蜜罐啊,或者说它是否跟恶意地址相关啊。这个大家其实都可以去参考。包括他也会去检测地址是否就是这个一个代理合约,是否有黑名单功能和白名单功能。然后另外就是我们的 Definder 平台也接了类似这样做安全检测的一些平台,因为我们致力于去发现链上的一个阿尔法机会。那们发现出来的一个 token,他背后是否有一些风险,其实也是我们日常比较关注的一个话题。

话题二:如何解决代码的安全和资金的安全

Tommy Deng:那我现在具体来讲一下,刚才是分的这种攻击类型,然后我现在分项目类型来讲一下,根据我们跟 footprint 的联合的报告,就是里面其实最大的一部分种类就是 DEFI 的攻击,因为 DEFI 它涉及到钱嘛,它涉及到钱的流动,所以说它是会很容易被黑客攻击。那么面对这么大的诱惑,黑客就会想办法去找到其中的漏洞,然后,这里面其实有一些点呢,是作为项目方要注意的,一个项目的管理员的这个私钥泄露了,就说白了就是 DEFI 这个项目方的这个管理员,他的这个私钥,它可能存在手机上,或者说它复制到粘贴板上去,然后导致了黑客读取它的信息被盗,那你作为个人投资者来讲,你的私钥被盗了,可能只是你钱包里面的一些小图片被盗了,或者说几千油被盗了,但是作为一个项目方的一个钱包来讲,项目方钱包最少有几百万美元,那是非常大的。他们是怎么盗呢?因为我们知道作为一个项目方来讲,其实它的私钥也不会就随随便便,就这么复制到一个 Word 文档上去,那么黑客可能会去工利用木马程序啊。在潜伏在你的电脑上潜伏在你的管理员电脑上,然后在一定时间,然后再发动攻击,然后进行钓鱼。或者说等等将你的私钥获得。或者说有内鬼。也就是说,其实很多项目方来讲,他们都是几个人共用一个私钥,还有 DAO,DAO 大家可能都是去中心化,可能没有一个最主要的人,可能大家每个人都知道密钥,那但凡里面有一个人,他想做坏事,那么他就把这个钱转走,那是非常轻松的事情。那这个事情主要是人的这个事物。那另一方面是代码的事务,代码的事务,可以具体来讲一下就是包括函数权限,就是修改器的缺失就是 modifier,还有就是错别字,就是编代码的时候他编错了字,那可能这行代码它就失效了,可能他就出了漏洞,然后还有数字位数的不正确。还有就变量的缺失啊或者不正确,那这个就是开发的问题了。开发这个事情的,其实是可以通过去跑智能合约审计去实现的。那么除了 DEFI,然后闪电贷我也可以具体讲一下,闪电贷它是怎么样去实现的。DEFI 中的闪电贷呢,它其实是一种假的套利机会,因为在闪电攻击中,攻击者会通过修改代币交易对的相对价值来创造套利。他们可以通过使用他们贷出的代币,然后制造这个滑点。造成这个他偿还的金额相对来说没有那么多,造成一个这个价格的一个差额去赚钱,那这个可能也会引起整个市场的恐慌,然后导致币价暴跌,然后他们可能通过做空的方式赚钱。另一方面就是跨链桥。跨链桥的话我不知道大家还记不记得 Rolling 就是 X Infinity 的侧链,然后这个其实是今年上半年一个非常重大的一个事件。他有 9 个验证者,他这 9 个验证者里面正好超过半数,也就是 5 个得到了批准,这个资金就可以被转移,那么攻击者就设法获得了其中 5 个验证器的加密私钥。也就是说他他黑了这一半的这个节点,然后导致了他就可以行使这个转移的这个权限,Rolling 最后被黑了 5.4 亿美元。对跨链桥项目我们作为安全公司给出一些建议,也就是注意签名服务器的安全性。中心化服务器保证非常安全。这个就要使用一些传统的一些安全手段,比如说一些杀毒软件,就保证你这个电脑上不要出问题。然后在多签验证的时候呢,应该是多签服务之间应该有逻辑上的隔离,也就是说每一个节点应该是单独进行验证,而不是统一一下就可以验证,不能出现部分验证者能够直接请求其他验证者的签名,而不需要通过二次验证。然后那我们讲一下我们 Beosin 的服务能为这个项目方带来哪些的保证。我也置顶了一些我们的服务啊,包括一个 Y 还有 trace 以及我们的审计服务。我可以先讲一下我们的审计服务,我们审计服务有个非常强大的一个工具叫 Once variation and service。这个是通过自动形式化验证的方法,结合了机器学习与我们积累的 10 亿条以上的安全漏洞库。在智能合约上链前呢,对智能合约进行一个自动化的跑分,然后相当于是动机器进行 code review,然后给到一些高危漏洞的一些意见,然后再通过这个我们人工的二次验证去给到这个改进,我们改进完给了项目方改进建议之后,项目方进行这个修改,然后我们再进行一次审计,然后如果没有问题的话,我们就会发布一份审计报告,那么上线之后也是有我们这个审计报告的背书,这个投资者会更加安心的去进行投资,然后到目前为止我们审计了 2000 多份审计报告,没有出现非常严重的安全问题。我们最近上线的一个爱产品。就是鹰眼服务,我们是通过识别链上的异常交易行为去监控这个项目的安全状态。也就是说其实当审计完项目之后呢,其实项目方很多时候它会自我擅自主张去更改,或者说它的版本迭代,但作为我们初步的审计公司,其实就没有办法去干预到这个事情,那么他们如果在发版或者更新的时候,他们引入新的代码或者修改原有的代码,它可能也会产生安全问题,那这个时候我们就会用我们的链上交易的这个 Egoai 去实时监控项目的运行状态啊。比如说他项目方,它是否存资金过于集中在几个人手中,其实一些小的 DEFI 项目很多时候,资金是集中在这个创始团队的,那么他们其实想要去 Rock 库要跑路,或者说他们要去做市都是非常容易的,因为他们有了大部分的这个资金,那么他们就可以去操纵这个市场。那这个情况的话也是我们希望通过这个 AI 可以给到投资。投资者看到哪些项目方他是有可能潜在这个高清度对这个投资者不够友好。为什么比特币和以太坊它相对价格没有那么的波动呢,就是因为它的这个前十的大户,他也不能占到整个持仓的 50% 以上,它大部分都是分散出去了,所以说导致了整个大饼和以太坊它这个波动相对来讲比较稳定。但是对于一些小项目来讲的话,由于其在交易所上也不够多,然后很多时候就是交易量也不够大,他就可以造成短时间内的一个暴涨和暴跌,那么很多韭菜他就进去以为可能要涨百倍,但其实可能只是项目方先拉了一个盘,然后让你来接盘,然后通过这种反复的拉盘,然后暴跌,拉盘暴跌,他们就将手中的货以非常好的价格出去了,然后最后韭菜都接了盘。这个都不用到安全的层面了,就是说从人为的层面上都可以去追踪出来,但这个。也是为什么进行链上追踪是非常重要的一件事情。然后最后一个就是我们的被盗资产追回服务。这个服务呢,对于 to C 用户来讲的话,就是帮助被盗资产追回。当然,对于 toB 用户来讲的话呢,我们更多的是去告诉这个机构,尤其是一些托管公司,他们很多要面临这个监管的一个压力,因为他们拿了牌照,他们要确保自己手中的资金不会被作为洗钱的工具。这个时候我们就会帮他去验证说他转账的这个地址是否存在一定的洗钱行为。那这个就是我们的 KIT 服务,那么 transaction。这个服务也是帮助了很多这种 to B 的公司去保证他资产资金的一个合规性。主要我们的服务就是这 3 点。然后也希望各位可以联系我们,给我们发私信或者加我们的 telegram 群去讨论相关的一些问题,我们也很乐于去给到用户安全的一些服务,尤其是最近很多人的资产被盗,然后我们现在也是有比较成熟的方案。

Sam:在代码安全这一块肯定是跟项目方有关系的。那我其实刚刚我也提到了项目方去做一些事情,怎么降低自己的风险,那这里再补充一下除了去用那些 open setting 这种优秀的库之外就还要去使用一些非常成熟的项目写的一些代码,像那个 SUSESwap。SUSEstep 当时出来的时候它就有一个挖矿的合约,那个合约后来被非常多的项目 fork 然后去做一些稍微改动,然后一个新的一个项目就发出来了。然后那些很多审计公司啊他审计的代码其实很多也是类似的,那这个时候其实就是不要自己去重新造一个轮子,因为你造轮子的时候往往就是引入了很多风险,有现成的轮子可以用的时候就用现成的轮子。那当这个代码写完之后,交给审计公司进行审计,那审计公司也会比较轻松地去发现里面的问题,因为他们审计的都是代码,都是差不多,没有必要给他们增加一些负担,这是一方面。现在很多那种出问题的项目往往是业务比较复杂,就是项目方在设计业务的时候逻辑要清晰,那对审计这一方也是审计起来会比较轻松一些。然后其他的像资金安全的问题,我觉得项目方就是尽量降低人为参与的这种因素。比如他可以通过这个 owner 可以去操作这个里面的资金,或者通过其他的一种权限,有项目方的一些人员可以直接操纵。那种接口就尽量少一些。当然,这个为什么说尽量,其实有很多项目方,我们也发现有些项目方他会留一些紧急接口,就当他们发现,这个项目的资金出现异常的时候,他为了解决,为了尽量让这个异常不至于造成太大的损失,他们就会留一些紧急接口。这种紧急接口就是由项目方这个 owner 这个权限才能操作,它可以把这个资金可以进行转移。那这种情况呢?这个项目方就要跟社区,跟用户就要做非常多的沟通解释就是为什么要留这个接口,那对项目方的本身的这个开发人员或者项目方,他的一个人员那种公开信息也是要做的,披露做的比较好,它才会把这个紧急的这个由内部就作恶的这个风险给降低。然后就是用这个多签钱包还有通过这个 DAO 治理进行资金管理上也是也可以降低一些风险,降低项目方的资金风险嘛。然后从用户这个角度。其实就是资金安全,有一个大家都知道,其实你把资金分到多个钱包,其实是有帮助的。当然这里分到多个钱包的时候啊,比如你在利用 Mate Mask 的时候。可能是有多个钱包,但是 Mask 一般都是一套助记词,那这时候其实你分到这个多个钱包,那黑客如果拿到你这个助记词也是全部能够恢复出来的,所以其实是相当于一个钱包而已。这时候最好在 APP 钱包里面通过不同的这个助记词生成其他钱包,那这样的这个地址才是跟 Mate Mask 地址是完全是分离的,所以这个时候你既要用这个 Mate Mask,又要用一些 APP 钱包把这个资金分散会比较好一些。有时候当这个网站,突然出现警告说,这个有黑客入侵或者怎么样。这时候自己心里很慌是吧?他会去用一些第三方的工具去检查自己的地址有没有出问题,然后又检查不出来,其实这并不能排除很多用户的焦虑的心情,那这时候,以我的建议是赶紧把这个地址里面的这个资产,转移到一个新的地址上去,那一般来说就是之前那个地址,你不管做什么授权,到那个资产到了新地址之后是不可能产生这种关联的。新的地址肯定是安全的。所以很多时候这种方式是简单粗暴,但是非常有效。然后就是参与一些 defi 项目的时候,不要被那个高的 APY 所吸引,尽量是存在那种资金量比较大,然后用的比较多的这种 defi 项目啊,因为资金量大的项目他背后是有那种专门做这种审计的,专门做安全的开发人员。他会去对这个合约进行一个评估,那只有他们觉得平安全,才会把这个资金放进来,所以,低 APY 风险相对会比较小。尽量不要被那种 APY 所吸引。

DeFinder:前面两位老师,其实讲的非常专业啊。就是包括项目方的实现啊,或者说第三方审计应该做什么事情。那从我的角度来讲,其实针对代码安全,对项目方来说,其实就是首先是自己多测试,其次的话其实还是需要依赖专业的审计,就专业的多方审计去给自己的代码做一个整体的评估,然后看包括历史出现的各种风险因素啊,和一些可能并没有被曝光出来的风险因素啊。像这种其实专业的审计公司,肯定都是有自己多方考量的一些工具和经验的,刚才提到了 admin 权限,其实 admin 权限我是非常推荐去做多签的,首先多签这个行为不管是降低创始人单独握有这个私钥的一个单点风险,还是说对社区的信任角度来讲,多签都是非常有效的。因为从用户的角度来讲,首先这个项目其实不是一个一言堂的项目,不是项目创始人对于项目里面的一些重要参数想改就改,而是说需要一定的一个多签,集体去共同做这个决定,那其实这个项目在用户的角度来说,这个可信度肯定是大大提升的。然后其次,其实我主要是作为一个用户嘛,然后再从用户角度来讲,那我们首先要做的第一步其实就是一个钱包隔离。其实就是钱包的一个风险管理,然后钱包风险管理里面,其实刚才两位老师也有提到,其实就是可能会分人的钱包然后刚才老师还提到了就是 Mate master,它的多个钱包其实是由一串来生成的,所以我在日常使用过程中可能会同时装 2 个浏览器,相当于有一个浏览器。我可能只会维护我比较主要的钱包,然后另外的一个,比如说分 Chrome 跟 Firefox 2 个浏览器区分,某一个浏览器去进行主要的日常的交易,然后另外一个浏览器才会维护我重要的一些钱包。其次,如果有条件的话,也可以考虑分设备,比如说某一台机器也可以用来作为单独冷钱包,然后另外一台机器去做日常的一些交互。然后另外的话其实就是用户在选择项目的时候,其实刚才提到了一些硬性指标啊,比如说这个项目锁定了一个资金量,然后或者说交互的人已经比较多了,那这个项目可能比较成熟了,那我们可以把它看作一个比较安全的项目来进行投资,或者说参与。那么其实刚才提到说用户不要被高 APY 所吸引,其实这点非常对,因为很多很多的那种风险项目,他会伪造成,首先,它的价格可能是节节攀升的。然后,他的一个挖矿收益 stating 收益可能是看上去 3 个小时我就我就回本了。这个项目总该能撑得到 3 个小时吧,那充进去之后呢?发现。第一种可能可能就是卖不出去,第 2 种可能就是你充进去它可能就已经来了一个腰斩了,腰斩之后你又不太愿意走,那么其实就是在你进入之前,其实需要对这一个项目做比较充分的考量。我非常推荐很所有的用户都可以去学习,一些合约方面的一些基础知识吧。一些项目的开源其实都会去上传自己的源代码,然后去做一个基本的验证。然后一个 Skin 上也会提供一些,就是简单方法的调用啊,或者说可以直接看到他接口的一个 API, 其中大家可以把代码拿下来,去考察它的一个 owner 权限,这个就相当于这个合约的一个发布人,他是否保有这个代币的一些增发,或者说修改余额的权限是否有把地址拉入黑名单或者说白名单交易的选项。其实这些都是非常重要的,然后另外的。其实一个对项目来说匹比较重要的一点,其实就是有一个叫时间锁的概念。就比如说 compound 的,一个项目方在需要变更它合约里面的一个关键值的时候。他可能会需要在链上发起一笔变更交易。然后这一笔操作其实是需要等到 48 小时之后才能够完成执行的。就相当于就意味着就比如说我非常的资金非常多的资金沉淀在 compound,然后 compound 可能要做一次合约升级了,那我至少有 48 小时的一个时间来反映。如果我觉得他这一次的更新对我是有比较不利的影响的,那我可能就会考虑在 48 小时之内把我的资金给撤走了,那其实这 48 小时留给我的是非常充裕的,那如果一个项目他留了这样的一道工序在里面的话,那他给我的一个信心肯定是更多的。在最后,从我的角度来讲,就我目前看到它是安全的,并且他想要对我做出不利操作的时候我是有充分的一个时间去反应的,那它的这么一个项目设计对我来说绝对是十分友好的了。另外我想提的话其实就是对于合约来讲。他在当下他有可能是安全的,它有可能是一个可以买可以卖的一个代币。但是其实合约是可以升级的,所以在考量合约是否安全的时候,观察他是不是有升级的一个口子在,其实也是一个比较重要的因素吧。我就我这边大概讲这些。

自由麦

Q1:咱们这个项目是可以对进入混币器混进去的赃款都是可以进行追回的。我想知道咱们这个内部的机制是比较有专利性的这种技术呢,还是说是大家也可以去参考或者借鉴的那么一种技术呢?

Tommy Deng 行者涵雨:这个肯定是有专利的,我们也申请了专利。我举个例子啊,就是比如说我们之前那个项目 file con。它的质押节点遭到了黑客攻击,然后攻击者修改了节点地址的所属权之后。将资金转出到了 11 个 Safe 钱包地址。然后我们 Beosin 的技术团队,根据受害人提供的这批 C sport 钱包的取证证据根据对该数据,资金进行了追踪,然后我们研究团队就通过追踪呢发现了这个 Safe 钱包和交易所账户的关系。然后用我们的这个工具画出了资金走向图,然后发现整个资金链呢,从行为上可以大概分为 4 个阶段。就是准备阶段,然后盗币阶段,混币阶段和变现阶段。你刚才讲的这个属于混币阶段,就是说他那个资金已经进入龙卷风之后呢然后他会通过很复杂的这种方法,比如说跨链然后混币,将这个资金从原来一条链,转移到另外一条链,然后再去混币,然后混完币之后呢,再转到另外一条链。但这个其实它就不是在单链上发生的,那这个事情的话,它就存在一定的技术难度了,也就是说需要对这种跨链的逻辑非常熟悉。然后同时呢,我们跟交易所也有相关的合作,也就是一些头部的交易所,一些币进入交易所之后,我们也会去交易所去调取数据,交易所因为有 KYC 的信息嘛,在警方执法机关介入下可以知道这个钱最后是从谁那儿提出来的。这个也就是为什么能追踪到这些嫌疑人的原因。最后肯定要从去中心化往中心化走的。因为最后他要兑换成法币,那么她就必定会有 KYC 的一个过程。那么只要他有 KYC,他就可以在现实世界中最匹配到这个人,然后钱就可以追踪到。

Q2:Tommy Deng 老师你们是怎么解决这个龙卷风的和混币的这个问题的?

Tommy Deng:其实是这样的,就是混币器他就是所有区块链上的交易,他就算再怎么混,他其实还是链上交易嘛。那他不是个中心化服务,他不是中心化服务,它就必定是可以有办法去追踪到的。可以讲一下混币器的原理啊,就是混币器,它其实是一种基于 coin join 协议的解决方案。coin join 他是比特币的核心开发者。他这个思路呢,其实是利用了一个特性,也就是同笔交易可以有多个输入和输出,这就意味着可以建构这样的交易,让数百个交易发起者向数百个接收者进行转账,转不同大小的这个金额。其实在我们 web2 也有,就是叫车队嘛,就是说洗钱呐。包括资产转移地下钱庄这些,他其实就是找了好几百个这种大爷大妈银行卡。然后他就是一个人转数额不同的钱嘛。那么其实这个事情它在传统的反洗钱金融金融里面,他银行有工具可以追踪的。这个混币器它其实利用的也是类似的原理,所以说其实你要找他一定规律,然后他的那个混币,它其实有规律的嘛。一般去做混币器追踪这个事情都是一些大的一些事件,或者是项目方,因为这个事情很复杂嘛,然后要花很多的人力去去算这个事情。所以说其实是时间成本的问题。然后另一方面主要是 crystal,那其实 NFT 它不存在进混币器这么个逻辑,因为 NFT 是南方之宝,它是不可被切割的,所以 NFT 被盗呢这个事情他还非常好追踪,就是一个 NFT 转到另外一个 NFT 转,同一个钱包转到另外一个钱包,还是非常容易追踪的,这块的话主要还是要跟交易所去合作。其实我们之前跟 X two Y two 也沟通过,就是说他们这边在对被盗资产的话保护也是力度很大。如果有用户反馈说他们的资产被偷了,他们是会冻结这个交易或打标记。OpenSea 他应该也有,但 OpenSea 可能因为人力原因吧,他可能这块做的还不是很好。那么其实如果说这些头部的一些交易所,它能确保这些 NFT 有被盗的这个概率的话,它就会冻结,那其实你这个 NFT 最后还是卖不出去嘛,那最后就比较简单,但是这个 Creep 的话,主要是要快,也就是说你被盗的时候,其实我们分析其实不是几下就把所有钱都搞混币器,混币器也能没有那么大的能力去把你这么多钱给混,所以一般都是一点一点混。所以说其实这个时候就是当你知道进混币去了。你就应该找到执法机关,去将这个钱冻结。因为他最后出混币器,他肯定还要去中文化交易所,只要能找到,其中任何一条线索,你就能有办法去找到他的这个最终的去向。也就是我们其实并没有把握,把你所有进混币器的钱都能找到,但是我们只要能找到几条线索,逮到这个黑客的概率就会增加非常多了,这个就是其中的原理。

Q3:有没有一种措施是可以有效的防范黑客对项目方的 discord 的攻击呢?

WaTell:之前在参与一些 NFT 项目的时候发现一些项目方的 Discord 某一天就突然不停的发一些骚扰信息,发一些公告比如说再次开启 mint 了或者说给你发福利发这种公告,这些黑客他是怎么做到的。

Tommy Deng:其实这个就是盗号嘛,这个其实用到社会工程学校 social engineer ring。然后你想一下,你登陆的 Discord 需要输入邮箱或者手机号再加一个密码对吧?邮箱这个事情其实很好搞的,有很多人,他的直接把自己的邮箱就放在自己的网站上,或者领英,或者推特,或者说他的邮箱可以通过组合给拆出来啊,比如说什么一九几几,零几零几的,他的生日组合。然后你再去通过他的一些行为,比如说你找他 Facebook,比如他女朋友,他女朋友生日啊,他可能会把他女朋友的生日作为这个密码的一部分,然后他的这个女朋友的名字又作为另外一部分,或者说他妈的名字啊什么的,你像外国人,很多人用 Facebook,包括兄弟姐妹啊,父母啊,朋友啊都会用 Facebook。你是可以找他的社会关系的,通过这个社会关系去猜。然后可以撞出来,就直接破解了。这个事情跟盗 qq 号也是一样的,我想如果有一定年代感的人,几十年前的 qq 号很多人也是被盗号,这个盗号其实也无非就是猜到密码了。或者说啊,你搞他的验证码,你可能是去钓鱼钓他的那个密码,把他的密码给调出来了啊,可能说有一些网站啊,说是用 discord 登录和授权,然后你点进去,然后你输了你密码,然后发现它其实是一个假网站,他就他就直接把你的密码给收进去,然后他立马在后台。再把你的真密码输进去。登进去了然后立马修改你的这个密码,然后你就登不进去了对吧,你的号就被盗了。那这个时候你怎么防范呢?最好就是双重验证。如果你要登陆你一般就是登陆完密码之后吧,邮箱加密码组合之后,你再输一个手机号的验证码。手机号除非他物理抢夺你的手机号。另一方面的话,也可以用谷歌那个 SD kater 就是那个验证器,它会生成随机的那个 6 位数的验证码,然后那个码其实它也是相当于是绑定的手机,只要你手机不被偷别人拿不到。然后同时你要把这个推特啊,去打开这个异常设备登录提醒,这个其实就是他盗了你的号呢。有一些这种社交媒体呢,它是可以有限操作的,比如说他想去修改密码,他是做不到的,他就必须要双重验证,然后另一方面就是,建议 telegram 其实也打开,因为那个 telegram 它是存在很大的 bug 的,就是说你如果说在一个手机上登上,然后你在另一个设备上登,你其实只需要输那个 ID,然后。你只要知道 telegram 账号后台绑定的那个手机号然后你把那个手机号输到验证框里面,然后你就点登录,他就会给你原来登录的那个设备发一条信息,那个系统信息,然后,问你说是否要登录对吧?那其实非常危险,尤其是你可能他的 gram 信息很多,你可能就误触了然后,恭喜你,你的号就被那个黑客在另一个地方登陆了。所以说,其实 telegram 最好也设置一个单独的密码,因为它默认情况下它是不会有密码。这是一个 telegram 的一个比较大的一个漏洞,所以为什么最近也有很多安全事件,说 telegram 的信息被盗,也是因为他的 telegram 验证登录验证这一块是做的比较疏忽的,我还发现那个谷歌邮箱啊,就是那个浏览器,在这个浏览器上登录一些账号时候,他就自动保存密码了,所以一定要小心。因为如果说这不是你的个人电脑的话,是公司电脑什么的。那可能大家同时登陆这一个账号,这个会有隐患,就是说当你你把你的电脑还回去之后,他没有出恢复初始化设置。那你接下来同时登陆是可以拿到你的这个登录信息的。

【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。

相关Wiki
AvatarDAO
数据请求中
查看更多

推荐专栏

数据请求中
在 App 打开