Gemini로 커스텀 파서 및 파서 확장 프로그램 만들기

다음에서 지원:

이 가이드는 보안 분석가와 감지 엔지니어가 Google Security Operations의 AI 파싱을 사용하여 처음부터 커스텀 파서를 빌드하거나 기존 파서를 보강하는 파서 확장 프로그램을 만드는 데 도움이 됩니다. 자연어 프롬프트와 공급업체 문서를 사용하면 복잡한 파서 문법이나 정규 표현식을 작성하지 않고도 원시 로그를 통합 데이터 모델 (UDM)에 매핑할 수 있습니다.

AI 커스텀 파서와 AI 파서 확장 프로그램 중에서 선택

다음 표에서는 AI 파싱의 AI로 파서 만들기 기능과 AI로 확장 프로그램 작성 기능을 비교합니다.

기능 관점 AI로 파서 만들기 AI로 확장 프로그램 작성
출력 완전한 독립형 커스텀 파서 기존 파서에 레이어링된 확장 프로그램
기본 사용 사례 새롭거나 지원되지 않는 로그 소스 또는 전체 파서 재작성 작동 중인 파서에서 특정 필드 추가 또는 수정
입력 로그 유형, 수집된 원시 로그, 선택적 문서 링크 로그 유형, 샘플 원시 로그, 매핑할 필드를 설명하는 프롬프트

주요 용어

  • AI 파싱: AI 커스텀 파서 생성 (AI로 파서 만들기) 및 AI 파서 확장 프로그램 (AI로 확장 프로그램 작성)을 포함한 Google SecOps의 AI 지원 파싱 기능 모음입니다.
  • 통합 데이터 모델 (UDM): 로그 데이터를 저장하고 분석하기 위해 Google SecOps에서 사용되는 표준 데이터 구조입니다.

시작하기 전에

AI 파싱을 사용하기 전에 다음 기본 요건을 충족하는지 확인하세요.

  • Google SecOps 인스턴스에 AI 파싱 기능이 사용 설정되어 있는지 확인합니다. AI로 파서 만들기 또는 AI로 확장 프로그램 작성 옵션이 표시되지 않으면 Google SecOps 담당자에게 문의하세요.
  • AI 파서 확장 프로그램의 경우 대상 로그 유형에 이미 활성 상태의 사전 빌드된 파서 또는 커스텀 파서가 있는지 확인하고 추출을 테스트할 샘플 원시 로그를 준비합니다.
  • AI 커스텀 파서 생성의 경우 시작하기 전에 로그 소스의 대표 샘플을 수집합니다. 파서 에이전트는 선택한 로그 유형에 대해 이미 수집한 로그에서 학습합니다. 로그 유형에 대한 로그를 찾을 수 없으면 생성을 시작할 수 없습니다. 시작 시도가 실패하면 할당량에 포함되지 않습니다.
  • AI 커스텀 파서 생성의 경우 공급업체의 로그 형식 참조(예: 필드 사전, 이벤트 스키마, 로그 샘플 페이지)에 공개적으로 액세스할 수 있는 링크를 1~5개 준비합니다(권장). 포괄적인 문서는 파서 품질에 가장 큰 영향을 미치는 단일 요소입니다.

AI로 커스텀 파서 만들기

AI로 파서 만들기는 로그 소스의 전체 커스텀 파서를 처음부터 빌드합니다. 로그 유형을 선택하고 공급업체의 로그 문서에 대한 링크를 선택적으로 제공합니다. 파서 에이전트는 수집된 로그를 샘플링하고, 로그 스키마를 조사하고, 원시 필드에서 UDM으로의 매핑을 계획하고, JavaScript로 파서 코드를 작성합니다. 그런 다음 결과를 검토하고 원시 필드 이름과 UDM 필드를 참조하는 일반 영어 안내를 사용하여 결과를 미세 조정합니다. 출력이 준비되면 다른 커스텀 파서와 마찬가지로 파서를 제출합니다.

