PeckShield 研发副总吴家志:需要更多人合作解决区块链生态安全问题 | 区块链P.O.D大会_HUM:Bitqy

9月5日,在由Odaily星球日报主办、36Kr集团战略协办的P.O.D大会安全论坛上,PeckShield研发副总吴家志发表题为《区块链智能合约及公链安全》的演讲。在演讲中,吴家志指出,整个区块链生态存在的安全问题包括智能合约、基础设施、钱包问题、矿池问题等。他还表示,因为区块链相关的项目方众多,有各种公链,公链有各种实现,智能合约也有各种实现,这些安全问题不是一家公司可以搞定的,需要更多的人来共同做好这件事,所以PeckShield与白帽汇旗下的BCSEC共同成立了DVP漏洞平台。该平台在7月24号上线,目前收到1700多个漏洞,相关的厂商已经有705个,总共注册白帽子1万多。PeckShield希望跟所有相关方合作,把整个生态做得更好。以下为吴家志演讲全文,enjoy:

各位嘉宾下午好,我是吴家志,我来分享一下PeckShield的研究成果,我们公司是从今年年初开始区块链研究的,算起来到现在,差不多有半年的时间。最早从代码开始研究区块链相关的信息,到现在研究范围扩大到整个区块链生态的各个环节。大家知道我们名字可能从是智能合约问题曝光开始,后来我们也做了很多跟公链相关的漏洞披露,也有做像前面嘉宾所说数据分析方面的研究,发了一些跟数据有关的快讯,还有热门游戏相关的漏洞分析等等。我们有一个目标就是希望整个生态能够在一个安全的状态下运转。我们认为区块链某一定程度会取代人类的一些经济行为,跟以往的经济行为很大不一样的是“去中心化”。所以没有这种机构保证你的资金安全,你钱丢了是没办法找一个法院或者银行帮你追回来的,在这样环境下,整个生态安全问题就显得至关重要。先做一下自我介绍。最早之前是在学校,2015年来到北京工作,在360。如果说你们从2013年开始到2015、2016年,有用安卓手机的话,可能里面就有我写的一些代码。今年之前,我都是以系统安全研究白帽子的身份,在做一些事情,后面开始做区块链相关的安全研究。

纽约总检察长提出名为“加密货币监管、保护、透明和监督法”的新法案:金色财经报道,纽约总检察长 Letitia James 正在提出名为“加密货币监管、保护、透明和监督法”(CRPTO)的新法案,赋予其办公室更多权力来监管加密行业。该法案将赋予总检察长办公室对在该州开展业务的加密货币公司更广泛的执法权力,同时规定纽约州金融服务部有权向该行业的参与者发放许可证并监督该州的数字资产许可制度。该法案将由 Letitia James 办公室提交给纽约州参议院和众议院,供其在 2023 年立法会议期间审议,该会议将持续到 6 月 8 日。

拟议的立法旨在通过要求加密货币交易所对其财务报表进行独立的公共审计并补偿被欺诈的客户来控制加密行业。该法案还旨在限制行业中的利益冲突,例如当同一个人既发行代币又拥有代币交易的市场时。 该法案还将要求加密货币公司设置 KYC,并禁止使用“稳定币”一词来推销虚拟货币,除非其价值与美元保持一比一的比例。[2023/5/5 14:45:19]

我最近也在做一些数据分析,这是一个比较大的趋势图。我第一次看这个图怎么这么大,你可以看到,我们现在在这,9月初是在这,去年的时候是在这里,有两条线,蓝色是我们监控上面每个月新增的合约数,可以看到蓝色的波动,绿色是我们监控到的数,可以看到去年这时候是有一个下滑,这个原因大家应该也知道。到年底的时候,有各种包括以太猫在这个时间点,有一个攀升。7月份稍微有点返升,上个月又稍微凉了一点,大家也明白。

报告:加拿大“加密之王”面临投资者3500万美元资金的追诉:金色财经报道,根据加拿大广播公司9月20日的一份报告,23岁自称“加密货币之王”的加拿大人Aiden Pleterski正面临着140名投资者的一系列要求,因为他们试图从他的公司AP Private Equity Limited收回总计3500万美元的资金。债权人正在努力弄清楚他们给予加拿大人Aiden Pleterski代表他们进行加密货币和外汇投资的资金去向。到目前为止,已经查获了价值约200万美元的资产,其中包括两辆迈凯轮、两辆宝马和一辆兰博基尼。

