Brocade ServerIron 로그 수집

다음에서 지원:

이 파서는 정규 표현식 일치를 사용하여 Brocade ServerIron syslog 메시지에서 필드를 추출하고 통합 데이터 모델 (UDM)에 매핑합니다. 네트워크 상태, 사용자 인증, 보안 이벤트를 비롯한 다양한 로그 형식을 처리합니다. 파서는 필요한 경우 데이터 유형 변환 및 보강을 실행합니다.

시작하기 전에

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

Google SecOps 처리 인증 파일 가져오기

  1. Google SecOps 콘솔에 로그인합니다.
  2. SIEM 설정 > 수집 에이전트로 이동합니다.
  3. 처리 인증 파일을 다운로드합니다.

Google SecOps 고객 ID 가져오기

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

Bindplane 에이전트 설치

  1. Windows 설치의 경우 다음 스크립트를 실행합니다.
    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
  2. Linux 설치의 경우 다음 스크립트를 실행합니다.
    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
  3. 추가 설치 옵션은 이 설치 가이드에서 확인할 수 있습니다.

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

  1. Bindplane가 설치된 머신에 액세스합니다.
  2. 다음과 같이 config.yaml 파일을 수정합니다.

    receivers:
        tcplog:
            # Replace the below port <54525> and IP <0.0.0.0> with your specific values
            listen_address: "0.0.0.0:54525" 
    
    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            # Adjust the creds location below according the placement of the credentials file you downloaded
            creds: '{ json file for creds }'
            # Replace <customer_id> below with your actual ID that you copied
            customer_id: <customer_id>
            endpoint: malachiteingestion-pa.googleapis.com
            # You can apply ingestion labels below as preferred
            ingestion_labels:
            log_type: SYSLOG
            namespace: Brocade_ServerIron
            raw_log_field: body
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - tcplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. Bindplane 에이전트를 다시 시작하여 변경사항을 적용합니다.

    sudo systemctl restart bindplane
    

Brocade ServerIron ADX에서 Syslog 내보내기 구성

  1. ADX 기기에 로그인하고 글로벌 구성 모드를 시작합니다.

    enable
    configure terminal
    
  2. Syslog 로깅을 사용 설정합니다.

    logging on
    
  3. 원하는 프로토콜 (Bindplane)을 포함하여 syslog 서버의 IP 주소 또는 호스트 이름과 포트를 지정합니다.

    logging host <syslog-server-ip> [udp | tcp] port <port-number>
    

    포트 54525의 TCP 예시:

      logging host 10.10.10.10 tcp port 54525
    
  4. 선택사항: Syslog Facility (local0~local7)를 설정합니다.

    logging facility local0
    
  5. syslog 서버로 전송할 로그의 최소 심각도 수준을 정의합니다.

    logging trap <severity-level>
    
  6. 구성을 저장합니다.

    write memory
    

UDM 매핑 표

