Linux 監査ログと AIX システムログを収集する

以下でサポートされています。

このパーサーは、SYSLOG 形式の Linux 監査ログを処理し、UDM に変換します。JSON 形式と書式なしテキストの両方のログメッセージを処理し、grok、XML 解析、JSON 解析の手法を使用してフィールドを抽出して、イベントタイプに基づいて適切な UDM フィールドにマッピングします。また、パーサーは AIX システムの特定の監査ログ形式を処理し、security_result や仲介者の詳細などの追加フィールドで UDM を拡充します。

始める前に

  • Google Security Operations インスタンスがあることを確認します。
  • Auditd ホストに対する root 権限があることを確認します。
  • Auditd ホストに rsyslog がインストールされていることを確認します。
  • Windows 2012 SP2 以降または systemd を使用する Linux ホストがあることを確認します。
  • プロキシの背後で実行している場合は、ファイアウォールのポートが開いていることを確認します。

Google SecOps の取り込み認証ファイルを取得する

  1. Google SecOps コンソールにログインします。
  2. [SIEM Settings] > [Collection Agents] に移動します。
  3. Ingestion Authentication File をダウンロードします。

Google SecOps のお客様 ID を取得する

  1. Google SecOps コンソールにログインします。
  2. [SIEM 設定] > [プロファイル] に移動します。
  3. [組織の詳細情報] セクションから [お客様 ID] をコピーして保存します。

Bindplane エージェントをインストールする

  1. Windows へのインストールの場合は、次のスクリプトを実行します。
    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
  2. Linux へのインストールの場合は、次のスクリプトを実行します。
    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
  3. その他のインストール オプションについては、インストール ガイドをご覧ください。

Syslog を取り込んで Google SecOps に送信するように Bindplane Agent を構成する

  1. Bindplane がインストールされているマシンにアクセスします。
  2. config.yaml ファイルを次のように編集します。

    receivers:
      tcplog:
        # Replace the below port <54525> and IP <0.0.0.0> with your specific values
        listen_address: "0.0.0.0:54525" 
    
    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            # Adjust the creds location below according the placement of the credentials file you downloaded
            creds: '{ json file for creds }'
            # Replace <customer_id> below with your actual ID that you copied
            customer_id: <customer_id>
            endpoint: malachiteingestion-pa.googleapis.com
            # You can apply ingestion labels below as preferred
            ingestion_labels:
            log_type: SYSLOG
            namespace: auditd
            raw_log_field: body
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - tcplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. 次のコマンドを使用して Bindplane Agent を再起動して、変更を適用します。 sudo systemctl bindplane restart

Auditd から Syslog をエクスポートする

  1. 監査ログをエクスポートするマシンにアクセスします。
  2. Auditd 構成ファイル(通常は /etc/audit/auditd.conf にあります)を開きます。

    sudo vi /etc/audit/auditd.conf
    
  3. 次の行を見つけるか追加して、auditd を構成します。

    active = yes
    output = syslog
    log_format = ENRICHED
    dispatcher = /sbin/audispd
    

省略可: Syslog Facility を指定します。auditd.conf に次の行を追加または変更します。

```none
syslog_facility = LOG_AUTHPRIV
```
  1. audispd 構成ファイル(通常は /etc/audisp/plugins.d/syslog.conf にあります)を開きます。

    sudo vi /etc/audisp/plugins.d/syslog.conf
    
  2. 次の行を見つけるか追加して、audispd を構成します。

    active = yes
    direction = out
    path = builtin_syslog
    type = builtin
    args = LOG_INFO
    format = string
    
  3. Auditd サービスを再起動して変更を適用します。

    sudo systemctl restart auditd
    
  4. tail などのツールを使用して syslog をモニタリングし、Auditd ログが送信されていることを確認します。

    tail -f /var/log/syslog | grep auditd # Follow syslog and filter for auditd messages (path may vary depending on your system)
    
  5. rsyslog.conf を編集するか、カスタム構成を作成します。

    sudo vi /etc/rsyslog.d/50-audit-forwarding.conf
    
  6. ログを転送するルールを追加します。

    • if $programname == 'auditd' then @@<Bindplane_Agent>:<Bindplane_Port>
    • UDP には @、TCP には @@ を使用します。
    • <BindPlane_Agent> は、サーバーの IP/ホスト名に置き換えます。
    • <BindPlane_Port> は、サーバーのポートに置き換えます。
  7. rsyslog サービスを再起動して変更を適用します。

    sudo systemctl restart rsyslog
    

UDM マッピング テーブル

