eCapture — перехват зашифрованного трафика без сертификатов с помощью eBPF
Когда Wireshark бессилен: введение в проблему
Представьте ситуацию: вам нужно проанализировать HTTPS-трафик приложения, но у вас нет корневого сертификата для расшифровки. Или требуется аудит команд в Bash на сервере без модификации системных файлов. Именно такие задачи решает eCapture — инструмент, использующий технологию eBPF для безопасного и эффективного мониторинга.

Что такое eCapture?
eCapture — это open-source утилита, которая позволяет:
- Перехватывать незашифрованный текст SSL/TLS-сессий (OpenSSL, BoringSSL, GnuTLS, NSPR)
- Анализировать трафик Golang-приложений с TLS
- Записывать выполняемые команды Bash/Zsh
- Аудитировать SQL-запросы MySQL и PostgreSQL
При этом не требуется:
- Устанавливать корневые сертификаты CA
- Модифицировать исходный код приложений
- Перезапускать сервисы
Ключевые возможности
1. Перехват TLS/SSL трафика
Три основных режима работы:
- Pcap-режим — сохранение трафика в формате pcapng для анализа в Wireshark:
sudo ecapture tls -m pcap -i eth0 --pcapfile=traffic.pcapng
- Keylog-режим — запись мастер-ключей TLS для последующей расшифровки:
sudo ecapture tls -m keylog --keylogfile=ssl_keys.log
- Текстовый режим — прямой вывод расшифрованного трафика в консоль:
sudo ecapture tls -m text
2. Анализ Golang-приложений
Для приложений на Go, использующих crypto/tls:
sudo ecapture gotls --elfpath=/path/to/golang_binary
3. Аудит командной строки
Запись выполняемых команд в Bash/Zsh:
sudo ecapture bash
Технические детали
Под капотом eCapture
Проект использует технологию eBPF (extended Berkeley Packet Filter), которая позволяет безопасно выполнять код в ядре Linux без риска его повреждения. Основные компоненты:
- Uprobes — для перехвата вызовов функций в пользовательском пространстве
- TC (Traffic Control) — для работы с сетевым трафиком
- Perf Events — для эффективной передачи данных из ядра в пользовательское пространство
Поддерживаемые платформы
- Linux x86_64 (ядро 4.18+)
- Linux ARM64 (ядро 5.5+)
- Android (требуются root-права)
Практическое применение
Сценарий 1: Отладка HTTPS-сервисов
Когда стандартные методы отладки не работают, eCapture позволяет увидеть фактический HTTP-трафик, включая заголовки и тела запросов/ответов.
Сценарий 2: Расследование инцидентов
Аудит командной строки помогает выявить подозрительную активность на серверах без модификации системных журналов.
Сценарий 3: Анализ производительности
Запись SQL-запросов в реальном времени без необходимости включения логов в СУБД:
sudo ecapture mysqld
Как начать использовать
- Скачайте готовый бинарник из релизов
- Или используйте Docker-образ:
docker pull gojue/ecapture:latest
- Для разработчиков: проект можно собрать из исходников (инструкции в COMPILATION.md)
Ограничения
- Требуются root-права
- Не поддерживается Windows и macOS
- Для Android нужен custom-билд ядра с поддержкой eBPF
Вывод: стоит ли попробовать?
eCapture — это мощный инструмент для:
- Разработчиков, отлаживающих сетевые приложения
- Администраторов, расследующих инциденты безопасности
- DevOps-инженеров, мониторящих работу сервисов
Проект активно развивается (14k+ звезд на GitHub) и поддерживает современные версии криптографических библиотек. Если вы работаете с Linux/Android и вам нужен глубокий анализ трафика или команд — определенно стоит попробовать.
