# 모든 채팅을 대상으로 조사하기

Canonical page: https://phishdestroy.github.io/TgWitness/ko/docs/cases/

채널, 그룹, 비공개 채팅, 봇에 걸쳐 사건 전체를 처리하세요: 증거를 수집, 연결, 재구성하고 인계하세요.

이 안내서는 가상의 사건 하나를 전체 계정을 통해 추적하는 과정을 다룹니다. 실제 수집, 검색, 인물 프로필 및 내보내기 기능을 사용합니다. 사건 지도(case map)는 문서화 예시일 뿐이며, 사용자의 결론과 사건 기록은 애플리케이션 외부에서 관리됩니다.

실제 사례 / 변경된 결제 수취처

### 한 건의 사건. 네 건의 대화. 재구성해야 할 흔적.

채널 공지사항에서 봇을 언급합니다. 운영 그룹에서 새로운 결제 링크에 대해 논의합니다. 비공개 후속 대화에서 이를 다시 언급합니다. 이후, 공지사항이 수정되고 그룹 메시지가 사라집니다.

각 버전을 누가 게시했나요?해당 링크는 어디에 나타났나요?어떤 파일이 보존되었나요?무엇이, 언제 변경되었나요?

이력 불러오기, 선택적 AI 소스 검토, MCP, OCR 및 발신 웹훅에 대한 내용은[‘아카이브 활용’을](https://phishdestroy.github.io/TgWitness/ko/docs/archive/) 참조하십시오.

## 1. 계정 전체에 대한 기록 범위 설정

1. [수집 계정을 해당 워크스페이스에 연결하십시오](https://phishdestroy.github.io/TgWitness/ko/docs/accounts/). 사건 참조 번호, 계정 ID, 워크스페이스 이름 및 서명 키 지문을 사건 기록에 기재하십시오.
2. 오픈 **소스 → 관찰 범위 → 조사 모드**. **전체 계정**, 4가지 소스 유형 및 **‘내 활동’을** 검토합니다. 이 사전 설정을 사용하면 새로운 소스의 프로필과 최근 **200개의 표시 가능한 메시지를** 저장할 수 있습니다. **‘범위 저장’을** 누르고 범위 확인을 완료하십시오.
3. **'채팅 불러오기'를** 누르십시오. 소스 데이터를 계정의 대화 목록과 비교하고 제외 항목을 검토하십시오. **'매개변수(Parameters)' → '계정 목록에서 읽은 채팅**(**Chats read from the account’s list**)'에서 필요 시 초기 목록 제한을 조정하십시오. 기본값은 1,000개 대화이며, 최대 20,000개까지 설정할 수 있습니다. 한도를 초과한 채팅은 활성화될 때 감지됩니다.
4. **‘기록**설정’에서 **‘표시되는 모든 활동’을** 선택하고 저장하십시오. 첨부 파일 유형, 크기 제한 및 사용 가능한 디스크 공간을 확인하십시오. 설정을 신뢰하기 전에 관찰을 시작하고, 제어된 메시지, 수정 및 삭제를 검증하십시오.

채널그룹비공개 채팅봇

계정 1개 / 서명 키 1개**계정에서 확인 가능한 모든 활동 → 하나의 기록부**

메시지 · 수정 내역 · 삭제 알림 · 표시된 반응 · 회원 활동 · 본인의 행동

“전체 계정”은 해당 계정이 액세스할 수 있는 채팅을 포함하며, 구성된 소스 유형 및 제외 항목이 적용됩니다. 비밀 채팅은 사용할 수 없습니다. 새로운 대화는 업데이트가 도착할 때마다 추가되며, 이 모드를 활성화한다고 해서 기존 모든 채팅의 전체 과거 기록이 자동으로 다운로드되는 것은 아닙니다.

## 2. 기록 내역 확보 및 파일 보존

전체 조사에 대한 출처 등록부를 구축하십시오. 각 채팅에 대해 일련번호, 제목, 계정, 접근 권한/역할, 실시간 시작 시간, 기록 수집, 미디어 결과 및 알려진 누락 사항이 포함된 행을 생성하십시오. 관련 결과를 확인한 후에만 해당 출처를 ‘수집 완료’로 표시하십시오.

| 필요 사항 | 패널 내 작업 | 제공하는 기능 |
| --- | --- | --- |
| 활성화된 채팅의 기록 | 출처 → 전체 기록 불러오기 | 현재 주요 기능: 이용 가능한 과거 메시지가 작업 공간 일지에 기록되며, 일시 중지/재개 기능과 서명된 진행 보고서가 제공됩니다. [사용법 안내](https://phishdestroy.github.io/TgWitness/ko/docs/reference/history/). |
| 저널에 포함된 기존 채팅 내용 | 출처 → 기록 설정 → 기록 스냅샷 | 최근 표시된 메시지를 서명된 관측 기록으로 제공합니다. 기본값은 최대 500개이며, **‘매개변수 → 최대 기록 스냅샷’에서** 최대 10,000개까지 늘릴 수 있습니다. |
| 현재 표시된 한 채팅의 전체 기록 | 전체 채팅 내보내기 → 전체 채팅 내보내기, 또는 채팅 → 채팅 내보내기 | `chat.json` 및 `chat.html`가 포함된 별도의 서명된 번들. 소스마다 반복하며, 성공/실패 결과를 유지합니다. |
| 새로운 채팅이 나타날 때의 상황 | 관찰 범위 → 새로운 채팅이나 봇이 나타날 때 | 소스 프로필 및 최근에 표시된 메시지 최대 1,000개; 조사 모드에서는 200개를 선택합니다. 기존 채팅에는 이 데이터가 소급 적용되지 않습니다. |
| 첨부 파일 바이트 수 | 보이는 첨부 파일 다운로드 + 유형별 제한 | `media.saved`, 해당 파일의 SHA-256 해시값 및 바이트 수를 확인하십시오. 대기 중이거나 건너뛴 다운로드, 또는 다운로드에 실패한 파일은 보존된 파일로 간주되지 않습니다. |

전체 채팅 내보내기는 별도의 스냅샷이며, 전체 기록을 저널이나 사용자 프로필로 가져오지는 않습니다. TgWitness 내에서 검색해야 할 과거 자료의 경우, ‘활성화된 소스 **전체 기록** 불러오기’ 또는 ‘범위 지정된 저널 스냅샷’ 기능을 사용하십시오. 실행을 시작하기 전에 소스 목록을 검토하십시오.

실제 사례에서는 공지 채널, 운영 그룹, 봇 대화 및 비공개 후속 대화를 수집합니다. 청구서 첨부 파일의 바이트 및 해시 값을 보존합니다. 현재 이용 가능한 기록만으로는 캡처 전에 삭제된 메시지나 텔레그램에서 더 이상 반환하지 않는 중간 수정 내역을 재구성할 수 없습니다.

## 3. 변화하는 대화 내용과 본인의 행동을 기록하세요

사건이 진행됨에 따라 관찰을 계속 진행하십시오. 진행 중인 사건 채팅방을 우선순위 소스로 표시하고, **‘기록 설정’ → ‘재확인’에서** 우선순위 및 기타 소스에 대한 재확인 설정을 구성하십시오. 작업이 진행됨에 따라 `recheck.completed`, 지속적인 데이터 보충, FloodWait 및 미디어 결과 **등을** 검토하십시오.

**'채팅 → 프로필 → 지금 프로필 저장**'을 사용하여 텔레그램에서 반환하는 현재 소스 설명, 봇 명령어 및 기타 메타데이터를 보존하십시오. 이 소스 프로필은 저널 메시지를 기반으로 생성된 사용자 프로필과는 별개입니다.

**사건의 일환으로 봇을 팔로우하거나 초대를 수락하는 경우**

1. **'채팅' → '텔레그램 링크 열기**'에서 먼저 미리보기를 저장하십시오. 원본 링크와 반환된 미리보기가 서명된 기록으로 저장됩니다.
2. 수사에 필요한 경우, **‘Join / open’**명령을 실행하면 소스 파일에 접근하여 제공된 시작 매개변수를 사용하여 봇을 시작합니다. 보류 중인 가입 요청은 기록에 그대로 남아 있습니다.
3. 기록해야 할 작업이 있을 경우, 패널의 텍스트 응답 기능을 사용하거나 지원되는 **‘Press’ 버튼** 컨트롤을 활용하십시오. 이 저널은 반환된 콜백 텍스트나 URL을 포함하여 `interaction.requested` 및 `interaction.result`를 보관합니다.

이 제어 기능들은 텔레그램에서 실제 작업을 수행합니다. 다른 텔레그램 앱에서 누른 콜백은 수집기에 표시되지 않지만, 봇이 그 후 보내는 메시지나 수정 내역은 표시될 수 있습니다. 웹 앱, 결제 및 전화/위치 요청은 미니 클라이언트의 범위를 벗어납니다.

## 4. 채팅 전반에 걸쳐 사람, 링크 및 파일을 추적하기

1. **저널을** 열고, 소스 필터를 **‘모든**소스’로 유지한 상태에서 특정 문구, 도메인, 사용자 이름 또는 저장된 식별자를 검색하십시오. 일치하는 각 기록을 열고 해당 채팅, 메시지 ID 및 저널 일련번호를 기록하십시오.
2. 관련 채팅을 확인하려면 **‘채팅’ → ‘사람’ → ‘프로필 켜기’를** 차례로 선택한 후, 특정 인물을 선택하십시오. 이름/사용자 이름 이력, 답장 관계, 활동 내역, **‘또한…’ 항목에 포함된** 기타 관찰된 채팅 및 추출된 링크, 지갑 또는 전화번호를 검토하십시오. 인용된 기록부를 열어보십시오.
3. 이 작업 공간 내의 다른 채팅에서 동일한 텔레그램 사용자 ID를 추적하십시오. 일치하는 이름, 지갑 언급 또는 유사한 아바타는 확인해야 할 단서로 간주하십시오. 언급된 주소가 소유권을 입증하는 것은 아니며, 유사한 아바타가 동일한 인물임을 입증하는 것도 아닙니다.
4. 기록 간에 보존된 첨부 파일의 SHA-256 값을 비교합니다. 해시 값이 일치하면 저장된 파일의 바이트 단위가 동일함을 의미합니다. 누가 해당 파일을 공유했는지에 대한 결론을 내리기 전에 관련 메시지 및 발신자 기록을 확인하십시오.

사례 지도 / 참조 항목 확인가상의 사례 · 실제 데이터가 반영된 그래프가 아님

채널 / 공지사항**원문 → 수정된 대상**

기록 #101, #188 메시지 #84 · 발신자 미확인

그룹 / 운영**사용자 71001이 새로운 링크를 게시했습니다.**

기록 #146 · 메시지 #309 저장된 파일 수신 확인 #151

봇 / 주문 대화**해당 목적지로 연결되는 버튼**

기록 #173 · 메시지 #12 ‘되돌리기’ 버튼 메타데이터

비공개 / 후속 조치**사용자 71001이 수신처를 반복합니다.**

기록 #205 · 메시지 #922 저장된 파일 수신 확인 #209

네 개의 채팅에서 서로 다른 관찰 결과가 제시됩니다. 모든 연결에 대해 원본 기록을 따르십시오. 발신자가 명시되지 않은 경우 채널 게시물을 사용자 71001에게 귀속시키지 마십시오.

이 안내서에서 사용된 숫자 ID와 기록 참조 번호는 가상의 예시입니다. 이 도식은 검색, 프로필 및 기록 검토를 활용한 분석가의 업무 흐름을 설명하며, 본 애플리케이션은 전체적인 조사 그래프를 생성하지 않습니다.

| 연결 | 보조 관찰 사항 | 유지할 결론 |
| --- | --- | --- |
| 동일한 텔레그램 계정 | 그룹 #146 및 비공개 채팅 #205의 사용자 ID 71001 | 두 채팅 모두에 동일한 발신자 ID가 게시되었습니다. 실제 신원은 별개의 문제입니다. |
| 반복되는 대상 | #146의 `pay.example.invalid/new`, #173의 버튼 메타데이터, #188 및 #205의 수정된 게시물 | 관찰된 네 가지 맥락에서 동일한 목적지가 나타납니다. 이것만으로는 누가 이를 통제하는지 단정할 수 없습니다. |
| 동일한 파일 바이트 수 | 완성된 미디어 수신 확인서 #151과 #209의 SHA-256 값이 동일함 | 보존된 두 개의 첨부 파일은 바이트 단위로 동일합니다. 파일 이름이나 썸네일만으로는 이를 확인할 수 없습니다. |

사용자 프로필은 해당 채팅에 저장된 메시지를 가진 작성자들을 다루며, 이를 *동일한 작업 공간 저널* 내의 다른 채팅과 연결해 줍니다. 이는 완전한 회원 명부가 아닙니다. 아바타 해시는 별도의 로컬 캐시에서 가져오며, 프로필 **인용 횟수는 ‘매개변수 → 사실별 인용** 기록’에서 설정 가능한 제한이 적용됩니다.

## 5. 순서를 재구성하고 누락된 부분을 표시하세요

'채팅(Chats)' 탭에서 저장된 버전과 해당 '저널 기록 #…' 링크를 확인하십시오. '저널(Journal)' 탭에서는 '모든 소스(All sources)'와 '편집(Edits)', '삭제(Deletions)', '범위(Coverage)' 기능을 활용하십시오. 텔레그램에서 제공된 날짜와 수집자가 관찰한 시간을 모두 반영하여 사건 타임라인을 구축하십시오.

1. 09:00 · #101**채널 게시물 캡처**

   원본의 대상은 그대로 유지됩니다.
2. 09:12 · #146 / #151**그룹에서 다른 링크를 소개합니다**

   사용자 71001이 이를 게시하고, 첨부 파일 다운로드가 완료됩니다.
3. 09:16 · #173**봇은 동일한 목적지를 표시합니다.**

   저장된 키보드 메타데이터에 링크가 포함되어 있습니다.
4. 09:20 · #188**채널 공지사항 변경 사항**

   원본 및 편집된 관찰 기록이 모두 유지됩니다.
5. 09:24 · #205 / #209**비공개 후속 게시물에서도 이를 반복합니다.**

   저장된 첨부 파일의 전체 SHA-256 값은 #151과 동일합니다.
6. 09:28 · #231**그룹 삭제 알림이 도착했습니다**

   앞서 언급한 바와 같이, 메시지를 삭제한 사용자나 정확한 삭제 시점은 제공되지 않습니다.

예시를 위한 관찰 시간 및 참조 정보. 이 항목들 사이에는 다른 기록들이 존재합니다.

저널의 순서는 수신 순서를 따르며, 반드시 텔레그램의 원래 동작 순서와 일치하지는 않습니다. 최신 실시간 메시지보다 오래된 기록 스냅샷이 나중에 도착할 수도 있습니다. 실시간 관측 결과, 스냅샷, 복구된 메시지, 삭제 알림 및 “재확인 시 누락” 항목을 명확히 구분하십시오. 기록에 공백이 있는 곳에는 ‘알 수 없음’이라는 간격을 명시적으로 추가하십시오. 이후의 스냅샷이 해당 공백을 지우지는 않습니다.

## 6. 해당 사례를 다른 수집 계정으로 확대 적용

각기 다른 계정마다 작업 공간을 추가하고, 범위 및 기록 내역 목록을 반복하여 작성하십시오. 각 계정의 구성원/역할 및 서명 키 지문을 기록하십시오. 식별자는 작업 공간과 채팅별로 구분하여 관리하십시오. 동일한 메시지 번호가 모든 계정에 걸쳐 공통으로 적용되는 식별자가 아닙니다.

각 행에 대한 계정 및 저널 참조 정보를 유지한 채, 사건 기록이나 분석 도구에서 관련 관찰 내용을 비교할 수 있습니다. TgWitness는 현재 워크스페이스 전반에 걸친 통합 검색, 통합 타임라인, 인물 관계도 또는 사건 아카이브 기능을 제공하지 않습니다. 하나의 채널 또는 슈퍼그룹에 대한 다중 계정 전체 내보내기 기능은 별도의 기능이며, 모든 계정 저널을 통합하는 기능은 아닙니다.

장기간 작업 시, 초기 경계를 유지하기 위해 [독립적인 증인을](https://phishdestroy.github.io/TgWitness/ko/docs/witness/) 추가하십시오. 통제된 전달(controlled delivery) 시범 운영을 통해 계정의 캡처 경로와 가시성을 검증하십시오.

## 7. 완전하고 검증 가능한 사건 자료 패키지 제공

각 작업 공간에서 서명된 기록 ZIP 파일을 내보낼 수 있습니다. 이 파일에는 패널 검색 필터와 관계없이 기록된 전체 기록이 포함되어 있습니다. 관련 인물 프로필을 별도로 내보내고, 각 채팅 기록 전체를 묶음 단위로 유지하며, 첨부된 증거 자료도 온전히 보존합니다.

```
CASE-001/                         # assembled by the analyst
  case-notes.md                   # question, findings, alternative explanations
  sources.csv                     # every chat, role, acquisition result and gap
  timeline.csv                    # account + chat + message + seq + both times
  workspace-A/
    evidence.zip                  # complete signed observation journal
    retained-checkpoint.json
    profiles-operations.json      # separately signed people profiles
    history-channel.zip           # signed current-history export
    history-group.zip
    verification.txt
  workspace-B/                    # separate journal and trusted fingerprint
  witness/                        # retained checks, journal and signed posts
  SHA256SUMS                      # hashes of the delivered files
```

별도의 채널을 통해 신뢰할 수 있는 지문을 보관하십시오. 신뢰할 수 있는 설치 환경에서 각 아티팩트를 해당 워크스페이스 식별자와 대조하여 검증하십시오:

```
python -m tgwitness.verify evidence.zip --fingerprint TRUSTED_PUBLIC_KEY_SHA256 --checkpoint retained-checkpoint.json
python -m tgwitness.verify profiles-operations.json --fingerprint TRUSTED_PUBLIC_KEY_SHA256 --evidence evidence.zip
python -m tgwitness.verify history-channel.zip --fingerprint TRUSTED_PUBLIC_KEY_SHA256
```

실제 검증 결과를 확인하고, 원본을 보존하며, 조사 결과와 함께 범위 보고서, 수집 실패 내역 및 전송 기록을 보관하십시오. 최상위 사례 폴더와 분석가의 결론은 외부에서 통합되며, 개별 TgWitness 아티팩트에는 각각 고유한 서명이 포함됩니다.

## 다른 조사에도 동일한 방법을 적용하십시오.

**봇에 의한 주문 또는 결제 분쟁**

**질문:** 봇은 무엇을 약속했는지, 어떤 버튼의 연결 대상이 제공되었는지, 그리고 그 후 무엇이 변경되었는지?

**추적 경로:** 채널 가입 게시물 → 저장된 봇 링크 미리보기 → 봇 시작 매개변수 → 메시지 및 키보드 입력 내역 → 패널에서 발행한 모든 콜백 수신 확인 → 그룹/비공개 후속 조치. 각 대상 항목을 해당 소스 기록과 매칭하고, 프로필 설명 및 첨부된 미디어를 보존합니다.

**제공 내용:** 관찰된 제안 및 응답의 타임라인, 출처 참조 정보, 검증된 내보내기 데이터. 표시된 결제 링크는 결제가 실제로 이루어졌다는 증거가 아닙니다.

**채팅 간 충돌 사건 이후 삭제된 메시지**

**질문:** 관련 메시지가 사라지기 전에 이미 어떤 사실이 관찰되었는가?

**추적:** 영향을 받은 모든 채팅 → 원본 메시지 → 전달된 수정 내용 → 삭제 알림 또는 이후 재확인 시 누락된 결과 → 보존된 첨부 파일 → 사건과 관련된 보도 내용. 독립적인 계정 관찰 내용을 해당 계정의 공개 설정과 비교합니다.

**제공 내용:** 보존된 버전의 시퀀스와 명확히 표시된 알 수 없는 기간. 기록에 없는 메시지를 특정 인물이 삭제했다는 증거로 해석해서는 안 됩니다.

**한 참가자가 여러 채팅방에서 이름을 변경합니다**

**질문:** 이름이 변경되었음에도 불구하고, 관찰된 활동 중 어떤 것이 동일한 텔레그램 계정에 속하는 것입니까?

**추적 경로:** 숫자형 발신자 ID → 저장된 이름/사용자 이름 내역 → 답장 → 작업 공간 내의 다른 채팅 → 언급된 대상 및 저장된 파일. 주장된 모든 연결에 대해 원본 기록을 확인하고, 유사한 계정은 별도로 구분합니다.

제공 내용: 인용된 계정 활동 타임라인과 관계에 대한 별도의 가설. 이름의 유사성과 아바타 pHash는 단서일 뿐, 신원 증명이 아닙니다.
