あなたの Azure リソースが狙われている

Azure 便利ですよね。

そう、みなさんが便利だと思っているように、悪意のある攻撃者も便利だと思っているのです。

攻撃者は、無料トライアルの環境を使ったり、あるいは、正規のユーザーの環境にこっそり侵入して環境を乗っ取り、その環境にあるリソースを使って、いろんな悪さをします。乗っ取ったテナントから他の環境に悪意のあるソフトウェア（マルウェア）をばら撒いたり、詐欺メールを送ったりします。正規のクラウドサービスの環境を乗っ取ることで、攻撃者にとっては、タダで攻撃の環境を手に入れるられるだけではなく、セキュリティ製品の検知に見つかりにくくなる、というメリットもあります。
クラウドサービスの悪用は、攻撃者によって自動化もされていることもあり、非常に多くなってきています。

## クリプトジャッキングがあなたのVMを狙ってる
乗っ取った環境を踏み台にして行う攻撃のひとつが、仮想通貨のマイニングをする「クリプトジャッキング」です。マイニングはリソースを使う事から、タダ乗りした環境で行うことで、攻撃者は効率よく報酬を得ることができるというわけです。

攻撃者は、正規のテナントのアカウントを手に入れたあと、たくさんのVMを作ります。仮想通貨を早くたくさん稼ぐために、コア タイプの高いものを選びます。GPUコンピューティング製品は、特に人気があり、NVIDIA T4、V100、A100 GPU などがよく好まれます。VMを大量に作成した後、攻撃者は、作った VM にクリプトマイニング ソフトウェアを入れて、マイニング プールに参加させ仮想通貨のマイニングを始めます。

クリプトジャッキング攻撃を受けたテナントは大きな請求を払わなければならなくなったり、自分のリソースが足りなくなってサービスが止まったりすることもあります。Microsoft での観測では、クリプトジャッキング攻撃で約 4300万(30万ドル) もの費用があがった組織もありました。


## クリプトジャッキングはどう仕掛けられるのか
クリプトジャッキング攻撃を仕掛けるためには、まず、攻撃者は、VM を作れるロールを持つアカウントを持っている必要があります。
攻撃者が組織にアクセスする方法はいろいろあります。フィッシングや漏洩した認証情報の利用やオンプレミス デバイスの侵害などです。Microsoft のインシデント対応チームが対応した事例では、ほとんどすべてのケースで、アカウントに多要素認証 (MFA) が有効になっていなかったことが原因でした。

もし最初に侵害したアカウントが高い権限を持っていない場合は、他のアカウントで環境に侵入してから、高い権限・ロールを持つアカウントを探し、そのアカウントを乗っ取ったり、アカウントを作成できる権限を持つアカウントを得た後に、自由に使える高い権限のアカウントを作成したりします。
グローバル管理者アカウントが掌握されるケースも多くありません。このアカウントはディレクトリ内のすべてのサブスクリプションや管理グループにアクセスできないこともあります。その場合は、昇格アクセス オプションでアクセス権を上げ、侵害を広げるケースもあります。

さらに、攻撃者は、自分の活動を隠すために、サブスクリプション転送機能を使って、侵害されたテナントから自分のテナントにサブスクリプションを移す場合もあります。(これを "サブスクリプションハイジャック" と呼ぶこともあります。) 攻撃者は、移転先のテナントで、VMを作ってマイニングしたり他の悪いことをしたりします。こうすることで、サブスクリプション レベルのアクティビティ ログは記録されますが、テナントのロールベースのアクセス制御 (RBAC) レベルで記録されたものは新しいテナントで記録されるため、被害に遭っている組織の検知にひっかからなず、攻撃が見つかりにくくなります。このようなケースでは、インシデントが発覚した後も、移転先のテナントでのログは攻撃者がすでにテナントごと消している場合も多く、攻撃を追跡したりフォレンジックを行ったりするのが難しく、被害の全容を把握するのもほぼ不可能になります。

## クリプトジャッキングを示すパターン
無料試用版の悪用は、クラウド プロバイダーにとって見つけやすい問題なのですが、正規のテナントが侵害されると、正規のユーザー アカウントを使って不正な操作を行うため、クラウド プロバイダーにとっても、その環境の持ち主の組織にとっても、検知が困難になります。攻撃者は、正規ユーザーのアクセスを奪って正規の動作化のように見せかけるため、それがその環境で意図したものかどうか、見分けるのは非常に難しいのです。

とはいえ、クリプトジャッキングという攻撃は、大量のリソースを奪って仮想通貨を採掘するものなので、攻撃者は見つからないように素早くVMを起動して管理しなければなりません。そのため、いくつかの特徴的な動作があります。

- VM 展開管理を利用した大量展開
例えば、よくあるケースとしては、攻撃者はVM スケール セット、Azure Machine Learning コンピューティング インスタンス、Azure Batch、およびAzure Container Instances などのサービスを使って、多数のVMを一度に展開しやすくします。このような展開は、テナント内で普段行われていないことが多く、異常なパターンとして検出できます。また、コンピューティングを展開したことがないユーザーが使われたり、利用しないリージョンにデプロイされたりするケースもよく見られます。さらに、コア クォータに達してしまうことで、複数のコア タイプでデプロイメント エラーが発生していることもあります。

- GPU ドライバーのインストール
リソースが展開されると、攻撃者はGPU ドライバーをインストールする必要がある場合があります。その際には、WindowsまたはLinux用の NVIDIA GPU ドライバー拡張機能やWindows 用の AMD GPU ドライバー拡張機能などのAzure仮想マシン拡張機能を利用して、ドライバーのインストールを簡単にします。このときも、VM 拡張機能を使ったことがないユーザーから大量の展開が行われることがあります。

