|
|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Vadim Guchenko 2:5020/400 17 Nov 2004 07:44:40 To : All Subject : Детектор флуда -------------------------------------------------------------------------------- Hello, All! В последнее время все чаще стали появляться черви, которые, заразив компьютер клиента, начинают сканировать различные адреса Интернета в поисках известных дыр. Hапример, открытые по TCP 139-е и 445-е порты. А некоторые черви еще и пингуют хосты предварительно, чтобы убедиться, что они рабочие. И все бы ничего, если бы не огромный поток таких пакетов с одного зараженного клиента, исходящий в сторону аплинка Интернета, и если бы не большое количество самих зараженных клиентов. В итоге pps складывается и становится такой, что маршрутизаторы у аплинка загибаются. А учитывая, что черви прекрасно распространяются по сети сами, очень трудно оперативно излечивать десятки одних клиентов, в то время как заражаются десятки других. Поэтому назрела необходимость в некой программе - детекторе флуда, которая бы в режиме реального времени обнаруживала исходящий флуд-трафик с определенных адресов внутри сети и автоматически закрывала бы им доступ к сети и Интернету на файрволе сервера доступа на несколько минут. В течение этих минут 80-й порт будет редиректиться на внутренний сайт с сообщением о том, почему был закрыт доступ клиента к сети и что можно предпринять для устранения источника флуда. Все это время детектор флуда будет продолжать анализировать приходящие от клиентов пакеты и если он заметит, что флуд с зафильтрованного адреса прекратился, после некоторой паузы автоматически уберет поставленный на файрволе фильтр. При подключении/отключении клиентов программа отсылала бы сообщение на почтовый ящик администратора. Таким образом, такая программа сама следила бы за нагрузкой в сети, не позволяя флудерам забить пропускную способность маршрутизаторов, и с другой стороны стимулировала бы клиентов как можно скорее излечиваться от вирусов. Есть ли что-нибудь готовое? В портах я нашел только snort, но он ориентирован в первую очередь на защиту внутренней сети от отак извне, а мне нужно наоборот. Если нет, то придется писать самому. Редиректы на веб-сервер, отключение/подключение, отсылка уведомлений делается легко скриптами. Основная сложность заключается в детектировании флуда, чтобы записать это событие в лог. Как отличить флуд от нормального трафика? Если привязываться только к pps, то ведь он может быть для каждого клиента различным. Если адрес принадлежит частному лицу, то нормальный исходящий pps у него будет небольшой, а если организации, у которой десятки компьютеров за натом, то очевидно pps будет на порядок больше. Hо в случае флуда он будет еще на порядок больше. Если для каждого ip-адреса где-нибудь в биллинге указывать свой максимальный pps, то трудно будет следить, чтобы не было ложных срабатываний и в то же время, чтобы pps был достаточно низким. С другой стороны придется все время увеличивать pps для клиентов, являющихся субпровайдерами, т.к. их трафик и соответственно pps обычно растет со временем. Т.е. хочется, чтобы алгоритм определения флуда был адаптивным. Также же не хочется анализировать отдельно взятые протоколы icmp, tcp, udp и привязываться к конкретным портам, т.к. флуд в общем случае может быть по любому протоколу IP. Возможно стоит вычислять разницу между pps входящего трафика и pps исходящего и определять флуд на основании большой разницы? Либо по количеству пакетов, которые были отправлены на какие-то адреса, и с которых не пришли ответы. Еще можно смотреть на размер пакетов - если идет куча мелких пакетов, то это явно ненормальная ситуация. Есть какие-нибудь идеи какой алгоритм лучше применить? With best regards, Vadim Guchenko. E-mail: s0lver@kraslan.ru -- Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru --- ifmail v.2.15dev5.3 * Origin: Talk.Mail.Ru (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/6488e2091567.html, оценка из 5, голосов 10
|