검색 권장사항

다음에서 지원:

이 문서에서는 Google Security Operations에서 검색 기능을 사용하기 위한 Google 권장사항을 설명합니다. 검색은 신중하게 구성되지 않은 경우 상당한 컴퓨팅 리소스가 필요할 수 있습니다. 또한 성능은 Google SecOps 인스턴스 데이터의 크기와 복잡성에 따라 달라집니다.

최대 속도를 위해 색인이 생성된 UDM 필드 사용

검색 성능을 개선하는 가장 효과적인 방법은 색인이 생성된 필드를 사용하여 쿼리를 빌드하는 것입니다. 이러한 필드는 빠른 검색에 최적화되어 있습니다. 색인이 생성된 알려진 통합 데이터 모델 (UDM) 필드는 다음과 같습니다.

주요 필드

  • principal.asset.hostname
  • principal.asset.ip
  • principal.asset.mac
  • principal.file.md5
  • principal.file.sha1
  • principal.file.sha256
  • principal.hostname
  • principal.ip
  • principal.mac
  • principal.process.file.md5
  • principal.process.file.sha1
  • principal.process.file.sha256
  • principal.process.parent_process.file.md5
  • principal.process.parent_process.file.sha1
  • principal.process.parent_process.file.sha256
  • principal.user.email_addresses
  • principal.user.product_object_id
  • principal.user.userid
  • principal.user.windows_sids

원본 필드

  • source.user.userid
  • src.asset.hostname
  • src.hostname
  • src.ip

대상 필드

  • target.asset.hostname
  • target.file.md5
  • target.file.sha1
  • target.file.sha256
  • target.hostname
  • target.ip
  • target.process.file.md5
  • target.process.file.sha1
  • target.process.file.sha256
  • target.user.email_addresses
  • target.user.product_object_id
  • target.user.userid
  • target.user.windows_sid

추가 필드

  • about.file.md5
  • about.file.sha1
  • about.file.sha256
  • intermediary.hostname
  • intermediary.ip
  • network.dns.questions.name
  • network.email.from
  • network.email.to
  • observer.hostname
  • observer.ip

실적을 위한 효과적인 검색어 구성

최적화된 쿼리를 작성하는 것은 보안 데이터 전반에서 속도를 극대화하고 리소스 소비를 최소화하는 데 중요합니다. 모든 쿼리 조건은 다음 기본 구조를 엄격하게 준수해야 합니다.

udm-field operator value

예를 들면 다음과 같습니다. principal.hostname = "win-server"

Google SecOps는 검색 중에 많은 양의 데이터를 수집할 수 있으므로 범위를 좁히고 검색 성능을 개선하려면 쿼리의 시간 범위를 최소화해야 합니다.

검색어에 정규 표현식 사용

UDM 검색어를 구성할 때 표준 논리 및 비교 연산자를 사용하여 복잡한 표현식을 만들 수 있습니다.

  • 논리 연산자:AND, OR, NOT를 사용하여 조건을 결합합니다. 두 조건 사이에 연산자를 생략하면 AND가 가정됩니다.
  • 연산자 우선순위: 괄호 ()를 사용하여 기본 우선순위를 재정의합니다. 괄호 안에 사용할 수 있는 논리 연산자 (OR, AND, NOT)의 최대 한도는 169개입니다.
  • 비교 연산자: UDM 필드 유형 (문자열, 정수, 타임스탬프)에 따라 필드 연산자에 포함될 수 있는 항목은 다음과 같습니다. =, !=, >=, >, <, <=

또는 많은 값을 효율적으로 검색하려면 참조 목록을 사용하면 됩니다.

nocase를 검색 한정자로 사용

문자열 비교 조건에 nocase 한정자를 추가하여 검색 시 대소문자를 무시하도록 지정할 수 있습니다.

예를 들어 다음 검색은 유효하지 않습니다.

target.user.userid = "TIM.SMITH" nocase

열거된 필드에 정규 표현식 사용하지 않기

metadata.event_type 또는 network.ip_protocol과 같은 열거형 필드 (사전 정의된 값 범위가 있는 필드)를 검색할 때는 정규 표현식을 사용할 수 없습니다.

다음은 잘못된 검색의 예입니다. metadata.event_type = /NETWORK_*/

반면 다음 예는 유효한 검색입니다. (metadata.event_type = "NETWORK_CONNECTION" 또는 metadata.event_type = "NETWORK_DHCP")

'이벤트' 필드에서 모든 연산자 사용

검색에서 일부 UDM 필드 (예: principal.ip 또는 target.file.md5)는 단일 이벤트 내에서 값 또는 메시지 유형의 목록을 보유할 수 있으므로 반복으로 라벨이 지정됩니다. 반복 필드는 기본적으로 항상 any 연산자로 처리됩니다 (all를 지정하는 옵션은 없음).

any 연산자가 사용된 경우에는 반복 필드의 값이 조건을 충족할 때 조건자가 true로 평가됩니다. 예를 들어 principal.ip != "1.2.3.4"를 검색하고 검색의 이벤트에 principal.ip = "1.2.3.4"principal.ip = "5.6.7.8"이 모두 포함된 경우 일치 항목이 생성됩니다. 이렇게 하면 검색이 확장되어 모든 연산자와 일치하는 결과 대신 연산자 중 하나와 일치하는 결과가 포함됩니다.

반복 필드의 각 요소는 개별적으로 취급됩니다. 반복 필드가 검색의 이벤트에서 발견되면 필드의 각 요소에 대해 이벤트가 평가됩니다. 특히 != 연산자를 사용하여 검색할 때 예기치 않은 동작이 발생할 수 있습니다.

any 연산자를 사용하는 경우 반복 필드의 값이 조건을 충족하면 조건자가 true로 평가됩니다.

타임스탬프에 Unix epoch 시간 사용

타임스탬프 필드는 Unix epoch 시간(1970년 1월 1일 목요일 00:00:00 UTC 이후 경과된 총 시간(초))을 통해 일치됩니다.

특정 타임스탬프를 검색할 때 다음 사항은 유효합니다(에포크 시간 기준).

metadata.ingested_timestamp.seconds = 1660784400

다음 타임스탬프가 유효하지 않습니다.

metadata.ingested_timestamp = "2022-08-18T01:00:00Z"

필터에서 필드 제외

다음 필드는 의도적으로 검색 필터에서 제외됩니다. 이러한 필드에는 중요한 메타데이터가 포함되어 있지만 매우 고유한 값으로 인해 불필요한 검색 세부정보가 도입되어 쿼리 엔진의 전반적인 효율성과 효과가 감소할 수 있습니다.

  • metadata.id
  • metadata.product_log_id
  • *.timestamp

도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가로부터 답변을 받으세요.