ログフィールド UDM マッピング 備考
acct target.user.user_display_name 未加工ログの acct の値は、UDM の target.user.user_display_name フィールドにマッピングされます。これは、イベントに関連付けられているアカウントを表します。
addr principal.ip 未加工ログの addr の値は、UDM の principal.ip フィールドにマッピングされます。これは、イベントに関与したプリンシパルの IP アドレスを表します。
additional.fields additional.fields 解析された Key-Value ペアまたはラベルの追加フィールドは、UDM の additional.fields 配列に追加されます。
agent.googleapis.com/log_file_path (マッピングされていません) このラベルは一部のログに存在しますが、UDM の IDM オブジェクトにはマッピングされません。
algo (この例では使用されていません) このフィールドはパーサーと一部のロギングデータに存在しますが、提供されている例では使用されておらず、最終的な UDM には表示されません。
application principal.application ログタイプに応じて、未加工ログの terminal フィールドまたは exe などの他のフィールドから派生します。関連するアプリケーションを表します。
arch security_result.about.platform_version 未加工ログの arch フィールドのアーキテクチャは security_result.about.platform_version にマッピングされます。
auid about.user.useridsecurity_result.detection_fields.auid 監査ユーザー ID(auid)が about.user.userid にマッピングされ、security_result の検出フィールドとして追加されます。
cmd target.process.command_line 未加工ログの cmd フィールドのコマンドは target.process.command_line にマッピングされます。
collection_time (マッピングされていません) このフィールドはログ収集時間であり、UDM の IDM オブジェクトにはマッピングされません。
comm principal.application コマンド名(comm)は principal.application にマッピングされます。
COMMAND target.process.command_line
compute.googleapis.com/resource_name principal.hostname このラベルのリソース名は principal.hostname にマッピングされます。
create_time (マッピングされていません) このフィールドは、UDM の IDM オブジェクトにマッピングされません。
cwd security_result.detection_fields.cwd 現在の作業ディレクトリ(cwd)が security_result の検出フィールドとして追加されます。
data (処理済み) data フィールドにはメインのログメッセージが含まれ、パーサーによって処理されてさまざまなフィールドが抽出されます。単一の UDM フィールドに直接マッピングされません。
exe target.process.file.full_path 実行可能ファイルのパス(exe)が target.process.file.full_path にマッピングされます。
extensions.auth.type extensions.auth.type 認証タイプは、イベントタイプに基づいてパーサー ロジックによって設定されます。多くの場合、MACHINE または AUTHTYPE_UNSPECIFIED に設定されます。
fp network.tls.client.certificate.sha256 フィンガープリント(fp)が解析されて SHA256 ハッシュが抽出され、network.tls.client.certificate.sha256 にマッピングされます。
_Item_Id metadata.product_log_id
insertId (マッピングされていません) このフィールドは、UDM の IDM オブジェクトにマッピングされません。
jsonPayload.message (処理済み) このフィールドには、メインのログメッセージが JSON 形式で含まれ、パーサーによって処理されます。
key security_result.about.registry.registry_key キー フィールドは security_result.about.registry.registry_key にマッピングされます。
labels (処理済み) 未加工ログのラベルが処理され、さまざまな UDM フィールドにマッピングされるか、additional.fields に追加されます。
logName (マッピングされていません) このフィールドは、UDM の IDM オブジェクトにマッピングされません。
metadata.product_event_type SECCOMP 鍵交換曲線が未加工ログから抽出され、このフィールドにマッピングされます。
msg security_result.summary メッセージ(msg)は、security_result.summary フィールドへの入力によく使用されます。
network.application_protocol network.application_protocol イベントタイプ(SSH、HTTP)。
network.direction network.direction イベントタイプ(INBOUND、OUTBOUND)。
network.ip_protocol network.ip_protocol 通常は SSH イベントの TCP に、パーサー ロジックによって設定されます。
network.session_id network.session_id ses フィールドからマッピングされるか、他のフィールドから派生します。
network.tls.cipher network.tls.cipher 暗号情報は未加工ログから抽出され、このフィールドにマッピングされます。
network.tls.curve network.tls.curve 鍵交換曲線が未加工ログから抽出され、このフィールドにマッピングされます。
pid principal.process.pidtarget.process.pid プロセス ID(pid)は、コンテキストに応じて principal.process.pid または target.process.pid にマッピングされます。
ppid principal.process.parent_process.pidtarget.process.parent_process.pid 親プロセス ID(ppid)は、コンテキストに応じて principal.process.parent_process.pid または target.process.parent_process.pid にマッピングされます。
principal.asset.hostname principal.asset.hostname principal.hostname からコピーされます。
principal.asset.ip principal.asset.ip principal.ip からコピーされます。
principal.platform principal.platform オペレーティング システムに基づいてパーサー ロジックによって設定されます(Linux)。
principal.port principal.port プリンシパルに関連付けられているポート番号。
principal.user.group_identifiers principal.user.group_identifiers プリンシパル ユーザーに関連付けられたグループ ID。
process.name target.process.file.full_path
receiveTimestamp (マッピングされていません) このフィールドはログ受信タイムスタンプであり、UDM の IDM オブジェクトにマッピングされません。
res security_result.action_details 結果(res)は security_result.action_details にマッピングされます。
_Resource_Id target.resource.product_object_id
resource.labels (マッピングされていません) これらのラベルは一部のロギングデータに存在しますが、UDM 内の IDM オブジェクトにはマッピングされません。
resource.type (マッピングされていません) このフィールドは一部のロギングデータに存在しますが、UDM の IDM オブジェクトにはマッピングされません。
security_result.action security_result.action res フィールドに基づいてパーサー ロジックによって設定されます(例: ALLOW、BLOCK)。
security_result.detection_fields security_result.detection_fields 未加工ログのさまざまなフィールドが、コンテキストの Key-Value ペアとしてこの配列に追加されます。
security_result.rule_id security_result.rule_id パーサー ロジックによって設定されます。多くの場合、syscall イベントの type_name に設定されます。
security_result.severity security_result.severity 未加工ログの重大度レベルに基づいて、パーサー ロジックによって設定されます。
security_result.summary security_result.summary イベントの概要。多くの場合、msg フィールドまたは他の関連フィールドから取得されます。
ses network.session_id セッション ID(ses)は network.session_id にマッピングされます。
source (マッピングされていません) このフィールドにはログソースに関するメタデータが含まれますが、UDM の IDM オブジェクトにはマッピングされません。
subj (処理済み) サブジェクト フィールド(subj)が処理され、ユーザーとセキュリティのコンテキスト情報が抽出されます。
syscall security_result.about.labels.Syscall syscall 番号は security_result.about 内のラベルとして追加されます。
target.administrative_domain target.administrative_domain ターゲット ユーザーのドメイン。
target.group.group_display_name target.group.group_display_name ターゲット グループの名前。
target.ip target.ip ターゲットの IP アドレス。
target.port target.port ターゲットに関連付けられているポート番号。
target.process.command_line target.process.command_line ターゲット プロセスのコマンドライン。
target.resource.type target.resource.type パーサー ロジックによって設定されるターゲット リソースのタイプ(例: CREDENTIAL、SETTING)。
target.user.attribute.permissions target.user.attribute.permissions ターゲット ユーザーに関連する権限。
target.user.group_identifiers target.user.group_identifiers ターゲット ユーザーに関連付けられたグループ ID。
target.user.userid target.user.userid ターゲットのユーザー ID。
TenantId metadata.product_deployment_id
textPayload (処理済み) ログのテキスト ペイロード。パーサーによって処理され、さまざまなフィールドが抽出されます。
timestamp metadata.event_timestamp イベントのタイムスタンプ。
tty security_result.about.labels.tty tty は security_result.about 内のラベルとして追加されます。
type metadata.product_event_type イベントタイプ(type)は metadata.product_event_type にマッピングされます。
uid target.user.userid ユーザー ID(uid)は target.user.userid にマッピングされます。

