Jump to content
Калькуляторы

Простенькая утилитка для поиска аномалий Наваял, попробуйте, найдет ли чего у вас?

Из любопытства написал, утилитка, примитивная до невозможности, но помогает находить ассимметрию и всякие гадости. Если есть смысл - можно доработать и сделать умнее

К примеру у меня она нашла один вяленький DDoS, и одного "спутникоеда".

Как работает? Смотрит, если пакеты уходят на ip, добавляет этот адрес в хеш, и если ответы на этот адрес пришли - помечает.

Если же пакеты на этот адрес уходят, а ответов нет, при превышении кол-ва пакетов более n - выведет ip адрес на экран и обнулит статистику.

 

Запуск прост

интерфейс, pcap правило, и количество пакетов на которые срабатывать

./blockdetect -d eth1.194 -f "not net 82.X.X.0/24" -n 1000

 

Надолго не запускать, очистки мусора нет, потому скорее всего через полчаса она сожрет всю память, если у вас много траффика :)

Исходники на http://www.nuclearcat.com/block_detect_test.tgz

 

P.S. я ее цеплял у себя на миррор порт своего аплинка

Share this post


Link to post
Share on other sites

P.S. я ее цеплял у себя на миррор порт своего аплинка

Круто, когда можно отмиррорить аплинк на комп. Достаточно часто это сделать нереально.

 

Не задумывались над задачей анализа NetFlow для этих целей? IMHO менее затратное решение.

Share this post


Link to post
Share on other sites

nuclearcat, а у вас специально сделано, что если придет хотя бы один ответный пакет, то адрес навсегда оказывается в "белом листе", даже если ответные пакеты больше не приходят?

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

nuclearcat Хелп ми

In file included from blockdetect.c:14:
/usr/include/netinet/ip.h:69: error: field 'ip_src' has incomplete type
/usr/include/netinet/ip.h:69: error: field 'ip_dst' has incomplete type
/usr/include/netinet/ip.h:155: error: field 'ipt_addr' has incomplete type
/usr/include/netinet/ip.h:190: error: field 'ippseudo_src' has incomplete type
/usr/include/netinet/ip.h:191: error: field 'ippseudo_dst' has incomplete type
blockdetect.c: In function 'tor_cb':

FreeBSD 8.2

Share this post


Link to post
Share on other sites

Dimic, поставьте "#include <netinet/in.h>" перед "#include <netinet/ip.h>". Но только вам это не поможет :) Эти ошибки исчезнут, но будут другие. В FreeBSD несколько другое API, надо частично переделать код.

 

Попробовал эту утилиту. Отзеркалил трафик с одного браса(аплинк мне без вариантов не удастся отзеркалить). Основная отлавливаемая категория трафика - пакеты на ip адреса, которые в данный момент не привязаны к pppoe-сессиям на брасе, судя по всему эти ip прописаны где-то в торрентах или тому подобном. Также время от времени кто-то подставляет мои IP при сканировании портов - на один мой случайный IP много syn/ack и fin/ack приходит. Также поймал одного своего флудера. Также есть довольно приличное количество пакетов на серые сети, в особенности на адрес 192.168.1.2, видимо у клиентов маршруты неправильно встали при подключении pppoe. И еще почему-то много запросов на 80-й порт адреса 111.111.111.111 от самых разных моих клиентов, что бы это значило? В общем, для экспресс-мониторинга вещь годная если дальше развивать. Если кому надо есть патчик для очистки памяти.

garbage_collect_patch.txt

Edited by agr

Share this post


Link to post
Share on other sites

Кстати я 111.111.111.111 тоже видел, весьма странно.

Патч применю, причешу и залью на code.google.com

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this