Lacework Cloud Security 로그 수집
다음에서 지원:
Google SecOps
SIEM
개요
이 파서는 Lacework Cloud Security JSON 로그에서 필드를 추출하여 UDM 형식으로 변환합니다. 원시 로그 필드를 UDM 필드에 매핑하고 다양한 데이터 유형을 처리하며 태그의 추가 컨텍스트로 이벤트를 보강하여 궁극적으로 사용자 및 대상 정보의 존재 여부에 따라 이벤트 유형을 분류합니다.
시작하기 전에
- Google SecOps 인스턴스가 있는지 확인합니다.
- FortiCNAPP Lacework에 대한 권한이 있는지 확인합니다.
Lacework 로그를 수집하도록 Google SecOps에서 피드 구성
- SIEM 설정 > 피드로 이동합니다.
- 새로 추가를 클릭합니다.
- 피드 이름 필드에 피드 이름을 입력합니다 (예: Lacework Logs).
- 소스 유형으로 Webhook을 선택합니다.
- 로그 유형으로 Lacework를 선택합니다.
- 다음을 클릭합니다.
- 선택사항: 다음 입력 파라미터의 값을 지정합니다.
- 분할 구분 기호: 로그 줄을 구분하는 데 사용되는 구분 기호입니다(예:
\n
). - 애셋 네임스페이스: 애셋 네임스페이스입니다.
- 수집 라벨: 이 피드의 이벤트에 적용된 라벨입니다.
- 분할 구분 기호: 로그 줄을 구분하는 데 사용되는 구분 기호입니다(예:
- 다음을 클릭합니다.
- 확정 화면에서 피드 구성을 검토한 다음 제출을 클릭합니다.
- 보안 비밀 키 생성을 클릭하여 이 피드를 인증하기 위한 보안 비밀 키를 생성합니다.
- 비밀 키를 복사하여 저장합니다. 이 보안 비밀 키는 다시 볼 수 없습니다. 필요한 경우 새 보안 비밀 키를 재생성할 수 있지만 이 작업을 하면 이전 보안 비밀 키는 더 이상 사용할 수 없게 됩니다.
- 세부정보 탭의 엔드포인트 정보 필드에서 피드 엔드포인트 URL을 복사합니다. 클라이언트 애플리케이션에서 이 엔드포인트 URL을 지정해야 합니다.
- 완료를 클릭합니다.
웹훅 피드에 대한 API 키 만들기
Google Cloud 콘솔 > 사용자 인증 정보로 이동합니다.
사용자 인증 정보 만들기를 클릭한 후 API 키를 선택합니다.
Chronicle API에 대한 API 키 액세스를 제한합니다.
엔드포인트 URL 지정
- 클라이언트 애플리케이션에서 웹훅 피드에 제공된 HTTPS 엔드포인트 URL을 지정합니다.
다음 형식의 커스텀 헤더의 일부로 API 키와 보안 비밀 키를 지정하여 인증을 사용 설정합니다.
X-goog-api-key = API_KEY X-Webhook-Access-Key = SECRET
권장사항: API 키를 URL에 지정하는 대신 헤더로 지정하세요.
웹훅 클라이언트가 커스텀 헤더를 지원하지 않는 경우 다음 형식의 쿼리 매개변수를 사용하여 API 키와 보안 비밀 키를 지정할 수 있습니다.
ENDPOINT_URL?key=API_KEY&secret=SECRET
다음을 바꿉니다.
ENDPOINT_URL
: 피드 엔드포인트 URL입니다.API_KEY
: Google SecOps에 인증하기 위한 API 키입니다.SECRET
: 피드를 인증하기 위해 생성한 보안 비밀 키입니다.
Google SecOps용 Lacework Webhook 구성
- 관리자 권한으로 Lacework FortiCNAPP Console에 로그인합니다.
- 설정 > 알림 > 알림 채널로 이동합니다.
- + 새로 추가를 클릭합니다.
- Webhook을 선택합니다.
- 다음을 클릭합니다.
- 채널에 고유한 이름을 지정합니다 (예: Google SecOps).
- 웹훅 URL:
<ENDPOINT_URL>
다음에<API_KEY>
및<SECRET>
을 입력합니다. - 저장을 클릭합니다.
- 알림 규칙을 선택하고 필요한 알림 라우팅 세부정보를 구성합니다.
UDM 매핑 표
로그 필드 | UDM 매핑 | 논리 |
---|---|---|
AGENT_VERSION |
metadata.product_version |
AGENT_VERSION 필드에서 직접 매핑됩니다. |
CREATED_TIME |
metadata.event_timestamp |
CREATED_TIME 필드에서 직접 매핑되며 타임스탬프로 변환됩니다. |
FILEDATA_HASH |
target.file.sha256 |
FILEDATA_HASH 필드에서 직접 매핑됩니다. |
FILE_PATH |
target.file.full_path |
FILE_PATH 필드에서 직접 매핑됩니다. |
IP_ADDR |
principal.ip |
IP_ADDR 필드에서 직접 매핑됩니다. |
OS |
target.platform |
OS 필드에서 매핑됩니다. 로직은 다양한 OS 문자열 (Linux, Windows, Mac)을 UDM enum 값 (LINUX, WINDOWS, MAC)으로 변환합니다. 일치하는 항목이 없으면 기본값은 UNKNOWN_PLATFORM입니다. |
STATUS |
additional.fields[].key:"STATUS", value.string_value |
STATUS 필드에서 추가 필드로 직접 매핑됩니다. |
TAGS.Account |
metadata.product_deployment_id |
TAGS.Account 필드에서 직접 매핑됩니다. |
TAGS.AmiId |
additional.fields[].key:"AmiId", value.string_value |
TAGS.AmiId 필드에서 추가 필드로 직접 매핑됩니다. |
TAGS.ExternalIp |
target.ip |
TAGS.ExternalIp 필드에서 직접 매핑됩니다. |
TAGS.Hostname |
principal.hostname |
TAGS.Hostname 필드에서 직접 매핑됩니다. |
TAGS.InstanceId |
target.asset_id |
TAGS.InstanceId 필드에서 직접 매핑되며 '기기 인스턴스 ID: '라는 접두사가 붙습니다. |
TAGS.LwTokenShort |
additional.fields[].key:"LwTokenShort", value.string_value |
TAGS.LwTokenShort 필드에서 추가 필드로 직접 매핑됩니다. |
TAGS.MID |
additional.fields[].key:"MID", value.string_value |
MID 필드에서 추가 필드로 직접 매핑됩니다. |
TAGS.MODE |
additional.fields[].key:"MODE", value.string_value |
MODE 필드에서 추가 필드로 직접 매핑됩니다. |
TAGS.Name |
additional.fields[].key:"Name", value.string_value |
TAGS.Name 필드에서 추가 필드로 직접 매핑됩니다. |
TAGS.QSConfigName-vfzg0 |
additional.fields[].key:"QSConfigName", value.string_value |
TAGS.QSConfigName-vfzg0 필드에서 추가 필드로 직접 매핑됩니다. |
TAGS.ResourceType |
target.resource.resource_subtype |
TAGS.ResourceType 필드에서 직접 매핑됩니다. |
TAGS.SubnetId |
target.resource.attribute.labels[].key:"Subnet Id", value |
TAGS.SubnetId 필드에서 target.resource.attribute 내 라벨로 직접 매핑됩니다. |
TAGS.VmInstanceType |
target.resource.attribute.labels[].key:"VmInstanceType", value |
TAGS.VmInstanceType 필드에서 target.resource.attribute 내 라벨로 직접 매핑됩니다. |
TAGS.VmProvider |
target.resource.attribute.labels[].key:"VmProvider", value |
TAGS.VmProvider 필드에서 target.resource.attribute 내 라벨로 직접 매핑됩니다. |
TAGS.VpcId |
target.resource.product_object_id |
TAGS.VpcId 필드에서 직접 매핑됩니다. |
TAGS.Zone |
target.cloud.availability_zone |
TAGS.Zone 필드에서 직접 매핑됩니다. |
TAGS.alpha.eksctl.io/nodegroup-name |
additional.fields[].key:"eksctl_nodegroup_name", value.string_value |
TAGS.alpha.eksctl.io/nodegroup-name 필드에서 추가 필드로 직접 매핑됩니다. |
TAGS.alpha.eksctl.io/nodegroup-type |
additional.fields[].key:"eksctl_nodegroup_type", value.string_value |
TAGS.alpha.eksctl.io/nodegroup-type 필드에서 추가 필드로 직접 매핑됩니다. |
TAGS.arch |
principal.platform_version |
TAGS.arch 필드에서 직접 매핑됩니다. |
TAGS.aws:autoscaling:groupName |
additional.fields[].key:"autoscaling_groupName", value.string_value |
TAGS.aws:autoscaling:groupName 필드에서 추가 필드로 직접 매핑됩니다. |
TAGS.aws:ec2:fleet-id |
additional.fields[].key:"ec2_fleetid", value.string_value |
TAGS.aws:ec2:fleet-id 필드에서 추가 필드로 직접 매핑됩니다. |
TAGS.aws:ec2launchtemplate:id |
additional.fields[].key:"ec2launchtemplate_id", value.string_value |
TAGS.aws:ec2launchtemplate:id 필드에서 추가 필드로 직접 매핑됩니다. |
TAGS.aws:ec2launchtemplate:version |
additional.fields[].key:"ec2launchtemplate_ver", value.string_value |
TAGS.aws:ec2launchtemplate:version 필드에서 추가 필드로 직접 매핑됩니다. |
TAGS.aws:eks:cluster-name |
additional.fields[].key:"eks_cluster_name", value.string_value |
TAGS.aws:eks:cluster-name 필드에서 추가 필드로 직접 매핑됩니다. |
TAGS.enableCrowdStrike |
additional.fields[].key:"enableCrowdStrike", value.string_value |
TAGS.enableCrowdStrike 필드에서 추가 필드로 직접 매핑됩니다. |
TAGS.falconx.io/application |
additional.fields[].key:"io/application", value.string_value |
TAGS.falconx.io/application 필드에서 추가 필드로 직접 매핑됩니다. |
TAGS.falconx.io/environment |
additional.fields[].key:"io/environment", value.string_value |
TAGS.falconx.io/environment 필드에서 추가 필드로 직접 매핑됩니다. |
TAGS.falconx.io/managedBy |
additional.fields[].key:"io/managedBy", value.string_value |
TAGS.falconx.io/managedBy 필드에서 추가 필드로 직접 매핑됩니다. |
TAGS.falconx.io/project |
additional.fields[].key:"io/project", value.string_value |
TAGS.falconx.io/project 필드에서 추가 필드로 직접 매핑됩니다. |
TAGS.falconx.io/proxy-type |
additional.fields[].key:"io/proxy_type", value.string_value |
TAGS.falconx.io/proxy-type 필드에서 추가 필드로 직접 매핑됩니다. |
TAGS.falconx.io/service |
additional.fields[].key:"io/service", value.string_value |
TAGS.falconx.io/service 필드에서 추가 필드로 직접 매핑됩니다. |
TAGS.falconx.io/team |
additional.fields[].key:"io/team", value.string_value |
TAGS.falconx.io/team 필드에서 추가 필드로 직접 매핑됩니다. |
TAGS.k8s.io/cluster-autoscaler/enabled |
additional.fields[].key:"k8s_autoscaler_enabled", value.string_value |
TAGS.k8s.io/cluster-autoscaler/enabled 필드에서 추가 필드로 직접 매핑됩니다. |
TAGS.k8s.io/cluster-autoscaler/falcon |
additional.fields[].key:"k8s_cluster_autoscaler", value.string_value |
TAGS.k8s.io/cluster-autoscaler/falcon 필드에서 추가 필드로 직접 매핑됩니다. |
TAGS.kubernetes.io/cluster/falcon |
additional.fields[].key:"kubernetes_io_cluster", value.string_value |
TAGS.kubernetes.io/cluster/falcon 필드에서 추가 필드로 직접 매핑됩니다. |
TAGS.lw_KubernetesCluster |
additional.fields[].key:"lw_KubernetesCluster", value.string_value |
TAGS.lw_KubernetesCluster 필드에서 추가 필드로 직접 매핑됩니다. |
LAST_UPDATE |
additional.fields[].key:"LAST_UPDATE", value.string_value |
LAST_UPDATE 필드에서 추가 필드로 직접 매핑됩니다. 'LACEWORK'로 하드코딩되었습니다. 'Lacework Cloud Security'로 하드코딩됩니다. |
metadata.event_type |
metadata.event_type |
로직에 따라 결정됩니다. principal.ip와 target.ip가 모두 있는 경우 'NETWORK_CONNECTION'으로, principal.ip만 있는 경우 'STATUS_UPDATE'로, 그 밖의 경우에는 'GENERIC_EVENT'로 설정합니다. |
변경사항
2023-11-09
- 파서를 새로 만들었습니다.