v1.0.0 · 20 детекторов · 12 правил · 933 теста

Найди то, что скрыто
в твоём PCAP

Paradox — оффлайн-инструмент для триажа трафика. Ищет противоречия между слоями данных: DNS vs SNI, JA3 vs User-Agent, MAC vs IP. Показывает пивоты, ARP-spoof, domain-fronting и C2-каналы — а не просто список findings.

20
Детекторов
12
Правил противоречий
933
Теста
28.1с
на 627k пакетов
paradox — quick start

$ pip install -e ".[gui]"

$ paradox capture.pcap

# CLI → JSON + Markdown + IOC

$ python -m paradox_gui

# GUI: 8 вкладок, граф связей, таймлайн

# Пример вывода:

packets: 627 694 · unique DNS queries: 117

flows: 2 332 · findings: 7 · contradictions: 2

PIVOT: 192.168.1.12 (жертва brute_force, но атакует 192.168.1.1 через WinRM)

Почему Paradox?

Zeek, Arkime и tshark парсят pcap и находят DNS, TLS, HTTP. Paradox идёт дальше — проверяет согласованность между слоями и строит атомарные факты о мире.

🔍

Противоречия между слоями

SNI без DNS, MAC на разных IP, JA3 инструмента с браузерным User-Agent. 12 правил, которые находят то, что не сходится.

🕸️

Поиск пивотов

Хост одновременно жертва и атакующий — victim_makes_attack. Сразу видно, как злоумышленник перемещается по сети.

⏱️

Kill-chain таймлайн

Реконструкция атаки по фазам: recon → initial_access → execution → lateral_movement → c2 → exfiltration.

📡

C2-beaconing

Периодические heartbeat-соединения с jitter < 0.1, ≥ 20 обращений, ≥ 10 минут. Multi-tenant filter против CDN.

🧬

YARA + Carve

Сканирование вырезанных файлов пользовательскими YARA-правилами. Metadata-only — тело на диск не пишется.

📊

Сравнение прогонов (B1)

Два JSON-отчёта → что добавилось / исчезло / изменилось. Для повторного триажа одного и того же pcap.

Живой интерфейс Paradox

Нажмите на вкладки ниже, чтобы посмотреть, как выглядит работа с инструментом.

Paradox v1.0.0 — CyberCampTask.pcap
— □ ×
627 694
Пакеты
2 332
Flows
7
Findings
2
Противоречия
Найдено в трафике
Тип Значение MITRE Severity
FTP brute force 10.0.1.50 → 192.168.1.12:21 T1110.001 critical
Command injection 10.0.1.50 → 192.168.1.12:80 T1190 high
Lateral movement 192.168.1.12 → 192.168.1.1:5985 T1021.001 high
00:00:18
INITIAL_ACCESS T1110.001

ftp_brute_force (10.0.1.50 → 192.168.1.12)

00:05:07
EXECUTION T1190

command_injection (10.0.1.50 → 192.168.1.12)

00:10:56
LATERAL_MOVEMENT T1021.001

victim_makes_attack: 192.168.1.12 → 192.168.1.1

10.0.1.50 Вход / Жертва 192.168.1.12 Pivot 192.168.1.1 Жертва 80.64.102.71 C2 / Цель

Интерфейс Paradox

От сырых пакетов до готового графа атаки и таймлайна. Весь инцидент на одном экране.

Paradox - Главное окно

Сводка прогона и Аномалии

Мгновенная статистика по пакетам, flows и findings. Вкладка «Что видел инструмент» показывает разбивку по протоколам, а блок «Аномалии» сразу подсвечивает DNS без ответа и оборванные TCP-сессии.

Paradox - Граф атаки

Интерактивный Граф Атак

Визуализация связей между хостами. Сразу видно цепочку компрометации (Victim → Pivot → C2). Панель справа показывает фазы, MITRE ATT&CK и детали каждого ребра.

Paradox - Таймлайн

Таймлайн / Kill-chain

Хронология инцидента, разбитая по фазам атаки: от Initial Access до Exfiltration. Удобная таблица с временем, источником, получателем и MITRE-техниками.

12 правил противоречий

Paradox строит атомарные факты о мире и ищет несогласованности. Это новый слой анализа — поверх findings и поверх entities.

victim_makes_attack
Хост одновременно жертва и атакующий → pivot
critical
mac_ip_conflict
ARP-spoof: два MAC на одном IP
critical
sni_host_mismatch
Domain fronting: SNI ≠ HTTP Host
high
ja3_ua_mismatch
JA3 инструмента + браузерный UA → мимикрия
high
port_service_mismatch
TLS на 22, HTTP на 445 → туннель
high

…и ещё 7 правил, включая reverse_asymmetry, sni_without_dns и dns_answer_mismatch.

Пример вывода · Markdown

## TL;DR

PIVOT: 192.168.1.12 (жертва brute_force, но сама атакует 192.168.1.1 через WinRM)

Payload: /ftp_update.sh (sh, 77 B, sha256 e83fb5b6a8cd…)

## Timeline

initial_access → execution → lateral_movement → exfiltration

## Contradictions (2)

critical victim_makes_attack

192.168.1.12 — одновременно victim_of 10.0.1.50 и attacker_of 192.168.1.1

high reverse_asymmetry

192.168.1.1: 9 acks vs 5000+ inbound bytes

Производительность

Собственный парсер на struct.unpack — 39× ускорение против чистого scapy.

Размер Пакетов Время Контекст
152 МБ 232k 12 сек с TCP reassembly
319 МБ 627k 28 сек CTF CyberCampTask
4.7 ГБ 9.5M 10 мин FIRST-2015 · 58 pcap

Установка

Python 3.11+. Windows / Linux / macOS. Готовый .exe — в Releases.

# Разработка с GUI
pip install -e ".[dev,gui]"
pip install -e ".[dev,gui,yara,enrich]" # + YARA + Threat Intel