ブロックチェーンを基幹技術とした分散型ネットワークであるWeb3の利活用が国内外で推進されています。日本政府も、当該分野を新たな経済成長戦略の柱の1つとするなど、国内市場の活性化が予測されます。
一方で、ブロックチェーンに関わるセキュリティインシデントも多発しており、セキュアな開発と実装の必要性が高まっています。本ブログではNRIセキュアが提供する「ブロックチェーンセキュリティガイドライン」を例に、ブロックチェーンを活用したシステムのセキュリティ対策へのアプローチを紹介していきます。
ブロックチェーンを活用したシステムにおけるセキュリティ対策の必要性
ブロックチェーンにおけるセキュリティ観点としては、脆弱性管理やアクセス制御、ネットワークセキュリティなど、従来のシステム開発において考慮すべきセキュリティ観点だけではなく、スマートコントラクトのセキュリティ、システムインフラ内での秘密鍵の管理、エコシステムとしてのガバナンスやコンセンサスアルゴリズムの信頼性など、ブロックチェーン特有のセキュリティ観点も存在します。
しかしながら、これらのセキュリティ観点が考慮されていない結果、セキュリティインシデントにつながってしまうケースが多く報告されています。
スマートコントラクトは一度ブロックチェーン上に流してしまうと修正が出来ないため、従来のシステムよりもリリース前にいかに脆弱性をつぶし込めるかという点が重要なポイントです。またウォレットの秘密鍵についても一度窃取されると莫大な被害につながる可能性が高いため鍵のライフサイクルに沿って安全に管理できるようにすることが重要なポイントとなります。
上記2点における代表的なインシデント事例としては以下があります。
インシデント事例
スマートコントラクトのセキュリティ不備によるインシデント事例
2021年8月にクロスチェーンのDeFiプロトコルであるPoly Networkで約6億1000万ドル相当の暗号資産が流出し、DeFiプロトコルでは過去最大規模のインシデントが発生しました。
流出原因はスマートコントラクトのアクセス権の管理不備とされており、スマートコントラクトの脆弱性により発生したインシデントの代表的な事例となっています。
鍵管理不備によるインシデント事例
2018年1月に暗号資産取引所「Coincheck」で約580億円相当のNEMが流出しました。流出の原因は「コールドウォレットではなくホットウォレットで大量のNEMを保管」「マルチシグの不採用」があり、鍵管理不備により発生した国内のインシデントの代表的な事例となっています。
上流工程で脆弱性を発生させないことが重要
上記のようなインシデントの原因となりうる脆弱性の半数以上は、開発の要件定義・設計フェーズで作りこまれています。この脆弱性がテストや運用工程で発見されると、それ以前の開発工程作業(修正・レビュー・テスト)の手戻りが生じ、コストもかさむ恐れがあります。
特にスマートコントラクトでは上述したように一度ブロックチェーン上に流してしまうと修正ができないため、上流工程で脆弱性を発生させないことが重要になってきます。
Web3システム開発の上流工程におけるセキュリティ課題の改善アプローチ
上記の課題を解決するためには、どのようなアプローチがあるでしょうか。
ブロックチェーン技術を使ったシステムを構築するうえでのセキュリティ要件を検討する際には、ブロックチェーンを活用したシステムを「エコシステム層」「スマートコントラクト層」「プロトコル層」「インフラ層」の4つのレイヤに分類し、各レイヤに固有の脆弱性についてセキュリティ対策がなされているかを検討していくアプローチが考えられます。
NRIセキュアが独自に開発した「ブロックチェーンセキュリティガイドライン」を例に説明していきます。このガイドラインでは上述の4つのレイヤの分類を一部カスタマイズのうえ、各レイヤにおける問題点と、対応する対策領域を下図のように整理しています。
ブロックチェーンを活用したシステムを4つのレイヤに分類のうえ対応策を検討
「スマートコントラクト層」および「プロトコル層」における脆弱性と、「エコシステム層」における一部の脆弱性については、スマートコントラクトのセキュリティ対策を適切に実施することでリスクを低減することが可能です。
したがって、「スマートコントラクト層」と「プロトコル層」を統合し、「エコシステム層」の一部の脆弱性から「スマートコントラクト/プロトコル層」までの脆弱性に対する対策領域を、スマートコントラクトのセキュリティ対策に対応付けて整理したうえで、 「スマートコントラクト/プロトコル層」と「エコシステム層」に関わる攻撃事例に対するセキュリティ対策をガイドラインでは記載しています。
一方、「インフラ層」における主要な攻撃事例は秘密鍵窃取であり、他の領域と比較するとセキュリティ対策が比較的に確立している分野となるため、本ガイドラインでは鍵管理におけるベストプラクティスについても紹介しています。
また、本ガイドラインでは「必須(必須項目)」または「推奨(準必須項目)」で表す重要度を設定しているため、開発システムやビジネスの性質、保護する情報の重要度、公開対象の環境を考慮して適宜判断することが可能です。
このガイドラインは「スマートコントラクト編」と「鍵管理編」の2部で構成されています。それぞれの章の対象は、こちらからご確認ください。
おわりに
NRIセキュアでは、「Webアプリケーション」「スマートフォンアプリケーション」「IoT機器」向けのセキュリティ開発ガイドラインも提供しています。
これらのガイドラインと、今回ご紹介したブロックチェーンセキュリティガイドラインをあわせてご利用いただくことで、Web2を組み合わせたWeb3システム全体のセキュアな設計・開発が可能となります。このほか、上流工程における開発支援コンサルティングサービスや、ブロックチェーン診断(アーキテクチャ評価、スマートコントラクト診断)、Webアプリケーション診断などの各種セキュリティ診断を組み合わせることで、セキュリティ水準の高いWeb3システムの構築を幅広い工程で支援します。