ログデータを UDM としてフォーマットする

すべての統合データモデル(UDM)イベントには、イベントタイプに関係なくパートナーが入力できる、共通のフィールドとメッセージのセットがあります。これらのフィールドは次のとおりです。

  • Entities: イベントに関連するデバイス、ユーザー、プロセス。
  • Network metadata: イベントの発生日時、イベントの種類、送信元など
  • Network metadata: ネットワーク指向のイベントに関するネットワーク メタデータの概要とサブメッセージ内のプロトコルの詳細。
    • Email metadata: to、form、cc、bcc、その他のメール フィールドの情報。
    • HTTP metadata: メソッド、referral_url、useragent など。
  • Security results: セキュリティ製品による分類やアクション。
  • Additional metadata: UDM モデルの正式なセクション内で適切に表現できない重要なベンダー固有のイベントデータは、自由形式の json ペイロード フィールドを使用して追加できます。

以下では、統合データモデル(UDM)のイベントをエンコード、フォーマットする方法について説明します。

UDM エンコード

UDM イベントは次のいずれかの形式で Chronicle に送信する必要があります。

このドキュメントでは、フィールドはドット表記を使用して表記します。たとえば、次の JSON 構文を使用するとします。

{"menu":
  {
    "id": "file",
    "value": "File",
    "popup": {
      "menuitem": [
        {"value": "New", "onclick": "CreateNewDoc()"}
      ]
    }
  }
}

次のように記述されています。

menu.id = "file"
menu.value = "File"
menu.popup.menuitem.value = "New"
menu.popup.menuitem.onclick = "CreateNewDoc()"

UDM イベントのフォーマット

UDM イベントをフォーマットして Google に送信できるようにするには、以下の手順を行います。

  1. イベントタイプを指定する - 選択したイベントタイプによって、イベントに含める必要があるフィールドが決まります。
  2. イベントのタイムスタンプの指定 -metadata-position="body" } - イベントのタイムスタンプを指定します。
  3. 名詞(エンティティ)の指定 - 各イベントには、イベントに関与する参加者デバイスまたはユーザーを記述する少なくとも 1 つの名詞を含める必要があります。
  4. セキュリティの結果を指定する - (省略可)セキュリティ システムによって検出されたセキュリティ リスクや脅威の詳細や、そのリスクと脅威を軽減するために講じるアクションを指定します。
  5. UDM イベント フィールドを使用して、必須およびオプションのイベント情報の残りの部分を入力します。

イベントタイプの指定

UDM 形式で送信されるイベントで最も重要な値は、Metadata.event_type に使用可能な値のいずれかを使用して指定するイベントタイプです。PROCESS_OPEN、FILE_CREATION、USER_CREATION、NETWORK_DNS などの値が含まれます(完全なリストについては、Metadata.event_type をご覧ください)。各イベントタイプには、元のイベントに関連付けられた情報を他のフィールドと値のセットにも入力する必要があります。各イベントタイプに含めるフィールドの詳細については、各 UDM イベントタイプの必須フィールドとオプション フィールドをご覧ください。次の例は、Proto3 テキスト表記を使用して、イベントタイプとして PROCESS_OPEN を指定する方法を示しています。

metadata {
    event_type: PROCESS_OPEN
}

イベントのタイムスタンプの指定

Metadata.event_timestamp を使用して、UDM 形式で送信されるすべてのイベントの GMT タイムスタンプを指定する必要があります。スタンプは、次のいずれかの基準を使用してエンコードする必要があります。

  • JSON の場合は、RFC 3339 を使用します。
  • Proto3 のタイムスタンプ

次の例は、RFC 3339 形式を使用してタイムスタンプを指定する方法を示しています。この例では、yyyy-mm-ddThh:mm:ss+hh:mm - 年、月、日、時、分、秒、UTC 時間からのオフセットです。UTC からのオフセットは 8 時間(PST)であることを示します。

metadata {
  event_timestamp: "2019-09-10T20:32:31-08:00"
}

名詞(エンティティ)の指定

UDM イベントごとに、1 つ以上の名詞を定義する必要があります。名詞は、UDM イベントの参加者またはエンティティを表します。名詞は、イベントで記述されるアクティビティを実行するデバイスまたはユーザー、またはイベントで記述されたアクティビティの実行対象となるデバイスまたはユーザーです。名詞は添付ファイルや URL などであることもあります。最後に、名詞はイベントで説明されているアクティビティをモニタリングしたセキュリティ デバイス(メールプロキシやネットワーク ルーターなど)を記述するために使用することもできます。

UDM イベントには、次の 1 つ以上の名詞を指定する必要があります。

