CyberFix Note
攻撃手法・脅威動向

クリプトジャッキングの仕組みと対策。CPUを無断で借用され暗号資産を採掘される攻撃

対象の目安: サーバやクラウドを運用する実務担当者 / 実務

ソウ攻撃・脆弱性リサーチ担当
・ 約16分で読めます
クリプトジャッキングの仕組みと対策。CPUを無断で借用され暗号資産を採掘される攻撃

月末にクラウドの請求額を確認したら、動かした覚えのないインスタンスの利用料が積み上がっていた。ログを追うと、外部に開放したままの管理APIから見知らぬコンテナが作られ、そのCPUがずっと100パーセント近くで張り付いていた。こうした形で発覚する攻撃がクリプトジャッキングです。サーバやクラウドインスタンス、コンテナ、時には従業員のパソコンまで、他者の計算資源を無断で借用し、暗号資産の採掘に充てる攻撃を指します。この記事は、サーバやクラウドを運用する実務担当者に向けて、何が起きるのかという仕組みから、侵入経路、検知の着眼点、クラウド事業者の機能を含めた対策までを整理します。

何が起きるのか

クリプトジャッキングで起きているのは単純です。攻撃者が何らかの経路で計算資源への実行権限を得て、そこに暗号資産の採掘プログラムを送り込みます。採掘プログラムは、暗号資産のネットワークが要求する計算問題を解き続けることで報酬を得る仕組みで、動かすほど電力とCPUやGPUの処理能力を消費します。この処理能力を、攻撃者は自分の設備ではなく他者のサーバやクラウドインスタンス、コンテナ、時にはブラウザ上で動かして肩代わりさせます。

被害者側の視点で見ると、盗まれるのはデータではなく計算資源そのものです。サーバであればCPU使用率が張り付いて本来の処理が遅くなり、クラウドであれば従量課金の利用料金が跳ね上がります。エンドポイントであればファンが常時回り続け、バッテリー消費が早まります。情報の窃取や暗号化を伴わないため、ランサムウェアのように業務が即座に止まるわけではなく、発覚が遅れやすいという特徴があります。

MITRE ATT&CKは、この種の攻撃をResource Hijacking(T1496)という技法として整理しています。ATT&CKの説明は、侵害したシステムのリソースを使って資源集約的なタスクを完了させ、システムやホストされたサービスの可用性に影響を与えうる行為と位置づけています。暗号資産の採掘に直結するのはサブテクニックのCompute Hijacking(T1496.001)で、サーバやクラウドシステム、コンテナ環境のCPUやGPUを消費して採掘を行う手口が対象です。もう一つのサブテクニックであるCloud Service Hijacking(T1496.004)は、侵害したSaaSアプリケーションの実行能力を使ってスパムの大量送信やクラウドがホストするAIモデルの計算能力を奪うLLMJackingを行う手口を指し、暗号資産の採掘とは別の資源窃取として区別されています。

MITRE ATT&CKのCompute Hijacking(T1496.001)は、暗号資産マイニングなど資源集約的なタスクの実行に他者のシステムリソースを利用する手口と説明し、サーバやクラウドシステム、コンテナ環境が主な標的になるとしています。検知の着眼点として、CPUを大量に消費する長時間実行プロセスや、既知のマイニングプール宛の通信、未使用リージョンでの不審なインスタンス生成などを挙げています。

なぜMoneroが好まれるのか

クリプトジャッキングで採掘対象に選ばれる暗号資産には偏りがあります。多くの事例でMonero(XMR)が選ばれてきました。理由の一つは採掘アルゴリズムの設計です。Bitcoinの採掘は専用の採掘装置(ASIC)が圧倒的に有利になるよう最適化が進んでいるのに対し、Moneroが採用してきたアルゴリズムは、一般的なCPUでも相応の効率で採掘できるよう設計されています。攻撃者が乗っ取れるのは、ASICのような専用機材ではなく、被害者が業務に使っている汎用のサーバやパソコンのCPUです。CPUでも採掘効率が出やすい通貨のほうが、乗っ取った資源を実際の収益に変えやすくなります。

