Falco IDS 로그 수집

파서 버전: 1.0

다음에서 지원:

이 문서에서는 Falcosidekick을 통해 웹훅을 사용하여 런타임 보안 알림을 Google Security Operations로 푸시하도록 Falco를 구성하는 방법을 설명합니다.

Falco는 예상치 못한 애플리케이션 동작을 감지하고 런타임 시 위협을 알리는 오픈소스 런타임 보안 도구입니다. 시스템 호출 모니터링을 사용하여 맞춤설정 가능한 보안 규칙에 따라 컨테이너, Kubernetes, Linux 호스트의 비정상적인 활동을 감지합니다.

시작하기 전에

다음 기본 요건이 충족되었는지 확인합니다.

  • Google SecOps 인스턴스
  • Kubernetes (Helm을 통해) 또는 Linux 호스트에 설치된 Falco
  • Falco 구성 파일 또는 Helm 값을 수정할 수 있는 액세스 권한입니다.
  • Falcosidekick을 배포할 수 있는 액세스 권한 (아직 배포되지 않은 경우)

Google SecOps에서 웹훅 피드 만들기

피드 만들기

  1. SIEM 설정 > 피드로 이동합니다.
  2. 새 피드 추가를 클릭합니다.
  3. 다음 페이지에서 단일 피드 구성을 클릭합니다.
  4. 피드 이름 필드에 피드 이름을 입력합니다(예: Falco Runtime Security).
  5. 소스 유형으로 웹훅을 선택합니다.
  6. 로그 유형으로 Falco IDS를 선택합니다.
  7. 다음을 클릭합니다.
  8. 다음 입력 파라미터의 값을 지정합니다.
    • 분할 구분자 (선택사항): 비워 둡니다 (Falcosidekick은 요청당 하나의 이벤트를 전송함).
    • 애셋 네임스페이스: 애셋 네임스페이스
    • 수집 라벨: 이 피드의 이벤트에 적용할 라벨입니다.
  9. 다음을 클릭합니다.
  10. 확정 화면에서 새 피드 구성을 검토한 다음 제출을 클릭합니다.

보안 비밀 키 생성 및 저장

피드를 만든 후 인증을 위한 보안 비밀 키를 생성해야 합니다.

  1. 피드 세부정보 페이지에서 보안 비밀 키 생성을 클릭합니다.
  2. 대화상자에 보안 비밀 키가 표시됩니다.
  3. 보안 비밀 키를 안전하게 복사하여 저장합니다.

피드 엔드포인트 URL 가져오기

  1. 피드의 세부정보 탭으로 이동합니다.
  2. 엔드포인트 정보 섹션에서 피드 엔드포인트 URL을 복사합니다.
  3. URL 형식은 다음과 같습니다.

    https://{region}-chronicle.googleapis.com/v1/{parent}/logs:import
    

    여기서 {region}는 Google SecOps 인스턴스의 리전 (예: us, europe, asia-southeast1)이고 {parent}은 projects/<PROJECT_ID>/locations/<LOCATION>/instances/<INSTANCE_ID>/logTypes/<LOG_TYPE> 형식의 리소스 경로입니다.

  4. 다음 단계를 위해 이 URL을 저장합니다.

  5. 완료를 클릭합니다.

Google Cloud API 키 만들기

Google SecOps에는 인증을 위한 API 키가 필요합니다. Google Cloud 콘솔에서 제한된 API 키를 만듭니다.

API 키 만들기

  1. Google Cloud 콘솔 사용자 인증 정보 페이지로 이동합니다.
  2. 프로젝트 (Google SecOps 인스턴스와 연결된 프로젝트)를 선택합니다.
  3. 사용자 인증 정보 만들기 > API 키를 클릭합니다. API 키가 생성되어 대화상자에 표시됩니다.
  4. API 키 수정을 클릭하여 키를 제한합니다.

API 키 제한

  1. API 키 설정 페이지에서 다음을 수행합니다.
    • 이름: 구체적인 이름을 입력합니다 (예: Chronicle Webhook API Key).
  2. API 제한사항에서 다음을 실행합니다.
    1. 키 제한을 선택합니다.
    2. API 선택 목록에서 Google SecOps API (또는 Chronicle API)를 검색하여 선택합니다.
  3. 저장을 클릭합니다.
  4. 페이지 상단의 API 키 필드에서 API 키 값을 복사합니다.
  5. API 키를 안전하게 저장합니다.

