LINUX.ORG.RU

tinyids


0

0

Здравствуйте, ув. граждане.

Начал я заниматься разработкой своей IDS (intrusion detection system,
система обнаружения вторжений). Основные особенности:

 * использование потоков -- на каждую функцию анализа пакета по потоку;
 * пакеты ловятся с помощью libpcap;
 * все пишется на C (с yacc).

Основные цели:

 * малое потребление ресурсов;
 * безопасность (chroot, privsep);
 * эффективная система анализа пакетов.

Работа началась недавно. Все, кто заинтересовался прошу высказаться.

Мой email есть в профиле.

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

nobody ★★
()
Ответ на: комментарий от nobody

> Че-то я не понял, ты вторжения собираешься ловить только с помощью
> анализа пакетов?

Не поймите меня неправильно, nobody, но помоему Вы плохо себе
представляете работу IDS. Как еще я могу пакеты ловить?

> Если так, то не упаришься ли?

Нет. Есть pcap фильтры. Не всегда надо _весь_ траффик слушать. В
основном -- если у Вас скажем открыты 21/tcp, 80/tcp, а остальное
закрыто, и разрешены icmp, то и траффик слушать надо имеено этот.
В другом ничего особо интересного нет. Примерно так.

> А если не только, то какие еще механизмы предполагается заюзать?

Есть конкретные мысли? Я не думал над этим...

> И потом, libpcap не покатит, если у тебя работает NAT.

В каком смысле не покатит? Что Вы конкретно хотели сказать?

signal11
() автор топика
Ответ на: комментарий от signal11

>> А если не только, то какие еще механизмы предполагается заюзать?

> Есть конкретные мысли? Я не думал над этим...

Вообще-то в моем понимании "система обнаружения вторжений" не является синонимом "система обнаружения факта атаки в момент атаки". Первое включает в себя обнаружение не только атаки в момент ее проведения, но и самого факта "система успешно взломана". То есть не только анализ пакетов, но и проверку файлов, процессов и портов.

Например. Сетевой сервис, в общем случае, либо не создает процессы, либо в контексте созданных процессов запускает только заранее известный набор программ. Если мы видим процесс, родителем которого является наш сетевой сервис, и этот процесс выполняет программу, которая не нужна сетевому сервису, значит фиксируем факт: сервис взломан.

Второй пример. PID'ы сетевых сервисов нам известны (/var/run/*.pid). Если с pid'ом сервиса выполняется какая-то другая программа, значит сервис был поломан.

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

Почему я считаю это нужным. Сервисы бывают дырявыми. Если некто воспользуется дырой раньше, чем админ ее пропатчит, система может быть взломана, даже невзирая на chroot и suid дырявого сервиса, потому что в ядрах есть локальные уязвимости. Подымаем права до root, перенастраиваем iptables, открываем порты...

>> И потом, libpcap не покатит, если у тебя работает NAT.

> В каком смысле не покатит? Что Вы конкретно хотели сказать?

Ну тебе ведь нужно иметь возможность узнать, откуда и куда идет пакет: на линуксовый сервер (он же шлюз + файрвол), или на какую-нибудь винду в локалке? Так вот, если у тебя работает NAT, ты этого не узнаешь средствами libpcap, потому что она вешается на интерфейс.

Но вообще-то я не знаю, может тебе оно и не надо (хотя и непонятно, как ты тогда будешь анализ пакетов делать)? А если надо, значит надо собирать пакеты с уровня iptables.

ЗЫ: если я сюда не в тему влез, и ты под "системой обнаружения вторжений" понимаешь нечто иное (например, "анализатор трафика"), -- приношу извинения.

nobody ★★
()
Ответ на: комментарий от nobody

> Вообще-то в моем понимании "система обнаружения вторжений" не
> является синонимом "система обнаружения факта атаки в момент атаки"

Это оно. ``Realtime network traffic analyser'' я бы сказал...

> То есть не только анализ пакетов

Предполагается строить IDS, как раз предназначенную для эффективного
анализа сетевого траффика.

> но и проверку файлов, процессов и портов.

Этого полно: tripwire, scanlogd, nessus... Мы же не Microsoft писать
одну тулзу на все случаи жизни... ;)

> Если некто воспользуется дырой раньше

Если мы говорим об удаленном взломе, то как раз целью IDS является
информирование о таких событиях. Но взломы бывают разные. Например


> Ну тебе ведь нужно иметь возможность узнать, откуда и куда идет
> пакет

Естественно. Но только в случае NAT, транслируется, как правило,
только private адрес (т.е. машины в lan), но не тот, с кем у Вас
соединение... Попробуйте tcpdump'ом за NAT'ом посмотрите ftp сессию
с каким-нибудь ftp сервером в интернет и все поймете....

А если Вы про то, что атакующий находится за NAT, то в этом случае
Вы можете связаться с администрацией ISP и т.д.... Мы ведь не
первобытные люди.

> и ты под "системой обнаружения вторжений" понимаешь нечто иное
> (например, "анализатор трафика")

Не только я но и www.giac.org и www.snort.org и многие другие...

Так что может задумаетесь о присоединении к команде разработчиков
сего чуда?

signal11
() автор топика
Ответ на: комментарий от signal11

> Но взломы бывают разные. Например

Недописал... ж)

Я хотел сказать, что взломы бывают разные, например ACK-сканирование 
на предмет изучения топологии сети или smurf атака.

Не всегда целью является сервис. Бывает иначе. Вобщем стоит прочитать
книжку по Intrusion Detection....

signal11
() автор топика
Ответ на: комментарий от signal11

Так я таки не понял - оно будет host based или network based ?

И цель какая ? Просто написать что то _свое_ на тему IDS (пусть и сильно урезанное судя по названию ;)) или есть какие то фишечки чего нет в остальных ?

А вообще если речь пошла о книжечках держи навскидку ссылку на FAQ http://www.sans.org/resources/idfaq/

sS ★★★★★
()
Ответ на: комментарий от sS

> Так я таки не понял - оно будет host based или network based ?

Сетевой. (нахрена итам pcap иначе?)

> И цель какая ?

Эффективность и безопасность. Теперь об этом можно почитать здесь:
http://openbsd.hnet.spb.ru/tinyids.html (пока наметки)

> или есть какие то фишечки чего нет в остальных?

Остальные это snort? Со снортом тягаться не будем, но вот что
предполагается:

 * поддержка состояния TCP
 * реассемблирование фрагментов TCP
 * поддержка antispoofing'а, возможно методом ICMP триангуляции
   (см. despoof)
 * возможно, использование p0f
 * поддержка IPv6

Всем интересующимся стоит посмотреть на libnids. Но мы ее использовать
не будем, потому что она ограниченая, GPL'ная и насколько мне известно
не поддерживает IPv6.

> http://www.sans.org/resources/idfaq/

Несмотря в этот документ, уверен, что SANS рекомендует книжки
Стивенса и Нортката, которые и я рекомендую всем, кого эта тема
интересует...

PS. Присоединяйтесь!

signal11
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.