Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】Polymarket Trading Halted: $2.5M Drained via Malicious Script Injection

2026年10月30日に「Dev.to」が公開したITニュース「Polymarket Trading Halted: $2.5M Drained via Malicious Script Injection」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

Polymarketで約2.5億円の仮想通貨が盗まれ、取引停止となった。原因は、サイトが利用する外部サービスから不正なJavaScriptが挿入され、ユーザーの資産が流出したことだ。この事件は、基盤技術だけでなく、Webフロントエンドや外部依存のセキュリティ対策の重要性を示す。

ITニュース解説

分散型予測市場プラットフォーム「Polymarket」が、大規模なセキュリティ侵害に見舞われ、約250万ドルものユーザー資産が盗まれた。この事件により、Polymarketは一時的にすべての取引活動を停止している。この攻撃は、2026年10月29日に発生し、ウェブプラットフォームが第三者サービスを介したサプライチェーンの脆弱性に対して常にリスクを抱えている現実を浮き彫りにした。

今回の攻撃は、Polymarketの基盤となるブロックチェーン上の「スマートコントラクト」が直接悪用されたわけではなかった点が重要だ。スマートコントラクトとは、ブロックチェーン上で自動的に契約を実行するプログラムであり、通常、その透明性と改ざん困難性から高いセキュリティを持つとされている。しかし、今回の被害は、プラットフォームがユーザーにウェブサイトを表示するために使用していた「フロントエンドコード」の配信に使われていた「第三者サービス」が侵害されたことに起因する。

ウェブアプリケーションは、ユーザーがブラウザで直接操作する部分(フロントエンド)と、サーバー側でデータ処理やビジネスロジックを実行する部分(バックエンド)、そしてブロックチェーン上で取引を処理する部分(今回のPolymarketでいうスマートコントラクト)から構成される。フロントエンドは、JavaScript、HTML、CSSなどの技術で構築され、ユーザーインターフェースや操作性を担う。現代のウェブ開発では、利便性や効率性のため、ウェブサイトは自社で作成したコードだけでなく、他の企業が提供するサービスやライブラリを組み込んで利用することが一般的だ。例えば、ウェブサイトの見た目を整えるためのライブラリ、アクセス解析ツール、広告表示ツール、コンテンツ配信ネットワーク(CDN)などがこれにあたる。これらを「第三者サービス」や「外部依存」と呼ぶ。

攻撃者は、Polymarketが利用していたこのような第三者サービスの一つを侵害した。具体的にどのサービスが狙われたかはまだ明らかにされていないが、この侵害により、攻撃者は悪意のあるJavaScriptコードをPolymarketのウェブサイトを訪れるユーザーに送り込むことができるようになった。この悪意のあるJavaScriptは「仮想通貨抜き取り(crypto-draining)」スクリプトと呼ばれており、ユーザーのブラウザ上で実行される。

このスクリプトが実行されると、ユーザーの行動を傍受し、不正な操作を促す。例えば、ユーザーが通常の取引を行おうとした際に、画面上で偽の承認要求を表示したり、バックグラウンドで悪意のある取引を作成したりする可能性がある。これらのスクリプトは、ユーザーに「悪意のあるトランザクションに署名する」ように誘導したり、「トークンに対して無制限の承認(unlimited token allowances)」を与えるように促したりする。 「トークンの承認」とは、分散型アプリケーション(DApps)がユーザーのウォレットから特定のトークンを移動させることを許可する仕組みだ。通常、ユーザーはDAppsに対して、特定の種類のトークンを特定の量だけ使用することを許可する。しかし、「無制限の承認」を与えてしまうと、DApps(この場合は攻撃者のスクリプト)がユーザーのウォレットから承認された種類のトークンを好きなだけ抜き取ることが可能になる。一度このような承認を与えてしまうと、ユーザーの資金は攻撃者のウォレットに直接送金されてしまうことになる。

Polymarketは、さらなる被害を防ぐために即座にすべての取引活動を停止した。現在までに、約250万ドル相当の仮想通貨が攻撃者のものとされる特定のウォレットに追跡されている。攻撃の手法は、Polymarketの基盤となるブロックチェーンプロトコルの欠陥ではなく、JavaScriptを配信する第三者サービスからの侵害であったことが確認されている。

しかし、まだ不明な点も多い。侵害された特定の第三者サービス、ライブラリ、またはコンテンツ配信ネットワーク(CDN)の名前は、Polymarketやセキュリティ研究者によってまだ公開されていない。また、250万ドルが追跡された一つのウォレットに送られているものの、実際に影響を受けた個々のユーザーの総数はまだ評価中である。さらに、Polymarketが盗まれた資金を回収できるのか、あるいは被害を受けたユーザーに対する補償計画が確立されるのかについても、現時点では明らかになっていない。

この事件は、システムエンジニアを目指す初心者にとっても重要な教訓を含んでいる。現代のウェブ開発では、外部のドメインから<script>タグを介してスクリプトを組み込むことは日常的に行われている。しかし、これは実質的に、その外部ドメインがあなたのユーザーのセキュリティコンテキスト内で任意のコードを実行する能力を与えていることを意味する。これは、ウェブサイトの機能や見た目を向上させる一方で、「見えない依存関係」という大きなリスクを生み出す。自分のウェブサイトのセキュリティだけでなく、利用しているすべての第三者サービスのセキュリティにも目を向ける必要があるのだ。

このようなサプライチェーン攻撃に対する標準的な対策として、「Subresource Integrity(SRI)」と「Content Security Policy(CSP)」が挙げられる。SRIは、外部から読み込むスクリプトやスタイルシートが改ざんされていないことを検証するメカニズムだ。スクリプトのハッシュ値を事前に指定しておくことで、読み込み時にそのハッシュ値と実際のスクリプトのハッシュ値が一致しなければ、実行を拒否できる。これにより、悪意のある改ざんを防ぐ。一方、CSPは、ウェブページが読み込むことができるコンテンツのソース(ドメインなど)を厳しく制限するセキュリティポリシーだ。これにより、未知の、あるいは信頼できないソースからのスクリプト実行やリソースの読み込みを防ぎ、攻撃者が悪意のあるスクリプトを挿入しても実行されるのを阻止する。

特に金融取引や機密性の高いユーザーデータを扱う現代のウェブアプリケーションにとって、これらの対策は極めて重要である。今回のPolymarketの事例は、自身のアプリケーションのコードが安全であるだけでは不十分であり、利用するすべての外部依存関係のセキュリティにも細心の注意を払う必要があるという、厳しくも現実的な教訓を示している。システムエンジニアを目指す者は、このような多層的なセキュリティの考え方を早期に習得し、実践することが求められる。

関連コンテンツ

関連IT用語