近期 FCoin 事件使得区块链安全问题再一次被推到风口浪尖,管理团队的作恶风险再次显现,中心化管理的加密货币公司应如何引以为鉴?服务亚洲大型机构的数字资产托管服务商 Cobo 分享了近两年在安全领域积累的经验与措施。

原文标题:《蒋长浩:区块链企业如何进行零信任安全实践》
撰文:蒋长浩,Cobo 联合创始人兼 CTO

以比特币为代表的区块链领域,由于离钱近、变现容易、难以追踪等特点,近几年成为了网络犯罪的重灾区。 据区块链安全公司 PeckShield (派盾)数据显示,2019 年全年区块链安全事件共 177 件,其中重大安全事件 63 起,总共损失达到了 76.79 亿美元,环比 2018 年增长了 60% 左右。

黑客的攻击手段越来越专业化、组织化,内部作恶的风险也不容忽视,这些都使得区块链领域的安全建设极具挑战。最近 FCoin 交易所的事件也再一次为区块链行业敲响了安全警钟。

区块链领域安全除了智能合约安全,冷热钱包安全等,事实上,大多数造成巨大损失的攻击都是通过网络攻击完成的。在我看来,网络安全建设的核心策略是:一、缩小攻击面,二、零信任。缩小攻击面是指,任何安全操作减少入口,权限分配采用最小必要原则。零信任是假设危险无处不在,因此任何操作都预设其可能是危险的,要排除危险才可放行,也就是「Never Trust, Always Verify! 」。

Cobo 作为一家在区块链领域提供基础设施服务的技术公司,通过多条产品线同时服务个人用户和机构客户,目前是国内领先的个人用户钱包产品,同时也是亚洲最大的面向机构的数字资产托管服务提供商。经过两年多的持续建设,Cobo 在安全领域已经积累了一定的经验和成果。其中一些措施对于防御内部员工作恶也非常有帮助。

在这里分享一些 Cobo 的相关安全措施,供大家参考、一起讨论。

企业内部安全

相比于外部的黑客攻击,企业内部安全一样需要得到重视。

Cobo 在全球五个城市有办公室,近百名员工,通过网络开展工作。安全的第一步,首先是工作环境的安全保障。传统的企业安全,采用 VPN 内外网隔离,但这在高级黑客攻击面前,形同虚设。Cobo 采用了业界领先的零信任模型,不管员工在哪个城市,在家里、办公室还是咖啡店,用手机还是电脑,所有的企业内部服务都假设用户访问不可信,通过一系列工具和风控策略来验证该访问安全才放行。

为了减少攻击面,我们所有的内部服务如邮箱、文档服务、数据看板、客服工具、代码仓库、任务管理工具等等都使用统一的内部用户认证服务 SSO 来进行账号权限管理。内部用户认证服务事先对所有员工的设备进行登记,只有事先登记的设备才能访问内部服务。同时,Cobo 对于员工访问内部服务做了非常细粒度的权限分配和管理。每个服务有哪些员工可以访问,都采用权限最小化原则,也即只有必要的情况才会为员工开放权限。权限开放需要内部审核,必要性结束时,权限取消。员工离职,账号关闭。

我们还为每一位员工配备硬件安全钥匙 Yubikey。所有的用户登录,除了账号密码、可信设备检查等,还必须要有 Yubikey 通过强二步验证,以确保员工不会被钓鱼攻击。Cobo 内部开发了很多效率工具,如用户运营工具等。其中的一些关键操作,比如客服审核用户的大额提币,必须要通过 Yubikey 验证,才能生效。

加密货币公司如何避免团队作恶?看看 Cobo 的零信任安全实践

代码的生产和部署

代码和数据是科技企业的核心资产。如何有效保护代码和数据不被攻击,是非常有挑战的。如果由于员工内部作恶,导致服务终止、数据丢失,这对于绝大多数企业来说是致命的。Cobo 对于代码和数据的保护,采用减少攻击面和零信任模型的原则,有非常严格的流程。

Cobo 的代码管理分成很多不同的代码仓库,每个代码仓库的访问权限都只分配给必要的开发程序员。程序员不能访问跟自己工作无关的代码仓库。所有的代码修改,必须要通过其他程序员的评审,只有通过评审的代码才能提交到仓库。

