※この記事は、「Taking security seriously: two top ICP features assessed by Trail of Bits」を引用/翻訳したものです。
インターネット コンピュータの 2 つの主要機能である SNS DAO と Chain-key Bitcoin (ckBTC) が、ブロックチェーン セキュリティの卓越したセンターとして活動する大手技術セキュリティ監査機関である Trail of Bits によって最近評価されました。重大度の高い問題は見つかりませんでした。
Internet Computerブロックチェーンの主要な貢献者であるDFINITY財団は、セキュリティを非常に重視しています。エンジニアリングチームと製品セキュリティチームは、機能がリリースされる前に社内でさまざまなセキュリティチェックとレビューを実施するだけでなく、セキュリティツール、ベストプラクティス、形式モデルも開発されオープンソース化されているため、開発者は独自のコードチェックを実行してバグを検出し、dappsの全体的なセキュリティを向上させることができます。さらに、Internet Computer上に構築された主要な技術機能の多くは、ソフトウェアセキュリティ保証を専門とするTrail of BitsやNCC Groupなどの大手組織が実施する追加の外部セキュリティ評価を受けています。
外部レビューを受けることで、社内のセキュリティ対策が補完され、エンジニアリング チームと製品セキュリティ チームは、他のブロックチェーン プロジェクトに関する知識と経験に基づく専門家レビュー担当者のさまざまな視点から、大きなメリットを得て学ぶ機会が得られます。問題に対処した後、DFINITY は監査レポートを公開し、コミュニティが機能のセキュリティ体制を独立して見ることができるようにします。このようなレポートは、ユーザーと開発者に、インターネット コンピューター上に構築し、それと関わる際のセキュリティ リスクを最小限に抑えることが最も重要であることを伝えます。
最近、インターネット コンピュータの 2 つの主要機能、つまり分散型ビットコイン ツインである Chain-key Bitcoin (ckBTC) とDAO フレームワークである Service Nervous System (SNS) がTrail of Bitsによって評価されました。重大度の高い脆弱性は見つからず、両方の機能は主に重大度の低い問題と一貫して肯定的なコード成熟度評価で肯定的な評価を受けました。ckBTCと SNSの評価レポート( 2022 年の評価、2023 年の評価)をご覧ください。
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 機能のセキュリティを評価するために呼び出されました。両方の機能は昨年中にリリースされ、開発者とエンドユーザーの間で注目を集めているため、厳格な内部チェックに加えて外部セキュリティ評価を開始するのに良いタイミングでした。SNS DAO 機能に関しては、非同期 SNS キャニスター スマート コントラクトのやり取りが競合状態によって引き起こされる TOCTOU (time-of-check / time-of-use) と呼ばれるソフトウェア バグのクラスに対して脆弱であるかどうか、または SNS トークン スワップ機能が二重支払い攻撃に対して脆弱であるかどうかを調査することが重要でした。チケットベースの支払いプロトコルの正確性をレビューすることも、安全なユーザー エクスペリエンスを確保するために不可欠でした。
ckBTC に関しては、ビットコインの保有、送信、受信に関わるため、資金の二重使用やサービス拒否攻撃の実行が可能かどうかを評価するチェックを開始する必要がありました。ckBTC のミンターが騙されて無効なトランザクションに署名したり、ビットコインを使わずに ckBTC を焼却したりできないようにすることも同様に重要でした。
Trail of Bits のセキュリティ研究者は、手動のコード セキュリティ レビューと自動テストを組み合わせて合計 3 つの評価を実施し、各機能のさまざまな側面におけるセキュリティの問題を明らかにし、各機能のプロジェクト目標の堅実性を評価しました。
ckBTCのセキュリティの検討
チェーンキー ビットコイン(ckBTC) は、インターネット コンピュータ上の「ビットコイン ツイン」であり、ビットコイン (BTC) によって 1:1 で裏付けられているため、1 ckBTC は常に 1 BTC に引き換えることができ、その逆も同様です。ckBTC は、BTC と ckBTC 間の変換にサードパーティのブリッジに依存しないため、ビットコインにペッグされた他のトークンよりも安全な代替手段を提供します。ckBTC トークンは、わずか数秒で確実に転送でき、取引手数料は通常のビットコイン取引に比べて大幅に低いため、高速で信頼性が高く、安価なビットコイン取引のメリットを享受できるアプリケーションにとって実行可能なソリューションです。
ckBTC はビットコインの価値を転送するものであることから、潜在的なセキュリティ リスクについてこの機能を評価することは、DFINITY とそのコミュニティにとって最優先事項でした。評価では、資金の二重支出、サービス拒否攻撃、不十分なアクセス制御という 3 つの主要領域を含む、考えられるリスクのテストが対象となりました。1:1 ペッグを維持するには、保管されているビットコインの合計額が常に ckBTC トークンの総供給量以上 (ckBTC の総供給量は取引手数料のため少なくなります) であることが保証される必要があります。これを考慮すると、たとえば対応する BTC 量を供給せずに ckBTC を鋳造するために資金の二重支出を防ぐことが最も重要です。また、対応する BTC 量を支払わずに ckBTC をバーンしたり、バーンした量よりも多く支払ったりすることも不可能でなければなりません。
ckBTC は進化するビットコイン経済の重要な推進力となる可能性があるため、常に利用可能でなければなりません。したがって、ckBTC 機能に対するサービス拒否攻撃は、成功した場合、悲惨な結果を招く可能性があります。そのため、不十分または欠落しているアクセス制御とともに、これに対するセキュリティ チェックが Trail of Bit の評価プロトコルに追加されました。
ckBTCでは中程度または高程度の重大度は検出されませんでした
Trail of Bitsのセキュリティ専門家チームは、ckBTCのコードベースを綿密にスキャンし、コードが仕様に準拠していることを確認したほか、アクセス制御の設定ミス、算術オーバーフロー、丸め誤差など、セキュリティ上の問題につながる可能性のあるコードのバグを探しました。 全体的に非常に肯定的な判定で、専門家チームはこの機能の優れたコード品質を強調しました(コード成熟度評価を参照)。 重大度が「高」または「中」と評価された発見事項はなく、「低」の発見事項は2件のみで、「情報」の発見事項は3件でした。 Trail of Bitsのコードベース成熟度評価を見ると、「認証/アクセス制御」と「テストと検証」は「強力」と評価され、その他すべての側面は「満足」と評価されていました。 一部のエラーログの一貫性の欠如に加えて、「情報」の発見事項では、アップグレードパラメータの検証が不十分であるというリスクに関する若干の懸念が明らかになりました。
すべての「情報」の発見事項と「コード品質の推奨事項」は、DFINITY エンジニアリング チームによって十分に記録され、評価の完了以降対処されています。重大度の低い 2 つの発見事項は、Know Your Transaction (KYT) プロセスに関連していました。現在、このプロセスは単一の KYT プロバイダーに集中化されており、KYT API キーはキャニスター内に保存されています。これらの発見事項は、DFINITY とインターネット コンピューター コミュニティによってすでに特定されており、依然として有効な懸念事項です。集中化の問題に関する評価は低く、KYT プロバイダーが故意に誤った情報を提供する可能性は低いためです。さらに、必要に応じて KYT プロバイダーを置き換えたり、将来キャニスターのアップグレードによってプロバイダーを追加したりすることもできます。API キーは、ckBTC キャニスターが展開されているサブネットのノード オペレーターによって理論的に読み取られる可能性がありますが、攻撃者にとってほとんど役に立たず、簡単に置き換えることができる API キーを抽出するにはかなりの労力が必要になるため、このリスクは低いです。 DFINITY は低重大度評価に同意したため、当面はこれらのリスクを受け入れることに決定しました。
要約すると、KYT に関する重大度の低い 2 つの発見事項を除き、修正メモに示されているように、すべての発見事項とコード品質の推奨事項が対処されました。
SNS DAOのストレステスト
Service Nervous Systems (SNS)機能は、分散型自律組織 (DAO) フレームワークです。本質的には、インターネット コンピューター上に構築された任意の dapp を SNS に引き渡すことができるメカニズムです。DAO は、それぞれの dapp の所有権と制御権をコミュニティに与え、さらに開発と管理を行います。各 SNS には、意思決定と変更を調整するステークベースのガバナンス システムと、各 SNS DAO の一意のトークンを定義する台帳が含まれています。この SNS フレームワークには、ローンチにつながる確立された手順があります。SNS が作成され、ガバナンス制御権が分散化スワップでユーザーに配布され、ガバナンス制御権と引き換えに初期資金が集められ、その後、dapp の制御権が新しい SNS に引き渡されます。
資金が絡んでおり、各 SNS DAO は非同期でやり取りする多数のキャニスター スマート コントラクトで構成されているため、潜在的なセキュリティ リスクについて機能を評価することが最優先事項でした。エンド ユーザーを保護することを主な目標としているため、スワップ中に二重支払いが起こらないようにし、トークンが失われないようにする必要があります。キャニスターのやり取りの非同期性に関しては、再入やチェック時間/使用時間の問題のリスクがないことを確認するためにセキュリティ チェックが実施されました。SNS ライフ サイクルには多くの状態があるため、合法的な状態遷移のみが許可され、キャニスター間で一貫して同期されていることを確認することが重要です。評価には、アクセス制御や算術などの標準的なチェックも含まれていました。
2部構成のレビュー
レビューの最初の部分は、2022 年秋のテスト開始前のプロジェクトの特定のフェーズに焦点を当てました。評価は、SNS スワップ キャニスターから、すべての SNS キャニスターと dapp キャニスターを制御する SNS ルート キャニスター、SNS 台帳、SNS ガバナンス メカニズム、SNS の開始とアップグレードへの NNS (インターネット コンピューターを管理する DAO) の関与まで、SNS フレームワークの主要要素を対象としました。この機能のアーキテクチャは非常に複雑であるため、これらの各コンポーネントのセキュリティ チェックを実施することが重要でした。
2023 年の初めに、この機能はメインネットで稼働し、最初のコミュニティ プロジェクトが SNS DAO になりました。他のプロジェクトも今年の前半に続きました。SNS の立ち上げ、技術的な最適化、チケット システムなどの SNS スワップ キャニスターへの新機能の追加に対する活動と関心が高まったため、追加のレビューが必要になりました。このフォローアップ レビューでは、SNS フレームワークを再度対象とし、別のラウンドで、SNS スワップ キャニスターと ICP 台帳、SNS 台帳、SNS ガバナンス キャニスター間の非同期キャニスターのやりとりに関する再入性とチェック時間/使用時間の問題のチェックを行いました。評価では、二重支払いの脆弱性とスワップ キャニスターの新しいチケット システムの正確性をテストし、SNS ガバナンス メカニズムが損なわれていないことを確認するために、キャニスター間の状態の処理を検証しました。コミュニティ ファンド (現在は Neuron Fund と呼ばれています) から ICRC-1 台帳、SNS 台帳、SNS スワップ キャニスターまで、SNS フレームワークのすべての主要なタッチポイントが徹底的にレビューされました。
発見と修正
全体的に、SNS 機能は肯定的な評価を受けており、特権アプリケーション プログラミング インターフェイスに対する適切なアクセス制御、慎重なトークン演算、再入バグのコードを自動的に体系的にスクリーニングするTemporal Logic of Actions (TLA +) モデルを含む防御的なキャニスター インタラクションなどが特に評価されました。
いずれのレビューでも、重大度の高い問題は見つかりませんでした。2022 年の評価では、修正すべき点として、重大度が中程度の 1 件、重大度が低い 2 件、および情報に関する 4 件の問題が強調されました。特に、重大度が中程度の問題 (TOB-DFSNS-1) は、カスタム SNS トークン転送手数料の使用に関係しており、SNS ニューロンの作成が失敗していました。問題が修正された後、Trail of Bits チームは修正レビューを実施しました (詳細については、レポートの付録 A を参照してください)。システムへの脅威とはならない 2 件の情報に関する問題を除き、すべての問題が解決されました。
2023 年の 2 回目の評価の結果、重大度が中程度のものが 1 件、重大度が低いものが 1 件、および情報に関するものが 2 件ありました。重大度が中程度の問題 (TOB-DFSNSR-3) は、ユーザーがスワップに参加できない可能性があるエラー報告のバグを示しています。レビューの完了以降、すべての問題に対処しました (修正メモを参照)。レビューには、読みやすさを向上させるためのコードの簡素化などの品質に関する推奨事項のリストも含まれていました。1 つを除いて、すべての推奨事項が検討され、適用されました。
セキュリティを真剣に考える
外部セキュリティ レビューに加えて、DFINITY の製品セキュリティ チームは、新しい機能とそれに関連するリスクを社内セキュリティ レビューで体系的に優先順位付けします。これらのレビューはソフトウェア開発ライフサイクルの一部であり、開発開始前の設計レビューから構成されます。開発中は、機能が稼働する前に段階的な実装セキュリティ レビューが必要です。通常、これには手動コード レビューと静的および動的セキュリティ テストの組み合わせが含まれ、その結果は社内レポートに詳細に記録されます。
その後、エンジニアリング チームは、セキュリティ バグの処理方法に関する社内プロトコルに従って、それぞれのコンポーネントで見つかったセキュリティ バグの責任を引き継ぎます。
エコシステムの強化
DFINITY の製品セキュリティ チームは、Web を提供する dapps を含むキャニスターのセキュリティも評価します。これらのレビューでは、再入性、TOCTOU、分散化の欠如、DoS、認証、暗号バグなど、現実世界のセキュリティ脆弱性のいくつかのクラスが評価されます。これらのレビューから得られる知識は、IC コミュニティにも役立ちます。
インターネット コンピュータのセキュリティを真剣に考えるということは、安全で堅牢な dapp を作成するためのツールとヒントでエコシステムを強化することを意味します。内部レビューから得た知識をコミュニティに伝えるために、セキュリティのベスト プラクティスガイドが公開され、エコシステムが開発ライフサイクルの早い段階でバグを回避できるようにしています。最近、DFINITY は、開発者がキャニスター用に同様のモデルを作成できるように、ステップバイステップのチュートリアルを含む TLA+ モデルもオープンソース化しました。これらの正式なモデルは、機能設計の正確性を確保するために社内で開発されました。これらは、SNS や ckBTC などの主要なインターネット コンピュータ機能のキャニスター インタラクションや、基盤となるプロトコル スタックの一部に適用されています。
最後に、インターネット コンピュータのセキュリティと堅牢性は共同作業です。コミュニティは、バグ バウンティ プログラムを通じて、ブロックチェーンのコア コンポーネントに関連する潜在的なセキュリティ バグを報告することが推奨されています。また、セキュリティのベスト プラクティスに関する議論や意見もフォーラムで大歓迎です。内部と外部の両方の対策を講じることで、最も安全で改ざん防止機能のあるブロックチェーンを作成できる可能性が高まります。これは、Web3 攻撃が依然として増加している世界では特に重要です。Global Web3 Security & AML Report 2022によると、2022 年の Web3 攻撃で発生した総損失は約 36 億ドルで、2021 年より 47.4% 増加しています。
インターネット コンピュータについて詳しくは、以下をご覧ください。
ホーム | インターネット コンピュータ
インターネットを無限のスマートコントラクトプラットフォームとして再考するワールドコンピュータブロックチェーン
インターネットコンピュータ
Comments