ブログ

ブロックチェーン、分散型プロトコル、applicationsにおける DevSecOps の重要性

ケビン・ジョーンズ サムネイル
ケビン・ジョーンズ
2022年10月27日公開

セキュリティは常に情報技術の最も重要な側面の 1 つであり、今日では多くの組織とその開発者がapplicationsの構築時にセキュリティ第一の考え方を採用しています。 これらの原則とアクションは、applicationセキュリティの文化とアプローチ全体を網羅する「DevSecOps」として総称されることがよくあります。 DevSecOps は開発、セキュリティ、運用を意味します。 情報技術とインフラストラクチャのあらゆる側面にセキュリティ第一の考え方を組み込むことを目的としています。

情報技術における最近の最もエキサイティングな分野の 1 つがブロックチェーンです。ブロックチェーンには、多くの人が Web3 と呼ぶ、Web の最新バージョンに私たちを導くことを目的とした、分散型プロトコルとapplicationsの巨大なエコシステムが伴います。

Web3 とは何ですか? 分散型applicationとは何ですか?

Web3 という用語には、applicationアーキテクチャとユーザー エクスペリエンスの側面に重点を置いたさまざまな概念が含まれます。

  • 分散化
  • オープンさ
  • 不変性
  • プログラミング可能性
  • 透明性

これらのコアコンセプトは、公開鍵暗号化を使用してユーザーに自分のアイデンティティの制御を取り戻し、さまざまなブロックチェーンのメカニズムとプロトコルを通じてピアツーピア経済の採用を拡大することを目的としています。 多くのブロックチェーンとその周辺プロトコルは、分離された仮想化環境内で実行されるスマート コントラクトを使用して、高度なトランザクションを処理し、状態を管理できます。

これらは、コンセンサス アルゴリズムと呼ばれるメカニズムを通じて、ネットワーク上のすべてのノード間で同期されます。 これは、一部のエージェントに障害が発生した場合でも、システム内のすべてのノードが単一の真実のソースに同意できるように、ユーザーまたはノードが分散設定で調整できるようにするメカニズムです。 さらに、多くのブロックチェーンは、プロトコルをオープンかつ許可なしに保つことで、検閲に耐性のある方法で動作します。

風景はどんな感じでしょうか?

ブロックチェーン ベースのアーキテクチャでは、ネットワークのバックボーンが通常、デジタルのトークン ベースの暗号通貨によって実行され、通常は金銭的価値を伴うため、さらなるリスクが伴います。 これらのトークンはアドレスで保持され、通常は外部所有のアカウントまたはスマート コントラクト内に保存されます。 また、公開鍵暗号を使用すると信頼も分散されるため、ネットワーク上の各アドレスが攻撃を受けやすくなります。

各アカウントの残高は、誰でも見ることができる公開台帳と呼ばれるネットワーク全体に分散されるため、ハッカーが特定のユーザーや契約を狙う余地が残されます。 これにより、プライバシーと匿名性がブロックチェーンにとって特に重要な側面になります。 多くの場合、これらのアカウントを管理する人間は攻撃の標的になったり、その立場を利用して違法行為を許されたりしており、次のような脅威にさらされています。

  • ソーシャルエンジニアリング
  • 信頼や鍵の管理が不十分
  • 横領と詐欺
  • 詐欺

さらに、これらのさまざまなブロックチェーン技術、プロトコル、分散型applicationsの技術的フットプリントはすでに大きく、急速に成長しています。 したがって、この急速に成長しているエコシステムのセキュリティへの影響について考えることが重要です。 分散化を中核概念として構築されたものは、環境が拡大し、したがって、慎重に分析して保護する必要がある攻撃ポイントも増えます。

分散型applicationsとテクノロジー インフラストラクチャのセキュリティを監査する際に考慮する価値のあるトピックをいくつか紹介します。

  • レイヤー 1 ブロックチェーン (ビットコインとイーサリアム)
  • レイヤー 2 ブロックチェーン (サイドチェーンとロールアップ)
  • スマートコントラクト
  • コンパイラ
  • ソフトウェアウォレット
  • ハードウェアウォレット
  • ブロックチェーンクライアント(マイナーとバリデーター)
  • カストディ取引所(集中型)
  • DeFi取引所(分散型)
  • プロバイダー
  • マーケットプレイス(NFT)

