近年、「仮想通貨のセキュリティ」に注目が集まっています。世間で大きく報道された暗号通貨の不正流出事件を受けて、仮想通貨の安全性を気にし始めた人も多いのではないでしょうか。
本記事では最近流行の兆しを見せている仮想通貨の”マイニング”について紹介します。もしかしたら自分の端末も気づかないうちにマイニングを手伝わされているかも・・?
仮想通貨の採掘(マイニング)とは?
仮想通貨の採掘(以下、マイニング)について説明する前に、簡単に仮想通貨の仕組みについて触れます。
仮想通貨は紙幣やコインといった従来の通貨とは異なり、インターネット上に存在する通貨で、大きな違いとして中央管理者が存在しないことがあげられます。中央管理者が存在しない代わりに、インターネット上の個人に管理を分散させています。
仮想通貨を発行する、支払いに使う、といった全ての取引情報を、ネットワーク上に存在するコンピュータに分散して保存しています。また取引が発生する際には、分散して保存された全ての取引情報を更新する必要があり、この更新作業は全ての取引データの整合性を確保しながら正確に行われる必要があります。
この更新には膨大な計算量が必要とされていて、計算作業には個人もしくは組織の端末やサーバリソースが使われています。
そもそもなぜ計算作業に協力してくれるのかというと、報酬として「仮想通貨がもらえる」ことがあるからです。データを更新するための計算作業に協力した人のうち、最も早く正しい計算を完了させた人に、報酬として仮想通貨が支払われるといった仕組みがあります。中には計算の完了が一番早くなくても仮想通貨がもらえる場合もあります。
この一連の流れのことを仮想通貨の「マイニング」と呼びます。仮想通貨を手に入れるまでの流れが鉱山から金を掘り出す感覚と似ており、この名前がついたと考えられます(図1)。
図1. 仮想通貨のマイニングのイメージ(NRIセキュアが作成)
他人のリソースを使ってマイニング!?
マイニングは本人ではなく、他人のリソースを活用することもできます。それは、仮想通貨をマイニングするプログラムであるツールをWebサイトに配置して、そのWebサイトを閲覧した人の端末リソースを利用する方法です(図2)。
図2. Webサイト閲覧者のリソースでマイニングするイメージ(NRIセキュアが作成)
実際にCoinHiveというサービスでは専用のJavascriptコードを提供しています。サイト運営者は自身のWebサイトにそのコードを埋め込むことで閲覧者にマイニングに協力してもらい、収益を得られるようになります。
なお、閲覧者はマイニングで得られた収益はもらえませんが、代わりに広告がなくなってサイトが見やすくなったり、人間であることの証明に使われる読みづらい文字を解読して入力させる「Captcha」がなくなったりと、必ずしも悪いことばかりではないようです。
しかし、Webサイト閲覧者の同意や操作がなかったとしても、閲覧者はマイニングさせられてしまう場合があります。このことは、「クリプトジャッキング」と呼ばれています。
Webサイトにマイニングツールを埋め込むことは、閲覧者の端末リソースを勝手に使うマルウェアを仕込むことだ、といった見方をする場合もあるようです。
※CoinHiveがクリプトジャッキング専用のツールというわけではありません。
NRIセキュアのFNC(現SecurePROtecht)が提供するセキュアインターネット接続サービスにおいて2017年4月~2018年3月までのアクセス先URLを調査したところ、CoinHiveが登場した2017年9月以降、Webサイト閲覧者にマイニングを実施させる可能性があるURLへのアクセス件数は急増しています(図3)。
標本対象企業数:46サイト
図3.仮想通貨を採掘させられる可能性があるURLへのアクセス件数
(NRIセキュア 「サイバーセキュリティ傾向分析レポート2018」)
マイニングツールは、マルウェアに混入されたり、Webサイトを改竄してマイニングツール(スクリプト)を設置されたりするような例のほか、Webサイト管理者自身の意思でWebサイトの利用者に仮想通貨をマイニングさせるためのプログラムを設置する場合もあります。
後者であれば、必ずしもWebサーバの特定の脆弱性を悪用したり、ユーザの端末をマルウェア感染させたりする必要はありません。
JavaScriptを用いたマイニングプログラムを設置すれば、多くのブラウザはデフォルトでJavaScriptが有効であることから、特に閲覧者の同意や特別な手順を要求することなく、仮想通貨をマイニングさせることが可能です。マイニングさせようとする立場としては、比較的容易に利益を上げる手段となり得ます*1。
*1 警察庁によって、閲覧者に明示せずにWebサイトにマイニングツールを設置することは、犯罪になる可能性があると指摘されています。
仮想通貨を採掘するツール(マイニングツール)に関する注意喚起, 警察庁, 2018 http://www.npa.go.jp/cyber/policy/180614_2.html
公開Webサーバ自体がマイニングさせられる事例
前章では、Webサイト閲覧時に閲覧者がマイニングを実施させられる事例をご紹介しましたが、本章では、脆弱性を突かれて公開Webサーバがマイニングさせられてしまう事例をご紹介します。
その脆弱性というのが、2017年10月に公開されたOracle WebLogic ServerのサブコンポーネントであるWLS Securityにおける、リモートから任意のコードを実行可能な脆弱性です*2。
NRIセキュアでは遅くとも12月24日には本脆弱性を突く攻撃コードが公開されていたことを確認しています。
過去の様々な脆弱性でも見受けられるように、攻撃コード公開以降は当該脆弱性を悪用しようとする攻撃が急増したことを観測しています(図4)。自社サーバを悪用されないためにも、基本的には脆弱性に対して迅速かつ適切な対応を行える仕組みや体制作りが必要となります。
標本対象企業数:48サイト
図4. CVE-2017-10271の脆弱性を狙った攻撃検知件数
(NRIセキュア 「サイバーセキュリティ傾向分析レポート2018」)
また、本脆弱性には悪用のされ方に特徴的な点がありました。
攻撃者が本脆弱性を悪用すると遠隔から公開Webサーバの情報を改ざんできてしまい、NRIセキュアが観測した実際の通信では、公開Webサーバがマイニングツールをダウンロードさせられそうになる攻撃を確認しました。
これは公開Webサーバにマイニングさせた結果を利用して、攻撃者が収益を得ようとしていたと考えられます。
なお、本脆弱性は過去の様々な脆弱性と比較して、公開Webサーバに仮想通貨をマイニングさせるのに特別有用であったということではなく、単に仮想通貨のマイニングが世の中に普及したタイミングで発見された深刻度が高い脆弱性であったと考えられます。
*2 CVE-2017-10271 https://www.ipa.go.jp/security/ciadr/vul/20180115_WebLogicServer.html
本記事でご紹介した一部の内容は「サイバーセキュリティ傾向分析レポート 2018」にも掲載されています。全文ご覧になりたい方は以下から無料ダウンロードできますので是非アクセスしてみてください!
他人のリソースでマイニングさせる行為の今後
仮想通貨の盛り上がりを反映するように、CoinHiveで利用されるようなマイニングツールは急激に流行しました。一方、マイニングという新たな収益を得る手段に対しては対策や法整備が追いついておらず、様々な議論がされているところです。
「脆弱性を利用して他人のWebサイトにマイニングツールを設置」する場合
これはマイニングツールを設置するために、他人のWebサイトの改ざんを行っていますので明らかな問題行為です。
「自分のWebサイトにマイニングツールを設置」する場合
警察庁によって、閲覧者に明示せずにWebサイトにマイニングツールを設置することは犯罪になる可能性があると指摘されていて、逮捕事例も出ています。
Webサイト閲覧者から悪い印象を持たれてしまうリスクもあるでしょう。
今は議論がなされている最中ですが、今後、例えば法整備が進んだり、攻撃者にとってより魅力的な収益を得る方法が普及することで、クリプトジャッキング自体が廃れていく等、仮想通貨のマイニングを取り巻く動向は変わっていく可能性があります。
マイニングを実施させる側、マイニングを実施させられる側。
このどちらの立場においても、今後の動向を注視していく必要があります。
サイバー攻撃の新たな流れ|攻撃者が狙う「お金儲け」の最新手法