MSP(ITの運用を請け負う事業者)向けのMicrosoft 365バックアップ「ConnectWise Cloud Backup(旧SkyKick)」で、アプリの認証情報が攻撃者の手に渡りました。攻撃者はこの認証情報を使い、利用企業のM365に次々とサインインしています。ConnectWiseはアプリの接続を止め、バックアップのサービスは当面止まっています。
何が起きたのか
ConnectWise Cloud Backupは、MSPが顧客のMicrosoft 365やGoogle Workspaceのデータを守るための、クラウドのバックアップです。仕事の性質上、このアプリには、導入したテナント(M365の契約の単位)のメール、OneDrive、SharePoint、Teams、ディレクトリ(利用者やグループの情報)を広く読み書きできる権限が与えられています。
セキュリティ会社のHuntressによると、このアプリの認証情報(APIのシークレット)が盗まれました。日本時間10月15日15時13分〜17時34分、攻撃者はホスティング事業者のIPアドレス(144.172.64.128)から、アプリとして各社のテナントにサインインし、Microsoft Graph(M365のデータを扱う仕組み)のアクセストークンを得ました。数秒おきにテナントを順番にたどっており、標的の一覧を使ったスクリプトとみられます。
Huntressが示したEntra管理センターのサインインの記録。不審なIPからの成功が並ぶ出典: Huntress(調査報告のFigure 1)(引用)
Huntressは、日本時間10月17日4時の時点で、162のテナントで不正なサインインを確認しています。認証情報は、アプリを入れたすべてのテナントで使えます。このため、被害が確認済みのテナントにとどまるとは限りません。認証情報はベンダー側のテナントにあるもので、利用企業の側の設定や操作が原因で起きたものではないとしています。
同じIPアドレスからは、10月13〜14日に、法律事務所4社のテナントへのパスワードスプレー(よくあるパスワードを多くのアカウントに試す攻撃)もありました。利用者のサインインの成功は確認されていません。
別のアプリがグローバル管理者に
Huntressは、1つのテナントで、より深刻な動きも見つけています。日本時間15日12時44分〜49分、ConnectWiseの別のアプリ「ConnectWise Cloud Management - MS Teams」が、自らをグローバル管理者(M365で最も強い役割)に加えました。続けて、テナント内の2つのアプリ(MSPの管理用のアプリと、Huntress自身のアプリ)に、新しいクライアントシークレット(アプリがサインインに使う合言葉)を足していました。シークレットの有効期限は2028年でした。
足されたシークレットがあれば、元のConnectWiseの認証情報が使えなくなっても、そのアプリとしてサインインし続けられます。MSPの管理用のアプリは、多くの顧客のテナントで権限を持っていることが多く、被害が広がる道になりえます。Huntressは、この動きと15時台のサインインが同じ攻撃者によるものかは、まだ結びつけていないとしています。
このほか、Huntressが見ている約50のテナントでは、15日の午前から、ConnectWiseの管理用のアプリが自らに管理の役割(主にExchange管理者)を付けていました。ConnectWiseの自動処理とみられますが、ConnectWiseへの確認は取れていないとしています。
何が持ち出されたかは分かっていない
Huntressが詳しく調べた1つのテナントでは、メールやファイルへのアクセスの記録は見つかっていません。ただし、Microsoft Graphでのディレクトリの読み取りは、監査ログに残りません。「トークンは発行されたが、持ち出しは見えていない」というのが今の状態です。
ConnectWiseの対応
ConnectWiseは日本時間10月17日2時47分、Cloud Backupの環境への不正アクセスの試みを調べていると告知しました。同日14時1分の更新では、Cloud Backupの環境で、アプリの身元(アプリとしてサインインするための情報)への不正アクセスを確認したとしています。そのうえで、保護のためにCloud Backupのアプリの接続を止めると発表しました。これにより、バックアップのサービスは当面止まります。
ConnectWiseの告知。Cloud Backupのアプリの接続を止め、サービスは当面止まる出典: ConnectWise(Trust Center)(引用)
ConnectWiseは、パートナーのバックアップデータが侵害された兆候は今のところないとしています。保管済みのバックアップはこの停止の影響を受けず、サービスの再開後に使えるとのことです。不審なIPアドレスとして144.172.64.128を、不審な認証で見られたUser-Agent(接続元のソフトの名乗り)として「Python-urllib/3.12」「python-requests/2.31」を挙げています。
なぜ影響が大きいのか
バックアップのアプリは、データを写すための読み取りと、戻すための書き込みの権限を持ちます。認証情報を握った攻撃者は、アプリを入れたすべてのテナントで、その権限を引き継げます。メールやファイルをまとめて読む、利用者やグループを洗い出す、書き込みの権限があればデータを書き換える・消す、といったことができてしまいます。
しかも、アプリとしてのサインインには利用者も端末も関わらず、多要素認証も求められません。利用者向けのサインインの守りが効かないということです。さらに、アプリが役割を付けられる場合は、グローバル管理者になり、ほかのアプリに資格情報を足したり、条件付きアクセスを変えたりして、戻ってくる道を増やせます。Huntressが「ベンダーの認証情報を取り替えるだけでは足りない」とするのは、このためです。
情シスから見ると、これは委託先や外部サービスを経由するリスクそのものです。M365に「同意」したアプリは、利用者のアカウントとは別に、強い権限で動き続けます。外部サービスの点検の考え方はIPAの速やかな点検を情シスの点検表に 外部公開・外部サービス・保有データ、委託先を経由した事故の傾向は委託先経由の情報漏えい6件を図解 預けたもの・漏れ方・公表までの日数でも取り上げています。
影響する会社・しない会社
- 影響する: M365のテナントに、ConnectWise Cloud Backup(旧SkyKick Backup)のアプリ(アプリケーションID 506e08f9-6e9a-4da4-942b-a099a03644ae)が入っている会社です。自社で契約していなくても、MSPや保守会社が入れていることがあります。
- 影響する: ConnectWise Cloud Management(旧SkyKick Cloud Manager)など、ConnectWiseやSkyKickのほかのアプリが入っている会社も、確かめる対象です。1つのテナントでは、このうちTeams用のアプリがグローバル管理者になっていました。
- 影響する: ConnectWise Cloud BackupでM365をバックアップしている会社は、サービスが止まっている間、新しいバックアップが取れません。
- 影響しない: これらのアプリが入っていない会社です。ただし、広い権限を持つ外部のアプリは、ほかのサービスにもあります。今回の確かめ方は、そのまま自社のアプリの棚卸しに使えます。
情シスが今日やること
Huntressの手順をもとに、Microsoft Entra管理センターで次の順に進めます。
- アプリを探して無効にする(削除しない): 「エンタープライズ アプリケーション」で、アプリケーションID 506e08f9-6e9a-4da4-942b-a099a03644ae か、「SkyKick」「ConnectWise」の名前で探します。見つかったら「プロパティ」の「ユーザーのサインインが有効になっていますか?」を「いいえ」にします。安全と確かめられないConnectWise・SkyKickのほかのアプリも、同じく無効にします。ConnectWiseがすべての認証情報を取り替えたと確認するまで、有効に戻しません。
- 役割を確かめる: ConnectWiseやSkyKickのアプリが、グローバル管理者や特権認証管理者などの役割を持っていないかを見ます。アプリを無効にしたうえで、意図して与えていない役割は外します。
- 足された資格情報を探す: すべての「エンタープライズ アプリケーション」と「アプリの登録」で、10月13日以降に足された、見覚えのないクライアントシークレットや証明書を探して消します。管理ツールやセキュリティツールのアプリから先に見ます。アプリを無効にしても、すでに足された資格情報は消えません。
- ログを見る: 「サインイン ログ」の「サービス プリンシパルのサインイン」タブで、このアプリケーションIDに絞り、Microsoft・Azure以外のIPアドレス、とくに144.172.64.128からの認証を探します(既定の「ユーザーのサインイン」のタブには出ません)。監査ログでは、アプリが自らを役割に加えた記録や、ほかのアプリを変更した記録を確かめます。
- 委託先と、バックアップの空白を確かめる: M365の運用を任せている会社に、このアプリの使用と無効化の状況を確かめます。止まっている間はバックアップが取れないため、復元できる時点の空白が業務に響くかも検討します。
Huntressは、条件付きアクセスでこのアプリを除外している場合は、その除外も見直すよう勧めています。今後に向けては、アプリのクライアントシークレットを制限したり有効期限に上限を設けたりする「アプリ管理ポリシー」、アプリに資格情報を足せる管理者の役割を絞ること、ワークロードID向けの条件付きアクセス(追加のライセンスが必要)なども挙げています。
バックアップは、データを守るために強い権限を預ける仕組みです。その鍵が盗まれると、守るための道具が、そのまま攻撃の入口になります。M365に入っている外部のアプリと、それぞれに与えた権限を一覧にしておけば、次に同じような告知が出たときも、自社が関係あるかをすぐに答えられます。