本文介紹了一個可應用於區塊鏈項目和解決方案的區塊鏈安全參考架構,處理內部環境和軟體即服務 (SaaS) 環境內的各種不用的行業用例和部署。我們探討了區塊鏈獨有的安全風險和威脅,然後介紹了關鍵的區塊鏈安全控制措施、業務控制措施和傳統的安全控制措施。最後,我們還展示了一個可用於保護任意區塊鏈解決方案的區塊鏈安全參考架構和安全模式。
我們強烈建議您對照這個區塊鏈安全模式評估您設計和構建的解決方案,以確保您採取了所有措施來妥善保護區塊鏈解決方案。
區塊鏈 - 無法避免網絡攻擊區塊鏈是一個共享、複製的許可式帳本,它具有共識、可溯源、不可更改和確定性等特性。共享帳本確保參與者能夠決定共享哪些資產,允許他們知道自己接觸的其他參與者的身份。區塊鏈還為參與者提供可證明的背書,這些背書是機密的,即,僅基於「須知」標準共享信息。
眾所周知,區塊鏈和區塊鏈應用無法避免網絡攻擊和欺詐。以下是一些案例:
· 去中心化自治組織 (DAO) 是一個創業投資基金組織,受比特幣的啟發,該組織通過去中心化區塊鏈運營。由於代碼被濫用,該組織有價值 6000 多萬美元的 Ether 數字貨幣(近 1/3 的貨幣)被盜走。
· 作為全球最大的加密貨幣交易所之一,香港 Bitfinex 丟失了價值近 7300 萬美元的客戶比特幣,這表明,加密貨幣依然存在巨大的風險。背後的原因可能是密鑰被盜。
· 作為全球最大的 Ethereum 和比特幣加密貨幣交易所之一,Bithumb 近日遭到了黑客攻擊,丟失了 30000 名用戶的數據和價值 870000 的比特幣。儘管黑客只攻擊了一位員工的電腦,而非核心伺服器,此次事件依然引發了人們對總體安全性的質疑。
通過評估和解決與區塊鏈有關的重要安全問題/風險,您能夠更好地確保區塊鏈解決方案的安全性。
與區塊鏈解決方案有關的安全風險安全與風險管理有關。因此,您首先應該了解區塊鏈解決方案的相關風險,這一點很重要。區塊鏈解決方案的具體風險取決於您所用的區塊鏈類型。下面,我們來看看不同類型的區塊鏈,風險逐級遞減,而安全性逐級提高:
· 公有區塊鏈是公開的,任何人都可以加入公有區塊鏈,驗證交易。通常,這類區塊鏈風險更高(比如加密貨幣)。其中一種風險就是,在沒有任何級別的控制或限制的情況下,任何人都可以加入區塊鏈。
· 私有區塊鏈是受限的,通常局限於商業網絡;區塊鏈參與者受到單一實體(監管部門)或聯盟的控制。
· 無許可區塊鏈在處理器方面沒有限制。
· 許可區塊鏈能夠將帳本加密,只允許相關的參與者查看帳本,只有符合「須知」標準的參與者能夠解密帳本。
區塊鏈解決方案還存在一些其他的風險,我們可以大致將這些風險歸為三個領域的風險:
· 業務和治理:業務風險包括財務影響、聲譽因素和合規性風險。治理風險主要源自區塊鏈解決方案的去中心化性質。為了應對這類風險,您需要在決策標準、治理策略、身份和訪問管理方面採取強有力的控制措施。
· 流程:這些風險與區塊鏈解決方案在架構和運營中所需的不同流程有關。
· 技術:可用於實施各種流程、滿足業務需求的基礎技術可能並非都是最佳選擇,而且最終會衍生出安全風險。
表 1 提供了這些風險的部分示例。
表 1:風險類別以及相關風險描述
類別
風險
風險描述和示例
業務和治理
決策制定
區塊鏈解決方案擁有去中性化治理流程,這會導致您缺乏對策略合規性和決策制定的控制,進而衍生出風險。
訪問控制
缺乏中心化治理還會削弱您對平臺訪問用戶的控制以及對每位用戶可擁有的訪問級別的控制。如果區塊鏈成員在其組織內採用不同的方式來歸類用戶,那麼問題將變得更加嚴重。
財務
區塊鏈解決方案中的財務風險主要來自因潛在的安全漏洞導致的欺詐性交易和關鍵數據丟失的風險。
審計、法律和合規性風險
平臺上的某些操作可能依賴存儲的鏈上數據或者經過鏈上數據驗證的數據。這會導致您在遵守相關法規和滿足系統與應用審計要求時面臨挑戰。此外,這還會帶來定義問題數據責任的法律風險。
流程
身份與訪問管理 (IAM)
未經授權訪問平臺可能會給成員帶來可怕的後果,包括關鍵數據丟失、暫停運營和拒絕訪問。缺乏 IAM 還會導致錯誤地調用某些智能合同功能。
安全通信
解決方案內部或者解決方案與外部組件之間的不同節點之間的通信不安全可能會導致指示錯誤,進而衍生出傳輸級別的安全問題。此外,這還會給您帶來與訪問權限有關的挑戰和源自外部攻擊的威脅。
容易受到攻擊的解決方案(未經過測試的代碼)
採用未經過 DLT 認證的流程或方法開發的未經過測試的代碼或解決方案非常容易被黑客攻擊,它們可能會影響解決方案的總體運營和可操作性。
硬體安全模塊 (HSM) 上的區塊鏈身份密鑰
在使用共享 HSM 存儲區塊鏈身份密鑰時,一個組織的一組密鑰可能會與另一個組織的一組密鑰混淆。
基礎架構安全性
用於構建區塊鏈解決方案的基礎架構可能存在諸多問題,包括不必要的訪問以及嘗試入侵網絡的不需要的數據包。
技術
密鑰的存儲、到期和失靈
區塊鏈身份密鑰和交易令牌是解決方案的重要組件。證書和密鑰的到期、續訂、歸檔和撤銷方面的挑戰可能會給平臺的運轉帶來風險。
應用安全性
區塊鏈本身不可變,具有防篡改性,但是使用網絡的應用會在每個層面帶來挑戰。
共享帳本的鑑定和驗證
了解共享帳本的有效性和真實性至關重要。這也是一種新興技術,其相關風險在某種程度上是未知的。
智能合同中的風險
智能合同是區塊鏈解決方案的重要組件。在實施這些合同或合同交易時出現任何邏輯錯誤都可能導致錯誤的合同或交易通過驗證。
刪除、可審計性和共識方面的風險
在某一方離開聯盟時,您需要考慮刪除參與方的風險並實施適當的程序,這一點至關重要。區塊鏈中的分布式網絡設置極易出現可審計性和共識風險。
分析上述風險,然後為基於區塊鏈的解決方案構建風險模型至關重要。設計區塊鏈解決方案時,您需要考慮一些重要的因素,其中包括:
· 區塊鏈有哪些獨有的功能?
· 參與組織/成員的治理模式是什麼?
· 每個區塊捕獲什麼數據?
· 相關的監管要求有哪些?區塊鏈如何滿足這些要求?
· 身份詳細信息的管理情況如何?區塊有效負載是否加密?密鑰的管理和撤銷情況如何?
· 區塊鏈參與者有什麼災難恢復計劃?
· 區塊鏈客戶參與區塊鏈的最小安全態勢是什麼?
· 解決區塊鏈區塊衝突的邏輯是什麼?
區塊鏈安全威脅模型您應該結合威脅模型的情境,評估解決方案的安全性。本質上,區塊鏈過去就擁有強大的完整性保證機制,但是在區塊鏈應用的其他方面,可能因為某些領域的出錯而導致應用出現漏洞和數據丟失。比如,薄弱的訪問控制措施、鬆散的密鑰和證書管理保護措施以及通信安全的不足。妥善保護此類應用的關鍵在於構建全面的威脅模型,減少識別的薄弱環節。
身份假冒 (Spoofing)、篡改 (Tampering)、抵賴 (Repudiation)、信息洩露 (Information Disclosure)、拒絕服務 (Denial of Service) 和特權提升 (Elevation of Privilege) 模型(簡稱 STRIDE)是一個知名的模型,用於研究實施方和資產之間的關係、評估與這些關係相關的威脅和薄弱環節,並提出適當的緩解措施建議。
區塊鏈應用往往包含由實施方擁有和管理的外部組件,比如身份和訪問管理 (IAM) 系統、多因素身份認證 (MFA)、公共密鑰基礎架構 (PKI) 以及監管和審計系統。在將這些系統納入總體區塊鏈解決方案之前,您需要審慎地考察它們,因為它們是由第三方開發和控制的系統。您在構建區塊鏈解決方案的威脅模型時,應該考慮上述事項。
圖 1 考慮了不同的因素並構建了一個可在區塊鏈實施項目中使用的威脅模型。
圖 1:區塊鏈解決方案中的威脅模型
圖 1 列舉的威脅可分為三大類別:
1. 新的威脅格局 - 這些是區塊鏈獨有的威脅。
2. 擁有了新意義的傳統威脅 - 隨著區塊鏈的問世,傳統的威脅擁有了新的意義,演變成了新的威脅。
3. 傳統威脅管理 - 這些是任意解決方案都需要解決的常見威脅。
1. 新的威脅格局
· 在這個獨特的 IT 基礎架構中,區塊鏈採用了尚未被全面了解的新模式。大多數漏洞都源自不同的獨立組件以及組件整合的方式。
· 該系統包含多個實施方,每個實施方可能有自己的身份管理機制,因此,您很難建立一個必要的互信機制來妥善管理共識。
· 您需要在收集詳細信息用於妥善識別系統實施方與安全管理和處置這些信息以滿足隱私法規(GDPR 和其他法規)之間找到一個平衡點,這一點非常關鍵。
· 您需要識別分布式資產所遭受的攻擊。
· 您必須協調所有網絡參與者的檢測、響應和恢復。
· 您可能只有通過分析多個網絡參與者,才能識別「結構化」攻擊。當攻擊指向支持區塊鏈的應用和基礎架構時,向區塊鏈發起的攻擊才最有可能成功。您必須謹慎統籌參與者與系統不同組件之間的關係。攻擊者可能會利用系統的複雜性,發起攻擊,以微秒的方式利用這些關係。
2. 擁有了新意義的傳統威脅
· 區塊鏈基礎架構中的新漏洞以及對智能合同的篡改可能會帶來新的威脅。
· 在去中心化區塊鏈解決方案中,盜用用戶身份和不當提升特權都會帶來新的威脅。
· 區塊鏈解決方案中的外部數據可能被篡改或被盜,進而給整個區塊鏈解決方案帶來威脅。
· 被盜用或被篡改的密鑰和證書可能會給區塊鏈解決方案帶來威脅。
· 服務中斷也是一種威脅。
· 惡意交易/抵賴也會衍生出新的威脅。
3. 傳統威脅管理
· 滲透測試對於任何解決方案來說都很關鍵,這一點同樣適用於區塊鏈解決方案。
· 通過掃描整個解決方案的漏洞,您可以消除相當一部分已知的威脅。
· 您需要準備好威脅洞察力、檢測和緩解程序。
· 您需要制定事件響應和恢復計劃。
· 您需要建立最佳實踐身份管理機制。
· 業務連續性計劃/災難恢復對於任何區塊鏈解決方案來說都至關重要。
每個區塊鏈應用都各有不同,因此,構建一個通用的威脅模型是行不通的。但是,這些應用往往與很多類似的實施方、資產和用例有關。在本文中,我們針對這些常見的元素推薦了一個威脅模型,您可以將其當做模板使用,以此為起點,在具體的項目中展開更詳細的安全分析。
安全的區塊鏈解決方案需要什麼?在構建安全的區塊鏈解決方案時,您首先應該開發能應對所有業務、治理、技術和流程風險的風險模型。
下一步,評估區塊鏈解決方案面臨的威脅,構建如圖 1 所示的威脅模型。
定義安全控制措施,基於以下三大類別降低風險,減少威脅:
· 實施專為區塊鏈量身打造的安全控制措施。
· 採用傳統的安全控制措施。
· 實施面向區塊鏈的業務控制措施。
區塊鏈獨有的安全控制措施1. 將區塊鏈解決方案的基礎架構當作關鍵的基礎架構。
l 這有助於確保所有必需的安全實踐就位。採用並實行行業標準認證。
2. 分解並採用最佳實踐用於命名空間,以調節訪問。
l 解決方案必須按渠道和命名空間進行分區,從而託管平臺所有成員的數字資產。命名空間能幫助您調節對平臺上託管的數字資產的訪問。在前期完成這項工作還有助於您節省成本,因為在後期作出變更可能需要返工。在網絡內外和組織內部利用最佳實踐進行分區。
3. 基於業務合同,定義並實行適當的背書策略。
l 區塊鏈解決方案利用背書策略,定義必須滿足的標準,以確保提交的交易是有效的。所需籤名的數量和需要哪些組織的籤名就是典型的例子。這些策略應該與智能合同綁定,從而將業務網絡以及任意與合同相關的數字資產和數據的安全性納入考慮範圍。作為一項最佳實踐,這些策略必須在命名空間層面(面向整個智能合同)以及帳本密鑰層面(面向全球資料庫的單一條目)劃定範圍並作出明確規定。
4. 實施身份和訪問控制措施,訪問區塊鏈解決方案和數據。
l 定義策略,確保授予正確的個人相應的訪問權限級別,用於正確的用途。新成員應通過適當的身份和訪問機制,加入區塊鏈平臺。此外,您還需要定義退出流程,以避免洩露任何信息(利用各種不同的技術開展的惡意行為)。您需要準備好審計日誌和訪問流程,從而在出現任意惡意行為時提醒運營團隊,進而消除惡意行為。
l 如果組織使用自行開發的 IAM 系統來扮演身份提供商 (IDP) 的角色,那麼他們應該採用適當的令牌,比如 OAUTH、OIDC 和 SAML2,執行身份認證、驗證和授權。這一點同樣適用於其他聯盟成員。您需要提前制定聯盟成員是 IDP 還是服務提供商 (SP) 這類關鍵決策。
5. 部署硬體安全模塊 (HSM)。
l 使用 HSM 保護區塊鏈身份密鑰至關重要。確保每個組織在 HSM 都有自己的分區用於存儲密鑰,這一點同樣至關重要。您可以利用 HSM 存儲區塊鏈身份密鑰,確保密鑰安全無虞。HSM 分區流程可確保每個組織都有一個單獨的分區和單獨的管理員權限與角色(加密辦公室、加密用戶、超級管理員等等),從而在每個不同的分區上執行分區操作。
6. 使用特權訪問管理 (PAM) 解決方案,執行更高權限的操作。
l 藉助 PAM 解決方案,確保授予正確的用戶相應的特權訪問組件,以實現管理或變更管理目的。由於平臺上可能有機密信息,包括用戶和成員的付款交易數據,因此,這一點尤為重要。
l PAM 解決方案應配備密碼輪換功能並提供高效的職責劃分。還有一點也很重要,那就是配置端到端登錄以捕獲從進入到退出的整個工作流程。機密信息的訪問應該關聯到票務系統,機密信息的每次發布都應該通過審核人員的審核。每個管理訪問實例都應該能夠溯源至經過批准的票據或變更。
7. 採用 API 安全最佳實踐,保護基於 API 的交易。
l API 是區塊鏈解決方案各個組件之間通信的主要方式。您應該避免任何人以任何方式不當使用 API,並將 API 限制在交易範圍內。API 安全性涉及多個因素,但所有 API 都應該具備三個重要的控制功能:識別、身份驗證和授權。您應該採用 OAUTH 這類行業標準來規範交互,並保護 API,這一點至關重要。
8. 利用機密信息存儲,支持應用訪問和特權訪問。
l 區塊鏈解決方案有一系列組件,這些組件在基於用戶和基於 API 的交易中可以相互交互。其中一部分交易基於靜態密鑰展開,比如密碼、令牌或證書。這些密鑰必須存儲在機密信息存儲中(密鑰將被加密),運行時訪問將僅限於基於使用途徑的訪問。機密信息存儲需要支持精細審計,以實現合規性和威脅管理。
9. 採用數據分類方法,保護數據/信息。
l 識別並歸類與業務、法律和技術問題相關的數據,從而採用相應的信息安全控制措施,保護數據與隱私性。您必須針對區塊鏈解決方案的所有成員,持續實施數據分類。
10. 採用隱私保護技術,保護敏感信息。
l 利用以隱私為設計宗旨的許可帳本技術,提供控制機制,保護成員的私密信息。此外,採用隱私保護安全控制措施,隱藏交易信息,比如交易創建者的身份和交易詳細信息。
11. 防止應用出現漏洞,保護數據。
l 在開發生命周期階段,利用 DevOps 自動掃描應用漏洞。在不同層級(如應用和資料庫)採取數據安全措施,並開展數據分類分析,這一點至關重要。
12. 在智能合同內實施訪問控制。
l 智能合同是區塊鏈解決方案的重要組成部分。智能合同會根據業務目標實施策略,因此,您需要保護智能合同的方方面面。您應該重點關注如何對智能合同生命周期管理實施訪問控制,如何在智能合同內部以及與智能合同協作的流程或應用內部實施精細控制。
13. 利用可信平臺模塊 (TPM),執行敏感代碼。
l 有些解決方案組件比其他組件更重要,這些關鍵組件應該使用可信平臺模塊。這有助於您在 HSM 的支持下存儲加密材料。這樣,您還能對鏈代碼執行實施隱私保護,這樣,節點管理員就無法在不被檢測的情況下篡改執行。
14. 保護內外部通信。
l 確保平臺上所有與內部和外部交互的組件之間的通信都通過高度安全的渠道完成。相互/標準傳輸層安全性 (TLS) 解決方案能幫助您完成這項工作。您還可以採用其他安全層,包括 IP 白名單和密鑰頻繁輪換。
傳統的安全控制措施1. 採用企業安全標準和系統,確保安全的軟體開發生命周期、應用掃描並實施恰當的安全策略。
l 您應該採用所有企業策略、標準和常用安全平臺。它們能提供一致性、可靠性、熟悉性和運營效率。
2. 在用戶註冊方面實施身份和訪問管理功能。
l 採用企業標準的身份和訪問管理 (IAM) 工具,用於身份驗證、訪問控制和身份數據存儲。
3. 強制實施多因素身份驗證。
l 在訪問區塊鏈時,強制實施多因素身份驗證,並採用標準的 IAM 工具。用戶和管理員必須使用 MFA,無一例外。
4. 採用強大的加密密鑰/證書管理技術。
l 藉助強大且可靠的密鑰管理解決方案,管理區塊鏈解決方案中使用的各種密鑰,包括區塊鏈身份密鑰、內部 TLS 證書、外部 TLS 證書和域證書。
l 採用高效的內部 PKI 解決方案,管理內部 TLS 證書。
l 選擇適當的認證機構,獲取外部 TLS 證書。
5. 實施安全事故和事件管理。
l 企業需要建立安全事件饋送機制,將安全事件信息從平臺傳輸至成員,並在成員之間傳輸選定的事件信息。跨越架構內所有組件實施安全事故和事件管理 (SIEM) 至關重要。
6. 採用硬體安全技術。
l 利用硬體安全模塊,存儲關鍵的密鑰數據。鑑於推薦的平臺涉及多個成員,推薦的架構需要評估 HSM 及其影響。您需要一個通用的開放式協議來使用 HSM,才能在平臺上繼續操作。
l 在相應的分區中存儲密鑰,並控制成員訪問密鑰。
7. 採用應用安全技術。
l 針對單個組件採用安全措施,確保整個解決方案沒有安全漏洞。
8. 採用基礎架構安全技術。
l 網絡的基礎架構安全性與平臺上存儲的數據非常重要。您需要保護部署區塊鏈解決方案的底層基礎架構(包括所有軟體和硬體組件)。
9. 執行全面的滲透測試和漏洞評估。
l 確保在每個解決方案部署階段執行全面的滲透測試。對每個組織組件和整個系統執行漏洞評估,確保解決所有問題,這一點也很重要。
業務控制措施1. 定義並實施安全治理。
l 確保通過不同的策略、訪問控制機制和報告,實施安全治理。
l 不論節點位於何處,針對平臺定義專屬的治理法規,確保客戶獲得安全性,並確定擁有管制糾紛和法律訴訟的法規。
2. 確保採用合規和法律控制措施。
l 責任是一個重要的因素。在法務部門的推動下,每個組織都可能有自己的要求。正因為此,您需要明確定義每個成員和供應商在安全違規或安全漏洞事件中的責任,這一點很重要。確認符合系統和應用審計要求,以確保降低此類風險。
3. 定義運營控制措施,劃定運營控制措施的範圍,並實施這些措施。
l 區塊鏈解決方案需要有一系列完整的安全流程,一旦完成設計和構建階段以及解決方案的部署,您就必須構建並遵守這些安全流程。每個實施方、每個運營流程和所有工作說明都必須就位,以確保不會出現任何安全漏洞,項目能夠正常運轉。
區塊鏈安全參考架構由於缺乏廣泛認可的安全標準和法規,區塊鏈應用開發明顯還處於初期階段。從安全保證的角度來看,要實施區塊鏈商業網絡生態系統,您需要採用全面的風險管理方法來利用網絡安全風險框架、最佳實踐和網絡安全保證服務,有效降低風險。
知道大多數企業級區塊鏈系統都需要評估和授權以及操作權限 (ATO) 流程,才能確定是否遵守法規和隱私要求後,我們的方法就強調了一點:區塊鏈生態系統、參與者節點和實施方都有共享的安全責任。
在前文中,您已經知道評估風險與威脅並採取安全控制措施對於構建安全的區塊鏈解決方案至關重要。通過在區塊鏈架構中採用安全控制措施,您能夠構建區塊鏈安全參考模型,該模型可應用於所有區塊鏈解決方案。
圖 2:區塊鏈安全參考架構
圖 3 的區塊鏈安全模式總結了本文的要點,強調了保護區塊鏈解決方案的最重要的因素。具體包括:
1. 謹慎審視作為風險模型建立基礎的風險(業務和治理、流程和技術)
2. 分析要用以衍生威脅模型的各種威脅
3. 定義安全控制措施,減少風險和威脅,進而保護區塊鏈解決方案
圖 3:區塊鏈解決方案的安全模式
結語本文闡述了保護區塊鏈解決方案所需的組件。展望未來,我們強烈建議您對照本區塊鏈安全參考架構和區塊鏈安全模式,評估您設計和構建的解決方案,以確保區塊鏈解決方案的安全性。
如需獲得更多區塊鏈安全資源,請點擊下方的相關內容連結和右邊欄的資源連結。
致謝:作者感謝以下同事對本文的貢獻:Adewale Omoniyi、Dmitriy Beryoza、Kapil Singh、Jeff Tennenbaum 和 Alessandro Sorniotti。