Rubrik Security Cloud 로그 수집

다음에서 지원:

이 문서에서는 웹훅을 사용하여 Rubrik Security Cloud 로그를 Google Security Operations에 수집하는 방법을 설명합니다. Rubrik Security Cloud (RSC)는 클라우드 및 온프레미스 환경 전반에서 백업, 복구, 비정상 감지, 데이터 거버넌스 기능을 제공하는 SaaS 기반 데이터 보안 플랫폼입니다. RSC는 중앙 집중식 모니터링 및 분석을 위해 Google SecOps로 푸시할 수 있는 PagerDuty Common Event Format (PD-CEF) JSON으로 보안 이벤트, 감사 로그, 운영 활동 로그를 생성합니다.

시작하기 전에

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

  • Google SecOps 인스턴스
  • 웹훅을 관리할 수 있는 권한이 있는 Rubrik Security Cloud 콘솔에 대한 권한 있는 액세스
  • Rubrik Security Cloud에서 Google SecOps 웹훅 엔드포인트로의 네트워크 연결
  • API 키 생성을 위한 Google Cloud 콘솔 액세스

Google SecOps에서 웹훅 피드 만들기

피드 만들기

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

보안 비밀 키 생성 및 저장

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

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

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

  1. 피드의 세부정보 탭으로 이동합니다.
  2. 엔드포인트 정보 섹션에서 피드 엔드포인트 URL을 복사합니다.
  3. 다음 단계를 위해 이 URL을 저장합니다.
  4. 완료를 클릭합니다.

Google Cloud API 키 만들기

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

API 키 만들기

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

API 키 제한

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

Rubrik Security Cloud 웹훅 구성

웹훅 URL 구성

  • Google SecOps 엔드포인트 URL, API 키, 피드 비밀 키를 결합합니다. 두 사용자 인증 정보는 모두 쿼리 매개변수로 전달됩니다.

    <ENDPOINT_URL>?key=<API_KEY>&secret=<SECRET>
    
    • 예:

      https://<REGION>-chronicle.googleapis.com/v1alpha/projects/<PROJECT_NUMBER>/locations/<REGION>/instances/<INSTANCE_ID>/feeds/<FEED_ID>:importPushLogs?key=AIzaSyD...&secret=a1b2c3d4...
      

Rubrik Security Cloud에서 웹훅 만들기

  1. https://<account>.my.rubrik.com에서 Rubrik Security Cloud에 로그인합니다.
  2. 오른쪽 상단에 있는 설정 아이콘을 클릭하고 설정을 선택합니다.
  3. 알림을 클릭하고 웹훅을 선택합니다.
  4. 웹훅 추가를 클릭합니다.
  5. 웹훅 추가 마법사가 표시됩니다.
  6. 공급업체에서 일반을 선택합니다.

  7. Webhook name(웹훅 이름)에 설명이 포함된 이름을 입력합니다(예: Google SecOps Integration).

  8. 엔드포인트에 key 및 secret 쿼리 매개변수를 포함한 위의 전체 웹훅 URL을 붙여넣습니다. 인증은 URL로 전달되므로 인증 전환 버튼을 사용 중지 상태로 유지할 수 있습니다.

  9. 다음을 클릭합니다.

  10. 웹훅 테스트를 클릭하여 지정된 웹훅 구성이 작동하는지 확인하고 다음을 클릭합니다.

  11. 이벤트 및 심각도 선택 창이 표시됩니다.

  12. RSC가 구성된 웹훅 엔드포인트로 전송하는 이벤트를 선택합니다.

    1. 이벤트에서 전달할 이벤트 유형을 선택합니다.

      • 백업
      • 복구
      • 이상치
      • 위협 헌팅
      • 위협 모니터링
      • 구성
      • 진단
      • 동기화
      • 유지보수
      • 시스템
    2. 감사에서 전달할 감사 유형을 선택합니다. 인증 감사 유형은 파서의 로그인 매핑을 제공합니다.

    3. 심각도에서 알림을 트리거할 심각도 수준을 선택합니다.

      • 심각
      • 경고
      • 정보 제공
  13. 다음을 클릭합니다.

  14. 확인 창에서 구성 세부정보를 검토하고 저장을 클릭합니다.

웹훅이 작동하는지 확인

Rubrik Security Cloud 웹훅 상태 확인

  1. Rubrik Security Cloud에 로그인합니다.
  2. 설정 > 알림 > 웹훅으로 이동합니다.
  3. 웹훅의 상태 열을 확인합니다 (사용으로 표시되어야 함).
  4. 웹훅 세부정보에서 오류 메시지가 있는지 모니터링합니다.