UDM マッピング デルタ リファレンス

2025 年 9 月 23 日に、Google SecOps は Okta パーサーの新しいバージョンをリリースしました。このバージョンには、Okta ログフィールドから UDM フィールドへのマッピングの大きな変更と、イベントタイプのマッピングの変更が含まれています。

ログフィールド マッピングの差分

次の表に、2025 年 9 月 23 日より前とそれ以降に公開された Okta ログから UDM へのフィールドのマッピングの差分を示します(それぞれ [以前のマッピング] 列と [現在のマッピング] 列に記載されています)。

ログフィールド 以前のマッピング 現在のマッピング リファレンス ログのサンプル
1.1.1.1(IP アドレス) src.ip principal.ip 「<163>Apr 10 09:00:05 hostname.com sshd[3318513]: Accepted password for abc from 1.1.1.1 port 33988 ssh2」
1.1.1.1(IP アドレス) principal.ip target.ip "<29>Oct 5 08:37:16 abc ProxySG: E0000 アクセスログ HTTP(メイン): ポート 4433 でサーバー 1.1.1.1 に接続しています。(0) NORMAL_EVENT alog_stream_http.cpp 261"
abc(ユーザー) principal.user.userid target.user.userid "<85>Feb 27 08:26:55 offozcav login: FAILED LOGIN 1 FROM ::ffff:1.1.1.1 FOR abc, Authentication failure\r\n\r\n"
abc.abc(ユーザー) principal.user.userid target.user.userid "<86>Feb 27 08:29:19 offozcav login: LOGIN ON pts/43 BY abc.abc FROM\r\n\r\n::ffff:1.1.1.1"
COMMAND principal.process.command_line target.process.command_line "<85>Sep 24 14:33:59 abc sudo: abc : \r\nTTY=unknown ; PWD=/abc ; USER=abc ; COMMAND=/sbin/iptables -t nat -nL \r\n--line-number"
exe target.process.file.full_path principal.process.file.full_path
_ItemId additional.fields metadata.product_log_id
metadata.product_event_type PATH SECCOMP
process.name principal.process.file.full_path target.process.file.full_path
_ResourceId additional.fields target.resource.product_object_id
TenantId additional.fields metadata.product_deployment_id
uid principal.user.userid target.user.userid
USER principal.user.user_display_name target.user.userid "<85>Sep 24 14:33:59 abc sudo: abc : \r\nTTY=unknown ; PWD=/abc ; USER=abc ; COMMAND=/sbin/iptables -t nat -nL \r\n--line-number"
user principal.user.userid target.user.userid 「29>Jan 16 11:28:00 san-auth-1-irl2 tac_plus[17329]: login failure: user 1.1.1.1 (1.1.1.1) vty0」
user principal.user.userid target.user.userid 「<87>Jul 15 10:27:01 xpgjrconfdb01 crond[1045]: pam_unix(crond:account): expired password for user root (password aged)」