Pleterski的律师Micheal Simaan对这些指控提出异议,并表示他的客户一直在全力配合破产程序。根据Simaan的说法,他的客户在十几岁时就开始投资加密货币。他在牛市期间的成功促使其他人免费提供现金进行投资,以期使其致富。(cointelegraph)[2022/9/21 7:11:15]

刚才那个图是比较简单的数据,我们统计每个月的量,看他的情况是怎么样。下面这个图就比较有趣,我来解释一下。Homestead,这个阶段是到155万个blknum,一个圈代表一万个区块,所以这个图上有115个圈。再来是X坐标,意思是说这一万个区块里面存在一个以上交易的块数,举个例子,这一块可能差不多是8200,这一万个块里面有82%左右不是空块。所以就你可以理解为这个圈如果在图的越右边的话,就表示这个网络是满载的情况。

a16z合伙人:加密货币中的“加密”是指身份验证:金色财经报道,a16z合伙人Chris Dixon在推特上表示,公钥加密可用于验证或加密,“加密货币”中的“加密”是指身份验证,区块链确保每笔交易都是合法且唯一的,隐藏区块链交易是相当困难的——今天这是一个几乎无法解决的问题。[2021/12/25 8:03:43]

再来看Y坐标,就是这一万个块里面的平均TX数,最大的值是200多,为什么是这个值,原因是每一个块是有gas上限的,你可以理解为每一个块承载的TX数是有限制的,最一开始状态是点都是在很低的地方,但是有一个往右边的增长,一开始可能很多都是空块,像创世块就在左下角,就是没有任何TX,进入下一个阶段可以看到这个图开始有一些往上增长,但也有往左的,还是属于一个网络不是太拥塞的情况。

到拜占庭这个时间点往右边的圈越来越多了,整个网络变得比较拥挤。

到最近这一年以来,基本就是贴到最右边去,可能是由于各种现象级的游戏,还有包括黑客攻击什么的,所以现在,可能随便出来一个现象级事件,包括Fomo3D这一类游戏,都可能导致这种结果。这个是我们PeckShield从数据方面观察到一些现象。

韩国区块链协会欲将“加密货币”术语更改为“虚拟资产”:韩国区块链协会正在采取行动使“加密货币”术语更改为“虚拟资产”。据悉,韩国四个主要的加密货币交易所(例如Bithumb、Upbit、CoinOne和Cobit)在内部讨论属于变更术语问题。(MTN)[2020/3/12]

接下来分几个层面去讲整个区块链生态的一些安全问题,这里面大家可以看到,比如智能合约,有infrastructure,还有钱包问题等其他环节,我们都有一些研究。

首先我先讲一下智能合约的问题,这个跟大家最早知道PeckShield的美链事件是类似的一个问题,代码在这个地方,这些value加起来之后出现一个溢出的数,导致amount检查会被绕过,我们看画面右边有一个案例,右面可以看到两个手机的样子,旁边是我攻击的流程,等一下你会看到右边我更新的一下会凭空造出两个很大的数字,后面的零数不过来,就是通过这种方式,我们生成两个不同地址,分别是那两个手机的钱包地址,造成这个地方溢出,然后这个检查绕过,这边就等于看到生成很多数字资产的地方,就是在balance+=value这个地方,空手套白狼,这是一个挺严重的问题。这样的问题有一个比较公认的解决方法,就是在这个地方,是一种比较严谨的计算函数库,叫Safemath。

PeckShieldAlert:过去一小时,Celsius将3500枚WBTC转入FTX:6月13日消息,PeckShieldAlert发推称,根据链上信息,过去一小时,Celsius将3500枚WBTC(约合8928.5万美元)转入FTX。

此前报道,Celsius宣布暂停所有的提款、交易和账户之间的转账。[2022/6/13 4:21:32]

这边是一个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其实希望跟所有项目方合作,把整个生态做的更好,一开始我也讲到这件事情,最右边是我们公司的官网,我们会不定期在上面发布我们最新的研究成果,大家可以关注一下。以上就是我今天的分享,谢谢。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金智博客

[0:15ms0-3:371ms