Thinkst Canary 로그 수집
이 문서에서는 서드 파티 API를 사용하여 Google Security Operations 피드를 설정하여 Thinkst Canary 로그를 수집하는 방법을 설명합니다.
Thinkst Canary는 속임수 기반 위협 감지를 제공합니다. 하드웨어, 가상, 클라우드 Canary는 실제 애셋을 가장하고 Canarytoken은 파일, 사용자 인증 정보, URL에서 트립와이어 역할을 합니다. 공격자가 Canary를 건드리거나 토큰을 트리거하면 Canary Console에서 인시던트를 기록합니다. 피드는 콘솔 API에서 이러한 사고를 가져옵니다.
시작하기 전에
다음 기본 요건이 충족되었는지 확인합니다.
- Google SecOps 인스턴스
- Thinkst Canary Console에 대한 액세스 권한
Thinkst Canary에서 REST API 구성
- Thinkst Canary Console (
https://<DOMAIN_HASH>.canary.tools)에 로그인합니다. - 오른쪽 상단에 있는 설정 아이콘을 클릭하고 전역 설정을 선택합니다.
- 메뉴에서 API를 클릭합니다.
- API가 사용 중지된 경우 API 사용 설정을 클릭합니다.
기존 기본 API 키를 사용하거나 + 새 API 키 추가를 클릭하여 전용 API 키를 만듭니다.
- API 키 유형: 읽기 전용을 선택합니다. 이는 로그 수집에 충분합니다.
- 참고: 키 이름을 입력합니다 (예:
Google SecOps Integration).
다음을 복사하여 안전한 위치에 저장합니다.
- 도메인 해시: 콘솔의 식별자입니다. API 호스트 이름은
<DOMAIN_HASH>.canary.tools입니다. - 인증 토큰: 요청을 인증하는 데 사용되는 API 키입니다.
- 도메인 해시: 콘솔의 식별자입니다. API 호스트 이름은
Thinkst Canary 로그를 수집하도록 Google SecOps에서 피드 구성
- SIEM 설정 > 피드로 이동합니다.
- 새 피드 추가를 클릭합니다.
- 다음 페이지에서 단일 피드 구성을 클릭합니다.
- 피드 이름 필드에 피드 이름을 입력합니다(예:
Thinkst Canary Logs). - 소스 유형으로 서드 파티 API를 선택합니다.
- 로그 유형으로 Thinkst Canary를 선택합니다.
- 다음을 클릭합니다.
다음 입력 매개변수의 값을 지정합니다.
- 인증 HTTP 헤더: 이전에 생성된 토큰으로,
auth_token:<TOKEN>형식입니다 (예:auth_token:AAAABBBBCCCC111122223333). - API 호스트 이름: Thinkst Canary REST API 엔드포인트의 정규화된 도메인 이름입니다 (
<DOMAIN_HASH>.canary.tools형식, 예:myinstance.canary.tools). - 애셋 네임스페이스: 애셋 네임스페이스
- 수집 라벨: 이 피드의 이벤트에 적용할 라벨
- 인증 HTTP 헤더: 이전에 생성된 토큰으로,
다음을 클릭합니다.
확정 화면에서 새 피드 구성을 검토한 다음 제출을 클릭합니다.
설정이 완료되면 피드가 Thinkst Canary 인스턴스에서 로그를 시간순으로 가져오기 시작합니다.
인시던트 업데이트 및 재전송
카나리아 콘솔 API는 사고가 생성될 때뿐만 아니라 업데이트될 때마다 사고를 다시 반환합니다. Canary는 동일한 소스의 후속 유사 이벤트를 기존 인시던트로 번들링합니다. 예를 들어 각 무차별 대입 공격 시도는 단일 사고 내의 이벤트가 됩니다. 다른 인시던트 수정사항도 재전송을 트리거할 수 있습니다.
Google SecOps에서는 다음과 같은 동작이 예상됩니다.
- 이미 전송된 인시던트는 업데이트된 후 피드에 다시 표시됩니다.
- 다시 전송된 사고는 다시 전송된 시점보다 훨씬 오래된 이벤트 타임스탬프와 함께 표시될 수 있습니다. 이는 파서가 업데이트 시간이 아닌 인시던트의 원래 생성 시간과 번들 이벤트의 자체 발생 시간에서 이벤트 타임스탬프를 파생하기 때문입니다.
재전송 자체는 데이터 손실이나 파서 결함이 아닌 인시던트 수집 API의 문서화된 동작 (인시던트의 업데이트 카운터에서 필터링)입니다.
UDM 매핑 테이블
| 로그 필드 | UDM 매핑 | 로직 |
|---|---|---|
_canary_uptime_label |
additional.fields |
병합됨 |
desc_events_n_func_code_label |
additional.fields |
병합됨 |
desc_events_n_func_name_label |
additional.fields |
병합됨 |
desc_events_n_sfunc_code_label |
additional.fields |
병합됨 |
desc_events_n_sfunc_name_label |
additional.fields |
병합됨 |
desc_events_n_timestamp_std_label |
additional.fields |
병합됨 |
desc_events_n_unit_id_label |
additional.fields |
병합됨 |
description_created_std_label |
additional.fields |
병합됨 |
description_events_list_label |
additional.fields |
병합됨 |
event_data_list |
additional.fields |
병합됨 |
event_descrip_label |
additional.fields |
병합됨 |
events_url_label |
additional.fields |
병합됨 |
local_time_label |
additional.fields |
병합됨 |
locale_label |
additional.fields |
병합됨 |
lt_label |
additional.fields |
병합됨 |
offline_text_label |
additional.fields |
병합됨 |
updated_label |
additional.fields |
병합됨 |
updated_std_label |
additional.fields |
병합됨 |
_auth |
extensions.auth |
이름이 변경됨/매핑됨 |
_metadata |
metadata |
이름이 변경됨/매핑됨 |
_event_time |
metadata.event_timestamp |
UNIX로 파싱됨 |
_metadata_event_timestamp |
metadata.event_timestamp |
UNIX로 파싱됨 |
description.created_std |
metadata.event_timestamp |
UNIX_MS로 파싱됨 |
elem.timestamp_std |
metadata.event_timestamp |
yyyy-MM-dd HH:mm:ss ZZZ+0000로 파싱됨 |
updated |
metadata.event_timestamp |
EEE, dd MMM yyyy HH:mm:ss ZZZ로 파싱됨 |
updated_std |
metadata.event_timestamp |
UNIX_MS로 파싱됨 |
format |
metadata.event_type |
매핑됨: grok → STATUS_UPDATE, grok → GENERIC_EVENT |
has_principal_hostname |
metadata.event_type |
매핑됨: true → STATUS_UPDATE |
_network |
network |
이름이 변경됨/매핑됨 |
_observer |
observer |
이름이 변경됨/매핑됨 |
_principal |
principal |
이름이 변경됨/매핑됨 |
ThinkstCanary_Process |
principal.application |
직접 매핑됨 |
ThinkstCanary_Process |
principal.asset.hostname |
직접 매핑됨 |
ThinkstCanary_Hostname |
principal.hostname |
직접 매핑됨 |
_md_product_event_type |
security_result |
매핑된 값 (총 10개, 예: Shared File Opened → _security_result, Host Port Scan → … |
_security_result |
security_result |
병합됨 |
format |
security_result |
매핑됨: kv → _security_result, json → _security_result |
_source |
src |
이름이 변경됨/매핑됨 |
_target |
target |
이름이 변경됨/매핑됨 |
| 해당 사항 없음 | metadata.event_type |
상수: STATUS_UPDATE |
변경 로그
도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가에게 문의하여 답변을 받으세요.