Cisco IronPort 로그 수집
이 문서에서는 Bindplane을 사용하여 Cisco IronPort 로그를 Google Security Operations로 수집하는 방법을 설명합니다. 파서는 syslog 메시지에서 필드, 특히 AccessLogs_chron 이벤트와 관련된 필드를 추출합니다. grok 패턴을 사용하여 메시지를 파싱하고, 데이터 유형을 변환하고, 추출된 필드를 통합 데이터 모델 (UDM)에 매핑하여 정책 그룹 및 액세스 결정과 같은 다양한 Cisco Ironport 관련 필드를 처리합니다. 또한 기본적인 오류 처리를 실행하고 벤더 및 제품 이름과 같은 메타데이터 필드를 설정합니다.
시작하기 전에
다음 기본 요건이 충족되었는지 확인합니다.
- Google SecOps 인스턴스
- Windows 2016 이상 또는
systemd가 있는 Linux 호스트 - 프록시 뒤에서 실행하는 경우 방화벽 포트가 열려 있는지 확인합니다.
- Cisco IronPort 에 대한 액세스 권한 관리
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/chronicle_w_labels: 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> endpoint: malachiteingestion-pa.googleapis.com # Add optional ingestion labels for better organization log_type: 'CISCO_IRONPORT' raw_log_field: body ingestion_labels: service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog exporters: - chronicle/chronicle_w_labels- 인프라에 필요한 포트 및 IP 주소를 바꿉니다.
<customer_id>를 실제 고객 ID로 바꿉니다.- Google SecOps 수집 인증 파일 가져오기 섹션에서 인증 파일이 저장된 경로로
/path/to/ingestion-authentication-file.json을 업데이트합니다.
Bindplane 에이전트를 다시 시작하여 변경사항 적용
Linux에서 Bindplane 에이전트를 다시 시작하려면 다음 명령어를 실행합니다.
sudo systemctl restart bindplane-agentWindows에서 Bindplane 에이전트를 다시 시작하려면 서비스 콘솔을 사용하거나 다음 명령어를 입력하면 됩니다.
net stop BindPlaneAgent && net start BindPlaneAgent
Cisco IronPort에서 Syslog 구성
- Cisco IronPort 웹 UI에 로그인합니다.
- 시스템 관리 > 로그 구독 을 클릭합니다.
- 로그 구독 추가 를 클릭합니다.
- 다음 구성 세부정보를 제공합니다.
- 로그 유형: 액세스 로그 또는 내보낼 다른 로그를 선택합니다.
- 로그 스타일: Squid를 선택합니다.
- 파일 이름: 기본적으로 제공되지 않는 경우 파일 이름을 제공합니다.
- 검색 방법: Syslog 푸시 (기본 포트
514사용)를 선택합니다. - 호스트 이름: Bindplane 에이전트 IP 주소를 입력합니다.
- 프로토콜: UDP를 선택합니다.
- 시설:
local0또는syslog를 선택합니다.
- 제출 을 클릭합니다.
UDM 매핑 표
| 로그 필드 | UDM 매핑 | 논리 |
|---|---|---|
AccessLogs_chron |
metadata.product_event_type |
첫 번째 grok 파서에서 추출한 product_event 필드에서 직접 매핑됩니다. |
acl_decision_tag |
security_result.detection_fields.key |
값은 'ACL 결정 태그'입니다. 파서 논리는 로그에 acl_decision_tag가 있는 경우 이 값을 설정합니다. |
acl_decision_tag |
security_result.detection_fields.value |
두 번째 grok 파서에서 추출한 acl_decision_tag 필드에서 직접 매핑됩니다. |
access_or_decryption_policy_group |
security_result.detection_fields.key |
값은 'AccessOrDecryptionPolicyGroup'입니다. 파서 논리는 로그에 access_or_decryption_policy_group이 있는 경우 이 값을 설정합니다. |
access_or_decryption_policy_group |
security_result.detection_fields.value |
두 번째 grok 파서에서 추출한 access_or_decryption_policy_group 필드에서 직접 매핑됩니다. |
authenticated_user |
principal.user.userid |
grok 및 gsub를 사용하여 authenticated_user 필드에서 추출하여 백슬래시와 따옴표를 삭제합니다. |
cache_hierarchy_retrieval |
security_result.detection_fields.key |
값은 '캐시 계층 구조 검색'입니다. 파서 논리는 로그에 cache_hierarchy_retrieval이 있는 경우 이 값을 설정합니다. |
cache_hierarchy_retrieval |
security_result.detection_fields.value |
두 번째 grok 파서에서 추출한 cache_hierarchy_retrieval 필드에서 직접 매핑됩니다. |
data_security_policy_group |
security_result.detection_fields.key |
값은 'DataSecurityPolicyGroup'입니다. 파서 논리는 로그에 data_security_policy_group이 있는 경우 이 값을 설정합니다. |
data_security_policy_group |
security_result.detection_fields.value |
두 번째 grok 파서에서 추출한 data_security_policy_group 필드에서 직접 매핑됩니다. |
external_dlp_policy_group |
security_result.detection_fields.key |
값은 'ExternalDlpPolicyGroup'입니다. 파서 논리는 로그에 external_dlp_policy_group이 있는 경우 이 값을 설정합니다. |
external_dlp_policy_group |
security_result.detection_fields.value |
두 번째 grok 파서에서 추출한 external_dlp_policy_group 필드에서 직접 매핑됩니다. |
hostname |
principal.asset.hostname |
첫 번째 grok 파서에서 추출한 hostname 필드에서 직접 매핑됩니다. |
hostname |
principal.hostname |
첫 번째 grok 파서에서 추출한 hostname 필드에서 직접 매핑됩니다. |
http_method |
network.http.method |
두 번째 grok 파서에서 추출한 http_method 필드에서 직접 매핑됩니다. |
http_response_code |
network.http.response_code |
두 번째 grok 파서에서 추출한 http_response_code 필드에서 직접 매핑되고 정수로 변환됩니다. |
identity_policy_group |
security_result.detection_fields.key |
값은 'IdentityPolicyGroup'입니다. 파서 논리는 로그에 identity_policy_group이 있는 경우 이 값을 설정합니다. |
identity_policy_group |
security_result.detection_fields.value |
두 번째 grok 파서에서 추출한 identity_policy_group 필드에서 직접 매핑됩니다. 날짜 필터가 처리한 후 timestamp 필드에서 복사됩니다. has_principal이 true이면 'STATUS_UPDATE'로 설정되고, 그렇지 않으면 'GENERIC_EVENT'로 설정됩니다. 상수 값: 'Cisco Ironport' 상수 값: 'Cisco' |
outbound_malware_scanning_policy_group |
security_result.detection_fields.key |
값은 'OutboundMalwareScanningPolicyGroupS'입니다. 파서 논리는 로그에 outbound_malware_scanning_policy_group이 있는 경우 이 값을 설정합니다. |
outbound_malware_scanning_policy_group |
security_result.detection_fields.value |
두 번째 grok 파서에서 추출한 outbound_malware_scanning_policy_group 필드에서 직접 매핑됩니다. |
request_method_uri |
target.url |
두 번째 grok 파서에서 추출한 request_method_uri 필드에서 직접 매핑됩니다. |
result_code |
security_result.detection_fields.key |
값은 '결과 코드'입니다. 파서 논리는 로그에 result_code가 있는 경우 이 값을 설정합니다. |
result_code |
security_result.detection_fields.value |
두 번째 grok 파서에서 추출한 result_code 필드에서 직접 매핑됩니다. |
routing_policy_group |
security_result.detection_fields.key |
값은 'RoutingPolicyGroup'입니다. 파서 논리는 로그에 routing_policy_group이 있는 경우 이 값을 설정합니다. |
routing_policy_group |
security_result.detection_fields.value |
두 번째 grok 파서에서 추출한 routing_policy_group 필드에서 직접 매핑됩니다. |
severity |
security_result.severity |
severity 필드에서 매핑됩니다. 값이 '정보'이면 'INFORMATIONAL'로 설정됩니다. |
source_ip |
principal.asset.ip |
두 번째 grok 파서에서 추출한 source_ip 필드에서 직접 매핑됩니다. |
source_ip |
principal.ip |
두 번째 grok 파서에서 추출한 source_ip 필드에서 직접 매핑됩니다. |
timestamp |
timestamp |
grok를 사용하여 message 필드에서 추출한 후 날짜 필터를 사용하여 파싱됩니다. |
total_bytes |
network.sent_bytes |
두 번째 grok 파서에서 추출한 total_bytes 필드에서 직접 매핑되고 부호 없는 정수로 변환됩니다. 비어 있지 않거나 '0'인 경우에만 매핑됩니다. |
도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가에게 문의하여 답변을 받으세요.