Установка системы обнаружения попыток вторжения Bro на Ubuntu 12.04

Вступление

Система обнаружения вторжений (IDS) Bro разработана Верном Паксоном, который до сих пор руководит проектом совместно с основной командой исследователей и разработчиков Международного института информатики в Беркли, Калифорния, и Национального центра суперкомпьютерных приложений в Урбана-Шампейн, штат Иллинойс. Во время презентации Shmoocon в 2013 Лиам Рэндалл заявил, что “IDS Bro – это лишь первое большое приложение, написанное в языке сетевого программирования Bro”. Другими словами, Bro – это не совсем IDS; это, скорее, скриптовая платформа, которая предназначена для работы с сетевым трафиком.

Фреймворк Bro отличается от большинства стандартных систем обнаружения вторжений, поскольку он разрабатывался с целью обеспечить одновременно гибкий и продуктивный анализатор нескольких протоколов вне зависимости от используемых ими портов. Система Bro охватывает весь диапазон важнейших функций, а именно захват пакетов, контроль трафика, запись потока данных, отправка оповещений и написание скриптов. Кроме того, система мониторинга сетевой безопасности Bro предоставляет профессиональным пользователям комплексные журналы для анализа и изучения транзакционных данных в сети. Bro является программным обеспечением с открытым исходным кодом, его платный аналог – Broalla.

1: Обновление операционной системы

Войдя на VPS, нужно запустить следующую команду как root, чтобы обновить операционную систему:

apt-get update && apt-get upgrade

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

2: Установка зависимостей

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

apt-get install cmake make gcc g++ flex bison libpcap-dev libgeoip-dev libssl-dev python-dev zlib1g-dev libmagic-dev swig2.0

Возможно, некоторые из этих пакетов уже установлены. В таком случае команда apt-get загрузит и установит недостающие пакеты.

3: Установка LibGeoIP

Bro может использовать библиотеку GeoIP, которая уже установлена (libgeoip-dev в вышеприведенной команде). В завершение нужно установить базу данных GeoLite перед запуском Bro.

Установка базы данных GeoIPLite

wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCityv6-beta/GeoLiteCityv6.dat.gz
gunzip GeoLiteCity.dat.gz
gunzip GeoLiteCityv6.dat.gz

Затем нужно перейти к файлам базы данных в каталоге /usr/share/GeoIP/, выполнив следующие команды:

mv GeoLiteCity.dat  /usr/share/GeoIP/GeoLiteCity.dat
mv GeoLiteCityv6.dat /usr/share/GeoIP/GeoLiteCityv6.dat

Теперь нужно создать ссылку на файлы GeoLiteCit.dat, GeorLiteCityv6.dat, а также на GeoIPCity.dat и GeoIPCityv6.dat соответственно. Если при сборке Bro LibGeoIP была установлена, но соответствующие ссылки на файлы не были созданы, в /nsm/bro/logs/current/stderr.log будут выведены следующие ошибки:

1392083947.452043 Failed to open GeoIP database: /usr/share/GeoIP/GeoIPCity.dat
1392083947.452043 Fell back to GeoIP Country database
1392083947.452043 Failed to open GeoIP database: /usr/share/GeoIP/GeoIPCityv6.dat

Чтобы создать ссылки на файлы, используйте следующие команды:

1392083947.452043 Failed to open GeoIP database: /usr/share/GeoIP/GeoIPCity.dat
1392083947.452043 Fell back to GeoIP Country database
1392083947.452043 Failed to open GeoIP database: /usr/share/GeoIP/GeoIPCityv6.dat

4: Установка системы обнаружения вторжений Bro

Теперь нужно скачать систему Bro из исходного кода и установить ее. Для этого нужно загрузить tarball, а затем извлечь и запустить файлы.

Чтобы загрузить и распаковать tarball системы Bro как root, используйте:

wget http://www.bro.org/downloads/release/bro-2.2.tar.gz
tar -xvzf bro-2.2.tar.gz

Чтобы собрать приложение, нужно изменить каталоги при помощи команды ” cd bro-2.2″ и указать каталог, в который будет установлена система Bro, с помощью опции –prefix=. В приведенном ниже примере система Bro будет установлена в /nsm/bro с помощью команды ./configure –prefix=/nsm/bro. Вот полный пример настройки, сборки и установки приложения Bro:

cd bro-2.2
./configure --prefix=/nsm/bro
make
make install

Если не произошло никаких ошибок, добавьте Bro в PATH:

export PATH=/nsm/bro/bin:$PATH

Также можно внести PATH=/opt/bro2/bin:$PATH в файл ~/.profile, чтобы данные изменения оставались активными постоянно.

