本文の内容は、2025年1月16日に Nigel Douglas が投稿したブログ(https://sysdig.com/blog/falco-for-box/)を元に日本語に翻訳・再構成した内容となっております。
Box, Inc. は、企業向けのクラウドベースのコンテンツ管理、コラボレーション、ファイル共有ツールの開発とマーケティングを専門としています。Box のサービスはクラス最高であると広く認識されていますが、クラウドベースの SaaS ツールが多数存在する中で、 Box、Salesforce、GitLabなどのプラットフォームのセキュリティポスチャーは見落とされがちです。Falcoによる SaaS の保護シリーズの一環として、Falco のBox プラグインを取り上げたいと思います。
Boxプラグインの機能
Box 用の Falco プラグインは、 Box からエンタープライズ イベントを取り込み、Falco のフィールドとしてアクセスできるようにします。これらのフィールドを使用して、Falco ルールを作成し、Box 内の脅威をリアルタイムで検知し、構成された通知チャネルを通じてアラートをトリガーできます。Box イベントを Falco に取り込むことがなぜ重要なのでしょうか。Falco は複数のクラウド プラットフォームで同時に脅威を検出できるため、さまざまなソースからのセキュリティ イベントをリアルタイムで相関させ、アクティブなラテラルムーブメントを発生時において効果的に特定できます。
Box イベントを Falco と統合する理由は?
Boxが提供するEnterprise Eventsは、エンタープライズBoxインスタンス内のユーザーおよびコンテンツの活動を包括的に把握できるフィードを管理者に提供します。stream_typeに応じて、アプリケーションはライブイベントにサブスクライブするか、過去のイベントをクエリすることができます。これらのストリームへのアクセスは管理者権限を持つユーザーに限定されており、新しいレポートの作成や既存のレポートの閲覧が可能です。
Falco が 2-Legged oAuth 経由で Box と通信できるようにするには、アカウントの開発者コンソールでカスタム アプリを作成する必要があります。Box 開発者コンソール内でアプリを作成するプロセス全体は、 Box プラグイン Github リポジトリに記載されています。
Falco の IP 位置情報強化
GitLab用Falcoプラグインと同様に、このBoxプラグインを使用することで、MaxMindのGeoLiteまたはGeoIP2データベースを使用してIPアドレスに地理情報を付加することができます。GeoLite2データベースやWebサービスへのアクセスをこちらから登録できます。登録後、MaxMind City Databaseを.mmdb形式でダウンロードし、Falcoがアクセス可能なファイルシステム上の任意の場所に保存してください。プラグインがデータベースを使用できるようにするためには、falco.yamlファイルのmaxmindcitydbpathオプションを設定します。プラグインのビルド手順についてはこちらをご参照ください
ルールの作成
いつものように、FalcoのルールはYAML形式で記述されます。このプラグインには、多くのデフォルトFalcoルールが含まれており、rules/box.yamlファイルに記載されています。これにより、さまざまな悪意のあるイベントを検出することができます。SaaSプラグインの一般的なユースケースとして、多要素認証 (MFA) の無効化やMFAトークンの失敗といったケースを監視することが求められます。
- rule: Box - Multifactor Authentication disabled
desc: Multifactor Authentication has been disabled for a device.
condition: box.eventtype=MULTI_FACTOR_AUTH_DISABLE
output: >
Box Plugin: MULTIFACTOR AUTHENTICATION has been DISABLED! for user: %box.userlogin
(uid: %box.userid name: %box.username) by user: %box.created_by_login (uid:
%box.created_by_id name: %box.created_by_name). Details: (IP=%box.ipaddress,
city=%box.city, country=%box.country, Box Event Id=%box.eventid)
priority: WARNING
source: box
tags: [box, Defense_Evasion, T1556.006, Persistence]
Box は、コンテンツワークフローにインテリジェントでシームレスな保護を提供するBox Shieldという組み込みのセキュリティソリューションを提供しています。Box Shield には、コンテンツ関連のリスクを軽減するための高度な多層脅威検出機能が組み込まれています。ディープラーニングを活用したマルウェア検出機能により、データ侵害につながる前にマルウェアを特定して拡散を防止します。Box Shield は、アップロード、共有、プレビュー、編集、ダウンロードなどのさまざまなアクション中にコンテンツをアクティブにスキャンし、ランサムウェアなどの高度な脅威に対する包括的な保護を提供します。
Falco プラグインは Box Shield からのすべての監査アクティビティを利用し、管理者が SaaS 固有の指標に基づいて高度な持続的脅威 ( APT ) を検知できるようにします。ここで確認する必要がある唯一の条件は、“SHIELD_
“で始まるイベントです。Box Shield が面倒な作業をすべて実行します。
- rule: Box - Shield Alert
desc: Box issued a shield alert!!
condition: box.eventtype startswith "SHIELD_"
output: >
Box Plugin: Box issued a Shield Alert!! - User: %box.created_by_login, IP Address:
%box.ipaddress, Event ID: %box.eventid - Additional Details: %box.shieldalert
priority: WARNING
source: box
tags: [box, Mitre_Attack, APT, Shield]
API ポーリング頻度と API レート制限
このプラグインはBox Admin Event Streaming APIと連携し、BoxイベントフィールドをFalcoプラグインフィールドにマッピングして評価およびアラートを行います。プラグインは、admin_logs_streamingログストリームタイプを使用して、起動時点以降のイベントを収集しますが、このストリームに保存されている過去2週間分の履歴イベントは処理しません。
デフォルトでは、プラグインはAPIを300秒ごとにポーリングします。この間隔は、falco.yamlファイル内のPollIntervalSecs設定を変更することで調整可能です。ただし、ポーリング間隔を変更するとコストに影響を及ぼす可能性があることに注意してください。Boxはサービス品質を維持し、システムの過負荷を防ぐために厳格なAPIレート制限を設けています。これらの制限は、ライセンスの種類や特定のAPIエンドポイントによって異なります。詳細については、Box APIのドキュメントをご参照ください。
まとめ
Falcoの幅広いオープンソースプラグインアーキテクチャーは、クラウドネイティブ時代とそれに伴う広大なSaaSサービスエコシステムの中で、脅威検知と対応の再考が必要であることを示しています。コード開発、コンテンツ管理、ファイル共有などを支援するために、組織内でますます多くのSaaSサービスが導入される中、これらすべてのサービスに伴う脅威への露出について現実的に考える必要があります。Falcoプラグインを活用すれば、クラウドホスティングされたSaaSサービスからストリーミング監査活動を統合検出および対応プラットフォームに接続するための独自のミドルウェアを構築でき、脅威軽減の向上に寄与します。