イベントタイプ マッピングの差分

以前は汎用イベントとして分類されていた複数のイベントが、意味のあるイベントタイプで適切に分類されるようになりました。

次の表に、2025 年 9 月 23 日より前と以降の Okta イベントタイプの処理の差分を示します(それぞれ [以前の event_type] 列と [現在のイベントタイプ] 列に記載)。

ログの eventType 以前の event_type 現在の event_type
aix_event_type=CRON_Start USER_LOGIN PROCESS_LAUNCH
CRYPTO_KEY_USER NETWORK_CONNECTION USER_LOGIN
FILE_Mknod USER_LOGIN FILE_CREATION
FILE_Rename USER_LOGIN FILE_MODIFICATION
FILE_Stat USER_LOGIN FILE_OPEN
FILE_Unlink USER_LOGIN FILE_DELETION
FS_Chabc USER_LOGIN PROCESS_UNCATEGORIZED
FS_Mkdir USER_LOGIN FILE_CREATION
FS_Rmdir USER_LOGIN FILE_DELETION
PROC_Execute USER_LOGIN PROCESS_LAUNCH
type=ANOM_ABEND STATUS_UPDATE PROCESS_TERMINATION
type=ANOM_PROMISCUOUS SETTING_MODIFICATION
type=CRED_REFR USER_LOGIN USER_CHANGE_PERMISSIONS
type=PROCTILE PROCESS_UNCATEGORIZED PROCESS_LAUNCH
type=SERVICE_START USER_RESOURCE_ACCESS SERVICE_START
type=SERVICE_STOP USER_RESOURCE_ACCESS SERVICE_STOP
type=USER_ACCT USER_LOGIN/SETTING_MODIFICTION USER_LOGIN
type=USER_MGMT SETTING_MODIFICATION/GROUP_MODIFICATION GROUP_MODIFICATION
USER_ERR USER_LOGOUT USER_LOGIN

その他の変更

  • security_result.description から res の重複するマッピングを削除しました。security_result.action_details で取得されます。
  • 追加フィールドから不要な auditd_msg_data を削除しました。
  • security_result.summary から不要な auditd_msg_data を削除しました。
  • type=ADD_USER の場合、acct から target.user.display_name への重複マッピングを削除しました。target.user.userid にすでにマッピングされています。
  • principal.process.command_lineprincipal.process.file.names から comm の重複マッピングを削除しました。principal.application で取得されます。
  • principal に値がある場合に target.hostname の重複マッピングを削除しました。
  • target.resource.type から SETTING への不要なハードコード マッピングを削除しました。
  • 非推奨になったため、ラベルのマッピングに関する情報を削除しました。
  • マッピングを修正しました。IP は principal.hostname ではなく principal.ip にルーティングされるようになりました。
  • イベントの繰り返し生成を修正しました。

さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。