ImToken首席安全官Blue:浅谈钱包厂商如何建立安全体系

九个亿财经消息——7月25日“风口下的区块链安全”研讨会在杭州西溪谷AB-center圆满召开,由中国区块链应用研究中心主办,乐东资本、星合资本、高度资本承办,九个亿财经提供媒体支持。本次研讨会主要围绕区块链生态现状以及面临的安全挑战为主题展开,现场高鹏满座,同时开通了现场花椒视频直播,为中国安全从业者呈现了一场技术干货的饕餮盛宴。

研讨会出席嘉宾有:叶健(中国区块链应用研究中心轮值秘书长),杨林科(乐东资本创始人),蒋旭宪教授(区块链安全公司PECKSHIELD创始人),BLUE (IMTOKEN首席安全官),郭宇(SECBIT安比实验室创始人),莫良(BYSEC.IO创始人),张亮(知道创宇高级安全咨询顾问),宁志伟(秘猿科技首席架构师),Jason Loong(intervalue 项目 安全事业部负责人),范雅芸(预言家项目 CEO)。

ImToken首席安全官Blue:浅谈钱包厂商如何建立安全体系

ImToken首席安全官Blue

ImToken首席安全官Blue发表了 “浅谈钱包厂商如何建立安全体系”的主题演讲,以下为演讲实录:

大家好,我是Blue,现在在imToken负责安全方面的工作。今天我主要讲的就是作为一个钱包厂商,如何去做相关的安全架构。这个是我们现在实实在在在做的事情,我们就现场分享一下,我们从钱包厂商的角度是如何去加强安全的。作为一个钱包厂商来讲的话,在安全方面的尝试,基本上可能要分为三个方面,一个是用户层面,因为imToken毕竟是一个去中心化的用户钱包,主要就是用户在使用当中管理他的资产,所以说我们认为用户的安全对钱包厂商来说是最重要的,是必须去关心的一部分。

所以说在用户层面,我们做了比较多的努力。比如说我们现在主要是针对用户做了一个用户分控系统,用户所有的行为都可能通过我们这个分控系统进行介入。分控系统的话,我们也和业内的安全厂商做了一个比较全面的一个恶意钱包地址库。然后通过这个恶意钱包,如果当一个用户转账给一个恶意钱包的时候,无论那个恶意的是一个黑客也好,是一个诈骗钱包也好,甚至是一个薅羊毛的一个羊毛党的钱包也好,这些方面的话都会被我们监控到,然后放到数据库里面及时的提醒用户,这是一个恶意的钱包地址。然后当它在imToken里面进行转账的时候是会被禁止的,也会被提醒告知。另外现在有很多的项目方发了很多的合约,就是相当于有很多的币,这些币对我们来讲,很多时候有很多是恶意的,或者说是有漏洞的,有的可能存在被无限增发,被相关的一个漏洞录音转账,就是刚才也提到了很多的这种合约。

如果说我们发现恶意合约在imToken里面,产生这个代币的时候,产生这个合约的时候,是会被标识为恶意的合约的。这样的话,用户在持有数字货币的时候,在我们这边有一个比较好的提醒。再往后,针对用户方面,除了我们平台能做的,因为毕竟作为钱包厂商来讲的话,可能对用户的提醒也好,禁止转账也好,可能还不是特别够。另外针对用户,我们会进行更多的安全意识教育。一个人的数字资产是否足够的安全,可能就在于你个人是不是有足够的安全意识。因为我们发现可能不只是最近,一直以来,就有很多的丢币盗币事件,有很多用户钱包里面的数字货币、代币,不小心的话就没了,突然发现之后觉得怎么可能被别人盗了呢。这个目前来讲,我们也总结过用户丢币盗币的很多原因,可能大部分情况下你把你的密钥和你的数字货币息息相关的非常重要的东西,然后通过网络传输,比如说微信传输你的助剂词,甚至是有很多人都发过的微信收藏,然后有很多人的话用一些云笔记的工具方便的手机上看完了之后在电脑上在看,还有很多就是当给朋友去创建账户的时候,也会把数据池或者密钥直接通过QQ通过邮箱直接传给他的朋友们,这样的话他认为可以比较方便的进行管理交易,突然发现币就没了。因为做技术的可能比较早接触区块链,可能会知道密钥和数据池是你的根本,如果你的密钥和数据池被别人拿走了,那么你的账户里面币基本来讲就不是你的,别人可以非常方便地转走,所以说用户的安全意识是比较重要的一个方面。所以在这个方面,我们会时不时的提醒用户去做一些安全教育,告诉用户要妥善的保管你的密钥和数据池,不要明文存储,也不要明文传输你的数据池或者密钥。

