Cisco Stealthwatch 로그 수집

다음에서 지원:

이 문서에서는 Bindplane을 사용하여 Cisco Secure Network Analytics (이전 Stealthwatch) 로그를 Google Security Operations에 수집하는 방법을 설명합니다. 파서는 클라이언트/서버 IP 및 패킷 정보가 포함된 Cisco Stealthwatch 로그와 기기 ID 및 바이트 수가 포함된 Cisco Stealthwatch 로그 등 두 가지 형식을 처리합니다. 필드를 추출하고, 적절한 데이터 유형으로 변환하고, UDM에 매핑하고, 로그 콘텐츠와 형식을 기반으로 공급업체, 제품, 이벤트 유형과 같은 메타데이터 필드를 설정합니다.

시작하기 전에

  • Google Security Operations 인스턴스가 있는지 확인합니다.
  • Windows 2016 이상 또는 systemd가 설치된 Linux 호스트를 사용하고 있는지 확인합니다.
  • 프록시 뒤에서 실행하는 경우 방화벽 포트가 열려 있는지 확인합니다.
  • Cisco Stealthwatch에 대한 권한 액세스 권한이 있는지 확인합니다.

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

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

Google SecOps 고객 ID 가져오기

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

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. 구성 파일에 액세스합니다.

    1. config.yaml 파일을 찾습니다. 일반적으로 Linux에서는 /etc/bindplane-agent/ 디렉터리에 있고 Windows에서는 설치 디렉터리에 있습니다.
    2. 텍스트 편집기 (예: 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: '/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
            ingestion_labels:
                log_type: CISCO_STEALTHWATCH
                raw_log_field: body
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. 인프라에 필요한 대로 포트와 IP 주소를 바꿉니다.

  4. <customer_id>를 실제 고객 ID로 바꿉니다.

  5. Google SecOps 수집 인증 파일 가져오기 섹션에서 인증 파일이 저장된 경로로 /path/to/ingestion-authentication-file.json를 업데이트합니다.

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

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

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

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Cisco Secure Network Analytics (이전 명칭: Stealthwatch) Syslog 구성

  1. 관리 콘솔 웹 UI에 로그인합니다.
  2. 구성 > 응답 관리로 이동합니다.
  3. Syslog 형식 수정:

    • 이름: syslog 형식의 이름을 입력합니다.
    • 설명: 형식에 대한 설명을 제공합니다.
    • 시설: Local 0로 설정
    • 심각도: Informational로 설정합니다.
    • 메시지 필드에 다음 형식을 붙여넣습니다.
    Lancope|StealthWatch|time|{time}|target_hostname|{target_hostname}|alarm_severity_id|{alarm_severity_id}|alarm_type_id|{alarm_type_id}|alarm_type_description|{alarm_type_description}|port|{port}|target_ip|{target_ip}|target_mac_address|{target_mac_address}|target_label|{target_label}|alarm_type_name|{alarm_type_name}|source_hostname|{source_hostname}|source_ip|{source_ip}|source_mac_address|{source_mac_address}|source_username|{source_username}|device_ip|{device_ip}|device_name|{device_name}|details|{details}|protocol|{protocol}|alarm_id|{alarm_id}|alarm_category_name|{alarm_category_name}|start_active_time|{start_active_time}| end_active_time|{end_active_time}
    
  4. 확인을 클릭합니다.

  5. 응답 관리 > 작업 > Syslog 메시지 추가로 이동합니다.

  6. Syslog 전달자 구성:

    • 이름: Google SecOps Bindplane 포워더의 이름을 입력합니다.
    • 설명: Google SecOps Bindplane 포워더에 대한 설명을 입력합니다.
    • IP 주소: Bindplane 에이전트 IP 주소를 입력합니다.
    • 포트: Bindplane 에이전트 포트 번호를 입력합니다(예: 514).
    • 형식: 3단계에서 만든 형식을 선택합니다.
  7. 확인을 클릭합니다.

Cisco Secure Network Analytics (이전 명칭: Stealthwatch)의 규칙 이름 구성

  1. 구성 > 응답 관리로 이동합니다.
  2. 규칙 > 추가 > SMC 시스템 알람을 선택합니다.
  3. 확인을 클릭합니다.
  4. 규칙 유형 대화상자에서 규칙을 선택합니다.
  5. 확인을 클릭합니다.
  6. 규칙 대화상자에서 다음을 수행합니다.
    • 이름: 규칙의 이름을 입력합니다.
    • 다음의 경우 이 규칙이 트리거됨: 각 목록에서 모두, 심각도, 정보를 선택합니다.
  7. 확인을 클릭합니다.
  8. 작업 > 추가를 선택합니다.
  9. 이전에 만든 작업을 선택합니다.
  10. 확인을 클릭한 다음 확인을 클릭합니다.
  11. 이전 단계를 반복하여 규칙 섹션에서 다음 세 가지 옵션의 이름을 바꿉니다.
    • 지원되는 로그 수집 메커니즘 - Syslog
    • 기본 로그 수집 메커니즘 - Syslog
    • 이벤트 흐름 논리 다이어그램 - SMC 원격 Syslog 서버

UDM 매핑 테이블

로그 필드 UDM 매핑 논리
Alarm_ID additional.fields[?key=='Alarm_ID'].value.string_value 원시 로그의 Alarm_ID 값은 Alarm_ID 키 아래의 중첩된 additional.fields 구조 내에 배치됩니다.
ClientBytes network.sent_bytes 원시 로그의 ClientBytes이 부호 없는 정수로 변환되고 매핑됩니다.
ClientIP principal.ip ClientIP이 원시 로그에서 매핑됩니다.
ClientPort principal.port 원시 로그의 ClientPort이 정수로 변환되어 매핑됩니다.
CPayload 매핑되지 않음 이 필드는 최종 UDM에서 사용되지 않습니다.
DestIPv4Address target.ip DestIPv4Address이 원시 로그에서 매핑됩니다.
DestPort target.port 원시 로그의 DestPort이 정수로 변환되어 매핑됩니다.
details security_result.summary 따옴표가 삭제된 원시 로그의 details 값이 매핑됩니다.
FC intermediary.ip FC이 원시 로그에서 매핑됩니다.
host.country principal.location.country_or_region host.country이 원시 로그에서 매핑됩니다.
host.hostGroupNames about.group.group_display_name 원시 로그의 host.hostGroupNames 배열에 있는 각 요소에는 host:이 추가되고 별도의 about 객체로 매핑됩니다.
host.ipAddress principal.ip host.ipAddress이 원시 로그에서 매핑됩니다.
hostBytes network.sent_bytes 원시 로그의 hostBytes이 부호 없는 정수로 변환되고 매핑됩니다.
InPackets additional.fields[?key=='InPackets'].value.string_value 원시 로그의 InPackets 값은 InPackets 키 아래의 중첩된 additional.fields 구조 내에 배치됩니다.
inputSNMPIface additional.fields[?key=='inputSNMPIface'].value.string_value 원시 로그의 inputSNMPIface 값은 inputSNMPIface 키 아래의 중첩된 additional.fields 구조 내에 배치됩니다.
LastTime 매핑되지 않음 이 필드는 경우에 따라 이벤트 타임스탬프에 대해 파싱되지만 UDM에 직접 매핑되지는 않습니다.
MessageSourceAddress principal.ip MessageSourceAddress이 원시 로그에서 매핑됩니다.
method network.http.method method이 원시 로그에서 매핑됩니다.
outputSNMPIface additional.fields[?key=='outputSNMPIface'].value.string_value 원시 로그의 outputSNMPIface 값은 outputSNMPIface 키 아래의 중첩된 additional.fields 구조 내에 배치됩니다.
PAAppID 매핑되지 않음 이 필드는 최종 UDM에서 사용되지 않습니다.
peer.country target.location.country_or_region peer.country이 원시 로그에서 매핑됩니다.
peer.hostGroupNames about.group.group_display_name 원시 로그의 peer.hostGroupNames 배열에 있는 각 요소에는 peer:이 추가되고 별도의 about 객체로 매핑됩니다.
peer.ipAddress target.ip peer.ipAddress이 원시 로그에서 매핑됩니다.
peerBytes network.received_bytes 원시 로그의 peerBytes이 부호 없는 정수로 변환되고 매핑됩니다.
peerPackets 매핑되지 않음 이 필드는 최종 UDM에서 사용되지 않습니다.
Protocol 매핑되지 않음 이 필드는 network.ip_protocol를 결정하기 위해 파싱되지만 직접 매핑되지는 않습니다.
ProtocolIdentifier 매핑되지 않음 이 필드는 network.ip_protocol를 파생하는 데 사용되지만 직접 매핑되지는 않습니다.
reportName metadata.product_event_type reportName이 원시 로그에서 매핑됩니다.
ServerBytes network.received_bytes 원시 로그의 ServerBytes이 부호 없는 정수로 변환되고 매핑됩니다.
ServerIP target.ip ServerIP이 원시 로그에서 매핑됩니다.
ServerPort target.port 원시 로그의 ServerPort이 정수로 변환되어 매핑됩니다.
Service 매핑되지 않음 이 필드는 최종 UDM에서 사용되지 않습니다.
sid target.user.windows_sid sid이 원시 로그에서 매핑됩니다.
SourceModuleName target.resource.name SourceModuleName이 원시 로그에서 매핑됩니다.
SourceModuleType observer.application SourceModuleType이 원시 로그에서 매핑됩니다.
SourcePort principal.port 원시 로그의 SourcePort이 정수로 변환되어 매핑됩니다.
sourceIPv4Address principal.ip sourceIPv4Address이 원시 로그에서 매핑됩니다.
SPayload 매핑되지 않음 이 필드는 최종 UDM에서 사용되지 않습니다.
src_ip principal.ip src_ip이 원시 로그에서 매핑됩니다.
StartTime 매핑되지 않음 이 필드는 경우에 따라 이벤트 타임스탬프에 대해 파싱되지만 UDM에 직접 매핑되지는 않습니다.
time 매핑되지 않음 이 필드는 경우에 따라 이벤트 타임스탬프에 대해 파싱되지만 UDM에 직접 매핑되지는 않습니다.
timestamp 매핑되지 않음 이 필드는 이벤트 타임스탬프에 대해 파싱되지만 UDM에 직접 매핑되지는 않습니다.
UserName principal.user.user_display_name UserName이 원시 로그에서 매핑됩니다.
Version metadata.product_version 원시 로그의 Version이 문자열로 변환되고 매핑됩니다.
해당 사항 없음 metadata.event_timestamp 이벤트 타임스탬프는 로그 형식에 따라 다양한 필드 (LastTime, time, timestamp, StartTime)에서 파생되거나 다른 타임스탬프를 사용할 수 없는 경우 create_time 필드에서 파생됩니다.
해당 사항 없음 metadata.log_type 항상 CISCO_STEALTHWATCH로 설정합니다.
해당 사항 없음 metadata.vendor_name 항상 Cisco로 설정합니다.
해당 사항 없음 metadata.event_type 로그 콘텐츠를 기반으로 파서 로직에 의해 결정됩니다. NETWORK_CONNECTION, USER_STATS, USER_UNCATEGORIZED, FILE_OPEN, FILE_DELETION, 또는 FILE_UNCATEGORIZED일 수 있습니다.
해당 사항 없음 network.ip_protocol Protocol 또는 ProtocolIdentifier 필드를 기반으로 파서 로직에 의해 결정됩니다. TCP, UDP, ICMP일 수 있습니다.
action security_result.action_details 원시 로그의 action 값이 매핑됩니다.
action security_result.action action 필드에서 파생됩니다. actionSUCCESS이면 이 필드는 ALLOW로 설정되고, 그렇지 않으면 BLOCK로 설정됩니다.
category security_result.category_details 원시 로그의 category 값이 매핑됩니다.
description security_result.description descriptionfile_type이 원시 로그에 모두 있으면 연결되고 매핑됩니다.
desc metadata.description 따옴표가 삭제된 원시 로그의 desc 값이 매핑됩니다.
failuer_reason security_result.summary failuer_reasonfile_type이 원시 로그에 모두 있으면 연결되고 매핑됩니다.
file_path target.file.full_path file_path이 원시 로그에서 매핑됩니다.
file_type target.file.mime_type file_type이 원시 로그에서 매핑됩니다.
hostname principal.hostname hostname이 원시 로그에서 매핑됩니다.
ip principal.ip ip이 원시 로그에서 매핑됩니다.
ipf intermediary.ip ipf이 원시 로그에서 매핑됩니다.
ipt target.ip ipt이 원시 로그에서 매핑됩니다.
process_id target.process.pid process_id이 원시 로그에서 매핑됩니다.
protocol network.application_protocol protocol이 원시 로그에서 매핑됩니다.
security_res.severity security_result.severity severityMinor이면 이 필드는 INFORMATIONAL로 설정되고 severityMajor이면 ERROR로 설정됩니다.
session_id network.session_id session_id이 원시 로그에서 매핑됩니다.
severity 매핑되지 않음 이 필드는 security_result.severity를 파생하는 데 사용되지만 직접 매핑되지는 않습니다.
Source_HG principal.location.country_or_region Source_HG이 원시 로그에서 매핑됩니다.
Source_HostSnapshot principal.url Source_HostSnapshot이 원시 로그에서 매핑됩니다.
Target_HostSnapshot target.url Target_HostSnapshot이 원시 로그에서 매핑됩니다.
user_name principal.user.userid user_name이 원시 로그에서 매핑됩니다.

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