スマートコントラクトにおける一般的な攻撃ベクトル

applicationの開発ライフサイクルにおける DevSecOps について話す場合、通常はセキュリティ主導の開発を指します。 これは、セキュリティを左にシフトする行為としても知られています。 これは、開発者がセキュリティをコードとして考えることから始まるため、DevSecOps 文化の最も重要な側面の 1 つです。 ブロックチェーン ベースのスマート コントラクトは価値を保存し、銀行として機能できるため、その中のコードは攻撃に対して非常に脆弱になり、厳格なセキュリティを念頭に置いて記述する必要があります。

業界では、スマート コントラクトの脆弱性を狙ったハッキングが複数発生しており、その多くはコードの悪用に重点を置いています。 史上最大のハッキング事件の1つが昨年発生し、クロスチェーンプロトコルのPoly Networkは、攻撃者がスマートコントラクトをハッキングし、さまざまな資産をハッカーが管理する外部ウォレットアドレスに移動することで、6億1,000万ドル相当を送金したと報告した。

スマート コントラクト開発には多くの脆弱性がありますが、最も頻繁に発生する攻撃のいくつかは次のとおりです。

  • アンダーフローとオーバーフロー – 通常、算術演算によって符号なし整数が最大バイト サイズに達し、値が「ラップアラウンド」して、applicationのビジネス ロジックで予期しない動作を引き起こす可能性がある場合に発生します。
  • 契約の再入 – 何度も再入することで契約を悪用する行為。攻撃者は通常、許可されている以上の資金を引き出します。
  • トランザクションのフロントランニング – これは、誰かがテクノロジーや市場の優位性を利用して、今後のトランザクションに関する事前情報を取得するプロセスを指します。
  • 秘密の管理が不十分。
  • アクセス制御が適切に実装されていません。

公平な競争条件を実現するために何ができるでしょうか?

  • セキュリティ第一の文化を構築します。 DevSecOps のコンセプトは、セキュリティ重視の文化を構築しようとしている組織にとって素晴らしい出発点となります。
  • 監査を実行します。 監査は、applicationロジックと運用プロセスに新たな視点をもたらし、コードの脆弱性を明らかにし、applicationのユーザーに信頼を植え付けるのに役立ちます。 MythXSlither は、Ethereum スマート コントラクトを監査するための優れたツールです。
  • バグ報奨金を提供し、クラウドソーシングによるペンテストを実行します。 クラウドソーシングによるセキュリティは、セキュリティ フットプリントの強化に役立つ実証済みの方法です。 バグ報奨金プログラムに会社を参加させ、applicationsとインフラストラクチャの侵入テ​​ストを実行することで、脆弱性やハッキングに先手を打つことができます。
  • オープンソース戦略を採用します。 ブロックチェーンのようなテクノロジーでは、コードの検証と監査に基づいて参加者がオプトインできるため、applicationの透明性が重要です。 さらに、オープンソースのコンポーネントを使用すると、コミュニティ環境でプロジェクトの説明責任を高めることができます。
  • 管理操作にマルチ署名を実装します。 所有権、資金、その他の重要な操作の転送などの管理機能にマルチ署名アーキテクチャを採用したスマート コントラクトを実装すると、applicationのセキュリティがさらに強化されます。

結論

ブロックチェーン、分散型applications、およびそれらを取り巻くさまざまなプロトコルは急速に成長しています。 applicationsを展開するこれらの新しいエキサイティングな方法は、さまざまな業界に混乱をもたらす可能性があります。 ただし、セキュリティ第一の考え方に重点を置き、可能な限り DevSecOps 文化を実装することが不可欠です。

さらに読む

ブロックチェーンへの旅を始めるにあたって、まず最初にすべきことは、構築するプロトコルの関連ホワイトペーパーを読むことです。 

次に、過去のハッキングや脆弱性を調査し、開発環境でハッキングを再現してみるまで行います。

Ethereum のセキュリティを実際に体験して学ぶには、脆弱性または「フラグ」を意図的に脆弱なプログラムまたは Web サイトに隠してセキュリティの基礎を教える次のキャプチャー ザ フラッグ (CTF) プログラムをお勧めします。