ビットコインマガジン
コア問題:あなたのノード対デジタル荒野
最初のネットワーク間メッセージから50年以上経過した今でも、ピアツーピアネットワークはインターネットのジャングルにおいて稀少な存在です。ビットコインがオープンな通貨システムを提供する能力は、そのピアツーピアアーキテクチャに依存しており、攻撃面全体において、ネットワーク層、つまりピアがどのように相互に発見し接続するかが最も脆弱です。問題が発生する可能性がある主な場所は2つあります:ビットコイン独自のピアリングプロトコルと、ビットコインのプロトコルが依存するインターネットプロトコルです。この観点から、コアにはノード間で悪用される可能性のあるDoS(サービス拒否)ベクトルを防止し、インターネットという広範な敵対的環境でノードが安全に通信できるようにするという二重の使命があります。
「政府はNapsterのような中央管理型ネットワークの頭を切り落とすのが得意だが、GnutellaやTorのような純粋なP2Pネットワークは持ちこたえているようだ。」
– サトシ、2008年11月7日 [1]
P2Pプロトコルは、ノードがトランザクション、ブロック、その他のピアに関するメッセージを交換する方法を包含します。この情報交換は、トランザクションやコンセンサス検証が発生する前に必要であるため、主要な懸念事項です。
この分野では長年にわたりいくつかのバグがありました。例えば、2017年には悪意のあるSOCKSサーバーの脆弱性がパッチされ、公開されました[2]。この「バッファオーバーフロー」脆弱性は、理論的には多くの異なる攻撃につながる可能性がありました:ノードをクラッシュさせる、悪意のあるペイロードを注入する、またはノード上のデータを変更するなどです。2020年には、リモートピアがアドレスを禁止させ、禁止リストを二次関数的に増大させることができる高深刻度の脆弱性が報告され、パッチされました。これはノードに対するDOSです[3]。この脆弱性は2024年まで公開されませんでした。このバグは、攻撃の実行が簡単で、その影響がノードの機能喪失につながり、機能させるために必要な前提条件が少ないため、「高深刻度」と正しくマークされています。これらは、コア開発者を夜も眠れなくさせるバグの種類であり、まだメンテナンスされているバージョンにノードを更新することが強く推奨される理由です(古いバージョンのコアは積極的にメンテナンス/更新されていません)。
私たちがビットコインと呼ぶこの分散ネットワークは比較的小規模なままです:クリアネットノード数は約2万ノード前後で推移しており、寛大に見積もって10万のTORノードを想定しても、依然として小規模で容易に監視可能なネットワークです。最近、Daniela BrozzoniとnaiyomaがクリアネットとTorの両方でノードを実行している場合、ノードのIPv4アドレスとTorアドレスをマッピングすることが容易であることを示しました[4]。これは諜報機関やチェーン分析会社によってすでに行われている可能性が非常に高いです。そうすると、どのノードがどのトランザクションを最初に公開するかに気付くことが容易になり、トランザクションの元のIP、したがって場所を推定できます。ノードがクラッシュしたり誤動作したりしないため、これは厳密にはバグではありませんが、特定のIPアドレスをトランザクションに結び付ける方法を提示するため、脆弱性と見なすことができます。
これを効果的に防ぐ方法は、現在のところ未解決の問題です。
「私たちは都市を建設するようにコンピューターを構築する。時間をかけて、計画なしに、廃墟の上に。」– Ellen Ullman [5]
ビットコインはインターネット上で動作し、分散型で分散化されたシステムであり続ける能力は、インターネット自体の特性に依存しています。残念ながら、今日私たちが知っているインターネットのアーキテクチャは依然として著しく安全ではなく、既知の攻撃が日常的に使用されています。これらの攻撃のほとんどは、被害が発生するまで検出されずに実行され、これは今日のインターネットに浸透している監視体制については言及していません。
懸念すべき最もよく知られた実用的な攻撃ベクトルはエクリプス攻撃と呼ばれ、被害者ノードのピアがすべて悪意があり、被害者ノードにチェーンまたはネットワークの特定のビューを提供します。この種の攻撃は分散システムにおいて基本的なものであり、ノードのピアを制御すれば、ネットワークに対するその認識を制御できます。Ethan Heilmanと共同研究者は、USENIX 2015でビットコインに対する最初の実用的なエクリプス攻撃の1つを発表し[6]、2018年にはErebus攻撃論文が悪意のある自律システム(AS)を介した「ステルス」エクリプス攻撃を説明しました[7]。
これらの攻撃は主に、ASのルーティングトポロジーやBGP(Border Gateway Protocol)と呼ばれるプロトコルを介して、インターネットのネットワークが相互に通信する方法の弱点を利用します。BGPプロトコルを保護するための継続的なイニシアチブ、BGPsec、RPKIがありますが、どちらもよく理解されている制限があり、インターネットの管理者はより強力なソリューションを切望しています。それまでは、インターネットは西部開拓時代のままです。
Chaincode Labsのcedarcticによる最近の分析では、ビットコインノードはわずか4551のAS内に収容されており、インターネットを構成する構成ネットワークのかなり小さなサブセクションであることがわかりました。彼らは、ノードが動作するアップストリームASを侵害することでエクリプス攻撃につながる可能性のある一連の攻撃を説明しています[8]。AS間でのノードの小規模な分散とこれらのAS間の特定の関係は、独特の攻撃ベクトルを生み出します。是正策はありますが、この攻撃ベクトルがビットコイナーやその敵対者によって事前によく理解されていたかどうかは不明です。
1つまたは複数のASを侵害することに依存する攻撃は、達成するためにリソース、調整、およびスキルが必要です。この種の攻撃がビットコインノードで成功したという報告はありませんが、このような攻撃はマイナー[9]、ウォレット[10]、スワッププラットフォーム[11]、ブリッジ[12]に対して成功裏に実行されています。インターネットを修正するつもりはありませんが、この敵対的環境で動作するためのツールでノードを武装させることができます。
以下は、Bitcoin Coreがネットワークレベルの攻撃に対してユーザーを武装させるために開発または統合サポートを行った機能と機能性です:
TOR(the Onion Router)は、Bitcoin Coreに組み込まれた最も古いプライバシー重視のオーバーレイネットワークです。トラフィックを難読化するために、ランダムなピアネットワーク間でホップを作成します。
v2transport [13]は、ピア間の接続を暗号化し、スヌーパーや検閲者からトラフィックを隠します。目的は、受動的なネットワーク監視者が他のノードとの通信内容を盗み見るのを阻止することです。
I2P(the Invisible Internet Project [14])は、接続に追加のプライベートで暗号化されたレイヤーを有効にするコアのオプション機能です。これは、クライアントとサーバー間のトラフィックを難読化するためにピアに依存する、Torに似た匿名ネットワークです。
ASmap [15]は、著者が論文ですでに概説したErebus攻撃の緩和策を実装し、すべてのASベースの攻撃に適用されるコアのもう1つのオプション機能です。ビットコインのピアリングメカニズムがピアの出身ASを認識してピア間の多様性を確保することで、攻撃者が多くのASを侵害する必要があるため、エクリプスが指数関数的に困難になり、これは非常にありえず、検出されずにはほぼ不可能です。Bitcoin CoreはCore 20.0以降、IPネットワークのASへのマップ(AS-map)をサポートしており、Kartografプロジェクトにより、どのユーザーでもこのようなASmapを簡単に生成できます。
インターネットが多くの攻撃に対して脆弱であり続ける可能性が高いことを考えると、私たちができることの1つは、悪意のある動作を検出しようとするためにピアの動作を観察することです。これが0xb10cによるpeer-observerプロジェクトの原動力です[16]。オペレーティングシステム上で実行されているプログラムの最小のアクションを観察する方法である、完全なeBPFトレースポイントベースのロギングシステムを提供し、ピアの動作を含むノードのアクティビティを観察します。また、独自のロギングシステムを構築するために必要なすべてを提供します。
ピアに接続してメッセージを交換する能力を確保することは、ビットコインを機能させるための基盤コンポーネントです。
ビットコインは多次元の敵対的環境で動作しており、脅威の多くはインターネットアーキテクチャ自体の制限によって生み出されています。ビットコインが生き残り繁栄するためには、その開発者とユーザーはこれらの奇妙な海域をナビゲートする方法を学ばなければなりません。
オープンネットワークの代償は永遠の警戒です。
今すぐThe Core Issueのコピーを入手しましょう!
The Core Issueを所有するチャンスをお見逃しなく — 多くのコア開発者が自ら取り組んでいるプロジェクトを説明する記事を掲載しています!
この記事は、Bitcoin Magazineの最新印刷版The Core Issueに掲載された編集者からの手紙です。号全体で探求されるアイデアの早期公開として、ここで共有しています。
[0] https://web.mit.edu/gtmarx/www/connect.html
[1] https://satoshi.nakamotoinstitute.org/emails/cryptography/4/
[2] https://bitcoincore.org/en/2019/11/08/CVE-2017-18350/
[3] https://bitcoincore.org/en/2024/07/03/disclose-unbounded-banlist/
[4] https://delvingbitcoin.org/t/fingerprinting-nodes-via-addr-requests/1786/
[5] https://en.wikiquote.org/wiki/Ellen_Ullman
[6] https://www.usenix.org/system/files/conference/usenixsecurity15/sec15-paper-heilman.pdf
[7] https://ihchoi12.github.io/assets/tran2020stealthier.pdf
[8] https://delvingbitcoin.org/t/eclipsing-bitcoin-nodes-with-bgp-interception-attacks/1965
[9] https://www.theregister.com/2014/08/07/bgp_bitcoin_mining_heist/
[10] https://www.theverge.com/2018/4/24/17275982/myetherwallet-hack-bgp-dns-hijacking-stolen-ethereum
[11] https://medium.com/s2wblog/post-mortem-of-klayswap-incident-through-bgp-hijacking-en-3ed7e33de600
[12] www.coinbase.com/blog/celer-bridge-incident-analysis
[13] https://bitcoinops.org/en/topics/v2-p2p-transport/
[14] https://geti2p.net/en/
[15] https://asmap.org
[16] https://peer.observer
[13] https://github.com/asmap/kartograf
この記事「The Core Issue: Your Node Vs. The Digital Wilderness」は、Bitcoin Magazineに最初に掲載され、Julien Urraca、Fabian Jahr、0xb10c、CedArcticによって書かれました。


