Symantec VIP Enterprise Gateway のログを収集する
このドキュメントでは、Bindplane を使用して Symantec VIP Enterprise Gateway ログを Google Security Operations に取り込む方法について説明します。パーサー コードは、まず入力ログ メッセージを JSON オブジェクトとして処理しようとします。この処理が失敗すると、syslog 形式と見なされ、正規表現(grok パターン)を使用して、タイムスタンプ、IP アドレス、ユーザー名、イベントの説明などの関連フィールドが抽出されます。最後に、抽出された情報を統合データモデル(UDM)フィールドにマッピングして、セキュリティ イベントの表現を標準化します。
始める前に
次の前提条件を満たしていることを確認します。
- Google SecOps インスタンス
- Windows 2016 以降、または systemd を使用する Linux ホスト
- プロキシの背後で実行されている場合、ファイアウォール ポートが開いている
- Symantec VIP Enterprise Gateway への特権アクセス
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_VIP' 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 VIP Enterprise Gateway で Syslog を構成する
- Symantec VIP Gateway ウェブ UI にログインします。
- [Logs] > [Syslog Configuration] に移動します。
- Syslog を初めて構成する場合は、Syslog 設定を構成するように求められます。[はい] をオンにします。
- Syslog をすでに構成している場合は、ページの下部にある [編集] をクリックします。
- 次の構成の詳細を指定します。
- Syslog Facility: [LOG_LOCAL0] を選択します。
- Syslog ホスト: Bindplane エージェントの IP アドレスを入力します。
- Syslog ポート: Bindplane エージェントのポート番号を入力します(例: UDP の場合は
514
)。
- [保存] をクリックします。
- [設定>コンソール設定] に移動します。
- 次の構成の詳細を指定します。
- ロギングレベル: [情報] を選択します。
- Enable Syslog: [Yes] を選択します。
- [送信] をクリックします。
- [Settings] > [Health Check Settings] に移動します。
- [はい] を選択して、ヘルスチェック サービスを有効にします。
- 次の構成の詳細を指定します。
- ロギングレベル: [情報] を選択します。
- Enable Syslog: [Yes] を選択します。
- [送信] をクリックします。
- [User Store] > [LDAP Directory Synchronization] に移動します。
- 次の構成の詳細を編集します。
- ログレベル: [情報] を選択します。
- Enable Syslog: [Yes] を選択します。
- [送信] をクリックします。
UDM マッピング テーブル
ログフィールド | UDM マッピング | ロジック |
---|---|---|
アプリケーション | read_only_udm.principal.application | 値は、json フィルタによって抽出された application フィールドから取得されます。 |
コマンド | read_only_udm.target.process.command_line | 値は、Grok パターンによって抽出された command フィールドから取得されます。 |
credentialType | このフィールドは UDM に直接マッピングされません。これは、read_only_udm.extensions.auth.mechanism の値の導出に使用されます。 | |
データ | このフィールドは UDM に直接マッピングされません。他のフィールドを抽出するために解析されます。 | |
data2 | このフィールドは UDM に直接マッピングされません。他のフィールドを抽出するために解析されます。 | |
datetime | read_only_udm.metadata.event_timestamp.seconds read_only_udm.metadata.event_timestamp.nanos |
datetime フィールドから抽出されたエポックからの秒数とナノ秒数。 |
降順 | read_only_udm.metadata.description | 値は、json フィルタによって抽出された desc フィールドから取得されます。 |
説明 | read_only_udm.security_result.description | 値は、json フィルタによって抽出された description フィールドから取得されます。 |
filename | read_only_udm.target.process.file.full_path | 値は、Grok パターンによって抽出された filename フィールドから取得されます。 |
hostname | read_only_udm.principal.hostname | 値は、json フィルタによって抽出された hostname フィールドから取得されます。 |
host_name | read_only_udm.intermediary.hostname | 値は、json フィルタによって抽出された host_name フィールドから取得されます。 |
log_level | このフィールドは UDM に直接マッピングされません。read_only_udm.security_result.severity の値の導出に使用されます。 | |
log_type | read_only_udm.metadata.product_event_type | 値は、json フィルタによって抽出された log_type フィールドから取得されます。 |
msg | このフィールドは UDM に直接マッピングされません。他のフィールドを抽出するために解析されます。 | |
オペレーション | read_only_udm.security_result.summary | 値は、Grok パターンによって抽出された operation フィールドから取得されます。 |
processid | read_only_udm.target.process.pid | 値は、Grok パターンによって抽出された processid フィールドから取得されます。 |
product | read_only_udm.metadata.product_name | 値は、json フィルタによって抽出された product フィールドから取得されます。 |
reason | read_only_udm.metadata.description | 値は、Grok パターンによって抽出された reason フィールドから取得されます。 |
request_id | read_only_udm.target.resource.id | 値は、Grok パターンによって抽出された request_id フィールドから取得されます。 |
src_ip | read_only_udm.principal.ip | 値は、Grok パターンによって抽出された src_ip フィールドから取得されます。 |
ステータス | read_only_udm.metadata.description | 値は、Grok パターンによって抽出された status フィールドから取得されます。 |
概要 | read_only_udm.security_result.summary | 値は、json フィルタによって抽出された summary フィールドから取得されます。 |
timestamp.nanos | read_only_udm.metadata.event_timestamp.nanos | 元のログのタイムスタンプのナノ秒。 |
timestamp.seconds | read_only_udm.metadata.event_timestamp.seconds | 元のログのタイムスタンプからの秒数。 |
時間 | このフィールドは UDM に直接マッピングされません。これは、read_only_udm.metadata.event_timestamp.seconds と read_only_udm.metadata.event_timestamp.nanos の値を導出するために使用されます。 | |
ユーザー | read_only_udm.target.user.userid | 値は、JSON フィルタまたは Grok パターンによって抽出された user フィールドから取得されます。 |
vendor | read_only_udm.metadata.vendor_name | 値は、json フィルタによって抽出された vendor フィールドから取得されます。 |
read_only_udm.extensions.auth.mechanism | credentialType フィールドによって決定されます。credentialType が SMS_OTP または STANDARD_OTP の場合、OTP が使用されます。credentialType が正規表現 PASSWORD と一致する場合、USERNAME_PASSWORD が使用されます。 |
|
read_only_udm.extensions.auth.type | reason フィールドが正規表現 LDAP と一致する場合、SSO が使用されます。それ以外の場合は、AUTHTYPE_UNSPECIFIED が使用されます。 |
|
read_only_udm.metadata.event_type | 特定のフィールドの有無によって決まります。user または processid が空でない場合、USER_LOGIN が使用されます。user が空で、src_ip が空でないか 0.0.0.0 の場合、STATUS_UPDATE が使用されます。それ以外の場合は、GENERIC_EVENT が使用されます。 |
|
read_only_udm.metadata.log_type | SYMANTEC_VIP にハードコードされています。 |
|
read_only_udm.security_result.action | status フィールドによって決定されます。status が Authentication Success 、GRANTED 、Authentication Completed 、After Services Authenticate call 、CHALLENGED のいずれかの場合、ALLOW が使用されます。status が DENIED 、Acces-Reject 、Unknown Error 、Service Unavailable 、FAILED のいずれかの場合、BLOCK が使用されます。status が PUSH request sent for user または Trying to fetch attribute の場合、QUARANTINE が使用されます。 |
|
read_only_udm.security_result.severity | log_level フィールドによって決定されます。log_level が DEBUG 、INFO 、AUDIT のいずれかの場合、INFORMATIONAL が使用されます。log_level が ERROR の場合、ERROR が使用されます。log_level が WARNING の場合、MEDIUM が使用されます。 |
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。