eCapture — перехват зашифрованного трафика без сертификатов с помощью eBPF

21 Jun, 2026
15,315
🔱 1,619
👥 102

Когда Wireshark бессилен: введение в проблему

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

Логотип eCapture

Что такое eCapture?

eCapture — это open-source утилита, которая позволяет:

  • Перехватывать незашифрованный текст SSL/TLS-сессий (OpenSSL, BoringSSL, GnuTLS, NSPR)
  • Анализировать трафик Golang-приложений с TLS
  • Записывать выполняемые команды Bash/Zsh
  • Аудитировать SQL-запросы MySQL и PostgreSQL

При этом не требуется:

  • Устанавливать корневые сертификаты CA
  • Модифицировать исходный код приложений
  • Перезапускать сервисы

Ключевые возможности

1. Перехват TLS/SSL трафика

Три основных режима работы:

Реклама
  1. Pcap-режим — сохранение трафика в формате pcapng для анализа в Wireshark:
sudo ecapture tls -m pcap -i eth0 --pcapfile=traffic.pcapng
  1. Keylog-режим — запись мастер-ключей TLS для последующей расшифровки:
sudo ecapture tls -m keylog --keylogfile=ssl_keys.log
  1. Текстовый режим — прямой вывод расшифрованного трафика в консоль:
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

Как начать использовать

  1. Скачайте готовый бинарник из релизов
  2. Или используйте Docker-образ:
docker pull gojue/ecapture:latest
  1. Для разработчиков: проект можно собрать из исходников (инструкции в COMPILATION.md)

Ограничения

  • Требуются root-права
  • Не поддерживается Windows и macOS
  • Для Android нужен custom-билд ядра с поддержкой eBPF

Вывод: стоит ли попробовать?

eCapture — это мощный инструмент для:

  • Разработчиков, отлаживающих сетевые приложения
  • Администраторов, расследующих инциденты безопасности
  • DevOps-инженеров, мониторящих работу сервисов

Проект активно развивается (14k+ звезд на GitHub) и поддерживает современные версии криптографических библиотек. Если вы работаете с Linux/Android и вам нужен глубокий анализ трафика или команд — определенно стоит попробовать.

Официальный сайт | Репозиторий на GitHub

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.