BlueCat DDI 로그 수집
다음에서 지원:
Google SecOps
SIEM
이 파서는 Bluecat DDI (DNS, DHCP, IPAM)의 LEEF 및 비LEEF 형식 syslog 메시지를 모두 처리합니다. grok 패턴과 조건부 로직을 사용하여 다양한 로그 유형 (예: named, dhcpd, audit, CRON)에서 필드를 추출하고, 로그 유형에 따라 UDM에 매핑하고, DNS, DHCP 또는 사용자 관련 필드를 적절하게 채웁니다.
시작하기 전에
- Google Security Operations 인스턴스가 있는지 확인합니다.
- Windows 2016 이상 또는 systemd가 있는 Linux 호스트를 사용하고 있는지 확인합니다.
- 프록시 뒤에서 실행하는 경우 방화벽 포트가 열려 있는지 확인합니다.
- Bluecat에 대한 권한 액세스 권한이 있는지 확인합니다.
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: bluceat_ddi raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - tcplog exporters: - chronicle/chronicle_w_labels
Bindplane 에이전트를 다시 시작하여 변경사항을 적용합니다.
sudo systemctl restart bindplane
Bluecat DDI에서 Syslog 구성
- Bluecat Address Manager (BAM)에 로그인합니다.
- 구성 메뉴에서 구성을 선택합니다.
- 서버 탭을 선택합니다.
- 서버에서 BDDS 이름을 클릭합니다.
- 서버의 세부정보 탭이 열립니다.
- 서버 이름 메뉴를 클릭합니다.
- 서비스 구성을 선택합니다.
- 서비스 유형 > Syslog를 클릭합니다 (주소 관리자가 서버를 쿼리하고 현재 값을 반환함).
- 일반에서 다음 값을 설정합니다.
- 시스템로그 서버: 시스템로그 서버 (Bindplane)의 IP 주소입니다.
- 시스템로그 포트: 시스템로그 서버 (Bindplane)의 포트입니다.
- Syslog Transport: TCP 또는 UDP를 선택합니다 (Bindplane 구성에 따라 다름).
- 추가를 클릭합니다.
- 새로 추가된 syslog 서버가 목록에 표시됩니다.
- 업데이트를 클릭합니다.
BlueCat DDI에서 Syslog 설정 구성
- BlueCat Address Manager에 로그인합니다.
- 구성 > 시스템 설정 > 로깅으로 이동합니다.
- 로깅 설정에서 시스템 로그 서버 섹션을 찾습니다.
- Syslog 서버 추가를 클릭합니다.
- 필수 값을 제공합니다.
- 서버 이름: 시스템로그 서버의 고유한 이름입니다 (예: BindplaneServer).
- IP 주소: syslog 서버의 IP 주소 또는 호스트 이름입니다.
- 프로토콜: TCP, UDP (기본값) 또는 TLS (syslog 구성에 따라)를 선택합니다.
- 포트: syslog 통신 포트를 지정합니다 (기본값: UDP/TCP의 경우 514, TLS의 경우 6514).
- 로깅 수준을 구성합니다. 필요에 따라 적절한 수준을 선택하세요. 옵션은 다음과 같습니다.
- 긴급: 즉시 조치를 취해야 하는 심각한 문제
- 알림: 즉각적인 조치가 필요한 알림
- 심각: 심각한 상태
- 오류: 오류 이벤트
- 경고: 경고 이벤트
- 알림: 정상적이지만 중요한 이벤트
- 정보: 정보 제공 메시지
- 디버그: 자세한 디버그 정보
- 선택사항: 로그를 분류하기 위해 맞춤 Syslog 기능을 추가합니다 (예: local0 또는 local1).
- 구성을 저장합니다.
DDI 어플라이언스에 Syslog 설정 적용
- 서버 > 서버 관리로 이동합니다.
- syslog를 사용 설정할 DNS/DHCP 서버를 선택합니다.
- 서버 수정을 클릭합니다.
- 로깅 섹션에서 다음을 수행합니다.
- 이전에 구성한 syslog 서버를 선택합니다.
- 특정 서비스 (예: DNS 쿼리 또는 DHCP 임대)에 대한 로깅을 사용 설정합니다.
- 변경사항을 저장합니다.
UDM 매핑 테이블
로그 필드 | UDM 매핑 | 논리 |
---|---|---|
client_ip |
network.dhcp.ciaddr |
DHCPREQUEST 메시지에서 추출됩니다. DHCPREQUEST 메시지에 대해서만 채워집니다. |
client_mac |
principal.mac |
DHCP 메시지 (DHCPDISCOVER, DHCPREQUEST, DHCPRELEASE)에서 추출됩니다. |
client_mac |
target.mac |
DHCP 메시지 (DHCPOFFER, DHCPNAK)에서 추출됩니다. |
client_mac |
network.dhcp.chaddr |
DHCP 메시지 (DHCPREQUEST, DHCPOFFER, DHCPACK, DHCPNAK, DHCPRELEASE)에서 추출됩니다. |
cmd |
target.process.command_line |
CRON 로그에서 추출했습니다. 앰퍼샌드와 공백이 삭제됩니다. |
description |
metadata.description |
다양한 로그 유형에서 추출되어 추가 컨텍스트를 제공합니다. |
description |
metadata.description |
syslog-ng 로그에서 추출되어 추가 컨텍스트를 제공합니다. |
file_path |
target.file.full_path |
다양한 로그 유형에서 추출되며 파일의 전체 경로를 나타냅니다. |
file_path |
target.process.file.full_path |
agetty 로그에서 추출되며 프로세스와 관련된 파일의 전체 경로를 나타냅니다. |
inner_message |
metadata.description |
작업 유형이 정의되지 않은 경우 및 MEM-MON 로그의 GENERIC_EVENT 설명으로 사용됩니다. |
metadata.event_type |
파서가 로그 유형과 콘텐츠를 기반으로 결정합니다. 가능한 값은 NETWORK_DNS, NETWORK_DHCP, USER_LOGIN, USER_LOGOUT, USER_UNCATEGORIZED, GENERIC_EVENT, STATUS_UPDATE, NETWORK_CONNECTION입니다. 항상 'BLUECAT_DDI'입니다. | |
metadata.vendor_name |
항상 'Bluecat Networks'입니다. | |
metadata.product_name |
항상 'Bluecat DDI'입니다. | |
metadata.event_timestamp |
로그 항목의 파싱된 타임스탬프에서 복사됩니다. | |
network.protocol |
DNS 로그의 경우 'DNS', DHCP 로그의 경우 'DHCP'로 설정됩니다. | |
network.dns.answers |
답변 레코드를 포함하는 배열입니다. answers 내의 data 필드는 target_ip 로 채워집니다(있는 경우). |
|
network.dns.questions |
질문 레코드가 포함된 배열입니다. name 필드는 target_host 로 채워지고, type 필드는 query_type 또는 question_type 필드에서 파생되며, class 필드는 qclass 필드에서 파생됩니다. |
|
network.dns.recursive |
rec_flag 이 '+'인 경우 'true'로 설정됩니다. |
|
qclass |
network.dns.questions.class |
DNS 쿼리 로그에서 추출되고 dns_query_class_mapping.include 파일을 사용하여 정수 값에 매핑됩니다. |
query_type |
network.dns.questions.type |
DNS 쿼리 로그에서 추출되고 dhcp_qtype_mapping.include 파일을 사용하여 정수 값에 매핑됩니다. |
relay_ip |
intermediary.ip |
DNS 및 DHCP 로그에서 추출되며, 릴레이 또는 중개 서버의 IP 주소를 나타냅니다. |
server_host |
target.hostname |
다양한 로그 유형에서 추출되며 서버의 호스트 이름을 나타냅니다. |
server_host |
network.dhcp.sname |
DHCP 로그에서 추출되며 서버 호스트 이름을 나타냅니다. |
server_host |
principal.hostname |
systemd, agetty, 일부 감사 로그에서 추출되며 주 구성원의 호스트 이름을 나타냅니다. |
server_ip |
target.ip |
LEEF 형식 로그에서 추출되며 서버의 IP 주소를 나타냅니다. |
src_ip |
principal.ip |
다양한 로그 유형에서 추출되며 소스 IP 주소를 나타냅니다. |
src_ip |
network.dhcp.yiaddr |
yiaddr 필드를 채우기 위해 DHCPINFORM 메시지에서 사용됩니다. |
src_port |
principal.port |
다양한 로그 유형에서 추출되며 소스 포트를 나타냅니다. |
src_user |
principal.user.userid |
CRON 및 감사 로그에서 추출되며 사용자 ID를 나타냅니다. |
target_host |
target.hostname |
다양한 로그 유형에서 추출되며 타겟 호스트 이름을 나타냅니다. |
target_host |
network.dns.questions.name |
질문 이름을 채우기 위해 DNS 로그에 사용됩니다. |
target_ip |
target.ip |
다양한 로그 유형에서 추출되며 타겟 IP 주소를 나타냅니다. |
target_ip |
network.dhcp.ciaddr |
BOOTREQUEST 메시지에서 ciaddr 필드를 채우는 데 사용됩니다. |
target_ip |
network.dns.answers.data |
DNS 로그에서 답변 데이터를 채우는 데 사용됩니다. |
tgt_port |
target.port |
syslog-ng 로그에서 추출되며 타겟 포트를 나타냅니다. |
도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가로부터 답변을 받으세요.