Главная · Dns · Практика использования IDS SNORT. Snort: инструмент выявления сетевых атак Написание бесконтекстных правил

Практика использования IDS SNORT. Snort: инструмент выявления сетевых атак Написание бесконтекстных правил

Система обнаружения вторжения для Чайников. Установка и Конфигурирование SNORT.

Alexander Antipov


Snort – облегченная система обнаружения вторжения. Snort обычно называют “обгегченным” NIDS, - потому что это он разработан прежде всего для маленьких сетей. Программа может исполнять анализ протокола и может использоваться, чтобы обнаружить разнообразные нападения и исследовать проблемы, типа переполнения буфера, скрытых просмотров порта, CGI нападения, попыток определения OS и т.п. Snort использует "правила" (указанные в файлах "правила"), чтобы знать какой трафик пропустить а какой задержать. Инструмент гибок, позволяя вам записывать новые правила и соблюдать их. Программа также имеет " механизм обнаружения ", который использует модульную сменную архитектуру, посредством чего определенные дополнения к программе могут быть добавлены или удалены из " механизма обнаружения".

Snort может работать в трех режимах:
1. Как пакетный снифер, подобно tcpdump
2. Как регистратор пакета
3. Как развитая система обнаружения вторжения
В этой статье мы подробно расскажем о инсталляции Snort, его архитектуре, научимся создавать правила и управлять ими.

Платформа:
Linux 2.2.* ,
Snort 1.7(http://www.snort.org/)
Sparc: SunOS 4.1.x, Solaris, Linux, and OpenBSD
x86: Linux, OpenBSD, FreeBSD, NetBSD, and Solaris
M68k/PPC: Linux, OpenBSD, NetBSD, Mac OS X Server

Требования:
Tcpdump (www.tcpdump.org)
Libpcap (Snort основан на библиотеке libpcap, обычно используемой в большинстве TCP/IP сниферов и анализаторов) – скачать можно отсюда:

В статье будет рассмотрен пример реализации системы IDS на базе OS Debian и Snort для мониторинга внутреннего сетевого периметра, включающей подсистемы:
— сервис обнаружения вторжений Snort ;
— сервер БД MySQL для хранения записей событий атак, полученный от Snort;
— интерфейс анализа, обработки и визуализации событий Snort (nginx, php5-fpm, BASE).

Установка и первичная настройка

Оптимизация сетевых интерфейсов

Произведем оптимизацию сетевых интерфейсов с помощю утилиты ethtool. Во избежании сбоев в работе сетевого интерфейса при больших нагрузках отключим функции снижения нагрузки на ЦП:

# apt-get install ethtool
# nano /etc/rc.local

Ethtool --offload eth1 rx off tx off ethtool -K eth1 gso off ethtool -K eth1 gro off ...

где «—offload eth1 rx off tx off» — отключение определения checksum для входящих и исходящих пакетов; а «gso (generic segmentation offload) off» и «gro (generic receive offload) off» — отключение функции передачи и приема пакета без участия ЦП.

Подготовка БД

Вся информация об атаках, зафиксированных Snort, будет храниться в БД MySQL. Произведем ее первичную настройку:

# mysql -u"root" -h"MYSQL_SERVER_IP" -p"ROOT_PASSWORD"

Mysql> create database snort; mysql> grant CREATE, INSERT, SELECT, DELETE, UPDATE on snort.* to snort@"SNORT_SERVER_IP_ADDRESS"; mysql> SET PASSWORD FOR snort@"SNORT_SERVER_IP_ADDRESS"=PASSWORD("SNORT_USER_PASSWORD"); mysql> exit;

Установка Snort

После первичной настройки БД приступим к установке Snort с поддержкой MySQL:

# apt-get install snort-mysql

В процессе установки необходимо указать режим запуска Snort (по-умолчанию «boot»), а также интерфейсы и сетевые адреса внутренней сети. В случае необходимости можно указать несколько интерфейсов или адресов через пробел. Например:

Eth1 eth2 eth3 192.168.1.0/24 192.168.2.0/24 192.168.3.1/32

Активируем режим «promiscuous mode», позволяя Snort просматривать содержимое пакетов, проходящих через интерфейсы, а также указываем параметры подключения к БД.

Создадим структуру БД Snort:

# cd /usr/share/doc/snort-mysql
# zcat create_mysql.gz | mysql -u"snort" -h"MYSQL_SERVER_IP" -p"SNORT_USER_PASSWORD" snort

В завершении работ удалим файл:

# rm /etc/snort/db-pending-config

и приступим к настройке веб-интерфейса.

Настройка веб-сервера

Используем связку nginx и php5-fpm в качестве веб-окружения. Для построения графиков также потребуется компонет php5-gd.

# apt-get install nginx-light php5-fpm libphp-adodb php5-gd php-pear
# pear install --alldeps Image_Canvas channel://pear.php.net/Image_Canvas-0.3.5
# pear install --alldeps Image_Graph channel://pear.php.net/Image_Graph-0.8.0

Установим в настройках php5-fpm TIMEZONE:

# nano /etc/php5/fpm/php.ini

Date.timezone = Europe/Moscow

а также заменим строку:

Error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT

Error_reporting = E_ALL & ~E_NOTICE

Произведем настройку vhost:

# cd /etc/nginx/sites-enabled
# mv default snort
# nano snort

Server { listen 8080; server_name snort; root /var/www/snort-base; index index.php; location @rewrite { rewrite ^/(.*)$ /index.php?_url=/$1; } location ~ \.php$ { fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include /etc/nginx/fastcgi_params; } }

Визуализация атак с использование BASE

Для визуализации детектированных атак установим BASE (Basic Analysis and Security Engine):

# wget http://sourceforge.net/projects/secureideas/files/BASE/base-1.4.5/base-1.4.5.tar.gz -qO- | tar xvzpf - -C /var/www/ && mv /var/www/base-1.4.5 /var/www/snort-base
# chmod -R 0770 /var/www/snort-base && chown -hR www-data:www-data /var/www/snort-base

Перезапустим веб-сервисы:

# /etc/init.d/php5-fpm restart
# /etc/init.d/nginx restart

Подключимся к BASE и произведем первичную инициализацию:

    Path to adodb: /usr/share/php/adodb;
    Укажем параметры подключения к БД Snort;
    Установим пользователя для авторизации в BASE;
    Процесс настройки BASE завершается созданием таблицы BASE AG — «Create BASE AG» и переходом по ссылке ‘step 5’.

Запустим snort:

# service snort start

Теперь зафиксированные Snort’ом атаки будут сохраняться в БД и доступны через веб-интерфейс BASE.

На этом процесс установки и первичной настройки системы можно считать завершенным.

Расширенная настройка Snort

Начну с цитаты: «Основная проблема информационной безопасности, как правило, связана не с наличием систем обеспечения ИБ, а с обработкой и анализом результатов их работы». Попробуем разобраться с тем, как и по каким критериям Snort генерирует события и оптимизировать их вывод и обработку, исключив все лишнее.

Конфигурационные файлы Snort расположены в каталоге /etc/snort. Информация об интерфейсах, которые «слушает» Snort, а также данные о сетевой адресации, указанные при устаноквки утилиты, хранятся в файле snort.debian.conf. Данные для подключения в БД — в файле database.conf. Информация о правилах Snort — в файле snort.conf. Рассмотрим его подробнее.

snort.conf

Конфигурационный файл состоит из секций:

    1) Set the network variables
    2) Configure the decoder
    3) Configure the base detection engine
    4) Configure dynamic loaded libraries
    5) Configure preprocessors
    6) Configure output plugins
    7) Customize your rule set
    8) Customize preprocessor and decoder rule set
    9) Customize shared object rule set

