Cisco DNA Center Platform 로그 수집
이 문서에서는 두 가지 다른 접근 방식을 사용하여 Cisco DNA Center Platform 로그를 Google Security Operations로 수집하는 방법을 설명합니다. 환경과 요구사항에 가장 적합한 옵션을 선택합니다. 파서는 Cisco DNA Center SYSLOG+JSON 로그를 통합 데이터 모델 (UDM)로 변환합니다. 원시 로그 메시지와 JSON 페이로드에서 필드를 추출하고, 해당 필드를 UDM 속성에 매핑하고, 심각도 및 관련 항목과 같은 이벤트 특성을 기반으로 라벨과 보안 컨텍스트를 사용하여 데이터를 보강합니다.
시작하기 전에
다음 기본 요건이 충족되었는지 확인합니다.
- Google SecOps 인스턴스
- Cisco DNA Center 플랫폼 관리 콘솔에 대한 권한이 있는 액세스
- 원하는 통합 방법을 선택합니다.
- 옵션 2: Cisco DNA Center와 Google SecOps 웹훅 엔드포인트 간 네트워크 연결
- 옵션 1: Windows 2016 이상 또는 Bindplane 에이전트 설치를 위한
systemd
가 있는 Linux 호스트
옵션 1: Bindplane 에이전트를 사용한 Syslog 통합
이 옵션은 Cisco DNA Center에서 Bindplane으로 syslog 전달을 사용하며, Bindplane은 구조화된 로그를 Google SecOps로 전달합니다.
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: YOUR_CUSTOMER_ID endpoint: malachiteingestion-pa.googleapis.com log_type: 'CISCO_DNAC' raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog exporters: - chronicle/chronicle_w_labels
- 인프라에 필요한 대로 포트와 IP 주소를 바꿉니다.
<YOUR_CUSTOMER_ID>
를 실제 고객 ID로 바꿉니다.- Google SecOps 수집 인증 파일 가져오기 섹션에서 인증 파일이 저장된 경로로
/path/to/ingestion-authentication-file.json
를 업데이트합니다. - 이 구성은 Bindplane 에이전트 Syslog (UDP) 수신기를 사용하여 DNA Center에서 구조화된 syslog 메시지를 수집합니다.
Bindplane 에이전트를 다시 시작하여 변경사항 적용
Linux에서 Bindplane 에이전트를 다시 시작하려면 다음 명령어를 실행합니다.
sudo systemctl restart bindplane-agent
Windows에서 Bindplane 에이전트를 다시 시작하려면 서비스 콘솔을 사용하거나 다음 명령어를 입력하면 됩니다.
net stop BindPlaneAgent && net start BindPlaneAgent
Cisco DNA Center 플랫폼에서 Syslog 전달 구성
- Cisco DNA Center Platform에 로그인합니다.
- 시스템 > 설정 > 외부 서비스 > 대상 > Syslog로 이동합니다.
- + 추가를 클릭하여 새 syslog 대상을 만듭니다.
- 다음 구성 세부정보를 제공합니다.
- 이름: 설명이 포함된 이름을 입력합니다 (예:
Google SecOps BindPlane
). - 호스트: BindPlane 에이전트 IP 주소를 입력합니다.
- 포트:
514
(또는 BindPlane에서 구성된 포트)을 입력합니다. - 프로토콜: BindPlane 구성에 따라 UDP 또는 TCP를 선택합니다.
- 기능: 적절한 기능 (예: Local0)을 선택합니다.
- 심각도: 모든 이벤트 수준을 캡처하려면 정보를 선택합니다.
- 이름: 설명이 포함된 이름을 입력합니다 (예:
- 저장을 클릭합니다.
옵션 2: 실시간 웹훅 통합
이 옵션은 Cisco DNA Center의 기본 웹훅 기능을 사용하여 구조화된 JSON 이벤트를 Google SecOps에 실시간으로 직접 전송합니다.
개요
Cisco DNA Center는 실시간 이벤트 전송을 위한 웹훅 알림을 기본적으로 지원합니다. 이 옵션은 풍부한 이벤트 컨텍스트가 포함된 구조화된 JSON 페이로드를 제공하여 Bindplane을 중개자로 사용하지 않고도 이벤트를 Google SecOps에 직접 전송합니다.
Google SecOps 웹훅 피드 구성
- Google SecOps에서 SIEM 설정 > 피드로 이동합니다.
- + 새 피드 추가를 클릭합니다.
- 피드 이름 필드에 피드 이름을 입력합니다 (예:
Cisco DNA Center Webhook
). - 소스 유형으로 웹훅을 선택합니다.
- 로그 유형으로 Cisco DNA Center Platform을 선택합니다.
- 다음을 클릭합니다.
- 다음 입력 파라미터의 값을 지정합니다.
- 분할 구분자: 선택사항
\n
- 애셋 네임스페이스: 애셋 네임스페이스입니다.
- 수집 라벨: 이 피드의 이벤트에 적용할 라벨입니다.
- 분할 구분자: 선택사항
- 다음을 클릭합니다.
- 피드 구성을 검토하고 제출을 클릭합니다.
- 보안 비밀 키 생성을 클릭하여 이 피드를 인증하기 위한 보안 비밀 키를 생성합니다.
- 이 보안 비밀을 다시 볼 수 없으므로 보안 비밀 키를 복사하여 저장합니다.
- 세부정보 탭으로 이동합니다.
- 엔드포인트 정보 필드에서 피드 엔드포인트 URL을 복사합니다.
- 완료를 클릭합니다.
웹훅 피드에 대한 API 키 만들기
- Google Cloud 콘솔의 사용자 인증 정보 페이지로 이동합니다.
- 사용자 인증 정보 만들기를 클릭한 후 API 키를 선택합니다.
- Google SecOps API에 대한 API 키 액세스를 제한합니다.
Cisco DNA Center에서 웹훅 대상 구성
- Cisco DNA Center Platform에 로그인합니다.
- 시스템 > 설정 > 외부 서비스 > 대상 > 웹훅으로 이동합니다.
- + 추가를 클릭하여 새 웹훅 대상을 만듭니다.
- 다음 구성 세부정보를 제공합니다.
- 이름: 설명이 포함된 이름을 입력합니다 (예:
Google SecOps Webhook
). - 설명: 웹훅에 대한 설명을 입력합니다.
- URL: 이전 단계의 Google SecOps 웹훅 엔드포인트 URL을 입력합니다.
- 메서드: POST를 선택합니다.
- 인증서 신뢰: 자체 서명 인증서를 사용하는 경우 아니요를 선택합니다.
- 헤더: 필수 헤더를 추가합니다.
- 콘텐츠 유형:
application/json
- X-goog-api-key: Google Cloud API 키
- X-Webhook-Access-Key: Google SecOps 피드 보안 비밀 키
- 콘텐츠 유형:
- 이름: 설명이 포함된 이름을 입력합니다 (예:
- 연결 테스트를 클릭하여 연결을 확인합니다.
- 저장을 클릭합니다.
웹훅 알림에 이벤트 구독
- Cisco DNA Center에서 Platform > Developer Toolkit > Event Notifications로 이동합니다.
- + 구독을 클릭합니다.
- 다음 구성 세부정보를 제공합니다.
- 구독 이름: 설명이 포함된 이름을 입력합니다 (예:
Google SecOps Events
). - 커넥터 유형: REST 엔드포인트를 선택합니다.
- 대상: 이전 단계에서 만든 웹훅 대상을 선택합니다.
- 구독 이름: 설명이 포함된 이름을 입력합니다 (예:
- 모니터링할 이벤트 유형을 선택합니다.
- 네트워크 이벤트: 기기 연결 불가, 인터페이스 다운, 구성 변경
- 보안 이벤트: 보안 정책 위반, 인증 실패
- 시스템 이벤트: 플랫폼 이벤트, 소프트웨어 업데이트, 유지보수
- 보증 이벤트: 성능 저하, 연결 문제
- 필요한 경우 이벤트 필터를 구성합니다.
- 심각도: 최소 심각도 수준을 선택합니다 (예: P1, P2).
- 도메인: 특정 도메인 (예: 연결, 성능)을 기준으로 필터링합니다.
- 구독을 클릭합니다.
UDM 매핑 테이블
로그 필드 | UDM 매핑 | 논리 |
---|---|---|
카테고리 | security_result.severity_details | 원시 로그의 category 필드에서 직접 매핑됩니다. |
ciscoDnaEventLink | target.url | 원시 로그의 ciscoDnaEventLink 필드에서 직접 매핑됩니다. |
date_time | metadata.event_timestamp | 그로크 패턴을 사용하여 원시 로그 메시지에서 추출하고 타임스탬프 형식으로 변환했습니다. |
details.Assurance_Issue_Category | security_result.about.resource.attribute.labels[].value | 원시 로그의 details.Assurance_Issue_Category 필드에서 직접 매핑됩니다. 이 라벨의 키는 'Assurance_Issue_Category'입니다. |
details.Assurance_Issue_Details | security_result.summary | 원시 로그의 details.Assurance_Issue_Details 필드에서 직접 매핑됩니다. |
details.Assurance_Issue_Name | security_result.about.resource.attribute.labels[].value | 원시 로그의 details.Assurance_Issue_Name 필드에서 직접 매핑됩니다. 이 라벨의 키는 'Assurance_Issue_Name'입니다. |
details.Assurance_Issue_Priority | security_result.about.resource.attribute.labels[].value | 원시 로그의 details.Assurance_Issue_Priority 필드에서 직접 매핑됩니다. 이 라벨의 키는 'Assurance_Issue_Priority'입니다. |
details.Assurance_Issue_Status | security_result.about.resource.attribute.labels[].value | 원시 로그의 details.Assurance_Issue_Status 필드에서 직접 매핑됩니다. 이 라벨의 키는 'Assurance_Issue_Status'입니다. |
details.Device | target.ip 또는 target.hostname | 원시 로그의 details.Device 필드에서 매핑됩니다. 값이 IP 주소인 경우 target.ip 에 매핑되고 그렇지 않으면 target.hostname 에 매핑됩니다. |
dnacIp | target.ip | 원시 로그의 dnacIp 필드에서 직접 매핑됩니다(IP 주소인 경우). |
도메인 | additional.fields[].value.string_value | 원시 로그의 domain 필드에서 직접 매핑됩니다. 이 필드의 키는 'domain'입니다. |
eventId | metadata.product_event_type | 원시 로그의 eventId 필드에서 직접 매핑됩니다. |
instanceId | target.resource.product_object_id | 원시 로그의 instanceId 필드에서 직접 매핑됩니다. |
name | target.resource.attribute.labels[].value | 원시 로그의 name 필드에서 직접 매핑됩니다. 이 라벨의 키는 'name'입니다. |
네임스페이스 | target.namespace | 원시 로그의 namespace 필드에서 직접 매핑됩니다. |
network.deviceId | target.asset.asset_id | 원시 로그의 network.deviceId 필드에서 직접 매핑되며 'deviceId: '가 앞에 붙습니다. |
note | additional.fields[].value.string_value | 원시 로그의 note 필드에서 직접 매핑됩니다. 이 필드의 키는 'note'입니다. |
metadata.event_type | has_principal , has_target , userId 필드의 존재 여부와 값에 따라 결정됩니다. 가능한 값: NETWORK_CONNECTION, USER_UNCATEGORIZED, STATUS_UPDATE, GENERIC_EVENT |
|
is_alert | 심각도가 0 또는 1이면 True, 그렇지 않으면 False입니다. | |
is_significant | 심각도가 0 또는 1이면 True, 그렇지 않으면 False입니다. | |
줄이는 것을 | security_result.severity , is_alert , is_significant 값을 확인하는 데 사용됩니다. |
|
source | target.resource.attribute.labels[].value | 원시 로그의 source 필드에서 직접 매핑됩니다. 이 라벨의 키는 'source'입니다. |
src_ip | principal.ip | grok 패턴을 사용하여 원시 로그 메시지에서 추출됩니다. |
subDomain | additional.fields[].value.string_value | 원시 로그의 subDomain 필드에서 직접 매핑됩니다. 이 필드의 키는 'subDomain'입니다. |
tntId | target.resource.attribute.labels[].value | 원시 로그의 tntId 필드에서 직접 매핑됩니다. 이 라벨의 키는 'tntId'입니다. |
유형 | target.resource.attribute.labels[].value | 원시 로그의 type 필드에서 직접 매핑됩니다. 이 라벨의 키는 'type'입니다. |
userId | target.user.userid | 원시 로그의 userId 필드에서 직접 매핑됩니다. |
version | metadata.product_version | 원시 로그의 version 필드에서 직접 매핑됩니다. |
도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가로부터 답변을 받으세요.