Skyhigh Security 로그 수집

다음에서 지원:

이 문서에서는 Bindplane을 사용하여 Skyhigh Security(이전 McAfee Skyhigh CASB) 로그를 Google Security Operations에 수집하는 방법을 설명합니다. 파서는 SYSLOG + KV 형식의 로그를 통합 데이터 모델(UDM)로 변환합니다. 먼저 로그 메시지를 키-값 쌍으로 정규화한 다음 추출된 필드를 event.idm.read_only_udm 객체 내의 해당 UDM 속성에 매핑하여 특정 필드의 존재 여부와 값을 기반으로 이벤트 유형을 분류합니다.

시작하기 전에

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

  • Google SecOps 인스턴스
  • Windows 2016 이상 또는 systemd가 설치된 Linux 호스트
  • 프록시 뒤에서 실행하는 경우 방화벽 포트가 열려 있음
  • Skyhigh Cloud Connector 설치 및 구성
  • Skyhigh Security Cloud Connector에 대한 액세스 권한 관리

Google SecOps 수집 인증 파일 가져오기

  1. Google SecOps 콘솔에 로그인합니다.
  2. SIEM 설정 > 수집 에이전트로 이동합니다.
  3. 수집 인증 파일을 다운로드합니다. Bindplane이 설치될 시스템에 파일을 안전하게 저장합니다.

Google SecOps 고객 ID 가져오기

  1. Google SecOps 콘솔에 로그인합니다.
  2. SIEM 설정 > 프로필로 이동합니다.
  3. 조직 세부정보 섹션에서 고객 ID를 복사하여 저장합니다.

Bindplane 에이전트 설치

다음 안내에 따라 Windows 또는 Linux 운영체제에 Bindplane 에이전트를 설치합니다.

Windows 설치

  1. 명령 프롬프트 또는 PowerShell을 관리자로 엽니다.
  2. 다음 명령어를 실행합니다.

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Linux 설치

  1. 루트 또는 sudo 권한으로 터미널을 엽니다.
  2. 다음 명령어를 실행합니다.

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    

추가 설치 리소스

추가 설치 옵션은 설치 가이드를 참고하세요.

Syslog를 수집하여 Google SecOps로 전송하도록 Bindplane 에이전트 구성

  1. 구성 파일에 액세스합니다.
    • config.yaml 파일을 찾습니다. 일반적으로 Linux에서는 /etc/bindplane-agent/ 디렉터리에 있고 Windows에서는 설치 디렉터리에 있습니다.
    • 텍스트 편집기 (예: nano, vi, 메모장)를 사용하여 파일을 엽니다.
  2. 다음과 같이 config.yaml 파일을 수정합니다.

    receivers:
        udplog:
            # Replace the port and IP address as required
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            # Adjust the path to the credentials file you downloaded in Step 1
            creds_file_path: '/path/to/ingestion-authentication-file.json'
            # Replace with your actual customer ID from Step 2
            customer_id: <customer_id>
            endpoint: malachiteingestion-pa.googleapis.com
            # Add optional ingestion labels for better organization
            log_type: 'MCAFEE_SKYHIGH_CASB'
            raw_log_field: body
            ingestion_labels:
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    
    • 인프라에 필요한 대로 포트와 IP 주소를 바꿉니다.
    • <customer_id>를 실제 고객 ID로 바꿉니다.
    • Google SecOps 수집 인증 파일 가져오기 섹션에서 인증 파일이 저장된 경로로 /path/to/ingestion-authentication-file.json를 업데이트합니다.

Bindplane 에이전트를 다시 시작하여 변경사항 적용

  1. Linux에서 Bindplane 에이전트를 다시 시작하려면 다음 명령어를 실행합니다.

    sudo systemctl restart bindplane-agent
    
  2. Windows에서 Bindplane 에이전트를 다시 시작하려면 서비스 콘솔을 사용하거나 다음 명령어를 입력하면 됩니다.

    net stop BindPlaneAgent && net start BindPlaneAgent
    

로깅 클라이언트 다운로드 전 기본 요건

다음 세부정보가 있는지 확인하세요.

  1. 사용 분석 사용자 권한: 계정에 사용 분석 사용자 역할이 있어야 합니다.
  2. 고객 ID: 다음 단계에 따라 Skyhigh CASB에서 고객 ID를 찾습니다.
    • Skyhigh CASB에 로그인합니다.
    • 설정 > 인프라 > 클라이언트 프록시 관리로 이동합니다.
    • 전역 구성 > 테넌트 인증을 클릭합니다.
    • 전체 설정에서 표시된 고객 ID를 확인합니다.
  3. 이메일 주소 및 비밀번호: 로그인 사용자(또는 전용 서비스 계정)의 로그인 사용자 인증 정보입니다. 비밀번호를 제출하지 않고 SAML을 사용하여 로그인하는 경우 로깅 클라이언트를 설치할 수 없습니다.