Рассмотрим основные секции.

1. Сетевые установки и переменные
В данной категории можно указать, к примеру, сетевые адреса внутренней и внешней сети, сервисы, используемые в нашей сети, а также групировать такие сервисы или хосты, облегчая последующий парсинг событий.

Кроме этого, в секции указаны пути расположения каталога правил Snort, а также White- и Black- листов. К этому мы вернемся чуть позже.

Var RULE_PATH /etc/snort/rules ... var WHITE_LIST_PATH /etc/snort/rules var BLACK_LIST_PATH /etc/snort/rules

2. Декодеры
Одним из первых процессов, которые выполняет Snort над пакетом — обработка декодерами, задачей которых является определение базового протокола в пакете (ETHERNET, IP, TCP и т.д.), однако содержимое пакета не обрабатывается, а передается для последующей обработки preprocessor’ам и detection engines.

Пример. Исключим из декодера пакеты с неверными IP-опциями:

Config disable_ipopt_alerts

и пакеты, адресованные DNS-серверу:

Config ignore_ports: 53

3. Настройка detection engine
В работе detection engine может быть использована PCRE — Perl-совметсимая библиотека поиска по шаблону. В данном разделе можно оптимизировать параметры поиска, а также его метода.

5. Настройка preprocessors
Надо было это сообщить еще в самом начале, но сообщу сейчас — Snort может работать в 2-х режимах — inline (IPS) и promiscuous mode (IDS). В первом случае Snort может управлять проходящими через него пакетами (изменять, блокировать), во втором — только мониторить и алертовать в случае подозрительной активности. В настройках препроцессора некоторые опции работают только в режиме inline, например опция preprocessor normalize_ip4 нормализует (если можно так выразиться) пакеты — исправляет TTL, TOS и т.д. Поскольку в контексте данной статьи речь идет про IDS — то мы опустим такие опции.

