近期 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 的零信任安全實踐

作爲一家視安全爲生命線的企業,只有從源頭到終端,建立起一套嚴格的安全審覈標準及流程,才能爲用戶資產保駕護航,同樣的,只有每家區塊鏈企業都能建立嚴格的安全標準及流程,才能促成整個行業的健康發展。