# 조사 모드

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

채널, 그룹, 비공개 채팅 및 봇에 걸친 전체 계정 조사: 조사 범위 설정부터 검증된 사건 자료 패키지 구성까지.

채널, 그룹, 비공개 채팅 및 봇 전반에 걸쳐 사건을 추적할 수 있으며, 초기 데이터 수집부터 인용된 타임라인 및 검증 가능한 인계 과정까지 포함합니다. 대화형 웹사이트 버전은 `/docs/cases/`에서 확인하실 수 있으며, [미리보기 사용법을 참조하십시오](https://github.com/phishdestroy/TgWitness/blob/main/docs/internal/PUBLISHING.md#preview-the-website-locally).

## 실제 사례: 네 건의 대화에서 수신처가 변경된 사례

한 공지사항이 봇을 언급합니다. 운영 그룹에서 새로운 결제 수취처를 논의하고, 봇의 키보드에 해당 내용이 표시되며, 비공개 후속 대화에서 이를 다시 언급합니다. 그 후 공지사항이 수정되고 그룹 메시지가 사라집니다.

질문은 다음과 같습니다. 변경 전후로 무엇이 관찰되었는지, 어떤 텔레그램 계정이 각 항목을 게시했는지, 수신처가 어디에 나타났는지, 어떤 첨부 파일 바이트가 보존되었는지, 그리고 어떤 간격이 여전히 알려지지 않았는지?

이 예시에 등장하는 모든 이름, ID, 시간 및 기록 참조 내용은 가상의 것입니다. 워크플로는 현재 제공되는 기능을 사용하며, 사례 맵은 예시일 뿐, 애플리케이션에서 자동으로 생성된 그래프가 아닙니다.

흐름도 · 채널 → 작업 공간 기록부; 그룹 → 작업 공간 기록부; 비공개 채팅 → 작업 공간 기록부; 봇 → 작업 공간 기록부; 작업 공간 기록부 → 모든 출처 검색; 작업 공간 기록부 → 기록 참조 정보가 포함된 인물 프로필; 작업 공간 기록부 → 저장된 버전 및 첨부 파일 수신 확인; 모든 출처 검색 → 분석가 타임라인 및 출처 등록부; 기록 참조 정보가 포함된 인물 프로필 → 분석가 타임라인 및 출처 등록부; 저장된 버전 및 첨부 파일 수신 확인 → 분석가 타임라인 및 출처 등록부; 작업 공간 기록부 → 서명된 증거 ZIP 파일; 분석가 타임라인 및 출처 등록부 → 별도로 검증된 증거 자료를 포함한 사건 이관; 서명된 증거 ZIP 파일 → 별도로 검증된 증거 자료를 포함한 사건 이관 · 채널 · 그룹 · 비공개채팅 · 봇 · 작업공간기록부 · 모든출처검색 · 기록참조정보가포함된인물프로필 · 저장된버전및첨부파일수신확인 · 서명된증거 ZIP 파일 · 분석가타임라인및출처등록부 · 별도로검증된증거자료를포함한사건이관

**도표를 텍스트로 변환**

1. 채널 → 작업 공간 기록부
2. 그룹 → 작업 공간 기록부
3. 비공개 채팅 → 작업 공간 기록부
4. 봇 → 작업 공간 기록부
5. 작업 공간 기록부 → 모든 출처 검색
6. 작업 공간 기록부 → 기록 참조 정보가 포함된 인물 프로필
7. 작업 공간 기록부 → 저장된 버전 및 첨부 파일 수신 확인
8. 모든 출처 검색 → 분석가 타임라인 및 출처 등록부
9. 기록 참조 정보가 포함된 인물 프로필 → 분석가 타임라인 및 출처 등록부
10. 저장된 버전 및 첨부 파일 수신 확인 → 분석가 타임라인 및 출처 등록부
11. 작업 공간 기록부 → 서명된 증거 ZIP 파일
12. 분석가 타임라인 및 출처 등록부 → 별도로 검증된 증거 자료를 포함한 사건 이관
13. 서명된 증거 ZIP 파일 → 별도로 검증된 증거 자료를 포함한 사건 이관

## 1. 사건의 배경을 정의하고 전체 경위를 수집합니다.

1. 수집 계정을 해당 워크스페이스에 연결하십시오. 외부 사건 기록에는 사건 참조 번호, 계정 ID, 워크스페이스, 관찰 시작 시점 및 신뢰할 수 있는 서명 키 지문을 기록하십시오.
2. 오픈 **소스 → 관찰 범위 → 조사 모드**. 이 사전 설정은 **전체 계정**, 채널/그룹/비공개 채팅/봇, 자신의 활동, 소스 프로필 및 새로 발견된 소스의 최근 200개 표시 가능한 메시지를 선택합니다. 내용을 검토한 후 **‘범위 저장’을** 누르고 범위 확인을 완료하십시오.
3. **채팅을 불러와** 소스를 계정의 대화 목록과 비교합니다. 확인 제외 항목. **매개변수 → 계정 목록에서 읽어오는 채팅** 수는 기본값이 1,000개이며 최대 20,000개까지 허용됩니다. 목록 제한을 초과하는 소스는 활성화되면 추가됩니다. 실제로 열거된 내용을 기록하십시오.
4. **‘기록**설정’에서 **‘표시되는 모든 활동’을** 선택하고 모니터링 설정을 저장하십시오. 첨부 파일 유형/제한 사항 및 사용 가능한 디스크 공간을 확인하십시오.
5. 관찰을 시작합니다. 제어된 새 메시지, 수정 및 삭제를 검증한 다음, 테스트 참조 정보와 오류 사항을 기록합니다.

전체 계정 범위 기능은 저장된 설정 내에서 계정에 표시되는 활동을 기록합니다. 비공개 채팅에 접근하거나 연결된 모든 그룹에 자동으로 가입하지는 않습니다. 또한 기존의 모든 대화를 소급하여 기록하지도 않습니다. [수집 범위를](https://phishdestroy.github.io/TgWitness/ko/docs/reference/collection/#observation-scope-chosen-chats-a-folder-or-the-whole-account) 참조하십시오.

## 2. 모든 출처를 목록화하고 역사적 맥락을 파악한다

채팅당 한 행씩 소스 등록부를 관리합니다:

| 분야 | 기록 |
| --- | --- |
| 정체성 | 작업 공간, 계정 ID, 숫자형 채팅 ID, 제목 및 유형 |
| 가시성 | 회원 자격/역할, 접근 권한 확인 여부, 제외 항목 |
| 실시간 캡처 | 시작 시기, 선택된 이벤트 유형 및 이후 정책 변경 사항 |
| 저널 내역 | 요청/완료된 스냅샷, 제한 사항, 시간 및 기록 참조 정보 |
| 전체 기록 | 채팅별 서명된 내보내기 파일 이름, 경계 및 완료/실패 여부 |
| 첨부 파일 | 완료된 미디어 수신 내역, 해시, 크기 및 건너뜀/실패 결과 |
| 지원 범위 | 서비스 중단, 불완전한 수집, FloodWait, 확인 불가능한 메시지 및 기타 누락 사항 |

각 소스에 적합한 수집 방식을 사용하십시오:

- **'소스**(**Sources**)'에서 **전체 기록 불러오기**(현재 `main`)는 활성화된 소스에서 이용 가능한 과거 메시지를 작업 공간 기록부에 불러옵니다. 일시 중지/재개 기능과 서명된 진행 보고서를 지원합니다. [기록 수집을](https://phishdestroy.github.io/TgWitness/ko/docs/reference/history/) 참조하십시오.
- **'기록 스냅샷'** 기능은 최근에 표시된 메시지를 관찰 기록부에 저장합니다. 기본 최대 저장 개수는 500개이며, **[매개변수] → [최대 기록 스냅샷]**을 통해 이를 10,000개까지 늘릴 수 있습니다. 이는 현재 기록된 관찰 내용이며, 편집 내역을 재구성한 것이 아닙니다.
- **전체 채팅 내보내기 → ‘전체 채팅 내보내기**’ 또는 **‘채팅 → 채팅 내보내기’를** 선택하면, 현재 표시된 하나의 채팅 기록을 별도의 서명된 `chat.json` / `chat.html` 번들로 가져옵니다. 해당 사건의 정보 출처에 대해 이 과정을 반복하고 각 결과를 보관하십시오.
- **새로운 채팅이나 봇이 나타나면** 해당 프로필과 최근 메시지 최대 1,000건을 저장할 수 있습니다. 조사 모드에서는 200건을 선택합니다. 모드가 활성화된 후에도 기존 채팅에 대해서는 소급하여 해당 데이터를 수집하지 않습니다.
- **가시적인 첨부 파일을 다운로드하면** 구성된 정책에 따라 바이트 단위로 보존됩니다. SHA-256 및 바이트 수가 포함된 완성된 `media.saved` 수령증이 필요합니다. 대기 중인 작업, 썸네일 또는 파일명은 보존된 첨부 파일이 아닙니다.

전체 채팅 내역을 내보내더라도 저널이나 사용자 프로필에는 모든 메시지가 반영되지 않습니다. TgWitness 내에서 분석해야 할 내역이 있다면 **‘전체 내역 불러오기’** 또는 ‘제한된 저널 스냅샷’을 사용하십시오. 내역 실행을 시작하기 전에 활성화된 소스 목록을 확인하십시오. 두 방법 모두 텔레그램에서 더 이상 제공하지 않는 자료는 복구할 수 없습니다.

## 3. 변화하는 사건 상황과 신중한 상호작용 기록

진행 중인 사건 관련 채팅을 우선순위 소스로 지정하십시오. 재확인 주기, 지속적인 추적 및 미디어 결과를 검토하십시오. 계정을 사용하는 동안 수집기가 계속 모니터링하도록 하십시오. **'채팅 → 프로필 → 지금 프로필 저장**'을 사용하여 설명 및 봇 명령과 같은 소스 메타데이터를 보존하십시오. 이는 저장된 메시지에서 파생된 사람 프로필과는 별개입니다.

정보원을 추적하거나 봇과 상호작용하는 경우가 포함된 사건의 경우:

1. **텔레그램 링크 열기 → 미리보기 저장은** 제공된 링크와 해당 작업이 수행되기 전의 미리보기 내용을 기록합니다.
2. **'Join / open and observe'는** 가입/열기 작업을 수행하며, 제공된 경우 봇의 start 매개변수를 전송합니다. 승인을 기다리는 가입 요청은 '보류 중'으로 기록됩니다.
3. 패널에서 발행된 텍스트 응답 및 지원되는 버튼 클릭은 `interaction.requested`와 `interaction.result`를 유지합니다. 콜백 수신 확인은 반환된 팝업 텍스트, 알림 상태 및 URL을 유지할 수 있습니다.

이는 실제 계정 활동입니다. 다른 텔레그램 앱에서 발생하는 콜백 누름은 수집기에 표시되지 않지만, 그로 인해 생성된 메시지나 수정 내역은 표시될 수 있습니다. 미니 클라이언트는 웹 앱, 결제, 전화 또는 위치 관련 워크플로를 수행하지 않습니다. 정확한 동작에 대해서는 [패널 상호작용을](https://phishdestroy.github.io/TgWitness/ko/docs/reference/collection/#act-from-the-panel) 참조하십시오.

## 4. 여러 채팅 간의 관찰 내용 연결

**'저널**(**Journal**)'에서 **'모든 소스**(All sources)'를 선택하고 기록된 내용을 검색합니다. 일치하는 기록을 열고 작업 공간, 채팅, 메시지 ID, 순서 및 기록 해시를 확인합니다.

관련 채팅에서 **‘사람들**’**→ ‘프로필 켜기’를** 선택한 후 특정 사용자를 확인해 보세요:

- 시간이 지남에 따라 관찰된 이름/사용자 이름과 텔레그램 숫자 ID.
- 출처 기록 참조 정보를 포함한 답글 간 연관성.
- **또한…** 해당 ID가 글을 남긴 이 작업 공간 일지의 다른 채팅방에서도 확인할 수 있습니다.
- 활동 내역, 수정/삭제 내역, 그리고 언급된 지갑, 휴대폰, 사용자 이름 및 링크.
- 저장된 아바타 메타데이터 및 유사한 캐시된 아바타와 각각의 출처 정보.

조사 결과에서 파생된 프로필을 사용하기 전에 인용된 기록을 확인하십시오. 프로필은 저장된 메시지가 있는 사람들을 대상으로 하며, 그룹의 모든 구성원을 포함하지는 않습니다. **‘매개변수 → 사실별 인용 기록 수’ 설정은** 참조 목록의 범위를 제한할 뿐, 기본 활동 건수를 제한하지는 않습니다. 멘션 및 아바타 유사성은 단서일 뿐이며, 소유권이나 신원을 입증하지는 않습니다.

실제 예시:

| 링크 | 기록 | 지원되는 관찰 항목 |
| --- | --- | --- |
| 동일한 발신자 계정 | 그룹 #146 및 비공개 후속 게시물 #205 | 두 경우 모두 텔레그램 발신자 ID 71001을 제공합니다. |
| 동일한 대상 | #146, 봇 키보드 #173, 채널 편집 #188, 비공개 메시지 #205 | 모두 `pay.example.invalid/new`를 포함하고 있으며, 소유권/관리 권한은 확인되지 않았습니다. |
| 동일한 저장 파일 | 미디어 수령 내역 #151 및 #209 완료 | 보존된 바이트에 대한 전체 SHA-256 값이 일치합니다. |
| 채널 출처 표기 | #101 및 #188 | 발신자가 명시되지 않은 경우, 채널 게시물을 사용자 71001의 것으로 귀속시키지 마십시오. |

첨부 파일의 해시와 관련 메시지 참조 정보를 비교하십시오. 파일이 동일하다고 해서 작성자, 전달자 또는 공통 운영자가 존재한다고 단정할 수는 없습니다. 이름이 같고 아바타가 유사하다는 사실만으로는 두 텔레그램 ID를 한 사람으로 연결할 수 없습니다.

## 5. 채팅 간 타임라인 구축

**채팅** 내 저장된 버전과 해당 **저널 기록 #…** 링크를 사용하십시오. **저널**에서는 **모든 출처**와 **수정**, **삭제 내역**, **관련 내용을** 통합하십시오. 제공된 경우 `source_at`와 `observed_at`를 모두 포함하십시오.

| 예시 관찰 시간 | 참고 자료 | 관찰 |
| --- | --- | --- |
| 09:00 | 채널 #101 | 원본 목적지 캡처됨 |
| 09:12 | 그룹 #146; 미디어 #151 | 새로운 대상이 게시되었으며, 파일 다운로드가 완료되었습니다. |
| 09:16 | 봇 #173 | 키보드가 새로운 목적지를 가리킵니다. |
| 09:20 | 채널 #188 | 공지사항 수정됨; 저장된 두 버전 모두 유지됨 |
| 09:24 | 비공개 #205; 미디어 #209 | 동일한 발신자 ID의 수신처가 반복되며, 동일한 파일 바이트가 보존됩니다. |
| 09:28 | 그룹 #231 | 삭제 알림 수신됨; 삭제자 및 정확한 삭제 시간은 알 수 없음 |

이 예시 참조 사항들 사이에도 다른 기록들이 존재합니다. 시퀀스 번호는 관측 순서를 나타내며, 기록 스냅샷에는 더 오래된 소스 날짜가 포함될 수 있고 실시간 이벤트보다 나중에 도착할 수도 있습니다. 스냅샷, 복구된 메시지, 삭제 알림 및 재확인 시 누락된 결과를 구분하십시오. 기록 범위의 공백은 ‘알 수 없는 구간’으로 표시하십시오. 나중에 획득한 기록이 있다고 해서 소급하여 중단 없는 관찰이 이루어졌다고 간주해서는 안 됩니다.

## 6. 원본 정보를 유지한 채 계정 관점을 추가하기

각기 다른 계정마다 별도의 작업 공간을 사용하고, 해당 계정의 목록을 반복적으로 생성하십시오. 모든 비교 작업 시 계정 ID, 역할, 서명 키 지문 및 출처 참조 정보를 함께 보관하십시오. 메시지 번호는 채팅이나 계정을 초월하는 전역 식별자가 아닙니다.

워크스페이스 간 상호 연관성 분석은 외부 사건 기록이나 분석 도구에서 수행됩니다. TgWitness는 현재 전체 워크스페이스를 아우르는 통합 검색, 통합 타임라인, 수사 그래프 또는 통합 사건 아카이브 기능을 제공하지 않습니다. **하나의** 채널/슈퍼그룹에 대한 다중 계정 내보내기는 계정 일지를 병합하는 것이 아닌 별도의 작업입니다.

장기적인 작업의 경우, [독립적인](https://phishdestroy.github.io/TgWitness/ko/docs/reference/witness/)증인과의 경계를 유지하십시오. 통제된 전달 확인 절차를 통해 각 계정의 캡처 경로와 가시성을 검증하십시오.

## 7. 사건 인계 자료 정리 및 검증

다음 항목들을 분석가가 구성한 사건 디렉토리에 함께 보관하십시오:

| 자료 | 목적 |
| --- | --- |
| 사건 기록 및 출처 목록 | 질문, 수집 정책, 접근 권한/역할, 조사 결과, 대체 설명 및 미비점 |
| 타임라인 | 각 항목에 대한 시간 정보와 작업 공간/채팅/메시지/시퀀스 참조 정보 |
| 워크스페이스별 서명된 증거 ZIP 파일 | 완전한 기록 저널, 매니페스트 및 포함된 보존 미디어; 패널 필터는 저널 내보내기 범위를 제한하지 않습니다. |
| 별도로 서명된 사용자 프로필 파일 | 파생된 참조 자료는 해당 작업 공간의 증거 자료와 대조하여 확인되었습니다. |
| 서명된 전체 채팅 내역 내보내기 | 현재 표시된 기록 내역 수집(관찰 기록부와 별도) |
| 신뢰할 수 있는 지문 및 이전 체크포인트 | 핵심 정체성 및 보존되는 기록의 범위 |
| Witness 아티팩트(설정된 경우) | 별도의 기록부, 서명된 게시물 및 위트니스 지문 |
| 검증 결과 및 제공된 파일의 해시값 | 무엇이 확인되었는지, 어떤 바이트가 전송되었는지, 그리고 누구에게 전송되었는지 |

신뢰할 수 있는 설치 환경에서, 파일 이름과 각 작업 공간의 실제 지문 정보를 포함하여:

```
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 증거 자료는 고유한 서명과 검증 절차를 갖추고 있습니다.

## 수사에 적용하기

| 사례 | Trace | 제공 |
| --- | --- | --- |
| 봇 기반 주문/결제 분쟁 | 항목 공지 → 저장된 링크 미리보기 → 봇 시작 매개변수 → 메시지 및 키보드 버전 → 패널 콜백 수신 확인 → 개인/그룹 후속 조치 | 확인된 제안/응답 타임라인 및 검증된 출처; 결제 링크만으로는 결제가 이루어졌음을 증명할 수 없습니다. |
| 사건 발생 후 삭제된 메시지 | 관련된 모든 채팅 → 저장된 원본/수정 내역 → 삭제 또는 재확인 시 누락된 결과 → 보존된 미디어 → 보도 내용 및 기타 계정 관점 | 보존된 버전과 명확히 표시된 알 수 없는 기간; 삭제 주체를 임의로 추정하지 않음 |
| 한 참가자가 채팅마다 이름을 바꿉니다 | 발신자 ID → 이름/사용자 이름 이력 → 답장 → 기타 관찰된 채팅 → 인용된 수신처/파일 | 인용된 텔레그램 계정 활동 타임라인으로, 실제 신원 및 관계에 대한 가설은 별도로 구분되어 있습니다. |

[수집 참조](https://phishdestroy.github.io/TgWitness/ko/docs/reference/collection/) · [개인 프로필 검증](https://phishdestroy.github.io/TgWitness/ko/docs/reference/evidence/#people-profiles) · [증거 인계](https://phishdestroy.github.io/TgWitness/ko/docs/reference/evidence/#investigation-handoff) · [검증 완료](https://phishdestroy.github.io/TgWitness/ko/docs/reference/verification/)
