近年のSalesforceにおけるデータ侵害のニュースに触れたことがあるなら、攻撃者が「接続アプリ」を悪用してサイバー防御をバイパスし、CRMデータを窃取している手口を目にしたことがあるはずです。さらに深刻なケースでは、Salesforceを足がかりにして、Microsoft 365、Okta、Workplaceといった他の社内システムへ標的を広げる事例も発生しています。
これらは決して、高度で複雑な技術を用いた攻撃ではありません。その実態は、OAuth設定のミス、不十分なアプリ承認プロセス、そして監視のギャップという、ごくありふれた不備を突かれた結果です。攻撃者はこれらの弱点を完全に理解した上で、ソーシャルエンジニアリングや、何よりも「ヒューマンエラー」を巧みに利用して侵入してきます。
本記事では、無駄な装飾を省き、OAuthの悪用を防ぐための具体的かつ実践的な対抗策をシンプルにリストアップします。
接続アプリとOAuth連携をソーシャルエンジニアリングから守る3つの鉄則
Salesforceのシステム管理者およびセキュリティチームが、今すぐ接続アプリを強固に保護するための具体的なステップは以下の通りです。
1. OAuthスコープを必要最小限に制限する
- 対策: アプリが本当に必要とするスコープのみを付与します(多くの場合、
apiスコアのみで十分)。 - 禁止事項: いかなる理由があっても、「フルアクセス」スコープの付与は絶対に避けてください。
- 運用の強化: 長期的なアクセス権の悪用を防ぐため、リフレッシュトークンのローテーションを実施するか、有効期限を設定します。
なぜ重要か: 万が一アプリが侵害された場合でも、付与されているスコープが小さければ小さいほど、被害の波及範囲を最小限に抑えることができるためです。
2. Salesforceにおける接続アプリの承認権限を制限する
- 許可されるユーザーを「管理者が承認したユーザーは事前に承認済み」に設定します。
- 管理者以外のプロファイルについては、「接続コード」によるインストールを無効にします。
- 信頼できるIP範囲へのアクセスのみを許可します。
- Salesforceガイド「APIアクセスの制御」をご確認ください。
なぜ重要か: 攻撃者が一般ユーザーを言葉巧みに騙し、悪意のあるOAuthアプリを勝手にインストール・連携させるリスクを根本から防ぐためです。
3. 接続アプリに対してMFAと高保証セッションを強制する
- 接続されたすべてのアプリへのアクセスに、多要素認証(MFA)を必須とします。
- 高保証セッションポリシーを適用し、MFAなしでのトークン発行をブロックします。
- Salesforceガイド「高保証セッション」をご覧ください。
なぜ重要か: 悪意のあるフィッシングによってIDやパスワードなどの資格情報が盗まれたとしても、MFAの検証プロセスを通過できなければ、攻撃者にトークンを発行させないようにできるためです。

4. 専用の統合用ユーザーアカウントを使用する
- 各外部アプリに、それぞれ独自のSalesforceユーザーアカウントを割り当てます。
- 権限セットを通じて、最小権限の原則を適用します。
- 統合ごとのアクティビティを監視し、インシデントへの対応を迅速化します。
なぜ重要か:ログが明確になり、権限の取り消しが容易になり、適用範囲を厳格に管理できるためです。
5. 不審なOAuthアクセスを監視し、取り消す
- 大量のデータエクスポート、API利用の異常な急増、または新たに接続されたアプリの認証に注意してください。
- 「設定」→「接続済みアプリのOAuth利用状況」から、不審なトークンを直ちに取り消してください。
なぜ重要か:リアルタイムの監視を行うことで、データが外部に流出する前に、進行中の不正利用を検知し、阻止することができます。
6. セッションおよびトークンの高度な制御
- シングルログアウト(SLO)を有効にすると、Salesforce からログアウトしたユーザーは、OAuth を通じて接続されているサードパーティ製アプリからも自動的にログアウトされます。
Salesforce ガイド:シングルログアウト - API アクセス制御を適用し、ユーザーが API 経由で認証できるアプリを制限します。
Salesforce ガイド:API アクセス制御 - リフレッシュトークンのローテーションを使用して、攻撃者が気付かれずに再利用可能な長期有効なトークンをブロックします。
Salesforceガイド:リフレッシュトークンのローテーション - モバイルアプリ、JavaScript、およびステートレスバックエンドでは、PKCE(Proof Key for Code Exchange)を使用して、トークンの傍受リスクを軽減します。
Salesforceガイド:PKCE
なぜ重要か:これらの対策により、攻撃対象領域が縮小され、影響範囲が狭まり、攻撃者が一度侵入した後もシステム内に潜伏し続けることがはるかに困難になります。
Salesforce 接続アプリのセキュリティ:結論
「悪意のある Data Loader」型の攻撃は、Salesforce のゼロデイ脆弱性に依存したものではありませんでした。これらは、設定ミスのある OAuth 設定、接続アプリの信頼方法、そして単なる人的ミスを悪用したものです。
基本対策が極めて重要です。スコープを最小限に抑え、アプリの承認権限を持つユーザーを制限し、多要素認証(MFA)を徹底し、OAuth のアクティビティを積極的に監視しましょう。この対策だけで、実環境で確認されている攻撃の大部分を阻止できます。
しかし、リスクを真に低減したいのであれば、「より高度な」対策が重要です。当社のベテラン Salesforce アーキテクトである Tapas Tripathi は、セッションタイムアウトの短縮、リフレッシュトークンのローテーション、API アクセス制御、および PKCE が、攻撃者が活動できる時間を短縮し、さらにはその機会を完全に封じ込めることの重要性を強調しています。
接続されたアプリのセキュリティ確保は、攻撃者がたった1回のクリックやコード入力だけでAPIへの完全なアクセス権を獲得し、データ窃取や不正行為への道を開く機会を減らすことを目的としています。
結局のところ、より厳格な制御こそが侵害を防ぐのです。
