はじめに:Microsoft 365 の OAuth アプリの脅威
Microsoft 365 環境を管理している場合、悪意のある OAuth アプリが潜んでいる可能性が高いです。Huntress Labs の主任セキュリティ研究者である Matt Kiely 氏が開発したオープンソーススクリプト「Cazadora」は、この隠れた脅威を特定するのに役立ちます。
監査すべき主なポイントは以下の通りです:
- ユーザーアカウント名にちなんで名付けられたアプリ
- 「Test」や「Test App」などのテスト用アプリ名
- テナントドメイン名にちなんで名付けられたアプリ
- 非英数字名(例:「……..」)など、任意の文字列が指定されたアプリ
- 異常なリプライ URL、特にローカルループバック URL(例:「http://localhost:7823/access/」)を含むもの
これらの兆候は、環境内に潜む「シロアリ」のような悪意のあるアプリの存在を示唆しています。
OAuth アプリケーション攻撃の進化
Huntress SOC は、初期アクセス攻撃に対抗する能力を強化してきましたが、攻撃者は常に進化しています。特に、クラウドアプリケーションの悪用は新たな脅威として浮上しています。クラウドアプリは開発者にとって強力なツールであると同時に、サイバー犯罪者にとっても魅力的な標的となっています。
研究チームは、以下の疑問に答えるために調査を開始しました:
- Azure で OAuth アプリケーションはどのように機能するか?
- 攻撃中にどのように悪用されるか?
- サイバー犯罪者にとってなぜこれほど強力で有用なのか?
- これらの不正アプリをどのように追跡するか?
- そして、どれだけの不正アプリが存在するのか?
Azure における OAuth アプリの仕組み
Azure のアプリケーションは、大きく分けて「Enterprise Applications(エンタープライズアプリケーション)」と「Application Registrations(アプリケーション登録)」の2種類があります。エンタープライズアプリケーションは他者が構築・公開したアプリを自社テナントで使用するもので、アプリケーション登録は自社テナントで構築・公開するアプリのテンプレートのようなものです。
アプリのインストールには、ユーザー認証と権限への同意が必要です。ユーザーが権限に同意すると、そのアプリの「サービスプリンシパル」がテナントにインストールされ、アプリのアカウントとして機能します。
重要なポイント:Azure のデフォルト設定では、どのユーザーでも任意のアプリケーションをインストールし、自身のリソースアクセスに特化した権限に同意できるため、レビューなしでアプリがインストールされる可能性があります。これは攻撃者にとって格好の標的となります。
攻撃者が OAuth アプリを悪用する理由
OAuth アプリは、システムの「機能」として存在するため、パッチを適用できない「脆弱性」として悪用されます。そのカスタマイズ性により、攻撃者はアプリを攻撃の種類に合わせて調整でき、システムに組み込まれた正当な機能として悪用されるため、検出が困難です。
Traitorware:善意のアプリが悪意に転じる
「Traitorware(トレイターウェア)」とは、それ自体は悪意のある目的で設計されていないものの、ハッカーにとって非常に有用なアプリを指します。これは、エンドポイントにおける RMM(リモート監視および管理)ツールのインストールに似ており、攻撃者が正当なツールを悪用するケースです。
Huntress の調査では、特定の5つのアプリが攻撃者に頻繁に悪用される「決定的証拠」と見なされています。約1,500件の報告事例と平均1.8%の誤検知率から、これらのアプリの検出がハッキング活動の発見に繋がることが示されています。
Stealthware:カスタムメイドの悪意あるアプリ
「Stealthware(ステルスウェア)」は、ハッカーが最初から破壊を目的として構築したカスタムメイドの悪意あるアプリです。これらは「OAuth 不正同意付与攻撃」とも呼ばれますが、ステルスウェアという呼称がより一般的です。
ステルスウェアの追跡は困難です。なぜなら、特定のアプリ名で検索することができないためです。各アプリは、ハッカーが実行しようとする悪用に合わせてカスタムメイドされています。
Cazadora の紹介:あなたのテナントを監査する
OAuth アプリの脅威の大きさを理解した今、Cazadora がその解決策となります。これは、テナントのアプリを列挙し、一般的に観測される攻撃者の手口の属性に対して監査を行う、Azure アプリハンティングスクリプトです。
Cazadora は、ユーザー自身の認証情報を使用し、Graph API を呼び出してテナントのエンタープライズアプリケーションとアプリケーション登録に関するデータを取得し、その結果に対してハンティングロジックを実行します。これにより、テナント内の「決定的証拠」となるアプリを即座に特定できます。
Cazadora はすべての悪意のあるアプリを100%検出できるわけではありませんが、Azure 管理者がアプリを監査し、目立つ異常を特定するための優れた出発点となります。統計的に見て、あなたのテナントもこれらのアプリのいずれかに感染している可能性が高いため、ぜひこのスクリプトを試してみてください。