
In-vitro-Pipeline zur statischen Malware-Analyse für Telegram, KI-Agenten (Antigravity / Local Ollama / OpenCode) und IDA Pro 9.5 über ph4ntom-ida-bridge
In vitro („im Glas“): automatisierte statische Malware-Analyse hinter hermetisch abgeschlossenem Glas — ohne einen einzigen Ausführungstakt der Probe auf dem Host (in vivo verboten), die die „Blackbox“ einer Binärdatei durch Telegram, KI-Agenten (Antigravity / OpenCode / Custom CLI) und IDA Pro 9.5 (
ph4ntom-ida-bridge) in transparentes Glas verwandelt.
Sie senden dem Bot in Telegram eine beliebige Datei oder ein Archiv (bis zu 2 GB) → der Bot prüft die Whitelist der user_id, lädt die Datei in die Quarantäne herunter, führt einen schnellen deterministischen Vortriage durch, startet bei Bedarf selbst das isolierte IDA Pro 9.5 mit ph4ntom-ida-bridge, führt den statischen Reverse-Engineering und die Entschlüsselung von Konfigurationen durch (execute_idapython + lokale AST-Sandbox) und schickt einen fertigen Markdown-Bericht zurück in denselben Chat.
Telethon) hebt die Beschränkung der Cloud-Bot-API von 20 MB auf, ohne Docker und Drittanbieter-Proxys.ZIP (einschließlich WinZip AES-128/256 über pyzipper), 7z, RAR/RAR5 (automatische Suche nach 7z.exe/UnRAR.exe oder explizite SEVENZIP_BIN/UNRAR_BIN, Robustheit gegenüber OEM-Kodierungen CP866/CP1251), tar/gz/bz2/xz, CAB, ISO; automatische Passwortauswahl aus der Dateibeschreibung (pass: ...), aus extrahierten benachbarten Textdateien (ПАРОЛЬ.txt, readme.txt in UTF-8/CP1251/CP866) vor der Rekursion in verschachtelte Archive und aus Standard-Malware-Passwörtern (infected, malware, virus u. a.); Schutz vor Zip-Slip, Symlinks und Zip-Bomben; Beibehaltung von .docm/.xlsm/.apk/.jar als Container mit paralleler Extraktion verschachtelter Binärdateien.MD5/SHA-1/SHA-256), Entropie, PE (pefile: Sektionen, RWX, Importe nach Bedrohungskategorien, Overlay, TLS, Authenticode, .NET, priorisiertes Scannen von .rdata/.data), deterministische Offenlegung von Stack-Strings und Ein-Byte-XOR-Puffern (mov byte ptr [rbp/rsp+disp], imm8), ELF, Mach-O, DEX, Office-VBA-Makros (oletools), PDF (/JavaScript, /OpenAction, /URI), Windows .lnk, PowerShell -enc und IOC-Extraktor.ORCHESTRATOR_INTERNET=1 (oder Profil extended_static / full_local) prüft der Daemon passiv den SHA-256 und externe Domains/IPs aus dem Triage über MalwareBazaar, ThreatFox, VirusTotal REST v3 (sofern VT_API_KEY gesetzt ist), DNS-over-HTTPS und RDAP, ohne die Live-Server der Angreifer zu kontaktieren, und speichert jobs/<job_id>/osint_report.json. Der Chef-Agent erhält außerdem das CLI tools/osint_lookup.py (mit SSRF-Schutz).ida.exe -A über tools/ida_session.py mit automatischem isoliertem Staging-Verzeichnis IDAUSR (unabhängig von den Sandbox-Rechten auf %APPDATA%\Hex-Rays\IDA Pro\plugins\), 2-Hop-Suche nach Benutzerfunktionen über String-XREF und Autodekompilierung der Hauptfunktion, strikter Bindung über PID/Port in ~/.ph4ntom_ida_instances.json, Protokollierung der Sitzungsnachweise in ida_evidence.json und garantiertem Beenden des Prozesses — Ihre manuell geöffneten IDA-Fenster werden nicht beeinträchtigt.[ПОДТВЕРЖДЕНО] / [ВЕРОЯТНО] / [НЕ ПОДТВЕРЖДЕНО] zu unterteilen und die Grenzen der Gewissheit explizit anzugeben, während das Skript tools/send_telegram_report.py den finalen Bericht deterministisch mit triage_report.json und ida_evidence.json abgleicht (wobei verfälschte SHA-256, erfundene sub_* / Hex-Rays bei nicht gestarteter IDA und unbegründete clean-Urteile blockiert werden).safe_static verwendet (strikte Befehls-Whitelist und AST-Sandbox), aber mit einem Klick lassen sich extended_static (+ Internet/OSINT) oder full_local (vollständiges PowerShell + Internet für einen dedizierten Analyse-PC) aktivieren.execute_idapython in IDA und die lokale Sandbox tools/run_static_decoder.py (AST-Filter + sys.addaudithook, die das Starten von Prozessen, die Registry und das Schreiben außerhalb von jobs/<id>/decoded/ verbieten, mit optionalen --allow-network / --unrestricted-imports bei aktivem full_local).backends/): Funktioniert out of the box mit Antigravity, einem autonomen lokalen KI-Agenten (local — Ollama / qwen2.5-coder:7b / LM Studio / vLLM mit Streaming-Kontrolle der Generierung, Autostart von ollama serve und Kontext 16K) und OpenCode (opencode run + fertige Konfiguration opencode.json.example), und das Umschalten zwischen dem Cloud-antigravity und dem lokalen Modell erfolgt direkt in Telegram mit dem Befehl /mode local ↔ /mode antigravity (oder einem einmaligen Tag #local in der Dateibeschriftung) ohne Neustart des Bots.user_id (data/allowed_users.json). Fremde Benutzer werden vollständig ignoriert; der Eigentümer verwaltet den Zugriff über /allow und /revoke.[Доверенный user_id в Telegram]
│ (любой файл / архив до 2 ГБ, опционально пароль в подписи)
▼
[bot_daemon.py (Telethon MTProto + Keepalive)]
├─ Белый список: data/allowed_users.json (/whoami, /allow, /revoke, /users, /status, /mode, /reset)
├─ Очередь (MAX_CONCURRENT_JOBS=1) → скачивание в jobs/<job_id>/sample/
├─ Этап 1: tools/triage.py → безопасная распаковка + стековый/XOR декодер + jobs/<job_id>/triage_report.json
└─ Этап 2: backends/* (Antigravity | Local LLM [Ollama/LM Studio] | OpenCode | Custom CLI)
│
▼
[ИИ-агент (строго статика)]
├─ VirusTotal MCP: проверка только SHA-256 / доменов / IP (без загрузки файла)
├─ IDA Pro 9.5: tools/ida_session.py open → MCP ida-bridge + static execute_idapython → close
├─ Локальные декодеры: tools/run_static_decoder.py (AST + audit hook sandbox)
└─ Финал: tools/send_telegram_report.py → jobs/<job_id>/delivery_ready.json
│
▼
[bot_daemon.py] → отправляет вердикт, сводку и файл report_<name>.md обратно в чат
Das öffentliche Repository ist nach dem Prinzip secure-by-default konfiguriert (PERMISSION_PROFILE=safe_static in .env.example und opencode.json.example), während auf Ihrem persönlichen PC oder einem dedizierten Standort die Berechtigungen flexibel erweitert werden: