로그 데이터를 UDM으로 형식 지정

모든 통합 데이터 모델(UDM) 이벤트에는 파트너가 이벤트 유형에 관계없이 입력할 수 있는 일반적인 필드 및 메시지 집합이 있습니다. 이러한 필드에는 다음이 포함됩니다.

  • 항목: 이벤트에 관련된 기기, 사용자, 프로세스입니다.
  • 이벤트 메타데이터: 이벤트가 발생한 시간, 이벤트 유형, 시작된 위치 등입니다.
  • 네트워크 메타데이터: 하위 메시지 내의 프로토콜 세부정보뿐만 아니라 네트워크에서 시작된 이벤트에 대한 고급 레벨 네트워크 메타데이터입니다.
    • 이메일 메타데이터: 받는 사람, 보낸 사람, 참조, 숨은 참조, 기타 이메일 필드의 정보입니다.
    • HTTP 메타데이터: referral_url, useragent 등의 메서드입니다.
  • 보안 결과: 보안 제품에서 제공되는 모든 분류 또는 조치입니다.
  • 추가 메타데이터: 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 이벤트 형식 지정

Google에 바로 전송할 수 있도록 UDM 이벤트 형식을 지정하려면 다음 단계를 완료해야 합니다.

  1. 이벤트 유형 지정—선택한 이벤트 유형에 따라 이벤트에 포함해야 하는 필드가 결정됩니다.
  2. 이벤트 타임스탬프 지정—이벤트 타임스탬프를 지정합니다.
  3. 명사(항목) 지정—각 이벤트는 이벤트에 관련된 참여자 기기 또는 사용자를 기술하는 하나 이상의 명사를 포함해야 합니다.
  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 형식을 사용하여 타임스탬프를 지정하는 방법을 보여줍니다. 이 예시에서는 연도, 월, 일, 시, 분, 초, UTC 시간 기준 오프셋을 나타내는 yyyy-mm-ddThh:mm:ss+hh:mm이 사용됩니다. UTC 오프셋은 마이너스 8시간, 즉 PST를 나타냅니다.

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

명사(항목) 지정

각 UDM 이벤트에 대해 하나 이상의 명사를 정의해야 합니다. 명사는 UDM 이벤트의 참여자 또는 항목을 나타냅니다. 예를 들어 명사는 이벤트에 기술된 작업을 수행하는 기기/사용자 또는 이벤트에 기술된 해당 작업의 대상이 되는 기기/사용자일 수 있습니다. 명사는 또한 첨부 파일 또는 URL과 같은 것일 수도 있습니다. 마지막으로 명사는 이벤트에 기술된 작업을 관측한 보안 기기를 기술하기 위해 사용될 수도 있습니다(예: 이메일 프록시 또는 네트워크 라우터).

UDM 이벤트에는 다음 명사 중 하나 이상을 지정해야 합니다.

principal: 이벤트에 기술된 작업을 시작하는 활동 중인 항목 또는 기기를 나타냅니다. principal은 하나 이상의 머신 세부정보(호스트 이름, MAC, IP, 포트, CrowdStrike 머신 GUID와 같은 제품 특정 식별자) 또는 사용자 세부정보(예: 사용자 이름)를 포함해야 하며, 선택적으로 프로세스 세부정보를 포함할 수 있습니다. 이메일, 파일, 레지스트리 키 또는 값과 같은 필드는 포함하지 않아야 합니다.

모든 이벤트가 동일한 머신에서 발생하는 경우에는 해당 머신만 principal에서 기술하면 됩니다. target 또는 src에서도 머신을 기술할 필요는 없습니다.

다음 예시는 principal 필드를 입력하는 방법을 보여줍니다.

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

위 예시는 이벤트에 기술된 principal 행위자인 기기 및 사용자에 대해 알려진 모든 것을 기술합니다. 이 예시에는 호스트 이름 뿐만 아니라 해당 기기의 IP 주소 및 포트 번호가 포함됩니다. 또한 타사 보안 제품에서 생성된 고유 식별자인 공급업체 특정 애셋 식별자(Sophos)를 포함합니다.

target: 이벤트로 참조되는 대상 기기 또는 대상 기기에 대한 객체를 나타냅니다. 예를 들어 기기 A에서 기기 B로의 방화벽 연결에서 A는 principal로 기술되고 B는 target으로 기술됩니다. 프로세스 C가 target 프로세스 D로 삽입하는 프로세스의 경우에는 프로세스 C가 principal로 기술되고 프로세스 D는 target으로 기술됩니다.

UDM에서 principal과 target 비교

UDM에서 Principal과 Target 비교

다음 예시는 target의 필드가 입력되는 방법을 보여줍니다.

target {
   ip: "198.51.100.31"
   port: 80
}

다시 말하지만, 호스트 이름, 추가 IP 주소, MAC 주소, 고유 애셋 식별자 등의 추가 정보가 제공될 경우, 이것도 target에 포함해야 합니다.

principaltarget(및 기타 명사 포함)은 모두 동일한 머신의 행위자를 참조할 수 있습니다. 예를 들어 머신 X에서 실행되는 프로세스 A(principal)는 또한 머신 X의 프로세스 B(target)에 대해 작동합니다.

  • src: 소스 객체에 대한 기기 또는 프로세스 컨텍스트(소스 객체가 존재하는 머신)와 함께 참여자에 의해 작동하는 소스 객체를 나타냅니다. 예를 들어 사용자 U가 머신 X에서 파일 A를 머신 Y의 파일 B에 복사할 경우, 파일 A와 머신 X 모두 UDM 이벤트의 src 부분에 지정됩니다.
  • intermediary: 이벤트에 기술된 하나 이상의 중간 기기 처리 작업에 대한 세부정보를 나타냅니다. 여기에는 프록시 서버, SMTP 릴레이 서버 등에 대한 기기 세부정보가 포함됩니다.
  • observer: 패킷 스니퍼 또는 네트워크 기반 취약점 스캐너와 같이 직접적인 중개자는 아니지만 문제의 이벤트를 관측하고 보고하는 관찰자 기기를 나타냅니다.
  • about: 다른 경우가 아니라면 participant, src, target, intermediary, observer에 기술되지 않는 이벤트에서 참조되는 모든 객체에 대해 세부정보를 저장하기 위해 사용됩니다. 예를 들어 다음을 추적하기 위한 용도로 사용될 수 있습니다.
    • 이메일 첨부파일
    • 이메일 본문에 포함된 도메인/URL/IP
    • PROCESS_LAUNCH 이벤트 중 로드된 DLL

UDM 이벤트의 항목 섹션에는 이벤트에 기술된 여러 참여자(기기, 사용자, URL, 파일 등의 객체)에 대한 정보가 포함됩니다. Chronicle UDM에는 명사 필드를 입력할 때 필수 요구사항이 있습니다. 이러한 요구사항은 각 UDM 이벤트 유형의 필수 및 선택적 필드에 설명되어 있습니다. 입력해야 하는 항목 필드 집합은 이벤트 유형에 따라 다릅니다.

보안 결과 지정

보안 시스템에서 발견된 보안 위험 및 위협뿐만 아니라 이러한 위험 및 위협을 완화하기 위해 수행된 작업에 대한 세부정보를 포함하여, SecurityResult 필드를 입력하여 보안 결과를 선택적으로 지정할 수 있습니다. 다음은 SecurityResult 필드 입력이 필요한 몇 가지 보안 이벤트 유형의 예시입니다.

  • 이메일 보안 프록시에서 피싱 시도(MAIL_PHISHING)가 감지되어 이메일이 차단(BLOCK)되었습니다.
  • 이메일 보안 프록시 방화벽에서 2개의 감염된 첨부파일(SOFTWARE_MALICIOUS)이 감지되었으며 이러한 첨부파일을 격리 및 치료(QUARANTINE, ALLOW_WITH_MODIFICATION)한 후 치료된 이메일을 전달했습니다.
  • SSO 시스템이 차단된(BLOCK) 로그인을 수행했습니다(AUTH_VIOLATION).
  • 멀웨어 샌드박스가 사용자의 수신함으로 파일이 전달된지(ALLOW) 5분 후에 첨부파일에서 스파이웨어(SOFTWARE_MALICIOUS)를 감지했습니다.