Infoblox 로그 수집
이 문서에서는 Google Security Operations 전달자를 사용하여 Infoblox 로그를 수집하는 방법을 설명합니다.
자세한 내용은 Google Security Operations에 데이터 수집을 참조하세요.
수집 라벨은 원시 로그 데이터를 구조화된 UDM 형식으로 정규화하는 파서를 식별합니다. 이 문서의 정보는 INFOBLOX_DNS
수집 라벨이 있는 파서에 적용됩니다.
Infoblox 구성
- Infoblox 웹 UI에 로그인합니다.
- Infoblox 웹 UI에서 시스템 > 시스템 속성 편집기 > 모니터링을 선택합니다.
- 외부 syslog 서버에 로깅 체크박스를 선택합니다.
- 외부 syslog 서버 섹션에서 더하기 (+) 기호를 클릭하여 Google 보안 운영 전달자에 새 syslog 서버를 추가합니다.
- 주소 필드에 Google Security Operations 전달자 서버 IP 주소를 입력합니다.
- 전송 목록에서 TCP 또는 UDP를 선택합니다.
- 포트 필드에 포트 번호를 입력합니다.
- 노드 ID 목록에서 LAN을 선택하여 syslog 헤더에 Infoblox IP를 포함합니다.
- 사용 가능 목록에서 다음을 선택하고 선택됨 목록으로 이동합니다.
- DNS 쿼리
- DNS 응답
- DHCP 프로세스
Infoblox 서버는 syslog를 사용하여 쿼리 및 응답 로그를 Google Security Operations 전달자로 전달합니다.
Infoblox 로그를 수집하도록 Google Security Operations 전달자 및 syslog 구성
- SIEM 설정 > 전달자를 선택합니다.
- 새 전달자 추가를 클릭합니다.
- 전달자 이름 입력란에 고유한 이름을 입력합니다.
- 제출을 클릭한 다음 확인을 클릭합니다. 전달자가 추가되고 수집기 구성 추가 창이 표시됩니다.
- 수집기 이름 입력란에 수집기의 고유한 이름을 입력합니다.
- 로그 유형으로 Infoblox를 선택합니다.
- 수집기 유형으로 Syslog를 선택합니다.
- 다음 입력 매개변수를 구성합니다.
- 프로토콜: 수집기가 syslog 데이터를 리슨하는 데 사용할 연결 프로토콜을 지정합니다.
- 주소: 수집기가 상주하고 syslog 데이터를 리슨하는 대상 IP 주소 또는 호스트 이름을 지정합니다.
- 포트: 수집기가 상주하고 syslog 데이터를 리슨하는 대상 포트를 지정합니다.
- 제출을 클릭합니다.
Google Security Operations 전달자에 대한 자세한 내용은 Google Security Operations 전달자 문서를 참고하세요. 각 전달자 유형의 요구사항은 유형별 전달자 구성을 참고하세요.
전달자를 만들 때 문제가 발생하면 Google Security Operations 지원팀에 문의하세요.
필드 매핑 참조
이 파서는 SYSLOG 또는 CEF 형식의 Infoblox DNS 로그를 추출하여 UDM으로 정규화합니다. grok 패턴을 사용하여 다양한 로그 형식을 처리하고, 소스 또는 대상 IP, DNS 쿼리 세부정보, 보안 정보와 같은 주요 필드를 추출하여 적절한 UDM 필드에 매핑합니다.
UDM 매핑 표
로그 필드 | UDM 매핑 | 논리 |
---|---|---|
agent.hostname |
principal.hostname |
CEF 형식 로그의 경우 agent.hostname 가 있으면 principal.hostname 에 매핑됩니다. |
client_ip |
principal.ip |
CEF 형식 로그의 경우 client_ip 가 있으면 principal.ip 에 매핑됩니다. |
client_port |
principal.port |
CEF 형식 로그의 경우 client_port 가 있으면 principal.port 에 매핑됩니다. |
data |
answers.data |
원시 로그의 answers 섹션에 있는 data 필드에서 추출됩니다. 여러 어커런스는 별도의 answers 객체로 매핑됩니다. |
description |
metadata.description |
원시 로그의 description 필드에서 직접 매핑되거나 message 및 msg2 와 같은 다른 필드에서 Grok 패턴을 사용하여 추출됩니다. |
dest_ip1 |
target.ip |
원시 로그에서 추출되고 target.ip 에 매핑됩니다. |
destinationDnsDomain |
dns_question.name |
CEF 형식 로그의 경우 destinationDnsDomain 가 있으면 dns_question.name 에 매핑됩니다. |
dns_class |
dns_question.class |
dns_query_class_mapping.include 참조 표를 사용하여 매핑됩니다. |
dns_domain |
dns_question.name |
Grok 패턴을 사용하여 원시 로그의 message 필드에서 추출되고 dns_question.name 에 매핑됩니다. |
dns_name |
dns_question.name |
Grok 패턴을 사용하여 dns_domain 필드에서 추출하고 dns_question.name 에 매핑했습니다. |
dns_records |
answers.data |
CEF 형식 로그의 경우 dns_records 가 있으면 answers.data 에 매핑됩니다. 여러 어커런스는 별도의 answers 객체로 매핑됩니다. |
dst_ip |
target.ip 또는 target.hostname |
Grok 패턴을 사용하여 원시 로그의 message 필드에서 추출됩니다. 올바른 IP 주소인 경우 target.ip 에 매핑되고 그렇지 않은 경우 target.hostname 에 매핑됩니다. |
dst_ip1 |
target.ip 또는 target.hostname |
Grok 패턴을 사용하여 원시 로그의 message 또는 msg2 필드에서 추출됩니다. 올바른 IP 주소인 경우 target.ip 에 매핑되고 그렇지 않은 경우 target.hostname 에 매핑됩니다. dst_ip 와 다른 경우에만 매핑됩니다. |
evt_type |
metadata.product_event_type |
Grok 패턴을 사용하여 message 필드에서 추출된 원시 로그의 evt_type 필드에서 직접 매핑됩니다. |
InfobloxB1OPHIPAddress |
principal.ip |
CEF 형식 로그의 경우 InfobloxB1OPHIPAddress 가 있으면 principal.ip 에 매핑됩니다. |
InfobloxB1Region |
principal.location.country_or_region |
CEF 형식 로그의 경우 InfobloxB1Region 가 있으면 principal.location.country_or_region 에 매핑됩니다. |
InfobloxDNSQType |
dns_question.type |
CEF 형식 로그의 경우 InfobloxDNSQType 가 있으면 dns_question.type 에 매핑됩니다. |
intermediary |
intermediary.ip 또는 intermediary.hostname |
Grok 패턴을 사용하여 원시 로그의 message 필드에서 추출됩니다. 올바른 IP 주소인 경우 intermediary.ip 에 매핑되고 그렇지 않은 경우 intermediary.hostname 에 매핑됩니다. |
msg2 |
metadata.description , dns.response_code , dns_question.name , target.ip , target.hostname , answers.name , answers.ttl , answers.data , answers.class , answers.type , security_result.severity |
Grok 패턴을 사용하여 원시 로그의 message 필드에서 추출됩니다. 다양한 필드를 추출하는 데 사용되지만 UDM에 직접 매핑되지는 않습니다. |
name1 |
answers.name |
Grok 패턴을 사용하여 원시 로그의 msg2 필드에서 추출되고 answers.name 에 매핑됩니다. |
name2 |
answers.name |
Grok 패턴을 사용하여 원시 로그의 msg2 필드에서 추출되고 answers.name 에 매핑됩니다. |
protocol |
network.ip_protocol |
알려진 프로토콜과 일치하는 경우 원시 로그의 protocol 필드에서 직접 매핑됩니다. |
qclass |
dns_question.class |
dns_class 를 UDM에 매핑하는 데 사용되는 중간 필드입니다. |
qclass1 |
answers.class |
dns_class1 를 UDM에 매핑하는 데 사용되는 중간 필드입니다. |
qclass2 |
answers.class |
dns_class2 를 UDM에 매핑하는 데 사용되는 중간 필드입니다. |
query_type |
dns_question.type |
dns_record_type.include 참조 표를 사용하여 매핑됩니다. |
query_type1 |
answers.type |
dns_record_type.include 참조 표를 사용하여 매핑됩니다. |
query_type2 |
answers.type |
dns_record_type.include 참조 표를 사용하여 매핑됩니다. |
recursion_flag |
network.dns.recursion_desired |
recursion_flag 에 '+'가 포함된 경우 network.dns.recursion_desired 에 true로 매핑됩니다. |
record_type |
dns_question.type |
query_type 를 UDM에 매핑하는 데 사용되는 중간 필드입니다. |
record_type1 |
answers.type |
query_type1 를 UDM에 매핑하는 데 사용되는 중간 필드입니다. |
record_type2 |
answers.type |
query_type2 를 UDM에 매핑하는 데 사용되는 중간 필드입니다. |
res_code |
network.dns.response_code |
dns_response_code.include 참조 표를 사용하여 매핑됩니다. |
response_code |
network.dns.response_code |
CEF 형식 로그의 경우 response_code 가 있으면 dns_response_code.include 조회 테이블을 사용하여 network.dns.response_code 에 매핑됩니다. |
security_action |
security_result.action |
status 필드에서 파생됩니다. status 가 '거부됨'인 경우 security_action 는 '차단'으로 설정되고, 그렇지 않으면 '허용'으로 설정됩니다. |
severity |
security_result.severity |
CEF 형식 로그의 경우 severity 가 '정보'인 경우 security_result.severity 에 'INFORMATIONAL'로 매핑됩니다. |
src_host |
principal.hostname |
Grok 패턴을 사용하여 원시 로그의 description 또는 message 필드에서 추출되고 principal.hostname 에 매핑됩니다. |
src_ip |
principal.ip 또는 principal.hostname |
Grok 패턴을 사용하여 원시 로그의 message 필드에서 추출됩니다. 올바른 IP 주소인 경우 principal.ip 에 매핑되고 그렇지 않은 경우 principal.hostname 에 매핑됩니다. |
src_port |
principal.port |
Grok 패턴을 사용하여 원시 로그의 message 필드에서 추출되고 principal.port 에 매핑됩니다. |
ttl1 |
answers.ttl |
Grok 패턴을 사용하여 원시 로그의 msg2 필드에서 추출되고 answers.ttl 에 매핑됩니다. |
ttl2 |
answers.ttl |
Grok 패턴을 사용하여 원시 로그의 msg2 필드에서 추출되고 answers.ttl 에 매핑됩니다. |
metadata.event_type |
metadata.event_type |
다양한 필드와 파서 로직에서 파생됩니다. 다른 이벤트 유형이 식별되지 않은 경우 기본값은 GENERIC_EVENT 입니다. 가능한 값은 NETWORK_DNS , NETWORK_CONNECTION , STATUS_UPDATE 입니다. |
metadata.log_type |
metadata.log_type |
파서에 의해 'INFOBLOX_DNS'로 설정됩니다. |
metadata.product_name |
metadata.product_name |
파서에 의해 'Infoblox DNS'로 설정됩니다. |
metadata.vendor_name |
metadata.vendor_name |
파서에 의해 'INFOBLOX'로 설정됩니다. |
metadata.product_version |
metadata.product_version |
CEF 메시지에서 추출되었습니다. |
metadata.event_timestamp |
metadata.event_timestamp |
timestamp 필드에서 복사됩니다. |
network.application_protocol |
network.application_protocol |
event_type 이 'GENERIC_EVENT' 또는 'STATUS_UPDATE'가 아닌 경우 'DNS'로 설정합니다. |
변경사항
2023-10-17
- 파싱되지 않은 로그를 처리하는 Grok 패턴을 추가했습니다.
2023-06-19
- '호스트 이름','ip', '포트'를 추출하는 Grok 패턴을 작성하고 'event_type'을 적절하게 변경했습니다.
2022-02-09
- '호스트 이름'을 추출하는 Grok를 작성하고 'event_type'을 적절하게 변경했습니다.
- 'src_host'가 'principal.hostname'에 매핑되었습니다.
- 적절한 'event_type'을 매핑했습니다.
2023-01-19
- 새 Syslog를 지원하도록 Grok 패턴을 추가했습니다.
- 다음에 대한 매핑이 추가되었습니다.
- 로그에 TCP 또는 UDP와 같은 IP 프로토콜이 포함된 경우 값이 'network.ip_protocol'에 매핑됩니다.
- 로그에 중간 IP 주소 또는 호스트 이름이 포함된 경우 값이 'intermediary.ip/intermediary.hostname'에 매핑됩니다.
2022-09-09
- 'syslog_timestamp' 필드를 수정하고 'metadata.event_timestamp'에 올바르게 매핑했습니다.
2022-08-25
- 'syslog_timestamp' 필드가 'metadata.event_timestamp'에 매핑되었습니다.
- 'principal.mac'에 매핑된 'smac' 필드에 대한 grok 및 조건부 검사를 추가했습니다.
- 'network.dns.questions'에 매핑된 'dns_domain' 필드에 대한 조건부 검사를 추가했습니다.
- 'network.dns.answers.name'에 매핑된 'name1' 필드에 조건부 검사를 추가했습니다.
- 'network.dns.answers.ttl'에 매핑된 'ttl1' 필드에 대한 조건부 검사가 추가되었습니다.
2022-07-15
- 버그 수정 - network.dns.questions.name, network.dns.answers.name, network.dns.answers.data에서 마지막 문자가 점인 경우 삭제됨
2022-06-02
- 버그 수정 - IP가 syslog 로그에서 제대로 추출되지 않아 올바르게 추출되도록 grok를 수정했습니다.
- 개선사항 - CEF 형식 로그에 대한 지원이 제공되었습니다.
- 다음과 같은 새 필드를 매핑했습니다.
- InfobloxB1OPHIPAddress to principal.ip
- InfobloxDNSQType을 dns.questions.type으로 변경
- destinationDnsDomain을 dns.questions.name으로 변경
- InfobloxB1Region을 principal.location.country_or_region으로
2022-04-28
- 'network.dns.questions.name' 필드에서 'query:'이라는 추가 단어를 삭제했습니다.