もう一つの理由は、取引の追跡しにくさです。Moneroはリング署名などの仕組みで送金元や金額を秘匿する設計を持ち、Bitcoinのように誰でも取引の流れを追える台帳とは性質が異なります。採掘した通貨を現金化する経路を追われにくいことは、攻撃者にとって発覚や資金の差し押さえを避けるうえで都合がよい要素です。

ブラウザ型クリプトジャッキングが下火になった経緯

クリプトジャッキングには、サーバやクラウドを乗っ取る形だけでなく、Webサイトに埋め込んだJavaScriptで訪問者のブラウザのCPUを一時的に借用する形もあります。この手法は2017年から2018年にかけて広がりました。代表的なサービスがCoinhiveで、サイト運営者が自分のWebページにスクリプトを埋め込むだけで、訪問者のブラウザ上でMoneroの採掘を行わせる仕組みを提供していました。The Hacker Newsの報道によれば、この仕組みは訪問者の同意なしに使われる例が広がったこともあって問題視され、2018年にはGoogleがChromeウェブストアから暗号通貨マイニング拡張機能を全面的に禁止し、その後Appleも公式アプリストアから同種のアプリを排除しました。

Coinhiveは2019年2月27日、サービスを2019年3月8日で終了すると発表しました。Gen Digital(旧Avast)のブログは、直近のMoneroのハードフォークによる採掘効率の急落と、XMR相場の下落が重なり事業として成り立たなくなったことに加え、セキュリティ企業各社による広範なブロックが要因になったと説明しています。ブラウザベンダーによる対策とビジネス上の採算悪化が重なったことで、この形態のクリプトジャッキングは下火になりました。ただし、埋め込みスクリプト自体を使う手口が完全に消えたわけではなく、別のサービスや自前のスクリプトに置き換わって残る場合があります。

注意

本記事は攻撃の仕組みと、検知や対策の観点を解説するものです。自組織が管理するシステム以外に対して採掘プログラムを設置したり通信を模してみたりする行為は、不正アクセス禁止法や電子計算機損壊等業務妨害罪などに触れます。検証は必ず自組織が権限を持つ環境か、書面で許可を得た環境に限定してください。

主な侵入経路

クリプトジャッキングの侵入経路は一つではありません。実務で見られる主な経路を整理します。

経路何が起きるか
クラウド認証情報の漏洩または窃取漏れたアクセスキーやAPIトークンを使い、攻撃者が正規の権限でインスタンスやコンテナを起動して採掘を行う
DockerやKubernetesの管理APIやダッシュボードの露出認証なしで外部に公開された管理APIやダッシュボードを経由し、攻撃者が任意のコンテナを作成して採掘プログラムを実行する
既知の未パッチ脆弱性を突いたサーバ侵害公開サーバのソフトウェアに存在する既知の脆弱性を悪用してコードを実行し、採掘プログラムを設置する
悪意あるパッケージ経由の混入パッケージレジストリに公開された不正なライブラリのインストール処理などを通じ、開発環境やビルド環境に採掘プログラムが紛れ込む
Webサイトへのスクリプト埋め込み侵害したサイトや広告配信網に採掘用のJavaScriptを仕込み、訪問者のブラウザのCPUを一時的に使う

クラウド認証情報の悪用は、AWSのセキュリティチームが公表しているブログでも典型例として扱われています。同ブログは、漏洩した認証情報や過度に広い権限を持つIAMロールが悪用され、攻撃者がEC2インスタンスやLambda関数、ECSタスクを使って採掘を行う手口を紹介しています。認証情報さえ手に入れば、攻撃者は脆弱性を突く必要すらなく、正規の利用者と同じ操作でインスタンスを起動できてしまいます。

DockerやKubernetesの管理APIの露出は、設定ミスに起因する経路です。The Hacker Newsが2025年6月に報じた事例では、攻撃者が認証設定のないDocker Engine APIを走査して発見し、そのAPIを使ってAlpineベースのコンテナを新規作成したうえで、ホストのファイルシステムをマウントし、Torネットワーク経由で外部の.onionサーバから取得したスクリプトを実行してXMRigという採掘ソフトを展開していました。OWASPのKubernetes Security Cheat Sheetも、ダッシュボードを追加の認証なしにインターネットへ公開してはならないと明記し、多要素認証を備えた認証プロキシの経由やRBACによる権限の絞り込み、ダッシュボードのサービスアカウントに高い権限を与えないことを求めています。同チートシートは、脆弱な設定のダッシュボードを通じて侵害された企業の事例を、設定不備がもたらすリスクの引用として挙げています。