- 攻撃者がよく好むマイニングプールへのアクセス
攻撃者はマイニング環境をセットアップしてマイニングプールに参加させますが、侵害された環境から接続されるマイニングプールは限られています。これらのマイニングプールへの接続は、クリプトジャッキングの被害の兆候です。マイクロフトでは、被害状況やセキュリティ調査から判明している、攻撃者がよく好むマイニングプールを把握しており、Microsoft Defender for Cloud では、このような動作を検出する機能があります。


## クリプトジャッキングの被害に遭わないために
クリプトジャッキングの攻撃は、まずターゲットとなる環境への正規アクセスを攻撃者が何かしらの方法で取得し、環境に侵入するところからはじまります。クリプトジャッキングだけではなく、ランサムウェア攻撃など、多くの攻撃では、このような初期侵入から始まります。このため、クリプトジャッキング対策としてだけではなく、アカウント、クレデンシャル、権限の適切な管理など、一般的なベスト プラクティスを行っておくことが重要です。
特に重要なポイントとしては：
- 特権ロールの分離: 管理者アカウントと通常のユーザー アカウントを分離する。特に、クリプトジャッキングのケースでは、仮想マシン共同作成者の役割を持つアカウントの数を制限することをお勧めします。
- 多要素認証 (MFA) とリスクベースのサインイン動作と条件付きアクセス : 可能であればすべてのアカウントに多要素認証を有効化することをお勧めします。また、少なくとも、グローバル管理者等、重要な権限を持つアカウントは多要素認証とリスクベースのサインイン、条件付きアクセスを必須とすることが望ましいです。過去の侵害ケースでは、侵害されていたアカウントでは、高いリスクのスコアが出ていたケースが殆どでした。

組織の環境を守るために、まずどのようなセキュリティ構成をするべきか。被害事例と、費用対効果からまとめた推奨については、マイクロフトの年次セキュリティレポート [Microsoft Digital Defense Report](https://aka.ms/MDDR) にまとめてありますので、ぜひ見てみてください。 (P41 ～　あたり）


### クリプトジャッキングの攻撃の兆候を早期に発見する
クリプトジャッキングの攻撃の兆候を早期に発見するために、前の項目で説明したクリプトジャッキングの特徴を踏まえた検知や監視を行っておくことも推奨です：
- 未使用のクォータの制限と、クォータの増加の監視：　短期間に発生する複数の予期しないクォータの増加、複数のリージョンにわたるクォータの増加、または環境が通常使用しないリージョン内でのクォータの増加など、クリプトジャッキングの兆候に合致するパターンを監視しておくことで、早期に検出が可能です
- テナントで認証された外部 Azure IP アドレスの監視する:テナントが所有していない Azure IP アドレスからのサインイン アクティビティの成功を監視することで不審なアクティビティの兆候をみつけることができます。


マイクロソフト製品では、危険なユーザーがサインインした後の VM クォータ変更、GPU 仮想マシンの大量プロビジョニング、マイニングに関連するプロセスが検出、仮想通貨マイニングの可能性に関連した不審な Azure アクティビティを検出することができます。

- Microsoft Defender XDR
- Microsoft Defender for Cloud Application
- [Microsoft Defender for Cloud : セキュリティ アラート - リファレンス ガイド](https://learn.microsoft.com/ja-jp/azure/defender-for-cloud/alerts-reference)
- Microsoft Defender for Endpoint

- Sentinel でのハンティングクエリ
[Crypto currency miners](https://github.com/Azure/Azure-Sentinel/blob/master/Solutions/Syslog/Hunting%20Queries/CryptoCurrencyMiners.yaml)
[uspicious cryptocurrency mining related threat activity detected](https://github.com/Azure/Azure-Sentinel/blob/master/Solutions/Syslog/Hunting%20Queries/CryptoThreatActivity.yaml)
[Creation of an anomalous number of resources](https://github.com/Azure/AzureSentinel/blob/master/Solutions/Azure%20Activity/Hunting%20Queries/Creating_Anomalous_Number_Of_Resources.yaml)

### サブスクリプション ハイジャックを早期に発見する
サブスクリプションがハイジャックされているかについては、[Microsoft Defender for Cloud Apps を使用して侵害された Azure サブスクリプションを探す](https://techcommunity-microsoft-com.translate.goog/t5/microsoft-defender-xdr-blog/hunt-for-compromised-azure-subscriptions-using-microsoft/ba-p/3607121) を参考にしてみてください。



## さいごに：乗っ取られた場合の通知を確認してね
マイクロソフトでは、[Microsoft Security Response Center](https://msrc.microsoft.com/)  という組織がセキュリティとプライバシーの脅威からお客様と Microsoft を保護することを使命として、24x7体制でクラウドサービスとマイクロソフト製品の脅威を監視し保護しています。
今回紹介したクリプトジャッキングだけではなく、環境が乗っ取られていると思われる場合や、踏み台にされて他環境を攻撃している場合など、セキュリティに関する問題あった場合は、ユーザーに通知しています。

さてみなさん、どこに通知がきてるか知ってますか？

放置しておくと、被害に気が付かづに被害が拡大してしまいます。また、他環境を攻撃してしまっている場合などは、「あなたのAzureから不審な通信が出てるんで、テナント保留しますよ」という事になる場合もあります。

（実際、通知が出ているのに、「気づいてませんでした....」というケースは少なくないのですよ...!)



ということで、突然あなたのAzureが使えなくなったりしないよう、安心・安全なAzureライフのために、ぜひ確認してみてください!

- [Azure のセキュリティの問題に関する最新情報を入手する](
https://learn.microsoft.com/ja-jp/azure/service-health/stay-informed-security)


それではみなさん Happy Holidays 🎁