Skyhigh 로깅 클라이언트 다운로드 및 설치

  1. 로깅 클라이언트를 전용 인스턴스에 다운로드합니다.
  2. 로깅 클라이언트를 설치합니다 (필요한 경우 다운로드한 EXE 파일의 압축을 풉니다).
  3. 설치가 완료되면 로깅 클라이언트를 엽니다.
  4. 구성 페이지에서 다음 구성 세부정보를 제공합니다.
    1. 고객 ID: 이전 단계에서 얻은 Skyhigh CASB 고객 ID를 입력합니다.
    2. 서비스: Skyhigh SSE를 사용하는 경우 SSE를 선택하고, 이 제품을 Trellix ePO와 함께 사용하는 경우 WGCS를 선택합니다.
    3. 리전: 데이터가 저장된 위치에 따라 지역 또는 국가 코드를 선택합니다.
      • EU — 유럽 연합
      • IN — 인도
      • SG — 싱가포르
      • UE — 아랍에미리트
      • 영국
      • US — 미국
    4. 이름: 사용자 이름을 입력합니다. 일반적으로 Secure Web Gateway 또는 전용 인스턴스에 로그인하는 데 사용되는 이메일 주소입니다.
    5. 비밀번호: Secure Web Gateway에 로그인할 때 사용하는 비밀번호를 입력합니다. SAML로 로그인하는 경우 로깅 클라이언트를 사용할 수 없습니다.
    6. API 버전: version 13를 입력합니다.
    7. 로그 유형: 웹, 원격 브라우저 격리 (RBI), 비공개 액세스, Cloud 방화벽에서 생성된 데이터가 포함된 로그를 비롯한 다양한 유형의 로그를 다운로드할 수 있습니다.
    8. Syslog로 보내기를 선택하고 다음 구성 세부정보를 제공합니다.
      • Syslog-Client Host: Bindplane 에이전트 IP 주소를 입력합니다.
      • Syslog-Client Port: Bindplane 에이전트 포트 번호를 입력합니다.
      • 전송: Bindplane 에이전트 구성에 따라 UDP 또는 TCP를 선택합니다.

UDM 매핑 테이블

