皆さんこんにちは。国井です。
この投稿はMicrosoft Security Advent Calendar 2023の7日目になります。
以前、ユーザーがOAuthアプリの同意を勝手に押してしまうことの危険性について指摘しました。
初めてアクセスするときに同意(Consent)画面が表示されるんですけど、ユーザーさんはこんな画面などまともに見てないんですよね..
自分の会社でホストしているアプリであれば[アプリの登録]メニューから該当のアプリを開いてサインインログを参照したりすることができるのですが
他の会社でホストしているアプリとなるとサインインログから参照しなければならず、そうなると個々のログをクリックして確認しなければなりません。Microsoft Graph APIへのアクセスを行ったか?については[リソース]列を使って絞り込みはできるけど、どのようなAPIを使ったか?まではフィルターをかけられません。
ユーザー教育で何とかする!っていう気合と根性で乗り切る会社もあるのでしょうが、それも源氏鉄的ではないことは明らかです。ということで今日はアプリガバナンスを用いてConsentの状況を確認する方法について見てみたいと思います。
アプリガバナンスとは
Microsoft 365 E5 Securityに含まれるサービスでOAuthアプリ用のセキュリティを担う役割があります。と言ってもピンとこないと思うので実際の画面を見てみましょう。
Microsoft Defender XDR管理センター > クラウドアプリ > アプリガバナンスからアクセスします。
トップページではこんな感じのダッシュボードが出てきます。
ここから[Azure AD]タブをクリックすると組織全体でConsentをクリックしたアプリが一覧で出てきます。
アプリガバナンスによる調査
Consentの何が問題か?ってOAuth経由でAPIアクセスができてしまうって点にあります。APIと言っても単純にユーザー名を読み取るAPIからメールボックスにフルアクセスできてしまうAPIまで色々あるわけです。これらのAPIのうち、どのAPIを許可したの?どのAPIが使われたの?を確認できる特徴があります。上の画面を見るとBrother Web Connectという特権レベルがとても高い、危険っぽい感じのアプリがあります。
今回はこれについて調査しながらユーザーインターフェイスを確認してみましょう。Brother Web Connectをクリックすると同意(Consent)したユーザーの一覧や
同意によってどのようなAPIアクセス許可が使われることになったか?
そしてAPI経由でのデータアクセス量などを確認することができます。
この画面を下にスクロールするとそのデータアクセスがOneDrive for Businessに対してのものであったことがわかります。
ここまでの話をまとめると
・kuniiユーザーが同意したこと
・OneDriveへのファイルReadWriteのAPIアクセス許可が割り当てられていること
・1.23MB分のデータのアップロードがあったこと
がわかりました。
さらには上の画面のアイコンをクリックするとAdvanced Huntingに移動して実際にアクセスしたファイルの追跡を行うことができます (Advanced Huntingは30日以内のログに対してのみ検索が可能)。そうすればファイル名まで確認できるので、これによってAPIアクセスによって行われたことの全体像が見えると思います。
ちなみにBrother Web Connectはブラザー社が提供している複合機のクラウド接続機能で、スキャナーで読み取った内容がOneDrive for Businessに保存できるという機能があることが検索してもらえればわかります。このことをkuniiユーザーが利用したこと、1.23MB分のPDFファイルのアップロードがあったことを組み合わせれば、何が行われたのか?それは会社として妥当な操作であったのか?がわかりますよね。
毎回こんな面倒なことをするのか?という疑問はあるかもしれないですが、必要とあればいつでも参照できるという点において安心感を与えてくれるのではないかと思います。