계산된 필드 구성

다음에서 지원:

이 가이드는 보안 운영 내에서 데이터 보강을 자동화하려는 보안 분석가와 SOC 관리자를 대상으로 합니다. 논리 수식을 사용하여 계산된 필드를 생성 및 관리하고 기존 케이스 및 알림 데이터에서 새 값을 도출하는 방법을 설명합니다. 이 방법을 사용하면 수동 데이터 입력을 없애고 중요한 측정항목을 실시간으로 업데이트할 수 있습니다. 성공적으로 완료하면 플랫폼 분석 기능이 개선되고 자동화된 필드 채우기를 통해 사고 분류가 가속화됩니다.

계산된 필드를 사용하면 Google Security Operations 케이스 및 알림 내에서 새로운 데이터 포인트를 동적으로 도출할 수 있습니다. 논리 수식을 정의하면 기존 시스템 또는 커스텀 필드를 기반으로 값을 계산할 수 있습니다. 계산된 값은 실시간으로 자동으로 평가되어 사용자가 선택한 기존 커스텀 필드(타겟 필드 라벨)에 저장됩니다.

일반적인 사용 사례

다음 시나리오는 조직에서 계산된 필드를 활용하여 운영 효율성과 데이터 명확성을 개선하는 가장 일반적인 방법을 보여줍니다.

자동화된 위험 점수 산정

  • 목표: 이벤트 볼륨 또는 우선순위 수준에 따라 케이스를 분류합니다.
  • 가치: 분류를 표준화하고 고위험 사고를 팀에 즉시 표시합니다.

데이터 정규화

  • 목표: 이름 지정 규칙에 따라 알림을 테스트 또는 프로덕션으로 플래그 지정합니다.
  • 가치: 분석가가 기본 뷰에서 중요하지 않은 테스트 데이터를 필터링하여 노이즈를 줄일 수 있습니다.

주요 용어

  • 수식: 함수, 연산자, 필드 참조를 사용하여 값을 계산하기 위해 정의하는 텍스트 기반 논리 표현식입니다.
  • 대상 필드: 수식 결과 계산이 저장되는 기존 커스텀 필드(자유 텍스트 유형)입니다.
  • 종속 항목: 수식 내에서 참조되는 필드입니다. 종속 항목 필드의 값이 변경되면 계산된 필드가 동기식으로 다시 평가됩니다.

시작하기 전에

계산을 만들기 전에 환경이 다음 기술 요구사항을 충족하는지 확인하세요.

  • 권한: 설정 메뉴에 대한 관리 액세스 권한과 태그 관리 권한이 있어야 합니다.
  • 환경 확인: 대상 필드로 사용할 수 있는 기존의 활성 맞춤 입력란(자유 텍스트 유형)이 있는지 확인합니다.

시스템에서 타겟 필드로 사용할 기존 맞춤 입력란이 있는지 확인합니다. 그렇지 않은 경우 다음 단계를 수행합니다.

  1. 설정 > 조사 > 맞춤 필드로 이동합니다.
  2. 새 커스텀 필드를 만들고 유형을 Free Text로 설정합니다.

커스텀 필드에 대한 자세한 내용은 커스텀 필드 만들기를 참조하세요.

기술적 제약 조건 및 검증 규칙

계산을 정의하기 전에 타겟 필드와 로직이 다음 시스템 제약 조건을 따르는지 확인하세요. 이러한 규칙은 Google SecOps 엔진이 수식 결과를 검증하고 유지하는 방법을 제어합니다.

필드 유효성 검사 기준

계산 엔진은 타겟 필드로 지정된 모든 필드에 다음 요구사항을 엄격하게 적용합니다.

  • 데이터 유형: 필드는 자유 텍스트 유형이어야 합니다.
  • 운영 상태: 필드가 활성이어야 합니다. 시스템은 삭제되거나 무효화된 필드에 쓸 수 없습니다.
  • 종속 항목 매핑: 순환 논리를 방지하기 위해 필드가 이미 다른 계산된 필드의 종속 항목인 경우 타겟이 될 수 없습니다.

필드 범위 지정

Both 범위로 커스텀 필드를 만들면 시스템에서 각 컨텍스트에 고유한 항목을 생성합니다. 이렇게 하면 동일한 논리적 카테고리 내에서 케이스와 알림에 대해 별도의 로직을 유지할 수 있습니다.