AI 커스텀 파서 생성을 사용하면 다음을 수행할 수 있습니다.

  • 사전 빌드된 파서가 없거나 사전 빌드된 파서가 로그 형식에 맞지 않는 로그 소스를 온보딩합니다.
  • 단일 샘플이 아닌 수집된 데이터에서 발견된 모든 고유한 로그 형식을 포괄하는 완전한 파서를 생성합니다.
  • 파서 코드를 직접 작성하지 않고 후속 프롬프트를 통해 생성된 파서를 미세 조정합니다.

AI 생성 커스텀 파서 시작

  1. Google SecOps에서 SIEM 설정 > 파서로 이동합니다.
  2. 새 파서 추가를 클릭합니다.
  3. 새 커스텀 파서 만들기 대화상자에서 파싱할 로그 소스 (예: GCP DNS)를 선택합니다.
  4. 파서를 어떻게 만드시겠어요?에서 AI로 파서 만들기를 선택합니다.
  5. 만들기를 클릭합니다.

제품 문서를 추가하고 생성을 시작합니다.

  1. 선택사항: 파서 에이전트 창의 제품 링크 추가 필드에 공급업체의 로그 문서 링크를 붙여넣고 추가를 클릭합니다. 링크는 최대 5개까지 추가할 수 있습니다. 문서 카운터에는 추가한 링크 수가 표시됩니다.
  2. 파서 생성을 클릭합니다.

생성된 파서의 필드 범위를 개선하려면 문서 링크를 선택할 때 다음 가이드라인을 따르세요.

  • 공급업체 문서에 대한 공개 링크만 제공합니다. 링크가 비공개이거나 액세스할 수 없는 경우 파서 에이전트는 링크를 무시하고 생성을 실패하지 않고 대신 웹을 검색합니다.
  • 로그 스키마, 필드 사전, 이벤트 참조와 같은 로그 필드 및 이벤트 유형을 설명하는 페이지에 연결합니다. 마케팅 페이지나 제품 개요는 피합니다.
  • 수집하는 로그 형식과 일치하는 페이지를 선택합니다. 예를 들어 JSON 감사 로그를 수집하는 경우 syslog 참조가 아닌 JSON 감사 로그 참조에 연결합니다.
  • 공급업체가 별도의 페이지에 다양한 이벤트 카테고리 (예: DNS 쿼리, 방화벽 이벤트, 관리자 활동)를 문서화하는 경우 각 이벤트 카테고리에 대한 링크를 추가합니다.

트랙 생성 진행 상황

커스텀 파서 생성이 시작되면 상태가 생성 진행 중으로 변경됩니다. 생성 프로세스는 다음 단계로 구성됩니다.

단계 상담사 조치 다음 단계로 전달된 출력
원시 로그 가져오기 에이전트가 로그 유형에 대해 수집된 로그를 샘플링합니다. 로그를 클러스터링하여 모든 고유한 로그 형식과 이벤트 형태를 포괄하는 예시 로그 집합을 선택합니다. 대표 로그 예시
연구 문서 에이전트는 제공된 문서 링크를 읽거나 링크를 제공하지 않은 경우 웹을 검색합니다. 이 정보를 예시 로그와 결합하여 로그 스키마와 필드 사전을 빌드합니다. 로그 스키마 및 필드 사전
매핑 계획 만들기 에이전트는 로그에서 각 이벤트 유형을 식별하고 각 원시 로그 필드가 해당 UDM 필드에 매핑되는 방식을 계획합니다. 각 이벤트 유형의 원시 필드에서 UDM 필드로의 매핑 계획
파서 코드 생성 에이전트가 매핑 계획을 JavaScript 파서 코드로 변환합니다. 예시 로그를 대상으로 코드를 테스트하고 파서가 정상적으로 실행될 때까지 오류를 해결합니다. 검토 준비 완료 파서

선택한 로그 유형에 대한 로그가 없어서 파서 생성이 실패하면 생성을 다시 시작하기 전에 해당 로그 유형의 원시 로그를 수집하세요. 다른 생성 실패의 경우 수동 분류 옵션을 사용할 수 없습니다. 새 생성 세션을 트리거합니다. 실패가 지속되면 지원팀에 문의하여 지원 케이스를 여세요.

