Brocade ServerIron 로그 수집
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
다음에서 지원:
Google SecOps
SIEM
이 파서는 정규 표현식 일치를 사용하여 Brocade ServerIron syslog 메시지에서 필드를 추출하고 통합 데이터 모델 (UDM)에 매핑합니다. 네트워크 상태, 사용자 인증, 보안 이벤트를 비롯한 다양한 로그 형식을 처리합니다. 파서는 필요한 경우 데이터 유형 변환 및 보강을 실행합니다.
시작하기 전에
- Google Security Operations 인스턴스가 있는지 확인합니다.
- Windows 2016 이상 또는 systemd가 있는 Linux 호스트를 사용하고 있는지 확인합니다.
- 프록시 뒤에서 실행하는 경우 방화벽 포트가 열려 있는지 확인합니다.
- Brocade ServerIron 인스턴스에 대한 권한이 있는지 확인합니다.
Google SecOps 처리 인증 파일 가져오기
- Google SecOps 콘솔에 로그인합니다.
- SIEM 설정 > 수집 에이전트로 이동합니다.
- 처리 인증 파일을 다운로드합니다.
Google SecOps 고객 ID 가져오기
- Google SecOps 콘솔에 로그인합니다.
- SIEM 설정 > 프로필로 이동합니다.
- 조직 세부정보 섹션에서 고객 ID를 복사하여 저장합니다.
Bindplane 에이전트 설치
- Windows 설치의 경우 다음 스크립트를 실행합니다.
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
- Linux 설치의 경우 다음 스크립트를 실행합니다.
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
- 추가 설치 옵션은 이 설치 가이드에서 확인할 수 있습니다.
Syslog를 수집하고 Google SecOps로 전송하도록 Bindplane 에이전트 구성
- Bindplane가 설치된 머신에 액세스합니다.
다음과 같이
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
Bindplane 에이전트를 다시 시작하여 변경사항을 적용합니다.
sudo systemctl restart bindplane
Brocade ServerIron ADX에서 Syslog 내보내기 구성
ADX 기기에 로그인하고 글로벌 구성 모드를 시작합니다.
enable configure terminal
Syslog 로깅을 사용 설정합니다.
logging on
원하는 프로토콜 (Bindplane)을 포함하여 syslog 서버의 IP 주소 또는 호스트 이름과 포트를 지정합니다.
logging host <syslog-server-ip> [udp | tcp] port <port-number>
포트 54525의 TCP 예시:
logging host 10.10.10.10 tcp port 54525
선택사항: Syslog Facility (local0~local7)를 설정합니다.
logging facility local0
syslog 서버로 전송할 로그의 최소 심각도 수준을 정의합니다.
logging trap <severity-level>
구성을 저장합니다.
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 전문가의 답변을 받으세요.