Настройка системы Bro

Bro – очень мощный инструмент. Для выполнения базовых действий по установке следуйте инструкциям на странице проекта.

С помощью предпочитаемого текстового редактора отредактируйте следующие 3 файла:

  • $PREFIX/etc/node.cfg => настройте сетевой интерфейс для мониторинга (интерфейс = eth0);
  • $PREFIX/etc/networks.cfg => настройте локальные сети (10.0.0.0/8 Private IP space);
  • $PREFIX/etc/broctl.cfg => измените адрес MailTo и ротацию логов.

Примечание: $PREFIX ссылается на root-каталог инсталляции Bro, то есть, на каталог, установленный командой ./configure –prefix=. Используя предыдущий пример, $PREFIX нужно заменить на /nsm/bro (то есть nsm/bro/etc/node.cfg).

Настройки файла node.cfg

Если система настроена с помощью единого интерфейса, можно открыть файл по умолчанию node.cfg, но только не для того, чтобы изменить прослушивающий сеть интерфейс. К примеру, команда ifconfig выведет примерно следующее:

root@brodemo:/nsm/bro/etc# ifconfig
eth0      Link encap:Ethernet  HWaddr 04:01:10:15:fa:01
inet addr:162.243.XXX.XXX  Bcast:162.243.XXX.XXX  Mask:255.255.255.0
inet6 addr: fe80::601:10ff:fe15:fa01/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:998663 errors:0 dropped:0 overruns:0 frame:0
TX packets:27341 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:130635788 (130.6 MB)  TX bytes:4043010 (4.0 MB)
lo        Link encap:Local Loopback
inet addr:127.0.0.1  Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING  MTU:65536  Metric:1
RX packets:2174 errors:0 dropped:0 overruns:0 frame:0
TX packets:2174 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:114442 (114.4 KB)  TX bytes:114442 (114.4 KB)

Данный вывод показывает, что в системе есть только один интерфейс (eth0); раскомментировав следующие строки, можно использовать настройки по умолчанию:

root@brodemo:~# cat /nsm/bro/etc/node.cfg
# Example BroControl node configuration.
#
# This example has a standalone node ready to go except for possibly changing
# the sniffing interface.
# This is a complete standalone configuration.  Most likely you will
# only need to change the interface.
[bro] type=standalone
host=localhost
interface=eth0
## Below is an example clustered configuration. If you use this,
## remove the [bro] node above.
#[manager] #type=manager
#host=host1
#
#[proxy-1] #type=proxy
#host=host1
#
#[worker-1] #type=worker
#host=host2
#interface=eth0
#
#[worker-2] #type=worker
#host=host3
#interface=eth0
#
#[worker-3] #type=worker
#host=host4
#interface=eth0

Настройки файла networks.cfg

Предполагается, что система была настроена при помощи одного интерфейса, как в примере выше; откройте файл networks.cfg, содержащий настройки локальных/частных сетей.

root@brodemo:~# cat /nsm/bro/etc/networks.cfg
# List of local networks in CIDR notation, optionally followed by a
# descriptive tag.
# For example, "10.0.0.0/8" or "fe80::/64" are valid prefixes.
10.0.0.0/8          Private IP space
192.168.0.0/16      Private IP space

Настройки файла broctl.cfg

Кроме других функций файл broctl.cfg содержит адрес получателя всех электронных писем, отправленных Bro и BroControl, а также интервалы ротации логов.

5: Запуск системы Bro

Теперь нужно использовать оболочку broctl, которая будет выполнять команды bro. Введите broctl как пользователь root; если путь не был задан, как было показано выше, команду можно выполнить с помощью полного пути: /nsm/bro/bin/broctl

# broctl
warning: cannot read '/nsm/bro/spool/broctl.dat' (this is ok on first run)
Welcome to BroControl 1.2
Type "help" for help.
[BroControl] >

Поскольку это новая установка, сначала нужно запустить команду install. Затем нужно запустить start с последующим статуса системы  Bro:

[BroControl] > install
warning: cannot read '/nsm/bro/spool/broctl.dat' (this is ok on first run)
creating policy directories ... done.
installing site policies ... done.
generating standalone-layout.bro ... done.
generating local-networks.bro ... done.
generating broctl-config.bro ... done.
updating nodes ... done.
[BroControl] > start
starting bro ...
[BroControl] > status
Name       Type       Host       Status        Pid    Peers  Started
bro        standalone localhost  running       15837  0      10 Feb 20:57:35
[BroControl] >

Теперь система определения вторжений Bro запущена. Чтобы получить более подробную информацию, читайте официальную документацию приложения.

Tags: , , , , , , ,

Добавить комментарий