Trend Micro Deep Security 로그 수집
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
이 문서에서는 Google Security Operations를 사용하여 Trend Micro Deep Security 로그를 수집하는 방법을 설명합니다. 이 파서는 LEEF+CEF 또는 CEF 형식일 수 있는 로그를 통합 데이터 모델 (UDM)로 파싱합니다. grok 패턴과 키-값 쌍을 사용하여 로그 메시지에서 필드를 추출한 다음 해당 UDM 필드에 매핑하고, 그 과정에서 다양한 데이터 정리 및 표준화 작업을 처리합니다.
시작하기 전에
- Google SecOps 인스턴스가 있는지 확인합니다.
- Windows 2016 이상 또는
systemd
를 사용하는 Linux 호스트를 사용하고 있는지 확인합니다. - 프록시 뒤에서 실행하는 경우 방화벽 포트가 열려 있는지 확인합니다.
- TrendMicro Deep Security 콘솔에 대한 권한이 있는지 확인합니다.
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: udplog: # 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: trendmicro_deep_security raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog 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
Trend Micro Deep Security에서 Syslog 구성
- Trend Micro Deep Security 콘솔에 로그인합니다.
- 정책 > 공통 객체 > 기타 > Syslog 구성으로 이동합니다.
- 새로 만들기 > 새 구성을 클릭합니다.
- 구성에 다음 세부정보를 제공합니다.
- 이름: 구성을 식별하는 고유한 이름입니다 (예: Google SecOps Bindplane).
- 선택사항: 설명: 설명을 추가합니다.
- 로그 소스 식별자: 원하는 경우 Deep Security Manager의 호스트 이름 대신 사용할 식별자를 지정합니다.
- 서버 이름: Syslog 서버 (Bindplane)의 호스트 이름 또는 IP 주소를 입력합니다.
- 서버 포트: 서버 (Bindplane)의 수신 대기 포트 번호를 지정합니다.
- 전송: 전송 프로토콜로 UDP를 선택합니다.
- 이벤트 형식: LEEF 또는 CEF를 선택합니다. LEAF 형식의 경우 Agents should forward logs(상담사가 로그를 전달해야 함)를 Via the Deep Security Manager(Deep Security Manager를 통해)로 설정해야 합니다.
- 선택사항: 일정에 시간대 포함: 전체 날짜 (연도 및 시간대 포함)를 일정에 추가할지 여부입니다.
- 선택사항: 상담사가 로그를 전달해야 함: 로그 형식이 LEEF인 경우 Deep Security Manager를 통한 전송을 선택합니다.
- 적용을 클릭하여 설정을 완료합니다.
보안 이벤트 전달 구성
- 정책으로 이동하여 구성하려는 컴퓨터에 적용된 정책을 선택합니다.
- 세부정보를 클릭합니다.
- 정책 편집기 창에서 설정 > 이벤트 전달을 클릭합니다.
- 이벤트 전송 간격 섹션에서 기간 값을 10~60초 사이의 시간으로 설정합니다.
- 기본값은 60초이고 권장값은 10초입니다.
- 이러한 보호 모듈마다 다음을 실행합니다.
- 악성코드 방지 Syslog 구성
- 웹 평판 Syslog 구성
- 방화벽
- 침입 방지 Syslog 구성
- 로그 검사 및 무결성 모니터링 Syslog 구성
- 컨텍스트 메뉴에서 사용할 syslog 구성을 선택합니다.
- Syslog Configuration Name(Syslog 구성 이름): 적절한 구성을 선택합니다.
- 저장을 클릭하여 설정을 적용합니다.
시스템 이벤트 전달 구성
- 관리 > 시스템 설정 > 이벤트 전달로 이동합니다.
- 구성 (Syslog를 통해)을 사용하여 시스템 이벤트를 원격 컴퓨터로 전달에서 앞서 만든 기존 구성을 선택합니다.
- 저장을 클릭합니다.
UDM 매핑 표
로그 필드 | UDM 매핑 | 논리 |
---|---|---|
행위 | read_only_udm.security_result.action_details | |
aggregationType | read_only_udm.additional.fields.value.string_value | 문자열로 변환됩니다. |
고양이 | read_only_udm.security_result.category_details | |
cef_host | read_only_udm.target.hostname read_only_udm.target.asset.hostname |
dvchost가 비어 있으면 호스트 이름으로 사용됩니다. |
cn1 | read_only_udm.target.asset_id | '호스트 ID:'로 시작합니다. |
cs1 | read_only_udm.security_result.detection_fields.value | |
cs1Label | read_only_udm.security_result.detection_fields.key | |
cs2 | read_only_udm.target.file.sha1 read_only_udm.security_result.detection_fields.value |
소문자로 변환되고 cs2Label이 'sha1'인 경우 sha1에 매핑되고, 그렇지 않은 경우에는 detection_fields에 매핑됩니다. |
cs2Label | read_only_udm.security_result.detection_fields.key | |
cs3 | read_only_udm.target.file.md5 read_only_udm.security_result.detection_fields.value |
소문자로 변환되고 cs3Label이 'md5'인 경우 md5에 매핑되고, 그렇지 않으면 detection_fields에 매핑됩니다. |
cs3Label | read_only_udm.security_result.detection_fields.key | |
cs5 | read_only_udm.security_result.detection_fields.value | |
cs5Label | read_only_udm.security_result.detection_fields.key | |
cs6 | read_only_udm.security_result.detection_fields.value | |
cs6Label | read_only_udm.security_result.detection_fields.key | |
cs7 | read_only_udm.security_result.detection_fields.value | |
cs7Label | read_only_udm.security_result.detection_fields.key | |
cnt | read_only_udm.additional.fields.value.string_value | 문자열로 변환됩니다. |
내림차순 | read_only_udm.metadata.description | |
dst | read_only_udm.target.ip read_only_udm.target.asset.ip |
|
dstMAC | read_only_udm.target.mac | 소문자로 변환됩니다. |
dstPort | read_only_udm.target.port | 정수로 변환됩니다. |
duser | read_only_udm.target.user.user_display_name | |
dvc | read_only_udm.about.ip | |
dvchost | read_only_udm.target.hostname read_only_udm.target.asset.hostname |
|
event_id | read_only_udm.metadata.product_event_type | event_name이 비어 있지 않으면 product_event_type으로 사용되고, 그렇지 않으면 단독으로 사용됩니다. |
event_name | read_only_udm.metadata.product_event_type | '[event_id] - '로 접두사가 지정되고 product_event_type으로 사용됩니다. |
fileHash | read_only_udm.target.file.sha256 | 소문자로 변환됩니다. |
filePath | read_only_udm.target.file.full_path | 'ProgramFiles\(x86\)'가 'Program Files (x86)'으로 대체되었습니다. |
fsize | read_only_udm.target.file.size | 부호 없는 정수로 변환됩니다. |
호스트 이름 | read_only_udm.target.hostname read_only_udm.target.asset.hostname |
대상이 비어 있으면 호스트 이름으로 사용됩니다. |
in | read_only_udm.network.received_bytes | 부호 없는 정수로 변환됩니다. |
msg | read_only_udm.security_result.description | |
name | read_only_udm.security_result.summary | |
조직 | read_only_udm.target.administrative_domain read_only_udm.metadata.vendor_name |
|
proto | read_only_udm.network.ip_protocol | 'ICMPv6'인 경우 'ICMP'로 대체되었습니다. |
product_version | read_only_udm.metadata.product_version | |
결과 | read_only_udm.security_result.summary | |
sev | read_only_udm.security_result.severity read_only_udm.security_result.severity_details |
값에 따라 심각도에 매핑되며 severity_details에도 매핑됩니다. |
shost | read_only_udm.principal.hostname read_only_udm.principal.asset.hostname |
|
src | read_only_udm.principal.ip read_only_udm.principal.asset.ip |
|
srcMAC | read_only_udm.principal.mac | 소문자로 변환됩니다. |
srcPort | read_only_udm.principal.port | 정수로 변환됩니다. |
suid | read_only_udm.principal.user.userid | |
suser | read_only_udm.principal.user.user_display_name | |
target | read_only_udm.target.hostname read_only_udm.target.asset.hostname |
|
타임스탬프 | read_only_udm.metadata.event_timestamp.seconds read_only_udm.metadata.event_timestamp.nanos |
타임스탬프로 파싱됩니다. |
TrendMicroDsBehaviorType | read_only_udm.security_result.detection_fields.value | |
TrendMicroDsFileSHA1 | read_only_udm.target.file.sha1 | 소문자로 변환됩니다. |
TrendMicroDsFrameType | read_only_udm.security_result.detection_fields.value | |
TrendMicroDsMalwareTarget | read_only_udm.security_result.detection_fields.value | |
TrendMicroDsMalwareTargetCount | read_only_udm.security_result.detection_fields.value | |
TrendMicroDsMalwareTargetType | read_only_udm.security_result.detection_fields.value | |
TrendMicroDsProcess | read_only_udm.security_result.detection_fields.value | 'ProgramFiles\(x86\)'가 'Program Files (x86)'으로 대체되었습니다. |
TrendMicroDsTenant | read_only_udm.security_result.detection_fields.value | |
TrendMicroDsTenantId | read_only_udm.security_result.detection_fields.value | |
usrName | read_only_udm.principal.user.userid | |
read_only_udm.metadata.event_type | 소스와 대상이 모두 있는 경우 'NETWORK_HTTP'로 설정하고, 그렇지 않으면 'GENERIC_EVENT'로 설정합니다. | |
read_only_udm.metadata.log_type | 'TRENDMICRO_DEEP_SECURITY'로 설정합니다. |
변경사항
2024-04-17
- 이제 파서가 원시 로그의 'event_name'을 UDM의 'metadata.product_event_type' 필드에 매핑합니다.
- 이제 'act' 필드는 UDM의 'security_result.action_details'에 추가로 매핑됩니다.
2024-03-29
- 다양한 'cef_event_attributes' 형식의 처리가 개선되었습니다.
- 더 나은 구성을 위해 여러 필드가 새 UDM 필드에 매핑되었습니다.
- 'log_type'이 이제 'metadata.product_name'임
- 'organization'이 'metadata.vendor_name'으로 변경됨
- 이제 원시 로그의 새 필드 (예: 'suer', 'suid', 'fileHash' 등)가 UDM에 매핑됩니다. 세부정보는 매핑 시트 링크를 참고하세요.
2024-03-23
- 'event_attributes' 및 'cef_event_attributes' 형식의 파싱이 개선되었습니다.
- 이제 'name' 필드가 UDM의 'security_result.summary'에 매핑됩니다.
2024-03-04
- CEF 형식 로그 파싱 지원이 추가되었습니다.
- 원시 로그의 여러 필드를 다음과 같이 해당 UDM 필드에 매핑했습니다.
- 'TrendMicroDsFileSHA1'이 'target.file.sha1'로 변경되었습니다.
- 'msg'에서 'security_result.description'(으)로
- 'result'에서 'security_result.summary'(으)로
- 'filePath'를 'target.file.full_path'로
- 이제 TrendMicro 감지와 관련된 여러 필드가 'security_result.detection_fields'에 매핑됩니다.
- 'dvchost' 또는 'cef_host'의 사용 가능 여부에 따라 'target.hostname' 필드를 매핑하는 로직을 개선했습니다.
2024-02-13
- 이제 'target' 필드가 UDM의 'target.hostname'에 매핑됩니다.
- 이제 'usrName' 필드가 UDM의 'principal.user.userid'에 매핑됩니다.
2022-09-01
- 파서를 새로 만들었습니다.
도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가의 답변을 받으세요.