9月5日,在由Odaily星球日报主办、36Kr集团战略协办的P.O.D大会安全论坛上,PeckShield研发副总吴家志发表题为《区块链智能合约及公链安全》的演讲。在演讲中,吴家志指出,整个区块链生态存在的安全问题包括智能合约、基础设施、钱包问题、矿池问题等。他还表示,因为区块链相关的项目方众多,有各种公链,公链有各种实现,智能合约也有各种实现,这些安全问题不是一家公司可以搞定的,需要更多的人来共同做好这件事,所以PeckShield与白帽汇旗下的BCSEC共同成立了DVP漏洞平台。该平台在7月24号上线,目前收到1700多个漏洞,相关的厂商已经有705个,总共注册白帽子1万多。PeckShield希望跟所有相关方合作,把整个生态做得更好。以下为吴家志演讲全文,enjoy:
各位嘉宾下午好,我是吴家志,我来分享一下PeckShield的研究成果,我们公司是从今年年初开始区块链研究的,算起来到现在,差不多有半年的时间。最早从代码开始研究区块链相关的信息,到现在研究范围扩大到整个区块链生态的各个环节。大家知道我们名字可能从是智能合约问题曝光开始,后来我们也做了很多跟公链相关的漏洞披露,也有做像前面嘉宾所说数据分析方面的研究,发了一些跟数据有关的快讯,还有热门游戏相关的漏洞分析等等。我们有一个目标就是希望整个生态能够在一个安全的状态下运转。我们认为区块链某一定程度会取代人类的一些经济行为,跟以往的经济行为很大不一样的是“去中心化”。所以没有这种机构保证你的资金安全,你钱丢了是没办法找一个法院或者银行帮你追回来的,在这样环境下,整个生态安全问题就显得至关重要。先做一下自我介绍。最早之前是在学校,2015年来到北京工作,在360。如果说你们从2013年开始到2015、2016年,有用安卓手机的话,可能里面就有我写的一些代码。今年之前,我都是以系统安全研究白帽子的身份,在做一些事情,后面开始做区块链相关的安全研究。
ApeCoin社区关于推出Ape Launchpad平台的提案已获投票通过:5月18日消息,Snapshot投票页面显示,ApeCoin社区关于推出生态项目孵化器Ape Launchpad的AIP-209提案已获投票通过,最终支持率达59.09%。该提案旨在通过孵化和推动有助于ApeCoin和BAYC IP生态系统增长的项目,进一步加强ApeCoin和BAYC生态系统,APE和BAYC生态NFT持有者可以访问Launchpad并对项目进行投资,ApeCoin DAO贡献者也将有机会尽早参与有前途的Ape项目。[2023/5/18 15:11:10]
我最近也在做一些数据分析,这是一个比较大的趋势图。我第一次看这个图怎么这么大,你可以看到,我们现在在这,9月初是在这,去年的时候是在这里,有两条线,蓝色是我们监控上面每个月新增的合约数,可以看到蓝色的波动,绿色是我们监控到的数,可以看到去年这时候是有一个下滑,这个原因大家应该也知道。到年底的时候,有各种包括以太猫在这个时间点,有一个攀升。7月份稍微有点返升,上个月又稍微凉了一点,大家也明白。
PeckShield:Merlin攻击者将6.5万枚DAI转至中间地址,并兑为6.5万枚USDC:5月18日消息,据PeckShield监测,zkSync生态DEX Merlin攻击者地址将6.5万枚DAI转至中间地址,并兑换为6.5万枚USDC。此前报道,Merlin发生Rug Pull,约182万美元资产被盗取并转移到以太坊上。[2023/5/18 15:10:39]
刚才那个图是比较简单的数据,我们统计每个月的量,看他的情况是怎么样。下面这个图就比较有趣,我来解释一下。Homestead,这个阶段是到155万个blknum,一个圈代表一万个区块,所以这个图上有115个圈。再来是X坐标,意思是说这一万个区块里面存在一个以上交易的块数,举个例子,这一块可能差不多是8200,这一万个块里面有82%左右不是空块。所以就你可以理解为这个圈如果在图的越右边的话,就表示这个网络是满载的情况。
再来看Y坐标,就是这一万个块里面的平均TX数,最大的值是200多,为什么是这个值,原因是每一个块是有gas上限的,你可以理解为每一个块承载的TX数是有限制的,最一开始状态是点都是在很低的地方,但是有一个往右边的增长,一开始可能很多都是空块,像创世块就在左下角,就是没有任何TX,进入下一个阶段可以看到这个图开始有一些往上增长,但也有往左的,还是属于一个网络不是太拥塞的情况。
PeckShield:Pickle Finance去年11月被盗资金中的1800 ETH通过Tornado Cash完成混币:5月8日消息,据PeckShield监测,DeFi收益聚合协议Pickle Finance被盗资金中的1800ETH在过去10小时内通过Tornado Cash完成混币。2021年11月份,PickleFinance遭受攻击者通过伪造jar窃取资金,攻击者部署了与原界面相同的伪造jar,并在伪造jar和真正的cDAIjar之间交换了资金,偷走了价值2000万美元的存款。[2022/5/8 2:58:25]
到拜占庭这个时间点往右边的圈越来越多了,整个网络变得比较拥挤。
到最近这一年以来,基本就是贴到最右边去,可能是由于各种现象级的游戏,还有包括黑客攻击什么的,所以现在,可能随便出来一个现象级事件,包括Fomo3D这一类游戏,都可能导致这种结果。这个是我们PeckShield从数据方面观察到一些现象。
接下来分几个层面去讲整个区块链生态的一些安全问题,这里面大家可以看到,比如智能合约,有infrastructure,还有钱包问题等其他环节,我们都有一些研究。
动态 | PeckShield: EOS竞猜游戏EOSABC遭交易阻塞攻击:今天15:37~15:44之间,PeckShield安全盾风控平台DAppShield监测到黑客向EOS竞猜类游戏EOSABC发起连续攻击,已经获利。PeckShield安全人员追踪链上数据发现,黑客控制多个账号协同完成交易阻塞攻击(CVE-2019-6199),与之前攻击EOS.Win、FarmEOS等多款游戏的原理一致。两天前,EOSABC被黑客以同样的方式攻击过,问题尚未修复。PeckShield安全人员在此提醒,开发者应在合约上线前做好安全测试,特别是要排除已知攻击手段的威胁,必要时可寻求第三方安全公司协助,帮助其完成合约上线前攻击测试及基础安全防御部署。[2019/1/28]
首先我先讲一下智能合约的问题,这个跟大家最早知道PeckShield的美链事件是类似的一个问题,代码在这个地方,这些value加起来之后出现一个溢出的数,导致amount检查会被绕过,我们看画面右边有一个案例,右面可以看到两个手机的样子,旁边是我攻击的流程,等一下你会看到右边我更新的一下会凭空造出两个很大的数字,后面的零数不过来,就是通过这种方式,我们生成两个不同地址,分别是那两个手机的钱包地址,造成这个地方溢出,然后这个检查绕过,这边就等于看到生成很多数字资产的地方,就是在balance+=value这个地方,空手套白狼,这是一个挺严重的问题。这样的问题有一个比较公认的解决方法,就是在这个地方,是一种比较严谨的计算函数库,叫Safemath。
声音 | PeckShield安全公司: EOS竞猜游戏FFgame遭黑客攻击 损失1,331个EOS:据PeckShield态势感知平台数据显示:11月8日凌晨1点,EOS公链上又一款竞猜类游戏FFgame遭遇了黑客攻击,黑客账户jk2uslllkjfd向FFgame游戏合约 (eoswallet415)发起多达304次攻击,共计获利1,331.2922个EOS,随后于1点36分将1,330个EOS转移到火币交易所。
PeckShield安全人员跟踪发现,该黑客账户jk2uslllkjfd为PeckShield的重点监控黑名单账户,其创建于10月30日,曾于11月4日凌晨3点,攻击过另一款EOS竞猜类游戏EOSDice (eosbocai2222), 共获利2,545.1135个EOS。这两次攻击都是通过写合约代码计算出游戏中奖规律实施攻击,值得注意的是,该黑客习惯于凌晨实施攻击,且每次攻击完都会立刻修改攻击合约,发送“hi”的垃圾数据用以掩饰攻击信息。另外,攻击所得EOS都是立刻转移到火币交易所。目前被攻击 FFgame(eoswallet415)账号余额里还有81.0105个EOS,并且攻击后合约没有更新,漏洞还未被修复。[2018/11/8]
这边是一个allowance的运算,它可以保证你不会溢出,那为什么你看我标题写的是Unsafemath呢?我们最近发现一个很有趣的现象,在你右手边,这里safeSub的实现里,用assert确保B小于或对于A,也就是说你不能用一个比较小的数减一个比较大的数。assert这个方法可以保证你这边错的时候,会可以把你的gas烧完,让这个TX结束,这也是刚刚郭老师讲的攻击里面的细节。就是说本来架构里面有一个这样的机制存在,但他的这个safeMath实现里,多加了一个assert函数,在发生错误的时候直接return。所以选择你的安全函数库的时候也要注意一下。
再来我讲一下关于infrastructure的研究,左边这个截图是漏洞奖励计划的网站,PeckShield现在是暂时排名第五,目前已公开有三个比较早期提交给基金会的漏洞,都是跟公链有关。我今天稍微介绍一下其中的一个,已经修复的,大家不用担心,如果你把Geth升级到最新的,这个漏洞不存在。
这个漏洞简单说一下,我们命名为叫做EPoD,只要发一个数据包给你,你笔记本现在跑一个客户端,我知道你的IP,直接发给你,你收到后,你的客户端就会崩溃,这个崩溃听起来好像没什么,但是我直接广发这个数据部就直接死一片,你其实可以很简单联想到这个可以拿来做算力的攻击。代码的细节不讲太多,简单说就是我把某一个数据弄成负1,这边代码实现是把这个数+1,当你要分配内存大小,负1+1就是零,我又去access负1这个地方的位置,最终导致越界访问,程序就崩溃了。我们直接看案例比较简单一点。
右边这个就是我运行的客户端,这边先去证明一下我客户端是从官网上面下载,保证说这个客户端不是我自己修改过的,是官网直接下载的。等一下检查完之后左边会出现两个窗口,左上角是攻击代码运行情况,左下角是一个抓包的画面,刚刚我做了一个操作,就是先把网关掉,确保这个机器已经没有网了,所有网络测的数据包都是来自本机的包。看到最右边已经把Geth客户端领跑起来了,这边是我刚才抓到的UDP包,如果你们有了解,这种包不需要建立连接,我可以在网关或者什么地方,可以扩散我的攻击,左上角是我攻击代码,我攻击的目标是127.0.0.1,这我们本机的IP,这个是攻击的包,所以只要在某一个版本以下的Golang客户端收到这个包就会崩溃。这样的漏洞其实我们有一整个系列,这是最早被公开的一个,我们在明天的互联网大会上会讲,这整个系列会有好几个类似这样的案例。以上是我针对公链还有智能合约的安全问题简单做的两个案例,大家理解一下就可以,如果真的要看代码,可以关注下PeckShield的官网。最后,我要说是我们最近跟白帽汇旗下BCSEC合作的一个项目,我们感觉区块链相关的项目方实在太多了,有各种公链,公链有各种实现,智能合约有各种实现,所以我们就开始觉得说,这个安全的问题其实不是我们一家公司可以搞定的,我们需要更多的人同时来把这件事做的更好,所以我们成立一个平台叫做DVP漏洞平台。最右边是漏洞提交的情况,简单说我们就是利用一种众测方式,集合所有有安全能力的研究人员或者白帽子,让项目方把他的项目在我们平台上面悬赏。比如说我现在要测试1.0版本,你找到一个什么样等级漏洞给你怎么样的报酬,通过这样方式鼓励白帽子帮我们把整个生态做的更好。这个平台是在7月24号上线,目前收到1700多个漏洞,相关的厂商已经有705个,总共注册白帽子一万多。这些是已经入驻这个平台的厂商,包括我们自己公司网站也放在上面做悬赏。PeckShield其实希望跟所有项目方合作,把整个生态做的更好,一开始我也讲到这件事情,最右边是我们公司的官网,我们会不定期在上面发布我们最新的研究成果,大家可以关注一下。以上就是我今天的分享,谢谢。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。