セキュリティに真剣に取り組む:Trail of Bitsが評価した2つのICP機能
Trail of Bitsという、主要な技術セキュリティ監査機関によって最近評価された、2つの主要なInternet Computerの機能、SNS DAOとChain-key Bitcoin (ckBTC)。高度な深刻度の問題は見つかりませんでした。
著者: Robin Künzler
DFINITY財団は、Internet Computerブロックチェーンへの主要な貢献者として、セキュリティに非常に真剣に取り組んでいます。エンジニアリングおよびプロダクトセキュリティチームは、機能がリリースされる前に内部でさまざまなセキュリティチェックとレビューを行います。セキュリティツール、ベストプラクティス、および形式モデルも開発され、オープンソース化されており、開発者は独自のコードチェックを行ってバグを検出し、dappsの総合セキュリティを向上させることができます。さらに、Internet Computer上で構築された多くの主要な技術機能は、Trail of BitsやNCC Groupなどの主要な組織による追加の外部セキュリティ評価を受けています。これらの組織は、ソフトウェアセキュリティアシュアランスを専門としており、外部のレビューは内部のセキュリティ取り組みを補完し、専門レビュワーが提供するさまざまな視点からエンジニアリングおよび製品セキュリティチームが大いに利益を得る機会を提供します。これらの報告書は、ユーザーや開発者に対して、Internet Computer上での構築および参加におけるセキュリティリスクの最小化が非常に重要であることを示しています。最近、Trail of BitsによってChain-key Bitcoin (ckBTC)(分散型ビットコインの対応)とService Nervous System (SNS)(DAOフレームワーク)という2つの主要なInternet Computerの機能が評価され、高度な深刻度の脆弱性は見つかりませんでした。両方の機能は主に低深刻度の問題と一貫してポジティブなコード成熟度評価を受け、肯定的な評価を得ました。
Trail of Bits?とは?
ニューヨークを拠点とし、2012年以来世界中で活動しているTrail of Bitsは、高度なセキュリティ研究と実際の攻撃者の発想を組み合わせ、リスクを減少させコードを強化することを専門としています。この組織は、いくつかの世界的に標的を絞られた組織に技術的なセキュリティアセスメントとアドバイザリーサービスを提供し、KubernetesやLinuxカーネルを含む数十億のエンドユーザーをサポートする重要なソフトウェア要素をセキュアにするのに役立っています。Trail of Bitsはまた、ブロックチェーンセキュリティの卓越性の中心も運営しています。注目すべきプロジェクトには、Algorand、Bitcoin SV、Chainlink、Compound、Ethereum 2.0、MakerDAO、Matic、Uniswap、Web3、およびZcashの監査が含まれています。
評価の範囲、ツール、および技術
Trail of Bitsは、特にSNSとckBTCの機能のセキュリティを評価を実施しました。これらの機能はいずれも過去1年間でリリースされ、開発者やエンドユーザーの間で注目を集めているため、厳格な内部チェックに加えて外部からのセキュリティ評価を開始する良いタイミングでした。SNS DAO機能に関しては、非同期のSNSキャニスタースマートコントラクトの相互作用が、競合条件によって引き起こされる時間のチェック/使用(TOCTOU)と呼ばれるソフトウェアのバグクラスに対して脆弱でないかどうかを調査することが重要でした。また、SNSトークンスワップ機能が二重支払い攻撃に対して脆弱でないかどうかも調査する必要がありました。チケットベースの支払いプロトコルが正確性に対してレビューされることも、安全なユーザーエクスペリエンスを確保するために不可欠でした。
ckBTCに関しては、Bitcoinの保持、送信、受信が関与するため、資金の二重支払いが可能か、またはサービスの拒否攻撃が実行可能かどうかを評価するためのチェックを開始する必要がありました。ckBTCミンターが無効なトランザクションに署名したり、Bitcoinを支払わずにckBTCを燃やすことを防ぐためにも、確認が同じくらい重要でした。
Trail of Bitsのセキュリティ研究者は、手動のコードセキュリティレビューと自動テストを組み合わせて、各機能のさまざまな側面でセキュリティの問題を明らかにし、各機能のプロジェクト目標の堅牢性を評価しました。
ckBTCのセキュリティレビュー
Chain-key Bitcoin(ckBTC)は、Bitcoin(BTC)と1:1で裏付けられたInternet Computer上の「Bitcoinの対応」であり、1 ckBTCは常に1 BTCと引き換えにできるようになっています。ckBTCはBTCとckBTCの変換に第三者のブリッジを必要とせず、Bitcoinにペッグされた他のトークンよりも安全な代替手段を提供します。ckBTCトークンは数秒で確定して転送でき、通常のBitcoin取引と比較して取引手数料が大幅に低いため、迅速で信頼性があり、手頃なBitcoin取引を必要とするアプリケーションにとって実用的なソリューションです。
ckBTCはBitcoinの価値を転送する機能を含むため、DFINITYとそのコミュニティにとって潜在的なセキュリティリスクの評価が最優先事項でした。評価では、資金の二重支払い、サービスの拒否攻撃、および不十分なアクセス制御といった可能性のあるリスクをテストすることが含まれました。保管されている総Bitcoin額は常にckBTCトークンの総供給(取引手数料のため総ckBTC供給は小さい)以上である必要があり、これにより1:1のペッグを維持するためです。これを考慮すると、例えば対応するBTC量を供給せずにckBTCを作成するための資金の二重支払いを防ぐことが極めて重要です。ckBTCを燃やすことなく対応するBTC量を支払うことができないか、または燃やされた以上に支払うことができないようにすることも重要です。
ckBTCは進化するBitcoin経済の主要な促進要因になり得るため、常に利用可能でなければなりません。ckBTC機能に対するサービスの拒否攻撃は、成功した場合に深刻な影響を及ぼす可能性があるため、この点に対するセキュリティチェックもTrail of Bitsの評価プロトコルに追加されました。
ckBTCには中程度または高度な深刻度の問題なし
Trail of Bitsのセキュリティ専門家チームは、ckBTCのコードベースを細心の注意をもってスキャンし、コードが仕様と一致していることを確認し、アクセス制御の誤植、算術のオーバーフロー、または丸め誤りなど、セキュリティの問題につながる可能性のあるバグを検索しました。全体的に、評価は非常に肯定的であり、専門家チームはこの機能の素晴らしいコード品質に重点を置きました(コードの成熟度評価を参照)。発見された問題には「高」または「中」の深刻度の評価がなく、2つの「低」の評価が特定され、さらに3つの「情報提供」の評価がありました。Trail of Bitsのコードベースの成熟度評価を見ると、「認証/アクセス制御」と「テストおよび検証」は「強力」と評価され、他のすべての側面は「満足」と評価されました。不一致のエラーログがいくつかあることに加えて、「情報提供」の評価では、アップグレードパラメータの不十分な検証のリスクに関するいくつかの軽微な懸念が示されました。
「情報提供」の発見および「コード品質の推奨事項」はDFINITYのエンジニアリングチームによって十分に認識され、評価の完了後に対処されています。2つの低深刻度の発見は、トランザクションの認識プロセス(KYT)に関連しています。現在、これは単一のKYTプロバイダーに中央集権化されており、KYT APIキーはキャニスター内に保存されています。これらの発見は既にDFINITYとInternet Computerコミュニティによって特定されており、有効な懸念であるとの判断がされています。中央集権化の問題に関する評価は低いですが、KYTプロバイダーが意図的に誤った情報を提供する可能性は低いためです。さらに、必要に応じてKYTプロバイダーを置き換えるか、将来的にはキャニスターアップグレードを通じて他のプロバイダーを追加できる可能性があります。APIキーは理論的にはckBTCキャニスターが展開されているサブネットのノードオペレーターによって読まれる可能性がありますが、このリスクは低いです。なぜなら、APIキーを抽出するのは攻撃者にとってあまり有用ではなく、簡単に置き換えることができるからです。DFINITYは低深刻度の評価に同意しているため、当座はこれらのリスクを受け入れることが決定されました。
要約すると、KYTに関する2つの低深刻度の発見を除いて、すべての発見とコード品質の推奨事項は修正されています。
SNS DAOのストレステスト
Service Nervous Systems(SNS)機能は、分散型自治組織(DAO)フレームワークです。基本的に、これはInternet Computer上で構築された任意のdappをSNSに引き渡す仕組みであり、それにより対応するdappの所有権と制御をコミュニティに委ね、さらに開発および管理を行います。各SNSには、意思決定と変更を統括するステークベースのガバナンスシステムが含まれており、各SNS DAOに対して一意のトークンを定義する台帳も含まれています。このSNSフレームワークには、起動に至る確立された手順があります:SNSが作成され、ガバナンス制御がユーザーに分散され、初期資金がガバナンス制御と引き換えに収集され、その後、dappの制御が新しいSNSに引き渡されます。
資金がかかっており、各SNS DAOが非同期な形で相互作用する多くのキャニスタースマートコントラクトで構成されているため、機能を潜在的なセキュリティリスクに対して評価することは優先事項でした。最終ユーザーを保護する主要な目標を持っているため、スワップ中に二重支出が発生しないことや、トークンが失われないようにする必要があります。キャニスターの非同期な相互作用の性質に関するセキュリティチェックが実施され、再入のリスクや時間のチェック/使用の問題がないことを確認するための対策が講じられました。SNSライフサイクルには多くの状態があるため、合法的な状態の遷移のみが許可され、キャニスター間で一貫して同期されるようにすることが重要です。評価にはアクセス制御や算術などの標準的なチェックも含まれました。
2つのレビューポイント
レビューの最初の部分は、2022年秋のテストローンチの前に特定のプロジェクトフェーズに焦点を当てました。評価は、SNSフレームワークの主要な要素を対象としました。SNSスワップキャニスターからすべてのSNSキャニスターおよびdappキャニスターを制御するSNSルートキャニスター、SNSレジャー、SNSガバナンスメカニズム、およびSNSの発売およびアップグレードにおけるInternet Computerを統治するDAOであるNNS(DAO)への関与までです。この機能のアーキテクチャが非常に入り組んでいるため、これらの各コンポーネントに対してセキュリティチェックを実施することが重要でした。
2023年初頭には、この機能がメインネットでライブになり、最初のコミュニティプロジェクトがSNS DAOに成功裏になりました。その後も他のプロジェクトが続きました。SNSの発売に対する活動と関心の増加に伴い、テクニカルな最適化とSNSスワップキャニスターに新機能を追加する必要が生じ、これにはチケットシステムやトップアップのレビューも含まれました。このフォローアップレビューでは、SNSフレームワークに再び焦点を当て、非同期なキャニスター間の相互作用に関連する再入や時間のチェック/使用の問題を確認しました。つまり、SNSスワップキャニスターとICP台帳、SNSレジャーとSNSガバナンスキャニスターの間。評価では、二重支出の脆弱性やスワップキャニスターの新しいチケットシステムの正確性をテストし、キャニスター間の状態の取り扱いを確認して、SNSガバナンスメカニズムが正常であることを確認しました。SNSフレームワークのすべての主要な接点が徹底的に見直されました。コミュニティファンド(現在はNeuron Fundと呼ばれています)からICRC-1台帳、SNS台帳、およびSNSスワップキャニスターまで。
見つかったものと修正
全体的に、SNS機能は肯定的な評価を受け、特に特権付与されたアプリケーションプログラミングインターフェースに対する適切なアクセス制御、慎重なトークン算術、そして再入のバグを自動的かつ体系的にスクリーニングするTemporal Logic of Actions(TLA+)モデルを含む防御的なキャニスター相互作用が適切に行われていることが挙げられました。
いずれのレビューにおいても、高度な深刻度の問題は見つかりませんでした。2022年の評価では、中程度の深刻度の問題1件、低い深刻度の問題2件、情報提供事項4件が修正すべきポイントとして強調されました。特に、中程度の深刻度の問題(TOB-DFSNS-1)は、SNSトークンのカスタム転送手数料の使用に関連し、これがSNSニューロンの作成に失敗していました。問題が修正された後、Trail of Bitsチームは修正の検討を行いました(詳細についてはレポートの付録Aを参照してください)。全ての問題は解決され、情報提供事項のうち2件を除いて、これらはシステムに対する脅威ではありません。
2023年の第二の評価では、中程度の深刻度の問題1件、低い深刻度の問題1件、情報提供事項2件が見つかりました。中程度の深刻度の問題(TOB-DFSNSR-3)は、ユーザーがスワップに参加できなくなる可能性のあるエラーレポートのバグを強調しています。レビューの完了以降、全ての問題が解決されました。また、レビューにはコードをより読みやすくするための簡略化などの品質の推奨事項のリストも含まれていました。これらのすべての推奨事項は考慮され、1つを除いて適用されています。
セキュリティの重要性
外部のセキュリティレビューに加えて、DFINITYの製品セキュリティチームは新機能とそれに関連するリスクを内部のセキュリティレビューのために体系的に優先します。これらのレビューはソフトウェア開発ライフサイクルの一部であり、開発が始まる前でもデザインのレビューが含まれます。開発中には、機能が本番環境に展開される前に段階的な実装のセキュリティレビューが必要です。これには通常、手動のコードレビューと静的および動的なセキュリティテストの組み合わせが含まれ、その結果は詳細に内部レポートに記録されます。
その後、エンジニアリングチームは各コンポーネントで見つかったセキュリティバグに対処し、これらのセキュリティバグの処理方法についての内部プロトコルに従います。
エコシステムをより強固に
DFINITYの製品セキュリティチームは、Webを提供するcanister(コンテナ)やDApp(分散型アプリケーション)のセキュリティも評価します。これらのレビューでは、リエントラント、TOCTOU、非分散性の不足、DoS、認証、および暗号のバグなど、実際の世界でのセキュリティの脆弱性のさまざまなクラスが評価されます。これらのレビューから得られた知識はICコミュニティ全体に利益をもたらすことができます。
Internet Computerのセキュリティを真剣に考えることは、エコシステムに安全で堅牢なDAppを作成するためのツールやヒントを提供することを意味します。内部レビューの学びをコミュニティに共有するために、セキュリティベストプラクティスガイドが公開されました。これはエコシステムが開発ライフサイクルの早い段階でバグを回避するのに役立ちます。最近では、DFINITYはTLA+モデルもオープンソース化し、ステップバイステップのチュートリアルを提供して、開発者が自分たちのcanisterのために同様のモデルを作成するのをサポートしています。これらの形式モデルは、機能デザインの正確性を確保するために内部で開発されました。これらは主要なInternet Computerの機能、SNSやckBTCなど、およびプロトコルスタックの一部に適用されています。
最後に、Internet Computerのセキュリティと堅牢性は協力の成果です。コミュニティは、ブロックチェーンのコアコンポーネントに関連する潜在的なセキュリティバグをバグバウンティプログラムを通じて報告することが奨励されています。また、セキュリティベストプラクティスに関するディスカッションと意見はフォーラムで大歓迎です。内部と外部の対策が組み合わさることで、最も安全で改ざんできないブロックチェーンを作成する可能性が高まります。これは特にWeb3攻撃がまだ増加している世界で重要です。2022年のグローバルWeb3セキュリティ&AMLレポートによれば、2022年のWeb3攻撃による総損失は約36億ドルで、これは2021年よりも47.4%高いです。
Internet Computerの詳細はこちら: internetcomputer.org
Internet Computer の 公式 Twitter: @dfinity
Internet Computer の 公認 日本語翻訳 Twitter: @ICP_JPCM