ブロックチェーン技術は日々普及し、様々な業界で利用されています。暗号通貨を使って、オンラインカジノ日本語サイトでゲームをすることもできるようになったのです。技術的な専門知識がなくても、ブロックチェーンはほぼ完全に安全で、利用者にセキュリティとプライバシーの両方を提供するということを聞いたことがあるかもしれません。ブロックチェーンにも脆弱性があり、サイバー犯罪者はそれを利用することができるのです。今回は、ブロックチェーンの脆弱性についてお話します。
一部の攻撃はシンプル
脆弱性の中には、確かに単純なものもありますが、それに対する本当の意味での防御策は開発できません。DDoS(Distributed Denial of Service、分散型サービス拒否)攻撃もその一つです。この攻撃は、ターゲットとなるサーバーにあまりにも多くのリクエストを送り、しばらくすると、サーバーがそのような激しいリクエストに対応できなくなり、クラッシュしてしまうということです。
通常、ブロックチェーンは分散化がこの技術の中心であるため、この攻撃の影響を受けることはないはずです。つまり、サイバー攻撃者が狙う特定のサーバーが存在しないのです。ただし、交換サイトには適用されません。ブロックチェーンだけで動く分散型取引所があったとしても、その数は少ないです。最大かつ最も忙しい取引所(Coinbase、Binanceなど)はすべて、DDoS攻撃の影響を受けやすい従来のサーバーを備えています。
2017年と2020年には、「Bitfinex」という取引所がそのような攻撃を受けました。ブロックチェーン上の取引は、ほとんどが取引所サイトを通じて行われるため、ユーザーにも影響が及んでいます。残念ながら、DDoS攻撃に対する真の防御策はありません。攻撃者は十分なリソースがあれば、世界中のあらゆるサーバーを使用不能にすることができます。
一部の攻撃は困難
ブロックチェーンの脆弱性を直接利用する攻撃は、もう少し複雑です。この点で、最も一般的な攻撃は、選ばれた被害者に2回支払うよう説得することです。ビットコインのブロックチェーンで支払いを行ったが、支払いが失敗したというメッセージが表示されることを想像してください。普通の人と同じように、もう一度やってみるのです。このメッセージが、実はサイバー攻撃の結果であるということは、思いもよらないことでしょう。
ブロックチェーンで行われる全ての取引にはIDが設定されています。ノードとマイナーは、この識別子を使用して取引を確認します。攻撃者は、さまざまな手法で支払いのIDを詐称し、数秒前に承認のためにノードに送信することができます。ノードが支払いを確認した後、同じIDを持つお客様の支払いを拒否します(これが画面に表示されるメッセージです)。被害者は同じ取引を繰り返し、騙されて二重払いをさせられてしまう。
簡単そうに見えますが、2014年にMt.Goxという取引所がこの手法で詐取され、破産に追い込まれたのです。最近のブロックチェーンでは、この脆弱性に対抗するために「SegWit」などの機能が搭載されていますが、この問題はまだ多くのブロックチェーンに影響を与えることが知られています。さらに、SegWitの機能を無効化する方法として、Sybil攻撃というものがあります。
ブロックチェーンにおける取引は、ノードによって承認されると述べました。ブロックチェーンの特徴は、固定ノードを使わず、信頼できるノードがないことである。これは、分散性を保つための必要条件です。しかし、これは新しいノードを問わないということでもあります。サイバー攻撃者は、さまざまな手法で、自分の支配下にある機器をノードとしてブロックチェーンに追加し、取引の承認権を得ることができます。あとは簡単で、取引処理ができなかったというメッセージを被害者に送り、二重払いをさせるのです。
ボットネット、Proof of Stakeアルゴリズム、ユーザーウォレット – Oh My
2018年、ボストン大学の研究者は、ボットネットを使ってターゲットノードを騙し、すべての取引確認要求を自分のコントロール下にあるコンピュータに転送することに成功しました。しかも、そのために使うパソコンは2台だけです。ボットネットの購入は簡単で、数百台の「ゾンビ・コンピュータ」を1台あたり0.50ドルでレンタルすることができます。このような攻撃は、そのノードを通過するすべてのトランザクションリクエストを拒否するか、完全に停止させるために使用することができます。
また、こうした攻撃に対してより安全性が高いとされる「Proof of Stake」アルゴリズムを採用したブロックチェーンにも問題があります。「Proof of Stake」とは、一定数のコインしか保有していないユーザーに採掘者またはブロック検証の地位を与えるアルゴリズムです。つまり、コイン/トークンを大量に保有していないユーザーは、送受金以外のアクションを行うことができないのです。残念ながら、この説明に当てはまるコイン/トークン残高をコントロールすることは可能であり(例えば、ユーザーのウォレットをハッキングすることで)、その場合、サイバー攻撃者はブロックチェーンの履歴を変更することさえできます。
もちろん、これらの例はブロックチェーンが信頼性に欠けることを意味するものではありません。それどころか、従来の銀行サービスと比較すると、まだまだ安全性が高いのです。しかし、それを100%信用するのも間違いです。分散型システムにもセキュリティの脆弱性はあります。