# מצב חקירה

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

חקירות מקיפות של חשבונות שלמים, הכוללות ערוצים, קבוצות, צ'אטים פרטיים ובוטים, החל מהגדרת היקף החקירה ועד להרכבת תיק מקרה מאומת.

עקבו אחר מקרה על פני ערוצים, קבוצות, צ'אטים פרטיים ובוטים, החל מהאיסוף הראשוני ועד לציר זמן מצוטט והעברה הניתנת לאימות. הגרסה האינטראקטיבית של האתר נמצאת בכתובת `/docs/cases/`; [הוראות לתצוגה מקדימה](https://github.com/phishdestroy/TgWitness/blob/main/docs/internal/PUBLISHING.md#preview-the-website-locally).

## מקרה לדוגמה: שינוי יעד לאורך ארבע שיחות

הודעה מצביעה על בוט. קבוצת תפעול דנה ביעד תשלום חדש, מקלדת הבוט מציגה אותו, והודעת המשך פרטית חוזרת על כך. לאחר מכן ההודעה נערכת והודעת הקבוצה נעלמת.

השאלות הן: מה נצפה לפני השינוי ואחריו, אילו חשבונות טלגרם פרסמו כל פריט, היכן הופיע היעד, אילו בתים של קבצים מצורפים נשמרו, ואילו מרווחי זמן נותרו בלתי ידועים?

כל השמות, המזהים, הזמנים וההפניות ביומן בדוגמה זו הם פיקטיביים. תהליך העבודה משתמש בתכונות הקיימות; מפת המקרה היא איור, ולא גרף אוטומטי שנוצר על ידי היישום.

תרשים זרימה · ערוצים → יומן סביבת העבודה; קבוצות → יומן סביבת העבודה; שיחות פרטיות → יומן סביבת העבודה; בוטים → יומן סביבת העבודה; יומן סביבת העבודה → חיפוש בכל המקורות; יומן סביבת העבודה → פרופילים אישיים עם הפניות לתיעוד; יומן סביבת העבודה → גרסאות שמורות ואישורי קבלה של קבצים מצורפים; חיפוש בכל המקורות → ציר זמן של האנליסט ורישום מקורות; פרופילים אישיים עם הפניות לתיעוד → ציר זמן של האנליסט ורישום מקורות; גרסאות שמורות ואישורי קבלה של קבצים מצורפים → ציר זמן של האנליסט ורישום מקורות; יומן סביבת העבודה → קובץ ZIP של ראיות חתומות; ציר זמן של האנליסט ורישום מקורות → העברת תיקים עם ראיות שעברו אימות נפרד; קובץ ZIP של ראיות חתומות → העברת תיקים עם ראיות שעברו אימות נפרד · ערוצים · קבוצות · שיחות פרטיות · בוטים · יומן סביבת העבודה · חיפוש בכל המקורות · פרופילים אישיים עם הפניותלתיעוד · גרסאות שמורות ואישורי קבלהשל קבצים מצורפים · קובץ ZIP של ראיות חתומות · ציר זמן של האנליסט ורישוםמקורות · העברת תיקים עם ראיות שעברואימות נפרד

**תרשים כטקסט**

1. ערוצים → יומן סביבת העבודה
2. קבוצות → יומן סביבת העבודה
3. שיחות פרטיות → יומן סביבת העבודה
4. בוטים → יומן סביבת העבודה
5. יומן סביבת העבודה → חיפוש בכל המקורות
6. יומן סביבת העבודה → פרופילים אישיים עם הפניות לתיעוד
7. יומן סביבת העבודה → גרסאות שמורות ואישורי קבלה של קבצים מצורפים
8. חיפוש בכל המקורות → ציר זמן של האנליסט ורישום מקורות
9. פרופילים אישיים עם הפניות לתיעוד → ציר זמן של האנליסט ורישום מקורות
10. גרסאות שמורות ואישורי קבלה של קבצים מצורפים → ציר זמן של האנליסט ורישום מקורות
11. יומן סביבת העבודה → קובץ ZIP של ראיות חתומות
12. ציר זמן של האנליסט ורישום מקורות → העברת תיקים עם ראיות שעברו אימות נפרד
13. קובץ ZIP של ראיות חתומות → העברת תיקים עם ראיות שעברו אימות נפרד