Falcosidekick 배포

Falcosidekick은 Falco의 공식 프록시 전달자로, 웹훅, 클라우드 스토리지, SIEM 플랫폼을 비롯한 여러 대상으로 알림을 라우팅합니다.

Falco를 처음 설치하거나 재배포할 수 있는 경우 이 방법을 사용하여 Falco와 Falcosidekick을 함께 배포하세요.

  1. Falco Helm 저장소를 추가합니다.

    helm repo add falcosecurity https://falcosecurity.github.io/charts
    helm repo update
    
  2. Falco의 네임스페이스를 만듭니다.

    kubectl create namespace falco
    
  3. 인증을 사용하여 Google SecOps 웹훅 URL을 구성합니다.

    <ENDPOINT_URL>?key=<API_KEY>
    

    예:

    https://{region}-chronicle.googleapis.com/v1/{parent}/logs:import?key=AIzaSyD...
    
  4. Falcosidekick을 사용 설정하여 Falco를 설치합니다.

    helm install falco falcosecurity/falco \
        --namespace falco \
        --set falcosidekick.enabled=true \
        --set falcosidekick.config.webhook.address="<ENDPOINT_URL>?key=<API_KEY>" \
        --set falcosidekick.config.webhook.customHeaders="X-Webhook-Access-Key:<SECRET_KEY>" \
        --set falcosidekick.config.webhook.minimumpriority="warning" \
        --set tty=true
    

    다음과 같이 바꿉니다.

    • <ENDPOINT_URL>: Google SecOps 피드 엔드포인트 URL
    • <API_KEY>: Google Cloud API 키
    • <SECRET_KEY>: 피드 생성 시의 Google SecOps 보안 비밀 키
  5. 배포를 확인합니다.

    kubectl get pods -n falco
    

    예상 출력에는 Falco 및 Falcosidekick 포드가 모두 실행 중인 것으로 표시됩니다.

    NAME                            READY   STATUS    RESTARTS   AGE
    falco-xxxxx                     2/2     Running   0          2m
    falco-falcosidekick-xxxxx       1/1     Running   0          2m
    

옵션 B: Falcosidekick 독립형 배포

Falco가 이미 배포된 경우 Falcosidekick을 별도로 배포하고 Falco가 알림을 보내도록 구성할 수 있습니다.

Falcosidekick 배포

  1. Falco Helm 저장소를 추가합니다 (아직 추가되지 않은 경우).

    helm repo add falcosecurity https://falcosecurity.github.io/charts
    helm repo update
    
  2. 인증을 사용하여 Google SecOps 웹훅 URL을 구성합니다.

    <ENDPOINT_URL>?key=<API_KEY>
    
  3. Falcosidekick을 설치합니다.

    helm install falcosidekick falcosecurity/falcosidekick \
        --namespace falco \
        --set config.webhook.address="<ENDPOINT_URL>?key=<API_KEY>" \
        --set config.webhook.customHeaders="X-Webhook-Access-Key:<SECRET_KEY>" \
        --set config.webhook.minimumpriority="warning"
    

    다음과 같이 바꿉니다.

    • <ENDPOINT_URL>: Google SecOps 피드 엔드포인트 URL
    • <API_KEY>: Google Cloud API 키
    • <SECRET_KEY>: 피드 생성 시의 Google SecOps 보안 비밀 키
  4. Falcosidekick이 실행 중인지 확인합니다.

    kubectl get pods -n falco -l app.kubernetes.io/name=falcosidekick
    

Falcosidekick에 알림을 전송하도록 Falco 구성

  1. Falcosidekick 서비스 이름을 가져옵니다.

    kubectl get svc -n falco -l app.kubernetes.io/name=falcosidekick
    

    서비스 이름은 일반적으로 falcosidekick입니다.

  2. HTTP 출력을 사용 설정하도록 Falco 구성을 업데이트합니다.

    Helm을 사용하는 경우 Falco 출시 버전을 업그레이드합니다.

    helm upgrade falco falcosecurity/falco \
        --namespace falco \
        --reuse-values \
        --set falco.json_output=true \
        --set falco.json_include_output_property=true \
        --set falco.http_output.enabled=true \
        --set falco.http_output.url="http://falcosidekick:2801/"
    

    Falco 구성을 수동으로 관리하는 경우 /etc/falco/falco.yaml를 수정합니다.

    json_output: true
    json_include_output_property: true
    
    http_output:
    enabled: true
    url: "http://falcosidekick:2801/"
    
  3. Falco 포드를 다시 시작하여 구성을 적용합니다.

    kubectl rollout restart daemonset/falco -n falco
    