대상 필드 메뉴에서 수식과 관련된 특정 범위를 선택해야 합니다.

  • 케이스 범위: CaseCustom.YourField로 라벨이 지정됨(예: CaseCustom.RiskLevel)
  • 알림 범위: AlertCustom.YourField 라벨이 지정됨(예: AlertCustom.RiskLevel)

계산된 필드 만들기 및 관리

이 섹션에서는 새 계산을 정의하고 설정 프로세스 중에 발생하는 일반적인 문제를 해결하는 방법을 설명합니다.

새 계산 만들기

새 계산을 만들려면 다음 단계를 따르세요.

  1. 설정 > 조사 > 계산된 필드로 이동합니다.
  2. 추가 추가를 클릭합니다.
  3. 계산된 필드 이름 필드에 계산의 고유한 이름과 설명을 입력합니다.
  4. 대상 필드 영역에서 결과를 저장할 기존 커스텀 필드를 선택합니다.

    1. 예상되는 실패: 선택한 필드가 메뉴에 표시되지 않습니다.
    2. 수정 단계: 맞춤 입력란이 활성 상태이고 자유 텍스트로 설정되어 있으며 다른 계산의 종속 항목이 아닌지 확인합니다.
  5. 텍스트 편집기에서 지원되는 함수, 연산자, 문법을 사용하여 수식을 작성합니다. 논리 표현식(예: IF ([case.priority] == "High") THEN "Urgent" ELSE "Standard")을 만듭니다. 자세한 내용은 수식 언어 및 문법을 참고하세요.

  6. 저장을 클릭합니다.

    1. 예상되는 실패: 시스템에서 저장을 거부하고 빨간색 오류 강조표시를 표시합니다.
    2. 수정 단계: IF 조건 주위에 괄호가 누락되거나 소문자 키워드가 있는 등의 문법 오류가 있는지 확인합니다.

고급 저작물 및 참조 액세스

수식은 모든 기본 제공 연산자와 함수에 대해 엄격한 문법 및 대소문자 구분 규칙을 따라야 합니다. 다음 기술 사양을 사용하여 계산이 유효한지 확인하세요.

수식 예시

다음 템플릿은 함수와 연산자를 결합하여 데이터 보강을 자동화하는 방법을 보여줍니다. 이러한 스니펫을 복사하고 특정 필드 이름 및 조직 요구사항에 맞게 조정할 수 있습니다.

예시 1: 위험 수준 설정

이 수식을 사용하여 케이스 제목 내에서 발견된 특정 키워드를 기반으로 케이스를 분류합니다.

  • 대상 필드: CaseCustom.risk_level(텍스트)
  • 목표: 긴급한 이슈에 '높음' 상태를 자동으로 할당합니다.
  • 수식:

    IF (CONTAINS([case.name], "urgent")) THEN "High" ELSE "Medium"

예 2: 테스트 알림 신고

이 로직은 테스트 데이터를 식별하고 라벨을 지정하여 분석가가 기본 보기를 필터링하고 프로덕션 사고에 집중할 수 있도록 지원합니다.

  • 대상 필드: AlertCustom.is_test(텍스트)
  • 목표: 알림 이름에서 -TEST 서픽스 또는 TEST 문자열 감지
  • 수식:

    IF (CONTAINS([alert.name], "TEST") OR ENDS_WITH([alert.name], "-TEST"))
    THEN "TRUE"
    ELSE "FALSE"
    

예시 3: 조건 결합

이 예시에서는 이벤트 수와 기존 우선순위 수준을 모두 기반으로 검토의 우선순위를 지정하는 중첩 로직을 보여줍니다.

  • 대상 필드: CaseCustom.review_status(텍스트)
  • 목표: 로그 길이가 길고 우선순위가 Low가 아닌 경우에만 수동 검토를 트리거합니다.
  • 수식:

    IF (LENGTH(\[AlertCustom.event\_details\]) \> 100 AND NOT IS(\[case.priority\], "Low"))
    THEN "Needs Review"
    ELSE "Auto-Closed"
    

수식 언어 및 문법

계산 엔진은 모든 기본 제공 연산자, 키워드, 함수에서 대소문자를 구분합니다. 키워드(예: IF, THEN, ELSE, AND, OR, NOT)와 함수 이름(예: CONTAINS, LENGTH, STARTS_WITH, ENDS_WITH, IS, IS_NOT, DOES_NOT_CONTAIN)은 대문자로 작성해야 합니다. 하지만 함수 및 등호 연산자 내의 텍스트 문자열 테스트는 대소문자를 구분하지 않습니다. 예를 들어 'phishing'을 검색하면 'PHISHING' 또는 'Phishing'과 일치합니다.