然后另外一方面,当发生一些重大的安全事件的时候,如果我们监控到最近一些诈骗地址,一些诈骗网站,无论是Twitter还是国内的一些问答社区,会有一些人做一些恶意的教程,很早之前的EOS映射就有很多人会讲到imToken官方去做映射的教程,最后可能会让你在一个地址上贴你的EOS密钥去做映射,这种的话,如果说对区块链有了解的话,基本不会去粘贴你的密钥,但是大部分用户还是上当受骗了,然后EOS就丢失了,因为你的密钥泄露了。所以说缺少这些安全意识,在发生一些事件的时候,我们会及时做相关的提醒,告诉用户哪些是不安全的操作,然后也同时告诉用户,哪些比较好的方式,完全成熟的密钥相关的一些教程,我们都会时不时的去做微信的推送。

这是刚才讲的用户系统和内部3个用户方面的,一个方面是我们客户端上做的一些禁止操作,另外一方面就是用户安全意识教育。然后另外一方面就是做一个钱包厂商,我们的系统层面,做了哪些安全的加入和防护。大家讲安全的话,基本都会比较直观的去看,一个厂商或者说一个系统是不是安全的,你看看他有没有被报告漏洞,很多时候一个厂商可能经常被别人攻击,这个时候可能系统的安全就是比较需要去重视的一个方面,这也是目前安全上比较直观的一个体验,是安全厂商给钱包也好,给交易所也好,去做的一些能够做的一些加固,所以说在系统上来讲,imToken它分为客户端和云端两个方面,在客户端上,我们也做了很多的加固。无论是密钥的存储,加密存储,另外的话就是相关的加密算法、协议,类似这些的审计工作,也会把这个方面加强。另外也会在客户端的这个中间的网络传输进行相关的防窃听,防篡改等等这些方面的一些常规的安全加固,这些安全厂商的话都是比较熟悉的,我们也做了相关的架构。

客户端方面也会基于当前的手机安全环境做一个安全的检测,比如说你的手机被Root了,或者说苹果手机是越狱的一个状态,或者说你的手机上有一些代理软件,但是我们认为这是一个恶意的环境,会提醒用户,你当前的钱包所处在的手机环境是不安全的。告知用户了,就是当你打开多个钱包的时候,你会发现提醒应该是红的。一般来讲,如果你的手机是安卓手机是Root的,基本上来讲,可能应用和应用之间的话,可能会能够相互访问你的存储的文件。这样子的话文件就是暴露的,所以说很多时候这个方面我们都汇报相关的提醒。但另一方面的话,如果说你的手机装了一些恶意软件,恶意应用的话,可能会做一些想收集你的系统信息,文件突出位置,或者说监控剪切板,类似这种比较常见的一些操作,当你去做一些钱包的行为的时候,可能会泄露相关的助记词,那在这种情况下的话,我们会做相关的检测,这是系统层面,客户端上做了一些安全的防护。核心来讲的话,这也不算是区块链的一个安全,基本来讲是传统的互联网安全都存在的一些问题,基于自己的经验,基于安全厂商的友商的一些检测和提醒,做这个方面的安全的加固,一些常规的安全防范。

另外一方面就是服务器,作为一个去中心化的钱包,第一我们严格坚守去中心化的这条思路,在我们的服务器是坚决不存用户的任何敏感信息的,比如说密钥、助记词等等,如果说我们服务器被攻破了,那么用户的私钥也不会有泄露的风险。我们会坚持去做优化,服务器上是不存任何的用户的密钥和相关信息的。我们之后也会做客户端的开源,大家也会看得到具体是不是存储了你的密钥,你可以看到imToken整体的生成密钥的过程,整体交易的过程是什么样子,这样的话你就会知道确实是一个去中心化的钱包,确实没有存储你的密钥,也在你传输交易的时候,整个以太坊或者BTC或者EOS的节点, imToken服务器可能做了一些相关的更好的一些加速交易,它不是一些核心的信息,但是在服务器的系统层面,也会去做相关的加固。比如说也会使用第三方厂商隐藏我们真实的服务器,另外对服务器进行日常的加固,都是比较常规的一些安全,比如说应用防火墙尽可能少的对外,一般来讲,可能像数据库之类的都是不对外的,集体对外的话都是对外官网的网址之类的,这都是一些常规的安全策略。基本来讲,我们的服务器目前受到的威胁应该是比客户端的威胁更小一些,所以总体来讲,在系统层面是一个常规的互联网的安全的加固,这是系统层面的一些措施。

刚才讲了三个方面,最后就是我们内部,内部的安全也是安全的一个方面,就相当于是你公司内部的一个安全的加固,这个方面主要是指员工的安全意识,比如说防社会化攻击,社会工程学攻击,这个方面,我认为公司内部的安全,是如何把一个人的安全等级如何去把它量化。基于这个方面的想法,我们在内部会把安全意识,会列成一些安全的检查项,这样的话你就知道怎么做是安全的?怎么做是不安全的?