## 1. הגדירו את המקרה ואספו את כל הפרטים

1. חבר את חשבון האיסוף לסביבת העבודה שלו. בהערות חיצוניות על התיק, רשום את מספר התיק, מזהה החשבון, סביבת העבודה, מועד תחילת התצפית ו- טביעת האצבע של מפתח החתימה המהימן.
2. **מקורות** פתוחים **→ היקף התצפית → מצב חקירה**. ההגדרה המוקדמת בוחרת את **"החשבון כולו**", ערוצים/קבוצות/צ'אטים פרטיים/בוטים, פעולות אישיות, פרופילים של מקורות ו-200 ההודעות הגלויות האחרונות עבור מקורות שהתגלו לאחרונה. בדקו את ההגדרות, לחצו על **"שמור היקף**" והשלימו את אישור ההיקף.
3. **טען צ'אטים** והשווה את המקורות לרשימת השיחות של החשבון. בדוק את ההחרגות. **הפרמטר "צ'אטים הנקראים מרשימת החשבון"** מוגדר כברירת מחדל ל- 1,000 ומאפשר עד 20,000. מקורות החורגים ממגבלת הרשימה מתווספים כאשר הם הופכים לפעילים. תעד את מה שנמנה בפועל.
4. בה**גדרות ההקלטה**, בחר "**כל הפעילות הגלויה**" ושמור את הגדרות הניטור. בדוק את סוגי הקבצים המצורפים/המגבלות ואת שטח הדיסק הפנוי.
5. התחל בתצפית. אמת הודעה חדשה מבוקרת, עריכה ומחיקה, ולאחר מכן שמור את התיעוד של הבדיקה ואת כל הכישלונות.

היקף "חשבון מלא" מתעד את הפעילות הנראית בחשבון בהתאם להגדרות השמורות. הכלי אינו ניגש לצ'אטים סודיים ואינו מצטרף אוטומטית לכל קבוצה מקושרת. כמו כן, הוא אינו משלים את כל השיחות הקיימות. ראו "[היקף האיסוף](https://phishdestroy.github.io/TgWitness/he/docs/reference/collection/#observation-scope-chosen-chats-a-folder-or-the-whole-account)".

## 2. רישום כל המקורות ואיסוף ההקשר ההיסטורי

יש לנהל רישום מקורות עם שורה אחת לכל צ'אט:

| תחום | תיעוד |
| --- | --- |
| זהות | סביבת עבודה, מזהה חשבון, מזהה צ'אט מספרי, כותרת וסוג |
| נראות | חברות/תפקיד, גישה מאושרת או לא מאושרת, החרגות |
| תיעוד בזמן אמת | מועד התחלה, סוגי אירועים נבחרים ושינויים במדיניות מאוחרים יותר |
| היסטוריית היומן | בקשת/השלמת תמונת מצב, מגבלה, זמן והפניות לרישומים |
| היסטוריה מלאה | שם קובץ ייצוא חתום לכל צ'אט, גבולות התהליך והשלמתו/כישלונו |
| קובצים מצורפים | קבלות מדיה מלאות, חתימות hash, גדלים ותוצאות שהוחמצו או נכשלו |
| היקף הכיסוי | הפסקות שירות, קליטה חלקית, FloodWait, הודעות שאינן זמינות ופערים אחרים |

יש להשתמש בשיטת הרכישה המתאימה לכל מקור:

