
Обнаруживает внедрение процессов и манипуляции с памятью, используемые вредоносным ПО. Находит RWX-области, паттерны шеллкода, API-хуки, перехват потоков и подмену образа процесса. Написан на Rust для высокой производительности. Включает интерфейсы CLI и TUI.
Ghost — это инструмент для обнаружения инъекций в процессы, написанный на Rust. Он наблюдает за запущенными процессами и пытается выявлять подозрительные вещи: инъекции кода, манипуляции с памятью и другие уловки, к которым прибегают вредоносные программы, чтобы скрыться.
Основная идея проста: сканировать процессы и искать странные паттерны в памяти, перехваченные функции, шеллкод и другие признаки того, что что-то было изменено. Инструмент работает на Windows, Linux и macOS (хотя поддержка Windows сейчас наиболее полная).
Что он умеет обнаруживать:
Кроме того, он сопоставляет обнаруженное поведение с фреймворком MITRE ATT&CK, что полезно при документировании угроз или составлении отчётов.



Вам понадобится установленный Rust (1.70 или новее). Затем:
cargo build --release
В Windows также потребуются инструменты сборки MSVC. В Linux — базовые инструменты разработки (gcc и т.д.). В macOS — инструменты командной строки Xcode.
Есть два интерфейса: инструмент командной строки и интерактивный терминальный интерфейс.
CLI:
# Scan all processes
cargo run --bin ghost-cli --release
# Target one process
cargo run --bin ghost-cli --release -- --pid 1234
# Output results as JSON
cargo run --bin ghost-cli --release -- --format json
# Use a config file
cargo run --bin ghost-cli --release -- --config ghost.toml
# Continuous monitoring mode
cargo run --bin ghost-cli --release -- --watch
# Watch with custom interval (10 seconds)
cargo run --bin ghost-cli --release -- --watch --interval 10
TUI:
cargo run --bin ghost-tui --release
TUI предоставляет панель с живой статистикой, историей обнаружений, а также позволяет перемещаться с помощью горячих клавиш (Tab — переключение видов, Q — выход).
Ghost поддерживает автодополнение по Tab для Bash, Zsh, Fish, PowerShell и Elvish.
# Generate completions for your shell
ghost completions bash > /etc/bash_completion.d/ghost
ghost completions zsh > ~/.zfunc/_ghost
ghost completions fish > ~/.config/fish/completions/ghost.fish
# Or use the install script
./completions/install.sh
Подробные инструкции по установке см. в completions/README.md.
Ghost поддерживает дополнительные возможности, которые можно включить при сборке:
# YARA rule scanning (requires libyara)
cargo build --features yara-scanning
# Neural ML integration (requires Python and trained models)
cargo build --features neural-ml
# eBPF detection (Linux only, currently stub implementation)
cargo build --features ebpf-detection
Примечание: возможности ML требуют обученных моделей для работы. Инструкции по обучению см. в ghost_ml/README.md.
Поведение можно настраивать через TOML-конфиг. Загляните в examples/ghost.toml в качестве отправной точки. Можно включать/отключать отдельные методы обнаружения, задавать пороги уверенности, пропускать системные процессы и управлять частотой сканирования.
Пример фрагмента конфига:
shellcode_detection = true
hollowing_detection = true
hook_detection = true
confidence_threshold = 0.3
skip_system_processes = true
scan_interval_ms = 2000
По умолчанию Ghost ограничивает вывод 10 индикаторами на одно обнаружение и удаляет дубликаты похожих находок. При масштабных сканированиях объём вывода можно дополнительно сократить:
Параметры командной строки:
# Summary mode - outputs statistics instead of full details
ghost-cli --summary
# Limit indicators per detection
ghost-cli --max-indicators 5
# Only report malicious detections
ghost-cli --min-threat-level malicious
# Combine for minimal output
ghost-cli --summary --quiet
Файл конфигурации:
[output]
verbosity = "minimal" # minimal, normal, or verbose
max_indicators_per_detection = 5
min_threat_level = "suspicious"
deduplicate_indicators = true
summary_mode = true
Это полезно при сканировании большого числа процессов или в режиме непрерывного мониторинга, когда файлы вывода в противном случае разрастаются слишком сильно.
Режим наблюдения позволяет непрерывно мониторить систему без ручного запуска сканирований. Он полезен для перехвата попыток инъекций по мере их возникновения.
# Start watching (default: 5 second interval)
ghost-cli --watch
# Custom interval
ghost-cli --watch --interval 10
# Watch specific process
ghost-cli --watch --pid 1234
# Quiet mode - only alerts on new detections
ghost-cli --watch --quiet
В режиме наблюдения Ghost:
Пример вывода:
[14:32:15] Scan #1: clean (142 processes, 89ms)
[14:32:20] Scan #2: 2 NEW detections! (2 total, 142 processes, 91ms)
[MALICIOUS] suspicious.exe (PID: 4521) - 87% confidence
[SUSPICIOUS] helper.dll (PID: 2201) - 54% confidence
[14:32:25] Scan #3: 2 known threats (142 processes, 88ms)
Базовый режим сохраняет снимок текущего состояния системы. Последующие сканирования могут сравниваться с этим снимком для выявления изменений — это удобно для поиска новых угроз, не продираясь сквозь известные проблемы.
# Save current state as baseline
ghost-cli --save-baseline baseline.json
# Later: compare against baseline
ghost-cli --baseline baseline.json
# Combine with watch mode
ghost-cli --watch --baseline baseline.json
При сравнении с базовым состоянием Ghost сообщает:
Пример вывода:
3 changes from baseline:
New threats (1):
injector.exe (PID: 8821) - Malicious
Escalated threats (1):
helper.dll (PID: 2201): Suspicious -> Malicious
New indicators (1):
svchost.exe (PID: 1024):
- RWX memory region detected
- Shellcode pattern match
Код возврата равен 1, если изменения обнаружены, и 0, если всё чисто.
Ghost может отправлять оповещения в реальном времени в Slack, Discord или на любой HTTP-эндпоинт при обнаружении угроз. Отлично подходит для интеграции с SOC или для уведомлений на телефон.