Linux 호스트에서 Falcosidekick 구성

Linux 호스트 (Kubernetes 아님)에서 Falco를 실행하는 경우 Falcosidekick을 systemd 서비스로 배포합니다.

Falcosidekick 바이너리 설치

  1. 최신 Falcosidekick 출시 버전을 다운로드합니다.

    FALCOSIDEKICK_VERSION="2.29.0"
    wget https://github.com/falcosecurity/falcosidekick/releases/download/${FALCOSIDEKICK_VERSION}/falcosidekick_${FALCOSIDEKICK_VERSION}_linux_amd64.tar.gz
    
  2. 바이너리를 추출하고 설치합니다.

    sudo tar -C /usr/local/bin/ -xzf falcosidekick_${FALCOSIDEKICK_VERSION}_linux_amd64.tar.gz
    sudo chmod +x /usr/local/bin/falcosidekick
    
  3. 구성 디렉터리를 만듭니다.

    sudo mkdir -p /etc/falcosidekick
    

Falcosidekick 구성

  1. 구성 파일 /etc/falcosidekick/config.yaml을 만듭니다.

    listenaddress: "0.0.0.0"
    listenport: 2801
    debug: false
    
    webhook:
      address: "<ENDPOINT_URL>?key=<API_KEY>"
      method: "POST"
      customHeaders: "X-Webhook-Access-Key:<SECRET_KEY>"
      minimumpriority: "warning"
      checkcert: true
    

    다음과 같이 바꿉니다.

    • <ENDPOINT_URL>: Google SecOps 피드 엔드포인트 URL
    • <API_KEY>: Google Cloud API 키
    • <SECRET_KEY>: 피드 생성에서 가져온 Google SecOps 보안 비밀 키
  2. systemd 서비스 파일 /etc/systemd/system/falcosidekick.service을 만듭니다.

    [Unit]
    Description=Falcosidekick
    After=network.target
    
    [Service]
    Type=simple
    User=root
    ExecStart=/usr/local/bin/falcosidekick --config-file=/etc/falcosidekick/config.yaml
    Restart=on-failure
    RestartSec=5s
    
    [Install]
    WantedBy=multi-user.target
    
  3. Falcosidekick을 사용 설정하고 시작합니다.

    sudo systemctl daemon-reload
    sudo systemctl enable falcosidekick
    sudo systemctl start falcosidekick
    
  4. Falcosidekick이 실행 중인지 확인합니다.

    sudo systemctl status falcosidekick
    

Falcosidekick에 알림을 전송하도록 Falco 구성

  1. Falco 구성 파일 /etc/falco/falco.yaml을 수정합니다.

    json_output: true
    json_include_output_property: true
    
    http_output:
      enabled: true
      url: "http://localhost:2801/"
    
  2. Falco를 다시 시작합니다.

    sudo systemctl restart falco
    

통합 확인

테스트 알림 트리거

  1. 컨테이너에서 셸을 실행하여 Falco 규칙을 트리거합니다 (Kubernetes를 사용하는 경우).

    kubectl run test-pod --image=nginx --restart=Never
    kubectl exec -it test-pod -- /bin/bash
    

    이렇게 하면 Falco 규칙 '컨테이너의 터미널 셸'이 트리거됩니다.

  2. Linux 호스트의 경우 민감한 파일을 읽어 규칙을 트리거합니다.

    cat /etc/shadow
    

    이렇게 하면 Falco 규칙 '신뢰할 수 없는 민감한 파일 읽기'가 트리거됩니다.

Falcosidekick 로그 확인

  • Kubernetes 배포의 경우:

    kubectl logs -n falco -l app.kubernetes.io/name=falcosidekick --tail=50
    

    웹훅 전송이 성공했음을 나타내는 로그 항목을 찾습니다.

    2025-01-15T10:30:00Z [INFO] : Webhook - Post OK
    
  • Linux 호스트:

    sudo journalctl -u falcosidekick -n 50
    