Google SecOps 피드 상태 확인

  1. Google SecOps에서 SIEM 설정 > 피드로 이동합니다.
  2. 웹훅 피드의 상태 열을 확인합니다 (활성이어야 함).
  3. 수신된 이벤트 수를 확인합니다 (증가해야 함).

Google SecOps에서 로그 확인

  1. 검색 > UDM 검색으로 이동합니다.
  2. 다음 쿼리를 사용하세요.

    metadata.vendor_name = "RUBRIK" nocase AND metadata.product_name = "RUBRIK SECURITY CLOUD" nocase
    
  3. 기간을 지난 1시간으로 조정합니다.

  4. 이벤트가 결과에 표시되는지 확인합니다.

웹훅 페이로드 참조

  • Rubrik Security Cloud는 기본적으로 PagerDuty Common Event Format (PD-CEF)으로 이벤트를 전송합니다. 다음은 이벤트 페이로드의 예입니다.

    {
      "summary": "Failed backup of vSphere VM 'example-vm'.",
      "source": "Rubrik Security Cloud",
      "severity": "critical",
      "timestamp": "2024-07-18T06:39:40.46Z",
      "class": "Backup",
      "custom_details": {
        "seriesId": "ccd7a8a5-4c58-4c88-bff9-7bdffddb6099",
        "id": "c2b47274-6323-4025-b307-afed1cfb7574",
        "type": "Event",
        "objectId": "83c4a80a-4a57-5699-b399-651089135586",
        "objectName": "example-vm",
        "objectType": "VmwareVm",
        "status": "Failure",
        "clusterId": "6a271636-9392-4cba-90c5-bdbe227854ab",
        "clusterName": "production-cluster",
        "eventName": "Snapshot.BackupFailed",
        "errorId": "Snapshot.VmwareSnapshotError",
        "errorCode": "",
        "errorRemedy": "",
        "errorReason": "",
        "auditUserName": "",
        "auditUserId": "",
        "location": "vcenter.example.com",
        "url": "",
        "customerID": "rubrik-customer",
        "logicalSizeInBytes": "",
        "dataTransferredInBytes": "",
        "effectiveThroughput": ""
      }
    }
    

웹훅 한도 및 권장사항

요청 한도

한도 값
최대 단일 로그 줄 1MB
최대 QPS (초당 쿼리 수) 15,000
요청 제한 시간 90초
재시도 동작 발신자가 관리합니다. 버스트 한도를 초과하면 Google SecOps에서 HTTP 429를 반환하므로 전송 시스템에서 버퍼링하고 재시도해야 합니다.

UDM 매핑 테이블

