Palo Alto Cortex XDR 이벤트 로그 수집
이 문서에서는 Google Cloud Storage를 사용하여 Palo Alto Cortex XDR 이벤트 로그를 Google Security Operations에 처리하는 방법을 설명합니다. 파서는 Palo Alto Networks Cortex XDR JSON 로그에서 보안 이벤트 데이터를 추출합니다. 필드를 매핑하고, 데이터 유형을 변환하고, event_type
및 event_sub_type
필드에 연결된 조건부 로직에 따라 공급업체, 제품, 이벤트 유형과 같은 메타데이터로 이벤트를 보강하여 데이터를 통합 데이터 모델 (UDM)로 정규화합니다. 또한 네트워크 연결, 파일 및 레지스트리 작업, 프로세스 정보, 사용자 활동을 처리합니다.
시작하기 전에
다음 기본 요건이 충족되었는지 확인합니다.
- Google SecOps 인스턴스
- Google Cloud 저장소가 Google Cloud 환경에 설정되어 활성 상태입니다.
- Google Cloud 에 대한 액세스 권한 및 적절한 권한
- Palo Alto Cortex XDR에 대한 액세스 권한
Google Cloud 스토리지 버킷 만들기
- Google Cloud 콘솔에 로그인합니다.
Cloud Storage 버킷 페이지로 이동합니다.
만들기를 클릭합니다.
버킷 만들기 페이지에서 버킷 정보를 입력합니다. 다음 단계를 완료할 때마다 계속을 클릭하여 다음 단계로 진행합니다.
시작하기 섹션에서 다음을 수행합니다. * 버킷 이름 요구사항을 충족하는 고유한 이름을 입력합니다 (예: cortex-xdr-events-googlesecops). * 계층적 네임스페이스를 사용 설정하려면 펼치기 화살표를 클릭하여 파일 지향 및 데이터 집약적인 워크로드에 최적화 섹션을 펼친 다음 이 버킷에서 계층적 네임스페이스 사용 설정을 선택합니다.
Note: You can't enable hierarchical namespace in an existing bucket. * To add a bucket label, click the expander arrow to expand the **Labels** section. * Click **Add label** and specify a key and a value for your label.
데이터 저장 위치 선택 섹션에서 다음을 수행합니다. * 위치 유형을 선택합니다. * 위치 유형 메뉴를 사용하여 버킷 내 객체 데이터가 영구적으로 저장될 위치를 선택합니다.
Note: If you select the **dual-region** location type, you can also choose to enable **turbo replication** by selecting the relevant checkbox. * To set up cross-bucket replication, expand the **Set up cross-bucket replication** section.
데이터의 스토리지 클래스 선택 섹션에서 버킷의 기본 스토리지 클래스를 선택하거나, 버킷 데이터의 자동 스토리지 클래스 관리에 자동 클래스를 선택합니다.
객체 액세스를 제어하는 방식 선택 섹션에서 아니요를 선택하여 공개 액세스 방지를 적용하고 버킷의 객체에 대한 액세스 제어 모델을 선택합니다.
객체 데이터 보호 방법 선택 섹션에서 다음을 수행합니다. * 데이터 보호에서 버킷에 설정할 옵션을 선택합니다. * 객체 데이터를 암호화하는 방법을 선택하려면 데이터 암호화 펼치기 화살표를 클릭하고 데이터 암호화 방법을 선택합니다.
만들기를 클릭합니다.
Cortex XDR 이벤트 전달 구성
- Cortex XDR 웹 UI에 로그인합니다.
- 설정 > 구성 > 데이터 관리 > 이벤트 전달로 이동합니다.
- 활성화 섹션에서 라이선스를 활성화합니다.
- GB 이벤트 전달을 사용 설정하여 저장을 위해 Cortex XDR Pro의 파싱된 로그를 GB당 외부 SIEM으로 내보냅니다.
- 엔드포인트 이벤트 전달을 사용 설정하여 Cortex XDR Pro EP 및 Cloud Endpoints의 원시 엔드포인트 데이터를 내보냅니다.
- 선택사항을 저장합니다.
- 표시된 저장소 경로를 복사합니다.
- 액세스 키가 포함된 서비스 계정 JSON 웹 토큰을 생성하고 다운로드합니다.
- 안전한 위치에 저장합니다.
구성 Google Cloud Secret Manager
- GCP에 로그인합니다.
- Secret Manager 페이지로 이동합니다.
- 처음 사용하는 경우 Secret Manager API를 사용 설정하라는 메시지가 표시됩니다.
- EVENT_FRWD_CRTX_KEY라는 보안 비밀을 만들고 다운로드한 JSON xdr_sa_key.json의 콘텐츠를 보안 비밀의 값으로 복사합니다.
Palo Alto Cortex XDR 이벤트 로그를 수집하도록 Google SecOps에서 피드 구성
- SIEM 설정 > 피드로 이동합니다.
- 새로 추가를 클릭합니다.
- 피드 이름 필드에 피드 이름을 입력합니다 (예: PANW Cortex XDR 이벤트 로그).
- 소스 유형으로 Google Cloud Storage를 선택합니다.
- 로그 유형으로 Palo Alto Cortex XDR 이벤트를 선택합니다.
- Chronicle 서비스 계정으로 서비스 계정 가져오기를 클릭합니다.
- 다음을 클릭합니다.
다음 입력 매개변수의 값을 지정합니다.
- 스토리지 버킷 URI: Google Cloud 스토리지 버킷 URL (예:
gs://cortex-xdr-events-chronicle
)입니다. - URI Is A: 하위 디렉터리가 포함된 디렉터리를 선택합니다.
- 소스 삭제 옵션: 원하는 삭제 옵션을 선택합니다.
- 애셋 네임스페이스: 애셋 네임스페이스입니다.
- 수집 라벨: 이 피드의 이벤트에 적용된 라벨입니다.
- 스토리지 버킷 URI: Google Cloud 스토리지 버킷 URL (예:
다음을 클릭합니다.
확정 화면에서 새 피드 구성을 검토한 다음 제출을 클릭합니다.
피드가 생성되면 피드 목록에서 피드를 찾아 선 오른쪽에 있는 작업 점 3개를 클릭합니다.
피드 사용 중지를 선택합니다.
Cloud Storage에 대한 Secret JSON 액세스 구성
- GCP에 로그인합니다.
- Secret Manager 페이지로 이동합니다.
- 보안 비밀 EVENT_FRWD_CRTX_KEY를 선택합니다.
- 권한 탭으로 이동합니다.
- 이전에 만든 버킷 cortex-xdr-events-chronicle에 대한 Storage 객체 관리자 및 Storage 기존 버킷 리더 액세스 권한을 부여합니다.
Cloud Storage용 Google SecOps 권한 구성
- IAM 및 관리자 > IAM으로 이동합니다.
- Chronicle 서비스 계정을 찾습니다.
- 이전에 만든 버킷 cortex-xdr-events-chronicle에 대한 액세스 권한을 스토리지 객체 뷰어 (roles/storage.objectViewer)에 부여합니다.
Project Cloud Storage에 PANW Cortex XDR 이벤트 로그 처리 구성
- Google Cloud에서 API 및 서비스 > 라이브러리로 이동합니다.
- Cloud Run 및 Artifact Registry API를 사용 설정합니다.
- 상단 탐색 메뉴의 아이콘을 클릭하여 Cloud Shell을 엽니다.
다음 명령어를 사용하여 맞춤 코드를 다운로드합니다.
git clone https://github.com/PaloAltoNetworks/google-cloud-cortex-chronicle.git
다음 명령어를 실행하여 디렉터리로 이동합니다.
cd google-cloud-cortex-chronicle/
vi
과 같은 편집기로env.properties
파일을 엽니다.다음 구성 세부정보를 제공합니다.
REGION=us-central1 # Update according to your project region REPO_NAME=panw-chronicle IMAGE_NAME=sync_cortex_bucket GCP_PROJECT_ID=chrxxxxxxxxx # Update according to your project ID JOB_NAME=cloud-run-job-cortex-data-sync # The Cloud Job name ROJECT_NUMBER=80xxxxx9 # Update according to your project number # JOB ENV VARIABLES SRC_BUCKET=xdr-us-xxxxx-event-forwarding # Update with the Cortex XDR GCS bucket name DEST_BUCKET=cortex-xdr-events-chronicle # Update with the GCS name of the bucket you created SECRET_NAME=EVENT_FRWD_CRTX_KEY # Need to match the secret you created JOB_SCHEDULE_MINS=30
deploy.sh
스크립트에 필요한 권한을 제공합니다.chmod 744 deploy.sh
deploy.sh
스크립트를 실행합니다../deploy.sh
스크립트 출력에서 사용된 Cloud Job 서비스 계정을 찾습니다.
Cloud Job 서비스 계정에 이전에 만든 보안 비밀에 액세스할 수 있는 Secret Manager 보안 비밀 상위 요소 권한을 부여합니다 (예: EVENT_FRWD_CRTX_KEY).
Secret Manager > EVENT_FRWD_CRTX_KEY (비밀번호) > 권한으로 이동합니다.
Google SecOps 플랫폼에서 SIEM 설정 > 피드 > XDR 이벤트 피드 이름 > 피드 사용 설정으로 이동합니다.
UDM 매핑 표
로그 필드 | UDM 매핑 | 논리 |
---|---|---|
action_file_path |
target.file.full_path |
직접 매핑됨 |
action_file_size |
target.file.size |
부호 없는 정수로 직접 매핑 및 변환 |
action_local_ip |
principal.ip |
다른 IP 주소와 직접 매핑 및 병합됨 |
action_local_port |
principal.port |
정수로 직접 매핑 및 변환 |
action_module_path |
target.process.file.full_path |
직접 매핑됨 |
action_network_connection_id |
network.session_id |
직접 매핑됨 |
action_network_protocol |
network.ip_protocol |
이름이 protocol_number_src 로 변경되고 parse_ip_protocol.include 를 사용하여 파싱되고 network.ip_protocol 에 매핑되었습니다. |
action_process_image_command_line |
target.process.command_line |
직접 매핑됨 |
action_process_image_md5 |
target.process.file.md5 |
직접 매핑됨 |
action_process_image_path |
target.process.file.full_path |
직접 매핑됨 |
action_process_image_sha256 |
target.process.file.sha256 |
직접 매핑됨 |
action_process_os_pid |
target.process.pid |
직접 매핑되고 문자열로 변환됨 |
action_process_user_sid |
target.user.windows_sid |
직접 매핑됨 |
action_process_username |
target.user.userid , target.administrative_domain |
소문자로 변환되고 도메인 및 사용자를 위해 파싱된 후 적절하게 매핑됩니다. |
action_registry_data |
target.registry.registry_value_data |
직접 매핑됨 |
action_registry_key_name |
target.registry.registry_key |
직접 매핑됨 |
action_registry_value_name |
target.registry.registry_value_name |
직접 매핑됨 |
action_remote_ip |
target.ip |
다른 IP 주소와 직접 매핑 및 병합됨 |
action_remote_port |
target.port |
정수로 직접 매핑 및 변환 |
action_total_download |
network.received_bytes |
부호 없는 정수로 직접 매핑 및 변환 |
action_total_upload |
network.sent_bytes |
부호 없는 정수로 직접 매핑 및 변환 |
agent_hostname |
principal.hostname , observer.hostname |
소문자로 변환 및 매핑됨 |
agent_ip_addresses |
observer.ip |
JSON으로 파싱되고 개별 IP로 분할된 후 병합됨 |
agent_os_sub_type |
target.platform_version |
직접 매핑됨 |
event_id |
metadata.product_log_id |
직접 매핑됨 |
event_sub_type |
metadata.product_event_type |
문자열로 변환되며 metadata.event_type 및 metadata.product_event_type 의 조건부 매핑에 사용됩니다. |
event_timestamp |
metadata.event_timestamp , timestamp |
문자열로 변환되고 UNIX_MS 타임스탬프로 파싱되고 매핑됨 |
event_type |
metadata.event_type |
문자열로 변환되며 metadata.event_type 및 metadata.product_event_type 의 조건부 매핑에 사용됩니다. |
os_actor_process_command_line |
principal.process.command_line |
직접 매핑됨 |
os_actor_process_image_md5 |
principal.process.file.md5 |
직접 매핑됨 |
os_actor_process_image_path |
principal.process.file.full_path |
직접 매핑됨 |
os_actor_process_image_sha256 |
principal.process.file.sha256 |
직접 매핑됨 |
os_actor_process_instance_id |
principal.process.product_specific_process_id |
'PAN:' 접두사가 추가되고 매핑됨 |
os_actor_process_os_pid |
principal.process.pid |
문자열로 변환되고 매핑됨 |
os_actor_primary_user_sid |
principal.user.windows_sid |
'S-' 또는 's-'로 시작하면 매핑됩니다. |
os_actor_primary_username |
principal.user.userid , principal.administrative_domain |
소문자로 변환되고 도메인 및 사용자를 위해 파싱된 후 적절하게 매핑됩니다. |
_action |
security_result.action |
_security_result 에 병합된 후 매핑됨 |
metadata.log_type |
metadata.log_type |
'PAN_CORTEX_XDR_EVENTS'로 하드코딩됨 |
metadata.product_name |
metadata.product_name |
'Cortex XDR'으로 하드코딩됨 |
metadata.vendor_name |
metadata.vendor_name |
'PAN'으로 하드코딩됨 |
target.platform |
target.platform |
agent_os_sub_type 에 'Windows'가 포함된 경우 'WINDOWS'로 설정 |
도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가의 답변을 받아 보세요.