Symantec CloudSOC CASB ログを収集する
このドキュメントでは、Bindplane を使用して Symantec CloudSOC ログを Google Security Operations に取り込む方法について説明します。パーサーは、syslog または JSON 形式のメッセージからログを抽出します。メッセージ フィールドの解析、必要に応じたメッセージの JSON への変換、フィールドの抽出、統合データモデル(UDM)へのマッピング、タイムスタンプやセキュリティ結果の詳細などの追加コンテキストによるイベントの拡充など、いくつかの重要なオペレーションを実行します。また、パーサーはさまざまなログ形式を処理し、activity_type
フィールドに基づいて特定のアクションを実行して、イベントを正しく分類します。
始める前に
次の前提条件を満たしていることを確認してください。
- Google SecOps インスタンス
- Windows 2016 以降、または
systemd
を使用する Linux ホスト - プロキシの背後で実行されている場合、ファイアウォール ポートが開いている
- Symantec CloudSOC への特権アクセス
Google SecOps の取り込み認証ファイルを取得する
- Google SecOps コンソールにログインします。
- [SIEM 設定] > [コレクション エージェント] に移動します。
- Ingestion Authentication File をダウンロードします。Bindplane をインストールするシステムにファイルを安全に保存します。
Google SecOps のお客様 ID を取得する
- Google SecOps コンソールにログインします。
- [SIEM 設定] > [プロファイル] に移動します。
- [組織の詳細情報] セクションから [お客様 ID] をコピーして保存します。
Bindplane エージェントをインストールする
Windows のインストール
- 管理者として コマンド プロンプトまたは PowerShell を開きます。
次のコマンドを実行します。
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Linux のインストール
- root 権限または sudo 権限でターミナルを開きます。
次のコマンドを実行します。
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
その他のインストール リソース
その他のインストール オプションについては、インストール ガイドをご覧ください。
Syslog を取り込んで Google SecOps に送信するように Bindplane エージェントを構成する
- 構成ファイルにアクセスします。
config.yaml
ファイルを見つけます。通常、Linux では/etc/bindplane-agent/
ディレクトリに、Windows ではインストール ディレクトリにあります。- テキスト エディタ(
nano
、vi
、メモ帳など)を使用してファイルを開きます。
config.yaml
ファイルを次のように編集します。receivers: udplog: # Replace the port and IP address as required listen_address: "0.0.0.0:514" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the path to the credentials file you downloaded in Step 1 creds: '/path/to/ingestion-authentication-file.json' # Replace with your actual customer ID from Step 2 customer_id: <customer_id> endpoint: malachiteingestion-pa.googleapis.com # Add optional ingestion labels for better organization ingestion_labels: log_type: 'SYMANTEC_CASB' raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog exporters: - chronicle/chronicle_w_labels
自社のインフラストラクチャでの必要性に応じて、ポートと IP アドレスを置き換えます。
<customer_id>
は、実際の顧客 ID に置き換えます。/path/to/ingestion-authentication-file.json
の値を、Google SecOps の取り込み認証ファイルを取得するで認証ファイルを保存したパスに更新します。
Bindplane エージェントを再起動して変更を適用する
Linux で Bindplane エージェントを再起動するには、次のコマンドを実行します。
sudo systemctl restart bindplane-agent
Windows で Bindplane エージェントを再起動するには、Services コンソールを使用するか、次のコマンドを入力します。
net stop BindPlaneAgent && net start BindPlaneAgent
Symantec CASB で Syslog を構成する
- Symantec CloudSOC ホストにログインします。
次のコマンドを実行して、システムが使用しているロガーを特定します。
ls –d /etc/*syslog*
前のコマンドのレスポンスに応じて、対応するセクションに移動します。
- syslog.conf: レガシー Syslog。
- syslog-ng.conf: Syslog-ng。
以前の Syslog 構成
通常、
/etc/default
ディレクトリにあるsyslogd
ファイルをvi
エディタで開きます。vi /etc/default/syslogd
SYSLOGD
値に-r
フラグが含まれていることを確認します。SYSLOGD="-r"
ファイルを保存してエディタを終了します。
- Esc キーを押して、コマンドモードに切り替えます。
:
(コロン)を押してプロンプト バーを開きます。- コロンの後に「
wq
」と入力し、Enter キーを押します。
通常、
/etc
ディレクトリにあるservices
ファイルをvi
エディタで開きます。vi /etc/services
syslog サービスのポート値を編集します。
syslog 514/udp
ファイルを保存してエディタを終了します。
- Esc キーを押して、コマンドモードに切り替えます。
:
(コロン)を押してプロンプト バーを開きます。- コロンの後に「
wq
」と入力し、Enter キーを押します。
通常、
/etc
ディレクトリにあるsyslog.conf
ファイルをvi
エディタで開きます。vi /etc/syslog.conf
すべてのログを Google SecOps に転送するように構成を更新します。
*.* @bindplane_agent_host
ファイルを保存してエディタを終了します。
- Esc キーを押して、コマンドモードに切り替えます。
:
(コロン)を押してプロンプト バーを開きます。- コロンの後に「
wq
」と入力し、Enter キーを押します。
通常、
/etc
ディレクトリにあるhosts
ファイルをvi
エディタで開きます。vi /etc/hosts
bindplane_agent_host
のローカル DNS エントリを作成します。0.0.0.0 bindplane_agent_host
ファイルを保存してエディタを終了します。
- Esc キーを押して、コマンドモードに切り替えます。
:
(コロン)を押してプロンプト バーを開きます。- コロンの後に「
wq
」と入力し、Enter キーを押します。
syslog デーモン サービスを再起動します。
Syslog-ng の構成
通常、
/etc
ディレクトリにあるsyslog-ng.conf
ファイルをvi
エディタで開きます。vi /etc/syslog-ng.conf
ファイルの末尾に次のコードを追加します。
destination d____ { udp("bindplane_agent_host" port(514));}; log {source(s_src); destination(d____);};
通常、
/etc
ディレクトリにあるhosts
ファイルをvi
エディタで開きます。vi /etc/hosts
bindplane_agent_host
のローカル DNS エントリを作成します。0.0.0.0 bindplane_agent_host
ファイルを保存してエディタを終了します。
- Esc キーを押して、コマンドモードに切り替えます。
:
(コロン)を押してプロンプト バーを開きます。- コロンの後に「
wq
」と入力し、Enter キーを押します。
syslog-ng デーモン サービスを再起動します。
UDM マッピング テーブル
ログフィールド | UDM マッピング | ロジック |
---|---|---|
_domain |
target.hostname |
_domain フィールドの値 |
_domain |
target.asset.hostname |
_domain フィールドの値 |
_id |
metadata.product_log_id |
_id フィールドの値 |
actions_taken |
security_result.detection_fields[].value |
actions_taken フィールドの値。キーは Action_ + インデックスとして動的に生成されます。 |
activity_type |
metadata.product_event_type |
product_data.activity_type が空の場合は activity_type フィールドの値、空でない場合は product_data.activity_type の値。 |
collector_device_ip |
principal.ip |
collector_device_ip フィールドの値(Unknown IP 以外の場合)。 |
collector_device_ip |
principal.asset.ip |
collector_device_ip フィールドの値(Unknown IP 以外の場合)。 |
collector_device_name |
principal.hostname |
collector_device_name フィールドの値。 |
collector_device_name |
principal.asset.hostname |
collector_device_name フィールドの値。 |
content_checks.dlp.raw_response.contentdetails[].contentBlockId |
security_result.detection_fields[].value |
content_checks.dlp.raw_response.contentdetails[].contentBlockId の値。キーは contentBlockId_ + インデックスとして動的に生成されます。 |
content_checks.dlp.raw_response.contentdetails[].topLevelFileType |
security_result.detection_fields[].value |
content_checks.dlp.raw_response.contentdetails[].topLevelFileType の値。キーは topLevelFileType_ + インデックスとして動的に生成されます。 |
content_checks.dlp.raw_response.requestid |
security_result.detection_fields[].value |
content_checks.dlp.raw_response.requestid の値。キーは Request ID です。 |
content_checks.dlp.raw_response.responseaction |
security_result.detection_fields[].value |
content_checks.dlp.raw_response.responseaction の値。キーは Response Action です。 |
content_checks.dlp.raw_response.violation[].name |
security_result.detection_fields[].value |
content_checks.dlp.raw_response.violation[].name の値。キーは Violation_Policy_Name_ + インデックスとして動的に生成されます。 |
content_checks.dlp.raw_response.violation[].policyId |
security_result.detection_fields[].value |
content_checks.dlp.raw_response.violation[].policyId の値。キーは Violation_Policy_ID_ + インデックスとして動的に生成されます。 |
content_checks.dlp.updated_timestamp |
additional.fields[].value.string_value |
content_checks.dlp.updated_timestamp の値。キーは Updated TimeStamp です。 |
content_checks.filename |
target.file.full_path |
content_checks.filename の値。 |
content_checks.mimetype |
target.file.mime_type |
content_checks.mimetype の値。 |
content_checks.risktype_list[] |
security_result.detection_fields[].value |
content_checks.risktype_list[] の値。キーは RiskType_ + インデックスとして動的に生成されます。 |
content_checks.vba_macros.expressions[].values[].key |
security_result.detection_fields[].key |
content_checks.vba_macros.expressions[].values[].key の値とインデックスを連結した値。 |
content_checks.vba_macros.expressions[].values[].value |
security_result.detection_fields[].value |
content_checks.vba_macros.expressions[].values[].value の値。 |
content_checks.vk_content_iq_violations[] |
security_result.detection_fields[].value |
content_checks.vk_content_iq_violations[] の値。キーは content_violation_ + インデックスとして動的に生成されます。 |
content_checks.vk_dlp_policy_violations[] |
security_result.detection_fields[].value |
content_checks.vk_dlp_policy_violations[] の値。キーは dlp_policy_violation_ + インデックスとして動的に生成されます。 |
content_checks.vk_encryption |
security_result.detection_fields[].value |
content_checks.vk_encryption の値。キーは vk_encryption です。 |
content_checks.vk_glba |
security_result.detection_fields[].value |
content_checks.vk_glba の値。キーは vk_glba です。 |
content_checks.vk_hipaa |
security_result.detection_fields[].value |
content_checks.vk_hipaa の値。キーは vk_hipaa です。 |
content_checks.vk_pci |
security_result.detection_fields[].value |
content_checks.vk_pci の値。キーは vk_pci です。 |
content_checks.vk_pii |
security_result.detection_fields[].value |
content_checks.vk_pii の値。キーは vk_pii です。 |
content_checks.vk_source_code |
security_result.detection_fields[].value |
content_checks.vk_source_code の値。キーは vk_source_code です。 |
content_checks.vk_vba_macros |
security_result.detection_fields[].value |
content_checks.vk_vba_macros の値。キーは vk_vba_macros です。 |
content_checks.vk_virus |
security_result.detection_fields[].value |
content_checks.vk_virus の値。キーは vk_virus です。 |
content_checks.violations |
security_result.detection_fields[].value |
content_checks.violations の値。キーは violations です。 |
created_timestamp |
additional.fields[].value.string_value |
created_timestamp の値。キーは Created TimeStamp です。 |
date |
metadata.event_timestamp.seconds |
date フィールドから抽出されたエポック秒。 |
device_ip |
target.ip |
device_ip フィールドの値(Unknown IP 以外の場合)。 |
device_ip |
target.asset.ip |
device_ip フィールドの値(Unknown IP 以外の場合)。 |
file_size |
target.file.size |
file_size の値。file_size が空の場合は product_data.file_size の値。符号なし整数に変換されます。 |
file_url |
target.file.full_path |
product_data.file_url の値。 |
group_name |
target.group.group_display_name |
group_name フィールドから抽出された表示名。 |
hosts[] |
principal.ip |
hosts フィールドの値をカンマで区切ったもの。 |
inserted_timestamp |
additional.fields[].value.string_value |
inserted_timestamp の値。キーは Inserted TimeStamp です。 |
instance |
principal.hostname |
instance フィールドが配列の場合は最初の値、文字列の場合は instance フィールドの値。 |
instance |
principal.asset.hostname |
instance フィールドが配列の場合は最初の値、文字列の場合は instance フィールドの値。 |
ioi_code |
security_result.summary |
ioi_code フィールドの値。 |
_latency |
security_result.detection_fields[].value |
_latency フィールドの値。キーは Latency です。 |
locations |
security_result.detection_fields[].value |
locations フィールドの値。キーは Locations です。 |
log_name |
intermediary.asset.asset_id |
log_name フィールドから抽出されたログ ID。logid: の接頭辞が付いています。 |
mailbox_owner |
target.user.userid |
product_data.mailbox owner の値。 |
metadata.log_type |
metadata.log_type |
SYMANTEC_CASB にハードコードされています。 |
metadata.product_name |
metadata.product_name |
SYMANTEC_CASB にハードコードされています。 |
metadata.vendor_name |
metadata.vendor_name |
SYMANTEC にハードコードされています。 |
msg |
metadata.description |
msg フィールドの値。msg が存在しない場合は message フィールドの値。 |
name |
security_result.detection_fields[].value |
name フィールドの値。キーは Name です。 |
object_name |
security_result.detection_fields[].value |
object_name フィールドの値。キーは Object Name です。 |
object_type |
target.resource.name |
object_type フィールドの値。 |
org_unit |
security_result.detection_fields[].value |
org_unit フィールドの値。キーは org_unit ID です。 |
policy_action |
security_result.action_details |
policy_action フィールドの値。 |
policy_type |
security_result.detection_fields[].value |
policy_type フィールドの値。キーは policy_type です。 |
policy_violated |
security_result.detection_fields[].value |
policy_violated フィールドの値。キーは policy_violated です。 |
product_data._domain |
target.hostname |
product_data._domain の値。 |
product_data._domain |
target.asset.hostname |
product_data._domain の値。 |
product_data.activity_type |
metadata.product_event_type |
product_data.activity_type の値。 |
product_data.file url |
target.file.full_path |
product_data.file url の値。 |
product_data.file_size |
target.file.size |
product_data.file_size の値。 |
product_data.group |
target.group.group_display_name |
product_data.group の値。 |
product_data.location |
principal.location.country_or_region |
product_data.location の値。 |
product_data.logon error |
security_result.summary |
product_data.logon error の値。 |
product_data.mailbox owner |
target.user.userid |
product_data.mailbox owner の値。 |
product_data.name |
target.file.full_path |
product_data.name の値。 |
product_data.object_name |
target.file.full_path |
product_data.object_name の値。 |
product_data.originatingserver product_data.service |
target.application |
product_data.service の値。 |
product_data.site url |
target.url |
product_data.site url の値。 |
product_data.target |
target.user.userid |
product_data.target の値。 |
product_data.useragent |
network.http.user_agent |
product_data.useragent の値。 |
product_name |
intermediary.application |
product_name フィールドの値。 |
product_uid |
metadata.product_name |
product_uid フィールドの値。 |
responsible_logs |
additional.fields[].value.string_value |
responsible_logs フィールドの値。キーは responsible_logs です。 |
resource_id |
target.resource.product_object_id |
resource_id フィールドの値。 |
risks |
security_result.detection_fields[].value |
risks フィールドの値。キーは Risks です。 |
security_result.action |
security_result.action |
product_data.logon error から取得されます。product_data.logon error が BlockedByConditionalAccess の場合、BLOCK に設定します。 |
security_result.severity |
security_result.severity |
severity フィールドの大文字の値(サポートされている重大度レベルのいずれかである場合)。 |
security_result.severity_details |
security_result.severity_details |
サポートされている重大度レベルのいずれでもない場合の severity フィールドの値。 |
security_result.summary |
security_result.summary |
ioi_code フィールドの値。ioi_code が存在しない場合は product_data.logon error 。 |
service |
target.application |
product_data.service が空の場合の service フィールドの値。 |
site_url |
target.url |
product_data.site url の値。 |
source |
principal.resource.attribute.labels[].value |
source フィールドの値。キーは Source です。 |
sub_feature |
additional.fields[].value.string_value |
sub_feature フィールドの値。キーは Sub Feature です。 |
target.application |
target.application |
product_data.activity_type とプリンシパルとターゲットの存在に基づいて導出されます。 |
target.resource.name |
target.resource.name |
product_data.activity_type とプリンシパルとターゲットの存在に基づいて導出されます。 |
threat_score |
security_result.detection_fields[].value |
threat_score フィールドの値。キーは Threat Score です。 |
transaction_id |
security_result.detection_fields[].value |
transaction_id フィールドの値。キーは Transaction ID です。 |
updated_timestamp |
additional.fields[].value.string_value |
updated_timestamp の値。updated_timestamp が空の場合は content_checks.dlp.updated_timestamp の値。キーは Updated TimeStamp です。 |
user |
principal.user.userid |
user フィールドの値。 |
user_email |
target.user.userid |
user_email フィールドの値。 |
user_mail |
target.user.userid |
msg フィールドから抽出された user_mail フィールドの値。 |
user_name |
principal.user.user_display_name |
user_name フィールドの値。 |
user_uid |
principal.user.userid または target.user.userid |
user_uid フィールドの値。product_data.activity_type が InvalidLogin または Login でない場合は principal.user.userid にマッピングされ、それ以外の場合は target.user.userid にマッピングされます。 |
uuid |
intermediary.asset.product_object_id |
uuid フィールドの値。 |
version |
metadata.product_version |
version フィールドの値。 |
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。