커스텀 파서 검토 및 미세 조정

커스텀 파서 생성이 완료되면 상태가 AI 생성으로 변경되고 페이지에 다음 창이 표시됩니다.

  • 파서 에이전트: 후속 요청 사항을 입력할 수 있는 AI로 파서 미세 조정 프롬프트 필드가 표시됩니다.
  • 파서 코드: 검토를 위해 생성된 JavaScript 파서 코드를 표시합니다. 생성된 코드는 제출 전까지 읽기 전용입니다. 로직을 수정하려면 AI로 파서 미세 조정 필드에 프롬프트를 입력합니다.
  • 원시 로그: 로그 유형의 샘플 원시 로그를 표시합니다. 수정을 클릭하여 자체 로그 줄을 붙여넣거나 새로고침을 클릭하여 다른 샘플을 로드할 수 있습니다.
  • UDM 출력 표시: 원시 로그에 대해 현재 파서 코드를 실행하고 결과 UDM 이벤트를 표시하여 각 매핑을 확인할 수 있습니다.

생성된 출력 검토

파서를 활성화하기 전에 샘플 로그에서 생성된 매핑을 검토합니다.

  1. 파싱하려는 각 이벤트 유형을 포함하여 여러 원시 로그를 로드하고 각 로그에 대해 UDM 출력 표시를 클릭합니다.
  2. 파서가 원시 로그 필드를 적절한 UDM 필드에 매핑하고 해당 값을 정확하게 채우는지 확인합니다 (예: 이벤트 메타데이터, principal 및 target와 같은 항목 필드, 보안 결과 필드).
  3. 매핑되지 않은 중요한 원시 필드가 있는지 확인합니다.

AI로 커스텀 파서 미세 조정

매핑이 잘못되었거나 누락된 경우 AI로 파서 미세 조정 필드에 안내를 입력하고 확인을 클릭합니다. 파서 에이전트는 처음부터 다시 시작하는 대신 기존 파서를 업데이트하고 언급하지 않은 모든 매핑을 보존합니다. 각 미세 조정은 검토할 수 있는 파서 코드의 새 버전을 만듭니다.

효과적인 조정 프롬프트를 작성하려면 다음 가이드라인을 따르세요.

  1. 원시 소스 필드 (또는 로그의 샘플 값)와 정확한 대상 UDM 필드 경로를 모두 명시합니다.
  2. 관련된 변경사항을 함께 그룹화하고 하나의 긴 프롬프트에 관련 없는 수정사항을 혼합하지 마세요.
  3. 원시 로그의 정확한 문자열을 작은따옴표로 묶습니다(예: 'NXDOMAIN' 또는 'allow').
  4. 매핑이 필드 값에 따라 달라지는 경우 if ... then ... otherwise ... 구조를 사용하여 조건부 매핑을 명시적으로 지정합니다.
  5. 에이전트에게 일치하는 UDM 필드가 없는 공급업체별 속성을 명확한 키 이름으로 additional.fields에 매핑하도록 지시합니다.

다음 표에서는 GCP DNS 로그의 미세 조정 프롬프트 예시를 보여줍니다.

목표 프롬프트 예시
잘못된 매핑 수정 "Map jsonPayload.sourceIP to principal.ip instead of target.ip."
누락된 필드 추가 "Map jsonPayload.vmInstanceName to principal.hostname."
중첩되거나 반복되는 값 매핑 "Map jsonPayload.queryName to network.dns.questions.name and jsonPayload.queryType to network.dns.questions.type."
조건부 논리 적용 "If jsonPayload.responseCode is 'NXDOMAIN', set security_result.summary to 'Domain does not exist'. Otherwise, leave it empty."
이벤트 유형 설정 "Set metadata.event_type to NETWORK_DNS for all DNS query logs."
공급업체별 필드 매핑 "Map jsonPayload.alias_query_response_code to additional.fields with key 'alias_query_response_code'."
매핑 삭제 "Stop mapping jsonPayload.protocol to network.application_protocol."

커스텀 파서 제출 및 활성화

