Explorer
KNOW-PAT-066

OPSEC communication - Forensics Telegram tdata, proxifier, et extraction OPSEC

Domaine
forensics
Type
pattern
Priorité
P2

Parent : [[INDEX-CYBERSECU]]

OPSEC communication - Forensics Telegram tdata, proxifier, et extraction OPSEC

Problème

L'archive Ygg contient les données de communication d'un opérateur : cache Telegram (tdata), configuration Proxifier (VPN/proxy chaining), et des logs de réunion (Reunion201117_fra.json). Ces données montrent l'infrastructure de communication et les erreurs OPSEC commises.

Contexte archive Ygg

  • Dossier : 08_COMMUNICATION/
  • Fichiers : telegram_tdata/ (cache local Telegram Desktop), telegram_cache_strings.txt, telegram_tdata_decrypted.json
  • Fichier : proxifier/Default.ppx (configuration Proxifier)
  • Fichier : Reunion201117_fra.json (log de réunion)

Données extraites

1. Telegram tdata

Le dossier telegram_tdata/ contient :

  • account_configs : configurations des comptes
  • account_maps : mapping des comptes
  • key_datas : clés de chiffrement locales
  • log.txt : logs de connexion
  • Multiple .s files : données chiffrées des chats, médias, settings

Problème : Le cache Telegram Desktop stocke localement TOUTES les conversations, contacts, et médias téléchargés. Extraction = accès complet à l'historique.

2. Proxifier Default.ppx

<!-- proxifier/Default.ppx -->
<ProxifierProfile version="1.0">
    <Options>
        <ResolveViaProxy enabled="true"/>
        <ProxificationEngine mode="Automatic"/>
    </Options>
    <ProxyList>
        <Proxy id="1">
            <Address>X.X.X.X</Address>
            <Port>9050</Port>
            <Protocol>SOCKS5</Protocol>
            <Authentication enabled="false"/>
        </Proxy>
        <Proxy id="2">
            <Address>127.0.0.1</Address>
            <Port>9050</Port>
            <Protocol>SOCKS5</Protocol>
            <Authentication enabled="false"/>
        </Proxy>
    </ProxyList>
    <RuleList>
        <Rule enabled="true">
            <Name>Telegram</Name>
            <Targets>telegram.org;tdesktop.com</Targets>
            <Action>Proxy</Action>
            <ProxyId>1</ProxyId>
        </Rule>
    </RuleList>
</ProxifierProfile>

Observation : Configuration de proxy chaining (SOCKS5 → Tor 127.0.0.1:9050 + proxy externe X.X.X.X:9050). Telegram routé via proxy. Proxy sans authentification.

Solution protectif — OPSEC communication hardené

1. Telegram OPSEC

## Règles d'or pour Telegram OPSEC

### Ne JAMAIS
- ❌ Utiliser Telegram Desktop sur une machine liée à son identité réelle
- ❌ Activer la synchro cloud (messages stockés sur les serveurs Telegram)
- ❌ Utiliser son numéro de téléphone réel (SIM virtuelle/anonyme)
- ❌ Laisser les notifications visibles sur l'écran
- ❌ Activer les previews de médias auto
- ❌ Garder le cache local (tdata) sur le disque

### TOUJOURS
- ✅ Utiliser Telegram sur une VM dédiée (snapshots, isolation)
- ✅ Numéro de téléphone anonyme (SMS service, SIM prépayée)
- ✅ Secret Chats (E2EE, pas de cloud) pour les conversations sensibles
- ✅ Auto-destruct timer sur les messages (1h max)
- ✅ Pas de backup cloud
- ✅ Chiffrer le disque de la VM (LUKS/BitLocker)
- ✅ RAM disk pour le cache Telegram (effacé au reboot)
- ✅ VPN → Tor → Telegram (jamais direct)

### Configuration Telegram Desktop sécurisée

Settings → Privacy and Security:

  • Phone Number: Nobody
  • Last Seen: Nobody
  • Profile Photo: My Contacts
  • Forwarded Messages: Nobody
  • Calls: Peer-to-Peer: Never
  • Groups: My Contacts

Settings → Advanced:

  • Accept Secret Chats: ON
  • Accept Calls: OFF (ou Never P2P)

Settings → Data and Storage:

  • Storage Usage: Clear cache every exit
  • Automatic Media Download: OFF for all

2. Isolation Telegram avec RAM disk

#!/bin/bash
# telegram_ramdisk.sh — Isolation Telegram avec RAM disk

# Créer un RAM disk de 512MB
mkdir -p ~/telegram_ramdisk
sudo mount -t tmpfs -o size=512M tmpfs ~/telegram_ramdisk