所有的开发程序员都没有生产线上服务器的访问权限。线上故障也只能通过实时同步的日志以及脱敏数据库来诊断。代码仓库的代码进入生产线,有严格的流程和权限管理。所有的代码上线,必须由一名开发人员发起,并有另外两名技术人员审核通过,才会部署到线上。

Cobo Hub:云服务安全架构

目前 Cobo 有约十个不同的服务(如 Wallet、Custody、Blockchain,风控,认证等等)运行在不同的云服务商的云服务器上。为保障这些云服务的安全,Cobo 自己研发了独有的 Cobo Hub 安全架构,思想上类似谷歌的 BeyondProd。这些服务在假设彼此不可信的情况下,互相调用协作。在受攻击时,能够快速感知,互相隔离,最小化风险和损失。

Cobo Hub 将所有的服务通过安全域封装。安全域相互之间不能直接调用,必须要通过一个中心的 Hub 转发。在 Hub 中,可以对所有流量进行监控和审计。每个安全域有自己的安全证书,安全域和 Hub 之间的通信通过 MTLS 双向认证加密。

每个安全域内通过 VPC 安全组、主机防火墙等来实现只有唯一流量进出口的管控。该管控是通过每个安全域内唯一的代理进程来转发来实现,代理进程也会对本域内的所有向外访问的流量进行白名单过滤。这样即使 Cobo 使用的第三方程序库里存在安全漏洞,也很难被黑客利用。

Cobo 云盾:智能风控引擎

基于零信任原则,每一个用户行为操作都不可信,都有风险。Cobo 云盾是一个智能风控引擎,它会基于预设的风控规则,以及大数据学习对用户的行为做风险判定。当风险超出一定阈值,会触发人工干预或者报警。

比如,当 Cobo Wallet 用户发起转账操作,Cobo 云盾会检查用户发起操作的来源设备是否可信,他发起操作的 IP 地址是否见过,该操作的时间是否符合用户习惯,提币金额是否正常等等。同时,业务部门也可以根据一些先验知识,设置风控规则:比如每个用户单日提币阈值,提币速度(单位时间内提币笔数)阈值等等。Cobo 云盾都会自动检查这些规则,并对用户行为的风险打分。当 Cobo 云盾评估用户操作风险过高,会引入人工干预,由客服和用户取得联系,确认是用户行为再放行。

Cobo Custody 服务的机构客户中有不少数字货币交易所。他们使用的 Cobo 云钱包服务,自动也受到 Cobo 云盾的保护。数字货币交易所是黑客攻击的重点对象,因此,Cobo 的客户也经常受到攻击。目前为止,Cobo 云盾已经通过智能风控多次拦截了黑客对 Cobo 客户的攻击。比如有的交易所被黑客攻击。黑客获取了交易所的 API 密钥,但是在向外转出资金的时候,被 Cobo 云盾拦截,避免了交易所的损失。

加密货币公司如何避免团队作恶?看看 Cobo 的零信任安全实践

Cobo 卫士:二步签名授权工具

在网络威胁无处不在的环境下,用户、员工都很容易成为黑客攻击的对象。黑客通过钓鱼、中间人攻击等方式可以轻易的欺骗用户或者服务器。为了杜绝这类攻击,Cobo 开发了专门的用户端 App——Cobo 卫士。

简单来说,Cobo 卫士是一个二步签名授权工具 App。用户下载到手机上后,它会在安全芯片中生成公私钥对,私钥永远不出安全芯片。用户通过绑定流程将公钥绑定到自己的账号。服务端将持续维护用户身份与该公钥的绑定关系。当一些安全性要求高的操作发生时,比如用户大额提币,服务端会向已经绑定身份的 Cobo 卫士推送授权申请,Cobo 卫士通过签名授权该消息,服务端才会放行。

由于服务端和用户之间建立了独立的安全通道,在风控拦截高危操作时,服务端通过验证用户的 Cobo 卫士签名授权的消息,可以确定发起操作的身份。这就从根本上杜绝了用户被钓鱼和中间人攻击。甚至当服务端所依赖的中间服务被黑客攻破的时候,高危操作也能被保护。

加密货币公司如何避免团队作恶?看看 Cobo 的零信任安全实践

作为一家视安全为生命线的企业,只有从源头到终端,建立起一套严格的安全审核标准及流程,才能为用户资产保驾护航,同样的,只有每家区块链企业都能建立严格的安全标准及流程,才能促成整个行业的健康发展。