UDM 출력이 정확하면 제출을 클릭하여 생성된 커스텀 파서를 저장하고 활성화합니다.

대신 초안 파서를 삭제하려면 삭제를 클릭합니다. 나중에 저장된 AI 생성 커스텀 파서를 삭제하려면 파서를 열고 커스텀 파서 삭제에서 삭제를 클릭합니다.

AI 커스텀 파서 생성 문제 해결

다음 표에는 AI로 커스텀 파서를 생성할 때 발생할 수 있는 일반적인 문제와 해결 방법이 나와 있습니다.

문제 또는 증상 해결 방법
AI로 파서 만들기 옵션이 표시되지 않습니다. 인스턴스에 이 기능이 사용 설정되어 있지 않습니다. Google SecOps 담당자에게 문의하세요.
로그 유형에 대한 로그를 찾을 수 없어 생성이 실패합니다. 파서 에이전트에는 선택한 로그 유형에 대해 수집된 원시 로그가 필요합니다. 생성을 다시 시작하기 전에 로그 유형의 원시 로그를 수집하세요.
다른 이유로 생성이 실패합니다. 생성에 실패한 경우 수동 분류 옵션을 사용할 수 없습니다. 생성을 다시 트리거합니다. 실패가 지속되면 지원팀에 문의하여 지원 케이스를 여세요.
생성을 완료하는 데 시간이 오래 걸립니다. 생성하는 데 일반적으로 30~90분이 걸립니다. 다양한 형식이나 대규모 스키마가 있는 복잡한 로그 소스는 더 오래 걸립니다. 페이지를 닫고 나중에 SIEM 설정 > 파서로 돌아갈 수 있습니다.
많은 필드가 매핑되지 않은 상태로 남아 있습니다. 로그 필드를 설명하는 문서 링크를 추가하고 새 세션을 시작하거나, 상세검색 프롬프트를 사용하여 누락된 필드를 매핑하세요.
정제 프롬프트가 관련 없는 매핑을 변경했습니다. 후속 프롬프트에서 수정사항을 설명합니다 (예: "Revert the change to principal.ip and map jsonPayload.sourceIP to it again."). 또는 파서를 제출하고 활성화하여 코드를 수동으로 수정합니다.
일부 로그가 UDM 출력 표시에서 파싱되지 않습니다. 실패한 로그를 원시 로그 창에 붙여넣고 로그의 파싱되지 않은 부분을 인용하는 상세검색 프롬프트를 전송합니다.

AI로 파서 확장 프로그램 만들기

Google SecOps의 기본 로그 파서가 로그 소스를 파싱할 때 고객별 맞춤 속성, 옵션 필드 또는 특수 원격 분석이 생략될 수 있습니다. AI 파서 확장 프로그램 (AI로 연장하기 확장 프로그램)을 사용하면 다음 작업을 수행할 수 있습니다.

  • 원시 로그에서 추가 필드를 추출하고 표준 UDM 필드 또는 커스텀 additional.fields에 매핑합니다.
  • 문자열 작업을 UDM 열거형에 매핑하는 등의 조건부 로직 및 값 변환을 적용합니다.
  • 처음부터 다시 시작할 필요 없이 멀티턴 채팅 세션에서 대화형으로 생성된 확장 프로그램을 미세 조정합니다.

프롬프트 작성 권장사항

정확한 파서 확장 프로그램을 가져오려면 다음 프롬프트 가이드라인을 따르세요.

  1. 원시 로그의 어느 부분을 추출할지, 어떤 정확한 UDM 필드 경로를 채울지 명확하게 명시합니다 (예: principal.ip, target.user.email_addresses 또는 security_result.action).
  2. 비정형 로그의 리터럴 문자열, 구분 기호 또는 샘플 값을 작은따옴표로 묶습니다(예: '198.51.100.0' 또는 'allow').
  3. 전용 UDM 필드가 없는 독점 또는 공급업체별 속성을 명확한 키 이름 (예: additional.fields["application"])을 사용하여 additional.fields에 매핑하도록 AI에 지시합니다.

파서 확장 프로그램 생성