Препроцессинц работает непосредственно с содержимым пакета, используя наборы правил, такие как http_inspect_server, в котором определен http-метод, порты, необходимость анализа cookie, допустимые спец.символы и прочее, также доступны профили для веб-серверов.

6. Настройка вывода
Snort имеет достаточно гибгий функционал вывода в формате syslog, unified2, prelude, tcpdump и т.д.
По умолчанию данные пишутся в формате tcpdump (pcap) в файл tcpdump.log. Закоментируем строку:

Output log_tcpdump: tcpdump.log

Не лишним будет настроить построчное логирование алертов в файл с использованием alert_fast:

Output alert_fast: snort.log 10M

Но, поскольку у нас настроено логирование в MySQL, эта секция для нас не очень актуальна.

7. Подключение\отключение правил Snort
В данной секции производится подключение и отключение правил Snort. В качестве директории размещения правил используется переменная $RULE_PATH, определенная в первой секции. Итак, мы рассмотрели конфиг, давайте попробуем разобраться с правилами.

Snort rules

Как мы поняли, правила располагаются в каталоге /etc/snort/rules. Рассмотрим на примере алерта рассылки мультикастовых запросов:

Раскрыв запись алерта, определим sid правила, сгенерировавшего алерт.

В данном случае sid равен 527. Произведем поиск правила:

# grep "sid:527" -R /etc/snort/rules/

