계산된 필드 만들기 및 관리

다음에서 지원:

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

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

일반적인 사용 사례

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

자동 위험 점수 산정

  • 목표: 이벤트 볼륨 또는 우선순위 수준에 따라 케이스를 분류합니다.
  • 가치: 트리아지를 표준화하고 위험도가 높은 인시던트가 팀에 즉시 표시되도록 합니다.

데이터 정규화

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

주요 용어

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

시작하기 전에

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

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

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

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

맞춤 필드에 대한 자세한 내용은 맞춤 필드 만들기를 참고하세요.

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

계산을 정의하기 전에 타겟 필드와 로직이 다음 시스템 제약 조건을 따르는지 확인하세요. 이러한 규칙은 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'과 일치합니다.

데이터 유형 및 리터럴

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

유형 구문 및 규칙
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 전문가에게 문의하여 답변을 받으세요.