Google SecOps의 다음 위치 중 하나에서 파서 확장 프로그램 워크플로를 시작할 수 있습니다.

  • SIEM 설정 > 파서로 이동하여 기존 로그 파서를 선택하고 확장합니다.
  • 검색 페이지에서 로그를 조사할 때 파싱되지 않은 필드가 있는 이벤트에서 직접 확장 프로그램 생성 흐름을 엽니다.

파서 페이지에서 파서 확장 프로그램을 생성하려면 다음 단계를 따르세요.

  1. Google SecOps에서 SIEM 설정 > 파서로 이동합니다.
  2. 파서 테이블에서 확장하려는 로그 유형을 검색합니다.
  3. 파서 행에서 메뉴를 클릭하고 파서 확장 > 확장 프로그램 만들기를 선택합니다.
  4. 원시 로그 창에서 샘플 원시 로그를 확인하거나 수정을 클릭하여 파싱할 로그 샘플을 붙여넣습니다.
  5. 확장 프로그램 창의 확장 프로그램 메서드에서 AI로 확장 프로그램 작성을 선택합니다.
  6. 프롬프트 필드에 추출하려는 필드를 일반 영어로 설명합니다.
  7. 확인을 클릭합니다.

    시스템에서 확장 프로그램 코드를 생성하고 UDM 출력 창을 업데이트합니다.

파서 확장 프로그램 미세 조정

멀티턴 채팅 세션에서 파서 확장 프로그램을 반복적으로 빌드하고 미세 조정할 수 있습니다. 후속 프롬프트를 제출하면 AI가 이전에 생성된 확장 프로그램에 새로운 지침을 적용합니다. 이전 차례의 기존 매핑과 조건부 로직은 명시적으로 재정의하거나 삭제하도록 요청하지 않는 한 자동으로 보존됩니다.

  1. 프롬프트 필드에 후속 요청 사항을 입력하여 생성된 코드를 조정합니다.
  2. 확인을 클릭합니다.
  3. 각 프롬프트가 끝난 후 생성된 확장 프로그램 코드를 미리 보고, 샘플 UDM 출력을 검사하고, 로직을 확인하거나 조정합니다.

다음 워크플로 예시는 반복적 미세 조정을 통해 여러 차례에 걸쳐 파서 확장 프로그램을 빌드하는 방법을 보여줍니다.

  1. 대화 1 (초기 추출):
    • 사용자 프롬프트: "Extract source IP '198.51.100.0' to principal.ip and destination IP '198.51.100.1' to target.ip."
    • 결과: AI가 principal.ip 및 target.ip를 매핑하는 확장 프로그램을 생성합니다.
  2. 턴 2 (추가 매핑):
    • 사용자 프롬프트: "Also map virtual system string 'vsys1' to observer.administrative_domain."
    • 결과: AI는 1단계의 IP 매핑을 유지하면서 observer.administrative_domain를 매핑하도록 확장 프로그램을 업데이트합니다.
  3. 대화 3 (조건부 상세 검색):
    • 사용자 프롬프트: "In addition, map action string 'allow' to security_result[0].action as ALLOW."
    • 결과: AI는 이전의 모든 추출 위에 조건부 작업 열거형 매핑을 통합합니다.

파서 확장 프로그램 검사

  1. 검증을 클릭합니다.
  2. 프로세스가 완료된 후 검증 측정항목을 검토합니다.

참조 정보 액세스

다음 예시를 사용하여 파서 확장 프로그램에 대한 정확한 프롬프트를 작성하세요.

구조화된 로그 프롬프트

데이터가 이름이 지정된 키, 속성 또는 XML 태그로 구성된 구조화된 로그의 경우 프롬프트에 필드 이름이나 경로를 지정합니다.

