Brocade 스위치 로그 수집
다음에서 지원:
Google SecOps
SIEM
이 파서는 다양한 로그 형식과 일치하는 Grok 패턴을 사용하여 Brocade 스위치 로그에서 필드를 추출합니다. 그런 다음 이러한 추출된 필드를 UDM 필드에 매핑하여 다양한 로그 구조를 처리하고 공급업체 및 제품 정보와 같은 메타데이터로 데이터를 보강합니다. 또한 파서는 최종 UDM 출력을 생성하기 전에 심각도 수준 변환, 반복 메시지 처리와 같은 데이터 변환을 실행합니다.
시작하기 전에
- Google Security Operations 인스턴스가 있는지 확인합니다.
- Windows 2016 이상 또는 systemd가 있는 Linux 호스트를 사용하고 있는지 확인합니다.
- 프록시 뒤에서 실행하는 경우 방화벽 포트가 열려 있는지 확인합니다.
- Brocade 스위치에 대한 CLI 관리 액세스 권한이 있는지 확인합니다.
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_Switch 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 스위치에서 Syslog 내보내기 구성
- 적절한 사용자 인증 정보로 SSH 또는 Telnet을 사용하여 Brocade 스위치에 연결합니다.
다음 명령어를 실행하여 syslog 서버 (Bindplane)의 IP 주소 또는 호스트 이름과 포트를 지정합니다.
syslogadmin --set -ip <IP> -port <Port>
예를 들면 다음과 같습니다.
syslogadmin --set -ip 10.10.10.10 -port 54525
다음 명령어를 실행하여 구성된 syslog 서버를 표시합니다.
syslogadmin --show -ip
UDM 매핑 표
로그 필드 | UDM 매핑 | 논리 |
---|---|---|
application |
additional.fields[].key : 'application'additional.fields[].value.string_value : |
KV_DATA 필드가 있는 경우 원시 로그의 application@1588 필드에서 추출된 값입니다. |
class |
additional.fields[].key : 'class'additional.fields[].value.string_value : |
KV_DATA 필드가 있는 경우 원시 로그의 class@1588 필드에서 추출된 값입니다. |
domain |
principal.administrative_domain |
domain 필드와 일치하는 Grok 패턴에서 추출된 값입니다. |
Event |
additional.fields[].key : 'event_category'additional.fields[].value.string_value : |
KV_DATA 필드가 있는 경우 원시 로그의 arg0@1588 필드에서 추출된 값입니다. |
event_id |
metadata.product_log_id |
event_id 필드와 일치하는 Grok 패턴에서 추출된 값입니다. |
event_type |
metadata.product_event_type |
event_type 필드와 일치하는 Grok 패턴에서 추출된 값입니다. |
flags |
additional.fields[].key : 'flags'additional.fields[].value.string_value : |
flags 필드와 일치하는 Grok 패턴에서 추출된 값입니다. |
Info |
metadata.description |
grok를 사용하여 파싱된 Info 필드에서 추출된 값입니다. |
interface |
app_protocol_src |
KV_DATA 필드가 있는 경우 원시 로그의 interface@1588 필드에서 추출된 값입니다. network.application_protocol 를 파생하는 데 사용됩니다. |
ip |
principal.ip |
grok를 사용하여 파싱된 ip 필드에서 추출된 값입니다. Info 필드에서 추출된 IP와 동일하지 않은 경우 principal.ip 에 병합됩니다. |
Info , IP Addr |
principal.ip |
Info 필드 내 IP Addr 필드에서 추출된 값으로, grok를 사용하여 파싱됩니다. |
log |
additional.fields[].key : 'log'additional.fields[].value.string_value : |
KV_DATA 필드가 있는 경우 원시 로그의 log@1588 필드에서 추출된 값입니다. |
msg |
metadata.description |
grok를 사용하여 파싱된 msg 필드에서 추출된 값입니다. |
msgid |
additional.fields[].key : "msgid"additional.fields[].value.string_value : |
KV_DATA 필드가 있는 경우 원시 로그의 msgid@1588 필드에서 추출된 값입니다. |
prin_host |
principal.hostname principal.asset.hostname |
prin_host 필드와 일치하는 Grok 패턴에서 추출된 값입니다. |
product_version |
metadata.product_version |
product_version 필드와 일치하는 Grok 패턴에서 추출된 값입니다. |
repeat_count |
additional.fields[].key : 'repeat_count'additional.fields[].value.string_value : |
grok를 사용하여 파싱된 msg 필드에서 추출된 값입니다. |
role , user_role |
principal.user.attribute.roles[].name |
role@1588 또는 user_role 필드에서 추출된 값입니다. 값이 'admin'인 경우 'Admin'으로 대체됩니다. |
sequence_number |
additional.fields[].key : 'sequence_number'additional.fields[].value.string_value : |
sequence_number 필드와 일치하는 Grok 패턴에서 추출된 값입니다. |
severity |
security_result.severity |
grok를 사용하여 파싱된 severity 필드에서 추출된 값입니다. UDM 심각도 값 (INFORMATIONAL, ERROR, CRITICAL, MEDIUM)에 매핑됩니다. |
Status |
security_result.summary |
Status 필드에서 추출된 값입니다. |
switch_name |
additional.fields[].key : 'switch_name'additional.fields[].value.string_value : |
switch_name 필드와 일치하는 Grok 패턴에서 추출된 값입니다. |
target_application |
target.application |
target_application 필드와 일치하는 Grok 패턴에서 추출된 값입니다. |
time |
additional.fields[].key : 'time'additional.fields[].value.string_value : |
kv_data3 필드 내 time 필드에서 추출된 값입니다. |
timestamp |
metadata.event_timestamp.seconds |
날짜 필터를 사용하여 파싱된 timestamp 필드에서 추출된 값입니다. |
user |
principal.user.userid principal.user.user_display_name |
grok를 사용하여 파싱된 user 또는 user@1588 필드에서 추출된 값입니다. principal.hostname 에서 복사되었습니다. principal.ip 에서 복사되었습니다. metadata.product_event_type 에서 복사되거나 조건에 따라 'STATUS_UPDATE'로 설정됩니다. 로그의 create_time.nanos 에서 복사했습니다. has_principal , has_target , has_userid , event_type 의 값을 기반으로 파서 로직에 의해 결정됩니다. 'SYSTEM_AUDIT_LOG_UNCATEGORIZED', 'STATUS_UPDATE' 또는 'GENERIC_EVENT'일 수 있습니다. 'BROCADE_SWITCH'로 하드코딩됩니다. 'BROCADE'로 하드코딩됩니다. 'BROCADE_SWITCH'로 하드코딩됩니다. interface 필드에서 파생되거나 interface 필드에 'SSH'가 포함된 경우 'SSH'로 설정됩니다. |
변경사항
2024-04-15
- 고객별 로그에 대한 지원이 추가되었습니다.
2023-12-01
- 파서를 새로 만들었습니다.