あわせて読みたい

コンテナ(Docker)セキュリティの基礎と実務で効く守り方

サプライチェーン型の混入は、パッケージレジストリの信頼関係を悪用する経路です。開発者が依存関係として取り込んだパッケージのインストール処理に不正なコードが仕込まれていれば、CI/CD環境やビルドサーバのCPUが気づかれないまま採掘に使われます。この形の侵入は、暗号資産の採掘に限らず認証情報の窃取や自己増殖にも使われる点で、単体のクリプトジャッキングより広い被害につながることがあります。

あわせて読みたい

自己増殖するnpmサプライチェーンワーム。Shai-Huludとその亜種が広がる仕組みと防御

検知の着眼点

クリプトジャッキングは情報の窃取や暗号化を伴わないため、被害に気づく手がかりは主に資源の消費と通信に表れます。

  • 異常なCPUまたはGPU使用率が、業務のピーク時間帯と関係なく継続して高止まりしている
  • クラウドの利用料金が、インスタンス数やジョブの実行量に見合わない形で急増している
  • 既知のマイニングプールに割り当てられたIPアドレスやドメイン、採掘プールが使う典型的なポートへの通信が発生している
  • 見慣れないプロセス名や、cronやスケジュールタスクへの不審な登録が確認される
  • 使われていないはずのクラウドリージョンや、監視対象外のアカウントでインスタンスやコンテナが新規作成されている

AWSはGuardDutyという脅威検知サービスに、暗号資産マイニングに特化した検知タイプを用意しています。GuardDutyのユーザーガイドによると、EC2インスタンスがマイニング関連のドメインへ問い合わせるとCryptoCurrency:EC2/BitcoinTool.B!DNSという検知が生成され、マイニング関連のIPアドレスと直接通信するとCryptoCurrency:EC2/BitcoinTool.Bが生成されます。Lambda関数がマイニングプールと通信した場合はCryptoCurrency:Lambda/BitcoinTool.Bとして検知され、ランタイムモニタリングを有効にしている場合はワークロード内で動く採掘ソフトそのものをImpact:Runtime/CryptoMinerExecutedとして検知します。

Google Cloudには、Security Command CenterのVirtual Machine Threat Detectionという機能があります。Google Cloudの公式ドキュメントによると、この機能はハイパーバイザーに組み込まれ、稼働中のゲストVMのメモリをゲスト側のエージェントなしに定期的にスキャンし、暗号資産マイニングに特有のCPUやGPUの使用パターンを手がかりに、プロセスごと、VMごと、日ごとに検知結果を生成します。ゲストOS内部にエージェントを置かずに外側から検知する設計のため、マルウェア側の対抗策の影響を受けにくいとされています。

AWSのセキュリティブログは、クラウド環境での不正なクリプトマイニングの監視指標として、既知のマイニングプールが使うポートへの接続、事業の稼働実態と一致しない持続的な高いCPUやGPUの使用率、見慣れないIPアドレスへの予期しない通信量の増加、認可されていない不明なプロセスやアプリケーションを挙げています。

対策を実装する6つの観点