로그 필드 UDM 매핑 로직
audit_info_label additional.fields 병합됨
effectiveThroughput_label additional.fields 병합됨
group_label additional.fields 병합됨
isPolarisAudit_label additional.fields 병합됨
label_name_label additional.fields 병합됨
node_label additional.fields 병합됨
orgID_label additional.fields 병합됨
snappable_name_label additional.fields 병합됨
snappable_type_label additional.fields 병합됨
snapshot_date_label additional.fields 병합됨
type_label additional.fields 병합됨
userNote_label additional.fields 병합됨
has_target extensions.auth.type 매핑됨: true → AUTHTYPE_UNSPECIFIED
hunt_date metadata.event_timestamp ISO8601로 파싱됨
timestamp metadata.event_timestamp ISO8601로 파싱됨
has_principal metadata.event_type 매핑됨: true → SCAN_HOST, true → STATUS_UPDATE
has_target metadata.event_type 매핑됨: true → USER_LOGIN
custom_details.eventName metadata.product_event_type 직접 매핑됨
custom_details.id metadata.product_log_id 직접 매핑됨
source metadata.product_name 직접 매핑됨
custom_details.url metadata.url_back_to_product 직접 매핑됨
custom_details.dataTransferredInBytes network.sent_bytes 직접 매핑됨
custom_details.customerID principal.administrative_domain 직접 매핑됨
domain principal.domain.name 직접 매핑됨
custom_details.ipAddress principal.ip 병합됨
ip_address principal.ip 병합됨
is_ip_assigned principal.ip 매핑됨: false → ip_address
custom_details.clusterName principal.resource.name 직접 매핑됨
custom_details.clusterId principal.resource.product_object_id 직접 매핑됨
user_email principal.user.email_addresses 병합됨
custom_details.auditUserName principal.user.user_display_name 직접 매핑됨
user_name principal.user.user_display_name 직접 매핑됨
action_name security_result.action 병합됨
custom_details.status security_result.action_details 직접 매핑됨
category_temp security_result.category 병합됨
class security_result.category_details 병합됨
confidence security_result.confidence_details 직접 매핑됨
custom_details.errorMessage security_result.description 직접 매핑됨
access_type_label security_result.detection_fields 병합됨
action_date_label security_result.detection_fields 병합됨
detection_time_label security_result.detection_fields 병합됨
directories_snoozed_label security_result.detection_fields 병합됨
directories_unsnoozed_label security_result.detection_fields 병합됨
document_count_label security_result.detection_fields 병합됨
encryption_level_label security_result.detection_fields 병합됨
errorCode_label security_result.detection_fields 병합됨
errorId_label security_result.detection_fields 병합됨
errorReason_label security_result.detection_fields 병합됨
errorRemedy_label security_result.detection_fields 병합됨
event_info_label security_result.detection_fields 병합됨
failed_document_count_label security_result.detection_fields 병합됨
file_matches_label security_result.detection_fields 병합됨
files_created_count_label security_result.detection_fields 병합됨
files_modified_count_label security_result.detection_fields 병합됨
files_removed_count_label security_result.detection_fields 병합됨
files_suspicious_count_label security_result.detection_fields 병합됨
hash_tf_version_label security_result.detection_fields 병합됨
identity_name_label security_result.detection_fields 병합됨
num_files_with_matches_label security_result.detection_fields 병합됨
num_hash_matches_label security_result.detection_fields 병합됨
num_of_violating_identities_label security_result.detection_fields 병합됨
num_yara_rule_matches_label security_result.detection_fields 병합됨
obj_failed_label security_result.detection_fields 병합됨
obj_partially_succeeded_label security_result.detection_fields 병합됨
obj_succeeded_label security_result.detection_fields 병합됨
object_matches_label security_result.detection_fields 병합됨
policy_name_label security_result.detection_fields 병합됨
reason_label security_result.detection_fields 병합됨
remediation_type_label security_result.detection_fields 병합됨
remedy_label security_result.detection_fields 병합됨
risk_name_label security_result.detection_fields 병합됨
seriesID_label security_result.detection_fields 병합됨
seriesId_label security_result.detection_fields 병합됨
skipped_document_count_label security_result.detection_fields 병합됨
strain_name_label security_result.detection_fields 병합됨
successful_document_count_label security_result.detection_fields 병합됨
total_accessible_files_at_risk_count_label security_result.detection_fields 병합됨
vm_count_label security_result.detection_fields 병합됨
yara_tf_version_label security_result.detection_fields 병합됨
hunt_name security_result.rule_name 직접 매핑됨
hunt_type security_result.rule_type 직접 매핑됨
is_severity_assigned security_result.severity 매핑됨: false → INFORMATIONAL, false → MEDIUM
severity security_result.severity 매핑됨: INFO → INFORMATIONAL, WARNING → MEDIUM
severity_name security_result.severity 매핑됨: INFO → INFORMATIONAL, WARNING → MEDIUM
severity security_result.severity_details 직접 매핑됨
severity_name security_result.severity_details 직접 매핑됨
summary security_result.summary 직접 매핑됨
threat_feed_type security_result.threat_feed_name 직접 매핑됨
custom_details.logicalSizeInBytes target.file.size 직접 매핑됨
client_id_label target.labels 병합됨
client_name_label target.labels 병합됨
custom_details.location target.location.name 직접 매핑됨
custom_details.objectName target.resource.name 직접 매핑됨
object_name target.resource.name 직접 매핑됨
resource_name target.resource.name 직접 매핑됨
custom_details.objectId target.resource.product_object_id 직접 매핑됨
component target.resource.resource_subtype 직접 매핑됨
custom_details.objectType target.resource.resource_subtype 직접 매핑됨
is_object_type_assigned target.resource.resource_type 매핑됨: false → UNSPECIFIED
class target.user.email_addresses 매핑됨: Login → user_email
user_email target.user.email_addresses 병합됨
each_group target.user.group_identifiers 병합됨
custom_details.auditUserName target.user.user_display_name 직접 매핑됨
user_name target.user.user_display_name 직접 매핑됨
custom_details.auditUserId target.user.userid 직접 매핑됨
해당 사항 없음 extensions.auth.type 상수: AUTHTYPE_UNSPECIFIED
해당 사항 없음 metadata.event_type 상수: USER_LOGIN
해당 사항 없음 metadata.product_name 상수: RUBRIK SECURITY CLOUD
해당 사항 없음 metadata.vendor_name 상수: RUBRIK
해당 사항 없음 principal.resource.resource_type 상수: CLUSTER
해당 사항 없음 security_result.severity 상수: INFORMATIONAL
해당 사항 없음 target.resource.resource_type 상수: UNSPECIFIED

변경 로그

이 파서의 변경 로그 보기

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