/etc/snort/rules/bad-traffic.rules:alert ip any any -> any any (msg:"BAD-TRAFFIC same SRC/DST"; sameip; reference:bugtraq,2666; reference:cve,1999-0016; reference:url,www.cert.org/advisories/CA-1997-28.html; classtype:bad-unknown; sid:527; rev:8;

Разберем правило:

    ip — протокол;
    первые «any any» — SRCIP и SRCPort, вторые — DSTIP и DSTPort соответственно;
    "->" — указывает направление пакета, также можно использовать "";
    msg:"BAD-TRAFFIC same SRC/DST" — сообщение, геренируемое при срабатываении алерта;
    параметр sameip сообщает о том, что правило должно срабатывать в случае, если SRCIP и DSTIP идентичны;
    далее идут ссылки на внешние источники идетификации атаки;
    параметр classtype определяет классификацию атаки;
    sid — уникальный идетификатор правила;
    параметр rev указывает ревизию данного правила.

Для того, чтобы исключить из правила хост, достаточно добавить!. Исключим мультикаст адрес из правила:

Alert ip any any -> ! any (msg:"BAD-TRAFFIC same SRC/DST"; sameip; reference:bugtraq,2666; reference:cve,1999-0016; reference:url,www.cert.org/advisories/CA-1997-28.html; classtype:bad-unknown; sid:527; rev:8;

Перезапустим Snort:

# service snort restart

Рассмотрим еще один пример — попытку получить доступ к директории backup на web-сервере:

Правило имеет следующий вид:

Alert tcp $EXTERNAL_NET any ->

Добавим в исключение хосты администраторов:

Alert tcp ! $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:"WEB-MISC backup access"; flow:to_server,established; uricontent:"/backup"; nocase; classtype:attempted-recon; sid:1213; rev:5;)

Также можно указать IP-адреса администраторов в качестве переменной в snort.conf и использовать такую переменную для исключения из правил. Кроме этого, Snort использует white\black листы, в которых можно указывать IP-адреса хостов и сетей. Пример:

Preprocessor reputation: \ blacklist /etc/snort/default.blacklist whitelist /etc/snort/default.whitelist

P.S.
Станадртный набор правил Snort (community-rules) распространяется бесплатно, расширенный, содержащий наиболее актуальные сигнатуры известных атак -по платной подписке.
Подробный мануал по Snort на английском языке можно найти по ссылке .
На этом все! Если есть дополнения, замечания, с удовольствием готов обсудить в комментариях.

5 мин на чтение

Содержание

Snort является сетевой системой обнаружения (IDS) и предотвращения вторжений (IPS) с открытым исходным кодом, способная выполнять регистрацию пакетов и в реальном времени осуществлять анализ трафика в IP-сетях, комбинируя возможности сопоставления по сигнатурам, средства для инспекции протоколов и механизмы обнаружения аномалий. Snort был создан Мартином Решем в 1998-м году и очень быстро завоевал популярность, как бесплатная система обнаружения вторжений, позволяющая самостоятельно и без особых усилий писать правила для обнаружения атак. По сути язык описания сигнатур Snort стал стандартом де-факто для многих систем обнаружения вторжений, которые стали его использовать в своих движках.

Структура и функционирование Snort

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

  • Плохой трафик
  • Использование эксплойтов (выявление Shellcode)
  • Сканирование системы (порты, ОС, пользователи и т.д.)
  • Атаки на такие службы как Telnet, FTP, DNS, и т.д.
  • Атаки DoS/DDoS
  • Атаки связанные с Web серверами (cgi, php, frontpage, iss и т.д.)
  • Атаки на базы данных SQL, Oracle и т.д.
  • Атаки по протоколам SNMP, NetBios, ICMP
  • Атаки на SMTP, imap, pop2, pop3
  • Различные Backdoors
  • Web-фильтры (чаще используетя для блокировки порно контента)
  • Вирусы

Вы можете настроить Snort для работы в нескольких различных режимах - режим анализа пакетов, режим журналирования пакетов, режим обнаружения сетевых вторжений и встраиваемым (inline) режим. Snort может быть сконфигурирован для работы в этих режимах:

Режиме анализа пакетов (Sniffer mode)

Snort просто читает пакеты приходящие из сети и выводит их на экран. В этом режиме Snort действует просто как анализатор, показывая нефильтрованное содержимое среды передачи. Конечно, если вам требуется только анализатор, можно применить Tcpdump или Ethereal, однако данный режим позволяет убедиться, что все работает правильно и Snort видит пакеты.

Опции Snort:

Режиме журналирования (протоколирования) пакетов (Packet Logger mode)

Позволяет записывать пакеты на диск для последующего анализа. Это полезно при проведении анализа за определенный интервал времени или проверки изменений в настройках и политике безопасности. Чтобы запустить Snort в режиме журналирования, воспользуйтесь той же командой, что и для режима анализа (-v, -d и/или -e), но с добавлением ключа -l каталог_журналов, задающего маршрутное имя каталога журналов, в которые Snort будет записывать пакеты. Пример:

snort -vde -l /var/log/snort

Эта команда создаст файлы журналов в каталоге /var/log/snort.

Режиме обнаружения сетевых вторжений (Network Intrusion Detection System (NIDS) mode)

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

Встраиваемым режим (inline mode)

Режим работы совместно с файерволом iptables. Для того, чтобы запустить в этом режиме, необходимо добавить дополнительный ключ Q: ./snort -GDc ../etc/drop.conf -l /var/log/snort Перед запуском в этом режиме необходимо убедиться, что программа установлена с поддержкой данного режими. После этого следует настроить файервол для взаимодействия со Snort.

Архитектура Snort

Основу Snort составляет движок, состоящий из пяти модулей:

    Снифер пакетов: данный модуль отвечает за захват передаваемых по сети данных для последующей их передаче на декодер. Делает он это с помощью библиотеки DAQ (Data AcQuisition). Работать данный снифер может “в разрыв” (inline), в пассивном режиме (passive) или читать сетевые данные из заранее подготовленного файла.

    Декодер пакетов: данный модуль занимается разбором заголовков захваченных пакетов, их разбором, поиском аномалий и отклонений от RFC, анализом TCP-флагов, исключением отдельных протоколов из дальнейшего анализа и другой аналогичной работой. Фокусируется данный декодер на стеке TCP/IP.

    Препроцессоры: если декодер разбирал трафик на 2-м и 3-м уровне эталонной модели, то препроцессоры предназначены для более детального анализа и нормализации протоколов на 3-м, 4-м и 7-м уровнях. Среди самых популярных препроцессоров можно назвать frag3 (работа с фрагментированным трафиком), stream5 (реконструкция TCP-потоков), http_inspect_ (нормализация HTTP-трафика), DCE/RPC2, sfPortscan (применяется для обнаружения сканирования портов) и различные декодеры для протоколов Telnet, FTP, SMTP, SIP, SSL, SSH, IMAP и т.п. Некоторые российские разработчики пишут свои препроцессоры (например, для промышленных протоколов) и добавляют в собственные системы обнаружения вторжений (IDS), построенные на базе Snort.

    Движок обнаружения атак: данный движок состоит из двух частей. Конструктор правил собирает множество различных решающих правил (сигнатур атак) в единый набор, оптимизированный для последующего применения подсистемой инспекции захваченного и обработанного трафика в поисках тех или иных нарушений.

    Модуль вывода: по факту обнаружения атаки Snort может выдать (записать или отобразить) соответствующее сообщение в различных форматах - файл, syslog, ASCII, PCAP, Unified2 (двоичный формат для ускоренной и облегченный обработки).

Рассмотрим простое графическое представление прохождения данных через Snort:

Метки: , ,

Разделы:


Дата публикации: 21 сентября 2009г.
Перевод: С.Владимирский
Дата перевода: 2 октября 2009г.

Данное руководство описывает, как установить и настроить систему обнаружения вторжения (IDS) с пакетами Snort, ACIDBASE (основной модуль анализа и обеспечения безопасности), MySQL и Apache2 в Ubuntu 9.04 с помощью менеджера пакетов Synaptic Ubuntu. Snort поможет вам в мониторинге вашей сети и предупредит о возможных угрозах. При этом Snort сформирует файлы протоколов для базы данных MySQL, а ACIDBASE позволит отобразить их в графическом интерфейсе в веб-браузере.

1. Подготовка системы и установка программного обеспечения.

1.1 Установка.

Загрузите 32-битную или 64-битную версию Desktop Ubuntu 9.04 отсюда: http://www.ubuntu.com/getubuntu/download

1.2 Системные и сетевые настройки

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

  • Размещение в демилитаризованной зоне (DMZ).
  • Статический IP-адрес, скрытый с помощью NAT за файерволом.
  • Подключение к порту мониторинга на сетевом коммутаторе (SWITCH).

Создайте нового администратора с именем <ваше_имя> и паролем <ваш_пароль> .

1.3 Установка программного обеспечения.

Первое, что необходимо сделать после завершения установки, - установить все рекомендованные Ubuntu обновления. Для доступа к обновлениям перейдите в меню: System > Administration > Update Manager (Система > Администрирование > Менеджер обновлений). Введите свой пароль и выберите Check (Проверить) . Выберите Install Updates (Установить обновления) .

С рабочего стола перейдите в System > Administration > Synaptic Package Manager (Система > Администрирование > Менеджер пакетов Synaptic) . Введите свой пароль и выберите Search (Поиск) .

Найдите и установите следующие пакеты:

  • Acidbase со всеми зависимыми пакетами
  • Snort-MySQL со всеми зависимыми пакетами
  • MySql-server-5.0 со всеми зависимыми пакетами
  • Libpcap0.8-dev
  • libmysqlclient15-dev
  • MySql-client-5.0
  • Bison
  • Apache2
  • Libapache2-mod-php5
  • Php5-gd
  • Php5-mysql
  • Libphp-adodb
  • Php-pear

2. Получите права суперпользователя

С рабочего стола перейдите в меню: Applications > Accessories > Terminal (Приложения > Дополнения > Терминал) и введите команду:

$ sudo -i
$ введите пароль

3. Настройка Snort

Для того, чтобы установить индивидуальные настройки, необходимо изменить файл настроек snort.conf .

С помощью текcтового редактора (nano, vi, vim или другого) откройте файл /etc/snort/snort.conf .

# vim /etc/snort/snort.conf

Измените переменную var HOME_NET any на var HOME_NET 192.168.1.0/24 (адрес вашей домашней сети может отличаться от адреса 192.168.1.0). Если вы ведете мониторинг нескольких сетей, необходимо указать все эти сети следующим образом: var HOME_NET . Измените var EXTERNAL_NET any на var EXTERNAL_NET !$HOME_NET (устанавливаются все переменные, кроме внешней переменной HOME_NET).

Измените var RULE_PATH ../rules на var RULE_PATH /etc/snort/rules . Прокрутите список до того места, где указана строка # output database: log, mysql, user= , удалите знак # из начала строки.

Пример: output database: log, mysql, user= password= dbname=snort host=localhost

(смотрите выше, когда создавался новый пользователь).

Запишите имя пользователя, пароль и название базы данных (dbname). При установке базы данных MySQL вам потребуются эти данные. Сохраните изменения и выйдите.

4. Установка баз данных Snort и Archive в MySQL

4.1 Установка MySQL

Войдите на сервер MySQL.

# mysql -u root -p

Иногда бывает так, что пароль не установлен, так что просто нажмите "Enter".

Если вход не выполняется, попробуйте еще раз набрать указанную выше команду и введите ВАШ_ПАРОЛЬ.

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

Примечание: Когда вы на сервере MySQL, в приглашении вместо символа "#" отображается группа символов "mysql>"

mysql> create user @localhost;
mysql> SET PASSWORD FOR r@localhost=PASSWORD();
mysql> SET PASSWORD FOR root@localhost=PASSWORD();

4.2 Создание базы данных Snort

mysql> create database snort; mysql> grant INSERT,SELECT on root.* to snort@localhost; mysql> grant CREATE,INSERT,SELECT,DELETE,UPDATE on snort.* to @localhost; mysql> grant CREATE,INSERT,SELECT,DELETE,UPDATE on snort.* to snort;

4.3 Создание базы данных Archive

mysql> create database archive; mysql> grant CREATE,INSERT,SELECT,DELETE,UPDATE on archive.* to @localhost; mysql> grant CREATE,INSERT,SELECT,DELETE,UPDATE on archive.* to archive; mysql> exit

4.4 Создание таблиц в базах данных Snort и Archive

Мы будем использовать схему Snort для компоновки баз данных Snort и Archive.

# cd /usr/share/doc/snort-mysql # zcat create_mysql.gz | mysql -u -h localhost -p snort # zcat create_mysql.gz | mysql -u -h localhost -p archive

4.5 Подтверждение создания баз данных и вновь созданных таблиц.

Войдите на сервер MySQL и проверьте базы данных, которые мы только что создали, и таблицы, размещенные в этих базах данных. Если все было успешно создано, вы увидите четыре (4) базы данных (mysql, test, snort и archive) в базах данных mysql и приблизительно по 16 таблиц в каждой базе данных.

# mysql -u root -p mysql> show databases; mysql> use snort; mysql> show tables; mysql> use archive; mysql> show tables; mysql> exit

4.6 Тестирование Snort

В режиме терминала наберите команду: # snort -c /etc/snort/snort.conf

Если все прошло успешно, вы должны увидеть ответ в кодах ascii.

Для завершения теста нажмите ctrl + c

5. Настройка Apache2

На компьютере должен быть уже установлен пакет Apache2.

С помощью вашего любимого текстового редактора создайте файл с именем test.php в папке /var/www/ .

# vim /var/www/test.php

Запишите в нем:

Сохраните изменения и закройте этот файл.

Отредактируйте файлt /etc/php5/apache2/php.ini

# vim /etc/php5/apache2/php.ini

Под строкой "Dynamic Extensions" добавьте следующее:

Extension=mysql.so extension=gd.so

Перезагрузите Apache2.

# /etc/init.d/apache2 restart

Получите IP-адрес вашего рабочего компьютера.

# ifconfig -a

Откройте веб-браузер и перейдите по адресу http://ВАШ_IP_АДРЕС/test.php .

Если все прошло успешно, отобразится информация по РНР.

6. Конфигурирование папок

Переместите ADOdb в папку /var/www .

# mv /usr/share/php/adodb /var/www/

Создайте папку с именем web в www и переместите в нее ACIDBASE.

# mkdir /var/www/web # mv /usr/share/acidbase /var/www/web/

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

# chmod 777 /var/www/web/acidbase

# cd /var/www/web/acidbase # mv base_conf.php base_conf.old

Для работы в ACIDBASE выполните команду:

# pear install Image_Color

7. Установка ACIDBASE для баз данных Snort и Archive

7.1 Установка базы данных Snort через веб-браузер

Шаг 1 из 5:

Введите путь к ADODB. Это /var/www/adodb .

Шаг 2 из 5:

Main Database type = MySQL (Тип основной базы данных),
Database name = snort (База данных Snort),
Database Host = localhost (Локальное расположение базы данных Snort),
Database username = <ваше_имя_пользователя> (Имя пользователя базой данных Snort),
Database Password = <ваш_пароль> (Пароль для базы данных Snort)

Archive Database type = MySQL (Тип базы данных Archive),


Database username = <ваше_имя_пользователя>
Database Password = <ваш_пароль>

Шаг 3 из 5:

Если вы хотите использовать аутентификацию, введите имя пользователя и пароль (user: <ваше_имя> , password: <ваш_пароль>).

Шаг 4 из 5:

Щелкните мышкой Create BASE AG (Создать BASE AG).

Шаг 5 из 5:

Когда шаг 4 выполнен, в нижней части щелкните: Now continue to step 5 (Теперь переходите к шагу 5) .

Добавьте эту страницу в закладки.

7.2 Создайте папку для базы данных Archive ACIDBASE

Чтобы архивная база данных корректно работала, в папке ACIDBASE должна быть создана папка archive .

# mkdir /var/www/web/acidbase/archive # cd /var/www/web/acidbase # cp -R * /var/www/web/acidbase/archive # chmod 777 /var/www/web/acidbase/archive

Переименуйте существующий файл base_conf.php в base_conf.old .

# cd /var/www/web/acidbase/archive # mv base_conf.php base_conf.old

7.3 Установка базы данных Archive через веб-браузер.

Откройте веб-браузер и перейдите по адресу http://ВАШ_IP_АДРЕС/web/acidbase/archive/setup .

На первой странице щелкните "Продолжить".

Шаг 1 из 5:

Введите путь к ADODB. Это /var/www/adodb. >

Шаг 2 из 5:

Archive Database type = MySQL (Тип базы данных),
Database name = archive (База данных Archive),
Database Host = localhost (Локальное расположение базы данных Archive),
Database username = <ваше_имя_пользователя> (Имя пользователя базой данных Archive),
Database Password = <ваш_пароль> (Пароль для базы данных Archive)

Шаг 3 из 5:

Если вы хотите использовать аутентификацию, введите имя пользователя и пароль(user: <ваше_имя_пользователя> , password: <ваш_пароль>).

Шаг 4 из 5:

Щелкните на Create BASE AG (Создать BASE AG) .

Шаг 5 из 5:

Когда шаг 4 пройден, внизу щелкните: Now continue to step 5 (Теперь переходите к шагу 5).

8. Запуск Snort и проверка статуса сервисов.

Чтобы запустить Snort наберите в режиме терминала:

# snort -c /etc/snort/snort.conf -i eth0 -D

Эта команда запускает snort с использованием интерфейса eth0 в демо-режиме.

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

# ps aux | grep snort

Если сервис работает, вы увидите что-то, похожее на следующее snort -c /etc/snort/snort.conf -i eth0 -D .

Убедитесь, что все необходимые сервисы работают путем выполнения следующих команд:

# /etc/init.d/mysql status # /etc/init.d/apache2 status # /etc/init.d/snort status

Если сервисы работают, вы увидите ответное сообщение .

Если нужно, запустите команду
# /etc/init.d/ restart
для каждого из сервисов, который должен быть перезапущен.

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

Государственное образовательное учреждение высшего профессионального образования

«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»

КУРСОВАЯ РАБОТА (ПРОЕКТ)
ЗАЩИЩЕНА С ОЦЕНКОЙ отлично

РУКОВОДИТЕЛЬ

доц., к. т.н., доц.

должность, уч. степень, звание

подпись, дата

инициалы, фамилия

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА К КУРСОВОЙ РАБОТЕ (ПРОЕКТУ)

Практика использования IDS SNORT

по дисциплине: инженерно-техническая защита информации

РАБОТУ ВЫПОЛНИЛ(А)

СТУДЕНТ(КА) ГР.

подпись, дата

инициалы, фамилия

Санкт-Петербург 2011

1.. Что такое Snort?. 2

2. Режим сниффера : 2

3. Режим журналирования пакетов . 6

4. Режим обнаружения сетевых вторжений. 6

1. Что такое Snort?

Snort – облегченная система обнаружения вторжения. Snort обычно называют “облегченным” NIDS /расшифровать, перевести/, - потому что это он разработан прежде всего для маленьких сетей. Программа может исполнять анализ протокола и может использоваться, чтобы обнаружить разнообразные нападения.

Snort использует "правила" (указанные в файлах "правила"), чтобы знать какой трафик пропустить а какой задержать. Инструмент гибок, позволяя записывать новые правила и соблюдать их.

Snort может работать в 3 основных режимах:

· Режим сниффера: позволяет просто ловить пакеты из сети и отображать их на экране(как правило консоли)

· Режим журналирования пакетов: позволяет сохранять пакеты на жесткий диск


· Режим системы обнаружения вторжений (NIDS) - наиболее сложная и настраиваемая конфигурация, которая позволяет анализировать сетевой трафик на основе определяемых пользователем набора правил.

2. Режим сниффера :

В режиме анализа пакетов, Snort просто читает пакеты, приходящие из сети, и выводит их на экран. Для вывода заголовков пакетовов TCP/IP необходимо выполнить:

snort –v

Эта команда выводит заголовки IP - и TCP/UDP/ICMP-пакетов. Можно увидеть откуда отсылались пакеты, куда, во сколько /адресов?/. На рисунке /рисунки надо нумеровать, чтобы ссылаться. Ссылки нет – значит рисунок не нужен/ видно, что исходящих адреса два./откуда видно? Расшифруйте форматы записей на рисунке или хоть по номеру строки сошлитесь/

Чтобы понять, что это за адреса - достаточно выполнить команду

systeminfo


Из снимка /уже - снимки. а не рисунки? В пределах документа должно соблюдаться единообразие! Или это – нечто другое?/ становится понятно, что это за исходящие адреса. /ну и перечислите – или по крайней мере укажите. что их номера приведены в квадратных скобках/

Для того чтобы увидеть данные, содержащиеся в пакетах, необходимо ввести:

snort - vd

https://pandia.ru/text/78/320/images/image004_112.jpg" alt="подробный_вывод.jpg" width="589" height="338">

Ключи могут быть заданы в любой форме, например: "snort - vde", "snort - d - ev" и "snort - e - v -d".

Snort будет собирать информацию до тех пор, пока его не прервать. Для завершения захвата пакетов необходимо нажать Ctrl-C. После нажатия Ctrl-C будет выведен отчет о захваченных пакетах. Ниже показан отчет, полученный после работы Snort в течение приблизительно минуты.

Из снимка видно, что большинство проанализированных пакетов являются пакетами TCP/IP. Также были захвачены и UDP пакеты.

3. Режим журналирования пакетов

Режим журналирования пакетов позволяет записывать поток информации на диск. Это полезно при проведении анализа за определенный интервал времени или проверки изменений в настройках и политике безопасности.
Необходимо создать и указать каталог для логов, а Snort автоматически перейдет в режим журналирования пакетов.

Пример: создаем каталог logs и запускаем:

snort - dev - l../log

В результате операции /куда, где его искать, как указать желательное место?/ запишется файл snort. log.. Цифры в конце новых имен файлов являются временными метками, что позволяет избегать конфликтов при создании файлов. /желателен пример лог-файла/

4. Режим обнаружения сетевых вторжений

Третий режим Snort, это режим обнаружения сетевых вторжений (Network Intrusion Detection, NIDS).

В своей базовой форме правило Snort /где они хранятся?/ имеет две части: заголовок и параметры. Ниже представлен пример правила.

alert tcp any any -> any any (content: "www. "; msg: "Someone is visiting youtube now"; sid:1000002; rev:1)

Модель структуры правил можно представить /она жестко задана или может изменяться? то, что элементы в квадратных скобках – необязательны, надеемся. известно. Но есть ли между ними спецразделители?/ по следующей схеме:

<действие_правила> <протокол> <порт> <оператор_направления>


<порт> ([мета_данные] [даные_о_содержимом_пакета]

[данные_в_заголовке] [действие_после_обнаружения])

Действия правил делятся на следующие категории:

1. alert - Создать предупреждение, используя выбранный метод, и передать информацию системе журналирования.

2. log - Использовать систему журналирования для записи информации о пакете.

3. pass - Игнорировать пакет.

4. activate - Использовать другое динамическое правило.

5. dynamic - После того, как выполнится активное правило, задействуется правило с процедурой журналирования.

6. drop - Отбросить пакет, используя программный брандмэуер, и передать информацию системе журналирования

7. sdrop - Отбросить пакет при помощи программного брандмэуера и не использовать систему журналирования.

8. reject - Используя брандмэуер, отбросить пакет в том случае, если протокол TCP, или же записать в файл журнала сообщение: ICMP порт недоступен, если пакет приходит по протоколу UDP

Второй частью правила Snort служат опции, задающие дополнительные детали выявляемого трафика. Можно искать по набору полей в заголовке TCP/ или по полезной нагрузке пакета. За каждой опцией должны следовать кавычки и разыскиваемое значение. Можно добавить несколько опций, разделяя их с помощью точки с запятой. Ниже приведены допустимые опции.

sid – уникальная метка, идентифицирующая правило. Эта опция должна использоваться с опцией rev .

<100 зарезервировано для дальнейшего использования

100-999,999 уже зарезервированные правила

>=1,000,000 правила, задаваемые пользователем

rev - значение версии правила. С помощью rev интерпретатор правил

Snort определяет версию написанного правила.

Запуск Snort в режиме IDS можно осуществить командой:

snort - c "D:\Program Files\Snort\etc\snort. conf" - l " D:\Program Files\Snort\log" - A console - i 1

ключ –с означает, что включен режим IDS

ключ l включает режим записи на жесткий диск с указанием пути к файлу

ключ A показывает что все предупрежления(alerts) будут дублтроваться выводом на консоль

ключ i указывает на порядковый номер(index) интересующего нас интерфейса

чтобы узнать поддерживаемые интерфейсы необходимо выполнить команду:

snort W

Содержимое файла snort. conf

Содержимое файла *****les:

В файл snort. conf можно подсоединять правила использую ключевое слово include .

Результат выполнения команды:

Видно, что Snort зафиксировал попытку попасть на “опасный” сайт.

Нет информации об источнике, откуда был взят дистрибутив, об ОС, на которой велось исследование

В целом работа весьма интересна. /