Back to Blog

ソラナエコシステムを守る

2024年6月4日
4 min read

このシリーズ「Solanaエコシステムを守る」では、Solanaブロックチェーンにおけるセキュリティのさまざまな側面を掘り下げます。基礎的な概念から始まり、クロスプログラムインタラクション、アカウントバリデーション、マルチシグネチャメカニズムや型安全性といった複雑な機能の取り扱いなど、より細かなトピックへと進んでいきます。各記事は前の記事を土台として構築されており、Solanaを使用する際のセキュリティと効率性を高める方法について、開発者が包括的に理解できるよう設計されています。

内訳:包括的な概要

この記事では、Solanaの背景を簡単に紹介し、サンプルプロジェクト(例:Hello World)を通して説明します。Solanaにプログラムをデプロイする方法と、クライアントを使用してオンチェーンプログラムと対話する方法を学びます。

この記事では、関数invoke()を使用してクロスプログラム呼び出しを実装する方法を紹介します。また、invoke()とinvoke_signed()の違いをさまざまな例を用いて説明します。

この記事では、Solanaでプログラムをアップグレードする方法を紹介します。さまざまな例を用いて詳細なプロセスを説明します。

Solanaでは、インストラクションはクライアントや他のプログラムから提供されるさまざまなアカウントに基づいて、指定されたロジックを実装します。そのため、アカウントの適切なチェックは非常に重要です。 この記事では、アカウントを適切にチェックする方法を紹介し、これらのチェックの重要性を示す2つの攻撃シナリオを用いて説明します。

この記事では、Solanaにおけるマルチシグのシンプルな実装を紹介します。これは、複数のユーザーからオフチェーンで署名を収集できるシナリオ向けです。トランザクションが完全にオンチェーンで署名される必要があるシナリオについては、後ほど紹介します。

この記事では、SolanaにおけるマルチシグのGeneralな実装を紹介します。この実装はPDAの機能を活用しており、有効な署名の数が要件を満たした際に、プログラムがPDAによって自動的にトランザクションに署名できるようにします。

この記事では、Solanaにおける型の混同の問題を紹介します。この問題を回避する方法はいくつかあります。たとえば、構造体にアカウントの型を記録する属性を追加し、渡されたアカウントへの読み書き前にプログラムが常に型属性を確認するようにすることができます。


BlockSecについて

BlockSecは、世界的に著名なセキュリティ専門家のグループによって2021年に設立された、先駆的なブロックチェーンセキュリティ企業です。同社は、新興のWeb3の世界においてセキュリティとユーザビリティの向上に取り組み、その大規模な普及を促進することを使命としています。そのために、BlockSecはスマートコントラクトおよびEVMチェーンのセキュリティ監査サービス、セキュリティ開発と脅威の積極的なブロッキングのためのPhalconプラットフォーム、資金追跡と調査のためのMetaSleuthプラットフォーム、およびWeb3ビルダーがクリプト世界を効率的に探索するためのMetaSuites拡張機能を提供しています。

現在までに、MetaMask、Uniswap Foundation、Compound、Forta、PancakeSwapなど300社以上の著名なクライアントにサービスを提供しており、Matrix Partners、Vitalbridge Capital、Fenbushi Capitalを含む著名な投資家から2回の資金調達ラウンドで数千万ドルの資金を調達しています。

公式ウェブサイト:https://blocksec.com/

公式Twitterアカウント:https://twitter.com/BlockSecTeam

Sign up for the latest updates
安全な保管を超えて、第2部:ウォレットの暗号技術を安全に実装する
Security Insights

安全な保管を超えて、第2部:ウォレットの暗号技術を安全に実装する

攻撃者は、保護された秘密鍵のコピーを読み取らずに、その秘密鍵を復元できるのでしょうか。『Beyond Secure Storage』の第2部では、乱数の品質不足、エントロピーの損失、署名用ノンスの不備によって鍵の予測や復元が可能になった6件の事例を検証します。そこから鍵生成と署名に関する実装要件を導き出し、決済機関がコードレビューと導入済みシステムのテストを通じて、それらをどう評価できるかを説明します。

安全な保管を超えて、第1部:安全な決済・署名ワークフローの設計
Security Insights

安全な保管を超えて、第1部:安全な決済・署名ワークフローの設計

攻撃者が秘密鍵を盗まずに、認可されていない操作が有効な署名を得ることは、なぜ可能なのでしょうか。「安全な保管の先へ」第1回では、Bitget、Bybit、Binanceなどの事例を通じて、支払い要求、トランザクションの構築、署名、実行、決済の各段階における認可の不備を検討します。そのうえで、認可されていない操作を防ぎ、損失を抑えるための設計原則を導き出し、レビュー、監査、ペネトレーションテスト、演習によって、それらの防御策をどう検証できるかを説明します。

秘密鍵が盗まれなくても暗号資産が奪われる仕組み
Case Studies

秘密鍵が盗まれなくても暗号資産が奪われる仕組み

秘密鍵を安全に管理していても、決済の安全が保証されるわけではありません。BlockSecは、BigONE、Bybit、Resolv、Binance、Drift、Chainflipが関わる実際のインシデントを踏まえ、攻撃者が暗号資産決済のライフサイクル全体にわたる弱点をどのように悪用するかを検証します。決済の承認、トランザクションの構築、署名権限、決済の確定に潜むリスクと、資金を守るために決済機関が何を評価すべきかを解説します。