Назад | Перейти на главную страницу

Захватить сетевой трафик одного приложения?

Я ищу модуль метода / взлома / ядра для захвата сетевого трафика PID и всех его вилок / дочерних процессов.

У меня есть приложение firefox, которое открывает некоторые веб-страницы и начинает потоковую передачу с помощью потоковой передачи Flash, WMV или любого другого протокола потоковой передачи, а также «простой» загрузки img, js и другого «статического» контента.

Я заинтересован в захвате этого трафика и, в конечном итоге, в изоляции этих потоков.

Wireshark не поддерживает захват по идентификатору процесса, но я предполагаю, что это можно обойти (и это суть моего вопроса). Очевидно, что настройка полной виртуальной машины и запуск только firefox с wirehark в ней будет работать, но меня гораздо больше устраивает облегченное решение, возможно, основанное на chroot? в сочетании с модулем владельца iptables.

Мы будем очень благодарны за идеи или полные решения.

-- РЕДАКТИРОВАТЬ:

Люди справедливо предполагают, над какой ОС я работаю: вопрос в основном касается ОС Linux, но если работоспособное решение будет найдено в Windows / OpenSolaris / MacOSX или любой другой ОС, доступной для хакеров, этот ответ будет принят.

Взгляните на цель ULOG для iptables в сочетании с модулем сопоставления владельцев. Это не совсем то, о чем вы просили, но если вы создаете пользователя специально для своего тестирования и запускаете только приложение, которое вы пытаетесь просмотреть, как этот пользователь, вы должны быть довольно близки.

ULOGD, по крайней мере, насколько я могу судить, будет писать файл с необработанными пакетами. Я сам этого не делал, поэтому не могу поручиться за это, но похоже, что он сделает то, что вы хотите.

Вы можете настроить http-прокси и настроить Firefox на его работу, а затем проанализировать это. Если вы запустите прокси-сервер через другую машину (даже виртуальную машину), которая ничего не делает, вы можете использовать Wireshark ... Я думаю, это достаточно изолирует трафик.

В идеале вы могли бы отделить трафик Firefox, добавив на свой компьютер еще один IP-адрес и заставив Firefox использовать его при открытии исходящих соединений.

Это возможно, например, с OpenSSH:

ssh -b 192.0.2.64 [...]

Но я не смог найти ни одной опции командной строки или записи настроек для этого в Firefox.

Вместо этого вы можете использовать простой (локальный) HTTP-прокси, например tinyproxy, опять же, когда прокси использует уникальный IP-адрес для исходящего трафика. tinyproxy делает это с Bind установка в tinyproxy.conf, например:

Bind 192.0.2.64

Наконец, вы можете изучить что-то более легкое, чем полноценная виртуальная машина. Ты упомянул iptables поэтому я предполагаю, что вы используете хост Linux; есть несколько решений, таких как LXC и OpenVZ это может помочь, если HTTP-проксирование вам не подходит.

Установить HTTPWatch на рабочем столе и щелкните запись перед тем, как начать просмотр.