SonicWall 로그 수집
이 문서에서는 Google Security Operations 전달자를 사용하여 SonicWall 로그를 수집하는 방법을 설명합니다.
자세한 내용은 Google Security Operations에 데이터 수집을 참조하세요.
수집 라벨은 원시 로그 데이터를 구조화된 UDM 형식으로 정규화하는 파서를 식별합니다. 이 문서의 정보는 SONIC_FIREWALL
수집 라벨이 있는 파서에 적용됩니다.
SonicWall 보안 어플라이언스 구성
- SonicWall 콘솔에 로그인합니다.
- 로그 > Syslog로 이동합니다.
- Syslog servers 섹션에서 추가를 클릭합니다. syslog 서버 추가 창이 표시됩니다.
- 이름 또는 IP 주소 필드에 Google Security Operations 전달자 호스트 이름 또는 IP 주소를 입력합니다.
- syslog 구성에서 기본 514 포트를 사용하지 않는 경우 포트 번호 입력란에 포트 번호를 지정합니다.
- 확인을 클릭합니다.
- 수락을 클릭하여 모든 syslog 서버 설정을 저장합니다.
SonicWall 로그를 수집하도록 Google Security Operations 전달자 및 syslog 구성
- SIEM 설정 > 전달자로 이동합니다.
- 새 전달자 추가를 클릭합니다.
- Forwarder Name(운송업체 이름) 입력란에 운송업체의 고유한 이름을 입력합니다.
- 제출을 클릭합니다. 전달자가 추가되고 수집기 구성 추가 창이 표시됩니다.
- 수집기 이름 입력란에 이름을 입력합니다.
- 로그 유형으로 SonicWall을 선택합니다.
- 수집기 유형으로 Syslog를 선택합니다.
- 다음 필수 입력 매개변수를 구성합니다.
- 프로토콜: 수집기가 syslog 데이터를 리슨하는 데 사용할 연결 프로토콜을 지정합니다.
- 주소: 수집기가 상주하고 syslog 데이터를 리슨하는 대상 IP 주소 또는 호스트 이름을 지정합니다.
- 포트: 수집기가 상주하고 syslog 데이터를 리슨하는 대상 포트를 지정합니다.
- 제출을 클릭합니다.
Google Security Operations 전달자에 대한 자세한 내용은 Google Security Operations 전달자 문서를 참고하세요.
각 전달자 유형의 요구사항은 유형별 전달자 구성을 참고하세요.
전달자를 만들 때 문제가 발생하면 Google Security Operations 지원팀에 문의하세요.
필드 매핑 참조
이 파서는 SonicWall 방화벽 syslog 메시지에서 키-값 쌍을 추출하고 타임스탬프, IP 주소, 포트와 같은 다양한 필드를 정규화하여 UDM 형식에 매핑합니다. IPv4 및 IPv6 주소를 모두 처리하고 허용된 이벤트와 차단된 이벤트를 구분하며 규칙 이름 및 설명과 같은 보안 관련 세부정보를 추출합니다.
UDM 매핑 표
로그 필드 | UDM 매핑 | 논리 |
---|---|---|
에이전트 | event.idm.read_only_udm.network.http.user_agent |
agent 필드의 값이 UDM 필드에 할당됩니다. |
appcat | event.idm.read_only_udm.security_result.summary |
appcat 필드의 값이 UDM 필드에 할당됩니다. appcat 에 'PROXY-ACCESS'가 포함된 경우 event.idm.read_only_udm.security_result.category 는 'POLICY_VIOLATION'으로 설정되고 event.idm.read_only_udm.security_result.action 는 'BLOCK'으로 설정됩니다. |
appid | event.idm.read_only_udm.security_result.rule_id |
appid 필드의 값이 UDM 필드에 할당됩니다. |
인수 | event.idm.read_only_udm.target.resource.name |
arg 필드의 값이 UDM 필드에 할당됩니다. |
avgThroughput | event.idm.read_only_udm.target.resource.attribute.labels |
'avgThroughput' 키와 avgThroughput 필드의 값으로 된 라벨이 UDM 필드에 추가됩니다. |
bytesIn | event.idm.read_only_udm.network.received_bytes |
bytesIn 필드의 값이 부호 없는 정수로 변환되고 UDM 필드에 할당됩니다. |
bytesOut | event.idm.read_only_udm.network.sent_bytes |
bytesOut 필드의 값이 부호 없는 정수로 변환되고 UDM 필드에 할당됩니다. |
bytesTotal | event.idm.read_only_udm.target.resource.attribute.labels |
'bytesTotal' 키와 bytesTotal 필드의 값으로 된 라벨이 UDM 필드에 추가됩니다. |
카테고리 | event.idm.read_only_udm.security_result.category_details |
Category 필드의 값이 UDM 필드에 할당됩니다. |
cdur | event.idm.read_only_udm.security_result.detection_fields |
'연결 시간 (밀리초)' 키와 cdur 필드의 값이 있는 감지 필드가 UDM 필드에 추가됩니다. |
dst | event.idm.read_only_udm.target.ip , event.idm.read_only_udm.target.port |
IP 및 포트는 dst 필드에서 추출됩니다. dstV6 가 비어 있지 않으면 대신 dstV6 에서 IP가 추출됩니다. |
dstMac | event.idm.read_only_udm.target.mac |
dstMac 필드의 값이 UDM 필드에 할당됩니다. |
dstV6 | event.idm.read_only_udm.target.ip |
IP는 dstV6 필드에서 추출됩니다. |
dstname | event.idm.read_only_udm.target.hostname |
dstname 가 IP 주소가 아닌 경우 값이 UDM 필드에 할당됩니다. |
기간 | event.idm.read_only_udm.network.session_duration.seconds |
duration 필드의 값이 정수로 변환되고 UDM 필드에 할당됩니다. |
fw | event.idm.read_only_udm.principal.ip |
fw 필드의 값이 UDM 필드에 할당됩니다. fw 에 '-'이 포함된 경우 fw 필드의 값과 'fw' 키가 있는 라벨이 event.idm.read_only_udm.additional.fields 에 추가됩니다. |
fw_action | event.idm.read_only_udm.security_result.action_details , event.idm.read_only_udm.security_result.summary , event.idm.read_only_udm.security_result.action |
fw_action 필드의 값이 event.idm.read_only_udm.security_result.action_details 에 할당됩니다. fw_action 이 'drop'인 경우 event.idm.read_only_udm.security_result.action 은 'BLOCK'으로 설정되고 event.idm.read_only_udm.security_result.summary 은 msg 값으로 설정됩니다. |
gw | event.idm.read_only_udm.intermediary.ip |
IP 주소가 gw 필드에서 추출되고 UDM 필드에 할당됩니다. |
id | event.idm.read_only_udm.principal.hostname , event.idm.read_only_udm.principal.asset.hostname |
id 필드의 값이 두 UDM 필드에 모두 할당됩니다. |
maxThroughput | event.idm.read_only_udm.target.resource.attribute.labels |
'maxThroughput' 키와 maxThroughput 필드의 값으로 된 라벨이 UDM 필드에 추가됩니다. |
msg | event.idm.read_only_udm.security_result.summary , event.idm.read_only_udm.metadata.description |
fw_action 가 'drop'이 아니거나 appcat 가 비어 있으면 msg 필드의 값이 event.idm.read_only_udm.security_result.summary 에 할당됩니다. 그렇지 않으면 event.idm.read_only_udm.metadata.description 에 할당됩니다. |
natDst | event.idm.read_only_udm.target.nat_ip |
IP 주소가 natDst 필드에서 추출되고 UDM 필드에 할당됩니다. |
natSrc | event.idm.read_only_udm.principal.nat_ip |
IP 주소가 natSrc 필드에서 추출되고 UDM 필드에 할당됩니다. |
note | event.idm.read_only_udm.security_result.description |
dstip , srcip , gw , sec_desc 를 추출한 후 note 필드의 값이 UDM 필드에 할당됩니다. |
packetsIn | event.idm.read_only_udm.target.resource.attribute.labels |
'packetsIn' 키와 packetsIn 필드의 값으로 된 라벨이 UDM 필드에 추가됩니다. |
packetsOut | event.idm.read_only_udm.target.resource.attribute.labels |
'packetsOut' 키와 packetsOut 필드의 값으로 된 라벨이 UDM 필드에 추가됩니다. |
packetsTotal | event.idm.read_only_udm.target.resource.attribute.labels |
'packetsTotal' 키와 packetsTotal 필드의 값으로 된 라벨이 UDM 필드에 추가됩니다. |
pri | event.idm.read_only_udm.security_result.severity |
pri 필드의 값에 따라 UDM 필드의 값이 결정됩니다. 0, 1, 2 -> CRITICAL, 3 -> ERROR, 4 -> MEDIUM, 5, 7 -> LOW, 6 -> INFORMATIONAL |
proto | event.idm.read_only_udm.network.ip_protocol , event.idm.read_only_udm.network.application_protocol , event.idm.read_only_udm.metadata.event_type |
proto 에 'udp'가 포함된 경우 UDM ip_protocol 는 'UDP'로 설정되고 event_type 는 'NETWORK_CONNECTION'으로 설정됩니다. proto 에 'https'가 포함된 경우 UDM application_protocol 이 'HTTPS'로 설정됩니다. |
rcvd | event.idm.read_only_udm.network.received_bytes |
rcvd 필드의 값이 부호 없는 정수로 변환되고 UDM 필드에 할당됩니다. |
규칙 | event.idm.read_only_udm.security_result.rule_name |
rule 필드의 값이 UDM 필드에 할당됩니다. |
sec_desc | event.idm.read_only_udm.security_result.description |
sec_desc 필드의 값이 UDM 필드에 할당됩니다. |
sent | event.idm.read_only_udm.network.sent_bytes |
sent 필드의 값이 부호 없는 정수로 변환되고 UDM 필드에 할당됩니다. |
sess | event.idm.read_only_udm.security_result.detection_fields |
'Session Type' 키와 sess 필드의 값이 있는 감지 필드가 UDM 필드에 추가됩니다. |
sn | event.idm.read_only_udm.additional.fields |
'SN' 키와 sn 필드의 값으로 된 라벨이 UDM 필드에 추가됩니다. |
spkt | event.idm.read_only_udm.network.sent_packets |
spkt 필드의 값이 정수로 변환되어 UDM 필드에 할당됩니다. |
src | event.idm.read_only_udm.principal.ip , event.idm.read_only_udm.principal.port |
IP 및 포트는 src 필드에서 추출됩니다. srcV6 가 비어 있지 않으면 대신 srcV6 에서 IP가 추출됩니다. |
srcMac | event.idm.read_only_udm.principal.mac |
srcMac 필드의 값이 UDM 필드에 할당됩니다. |
srcV6 | event.idm.read_only_udm.principal.ip |
IP는 srcV6 필드에서 추출됩니다. |
srcip | event.idm.read_only_udm.additional.fields , event.idm.read_only_udm.principal.ip |
srcip 에 '-'이 포함된 경우 srcip 필드의 값과 'srcip' 키가 있는 라벨이 event.idm.read_only_udm.additional.fields 에 추가됩니다. 그 외의 경우 srcip 값이 event.idm.read_only_udm.principal.ip 에 할당됩니다. |
시간 | event.idm.read_only_udm.metadata.event_timestamp |
time 필드의 값이 파싱되어 타임스탬프로 변환된 후 UDM 필드에 할당됩니다. |
유형 | event.idm.read_only_udm.network.ip_protocol |
proto 필드가 'icmp'인 경우 UDM 필드는 'ICMP'로 설정됩니다. |
user/usr | event.idm.read_only_udm.principal.user.email_addresses , event.idm.read_only_udm.principal.user.user_display_name , event.idm.read_only_udm.principal.user.userid |
user 가 비어 있으면 usr 의 값이 대신 사용됩니다. 값에 '@'가 포함된 경우 이메일 주소로 취급되어 email_addresses 에 추가됩니다. 공백이 포함된 경우 표시 이름으로 취급됩니다. 그렇지 않으면 사용자 ID로 취급됩니다. |
vpnpolicy | event.idm.read_only_udm.security_result.detection_fields |
키가 'vpnpolicy'이고 vpnpolicy 필드의 값이 있는 감지 필드가 UDM 필드에 추가됩니다. 'SonicWall'로 하드코딩되었습니다. '방화벽'으로 하드코딩됩니다. 'SONIC_FIREWALL'로 하드코딩되었습니다. 다른 필드의 값을 기반으로 로직에 의해 결정됩니다. 기본값은 'GENERIC_EVENT'이며 'STATUS_UPDATE', 'NETWORK_CONNECTION' 또는 'NETWORK_HTTP'일 수 있습니다. |
변경사항
2024-06-04
- 'principal.asset.ip' 및 'target.asset.ip'의 정렬이 삭제되었습니다.
- IP 값이 범위 형식인 경우 'src' 및 'dst'가 'additional.fields'에 매핑됩니다.
- 'gw'가 'intermediary.ip'에 매핑되었습니다.
2024-05-29
- 'sn' 필드를 파싱하도록 grok를 수정했습니다.
- 'sn'이 'intermediary.asset_id'에 매핑되었습니다.
2024-05-29
- 'firewall_hostname'이 'intermediary.hostname'에 매핑되었습니다.
- 'sn' 필드를 파싱하도록 Grok 패턴을 수정했습니다.
- 'sn'이 'intermediary.asset_id'에 매핑되었습니다.
2024-04-18
- 'fw'의 매핑을 'observer.ip'에서 'principal.ip'로 변경했습니다.
- 'id'의 매핑을 'resource.id'에서 'principal.hostname'으로 변경했습니다.
2023-05-26
- 개선 -
- 'fw_action'이 'security_result.action_details'에 매핑되었습니다.
- 'spkt'이 'network.sent_packets'에 매핑되었습니다.
2023-03-08
- 개선 -
- 적절한 필드 (예: principal.user.email_addresses, principal.user.user_display_name, principal.user.userid)를 파싱하기 위해 '사용자' 필드에 조건 검사를 추가했습니다.
- 'security_result.detection_fields'에서 'pri'를 삭제하고 'security_result.severity'에 매핑했습니다.
- 'usr'이 'principal.user.email_addresses'에 매핑되었습니다.
- 'vpnpolicy' 필드가 'security_result.detection_fields'에 매핑되었습니다.
- 'cdur' 필드가 'security_result.detection_fields'에 매핑되었습니다.
- 'sess' 필드가 'security_result.detection_fields'에 매핑되었습니다.
2023-03-06
- 개선 -
- 'fw'가 target.ip 대신 'observer.ip'에 매핑되었습니다.
2023-02-22
- 개선 -
- 프로토콜이 HTTP가 아닌 경우 'NETWORK_HTTP'가 'NETWORK_CONNECTION'에 매핑되므로 이벤트가 트래픽을 파싱합니다.
- 'fw_action'이 'drop'과 같은 경우 'msg'를 'security_result.summary'에 매핑하고 'BLOCK'을 'security_result.action'에 매핑했습니다.
- 'fw'가 'observer.ip'에, 'src'가 'principal.ip'에 매핑되었습니다.
2022-06-24
- 개선 -
- 'msg'가 'security_result.summary'에 매핑되었습니다.
- 'fw_action'이 'drop'과(와) 일치하는 경우 'BLOCK'이 'security_result.action'에 매핑되었습니다.
- 'sent'가 'network.sent_bytes'에 매핑되었습니다.
- 'rcvd'가 'network.received_bytes'에 매핑되었습니다.
- 'usr'가 'principal.user.userid'에 매핑되었습니다.
- 'pri'가 'additional.fields'에 매핑되었습니다.
- 'sn'이 'additional.fields'에 매핑되었습니다.
- 'id'가 'target.resource.id'에 매핑되었습니다.
2022-05-26
- 버그 수정-
- 기간을 network.session_duration.seconds에 매핑했습니다.
- 사용자를 principal.user.userid에 매핑했습니다.
- 에이전트를 network.http.user_agent에 매핑했습니다.
- avgThroughput가 target.resource.attribute.labels에 매핑되었습니다.
- bytesIn을 network.sent_bytes에 매핑했습니다.
- bytesOut을 network.received_bytes에 매핑했습니다.
- bytesTotal이 target.resource.attribute.labels에 매핑되었습니다.
- maxThroughput가 target.resource.attribute.labels에 매핑되었습니다.
- dst를 target.ip에 매핑했습니다.
- fw를 principal.ip에 매핑했습니다.
- pri가 event.idm.read_only_udm.additional.fields에 매핑되었습니다.
2022-05-19
- 개선사항 - 파서를 SDM에서 UDM으로 변환했습니다 (webproxy 필드에서 이벤트 필드로 매핑 변경).