# Lier le cache Telegram au RAM disk
mkdir -p ~/telegram_ramdisk/tdata
ln -sf ~/telegram_ramdisk/tdata ~/.local/share/TelegramDesktop/tdata

# Au démarrage de Telegram, le cache est en RAM
# Au reboot, TOUT est effacé automatiquement

echo "tmpfs /home/user/telegram_ramdisk tmpfs size=512M,mode=700 0 0" | sudo tee -a /etc/fstab

3. Proxifier avec authentification

<!-- proxifier_secure.ppx -->
<ProxifierProfile version="1.0">
    <Options>
        <ResolveViaProxy enabled="true"/>
        <ProxificationEngine mode="Manual"/>
    </Options>
    <ProxyList>
        <Proxy id="1">
            <Address>127.0.0.1</Address>
            <Port>9050</Port>
            <Protocol>SOCKS5</Protocol>
            <Authentication enabled="true">
                <Username>user</Username>
                <Password>strong_password</Password>
            </Authentication>
        </Proxy>
    </ProxyList>
    <RuleList>
        <!-- Whitelist uniquement -->
        <Rule enabled="true">
            <Name>Allow-Telegram</Name>
            <Targets>telegram.org;tdesktop.com;telegra.ph</Targets>
            <Action>Proxy</Action>
            <ProxyId>1</ProxyId>
        </Rule>
        <Rule enabled="true">
            <Name>Block-All-Other</Name>
            <Targets>*</Targets>
            <Action>Block</Action>
        </Rule>
    </RuleList>
</ProxifierProfile>

4. Détection d'extraction Telegram

# detect_telegram_extraction.py
import os
import psutil
import hashlib

def detect_telegram_forensics():
    alerts = []
    
    # Chemins sensibles Telegram Desktop
    telegram_paths = [
        os.path.expandvars(r'%APPDATA%\Telegram Desktop\tdata'),
        os.path.expandvars(r'%LOCALAPPDATA%\TelegramDesktop\tdata'),
        os.path.expanduser('~/.local/share/TelegramDesktop/tdata'),
    ]
    
    # Vérifier l'accès aux fichiers
    for path in telegram_paths:
        if os.path.exists(path):
            # Vérifier les accès récents
            stat = os.stat(path)
            # Si accès dans les 5 dernières minutes par un processus inconnu
            alerts.append(f"Telegram tdata accessible: {path}")
    
    # Vérifier les processus suspects
    suspicious_processes = [
        'telegram_backup', 'tdata_extractor', 'telegram_export',
        'mimikatz', 'procdump', 'memory_dumper'
    ]
    
    for proc in psutil.process_iter(['pid', 'name', 'cmdline']):
        for suspicious in suspicious_processes:
            if suspicious.lower() in proc.info['name'].lower():
                alerts.append(f"Processus suspect: {proc.info['name']} (PID: {proc.info['pid']})")
    
    return alerts

5. Communication OPSEC générale

## Checklist OPSEC Communication

- [ ] Machine dédiée (VM ou hardware) pour les communications sensibles
- [ ] Chiffrement disque complet (LUKS/BitLocker)
- [ ] RAM disk pour les applications de messagerie
- [ ] VPN payé en crypto/anonymement (pas de carte bancaire)
- [ ] Tor pour toutes les communications (pas de DNS du FAI)
- [ ] Numéro de téléphone anonyme (pas lié à l'identité)
- [ ] Secret Chats uniquement (pas de cloud sync)
- [ ] Auto-destruct des messages (1h max)
- [ ] Pas de screenshots / enregistrements d'écran
- [ ] Pas de notifications visibles / sonores
- [ ] Pas de backup dans le cloud
- [ ] Pas de sync entre devices
- [ ] Pas d'identifiant / pseudo lié à l'identité réelle
- [ ] Pas de photo de profil réelle
- [ ] Pas de géolocalisation activée
- [ ] Pas de partage de fichiers via la messagerie (virus scanning)

Checklist de validation

  • Telegram sur VM isolée avec snapshot
  • Cache Telegram en RAM disk (pas sur disque)
  • Numéro anonyme (pas de SIM réelle)
  • Secret Chats avec auto-destruct
  • Pas de cloud sync
  • Proxy SOCKS5 avec authentification
  • Whitelist uniquement dans Proxifier (pas de wildcard allow)
  • Chiffrement disque (LUKS/BitLocker)
  • Pas de notifications visibles
  • Auto-clear cache à la fermeture
  • Détection d'extraction (monitoring fichiers/processus)
  • Pas de backup local (tdata chiffré ou RAM-only)

Références