Google SecOps에서 이벤트 확인

  1. Google SecOps > 검색으로 이동합니다.
  2. 검색어를 실행합니다.

    metadata.log_type = "FALCO_IDS"
    
  3. Falco 이벤트가 검색 결과에 표시되는지 확인합니다.

  4. 이벤트에 다음과 같은 예상 필드가 포함되어 있는지 확인합니다.

    • rule - Falco 규칙 이름
    • priority - 알림 우선순위 (긴급, 알림, 심각, 오류, 경고, 공지, 정보, 디버그)
    • output - 사람이 읽을 수 있는 알림 메시지
    • source - 이벤트 소스 (syscall, k8s_audit)
    • hostname - 이벤트가 발생한 호스트
    • container_id - 컨테이너 ID (해당하는 경우)

우선순위 필터링

Falcosidekick은 우선순위별로 이벤트를 필터링하여 노이즈를 줄이고 중요한 알림에 집중할 수 있도록 지원합니다. לֹ

우선순위 수준

Falco는 다음 우선순위 수준을 사용합니다 (가장 높은 것부터 가장 낮은 것까지).

우선순위 설명 사용 사례
긴급 시스템을 사용할 수 없음 심각한 보안 사고
알림 즉시 조치를 취해야 함 활성 공격, 권한 에스컬레이션
심각 심각한 상태 무단 액세스, 멀웨어 실행
오류 오류 조건 정책 위반, 의심스러운 활동
경고 경고 상태 비정상적인 동작, 잠재적 위협
알림 정상이지만 중요함 구성 변경사항, 감사 이벤트
정보 제공 정보 메시지 일반 활동 로깅
디버깅 디버그 수준 메시지 문제 해결, 개발

최소 우선순위 구성

우선순위가 높은 알림만 Google SecOps로 전송하려면 minimumpriority 매개변수를 설정합니다.

  • Helm 배포:

    helm upgrade falco falcosecurity/falco \
        --namespace falco \
        --reuse-values \
        --set falcosidekick.config.webhook.minimumpriority="error"
    
  • I need to edit /etc/falcosidekick/config.yaml for Linux hosts.

    webhook:
      minimumpriority: "error"
    

이 구성은 우선순위가 error 이상 (Error, Critical, Alert, Emergency)인 이벤트만 Google SecOps로 전송합니다.

커스텀 필드

Falcosidekick을 사용하면 Google SecOps에서 더 나은 컨텍스트와 필터링을 위해 모든 이벤트에 맞춤 필드를 추가할 수 있습니다.

커스텀 필드 추가

  • Helm 배포의 경우:

    helm upgrade falco falcosecurity/falco \
        --namespace falco \
        --reuse-values \
        --set falcosidekick.config.customfields.environment="production" \
        --set falcosidekick.config.customfields.region="us-east-1" \
        --set falcosidekick.config.customfields.cluster="prod-cluster-01"
    
  • Linux 호스트의 경우 /etc/falcosidekick/config.yaml를 수정합니다.

    customfields:
      environment: "production"
      region: "us-east-1"
      datacenter: "dc1"
    

이러한 맞춤 필드는 Google SecOps로 전송되는 모든 Falco 이벤트에 추가되므로 여러 환경에서 필터링 및 상관관계를 설정할 수 있습니다.

대체 수집 경로

웹훅이 권장되는 방법이지만 Falcosidekick은 특정 사용 사례에 대한 대체 수집 경로를 지원합니다.

AWS S3 수집

대용량 환경 또는 규정 준수 요구사항의 경우 Falcosidekick을 구성하여 이벤트를 AWS S3에 작성한 다음 S3에서 Google SecOps로 수집할 수 있습니다.

  • S3용 Falcosidekick 구성:

    helm upgrade falco falcosecurity/falco \
        --namespace falco \
        --reuse-values \
        --set falcosidekick.config.aws.accesskeyid="<AWS_ACCESS_KEY>" \
        --set falcosidekick.config.aws.secretaccesskey="<AWS_SECRET_KEY>" \
        --set falcosidekick.config.aws.region="us-east-1" \
        --set falcosidekick.config.aws.s3.bucket="falco-events" \
        --set falcosidekick.config.aws.s3.prefix="runtime-security/"
    

    Falcosidekick은 다음 경로 구조를 사용하여 JSON 형식으로 이벤트를 S3에 기록합니다.

    s3://falco-events/runtime-security/YYYY-MM-DD/YYYY-MM-DDTHH:mm:ss.s+01:00.json
    

    그런 다음 Amazon S3 V2를 소스 유형으로 사용하여 Google SecOps 피드를 구성합니다.