로그 필드 UDM 매핑 논리
EventReceivedTime metadata.event_timestamp yyyy-MM-dd HH:mm:ss 형식에서 타임스탬프로 변환됨
FileSize target.file.size 직접 매핑되고 uinteger로 변환됨
호스트 이름 principal.hostname 직접 매핑됨
MessageSourceAddress principal.ip 직접 매핑, 여러 인스턴스인 경우 병합
심각도 additional.fields.value.string_value (키: SEVERITY) 직접 매핑됨
SeverityValue additional.fields.value.string_value (키: SEVERITY_VALUE) 직접 매핑됨
SourceModuleName additional.fields.value.string_value (키: SOURCE_MODULE_NAME) 직접 매핑됨
SourceModuleType principal.resource.resource_subtype 직접 매핑됨
SyslogFacility security_result.about.resource.attribute.labels.value (키: SYSLOG_FACILITY) 직접 매핑됨
SyslogFacilityValue security_result.about.resource.attribute.labels.value (key: SYSLOG_FACILITY_VALUE) 직접 매핑됨
SyslogSeverity security_result.about.resource.attribute.labels.value (키: SYSLOG_SEVERITY) 직접 매핑됨
SyslogSeverityValue security_result.about.resource.attribute.labels.value (키: SYSLOG_SEVERITY_VALUE) 직접 매핑됨
activityName metadata.product_event_type 직접 매핑됨, 괄호 삭제됨
actorId principal.user.userid 직접 매핑되며, 이메일인 경우 email_addresses에도 추가됩니다.
actorIdType principal.user.attribute.roles.name 직접 매핑됨
collaborationSharedLink security_result.about.resource.attribute.labels.value (key: COLLABORATION_SHARED_LINK) 직접 매핑됨
contentItemId target.file.full_path (contentItemType이 FILE인 경우) 직접 매핑됨, 인용구 삭제됨
contentItemId target.url (contentItemType이 SAAS_RESOURCE인 경우) 직접 매핑됨, 인용구 삭제됨
contentItemHierarchy additional.fields.value.string_value (키: CONTENT_ITEM_HIERARCHY) 직접 매핑됨, 인용구 삭제됨
contentItemName target.resource.name 직접 매핑됨, 인용구 삭제됨
contentItemType additional.fields.value.string_value (키: CONTENT_ITEM_TYPE) 직접 매핑됨
incidentGroup security_result.detection_fields.value (키: INCIDENT_GROUP) 직접 매핑됨
incidentId metadata.product_log_id 직접 매핑됨
incidentRiskScore security_result.detection_fields.value (키: INCIDENT_RISK_SCORE) 직접 매핑됨
incidentRiskSeverityId riskSeverity와 함께 사용하여 security_result.severity를 결정합니다.
informationAccountId target.resource.product_object_id 직접 매핑됨
informationAnomalyCategory security_result.category_details 직접 매핑됨, 인용구 삭제됨
informationAnomalyCause security_result.detection_fields.value (키: INFO_ANOMALY_CAUSE) 직접 매핑됨, 인용구 삭제됨
informationCategory security_result.category_details 직접 매핑됨
informationConfigType additional.fields.value.string_value (키: INFORMATION_CONFIG_TYPE) 직접 매핑됨, 인용구 삭제됨
informationContentItemParent target.resource.parent 직접 매핑됨, 인용구 삭제됨
informationEventId additional.fields.value.string_value (키: INFORMATION_EVENT_ID) 직접 매핑됨
informationExternalCollaboratorsCount additional.fields.value.string_value (키: INFORMATION_COLLAB_COUNT) 직접 매핑됨
informationFileTypes additional.fields.value.list_value.values.string_value (키: FILE_TYPE) JSON과 유사한 문자열에서 추출됨, 괄호와 따옴표가 삭제됨
informationLastExecutedResponseLabel additional.fields.value.string_value (키: INFORMATION_LAST_RESPONSE) 직접 매핑됨
informationScanName metadata.description 직접 매핑됨, 인용구 삭제됨
informationScanRunDate UDM에 매핑되지 않음
informationSource additional.fields.value.string_value (키: INFORMATION_SOURCE) 직접 매핑됨
informationUniqueMatchCount additional.fields.value.string_value (키: INFORMATION_UNQ_MATCH_COUNT) 직접 매핑됨
informationUserAttributesSAMAccountName principal.user.user_display_name 직접 매핑됨, 괄호 삭제됨
instanceId principal.resource.product_object_id 직접 매핑됨
instanceName principal.resource.name 직접 매핑됨, 인용구 삭제됨
policyId security_result.rule_id 직접 매핑됨
policyName security_result.summary 직접 매핑됨, 인용구 삭제됨
응답 security_result.action (ALLOW 또는 BLOCK)을 결정하는 데 사용됩니다.
riskSeverity incidentRiskSeverityId와 함께 사용하여 security_result.severity를 결정하며 대문자로 변환됩니다.
serviceNames target.application 직접 매핑되고 괄호, 따옴표, 추가 공백이 삭제됨
sourceIps principal.ip JSON과 유사한 문자열에서 추출되며, 인스턴스가 여러 개인 경우 병합됩니다.
상태 additional.fields.value.string_value (키: STATUS) 직접 매핑됨
threatCategory security_result.threat_name 직접 매핑됨, 인용구 삭제됨
totalMatchCount security_result.detection_fields.value (key: TOTAL_MATCH_COUNT) 직접 매핑됨
해당 사항 없음 metadata.vendor_name MCAFEE - 정적 값
해당 사항 없음 metadata.product_name MCAFEE_SKYHIGH_CASB - 정적 값
해당 사항 없음 metadata.log_type MCAFEE_SKYHIGH_CASB - 정적 값
해당 사항 없음 principal.resource.type VIRTUAL_MACHINE - instanceName 또는 instanceId가 있는 경우 설정
해당 사항 없음 metadata.event_type 일련의 조건에 따라 결정됩니다. actorId, contentItemId 또는 contentItemName이 있는 경우
~USER_RESOURCE_UPDATE_CONTENT, actorId 및 target이 있는 경우
~USER_UNCATEGORIZED, Hostname 또는 MessageSourceAddress가 있는 경우
~STATUS_UPDATE, 그 외의 경우
~GENERIC_EVENT
해당 사항 없음 security_result.severity riskSeverity와 incidentRiskSeverityId의 조합에 따라 결정됩니다. riskSeverity가 LOW이고 incidentRiskSeverityId가 0인 경우
~LOW, riskSeverity가 MEDIUM이고 incidentRiskSeverityId가 1인 경우
~MEDIUM, riskSeverity가 HIGH이고 incidentRiskSeverityId가 2인 경우
~HIGH, riskSeverity가 INFO이고 incidentRiskSeverityId가 3인 경우
~INFORMATIONAL
해당 사항 없음 security_result.action 응답 값에 따라 결정됩니다. 응답에 allow (대소문자 구분 안 함)가 포함된 경우
~ALLOW, 응답에 Violation (대소문자 구분 안 함)가 포함된 경우
~BLOCK

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