principal: 主体となるエンティティ、またはイベントに記述されたアクティビティが発生したデバイスを表します。principal には、少なくとも 1 つのマシンの詳細(ホスト名、MAC、IP、ポート、プロダクト固有の識別子(CrowdStrike マシン GUID など)、ユーザーの詳細(ユーザー名など))を含める必要があります。また、必要に応じてプロセスの詳細を含める必要があります。メール、ファイル、レジストリキーやフィールドを含めることはできません。

すべてのイベントが同じマシン上で発生する場合、そのマシンは principal で記述される必要があります。また、targetsrc でマシンを記述する必要はありません。

次の例では、[principal] フィールドに値を設定しています。

principal {
  hostname: "jane_win10"
  asset_id: "Sophos.AV:C070123456-ABCDE"
      ip: "10.0.2.10"
      port: 60671
      user {  userid: "john.smith" }
}

上記の例では、イベントで説明されているプリンシパル アクターであるデバイスとユーザーの情報がすべて表示されます。この例には、デバイスの IP アドレスとポート番号、およびホスト名が含まれています。また、サードパーティのセキュリティ製品によって生成された一意の識別子である、ベンダー固有のアセット識別子(Sophos に基づく)も含まれます。

target: イベントによって参照されているターゲット デバイス、またはターゲット デバイス上のオブジェクトを表します。たとえば、ファイアウォール A からデバイス B へのファイアウォール接続では、A がプリンシパル、B がターゲットとして記述されます。プロセス C によるターゲット プロセス D へのプロセス インジェクションでは、プロセス C がプリンシパルとして記述され、プロセス D がターゲットとして記述されます。

プリンシパルとターゲットの比較 UDM のプリンシパルとターゲット

次の例は、ターゲットのフィールドに入力される方法を示しています。

target {
   ip: "198.51.100.31"
   port: 80
}

ホスト名、追加の IP アドレス、MAC アドレス、専有アセット ID など、利用可能な情報が他にある場合は、これらも target に含める必要があります。

principaltarget(およびその他の名詞)は、両方とも同じマシンのアクターを参照できます。たとえば、マシン X で実行されているプロセス A(principal)は、マシン X でもプロセス B(target)を処理します。

  • src: 参加者が操作するソース オブジェクトと、ソース オブジェクト(ソース オブジェクトが存在するマシン)のデバイスまたはプロセス コンテキストを表します。たとえば、ユーザー U がマシン X 上のファイル A をマシン Y 上のファイル B にコピーした場合、ファイル A とマシン X の両方が UDM イベントの src 部分で指定されます。
  • intermediary: イベントに記載されているアクティビティを処理する 1 つ以上の中間デバイスの詳細を表します。これには、プロキシ サーバーや SMTP リレーサーバーなどのデバイスの詳細が含まれます。
  • observer: 監視デバイス(パケット スニッファやネットワーク ベースの脆弱性スキャナなど)です。直接的な仲介機能はありませんが、対象のイベントを監視して報告します。
  • about: participantsrctargetintermediary、または observer で説明されていない、イベントで参照されるすべてのオブジェクトの詳細を保存するために使用します。たとえば、以下を追跡するために使用できます。
    • メール添付ファイル
    • メール本文に埋め込まれているドメイン、URL、IP
    • PROCESS_LAUNCH イベントで読み込まれる DLL

UDM イベントのエンティティ セクションには、イベントに記述されたさまざまな参加者(デバイス、ユーザー、オブジェクト(URL、ファイルなど))に関する情報が含まれます。Chronicle の UDM には、名詞フィールドに入力する際に必須の要件があります。これらの要件については、各 UDM イベントタイプの必須フィールドとオプション フィールドをご覧ください。入力が必要な一連のエンティティ フィールドは、イベントタイプによって異なります。

セキュリティ結果の指定

必要に応じて、SecurityResult フィールドに入力してセキュリティ結果を指定できます。この情報には、セキュリティ システムによって検出されたセキュリティ リスクと脅威の詳細、およびそのリスクと脅威を軽減するために講じるアクションが含まれます。以下に、SecurityResult フィールドに入力する必要のあるセキュリティ イベントのタイプの例を示します。

  • メール セキュリティ プロキシがフィッシング攻撃(MAIL_PHISHING)を検出し、メールをブロック(BLOCK)しました。
  • メールのセキュリティ プロキシ ファイアウォールが、2 つの感染した添付ファイル(SOFTWARE_MALICIOUS)を検出し、これらの添付ファイルを検疫してウイルス駆除(QUARANTINE、ALLOW_WITH_MODIFICATION)した後、ウイルス駆除したメールを転送しました。
  • SSO システムがログインを容認(AUTH_VIOLATION)し、ブロックしました(BLOCK)。
  • マルウェア サンドボックスが、ファイルがユーザーの受信トレイに配信(ALLOW)されてから 5 分後に、添付ファイル内のスパイウェア(SOFTWARE_MALICIOUS)を検出しました。