Microsoft Teams に深刻な Electron ベースの脆弱性:認証トークンの平文保存に起因

Microsoft Teams stores auth tokens as cleartext in Windows, Linux, Macs

2022/09/14 BleepingComputer — セキュリティ・アナリストたちは、Microsoft Teams のデスクトップ・アプリに存在する、深刻なセキュリティ脆弱性を発見した。この脆弱性の悪用に成功した脅威あぃたーは、認証トークンや多要素認証 (MFA) をオンにしたアカウントへのアクセスが可能になるという。Microsoft Teams は、365 製品群に含まれるコミュニケーション・プラットフォームであり、テキストメッセージの交換/ビデオ会議/ファイルの保存などに 2億7000万人以上が利用している。

今回、発見されたセキュリティ上の問題は、Windows/Linux/Mac 用のアプリケーションに影響を及ぼすものであり、Microsoft Teams がユーザー認証トークンへのアクセスを保護せずに、平文で保存していることに起因している。

Microsoft Teams がインストールされているシステムで、ローカル・アクセス権を持つ攻撃者は、トークンを盗み出し、それを使用して被害者のアカウントにログインする可能性がある。

サイバー・セキュリティ企業である Vectra の Connor Peoples は、今週のレポートで、「この攻撃は、特別な権限や高度なマルウェアを必要とせず、大きな内部被害を与える可能性がある。ユーザー企業の技術責任者/CEO/CFO などの重要なアカウントを制御することで、組織に損害を与えるタスクを実行するよう、攻撃者が誘導するが可能性が生じる」と説明している。

Vectra の研究者たちは、この問題を 2022年8月に発見し、Microsoft に報告した。しかし、Microsoft は問題の深刻度について同意せず、パッチ適用の基準を満たしていないとしている。

問題の詳細

Microsoft Teams はブラウザで実行される Electron アプリであり、通常の Web ページが必要とする、クッキー/セッション文字列/ログなどの全ての要素を完備している。

Electron は暗号化や保護されたファイル・ロケーションをデフォルトでサポートしていないため、ソフトウェアのフレームワークは汎用性が高く使いやすい。しかし、広範なカスタマイズや追加作業を行わない限り、ミッション・クリティカルな製品の開発には、十分な安全性が確保できないと考えられている。

Vectra は、非アクティブ化されたアカウントをクライアント・アプリから削除する方法を探そうとして Microsoft Teams を分析したところ、アクセス・トークンが平文で記述された ldb ファイルを発見した。

同社は、「検証の結果、これらのアクセストークンは有効であり、以前のエラーによる偶発的なダンプではないと判断された。これらのアクセストークンにより、Outlook/Skype の API にアクセスすることができた」と述べている。

さらに、アナリストたちは、Cookies フォルダにも、アカウント情報/セッションデータ/マーケティング・タグなどと一緒に、有効な認証トークンが含まれていることを発見した。

Cookies ディレクトリ上の認証トークン (Vectra)

さらに Vectra は、自分自身にメッセージを送信できる、API コールを悪用するエクスプロイトを開発した。SQLite エンジンを使用して Cookies データベースを読み込むことで、研究者は認証トークンをチャット・ウィンドウにメッセージとして受信した。

\攻撃者の個人チャットでトークンをテキストとして受信 (Vectra)

リスクの軽減

この脆弱性にパッチが適用される可能性は低いため、Vectra はユーザーに対して、ブラウザ版の Microsoft Teams クライアントへの切替を推奨している。Microsoft Edge を使用してアプリを読み込むことで、ユーザーはトークン漏えいに対する追加の保護措置を受けることができる。

また、Microsoft は 12月までに、同プラットフォーム向けのアプリのサポートを終了すると発表しているため、Linux ユーザーに対しては、別の Collaboaration Suite に移行することを勧めている。

別のソリューションへの移行が難しい場合は、監視ルールを作成することで、下記のディレクトリにアクセスするプロセスの検出が可能になる。

  • [Windows] %AppData%\Microsoft\Teams\Cookies
  • [Windows] %AppData%\Microsoft\Teams\Local Storage\leveldb
  • [macOS] ~/Library/Application Support/Microsoft/Teams/Cookies
  • [macOS] ~/Library/Application Support/Microsoft/Teams/Local Storage/leveldb
  • [Linux] ~/.config/Microsoft/Microsoft Teams/Cookies
  • [Linux] ~/.config/Microsoft/Microsoft Teams/Local Storage/leveldb

BleepingComputer では、Microsoft に対して、この脆弱性の修正の予定について問い合わせており、回答が得られ次第、記事を更新する予定だ。

Electron に関しては、8月17日の「Electron ベース・アプリ 18種類に深刻な脆弱性: Teams/WhatsApp/Slack などに影響」で、おそらく別の脆弱性が報告されていました。具体的には、Microsoft Teams/Discord/Visual Studio Code/Basecamp/Mattermost/Element/Notion/JupyterLab/Rocket.Chat などへの影響が指摘されています。また、9月4日の「Microsoft Defender の誤検出:Chrome/Edge などを Win32/Hive.ZY と間違える」でも、Electron アプリに関する問題が指摘されていました。Microsoft Teams だけの問題なのかと、ちょっと心配になる展開です。

%d bloggers like this: