BlueCat DDI 로그 수집
다음에서 지원:
Google SecOps
SIEM
이 파서는 Bluecat DDI(DNS, DHCP, IPAM)의 LEEF 형식 syslog 메시지와 비(비)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를 클릭합니다 (Address Manager가 서버에 쿼리하여 현재 값을 반환함).
- 일반에서 다음 값을 설정합니다.
- 시스템로그 서버: 시스템로그 서버 (Bindplane)의 IP 주소입니다.
- 시스템로그 포트: 시스템로그 서버 (Bindplane)의 포트입니다.
- Syslog 전송: Bindplane 구성에 따라 TCP 또는 UDP를 선택합니다.
- 추가를 클릭합니다.
- 새로 추가된 syslog 서버가 목록에 표시됩니다.
- 업데이트를 클릭합니다.
BlueCat DDI에서 Syslog 설정 구성
- BlueCat Address Manager에 로그인합니다.
- 구성 > 시스템 설정 > 로깅으로 이동합니다.
- 로깅 설정에서 Syslog Servers 섹션을 찾습니다.
- Syslog Server 추가를 클릭합니다.
- 다음과 같이 필수 값을 입력합니다.
- 서버 이름: syslog 서버의 고유한 이름입니다 (예: BindplaneServer).
- IP 주소: syslog 서버의 IP 주소 또는 호스트 이름입니다.
- 프로토콜: TCP, UDP (기본값) 또는 TLS (syslog 구성에 따라 다름) 중에서 선택합니다.
- 포트: syslog 통신의 포트를 지정합니다 (기본값: UDP/TCP의 경우 514, TLS의 경우 6514).
- 로깅 수준을 구성합니다. 필요에 따라 적절한 수준을 선택하세요. 옵션은 다음과 같습니다.
- 긴급: 즉시 처리해야 하는 중요한 문제
- 알림: 즉각적인 조치가 필요한 알림
- Critical: 심각한 상태
- 오류: 오류 이벤트
- 경고: 경고 이벤트
- 알림: 정상이지만 중요한 이벤트
- 정보: 정보 제공 메시지
- 디버그: 자세한 디버그 정보
- 선택사항: 로그를 분류하는 맞춤 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 |
작업 유형이 정의되지 않은 경우 GENERIC_EVENT의 설명으로, MEM-MON 로그에는 사용됩니다. |
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 |
DHCPINFORM 메시지에서 yiaddr 필드를 채우는 데 사용됩니다. |
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 로그에서 추출되며 대상 포트를 나타냅니다. |
변경사항
2022-11-08
- 새로 처리된 로그의 log_type('agetty', 'syslog-ng', 'systemd')에 grok가 추가되었습니다.
- log_type에 관한 grok 패턴('named', 'systemd', 'CRON', 'agetty', 'syslog-ng') 및 위에 언급된 log_type의 필드에 대한 각 매핑이 추가되었습니다.
2022-09-01
- 일반 비율을 줄이기 위해
event_type
을 'GENERIC_EVENT'에서 'USER_UNCATEGORIZED'로 수정했습니다.
2022-08-16
- UDM 매핑 추가됨
metadata.vendor_name
에서 'Bluecat Networks'로metadata.product_name
에서 'Bluecat DDI'로
2022-05-05
query_type
필드에 대한 검사를 추가했습니다.