FireEye NX 로그 수집
다음에서 지원:
Google secops
SIEM
이 문서에서는 Bindplane을 사용하여 Trellix Network Security (이전 FireEye NX) 로그를 Google Security Operations로 수집하는 방법을 설명합니다.
시작하기 전에
다음 기본 요건이 충족되었는지 확인합니다.
- Google SecOps 인스턴스
systemd이 설치된 Windows 2016 이상 또는 Linux 호스트- 프록시 뒤에서 실행하는 경우 Bindplane 에이전트 요구사항에 따라 방화벽 포트가 열려 있는지 확인합니다.
- Trellix Network Security (NX) 관리 콘솔에 대한 권한 액세스
Google SecOps 수집 인증 파일 가져오기
- Google SecOps 콘솔에 로그인합니다.
- SIEM 설정 > 수집 에이전트로 이동합니다.
- 수집 인증 파일을 다운로드합니다. Bindplane이 설치될 시스템에 파일을 안전하게 저장합니다.
Google SecOps 고객 ID 가져오기
- Google SecOps 콘솔에 로그인합니다.
- SIEM 설정 > 프로필로 이동합니다.
- 조직 세부정보 섹션에서 고객 ID를 복사하여 저장합니다.
Bindplane 에이전트 설치
다음 안내에 따라 Windows 또는 Linux 운영체제에 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 port and IP address as required listen_address: "0.0.0.0:514" exporters: chronicle/fireeye_nx: compression: gzip # Adjust the path to the credentials file you downloaded in Step 1 creds_file_path: '/path/to/ingestion-authentication-file.json' # Replace with your actual customer ID from Step 2 customer_id: <CUSTOMER_ID> # Replace with your regional endpoint endpoint: <ENDPOINT> log_type: 'FIREEYE_NX' raw_log_field: body ingestion_labels: service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog exporters: - chronicle/fireeye_nx- 인프라에 필요한 대로 포트와 IP 주소를 바꿉니다.
<CUSTOMER_ID>를 실제 고객 ID로 바꿉니다.<ENDPOINT>값을 리전 엔드포인트로 바꿉니다.- 미국:
malachiteingestion-pa.googleapis.com - 유럽 (프랑크푸르트):
europe-west3-malachiteingestion-pa.googleapis.com - 유럽 (런던):
europe-west2-malachiteingestion-pa.googleapis.com - 유럽 (취리히):
europe-west6-malachiteingestion-pa.googleapis.com - 유럽 (토리노):
europe-west12-malachiteingestion-pa.googleapis.com - 아시아 (도쿄):
asia-northeast1-malachiteingestion-pa.googleapis.com - 중동 (텔아비브):
me-west1-malachiteingestion-pa.googleapis.com - 오스트레일리아 (시드니):
australia-southeast1-malachiteingestion-pa.googleapis.com
- 미국:
- Google SecOps 수집 인증 파일 가져오기 섹션에서 인증 파일이 저장된 경로로
/path/to/ingestion-authentication-file.json를 업데이트합니다.
변경사항을 적용하려면 Bindplane 에이전트를 다시 시작하세요.
Linux에서 Bindplane 에이전트를 다시 시작하려면 다음 명령어를 실행합니다.
sudo systemctl restart bindplane-agentWindows에서 Bindplane 에이전트를 다시 시작하려면 서비스 콘솔을 사용하거나 다음 명령어를 입력하면 됩니다.
net stop BindPlaneAgent && net start BindPlaneAgent
Trellix Network Security에서 Syslog 전달 구성
- 관리자 계정으로 Trellix Network Security 콘솔에 로그인합니다.
- 설정 > 알림으로 이동합니다.
- rsyslog 탭을 클릭합니다.
- 이벤트 유형 체크박스를 선택하여 rsyslog 알림을 사용 설정합니다.
- 설정 패널에서 다음 구성 세부정보를 입력합니다.
- 기본 형식: CEF를 선택합니다.
- Rsyslog 서버 목록 섹션에서 다음을 수행합니다.
- 새 항목의 설명이 포함된 이름을 입력합니다 (예:
Google SecOps BindPlane). - Rsyslog 서버 추가 버튼을 클릭합니다.
- 새 항목의 설명이 포함된 이름을 입력합니다 (예:
- 새로 추가된 서버의 경우 다음 구성 세부정보를 제공합니다.
- 사용 설정됨: 서버를 사용 설정하려면 체크박스를 선택합니다.
- IP 주소: BindPlane 에이전트 IP 주소를 입력합니다.
- 포트: BindPlane 에이전트 포트 번호를 입력합니다 (예:
514). - 프로토콜: BindPlane 에이전트 구성에 따라 UDP 또는 TCP를 선택합니다.
- 이벤트 유형: 전달할 이벤트 유형을 선택합니다 (또는 포괄적인 로깅을 위해 모두 선택).
- 업데이트 버튼을 클릭하여 구성을 저장합니다.
UDM 매핑 테이블
| 로그 필드 | UDM 매핑 | 논리 |
|---|---|---|
| alert.dst.ip | target.ip, target.asset.ip | alert.dst.ip 필드에서 직접 매핑 |
| alert.dst.mac | target.mac, target.asset.mac | alert.dst.mac 필드에서 직접 매핑 |
| alert.dst.port | target.port | alert.dst.port 필드에서 직접 매핑 |
| alert.explanation.cnc-services.cnc-service.address | target.ip, target.asset.ip | alert.explanation.cnc-services.cnc-service.address 필드에서 직접 매핑 |
| alert.explanation.cnc-services.cnc-service.port | target.port | alert.explanation.cnc-services.cnc-service.port 필드에서 직접 매핑 |
| alert.explanation.cnc-services.cnc-service.url | target.url | alert.explanation.cnc-services.cnc-service.url 필드에서 직접 매핑 |
| alert.explanation.malware-detected.malware.0.name | security_result.threat_name | 배열에 멀웨어가 여러 개 감지된 경우 alert.explanation.malware-detected.malware.0.name 필드에서 직접 매핑 |
| alert.explanation.malware-detected.malware.md5sum | target.file.md5 | alert.explanation.malware-detected.malware.md5sum 필드에서 직접 매핑 |
| alert.explanation.malware-detected.malware.name | security_result.threat_name | alert.explanation.malware-detected.malware.name 필드에서 직접 매핑 |
| alert.explanation.malware-detected.malware.sha1 | target.file.sha1 | alert.explanation.malware-detected.malware.sha1 필드에서 직접 매핑 |
| alert.explanation.malware-detected.malware.sha256 | target.file.sha256 | alert.explanation.malware-detected.malware.sha256 필드에서 직접 매핑 |
| alert.explanation.malware-detected.malware.url | target.url | alert.explanation.malware-detected.malware.url 필드에서 직접 매핑 |
| alert.name | read_only_udm.metadata.product_event_type | alert.name 필드에서 직접 매핑 |
| alert.occurred | read_only_udm.metadata.event_timestamp | alert.occurred 필드에서 직접 매핑 |
| alert.src.domain | principal.hostname | alert.src.domain 필드에서 직접 매핑 |
| alert.src.host | principal.hostname | alert.src.host 필드에서 직접 매핑 |
| alert.src.ip | principal.ip, principal.asset.ip | alert.src.ip 필드에서 직접 매핑 |
| alert.src.mac | principal.mac, principal.asset.mac | alert.src.mac 필드에서 직접 매핑 |
| alert.src.port | principal.port | alert.src.port 필드에서 직접 매핑 |
| alert.src.smtp-mail-from | network.email.from | alert.src.smtp-mail-from 필드에서 직접 매핑 |
| alert.smtp-message.id | network.email.mail_id | alert.smtp-message.id 필드에서 직접 매핑 |
| alert.smtp-message.subject | network.email.subject | alert.smtp-message.subject 필드에서 직접 매핑 |
| client_ip | principal.ip | client_ip 필드에서 직접 매핑 |
| client_src_port | principal.port | client_src_port 필드에서 직접 매핑 |
| 압축 | additional.fields.value.string_value | compression 필드에서 직접 매핑 |
| etag | additional.fields.value.string_value | etag 필드에서 직접 매핑 |
| 호스트 | principal.hostname | host 필드에서 직접 매핑 |
| log_id | read_only_udm.metadata.product_log_id | log_id 필드에서 직접 매핑 |
| method | network.http.method | method 필드에서 직접 매핑 |
| persistent_session_id | network.session_id | persistent_session_id 필드에서 직접 매핑 |
| 수영장 | additional.fields.value.string_value | pool 필드에서 직접 매핑 |
| pool_name | additional.fields.value.string_value | pool_name 필드에서 직접 매핑 |
| request_id | additional.fields.value.string_value | request_id 필드에서 직접 매핑 |
| request_state | additional.fields.value.string_value | request_state 필드에서 직접 매핑 |
| response_code | network.http.response_code | response_code 필드에서 직접 매핑 |
| rewritten_uri_query | additional.fields.value.string_value | rewritten_uri_query 필드에서 직접 매핑 |
| server_ip | target.ip | server_ip 필드에서 직접 매핑 |
| server_name | target.hostname | server_name 필드에서 직접 매핑 |
| server_src_port | target.port | server_src_port 필드에서 직접 매핑 |
| service_engine | additional.fields.value.string_value | service_engine 필드에서 직접 매핑 |
| ssl_cipher | network.tls.cipher | ssl_cipher 필드에서 직접 매핑 |
| ssl_version | network.tls.version_protocol | ssl_version 필드에서 직접 매핑 |
| uri_path | network.http.referral_url | uri_path 필드에서 직접 매핑 |
| uri_query | additional.fields.value.string_value | uri_query 필드에서 직접 매핑 |
| user_id | principal.user.userid | user_id 필드에서 직접 매핑 |
| virtualservice | additional.fields.value.string_value | virtualservice 필드에서 직접 매핑 |
| vs_name | additional.fields.value.string_value | vs_name 필드에서 직접 매핑 |
| read_only_udm.metadata.event_type | 주체 및 대상 IP 주소가 모두 있는 경우 SCAN_UNCATEGORIZED, 주체 IP 또는 호스트 이름이 있는 경우 STATUS_UPDATE, 주체 사용자 ID가 있는 경우 USER_UNCATEGORIZED, alert.src.smtp-mail-from 및 alert.dst.smtp-to가 모두 있는 경우 EMAIL_TRANSACTION, 그 외의 경우 GENERIC_EVENT로 설정됩니다. |
|
| read_only_udm.metadata.ingested_timestamp | alert.attack-time이 없으면 현재 타임스탬프로 설정됩니다. |
|
| read_only_udm.metadata.log_type | FIREEYE_NX로 설정합니다. |
|
| read_only_udm.metadata.vendor_name | FireEye로 설정합니다. |
|
| read_only_udm.network.application_protocol | 메시지에 'http' (대소문자 구분 안 함)가 포함된 경우 HTTP로 설정됩니다. |
|
| read_only_udm.security_result.action | _source.action이 'notified' (대소문자 구분 안 함)인 경우 ALLOW로, _source.action이 'blocked' (대소문자 구분 안 함)인 경우 BLOCK로, 그 외의 경우 UNKNOWN_ACTION로 설정합니다. |
|
| read_only_udm.security_result.category | sec_category에 'DOMAIN.MATCH' (대소문자 구분 안 함)가 포함된 경우 NETWORK_SUSPICIOUS로 설정하고, sec_category에 'INFECTION.MATCH' 또는 'WEB.INFECTION' (대소문자 구분 안 함)이 포함된 경우 NETWORK_MALICIOUS로 설정하고, sec_category에 'MALWARE.OBJECT' (대소문자 구분 안 함)가 포함된 경우 SOFTWARE_MALICIOUS로 설정하고, sec_category에 'MALWARE.CALLBACK' (대소문자 구분 안 함)이 포함된 경우 NETWORK_COMMAND_AND_CONTROL로 설정하고, 그 외의 경우 UNKNOWN_CATEGORY로 설정합니다. |
|
| read_only_udm.security_result.severity | _source.severity 또는 temp_severity이 'majr' (대소문자 구분 안 함)인 경우 MEDIUM로 설정하고, _source.severity 또는 temp_severity이 'minr' (대소문자 구분 안 함)인 경우 LOW로 설정하며, 그 외의 경우에는 설정하지 않습니다. |
|
| read_only_udm.security_result.summary | security_result.threat_name 값으로 설정됩니다. |
|
| is_alert | true로 설정합니다. |
|
| is_significant | true로 설정합니다. |
도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가에게 문의하여 답변을 받으세요.