Личный блог Suvan`a.

Работая и играя с Linux... И что из этого иногда получается.

Производительность и создание правил Snort.

Рубрика: Безопасность -> Профилактика
Метки: |
Воскресенье, 28 августа 2011 г.
Просмотров: 11069
Подписаться на комментарии по RSS

     Если у вас быстрое интернет-соединение (более 10 Мб), при запуске Snort на брандмауэре вы не заметите особого снижения производительности. Ситуация несколько иная, если Snort запускается внутри LAN. Поскольку скорости здесь значительно выше - от 100 Мб до 1 Гб, производительность может снизиться.

     Для решения этой проблемы вам нужно использовать утилиту Barnyard Logging - ее можно взять на сайте Snort. Когда она запущена, Snort передает ей свой вывод в двоичном виде для последующей обработки, что может несколько скрасить ситуацию с производительностью.

     Если использование Barnyard Logging особых результатов не дало, можно использовать модифицированную версию libpcap (http://public.lanl.gov/cpw/). Данная версия использует разделяемую память, в результате чего больше не нужно копировать данные из памяти ядра в пользовательскую память. Благодаря этому повышается производительность.


     Протоколирование

     В каталоге /var/log/snort содержатся подробности всех обнаруженных попыток вторжения. В качестве имен каталогов используются IP-адреса атакующих компьютеров.

     Также есть один общий файл alert:

# ls -lR

total 8

drwx-- 2 root root 4096 Sep 21 20:24 192.168.10.1

-rw-~ 1 root root 1359 Sep 21 20:24 alert

./192.168.10.1:

total 12

-rw- 1 root root 240 Sep 21 20:21 ICMP_ECHO

-rw- 1 root root 271 Sep 21 20:24 TCP:49150-161

-rw-- 1 root root 268 Sep 21 20:24 TCP:49150-162

     Файл alert содержит подробности каждого предупреждения независимо от IP-адреса. В следующем листинге мы видим три предупреждения: первое - ICMP PING, вызванное сканированием Nmap, второе и третье - результат SNMP-запросов. Также приводятся URL, где можно прочитать более подробно о предупреждении такого рода:

# cat alert

[**] [1:469:3] ICMP PING NMAP [**]

[Classification: Attempted Information Leak] [Priority: 2]

09/21-20:21:14.413370 192.168.10.1 -> 192.168.10.10

ICMP TTL:38 TOS:0x0 ID:22509 IpLen:20 DgmLen:28

Type:8 Code:0 ID:15324 Seq:0 ECHO

[Xref => <http://www.whitehats.com/info/IDS162>]

[**] [1:1420:11] SNMP trap tcp [**]

[Classification: Attempted Information Leak] [Priority: 2] 09/21-20:24:28.815348 192.168.10.1:49150 -> 192.168.10.10:162 ICMP TTL:48 TOS:0x0 19:51125 IpLen:20 DgmLen:40 ******s* Seq. 0xE398428C Ack: 0x0 Win: 0x400 TcpLen: 20

[Xref => <http://eve.mitre.org/cgi-bin/cvename.cgi?name=2002-0013>]

[Xref => http://eve.mitre.org/cgi-bin/cvename.cgi?name=2002-0012]

[Xref => <http://www.securityfocus.com/bid/4132>]

[Xref => <http://www.securityfocus.com/bid/4089>]

[Xref => <http://www.securityfocus.com/bid/4088>]

[**] [1:1418:11] SNMP request tcp [**]

[Classification: Attempted Information Leak] [Priority: 2] 09/21-20:24:29.821559 192.168.10.1:49150 -> 192.168.10.10:161 ICMP TTL:48 TOS:0x0 ID:19807 IpLen:20 DgmLen:40

     Создание правил

     Мы упомянули, что файл конфигурации Snort содержит четвертую часть Ruleset customization. В этой части находится серия директив Include, контролирующих, какие виды атак нужно определять. Кроме этого, Snort предоставляет очень гибкий синтаксис для описания сигнатур атак, которых нет в базе Snort.

     Правила состоят из двух частей: заголовка и опций. Заголовок определяет тип трафика, к которому должно применяться правило (например, все попытки входящих соединений к RPC-серверу portmapper). Заголовок правила описывает лишь заголовок пакета (например, адреса отправителя/получателя и порты отправителя/получателя) - содержимое пакета можно проверить с помощью опций правил.

     Следующий пример генерирует предупреждение, если пакет содержит шестнадцатеричную строку 00 01 86 A5 в поле данных и прибывает из любой сети для компьютера 192.168.0.7:

alert tcp any any -> 192.168.0.7 any (content:" 00 01 86 a5|", msg: "mountd access" ; )

     Если содержимое пакета не заключено в символы , то считается, что указан простой текст, а не шестнадцатеричные значения. Следующее правило генерирует предупреждение, если строка Login incorrect послана с машины локальной сети, на которой запущен Telnet, в Интернет:

alert tcp $TELNET_SERVERS 23 -> $EXTERNAL_NET any (msg:"TELNET login incorrect"; flow:from_server,established; content:"Login incorrect"; reference:arachnids,127; classtype:bad-unknown; sid:718" rev:?;)

     Чтобы использовать это правило, вам нужно определить список Telnet-серверов вашей сети (STELNET SERVERS) и задать IP-адрес внешней сети (SEXTERNAL NET): данные переменные должны быть определены в самом начале конфигурационного файла Snort.

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

Оставьте комментарий!

Не регистрировать/аноним

Используйте нормальные имена.

Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email.
(При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д.)



(обязательно)