みっきー申す

ITに関する興味関心のまとめ、サイバーセキュリティニュースのまとめ、Twitterで配信中の情報まとめなどを公開します。

GIFを表示しただけなのに~Microsoft Teamsの脆弱性を用いたアカウント乗っ取り~

f:id:micro_keyword:20200428114547p:plain:w400

イスラエル発のセキュリティベンダーCyberArkのブログ記事によると、GIF形式の画像ファイルにかかる脆弱性Microsoft Teamsには存在し、アカウント乗っ取りの危険性があることが明らかになりました。

www.cyberark.com

COVID-19の影響でWeb会議用アプリを使い始めた方も多いと思います。 企業のセキュリティ担当者の方を中心に本記事をご参考にしていただけると幸いです。


目次


修正バージョンの公開

本件に関して、すでに4月20日(現地時間)にパッチが公開されているとのことです。

ただ筆者が確認を試みたところ、セキュリティパッチに関するリリースノートは、Microsoftの企業アカウントを持っていないと確認できないようで。。。

Microsoftは以下のように述べています。

Teams は、Word や Excel などの他の Office アプリの更新プロセスではなく、独自の更新プロセスに従います

Teams Web アプリは毎週更新されます。

Teams デスクトップ クライアントの更新プログラムは、TAP (Technology Adoption Program) を使用した厳格な内部テストと検証の後、2 週間ごとにリリースされます。 通常は火曜日にリリースされます。 緊急更新プログラムが必要な場合、Teams ではこのスケジュールをバイパスし、利用可能になり次第更新プログラムをリリースします。

docs.microsoft.com

このような背景があり、いわゆるPatch Tuesdayに配信されるセキュリティ更新プログラムとは異なると考えられます。

少なくとも影響がある方はMicrosoftのアカウントをお持ちかと思いますので、上記URLを参考に、4/20日以降に更新されていることを、ご確認されるとよいかと思います。


脆弱性の概要

脆弱性の悪用による影響

  • 標的とするユーザにGIFファイルを送り、表示させることでアカウントを乗っ取れる
  • 攻撃者は、一度に複数のアカウントへのアクセスを行い、会話やスレッドの盗聴を行うことが可能になる。

前提条件

脆弱性の仕組み

  • 受信者は送られた画像を確認するためにauthtokenとskypetokenの2つのトークンを用いて認証を行う

    • authtoken
      • 画像の読み込みとskypetokenの生成に使われる
    • skypetoken
      • クライアントからのリクエスト(メッセージの読み込みや送信)処理を行うサーバの認証で使われる
  • もし、攻撃者がこの2つのトークンを持っていた場合Teams API経由でアカウントを乗っ取ることができる。

  • 攻撃者はトークン取得のためにサブドメインを保持し、標的にアクセスさせることでauthtokenの取得を試みる
    • ブログ記事中では、GIF送信時のsrc属性に侵害されたサブドメインが指定されていた場合のシナリオを提示しています
  • この際、攻撃者はサブドメインのデジタル証明書を保持している必要がある
    • HTTPS通信経由ならトークンの送信が可能
    • オレオレ証明でもよさそう

攻撃のワークフロー例

CyberArkより公開されている図を基に攻撃の流れを確認します。

https://www.cyberark.com/wp-content/uploads/2020/04/MSFT-Teams-Attack-Flow_Graphic_FINAL.png

  1. まず、攻撃者は細工したGIFファイルを標的に送ります
  2. 受信者がメッセージを確認します(表示するのみ)
  3. 攻撃者が受信者になりすまし、GIFファイルを他の従業員にも送ります
  4. GIFファイルを表示したすべての受信者が攻撃者にauthtokenを送ります
  5. 取得したトークンを用いて攻撃者は受信者のメッセージを窃取します

デモ動画

GIFに注意:Microsoft Teamsにおけるアカウント乗っ取りの脆弱性| サイバーアーク


社外からTeamsアクセスの可能性について

これまでの説明では、攻撃者が標的にGIFを送り付けるところから始まるシナリオを中心にお話ししました。

CyberArkのブログを読んで筆者が気になったこととしては、

「そもそも、組織アカウントでないとTeamsの利用が困難なのに社外とメッセージってできるの?」

といった点です。

Microsoftでは、以下のように「外部アクセス」と「ゲストアクセス」の手段で他組織との通信を可能にしていると述べています。

docs.microsoft.com

  • 外部アクセス

    • 社外の人(外部ドメイン)とチャットや通話が可能
    • ファイル共有やグループチャットへの参加は不可
    • 相手からの招待などは不要
    • デフォルトで有効
  • ゲストアクセス

    • 社外の人とチャットや通話、ファイル共有やグループチャットが可能
    • 組織内の人物からの招待が必要
    • ドメインの制約はなくアカウントにサインインしていることのみが条件

このような形になっていました、イメージ的にはFacebookみたいな感じなのだと思っています。

  • 友達検索すれば、個人を見つけ、チャットや通話が可能
  • ただ、グループチャットやチャット内のファイル共有は正体がないとできない

まとめ

GIFを表示させるだけで攻撃が可能というのは新しいように感じました。

今回の件を機に注意したいこととしては、 - 知らない人からメッセージをもらった場合には内容すら見てはいけない

といったところでしょうか。 少しハードル高い。。。

チャットの認証方式として、今回のようにトークンを用いるケースは多いような気がします。

GIFなどsrc属性を含めることができる画像ファイルの送受信をきっかけに、トークンを取得するような手法は、他のアプリでも出てくるのではないかと思ってしまいますね。 (知らないだけで、割とあるのかも。。。)