데이터 유형 및 리터럴

리터럴은 표현식에 사용되는 고정 값입니다. 작업 및 함수 인수가 호환되는 유형을 사용하는지 확인하는 것이 좋습니다.

유형 문법 및 규칙 예
STRING 큰따옴표로 묶인 텍스트입니다. 'critical', '해당 사항 없음'
NUMBER 정수 또는 소수입니다. 100, 3.14
BOOLEAN 대문자여야 합니다. TRUE, FALSE
NULL 빈 값을 나타냅니다. NULL

필드 참조

다른 필드의 값을 사용하려면 필드 이름을 대괄호로 묶습니다(예: [object.field_name]).

  • 문법 규칙: 필드 참조에 프리픽스를 사용해야 합니다. 프리픽스(예: case. 또는 AlertCustom.) 뒤에 점과 필드 이름을 사용해야 합니다. 필드 이름 자체에는 문자, 숫자, 밑줄, 공백이 포함될 수 있습니다. 예를 들면 [case.name], [alert.priority], [AlertCustom.my_custom_field]입니다.
  • case.name, case.stage, case.priority, alert.name, alert.priority, alert.rule_generator 시스템 필드를 사용할 수 있습니다.
  • 모든 사용자 정의 커스텀 필드를 참조할 수 있습니다.
  • 계산된 필드 수식은 다른 계산된 필드를 참조할 수 없습니다.

연산자

비교 및 논리 연산에 연산자를 사용합니다. 괄호 ()를 사용하여 기본 우선순위 및 그룹 표현식을 재정의합니다.

  • 비교 연산자: ==, !=, >, >=, <, <=
  • 논리 연산자: AND, OR, NOT
  • 연산자 우선순위: NOT, >, >=, <, <=, AND, OR,

조건식

시스템은 IF (condition) THEN expression1 ELSE expression2 문법을 사용하는 조건부 로직을 지원합니다. ELSE 부분은 선택사항입니다. 이 부분을 생략하고 조건이 FALSE이면 결과는 기본적으로 NULL입니다.

조건은 TRUE 또는 FALSE로 평가되는 표현식이어야 합니다.

예를 들면 IF ( [CaseCustom.score] > 75 ) THEN "High Risk" ELSE "Low Risk"입니다.

함수

함수는 미리 정의된 연산으로, 모두 대문자여야 합니다. 다음 표에는 데이터 조작 및 평가에 지원되는 함수가 나와 있습니다.

함수 설명 구문 반환 유형
CONTAINS(field, substring) 텍스트 필드에 하위 문자열이 포함되어 있는지 확인합니다(대소문자를 구분하지 않음). CONTAINS([case.name], "phishing") BOOLEAN
DOES_NOT_CONTAIN(field, substring) 텍스트 필드에 하위 문자열이 포함되지 않는지 확인합니다(대소문자를 구분하지 않음). DOES_NOT_CONTAIN([case.name], "test") BOOLEAN
LENGTH(field) 필드의 문자 수를 반환합니다. LENGTH([case.name]) NUMBER
STARTS_WITH(field, prefix) 필드가 프리픽스로 시작하는지 확인합니다(대소문자를 구분하지 않음). STARTS_WITH([CaseCustom.hostname], "srv-") BOOLEAN
ENDS_WITH(field, suffix) 필드가 서픽스로 끝나는지 확인합니다(대소문자를 구분하지 않음). ENDS_WITH([AlertCustom.filename], ".exe") BOOLEAN
IS(field, literal) 필드 값이 리터럴과 같은지 확인합니다(대소문자를 구분하지 않음). IS([alert.priority], "High") BOOLEAN
IS_NOT(field, literal) 필드 값이 리터럴과 같지 않은지 확인합니다(대소문자를 구분하지 않음). IS_NOT([alert.priority], "Low") BOOLEAN

예약된 키워드 및 식별자

계산 엔진은 논리 연산 및 함수에 특정 단어를 예약합니다. 다음 용어는 수식 내에서 맞춤 필드 이름이나 기타 식별자로 사용할 수 없습니다.

  • 논리: AND, OR, NOT, IF, THEN, ELSE
  • 값: NULL, TRUE, FALSE
  • 함수: CONTAINS, LENGTH, STARTS_WITH, ENDS_WITH, IS, IS_NOT, DOES_NOT_CONTAIN