GCP Cloud Storage 수집

GCP 환경의 경우 Google Cloud Storage에 이벤트를 쓰도록 Falcosidekick을 구성합니다.

  • GCS용 Falcosidekick 구성:

    1. 대상 버킷에 스토리지 객체 관리자 역할이 있는 GCP 서비스 계정을 만듭니다.
    2. 서비스 계정 JSON 키 파일을 다운로드합니다.
    3. JSON 키를 Base64로 인코딩합니다.

      cat service-account-key.json | base64 -w 0
      
    4. Falcosidekick을 구성합니다.

      helm upgrade falco falcosecurity/falco \
          --namespace falco \
          --reuse-values \
          --set falcosidekick.config.gcp.credentials="<BASE64_ENCODED_KEY>" \
          --set falcosidekick.config.gcp.storage.bucket="falco-events" \
          --set falcosidekick.config.gcp.storage.prefix="runtime-security/"
      

      Falcosidekick은 다음 경로 구조를 사용하여 GCS에 이벤트를 작성합니다.

      gs://falco-events/runtime-security/YYYY-MM-DD/YYYY-MM-DDTHH:mm:ss.s+01:00.json
      

    그런 다음 Google Cloud Storage V2를 소스 유형으로 사용하여 Google SecOps 피드를 구성합니다.

AWS Kinesis Firehose 수집

실시간 스트리밍 수집의 경우 AWS Kinesis Firehose에 이벤트를 전송하도록 Falcosidekick을 구성합니다.

  • Kinesis용 Falcosidekick 구성:

    helm upgrade falco falcosecurity/falco \
        --namespace falco \
        --reuse-values \
        --set falcosidekick.config.aws.accesskeyid="<AWS_ACCESS_KEY>" \
        --set falcosidekick.config.aws.secretaccesskey="<AWS_SECRET_KEY>" \
        --set falcosidekick.config.aws.region="us-east-1" \
        --set falcosidekick.config.aws.kinesis.streamname="falco-events-stream"
    

    그런 다음 Amazon Kinesis Firehose를 소스 유형으로 사용하여 Google SecOps 피드를 구성합니다.

문제 해결

Falcosidekick이 이벤트를 수신하지 않음

  1. Falco가 Falcosidekick에 이벤트를 전송하는지 확인합니다.

    kubectl logs -n falco -l app.kubernetes.io/name=falco --tail=50 | grep http_output
    
  2. Falco 구성에 HTTP 출력이 포함되어 있는지 확인합니다.

    kubectl get configmap -n falco falco -o yaml | grep -A 5 http_output
    
  3. Falcosidekick이 포트 2801에서 리슨하는지 확인합니다.

    kubectl get svc -n falco falcosidekick
    

웹훅 전송 실패

  1. Falcosidekick 로그에서 HTTP 오류를 확인합니다.

    kubectl logs -n falco -l app.kubernetes.io/name=falcosidekick --tail=100 | grep -i error
    
  2. 일반적인 오류:

    • 401 Unauthorized: API 키 또는 보안 비밀 키가 잘못되었습니다.
    • 403 Forbidden: API 키가 Google SecOps API에 대해 승인되지 않음
    • SSL 인증서 오류: 테스트를 위해 checkcert: false 설정 (프로덕션에는 권장되지 않음)
  3. 웹훅을 수동으로 테스트합니다.

    curl -X POST \
        -H "Content-Type: application/json" \
        -H "X-Webhook-Access-Key: <SECRET_KEY>" \
        -d '{"test": "event"}' \
        "<ENDPOINT_URL>?key=<API_KEY>"
    

Google SecOps에 이벤트가 표시되지 않음

  1. 피드가 활성 상태인지 확인합니다.

    • SIEM 설정 > 피드로 이동합니다.
    • 피드 상태가 활성인지 확인합니다.
    • 최종 수집 시간이 최근인지 확인합니다.
  2. 인제스트 오류를 확인합니다.

    • 피드 세부정보 페이지로 이동합니다.
    • 오류 탭을 클릭합니다.
    • 파싱 또는 검사 오류를 검토합니다.
  3. 로그 유형 매핑을 확인합니다.

    • 원시 로그를 검색합니다. metadata.log_type = "FALCO_IDS"
    • 이벤트가 표시되지만 필드가 파싱되지 않으면 UDM 매핑을 확인합니다.