侵入経路が複数ある以上、対策も単一の防御策では足りません。実務で組み立てるべき観点を整理します。

  1. 1

    クラウドIAMを最小権限にし認証情報を厳格に管理する

    インスタンスの起動やコンテナの作成といった強い権限を持つIAMロールは、必要な範囲に絞ります。アクセスキーやAPIトークンはコードやリポジトリへ平文で残さず、シークレット管理の仕組みを使って発行と失効を管理します。漏洩の疑いがあれば速やかに無効化し、再発行します。

  2. 2

    DockerやKubernetesの管理APIとダッシュボードを外部に晒さない

    管理APIやダッシュボードは、原則として外部ネットワークから到達できない構成にします。運用上どうしても外部からのアクセスが必要な場合は、多要素認証を備えた認証プロキシを経由させ、Kubernetesであれば最小権限のRBACを有効にし、ダッシュボードのサービスアカウントに高い権限を与えません。

  3. 3

    既知の脆弱性へパッチを適用する

    外部公開しているサーバやミドルウェアの既知の脆弱性は、悪用実績のあるものから優先してパッチを適用します。パッチ適用までに時間がかかる場合は、該当機能への到達経路を一時的に制限するなどの緩和策を組み合わせます。

  4. 4

    EDRで採掘プログラムの実行を検知する

    エンドポイントやサーバにEDRを導入し、未知の実行ファイルや不審なプロセスの生成、cronやスケジュールタスクへの不審な登録を継続的に監視します。採掘プログラム自体は破壊的な挙動を伴わないため、シグネチャだけに頼らず挙動ベースの検知を併用します。

  5. 5

    既知マイニングプール宛の通信を監視して遮断する

    ファイアウォールやDNSフィルタリングで、既知のマイニングプールに関連するドメインやIPアドレス、典型的なポートへの通信を監視し、必要に応じて遮断します。GuardDutyのようなクラウド事業者の検知機能を有効化しておくと、この監視の一部を代替できます。

  6. 6

    依存パッケージの出所と挙動を確認する

    導入するパッケージは、公式レジストリでの実績や更新履歴を確認し、インストール時にスクリプトを実行する仕組みには特に注意します。CI/CD環境やビルドサーバのリソース使用量も監視対象に含め、通常時との差分に気づけるようにします。

あわせて読みたい

サプライチェーン攻撃の構造と防御の考え方。ソフト・ハード・サービス経由の侵入をどう減らすか

クラウドの責任分担とMITRE ATT&CKの活用

クリプトジャッキングの対策は、クラウド事業者と利用者のどちらが何を守るべきかという線引きを理解しておくと組み立てやすくなります。クラウド事業者はインフラそのものの安全性やGuardDutyのような検知機能の提供までを担い、IAMの設計やインスタンスの設定、デプロイしたコンテナの管理は利用者側の責任です。管理APIの外部公開や過度に広い権限の付与は、この利用者側の責任範囲で起きる設定ミスにあたります。

あわせて読みたい

クラウドの責任共有モデルとガバナンス。IaaS/PaaS/SaaSで変わる責任範囲と設定ミスの所在

検知ルールや監視項目を整備する際は、MITRE ATT&CKのようなフレームワークで攻撃者の行動を体系的に捉えておくと、Resource Hijacking以外の技法とあわせて抜け漏れの点検がしやすくなります。

あわせて読みたい

MITRE ATT&CKで攻撃を体系的に理解する。戦術と技術のマトリクスを検知・防御にどう活かすか

あわせて読みたい

マルウェアの種類と感染の仕組みを理解する。ウイルス・ワーム・トロイ・RAT・スパイウェアの違い

まとめ

クリプトジャッキングは、データの窃取や暗号化を伴わないぶん発覚が遅れやすい攻撃です。クラウド認証情報の漏洩、DockerやKubernetesの管理API露出、既知の脆弱性、悪意あるパッケージの混入など、侵入経路は複数あり、いずれも計算資源への実行権限を攻撃者に渡してしまう点で共通しています。異常なCPUやGPUの使用率や利用料金の急増、既知マイニングプールへの通信は、被害に気づく手がかりとして日常的な監視項目に組み込む価値があります。対策は、最小権限のIAMと管理APIの非公開化という入口の締め方に、パッチ適用とEDR、通信の監視と遮断という多層の備えを重ねる形になります。

クリプトジャッキング対策チェックリスト

  • クラウドのIAMロールとアクセスキーを最小権限にし、シークレット管理の仕組みで発行と失効を管理しているか
  • DockerやKubernetesの管理APIやダッシュボードが外部ネットワークから到達できない構成になっているか
  • 外部公開しているサーバやミドルウェアの既知の脆弱性にパッチを適用しているか
  • EDRを導入し、不審なプロセスやcron、スケジュールタスクへの登録を監視しているか
  • 既知マイニングプール宛の通信を監視し遮断する仕組みや、クラウド事業者の検知機能(GuardDutyなど)を有効化しているか
  • クラウドの利用料金やCPUとGPUの使用率の異常を、日次や週次で確認する運用になっているか
  • 導入する依存パッケージの出所や更新履歴を確認し、CI/CD環境のリソース使用量も監視対象にしているか

出典・参考

この記事をシェア

関連する記事