Здравствуйте, Rostov, Вы писали:
R>Каждый сеанс TCP или UDP с определенного IP — адреса, оценивать числом:
R>sess_id = Func(TTL, длительность сеанса, объем получ, объем переданной инф, текущего времени,и т.п)
R>Это вариант, для анализа сессий с определенных IP. Вопрос по этому направлению — непосредственно составление функции.
R>Теперь для общего случая. Подомным образом нужно анализировать трафик, поступаемый на наш компьютер (это и количество незакрытых сессиий и еще что-то подобное). С сигнатурами, связываться непосоветовали, т.к. уж слишком их много, и за появлением новых вирусов не уследишь.
Хмм, я чуть занималась похожей темой, сразу настройтесь на то, что у вас не будет четкого порога аномальности траффика, придется его устанавливать арбитрарно и почти "от балды". И в зависимости от установленного порога количество и качественные характеристики аномального траффика будут очень сильно меняться. И еще — данный порог нужно устанавливать все-таки экспериментально, симуляторы дадут вам значения, очень далекие от реальности.
Т.е. в Вашем случае я бы действовала примерно так:
1. Попыталась бы раздобыть traffic dumps с реальной сети. Посмотрела бы на них с помощью существующих IDS (хотя бы используя тот же Snort, на который Вам указали выше), tcpdump/Ethereal ну или чего Вам нравится, чтобы иметь приблизительное представление об аномальности траффика. Если вы пишете диплом для универа, в принципе симулятор какой-нибудь сгодится чтобы изготовить такой dump.
2. Подумала бы какие величины я бы хотела включить в данную функцию. Вроде я где-то видела статьи о распределении трафика по величине трансфера/длительности/другим параметрам, погуглите на эту тему. Имхо, хорошо было бы определиться какие параметры Вы точно хотите использовать (например, протокол, процент успешных соединений с данного IP), а какие можно и опустить, если они не будут улучшать модель.
3. Посмотрела бы какие параметры для функции работают для данного traffic dump. Это, конечно, много экспериментов, подгонки и т.д.
Кстати, разделите свой traffic dump на две части — одну для тренировки своей модели, другую для предсказания аномальности. Тогда Ваша модель/функция будет работать на второй части. Если Вы попытаетесь тестировать свою функцию на каком-то несвязанном dump, учтите что скорее всего ничего работать не будет, по крайней мере наладить все это будет гораздо сложнее. Но это скорее совет из серии как лучше написать диплом, а не как делать original research