Обнаружение скрытого трафика
Рабочая машина находится за другой которая служит шлюзом. Для контроля трафика на обоих машинах устанавливается прокси-сервер, например Squid, и логи сохраняются в базе данных. Следовательно логи трафика на рабочей машине и шлюзе должны быть идентичны, с точностью до долей микросекунд затрачиваемых на взаимодействие этих двух машин. Для сравнения на каждой машине для одного и того же временного интервала составляется таблица из записей
сайт размер-входящего-трафика размер-исходящего-трафика
В cron на обоих машинах добавляется задание на формирование таблиц и сравнение с определённой периодичностью (например раз в 5 минут). Если различие не обнаружено, то скрытого трафика нет. При появлении различий немедленно сообщается (xmessage). Операционные системы должны быть разными на рабочей машине (Linux) и шлюзе (OpenBSD), чтобы затруднить получение удалённого доступа. В этом случае чтобы скрыть вторжение нужно успеть скомпрометировать сразу обе системы за интервал времени между проверками трафика.
Какие недостатки у такого способа? Или возможно есть стандартные средства.
Кроме того, не ясно, что есть "скрытый трафик"? Траифк к нежелательным сайтам? Как вы его определите? Вполне допускаю, что большая часть нежелательного трафика спокойно пройдёт через обе прокси, и вы при этом ничего не заметите. Или вы хотите искуственный интеллект для разгребания логов squid и определения того, благонадёжны ли были соединения с инетом? Да и вообще, сравнивать размер трафика в таком гипотетическом подходе точно неразумно – надо какие-то хэши брать от скачанных страниц.
То, что делают обычно (стандартная проедура) – поднимают на сервере прокси со своими правилами и логами (можно в чрут посадить, файерволл затянуть, как-то обезопасить и т.д.), после чего разрешают коннект хостов с инетом только через прокси.
комментариев: 9 документов: 5 редакций: 0
Модель угрозы – троян мониторящий пользовательскую активность или руткит на рабочей машине. Речь идёт о домашнем ПК. И тому и другому необходим трафик. Насколько мне известно, такое ПО как правило функционирует на уровне ядра и его не видит файрвол, а прокси-сервер тем более. Если ситема на рабочей машине взломана, то в логах прозрачного прокси на шлюзе скрытый трафик всё равно должен осесть. Можно конечно ловить его файрволом на шлюзе, но обрабатывать статистику прокси-сервера проще. Файрвол имеет дело с пакетами, а прокси-сервер с HTTP-сообщениями, т.е. цельными сущностями которые легче идентифицировать. Предполагается что весь TCP-трафик (www, почта и т.д.) идёт через прокси на обоих машинах, другим приложениям выход в сеть запрещён по UID. Остаётся только вопрос с UDP-трафиком (можно всё пустить через SOCKS-сервер, то тогда адреса серверов назначения будут различаться на разных машинах). Предположим что вопрос о защите прокси на шлюзе не стоит. Например, можно вывести через VPN весь трафик за пределы досягаемости злоумышленников. Файрвол на шлюзе разрешает соединяться через eth0 интерфейс только с удалённым VPN-сервером, прокси работает на ppp0 интерфейсе. Т.е. сетевой интерфейс прокси закрыт от злоумышленников (предположим что они не имеют доступа к администрированию удалённого оборудования).
Искусственный интеллект при анализе трафика конечно желателен, но можно и без него обойтись. Если вырезать рекламу и фильтровать страницы каждого сайта так чтобы не загружались изображения с других сайтов, то список сайтов получается вполне обозримым. Тем более что ежедневно посещаются как правило одни и те же сайты. Регулярные соединения с неизвестными серверами скорее всего обнаружатся почти наверняка.
Примерно понятно. В принципе мне кажется ваша модель рабочей, так можно было бы детектить трафик и от "бирусов" на ПК. На серверах аналогом такого подхода является периодический дамп логов на удалённый сервер, что часто позволяет постфактум понять картину происшедшего.