7 月 31 日、サイバー犯罪者が悪意のある行為のために暗号化通信をどのように使っているかに ついて RSA アジア 2018 で講演した直後に、ブラジルでCoinHive が急増したことに気付きました。
すばやく見た後、これは通常の ウェブサイトの侵害ではなく、すべて MikroTik ネットワークデバイ スであることがわかりました。
図 1: 70,000 を超える結果を返す CoinHive を搭載した ブラジルの MikroTik デバイスの Shodan クエリ
これは奇妙な偶然かもしれませんが、さらに検証すると、これらのデバイスのすべてが同じ CoinHive サイトキーを使用していたことがわかりました。つまり、最終的には 1 つのエンティティに 繋がります。これらのデバイスで使用されている CoinHive サイトの鍵を探して、実際にはブラジル に集中していることがわかりました。
図 2:攻撃者が使用する CoinHIve サイトキーの Shodan クエリ
ゼロデイ攻撃のような大規模なものだったので、私の最初に MikroTik HttpProxy コンポーネントに 存在するのではないかと考えました。次のステップは、他の誰かがこれに気づいたかどうかを確認 することでした。会議中だったので、ニュースに追いつくには限られた時間しかなく、インターネット アクセスも十分ではありませんでした。
Google はあまり多くの結果を表示しませんでしたが、攻撃ベクトルと攻撃者の行動を特定するの に役立ちました。
例えば以下の結果は、CoinHive がブラジルの病院のウェブサイトに注入された事を示していま す。しかし、この Web サーバーは Apache を実行しています。これは私が最初に考えた MikroTik HttpProxy の悪用と矛盾しています。
図 3: CoinHive を含んだページを返すブラジルの病院
Shodan上でいくつかの検索をしたところ、病院の MikroTik デバイスが実際に見つかりました。お そらく MikroTik の問題ですが、必ずしも HttpProxy の問題ではありません。そこで私は、ブラジル で見つかった多数の CoinHive に立ち戻りました。しかし、どこからどのように発信されたのかがわ からなかったので、Google の結果に再度戻って、他に何を提供していたのかを見に行きました。
私は Reddit で次の 記事を見つけました:
図 4:Reddit 投稿の Google 翻訳の画像
私は内容を理解するために Google 翻訳を使いました。この投稿において投稿者が、訪問したす べてのページが CoinHive コードを注入し、DNS を変更したりルータを削除しても問題は解決しな いと訴えているため、大きな問題があると疑うことができます。
現時点では、MikroTik ルータはインターネットプロバイダや大企業で使用されていることに注意す る必要があります。このケースでは、Reddit 投稿の著者の ISP は、前回の記事のところで述べた 病院のルータと同じように、侵害されているようです。
図 5:投稿者からの返信の Google 翻訳の画像
ブラジルの MikroTik デバイスで何かが起こっているのは間違いありませんが、一体なんなのでし ょうか?
3 度目の正直: 私が Google で見つけた次のツイートが、謎を解決するのに役立ちました。
このツイート は 1 日前にこの攻撃について述べてツイートされましたが、その数字ははるかに低い ものでした。
図 6 @MalwareHunterBR のツイートからの画像
このツイートでは、使用された エクスプロイトについて述べていますが、それはゼロデイではなく、4 月 23 日に MikroTik によって修正された脆弱性に対するものでした。MikroTik の功績により、発見 された 1 日以内にこの脆弱性が修正されましたが、残念ながらまだパッチが当てられていない(脆 弱な)デバイスが何十万もあり、数万がブラジルにあります。
この攻撃は、Winbox を標的とし、攻撃者がデバイスからファイルを読み取ることを可能にします。 上記の解説に詳細が書かれていますが、このエクスプロイトを使用すると、脆弱な MikroTik ルー タへの認証されていないリモート管理者のアクセス権を得ることができます。
最初の調査は、次のように指摘しています。攻撃が 最初に検出されたときのエクスプロイトの使用 方法であるため、悪意のある実行ファイルをルータ自体で実行するのではなく、攻撃者はデバイス の機能を使用して、ユーザが訪問したすべての Web ページに CoinHive スクリプトを注入します。
これはどのように行われるのでしょうか?
まず、Shodan で見たそれらのページはすべて実際には webproxy のエラーページです。そのた め、攻撃者は CoinHive スクリプトを含むカスタムエラーページを作成しました。
図 7: 攻撃者がファイルシステムにカスタム error.html ページを作成する
図 8:error.html ファイルの内容
そして、Web ブラウジング中にユーザが何らかのエラーページを受け取った場合、このカスタムエ ラーページが表示され、攻撃者のために CoinHive が生成されます。これは、図 3 の病院 CoinHive 事件を見るときに目撃したシナリオでしょう。
バックエンドの Apache サーバーもルーターに接続されていますが、途中でエラーがあり、表示さ れました。つまり、感染したルーターのネットワークに直接接続していないユーザだけでなく、感染 したルーターの背後にある Web サイトにアクセスするユーザにも影響します。言い換えれば、攻撃 は両方向で機能します。
しかし Reddit のユーザから報告されたように、すべてのページが上記のシナリオで説明されてい ない CoinHive コードで返されます。さらに詳しい調査で、このスクリプトが見つかりました:
図 9: "script3_"の内容
図 10:ユーザがルータの無線ネットワークに接続し、同時にスクリプトを実行する
上図のように、ユーザはワイヤレスネットワークに接続し、スクリプトはすぐに実行されます。
残念ながらファイルがもはや攻撃者のサーバ上に存在しないため、mikrotik.php の内容は不明で す。それは CoinHive をあらゆる HTML ページに挿入するスクリプトである可能性があります。私た ちは依然としてそれがどのように実現されるのかわかっていませんが、攻撃者が MikroTik ルータ の動作を高いレベルで理解していることを明確に示しています。
これは、攻撃者の永続化メカニズムで見ることができます。
図 11:攻撃者によって追加されたスケジュールされたタスク
攻撃者は別のホスト "min01.com"に接続し、新しい "error.html"ファイルを取得するタスクをスケ ジュールしました。これはおそらく、CoinHive が攻撃者の現在のサイトキーをブロックし、別のサイ トキーで置き換えなければならない場合に備えたものです。
攻撃者はまた、 "u113.rsc"という名前の MikroTik ルータ用のスクリプトをダウンロードして実行す るタスクをスケジュールしました。私たちがチェックしたとき、スクリプトは単にプレースホルダとして 使用されていましたが、明らかに、侵害されたすべてのデバイスに追加コマンドを送信することが できます。
図 12:作成時に、更新スクリプトは 1 秒待って終了します
攻撃者が脆弱なルータを新たに見つけたときに使用するスクリプトも特定しました。
図 13: ルータが感染したときに実行されるコマンド
このスクリプトが、いくつかのシステム設定を変更し、プロキシを有効にし、カスタムエラーページを 取得し、必要に応じて更新用のスケジュールされたタスクを作成することがわかります。"ftu"とい う名前のバックドアアカウントも作成されます。
私はこのブログで作業中にこのスクリプトが数回更新されていることに気付きました。攻撃者は、 より小さなフットプリントを残し、検出されるリスクを減らすために、より多くのクリーンアップコマンド を追加しているようです。
最後に鋭い方は、このコードに私が前にブログで話した "script3_"の言及がないことに気付くかも しれません。このスクリプトは初期において繰り返し存在していました。私は、すべてのページに CoinHive を注入した結果、あまりにも多くのノイズが発生したのと、(願わくは)これについて調べ ている他の関係者のことも考慮して、この攻撃者が低速化しようとしたのではないかと考えていま す。
これは、攻撃者がランサムウェアからマイニングの世界に移行する過程で、我々が過去 3 年間に 多く見てきた傾向です。多くの場合、攻撃者が最近ファイルを暗号化して管理していても、ランサム ウェアの識別率は大幅に向上しています。これは、彼らが身代金を払っていないことを意味しま す。
一方、マイニングはより多くの秘密を隠すことができるため、ユーザが支払いを行い 1 台のコンピ ュータがランサムウェアからより多くの金を稼ぐ一方で、攻撃者はより長い期間秘密のマイニング を運用することを好むでしょう。計画は、ある時点では、マイニングは一度の身代金支払いと同じく らいの利益を上げることができるということです。
これは、MikroTik デバイスにできるだけ早くパッチを当てるように警告するものです。この攻撃は、 現在はブラジルで行われていますが、このブログの最終段階では、他の場所も同様に攻撃されて いることに気がつきました。私は、この攻撃が地球規模で行われることを意図していると信じてい ます。
図 14: Censys.io が CoinHive サイトキーを備えた 17 万台の MikroTik デバイスを報告
この攻撃がどれほど悪いかを強調しましょう。攻撃者は、訪問者が少ない小さなサイトに感染する とか、エンドユーザのコンピュータでマルウェアを実行するといった洗練された方法を見つけ出す のではなく、直接ソースに向かいました。それはキャリアグレードのルータデバイスです。
世界各地に数十万のデバイスがあり、ISP や異なる組織や企業で使用されています。各デバイス は毎日何百人ものユーザとまではいかなくても、少なくとも数十人のユーザにサービスを提供して います。
確かに、どのユーザが訪問したかにかかわらず、各ユーザは最初に CoinHive スクリプトを取得し ていました。この攻撃がエラーを返すページでのみ有効であっても、毎日何百万ものページが攻 撃者のために潜在的に存在していると言えます。
前述のように、感染したルータに接続されているサーバは、インターネット上のどの場所からアク セスしていても、CoinHive を使用しているユーザにエラーページを返すことがあります。
Trustwave SWG をルータに接続している MikroTik のお客様は、CoinHive をブロックしたという大 量の結果を見ることができます。
私たちはこの攻撃についての分析を継続しますので、いつでも詳細な情報が得られるようにして おいてください。