샘플 구조화된 로그 - JSON 형식
{
  "insertId": "u0mlpdesys",
  "logName": "projects/sample-project-id/logs/cloudaudit.googleapis.com%2Fdata_access",
  "protoPayload": {
    "authenticationInfo": {
      "principalEmail": "analyst@example-domain.com"
    },
    "methodName": "GenerateAccessToken",
    "requestMetadata": {
      "callerIp": "203.0.113.195",
      "callerSuppliedUserAgent": "google-cloud-sdk gcloud/392.0.0"
    },
    "resourceName": "projects/-/serviceAccounts/110649196922301550006",
    "serviceName": "iamcredentials.googleapis.com"
  }
}
구조화된 로그의 프롬프트 예시
프롬프트 요청 사항 소스 필드 또는 키 대상 UDM 필드
"Map principalEmail to principal.user.email_addresses." principalEmail principal.user.email_addresses
"Extract callerIp to principal.ip and methodName to metadata.product_event_type." callerIp, methodName principal.ip, metadata.product_event_type
"Map resourceName to target.resource.name and serviceName to target.application." resourceName, serviceName target.resource.name, target.application
"From XML tags, map /Event/System/Hostname to principal.hostname." /Event/System/Hostname principal.hostname

구조화되지 않은 로그 프롬프트

비정형 로그의 경우 샘플 로그, 위치 참조 또는 설명 라벨에서 직접 리터럴 값을 지정합니다.

샘플 비정형 syslog 메시지
<14>Nov  9 18:52:45 198.51.100.1 1,2021/11/09 18:52:45,007051000184334,TRAFFIC,start,2561,2021/11/09 18:52:45,198.51.100.0,198.51.100.1,0.0.0.0,0.0.0.0,any allow,,,ping,vsys1,LAN,LAN,ethernet1/2,ethernet1/2,LFPpan,2021/11/09 18:52:45,9729,6,0,0,2048,0,0x100000,icmp,allow,444,444,0,6
비정형 로그의 프롬프트 예시
프롬프트 요청 사항 샘플 리터럴 값 또는 설명 대상 UDM 필드
"Extract source IP '198.51.100.0' to principal.ip and destination IP '198.51.100.1' to target.ip." '198.51.100.0', '198.51.100.1' principal.ip, target.ip
"Extract the application string 'ping' from the log and map it to additional.fields['application']." 'ping' additional.fields["application"]
"Map rule name 'any allow' to security_result.rule_id." 'any allow' security_result[0].rule_id
"Extract sent bytes and received bytes into network.sent_bytes and network.received_bytes." 로그의 숫자 바이트 카운터 network.sent_bytes, network.received_bytes

조건부 로직 프롬프트

원시 로그 값을 특정 UDM 열거형으로 정규화하는 조건부 로직을 설명합니다.

  • 열거형 정규화: "If the firewall action in the log is 'allow', set security_result.action to ALLOW; otherwise set security_result.action to BLOCK."
  • 조건부 필드 매핑: "If the protocol is 'icmp', map the ICMP type and code into network.icmp.type and network.icmp.code."
  • 상태 매핑: "When the log status contains 'success' or '0', set security_result.severity to INFO; if it contains 'error', set it to ERROR."

사용량 한도

최적의 성능과 리소스 가용성을 유지하기 위해 AI 파싱 기능은 다음과 같은 기본 사용 할당량을 적용합니다.

  • 24시간 동안 인스턴스당 최대 10개의 AI 커스텀 파서 생성 또는 AI 파서 확장 프로그램 세션을 시작할 수 있습니다. 커스텀 파서의 경우 새 파서에 대해 파서 생성을 클릭할 때마다 세션이 시작됩니다.
  • 각 세션에는 다음과 같은 상호작용 한도가 적용됩니다.
    • AI 커스텀 파서 생성의 경우 각 세션은 초기 생성과 최대 5개의 상세검색 프롬프트를 포함하여 총 6회까지 지원합니다.
    • AI 파서 확장 프로그램의 경우 각 세션에서 초기 프롬프트와 후속 상세검색 차례를 포함하여 총 5개의 메시지를 지원합니다.

세션의 차례 또는 메시지 한도에 도달하면 현재 작업을 제출하거나 저장하거나 새 세션을 시작할 수 있습니다 (일일 세션 할당량 적용). 커스텀 파서의 경우 파서를 제출하고 활성화한 후 다른 커스텀 파서와 마찬가지로 코드를 수동으로 수정할 수 있습니다.

다음 단계

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