UDM 매핑 테이블

로그 필드 UDM 매핑 로직
output_fields.k8s.ns.name, output_fields.k8s.pod.name additional.fields k8_ns_name 및 k8s_pod_name 객체에서 병합됨
stageTimestamp metadata.collected_timestamp ISO8601 형식을 사용하여 변환됨
단계, 설명, 출력 metadata.description 비어 있지 않은 경우 단계의 값, 그렇지 않으면 설명, 그렇지 않으면 출력
verb, user.uid, uid, output metadata.event_type GET LIST WATCH의 동사인 경우 USER_RESOURCE_ACCESS, CREATE이고 (user.uid 또는 uid가 비어 있지 않음)인 경우 USER_RESOURCE_CREATION, (PATCH 또는 UPDATE)이고 user.uid가 비어 있지 않은 경우 USER_RESOURCE_UPDATE_CONTENT, DELETE인 경우 USER_RESOURCE_DELETION, 출력이 Error를 포함하는 경우 USER_RESOURCE_ACCESS, 그렇지 않은 경우 USER_UNCATEGORIZED, 그 외의 경우 GENERIC_EVENT로 설정됩니다.
kind metadata.product_event_type 값이 직접 복사됨
auditID metadata.product_log_id 값이 직접 복사됨
apiVersion, product_version metadata.product_version 비어 있지 않으면 apiVersion의 값, 비어 있으면 product_version (따옴표 삭제 후)
portdetails.name network.application_protocol 대문자로 표시되며 HTTP HTTPS DNS에 있는 경우 값으로 설정되고 그렇지 않으면 UNKNOWN_APPLICATION_PROTOCOL로 설정됩니다.
동사 network.http.method 값이 대문자로 변환되고 직접 복사됨
responseStatus.code network.http.response_code 정수로 변환되어 직접 복사됨
userAgent network.http.user_agent 값이 직접 복사됨
portdetails.protocol network.ip_protocol 값이 직접 복사됨
output_fields.cloud-project-id observer.cloud.project.id 값이 직접 복사됨
output_fields.pod-name, output_fields.falco.pod.name observer.hostname 비어 있지 않은 경우 output_fields.pod-name의 값, 그렇지 않으면 output_fields.falco.pod.name
output_fields.pod-ip, output_fields.falco.pod.ip observer.ip 비어 있지 않은 경우 output_fields.pod-ip의 값, 그렇지 않은 경우 output_fields.falco.pod.ip
output_fields.falco.host.name principal.asset.hostname 값이 직접 복사됨
sourceIPs, output_fields.falco.host.ip principal.asset.ip 비어 있지 않은 경우 sourceIPs의 각 IP에서 병합되고, 비어 있는 경우 output_fields.falco.host.ip에서 병합됩니다.
output_fields.falco.host.name principal.hostname 값이 직접 복사됨
sourceIPs, output_fields.falco.host.ip principal.ip 비어 있지 않으면 sourceIPs의 각 IP에서 병합되고, 비어 있으면 output_fields.falco.host.ip에서 병합됩니다.
output_fields.falco.contact principal.user.email_addresses 값이 직접 복사됨
user.groups principal.user.group_identifiers user.groups 배열에서 병합됨
user.username, output_fields.user.name principal.user.user_display_name 비어 있지 않은 경우 user.username의 값, 그렇지 않으면 output_fields.user.name
user.uid, uid principal.user.userid 비어 있지 않은 경우 user.uid의 값, 비어 있는 경우 uid (따옴표 삭제 후)
annotations.authorization.k8s.io/decision security_result.action 허용하는 경우 ALLOW로 설정
annotations.authorization.k8s.io/reason security_result.description 값이 직접 복사되고 따옴표가 삭제됨
규칙 security_result.rule_name 값이 직접 복사됨
우선순위 security_result.severity_details 값이 직접 복사됨
containerid.containerID, output_fields.container.id target.asset.asset_id containerid.containerID의 값(비어 있지 않은 경우), 그렇지 않으면 'container_id:' + output_fields.container.id
target.asset.deployment_status 실행 중이거나 대기 중인 경우 ACTIVE로 설정하고, 종료된 경우 DECOMISSIONED로 설정하고, 그렇지 않으면 DEPLOYMENT_STATUS_UNSPECIFIED로 설정합니다.
address.nodeName, output_fields.host-name, tar_host target.asset.hostname 비어 있지 않은 경우 address.nodeName의 값, 그렇지 않은 경우 output_fields.host-name, 그렇지 않은 경우 출력에 대한 grok의 tar_host
address.ip, podip.ip, requestObject.status.podIP, requestObject.status.hostIP, output_fields.host-ip, tar_ip target.asset.ip responseObject.subsets.addresses의 address.ip, requestObject.status.podIPs의 podip.ip, requestObject.status.podIP, requestObject.status.hostIP, output_fields.host-ip 또는 출력의 grok에서 tar_ip에서 병합됨
output_fields.email target.email 이메일 정규식과 일치하는 경우 값이 직접 복사됨
containerStatuse.imageID, containerStatuse.image, output_fields.container.image.repository target.file.full_path 비어 있지 않고 file.full_path가 비어 있는 경우 containerStatuse.imageID의 값, 그렇지 않고 비어 있지 않고 file.full_path가 비어 있는 경우 containerStatuse.image, 그렇지 않으면 output_fields.container.image.repository
address.nodeName, output_fields.host-name, tar_host target.hostname 비어 있지 않은 경우 address.nodeName의 값, 그렇지 않으면 output_fields.host-name, 그렇지 않으면 출력의 grok에서 tar_host
address.ip, podip.ip, requestObject.status.podIP, requestObject.status.hostIP, output_fields.host-ip, tar_ip target.ip responseObject.subsets.addresses의 address.ip, requestObject.status.podIPs의 podip.ip, requestObject.status.podIP, requestObject.status.hostIP, output_fields.host-ip 또는 출력의 grok에서 tar_ip에서 병합됨
targetnamespace target.namespace 값이 직접 복사됨
portdetails.port target.port 정수로 변환되어 첫 번째 포트에 직접 복사됨
output_fields.cloud-provider target.resource.attribute.cloud.environment GCP인 경우 GOOGLE_CLOUD_PLATFORM, Azure인 경우 MICROSOFT_AZURE로 설정됩니다.
requestObject.status.containerStatuses.0.state.waiting.reason, output_fields.evt.arg.fd, output_fields.evt.arg.filename, output_fields.evt.arg.mode, output_fields.fd.name, output_fields.ol-env, output_fields.tags, output_fields.proc.cmdline, output_fields.ebpf_enabled target.resource.attribute.labels 다양한 라벨 객체에서 병합됨
address.targetRef.uid target.resource.id 비어 있지 않고 resource_id가 비어 있는 경우 address.targetRef.uid의 값
address.targetRef.name, objectRef.name, output_fields.bl-ssr target.resource.name 비어 있지 않고 resource_name이 비어 있으면 address.targetRef.name의 값, 비어 있지 않고 resource_name이 비어 있으면 objectRef.name, 비어 있지 않고 resource_name이 비어 있으면 output_fields.bl-ssr
output_fields.falco.ssrid target.resource.product_object_id 값이 직접 복사됨
address.targetRef.kind, objectRef.resource target.resource.resource_subtype 비어 있지 않고 target_resource_subtype이 비어 있으면 address.targetRef.kind의 값, 비어 있지 않고 target_resource_subtype이 비어 있으면 objectRef.resource의 값
resource_type target.resource.resource_type 비어 있으면 CLUSTER로 설정하고, 그렇지 않으면 직접 복사됩니다.
requestURI target.url 값이 직접 복사됨
responseObject.spec.group target.user.group_identifiers 배열 responseObject.spec.group에서 병합됨
responseObject.spec.user target.user.user_display_name 값이 직접 복사됨
responseObject.metadata.uid, responseObject.spec.uid, objectRef.uid, requestObject.metadata.uid, output_fields.user.loginuid target.user.userid 비어 있지 않은 경우 responseObject.metadata.uid, 그렇지 않은 경우 responseObject.spec.uid, 그렇지 않은 경우 objectRef.uid, 그렇지 않은 경우 requestObject.metadata.uid, 그렇지 않은 경우 output_fields.user.loginuid (문자열로 변환됨)의 값
metadata.product_name 'FALCO_IDS'로 설정
metadata.vendor_name 'FALCO_IDS'로 설정
priority security_result.priority 변경 로그에서 매핑됨
time date 변경 로그에서 매핑됨
output_fields.tags target.labels 변경 로그에서 매핑됨

변경 로그

이 파서의 변경 로그 보기

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