- **טעינת היסטוריה מלאה במקורות** (`main` הנוכחי) טוענת הודעות עבר זמינות ממקורות מופעלים אל יומן סביבת העבודה. התכונה תומכת בהשהיה/המשך ובדוח התקדמות חתום. ראו [איסוף היסטוריה](https://phishdestroy.github.io/TgWitness/he/docs/reference/history/).
- **תמונת מצב של ההיסטוריה** שומרת את ההודעות הגלויות האחרונות ביומן התצפית. הערך המרבי המוגדר כברירת מחדל הוא 500; תחת "**פרמטרים" → "תמונת מצב ההיסטוריה הגדולה ביותר"** ניתן להגדיל ערך זה ל-10,000. מדובר בתצפיות היסטוריות עדכניות, ולא בעריכות משוחזרות.
- **ייצוא צ'אט מלא → ייצוא צ'אט מלא**, או **צ'אטים → ייצוא צ'אט**, מאחסן את ההיסטוריה הגלויה כרגע של צ'אט אחד לחבילה נפרדת וחתומה מסוג `chat.json` / `chat.html`. יש לחזור על הפעולה עבור כל המקורות בתיק ולשמור כל תוצאה.
- **כאשר צ'אט או בוט חדש מופיע**, ניתן לשמור את הפרופיל שלו ועד 1,000 הודעות אחרונות; מצב החקירה בוחר 200. צ'אטים קיימים אינם מקבלים את הנתונים הללו רטרואקטיבית כאשר המצב מופעל.
- **הורדת קבצים מצורפים גלויים** שומרת על נפח הנתונים בהתאם למדיניות שהוגדרה. יש לדרוש קבלה מלאה מסוג `media.saved` הכוללת SHA-256 וספירת בתים. משימה בתור, תמונה ממוזערת או שם קובץ אינם נחשבים לקובץ מצורף שנשמר.

ייצוא צ'אט מלא **אינו** ממלא את היומן או את פרופילי המשתמשים בכל ההודעות. השתמש ב**"טען היסטוריה מלאה**" או ב**"**תמונות מצב מוגבלות של היומן" עבור ההיסטוריה הדרושה לך לניתוח בתוך TgWitness. בדוק את רשימת המקורות המופעלת לפני שתתחיל בהרצת היסטוריה. אף אחת מהשיטות לא משחזרת חומר ש-Telegram כבר לא מחזירה.

## 3. שימור התיק המתפתח והאינטראקציות המכוונות

סמנו צ'אטים של תיקים פעילים כמקורות בעדיפות. בדקו את מרווחי הבדיקה החוזרת, השלמת פערים מתמשכת ותוצאות מדיה. השאירו את האספן פועל בזמן השימוש בחשבון. השתמשו **ב"צ'אטים" → "פרופיל" → "שמור פרופיל עכשיו"** כדי לשמור מטא-נתונים של המקור כגון תיאורים ופקודות בוט. זה נפרד מפרופילי אנשים הנגזרים מהודעות שנשמרו.

כאשר המקרה כרוך במעקב אחר מקור או באינטראקציה עם בוט:

1. **"פתח קישור ב-Telegram" → "שמור תצוגה מקדימה"** מתעד את הקישור שסופק ואת התצוגה המקדימה שהוחזרה לפני ביצוע הפעולה.
2. **הפקודה join / open and observe** מבצעת את הפעולות join/open, ושולחת את פרמטר ההפעלה של הבוט כאשר הוא מסופק. בקשת הצטרפות הממתינה לאישור נרשמת כ"ממתינה".
3. תשובות טקסט שהונפקו על ידי הפאנל ולחיצות על כפתורים נתמכות שומרות על `interaction.requested` ו-`interaction.result`. אישורי החזרה יכולים לשמור על טקסט החלון הקופץ שהוחזר, מצב ההתראה וכתובת ה-URL.

אלה הן פעולות חשבון אמיתיות. לחיצות על כפתור החזרה באפליקציית Telegram אחרת אינן נראות לאספן, אף שההודעות או העריכות הנובעות מכך עשויות להופיע. ה- מיני-קליינט אינו מבצע תהליכי עבודה של אפליקציות אינטרנט, תשלומים, טלפון או מיקום. לפרטים מדויקים על אופן הפעולה, ראו [אינטראקציות עם לוחות הבקרה](https://phishdestroy.github.io/TgWitness/he/docs/reference/collection/#act-from-the-panel).

## 4. קישור תצפיות בין צ'אטים שונים

ב-**Journal**, בחר "**כל המקורות**" וחפש תוכן מוקלט. פתח את הרשומות התואמות ושמור את סביבת העבודה, הצ'אט, מזהה ההודעה, הרצף וה-hash של הרשומה.

בצ'אט רלוונטי, פתחו **את "אנשים" → "הפעל פרופילים**" ובדקו אדם:

- שמות/שמות משתמש שנצפו לאורך זמן ומזהה טלגרם המספרי.
- תגובות עם הפניות למקורות התיעוד.
- **כמו כן...** בצ'אטים אחרים ביומן סביבת העבודה הזו שבהם כתב אותו מזהה.
- פעילות, עריכות/מחיקות, וכן ארנקים, טלפונים, שמות משתמש וקישורים שהוזכרו.
- מטא-נתונים של אווטרים שנשמרו ואווטרים דומים במטמון, עם ציון מקורם הנפרד.

יש לפתוח את הרשומות המצוטטות לפני השימוש בפרופיל נגזר בממצא. הפרופילים מתייחסים לאנשים עם הודעות שנשמרו, ולא לכל חברי הקבוצה. **פרמטרים → רשומות המצוטטות לכל עובדה** מגבילות את רשימת ההפניות, אך לא את מספר הפעולות הבסיסיות. אזכורים ודמיון באווטרים מהווים רמזים; הם אינם קובעים בעלות או זהות.

בדוגמה המעשית:

| קישור | תיעוד | תצפית נתמכת |
| --- | --- | --- |
| אותו חשבון שולח | קבוצה מס' 146 והמשך פרטי מס' 205 | שניהם מספקים את מזהה השולח ב-Telegram: 71001 |
| אותו יעד | #146, מקלדת בוט #173, עריכת ערוץ #188, הודעה פרטית #205 | כל המסמכים מכילים את ה-`pay.example.invalid/new`; לא נקבע מי הבעלים או מי שולט בהם |
| אותו קובץ שמור | הושלמו קבלות מדיה מס' 151 ו-209 | ערכי ה-SHA-256 המלאים תואמים עבור הבתים שנשמרו |
| ייחוס הערוץ | #101 ו-#188 | אין לייחס פוסט בערוץ למשתמש 71001 ללא ציון השולח |

השוו את חתימות ההאש של הקבצים המצורפים והפניות להודעות הקשורות אליהם. קבצים זהים אינם מעידים על יוצר, מעביר או מפעיל משותף. שמות זהים ו אווטרים דומים כשלעצמם אינם מספיקים כדי לקשר בין שני מזהי טלגרם לאדם אחד.

## 5. בניית ציר הזמן החוצה-צ'אטים

יש להשתמש בגרסאות השמורות בצ'אטים ובקישורים #… של הרישום ביומן. ב- Journal, יש לשלב את כל המקורות עם העריכות, המחיקות והכיסוי. יש לשמור הן את `source_at`, כאשר הוא מסופק, והן את `observed_at`.

| זמן תצפית להמחשה | הפניה | הערה |
| --- | --- | --- |
| 09:00 | ערוץ #101 | היעד המקורי נלכד |
| 09:12 | קבוצה מס' 146; מדיה מס' 151 | פורסם יעד חדש; הורדת הקובץ הושלמה |
| 09:16 | בוט מס' 173 | מקלדת מצביעה על היעד החדש |
| 09:20 | ערוץ מס' 188 | ההודעה עברה עריכה; שתי הגרסאות השמורות נותרו |
| 09:24 | פרטי #205; מדיה #209 | מזהה השולח זהה למזהה הנמען; באייטים של הקובץ נשמרים ללא שינוי |
| 09:28 | קבוצה מס' 231 | התקבלה הודעת מחיקה; זהות המחיק והמועד המדויק של המחיקה אינם ידועים |

רישומים נוספים מופיעים בין הדוגמאות המוזכרות כאן. מספרי הרצף מסדרים את התצפיות; תמונות מצב היסטוריות עשויות להכיל תאריכי מקור ישנים יותר ולהגיע מאוחר יותר מהאירועים בזמן אמת. יש להבחין בין תמונות מצב, הודעות ששוחזרו, הודעות מחיקה ו תוצאות של "חסר בבדיקה חוזרת". סמנו פערים בכיסוי כפרקי זמן לא ידועים. איסוף היסטוריה מאוחר יותר אינו מבסס רטרואקטיבית תצפית רציפה.

## 6. הוספת נקודות מבט של חשבונות מבלי לאבד את מקורן

השתמשו בסביבת עבודה נפרדת לכל חשבון נפרד וחזרו על תהליך הרישום שלו. שמרו את מזהה החשבון, התפקיד, טביעת האצבע של מפתח החתימה והפניות למקורות בכל השוואה. מספרי ההודעות אינם מזהים גלובליים החלים על כל הצ'אטים והחשבונות.

הקורלציה בין סביבות עבודה מתבצעת באמצעות הערות תיק חיצוניות או כלי ניתוח. ל-TgWitness אין כרגע חיפוש חוצה-סביבות עבודה גלובלי, ציר זמן מאוחד, גרף חקירה או ארכיון תיקים משולב. ייצוא רב-חשבונות של ערוץ/קבוצת-על **אחת** הוא פעולה נפרדת, ולא מיזוג של יומני החשבונות.

במקרה של עבודה ממושכת יותר, יש לשמור על גבולות באמצעות [עד בלתי תלוי](https://phishdestroy.github.io/TgWitness/he/docs/reference/witness/). יש להשתמש בבדיקות מסירה מבוקרות כדי לאמת את נתיב הלכידה והנראות של כל חשבון.

## 7. איסוף ואימות העברת התיק

יש לאגד את כל אלה בתיקיית תיקים שהורכבה על ידי אנליסט:

| חומר | מטרה |
| --- | --- |
| הערות על תיקים ורישום מקורות | שאלות, מדיניות איסוף, גישה/תפקידים, ממצאים, הסברים חלופיים ופערים |
| ציר זמן | הפניות לזמן ולסביבת העבודה/צ'אט/הודעה/רצף עבור כל ערך |
| קובץ ZIP של ראיות חתומות לכל סביבת עבודה | יומן מוקלט מלא, רשימת תוכן ומדיה משומרת כלולה; מסנני הלוח אינם מצמצמים את הייצוא של היומן |
| קובצי פרופיל אישיים חתומים בנפרד | הפניות נגזרות נבדקו מול הראיות המתאימות בסביבת העבודה |
| ייצוא מלא של צ'אטים חתומים | איסוף היסטוריית הצפייה הנוכחית, בנפרד מיומן התצפית |
| טביעות אצבע מהימנות ונקודות ביקורת קודמות | זהות מרכזית וגבולות היומן הנשמר |
| תוצרי Witness, אם הוגדרו | יומן נפרד, פוסטים חתומים וטביעת אצבע של העד |
| תוצאות האימות וה-hash של הקבצים שנמסרו | מה נבדק, אילו ביטים הועברו ולמי |

מתוך התקנה מהימנה, עם שמות קבצים וטביעת האצבע האמיתית של כל סביבת עבודה:

```
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 | מסירה |
| --- | --- | --- |
| סכסוכים בנושא הזמנות/תשלומים המנוהלים על ידי בוט | הודעת כניסה → תצוגה מקדימה של קישור שמור → פרמטר הפעלה של הבוט → גרסאות הודעה ומקלדת → קבלות החזרה של פאנל → מעקב פרטי/קבוצתי | נבדקו ציר הזמן של ההצעה והתגובה וכן מקורות מאומתים; קישור לתשלום כשלעצמו אינו מהווה הוכחה לתשלום |
| הודעות שהוסרו לאחר אירוע | כל הצ'אטים הרלוונטיים → מסמכים מקוריים/עריכות שנשמרו → תוצאות מחיקה או היעדרות בבדיקה חוזרת → מדיה שנשמרה → כיסוי ונקודות מבט אחרות של החשבון | גרסאות משומרות ופרקי זמן לא ידועים המפורשים במפורש; ללא ייחוס כוזב של הגורם למחיקה |
| משתתף משנה את שמו בצ'אטים שונים | מזהה שולח מספרי → היסטוריית שמות/שמות משתמש → תשובות → צ'אטים נוספים שנצפו → יעדים/קבצים שצוינו | ציר זמן של פעילות חשבון טלגרם שצוטט, שבו זהות בעולם האמיתי והשערות לגבי קשרים נשמרים בנפרד |

[הפניה לאוסף](https://phishdestroy.github.io/TgWitness/he/docs/reference/collection/) · [אימות פרופילים אישיים](https://phishdestroy.github.io/TgWitness/he/docs/reference/evidence/#people-profiles) · [העברת ראיות](https://phishdestroy.github.io/TgWitness/he/docs/reference/evidence/#investigation-handoff) · [אימות הושלם](https://phishdestroy.github.io/TgWitness/he/docs/reference/verification/)
