Microsoft SharePoint(Office 365)ログを収集する
このドキュメントでは、Bindplane を使用して Microsoft SharePoint(Office 365)のログを Google Security Operations に収集する方法について説明します。
Microsoft SharePoint は Microsoft 361 と統合されたウェブベースの共同編集プラットフォームです。SharePoint 監査ログには、ファイル操作、フォルダ アクティビティ、共有操作、リスト操作、サイト管理アクションなどのユーザー アクティビティが記録されます。これらのログには、Microsoft Defender for Cloud Apps SIEM エージェントを介してアクセスします。このエージェントは、SharePoint Online と OneDrive for Business から監査データを取得し、syslog としてローカル レシーバにストリーミングします。
始める前に
次の前提条件を満たしていることを確認してください。
- Google SecOps インスタンス
- Windows Server 2016 以降、または
systemdを使用する Linux ホスト - プロキシの背後で実行している場合は、ファイアウォール ポートが開いていることを確認する
- SharePoint Online を含む Microsoft 365 テナント
- Microsoft Defender for Cloud Apps ライセンス(Microsoft 365 E5 に含まれているか、アドオンとして提供)
- Microsoft Defender ポータルのグローバル管理者またはセキュリティ管理者ロール
- SIEM エージェントを実行するための Java 8 以降を搭載した Windows または Linux サーバー(Bindplane と同じホストにすることも可能)
- Microsoft 365 で統合監査ロギングが有効になっている
統合監査ロギングを有効にする
Microsoft Defender for Cloud Apps が SharePoint 監査データをキャプチャするには、Microsoft 365 テナントで統合監査ロギングが有効になっている必要があります。
- Microsoft Purview コンプライアンス ポータルにログインします。
- [監査] に移動します。
- プロンプトが表示されたら、[ユーザーと管理者のアクティビティの記録を開始] をクリックします。 注: 統合監査ロギングを有効にしてからコンテンツが利用可能になるまでに、最大で 12 時間かかることがあります。
または、PowerShell を使用して統合監査ロギングを有効にすることもできます。
Connect-ExchangeOnline Set-AdminAuditLogConfig -UnifiedAuditLogIngestionEnabled $true
Google SecOps の取り込み認証ファイルを取得する
- Google SecOps コンソールにログインします。
- [SIEM 設定] > [コレクション エージェント] に移動します。
取り込み認証ファイル をダウンロードします。Bindplane をインストールするシステムにファイルを安全に保存します。
Google SecOps のお客様 ID を取得する
- Google SecOps コンソールにログインします。
- [SIEM 設定] > [プロファイル] に移動します。
[組織の詳細情報] セクションから [お客様 ID] をコピーして保存します。
Bindplane エージェントをインストールする
次の手順に沿って、Windows または Linux オペレーティング システムに Bindplane エージェントをインストールします。
Windows のインストール
- 管理者としてコマンド プロンプトまたは PowerShell を開きます。
次のコマンドを実行します。
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quietインストールが完了するまで待ちます。
次のコマンドを実行して、インストールの内容を確認します。
sc query observiq-otel-collectorサービスは RUNNING と表示されます。
Linux のインストール
- root 権限または sudo 権限でターミナルを開きます。
次のコマンドを実行します。
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.shインストールが完了するまで待ちます。
次のコマンドを実行して、インストールの内容を確認します。
sudo systemctl status observiq-otel-collectorサービスが [アクティブ(実行中)] と表示されます。
その他のインストール リソース
その他のインストール オプションとトラブルシューティングについては、Bindplane エージェントのインストール ガイドをご覧ください。
Syslog を取り込んで Google SecOps に送信するように Bindplane エージェントを構成する
構成ファイルを探す
Linux:
sudo nano /etc/bindplane-agent/config.yamlWindows:
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
構成ファイルを編集します。
config.yamlの内容全体を次の構成に置き換えます。receivers: udplog: listen_address: "0.0.0.0:514" exporters: chronicle/sharepoint: compression: gzip creds_file_path: '/etc/bindplane-agent/ingestion-auth.json' customer_id: '<CUSTOMER_ID>' endpoint: malachiteingestion-pa.googleapis.com log_type: SHAREPOINT raw_log_field: body service: pipelines: logs/sharepoint_to_chronicle: receivers: - udplog exporters: - chronicle/sharepoint
構成パラメータ
各プレースホルダを次のように置き換えます。
エクスポータの構成:
<CUSTOMER_ID>: 前の手順でコピーした Google SecOps のお客様 ID- creds_file_path: 取り込み認証ファイルのフルパス:
- Linux:
/etc/bindplane-agent/ingestion-auth.json - Windows:
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Linux:
- エンドポイント: リージョン エンドポイント URL:
- 米国:
malachiteingestion-pa.googleapis.com - ヨーロッパ:
europe-malachiteingestion-pa.googleapis.com - アジア:
asia-southeast1-malachiteingestion-pa.googleapis.com - 完全なリストについては、リージョン エンドポイントをご覧ください。
- 米国:
構成ファイルを保存する
- 編集後、ファイルを保存します。
- Linux:
Ctrl+O、Enter、Ctrl+Xの順に押します。 - Windows: [ファイル> 保存] をクリックします。
- Linux:
Bindplane エージェントを再起動して変更を適用する
Linux で Bindplane エージェントを再起動するには:
次のコマンドを実行します。
sudo systemctl restart observiq-otel-collectorサービスが実行されていることを確認します。
sudo systemctl status observiq-otel-collectorログでエラーを確認します。
sudo journalctl -u observiq-otel-collector -f
Windows で Bindplane エージェントを再起動するには:
次のいずれかのオプションを選択します。
- 管理者としてコマンド プロンプトまたは PowerShell を開きます。
net stop observiq-otel-collector && net start observiq-otel-collector- サービス コンソール:
Win+Rキーを押して「services.msc」と入力し、Enter キーを押します。- observIQ OpenTelemetry Collector を見つけます。
- 右クリックして [再起動] を選択します。
サービスが実行されていることを確認します。
sc query observiq-otel-collectorログでエラーを確認します。
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
SharePoint ログを転送するように Microsoft Defender for Cloud Apps SIEM エージェントを構成する
Microsoft SharePoint Online はクラウド サービスであり、syslog 転送機能が組み込まれていません。syslog 経由で SharePoint 監査ログを転送するには、Microsoft Defender for Cloud Apps SIEM エージェントを使用します。このエージェントは、Defender for Cloud Apps からアラートとアクティビティを取得し、syslog メッセージ(CEF 形式)として Bindplane エージェントにストリーミングします。
SIEM エージェントの前提条件
次の条件を満たす Windows または Linux サーバー(仮想マシンでも可)。
- Java 8 以降がインストールされている
- Transport Layer Security(TLS)1.2 以降
- CPU: 2 コア
- ディスク容量: 20 GB
- RAM: 2 GB
ステップ 1: Microsoft Defender ポータルで SIEM エージェントを構成する
- Microsoft Defender ポータルにログインします。
- [設定] を選択します。
- [クラウドアプリ] を選択します。
- [システム] で [SIEM エージェント] を選択します。
- [SIEM エージェントを追加] をクリックし、[汎用 SIEM] を選択します。
- [ウィザードを開始] をクリックします。
- 次の構成情報を指定します。
- 名前: わかりやすい名前を入力します(例:
Chronicle-Bindplane-SharePoint)。 - SIEM 形式を選択する: [CEF] を選択します。
- 名前: わかりやすい名前を入力します(例:
- [次へ] をクリックします。
- 次の syslog 接続の詳細を指定します。
- リモート syslog ホスト: Bindplane エージェント ホストの IP アドレスまたはホスト名(例:
192.168.1.100)を入力します。 - Syslog ポート番号:
514(または Bindplane エージェントconfig.yamlで構成されたポート)を入力します。 - リモート Syslog プロトコル: [UDP] を選択します(Bindplane エージェント構成のレシーバー タイプと一致している必要があります)。
- リモート syslog ホスト: Bindplane エージェント ホストの IP アドレスまたはホスト名(例:
- [次へ] をクリックします。
- エクスポートするデータ型を構成します。
- [アクティビティ] のスライダーを有効にします。
- [アクティビティ] の [適用対象] プルダウンで、SharePoint アクティビティを含めるようにフィルタを設定します。
- [アプリが次の値と等しい] を選択し、[Microsoft SharePoint Online] と [Microsoft OneDrive for Business] を選択します。
- SharePoint に関連するポリシー アラートも受け取る場合は、[アラート] のスライダーを有効にします。
- [結果を編集してプレビュー] をクリックして、フィルタが想定どおりのアクティビティと一致していることを確認します。
- [次へ] をクリックします。
- 概要ページに表示されたトークンをコピーして、安全に保存します。
[完了] をクリックします。
ステップ 2: SIEM エージェント JAR ファイルをダウンロードして実行する
- Microsoft ダウンロード センターから SIEM エージェントをダウンロードします。
- ダウンロードした ZIP ファイルを、SIEM エージェントが実行されるサーバーで解凍します。
次のコマンドを使用して SIEM エージェントを実行します。
java -jar mcas-siemagent-0.87.20-signed.jar --token <TOKEN>
<TOKEN> は、Microsoft Defender ポータルからコピーしたトークンに置き換えます。
ステップ 3: サービスとして実行するように SIEM エージェントを構成する
ログ転送を継続的に行うには、自動的に開始するように SIEM エージェントを構成します。
Linux:
実行コマンドを
/etc/rc.localに追加するか、systemd サービスを作成します。java -jar /opt/mcas-siemagent/mcas-siemagent-0.87.20-signed.jar --token <TOKEN> &
Windows:
- スケジュール設定されたタスクを構成します。
- [タスク スケジューラ] を開きます。
- [ユーザーがログオンしているかどうかにかかわらず実行する] を指定して新しいタスクを作成します。
- トークン パラメータを使用して JAR ファイルを実行するようにアクションを設定します。
- [実行時間が次の時間を超えたらタスクを停止する] のチェックを外します。
ステップ 4: SIEM エージェントの接続を確認する
- Microsoft Defender ポータルで、[設定] > [クラウド アプリ] > [SIEM エージェント] に移動します。
- SIEM エージェントのステータスが [Connected](緑色)になっていることを確認します。
Bindplane エージェント ホストで、syslog メッセージが受信されていることを確認します。
sudo journalctl -u observiq-otel-collector -fGoogle SecOps で
metadata.log_type = "SHAREPOINT"を使用してログを検索し、ログの取り込みを確認します。
UDM マッピング テーブル
| ログフィールド | UDM マッピング | ロジック |
|---|---|---|
| 発生 | metadata.event_timestamp | 「MM/dd/yyyy HH:mm:ss A」、「MM/dd/yyyy HH:mm:ss a」、「M/d/yyyy HH:mm:ss A」の形式で日付フィルタを使用して解析されます。 |
| has_principal | metadata.event_type | has_principal と(has_target_resource または has_target)の場合は「USER_RESOURCE_ACCESS」、has_principal の場合は「STATUS_UPDATE」、それ以外の場合は「GENERIC_EVENT」に設定します。 |
| has_target_resource | metadata.event_type | |
| has_target | metadata.event_type | |
| metadata.product_name | metadata.product_name | 「SHAREPOINT」に設定します。 |
| EventData | metadata.product_version | 値を直接コピー |
| metadata.vendor_name | metadata.vendor_name | 「SHAREPOINT」に設定します。 |
| 作成済み | principal.asset.attribute.labels | Created のキー「Created」と LastModified のキー「Last Modified」を持つラベルを統合 |
| LastModified | principal.asset.attribute.labels | |
| SamAccountName | principal.asset.hostname | 値を直接コピー |
| SamAccountName | principal.hostname | 値を直接コピー |
| データベース | principal.process.file.names | データベースから統合されました |
| UserEmail | principal.user.email_addresses | メールアドレスの正規表現に一致する場合、UserEmail から統合 |
| ユーザー名 | principal.user.user_display_name | 値を直接コピー |
| EventType | security_result.description | 値を直接コピー |
| ディレクトリ | target.file.full_path | 値を直接コピー |
| 葉 | target.file.names | Leaf から統合 |
| ItemType | target.resource.type | 値を直接コピー |
| SecUserURL | target.url | 値を直接コピー |
| SecUserRole | target.user.attribute.roles | SecUserRole から名前を取得してロールを統合しました |
| SecUserEmail | target.user.email_addresses | メールアドレスの正規表現と一致する場合、SecUserEmail から統合 |
| SecGroupName | target.user.group_identifiers | SecGroupName から統合 |
| SecUserName | target.user.user_display_name | 値を直接コピー |
| SecSamAccountName | target.user.userid | 値を直接コピー |
変更履歴
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。