계산된 필드 구성

다음에서 지원:

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

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

일반적인 사용 사례

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

자동 리스크 스코어링

  • 목표: 이벤트 볼륨 또는 우선순위 수준을 기반으로 케이스를 분류합니다.
  • : 분류를 표준화하고 위험도가 높은 사고가 팀에 즉시 표시되도록 합니다.

데이터 표준화

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

주요 용어

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

시작하기 전에

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

  • 권한: 설정 메뉴에 대한 관리 액세스 권한과 케이스 데이터를 관리할 수 있는 권한이 있어야 합니다.
  • 환경 확인: 대상 필드 역할을 할 기존의 활성 커스텀 필드 (자유 형식 텍스트 유형)가 있어야 합니다.

시스템에서 대상 필드로 사용할 기존 커스텀 필드가 있어야 합니다. 그렇지 않은 경우 다음 단계를 따르세요.

  1. 설정 > 케이스 데이터 > 커스텀 필드 로 이동합니다.
  2. 새 커스텀 필드를 만들고 유형을 자유 형식 텍스트 로 설정합니다.

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

기술적 제약 및 유효성 검사 규칙

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

필드 유효성 검사 기준

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

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

필드 범위 지정

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

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

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

계산된 필드 만들기 및 관리

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

새 계산 만들기

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

  1. 설정 > 케이스 데이터 > 계산된 필드 로 이동합니다.
  2. add 추가 를 클릭합니다.
  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', 'N/A'
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()와 같은 함수에 전달하는 등 런타임 문제가 있는지 확인합니다.

대상 필드 수정 또는 삭제

시스템은 수식이 데이터 무결성을 유지하기 위해 의존하는 필드를 적극적으로 보호합니다. 대상 필드로 사용되는 커스텀 필드 를 삭제하거나 수정하려고 하면 시스템에서 작업을 차단하고 계산된 필드 에서 활발하게 사용되고 있음을 나타내는 경고를 표시합니다.

유효성 검사 및 테스트

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

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