로그 필드 UDM 매핑 논리
%{GREEDYDATA} metadata.description %{GREEDYDATA} 필드는 '-- %{GREEDYDATA} --' 패턴과 일치하는 경우 metadata.description에 매핑됩니다.
%{GREEDYDATA:auth_result} security_result.description %{GREEDYDATA:desc}가 있는 경우 %{GREEDYDATA:auth_result} 필드가 %{GREEDYDATA:desc} 필드와 연결되어 security_result.description을 형성합니다.
%{GREEDYDATA:desc} security_result.description %{GREEDYDATA:desc} 필드는 security_result.description 필드를 채우는 데 사용됩니다. 원시 로그 형식에 따라 다른 필드와 연결할 수 있습니다.
%{GREEDYDATA:login_to} security_result.description %{GREEDYDATA:desc}가 있는 경우 %{GREEDYDATA:login_to} 필드가 %{GREEDYDATA:desc} 필드와 연결되어 security_result.description을 형성합니다.
%{GREEDYDATA:user} target.user.userid %{GREEDYDATA:user} 필드는 target.user.userid에 매핑됩니다.
%{HOST:principal_host} principal.hostname %{HOST:principal_host} 필드는 principal.hostname에 매핑됩니다.
%{HOST:target_host} target.hostname %{HOST:target_host} 필드는 target.hostname에 매핑됩니다.
%{INT:http_port} additional.fields.value.string_value %{INT:http_port} 필드는 'HTTP 포트' 키를 사용하여 additional.fields.value.string_value에 매핑됩니다.
%{INT:target_port} target.port %{INT:target_port} 필드는 target.port에 매핑되고 정수로 변환됩니다.
%{INT:telnet_port} additional.fields.value.string_value %{INT:telnet_port} 필드가 'Telnet 포트' 키로 additional.fields.value.string_value에 매핑됩니다.
%{INT:tftp_port} additional.fields.value.string_value %{INT:tftp_port} 필드는 'TFTP 포트' 키를 사용하여 additional.fields.value.string_value에 매핑됩니다.
%{IP:principal_ip} principal.ip %{IP:principal_ip} 필드는 principal.ip에 매핑됩니다.
%{IP:target_ip} target.ip %{IP:target_ip} 필드는 target.ip에 매핑됩니다.
%{IPV4:principal_ip} principal.ip %{IPV4:principal_ip} 필드는 principal.ip에 매핑됩니다.
%{IPV4:target_ip} target.ip %{IPV4:target_ip} 필드는 target.ip에 매핑됩니다.
%{MAC:principal_mac} principal.mac %{MAC:principal_mac} 필드는 [0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2} 형식으로 변환된 후 principal.mac에 매핑됩니다.
%{USERNAME:target_host} target.hostname %{USERNAME:target_host} 필드는 target.hostname에 매핑됩니다.
%{USERNAME:user} target.user.userid %{USERNAME:user} 필드는 target.user.userid에 매핑됩니다.
%{WORD:auth_result} security_result.description %{GREEDYDATA:desc}가 있는 경우 %{WORD:auth_result} 필드가 %{GREEDYDATA:desc} 필드와 연결되어 security_result.description을 형성합니다.
%{WORD:proto} network.application_protocol %{WORD:proto} 필드의 값이 'SSH'인 경우 network.application_protocol에 매핑됩니다.
타임스탬프 metadata.event_timestamp 타임스탬프 필드는 grok 패턴을 사용하여 원시 로그 데이터에서 파싱되고 타임스탬프 객체로 변환됩니다.
extensions.auth.type proto 필드가 비어 있지 않고 auth_action 필드가 '로그아웃' 또는 '로그인'인 경우 값은 'MACHINE'으로 설정됩니다.
metadata.description 'metadata_description' 필드가 비어 있지 않은 경우 이 필드에 'metadata_description' 필드의 값이 채워집니다.
metadata.event_type 이 필드는 조건부 로직을 사용하여 다른 필드의 값을 기반으로 채워집니다.
- STATUS_STARTUP: target_port_status가 'up'인 경우
- STATUS_SHUTDOWN: target_port_status가 'down'인 경우
- USER_LOGOUT: proto가 비어 있지 않고 auth_action이 'logout'인 경우
- USER_LOGIN: proto가 비어 있지 않고 auth_action이 'login'인 경우
- STATUS_UPDATE: metadata_description이 'state changed'와 일치하는 경우
- GENERIC_EVENT: 위의 조건 중 어느 것에도 해당하지 않는 경우입니다.
metadata.log_type 값은 'BROCADE_SERVERIRON'으로 하드코딩되어 있습니다.
metadata.product_name 값은 'ServerIron'으로 하드코딩되어 있습니다.
metadata.vendor_name 이 값은 'Brocade'로 하드코딩됩니다.
security_result.action desc 필드에 'fail'이 포함되어 있거나 auth_result 필드에 'fail' 또는 'rejected'가 포함되어 있으면 값이 'BLOCK'으로 설정됩니다.

변경사항

2022-01-13

  • 새로 추가된 파서

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