데이터 유형 호환성

평가가 성공적으로 이루어지도록 하려면 모든 연산과 함수 인수가 호환되는 유형을 사용하는지 확인하세요. 지원되는 유형에는 STRING, NUMBER, BOOLEAN, NULL가 있습니다.

수식의 최종 출력은 타겟 필드의 예상 유형과 일치해야 합니다. 타겟 필드는 '자유 텍스트'로 제한되므로 수식은 궁극적으로 타겟 형식으로 암시적으로 변환될 수 있는 문자열 또는 값으로 확인되어야 합니다.

형식 지정 및 공백

공백, 탭, 줄바꿈은 일반적으로 토큰 간에 무시되지만 키워드를 식별자와 구분하기 위해 반드시 필요합니다. 공백을 전략적으로 사용하여 복잡한 여러 줄 수식을 구조화하면 유지관리와 동료 검토가 더 쉬워집니다.

효과적인 수식 작성하기

계산 엔진은 공백을 유연하게 처리하지만, 논리 오류를 방지하고 문제 해결을 간소화하려면 다음 형식 지정 표준을 따르세요.

  • 명시적 그룹화: 표준 우선순위를 사용하는 경우에도 괄호를 사용하여 연산 순서를 명확하게 정의합니다. 이렇게 하면 논리적 모호성을 방지할 수 있습니다.
  • 시각적 구조: 연산자(==, AND, OR) 주위에 공백을 적용하고 중첩된 IF/THEN 문에 줄바꿈을 삽입하여 로직을 쉽게 훑어볼 수 있도록 합니다.
  • 유형 검증: 평가 오류를 방지하기 위해 수식의 최종 출력이 타겟 필드의 예상 유형과 일치하는지 항상 확인하세요.

    IF (
        (IS([CaseCustom.event_count], "100") AND NOT IS([case.priority], "Low"))
        OR CONTAINS([case.name], "Critical")
    )
    THEN "Needs Immediate Review"
    ELSE "Standard Review"
    

문제 해결

이 섹션에서는 성능 기대치를 간략히 설명하고 수식을 빌드하거나 관리할 때 발생하는 일반적인 배포 문제에 대한 셀프 서비스 해결 방법을 제공합니다.

지연 시간 및 한도

계산된 필드는 종속 항목 필드가 변경될 때마다 동기식으로 평가됩니다. 시스템 성능을 유지하기 위해 계산된 필드는 다른 계산된 필드를 참조할 수 없습니다. 시스템은 재귀 및 처리 지연을 방지하기 위해 이러한 연쇄 종속 항목을 차단합니다.

오류 해결

수식을 직접 작성하면 문법이나 데이터 유형 불일치로 인해 오류가 발생할 수 있습니다. 다음 표를 사용하여 여정 관련 오류 코드를 정확하고 실행 가능한 해결 방법과 매핑하세요.

오류 유형 문제 수정
구문 수식이 괄호 불일치 또는 소문자 키워드와 같은 문법 규칙을 위반합니다. 모든 IF 조건을 ()로 묶고 모든 키워드가 대문자인지 확인합니다.
유효성 검사 수식이 알 수 없는 필드(예: [\case.typo])를 참조하거나 유형 불일치가 발생합니다. 대괄호 안의 필드 이름을 확인하고 출력이 타겟 필드 유형과 일치하는지 확인합니다.
평가 수식은 유효하지만 실행 중에 실패하며, #ERROR!가 표시되는 경우가 많습니다. LENGTH()와 같은 함수에 문자열이 아닌 값을 전달하는 등의 런타임 문제가 있는지 확인합니다.

타겟 필드 수정 또는 삭제

시스템은 수식이 의존하는 필드를 적극적으로 보호하여 데이터 무결성을 유지합니다. 타겟 필드로 사용되는 맞춤 필드를 삭제하거나 수정하려고 하면 시스템에서 해당 작업을 차단하고 계산된 필드에서 활성 상태로 사용 중임을 나타내는 경고를 표시합니다.

유효성 검사 및 테스트

새 계산을 저장한 후 케이스 또는 알림으로 이동하여 종속 항목 필드를 업데이트하여 결과를 확인합니다. Target Field가 예상 값으로 실시간으로 채워지는지 확인합니다.

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