Symantec DLP 로그 수집
이 문서에서는 Bindplane을 사용하여 Symantec DLP 로그를 수집하는 방법을 설명합니다. 파서 코드는 먼저 수신되는 Symantec DLP 로그 데이터를 XML로 파싱하려고 시도합니다. XML 파싱에 실패하면 SYSLOG + KV (CEF) 형식을 가정하고 grok
및 kv
필터를 조합하여 키-값 쌍을 추출하고 통합 데이터 모델 (UDM)에 매핑합니다.
시작하기 전에
- Google Security Operations 인스턴스가 있는지 확인합니다.
- Windows 2016 이상 또는
systemd
를 사용하는 Linux 호스트를 사용하고 있는지 확인합니다. - 프록시 뒤에서 실행하는 경우 방화벽 포트가 열려 있는지 확인합니다.
- Symantec DLP에 대한 권한이 있는지 확인합니다.
Google SecOps 처리 인증 파일 가져오기
- Google SecOps 콘솔에 로그인합니다.
- SIEM 설정 > 수집 에이전트로 이동합니다.
- 처리 인증 파일을 다운로드합니다. Bindplane가 설치될 시스템에 파일을 안전하게 저장합니다.
Google SecOps 고객 ID 가져오기
- Google SecOps 콘솔에 로그인합니다.
- SIEM 설정 > 프로필로 이동합니다.
- 조직 세부정보 섹션에서 고객 ID를 복사하여 저장합니다.
Bindplane 에이전트 설치
Windows 설치
- 관리자 권한으로 명령 프롬프트 또는 PowerShell을 엽니다.
다음 명령어를 실행합니다.
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Linux 설치
- 루트 또는 sudo 권한으로 터미널을 엽니다.
다음 명령어를 실행합니다.
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
추가 설치 리소스
- 추가 설치 옵션은 이 설치 가이드를 참고하세요.
Syslog를 수집하고 Google SecOps로 전송하도록 Bindplane 에이전트 구성
구성 파일에 액세스합니다.
config.yaml
파일을 찾습니다. 일반적으로 Linux의/etc/bindplane-agent/
디렉터리 또는 Windows의 설치 디렉터리에 있습니다.- 텍스트 편집기 (예:
nano
,vi
, 메모장)를 사용하여 파일을 엽니다.
다음과 같이
config.yaml
파일을 수정합니다.receivers: tcplog: # Replace the port and IP address as required listen_address: "0.0.0.0:54525" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the path to the credentials file you downloaded in Step 1 creds: '/path/to/ingestion-authentication-file.json' # Replace with your actual customer ID from Step 2 customer_id: <customer_id> endpoint: malachiteingestion-pa.googleapis.com # Add optional ingestion labels for better organization ingestion_labels: log_type: SYSLOG namespace: symantec_dlp raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - tcplog exporters: - chronicle/chronicle_w_labels
인프라에서 필요에 따라 포트와 IP 주소를 바꿉니다.
<customer_id>
를 실제 고객 ID로 바꿉니다./path/to/ingestion-authentication-file.json
를 Google SecOps 처리 인증 파일 가져오기 섹션에서 인증 파일이 저장된 경로로 업데이트합니다.
Bindplane 에이전트를 다시 시작하여 변경사항 적용
Linux에서 Bindplane 에이전트를 다시 시작하려면 다음 명령어를 실행합니다.
sudo systemctl restart bindplane-agent
Windows에서 Bindplane 에이전트를 다시 시작하려면 서비스 콘솔을 사용하거나 다음 명령어를 입력하면 됩니다.
net stop BindPlaneAgent && net start BindPlaneAgent
Symantec DLP 구성
- Symantec 서버 관리 콘솔에 로그인합니다.
- 관리 > 정책 > 응답 규칙을 선택합니다.
- 응답 규칙 구성을 선택하고 규칙 이름을 입력합니다.
다음과 같은 정보를 입력합니다.
- 작업: syslog 서버에 로깅을 선택합니다.
- 호스트:
Bindplane
IP 주소를 입력합니다. - 포트:
Bindplane
포트 번호를 입력합니다. 메시지: 다음 메시지를 입력합니다.
|symcdlpsys|APPLICATION_NAME|$APPLICATION_NAME$|APPLICATION_USER|$APPLICATION_USER$|ATTACHMENT_FILENAME|$ATTACHMENT_FILENAME$|BLOCKED|$BLOCKED$|DATAOWNER_NAME|$DATAOWNER_NAME$|DATAOWNER_EMAIL|$DATAOWNER_EMAIL$|DESTINATION_IP|$DESTINATION_IP$|ENDPOINT_DEVICE_ID|$ENDPOINT_DEVICE_ID$|ENDPOINT_LOCATION|$ENDPOINT_LOCATION$|ENDPOINT_MACHINE|$ENDPOINT_MACHINE$|ENDPOINT_USERNAME|$ENDPOINT_USERNAME$|PATH|$PATH$|FILE_NAME|$FILE_NAME$|PARENT_PATH|$PARENT_PATH$|INCIDENT_ID|$INCIDENT_ID$|INCIDENT_SNAPSHOT|$INCIDENT_SNAPSHOT$|MACHINE_IP|$MACHINE_IP$|MATCH_COUNT|$MATCH_COUNT$|OCCURRED_ON|$OCCURRED_ON$|POLICY|$POLICY$|RULES|$RULES$|PROTOCOL|$PROTOCOL$|QUARANTINE_PARENT_PATH|$QUARANTINE_PARENT_PATH$|RECIPIENTS|$RECIPIENTS$|REPORTED_ON|$REPORTED_ON$|SCAN|$SCAN$|SENDER|$SENDER$|MONITOR_NAME|$MONITOR_NAME$|SEVERITY|$SEVERITY$|STATUS|$STATUS$|SUBJECT|$SUBJECT$|TARGET|$TARGET$|URL|$URL$|USER_JUSTIFICATION|$USER_JUSTIFICATION$|
디버깅: 4단계를 선택합니다.
적용을 클릭합니다.
UDM 매핑 표
로그 필드 | UDM 매핑 | 논리 |
---|---|---|
행위 | security_result.action | act 이 Passed 이면 ALLOW 로 설정합니다. act 이 Modified 이면 ALLOW_WITH_MODIFICATION 로 설정합니다. act 이 Blocked 이면 BLOCK 로 설정합니다. 그렇지 않으면 UNKNOWN_ACTION 로 설정합니다. |
application_name | target.application | 직접 매핑됩니다. |
asset_ip | principal.ip, principal.asset.ip | 직접 매핑됩니다. |
asset_name | principal.hostname, principal.asset.hostname | 직접 매핑됩니다. |
attachment_name | security_result.about.file.full_path | 직접 매핑됩니다. |
차단됨 | security_result.action_details | 직접 매핑됩니다. |
calling_station_id | principal.mac, principal.asset.mac | calling_station_id 가 MAC 주소인 경우 - 를 : 로 바꾸고 소문자로 변환한 후 직접 매핑합니다. |
called_station_id | target.mac, target.asset.mac | called_station_id 가 MAC 주소인 경우 : 앞에 있는 MAC 주소 부분을 추출하고 - 를 : 로 바꾸고 소문자로 변환한 후 직접 매핑합니다. |
category1 | security_result.detection_fields | 키가 category1 이고 값이 category1 인 라벨을 만듭니다. |
category2 | security_result.detection_fields | 키가 category2 이고 값이 category2 인 라벨을 만듭니다. |
category3 | security_result.detection_fields | 키가 category3 이고 값이 category3 인 라벨을 만듭니다. |
client_friendly_name | target.user.userid | 직접 매핑됩니다. |
dataowner_mail | principal.user.email_addresses | 유효한 이메일 주소인 경우 직접 매핑됩니다. |
description | metadata.description | 직접 매핑됩니다. |
dest_location | target.location.country_or_region | RED 가 아닌 경우 직접 매핑됩니다. |
deviceId | target.asset_id | ID:%{deviceId} 로 매핑됩니다. |
device_version | metadata.product_version | 직접 매핑됩니다. |
dhost | network.http.referral_url | 직접 매핑됩니다. |
dlp_type | security_result.detection_fields | 키가 dlp_type 이고 값이 dlp_type 인 라벨을 만듭니다. |
DLP_EP_Incident_ID | security_result.threat_id, security_result.detection_fields | threat_id 에 직접 매핑됩니다. 또한 키가 Incident ID 이고 값이 DLP_EP_Incident_ID 인 라벨을 만듭니다. |
도메인 | principal.administrative_domain | 직접 매핑됩니다. |
dst | target.ip, target.asset.ip | 유효한 IP 주소인 경우 직접 매핑됩니다. |
endpoint_machine | target.ip, target.asset.ip | 유효한 IP 주소인 경우 직접 매핑됩니다. |
endpoint_user_department | target.user.department | 직접 매핑됩니다. |
endpoint_user_email | target.user.email_addresses | 직접 매핑됩니다. |
endpoint_user_manager | target.user.managers | endpoint_user_manager 의 user_display_name 로 관리자 객체를 만듭니다. |
endpoint_user_name | target.user.user_display_name | 직접 매핑됩니다. |
endpoint_user_title | target.user.title | 직접 매핑됩니다. |
event_description | metadata.description | 직접 매핑됩니다. |
event_id | metadata.product_log_id | 직접 매핑됩니다. |
event_source | target.application | 직접 매핑됩니다. |
event_timestamp | metadata.event_timestamp | 직접 매핑됩니다. |
file_name | security_result.about.file.full_path | 직접 매핑됩니다. |
filename | target.file.full_path, src.file.full_path | target.file.full_path 에 직접 매핑됩니다. has_principal 가 true인 경우 src.file.full_path 로 매핑하고 event_type 를 FILE_COPY 로 설정합니다. |
호스트 | src.hostname, principal.hostname, principal.asset.hostname | cef_data 에 CEF 가 포함된 경우 세 필드 모두에 매핑합니다. 그렇지 않으면 principal.hostname 및 principal.asset.hostname 로 매핑합니다. |
incident_id | security_result.threat_id, security_result.detection_fields | threat_id 에 직접 매핑됩니다. 또한 키가 Incident ID 이고 값이 incident_id 인 라벨을 만듭니다. |
위치 | principal.resource.attribute.labels | 키가 Location 이고 값이 location 인 라벨을 만듭니다. |
match_count | security_result.detection_fields | 키가 Match Count 이고 값이 match_count 인 라벨을 만듭니다. |
monitor_name | additional.fields | 키가 Monitor Name 이고 값이 monitor_name 인 라벨을 만듭니다. |
nas_id | target.hostname, target.asset.hostname | 직접 매핑됩니다. |
occurred_on | principal.labels, additional.fields | principal.labels 및 additional.fields 모두에 대해 키가 Occurred On 이고 값이 occurred_on 인 라벨을 만듭니다. |
policy_name | sec_result.detection_fields | 키가 policy_name 이고 값이 policy_name 인 라벨을 만듭니다. |
policy_rule | security_result.rule_name | 직접 매핑됩니다. |
policy_severity | security_result.severity | 대문자로 변환한 후 severity 에 매핑됩니다. policy_severity 이 INFO 이면 INFORMATIONAL 로 매핑합니다. policy_severity 이 HIGH , MEDIUM , LOW , INFORMATIONAL 중 하나가 아닌 경우 severity 를 UNKNOWN_SEVERITY 로 설정합니다. |
policy_violated | security_result.summary | 직접 매핑됩니다. |
프로토콜 | network.application_protocol, target.application, sec_result.description | Protocol 가 FTP 또는 Endpoint 가 아닌 경우 parse_app_protocol.include 파일을 사용하여 파싱한 후 network.application_protocol 에 매핑합니다. Protocol 이 FTP 이면 target.application 에 매핑합니다. Protocol 이 Endpoint 이면 sec_result.description 를 Protocol=%{Protocol} 로 설정합니다. |
수신자 | target.user.email_addresses, about.user.email_addresses | recipient 의 각 이메일 주소를 target.user.email_addresses 및 about.user.email_addresses 에 모두 매핑합니다. |
수신자 | network.http.referral_url, target.resource.attribute.labels | network.http.referral_url 에 직접 매핑됩니다. 또한 키가 recipients 이고 값이 recipients 인 라벨을 만듭니다. |
reported_on | additional.fields | 키가 Reported On 이고 값이 reported_on 인 라벨을 만듭니다. |
규칙 | security_result.detection_fields | 키가 Rules 이고 값이 rules 인 라벨을 만듭니다. |
sender | network.email.from, target.resource.attribute.labels | sender 이 올바른 이메일 주소인 경우 network.email.from 에 매핑합니다. 또한 키가 sender 이고 값이 sender 인 라벨을 만듭니다. |
서버 | target.application | 직접 매핑됩니다. |
심각도 | security_result.severity | 매핑 로직은 policy_severity 를 참고하세요. |
src | principal.ip, principal.asset.ip | 유효한 IP 주소인 경우 직접 매핑됩니다. |
상태 | principal.labels, additional.fields | principal.labels 및 additional.fields 모두에 대해 키가 Status 이고 값이 status 인 라벨을 만듭니다. |
subject | target.resource.attribute.labels, network.email.subject | 키가 subject 이고 값이 subject 인 라벨을 만듭니다. 또한 subject 를 network.email.subject 에 매핑합니다. |
target_type | target.resource.attribute.labels | 키가 Target Type 이고 값이 target_type 인 라벨을 만듭니다. |
타임스탬프 | metadata.event_timestamp | date 필터를 사용하여 파싱한 후 직접 매핑됩니다. |
url | target.url | 직접 매핑됩니다. |
사용자 | target.user.userid | 직접 매핑됩니다. |
user_id | principal.user.userid | 직접 매핑됩니다. |
사용자 이름 | principal.user.userid | 직접 매핑됩니다. |
해당 사항 없음 | metadata.product_name | SYMANTEC_DLP 로 설정합니다. |
해당 사항 없음 | metadata.vendor_name | SYMANTEC 로 설정합니다. |
해당 사항 없음 | metadata.event_type | event_type 가 비어 있지 않으면 직접 매핑합니다. 그 외의 경우 host 이 비어 있지 않고 has_principal 이 true이면 SCAN_NETWORK 로 설정합니다. 그렇지 않으면 GENERIC_EVENT 로 설정합니다. |
해당 사항 없음 | metadata.product_event_type | policy_violated 에 -NM- 이 포함되어 있거나 data 에 DLP NM 이 포함되어 있으면 Network Monitor 로 설정합니다. policy_violated 에 -EP- 이 포함되어 있거나 data 에 DLP EP 이 포함되어 있으면 Endpoint 로 설정합니다. |
해당 사항 없음 | metadata.log_type | SYMANTEC_DLP 로 설정합니다. |
변경사항
2025-02-04
개선사항:
- SYSLOG 로그에 대한 지원이 추가되었습니다.
2025-01-08
개선사항:
ATTACHMENT_FILENAME
를principal.file.full_path
에 매핑했습니다.DATAOWNER_NAME
이 있으면DATAOWNER_NAME
를principal.user.userid
에 매핑합니다.DATAOWNER_NAME
가 없으면ENDPOINT_USERNAME
를principal.user.userid
에 매핑했습니다.
2024-12-27
개선사항:
- 새 로그 형식 파싱 지원을 추가했습니다.
2024-12-04
개선사항:
- 새 로그 형식 파싱 지원을 추가했습니다.
2024-11-11
개선사항:
- 새 로그 형식 파싱 지원을 추가했습니다.
2024-09-05
개선사항:
- 새 로그 형식 파싱 지원을 추가했습니다.
2024-06-17
개선사항:
- 새 형식의
recipients
필드를 파싱하는 지원을 추가했습니다.
2024-06-14
개선사항:
- CEF 로그 지원을 추가했습니다.
2024년 5월 16일
개선사항:
dlp_type
를security_result.detection_fields
에 매핑했습니다.
2024-04-26
버그 수정:
recipients
를target.user.email_addresses
에 매핑했습니다.
2024-03-10
개선사항:
- 새 SYSLOG 형식의 로그를 파싱하는 새로운 Grok 패턴을 추가했습니다.
server
를target.application
에 매핑했습니다.url
를target.url
에 매핑했습니다.dataowner_mail
를principal.user.email_addresses
에 매핑했습니다.reported_on
및monitor_name
를additional.fields
에 매핑했습니다.sender
를network.email.from
에 매핑했습니다.subject
를network.email.subject
에 매핑했습니다.
2024-02-20
개선사항:
blocked
를security_result.action_details
및security_result.action
에 매핑했습니다.
2024-01-12
개선사항:
incident_id
및DLP_EP_Incident_ID
를security_result.detection_fields
에 매핑했습니다.- 새 SYSLOG 형식의 로그를 파싱하는 Grok 패턴을 추가했습니다.
location
를principal.resource.attribute.labels
에 매핑했습니다.target_type
를target.resource.attribute.labels
에 매핑했습니다.
2023-12-06
개선사항:
- 새 형식의 로그를 파싱하는 Grok 패턴을 추가했습니다.
application
를principal.application
에 매핑했습니다.application_name
를target.application
에 매핑했습니다.policy_name
를security_result.detection_fields
에 매핑했습니다.
2023-09-02
개선사항:
- 실패 로그를 파싱하는 지원을 추가하고 그에 따라 필드를 매핑했습니다.
2023-08-17
개선사항:
Occurred on
를principal.labels
에 매핑했습니다.act
가Modified
이면security_result.action
를ALLOW_WITH_MODIFICATION
로 설정합니다.status
를principal.labels
에 매핑했습니다.
도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가의 답변을 받으세요.