HashQuark 部署 Factom ANO 安全方案參考

買賣虛擬貨幣
Factom網路中的節點分為三類:Federated Node、Audit Node與Follower Node。其中,Federated Node 負責在區塊鏈賬本中記錄交易資料,Audit Node 則只有讀取的許可權,負責檢查和校驗 Federated Node工作的合法性,並在必要時替換出現問題的 Federated Node,以確保全網的安全和穩定;Follower Node 作為普通節點,能夠接收外部使用者的資料上鍊請求並轉發給 Federated Node。Federated Node 和 Audit Node 統稱為 Authority Node, 二者都可以得到系統代幣獎勵。HashQuark研究團隊聯合慢霧安全團隊針對 Factom ANO 的安全部署做了一些思考,主要針對以下問題:· 總體架構· DDoS 攻擊防範· 入侵攻擊防範· 節點軟硬體宕機防範

· 重要配置操作離線簽名


總體架構

由於現階段每一個Authority Node Operator (ANO) 可以運營兩個節點,所以該架構圖展示了 Authority Node A 以及 Authority Node B。

透過查閱當前 Factom 網路 ANO 節點部署的地理位置以及所選用的雲服務廠商,HashQuark研究團隊推薦選擇除 AWS 和 Google 之外的雲廠商在亞洲的機房進行部署,從地理位置及雲服務平臺兩方面增強 Factom 網路的去中心化能力。

DDoS 攻擊防範

為了應對可能的 DDoS 攻擊影響節點記賬,將 Authority Node 部署在內網中,利用Follower Node 進行同步區塊和驗證交易,且這兩個 Follower Node 的公網IP可不對外公開,以免同時遭遇 DDoS 攻擊。

透過部署同樣的Master Authority Node 和 Standby Authority Node 進行熱備,當 Master 節點故障時啟動 Standby 節點。此外,在 Federated Node 需要進行軟體升級時,為避免節點變為 offline 狀態,可藉助 Standby Node 方便地進行 brainswap 操作,保證整個區塊鏈網路的穩定性。

同時搭建日誌監控平臺進行收集、分析和視覺化處理,監控所有節點服務器的CPU負載、磁碟IO 、網路IO、程序數等系統健康程度關鍵指標。

入侵攻擊防範

一、保持主機服務單一,只啟動節點相關程序,避免一機多用;

二、防止全網掃描定位私密的 Follower Node,修改同步埠 8108 至全網最大存活數量的埠 80、443 或 22,以有效地抬高攻擊者定位成本;

三、關閉不相關的其他服務埠,只開放對應需要的埠,並在第三方雲服務上定製嚴格的安全規則(雲服務商控制檯和作業系統防火牆都需要設定此項);

四、更改 SSH 預設的 22 埠,配置 SSH 只允許用 key(並對 key 加密)登入,禁止密碼登入,並限制訪問 SSH 埠的 IP 只能為我方運維 IP;

五、在預算充足的情況下,推薦部署優秀的 HIDS(或參考開源的 OSSEC 相關做法),及時應對服務器被入侵。

節點軟硬體宕機防範

一、透過異地機房部署進行機房災備
二、對電房電源進行備用冗餘
三、庫存高損耗的關鍵硬體進行備份冗餘
四、每個 Authority Node 部署 Master 和 Standby

重要配置操作離線簽名

第一次建立節點身份資訊及金鑰時,自行從原始碼編譯 serveridentity 工具,在離線安全環境下生成安全金鑰與fullidentity.sh 後再複製至線上安全環境執行,並妥善儲存生成的Private keys,其中 level 4 秘鑰為最高安全等級。

當需要設定或更新 coinbase address 與 node efficiency 重要配置時,自行從原始碼編譯 factom-identity-cli 工具,在離線安全環境下生成執行指令碼,再複製至線上安全環境執行。

配置細節

Authority Node 在加入官方的 Docker Swarm 之前,從官方Github下載主網的安全證書新增在/etc/docker/daemon.json 中,並使用 non-root 賬號啟動 Docker服務,防止透過 Docker 提權獲取伺服器許可權。

Authority Node 需要開放的白名單埠:
- TCP/UDP埠 2376 開放給Factom官方 52.48.130.243 & 18.203.51.247 用於與Docker Swarm Master進行加密通訊
- TCP/UDP埠2222 開放給Factom官方 52.48.130.243 & 18.203.51.247,用於 Swarm 在 Authority Node 啟動的 filebeat container通訊
- 同步區塊TCP埠 8108開放給 Follower Node,並且定製配置項 MainSpecialPeers為這些 Follower Node
- RPC服務TCP埠8088 開放給Factom官方 52.48.130.243 & 18.203.51.247,用於除錯
- Control Panel監控頁面TCP埠8090 開放給Factom官方 52.48.130.243 & 18.203.51.247,用於異常監控

Follower Node 需要開放的白名單埠:
- 埠8108對公網開放用於同步區塊

從官方 GitHub 下載主網配置檔案 factomd.conf 和安全證書,以及從官方 Docker hub 下載的映象都需要確保安全,防止被篡改。

對外提供 RPC 服務的節點,透過開放8090埠,同時加上 TLS 證書及賬號密碼保護驗證。

對每個節點的 Control Panel 監控頁面8090埠,僅允許在內網環境透過VPN訪問,並且在將配置項ControlPanelSetting設定為 readonly。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;