比如说今天来参加会议,不知道你们连没连wifi?公开的这些wifi信息,大部分wifi基本是安全的,但是有可能说是恶意的,有些人会组建一个wifi,可能比如说麦当劳,大家可能会连过麦当劳的wifi,然后这里面刚好做了一个恶意的一个wifi节点,你来了之后可能就会默认连上了,或者说当前的这个环境或者咖啡馆,它是不是有可能已经被黑客攻破了?他们在路由器上是不是已经可以监听到你相关的访问,这都是不知道的,所以说我们内部会把像类似这种不能连不可知的未知的这些wifi,另外也会把一些日常办公环境相关的都列成一条条的检查项,这样的话就是说你犯错了,这个检查项你不符合,那就是会降低你的安全等级。如果说你都做到了,你就可以提高你的安全等级,如果说你不量化,不去评估这个安全的话,可能很多时候大家都不知道怎么遵守。你说提高安全等级,然后通过几次内部的安全培训,就能够真的提高吗?但是如果说你把内部的这些每一条的全都列出来,哪些是不能做的,哪些是推荐做的,这样的话,一个员工的安全意识就会迅速的提高上来。如果说他犯错了,那通过扣分这样一些量化的方式去加强内部同事的安全意识,迅速把安全等级提高上来。

这是目前我们在安全上作为一个厂商来讲的话,我们内部能够做的通过用户层面,系统层面,还有内部的员工风控层面去做相关的安全等级。整理来讲这相当于我们钱包厂商自己来做的,接下来也可以再聊一聊在安全上我们对外是怎么去做的

钱包自身的安全能力可能不足,区块链是一个新兴的行业,你会发现区块链漏洞很多,厂商很多,项目方很多,甚至是安全的厂商的也很多,但是白帽子不太够用了,这个时候如果说我们自己通过招人也很难快速的去补全你的安全能力,所以说imToken是一个心态比较开放的厂商,我们会尝试跟其他的安全厂商进行合作,通过直接合作补全我们的短板。在对外之前,我们在内部可能会联合几家厂商去做相关的,无论是配合的审计,对服务器的还是alt的审计,这样的话通过这些第三方安全厂商,通过这种可控的方式,去集合更多的这种安全的力量,去帮我们检测产品是否是安全的这样的一个方案。

再往后的话就是我们上周开始的漏洞奖金计划,就是工作奖励计划,我一直觉得一个厂商的力量或者一个人的力量是比较薄弱的,那如何集合这个社会化的力量是最好的最强大的。所以说在漏洞平台漏洞奖励计划上,我是比较支持的,因为这样的话可以通过更多的白帽子,更多的安全从业者去检测我们的系统,帮助我们提升系统安全等级。同时,我们也会基于白帽子提供漏洞的价值,做一定的反馈,进行奖励。目前来讲,通过大概一周多的漏洞奖励计划的这个实施,我们也发现比较庞大的一个白帽子的群体,也确实为我们提供了一些比较边界的测试,比如很多时候,我们可能会测试比较主要的服务,然后把主要的服务加强了,但是像一些废弃的环境,一些测试的环境,那这个时候,我们在安全等级的考量肯定会有一个优先,那你会发现其实次要很多时候也是一个安全的点,那通过这些社会化的白帽子的力量,然后给我们提供了很多边界的测试。他们很多的想法,安全的构思也确实是为我们开拓了安全的视角,提供了很多安全的比较有价值的一些参考。

我们目前白帽也反映了很多的漏洞,因为毕竟在安全的评级上,如果是漏洞平台,白帽子和厂商还有平台之间的对个人的安全能力的认知和漏洞的认知是不一样的,很多漏洞平台确实是需要一个精力去打理的,所以很多时候白帽子认为是一个漏洞,我们综合评估之后,可能认为它不是一个漏洞,因为很多时候当你去说一个官网,本来它是一个静态的网页,你说它存在一些恶意的攻击,实际上是不存在的,可能一些假象导致了白帽子误以为这是一个漏洞,这个时候我们就会给出比较详细的一个解释和证明,然后告诉你这确实不是一个漏洞。

所以说综合来讲,我们最终奖励了两个比较有意思的,然后提供了一些比较边界的测试的一些漏洞,整体来讲,对外我们也做了比较多的尝试,也相当于是集合了更多的白帽子的力量来参与这个事情。当然我们也期望更多的平台起来,能多看一看,多去合作,从一个厂商来讲,我们肯定更期望更多的安全从业者加入到区块链这个行业来,大家一起把安全的底层做好,安全就是一个基础服务,把这个基础服务做起来,这样用户用我们的产品也放心,我们在区块链这个行业里面也会越来越踏实。


分享到:


相關文章: