IDS Вам в помощь, about Snort for Centos

Discussion in 'Безопасность и Анонимность' started by YaBtr, 13 Aug 2013.

  1. YaBtr

    YaBtr Members of Antichat

    Joined:
    30 May 2012
    Messages:
    601
    Likes Received:
    350
    Reputations:
    652
    Приветствую, Античатовцы! Хочу рассказать Вам об IDS (англ. Intrusion Detection System) Snort, системе обнаружения вторжений, на примере операционной системы Centos 6.3.

    [INTRO]

    Cеть - это неотъемлемая часть современного мира, без которой остановится прогресс. Технологии развиваются, данные передаются с высочайшей скоростью. И становится ясно, что все эти технологии могут использоваться не только во благо, но и во вред. Для того, чтобы отрезать возможные пути и попытки взломщика на стадии изучения вашей сети, чтобы детектировать многие атаки, чтобы обнаружить нежелательную деятельность внутри сети - используются ситемы обнаружения вторжений. В этой статье я хотел бы кратко анонсировать мощнейшую систему под названием Snort.

    [Возможности]

    Эта IDS выявляет следующее:

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

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

    gcc (4.4.6),
    flex (2.5.35),
    bison (2.4.1),
    zlib (1.2.3 включая zlib-devel),
    libpcap (1.0.0 включая libpcap-devel), которая и осуществляет прослушивание всего трафика. Библиотека позволяет видеть Snort
    пакеты до того, как они будут восприняты остальными приложениями, а на этом уровне требуются права суперпользователя.
    pcre (7.84 включая pcre-devel),
    libdnet (1.11 или 1.12 включая libdnet-devel),
    tcpdump (4.1.0). ​

    Конечно же, в процессе установки нам необходимы права суперпользователя.
    Устанавливаем через rpm –i
    libpcap-devel-1.0.0-6.20091201git117cb5.el6.x86_64.rpm
    libdnet-debuginfo-1.12-6.choon.centos6.x86_64.rpm​

    Code:
    [COLOR=Red]cd /usr/local/src 
    tar -zxvf <путь>libdnet-1.11.tar.gz 
    tar -zxvf <путь>daq-2.0.0.tar.gz 
    tar -zxvf <путь>snort-2.9.4.x.tar.gz[/COLOR]
    Собираем libdnet:
    Code:
    [COLOR=Red]cd /usr/local/src/libdnet-1.11 
    ./configure –with-pic 
    make
    make install[/COLOR]
    При ./configure могут выскакивать ошибки, которые детектируются в config.log
    Code:
    [COLOR=Red]cd /usr/local/lib
    ldconfig –v /usr/local/lib[/COLOR]
    Последнюю версию Snort всегда можно найти на сайте разработчиков www.snort.org. С этого же ресурса необходимо скачать стандартный пакет с правилами. Можно установить дополнительные правила, и даже купить некоторые из них, недоступные широкой публике. На этом же сайте существует возможность подписаться на неплохую подписку (тавтология :) ).

    [Немного о правилах]

    Для того, чтобы вовремя следить за попытками вторжения, следует научиться простому языку правил для
    IDS Snort. Ведь для новой уязвимости легче написать правило самому, чем ждать очередной версии Snort или обновления пакета с нужными правилами.

    Структуру правил можно представить в следующей схеме:

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

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

    alert - Создать предупреждение, используя выбранный метод, и передать
    информацию системе журналирования.
    log - Использовать систему журналирования для записи информации о
    пакете.
    pass - Игнорировать пакет.
    activate - Использовать другое динамическое правило.
    dynamic - После того, как выполнится активное правило, задействуется
    правило с процедурой журналирования.
    drop - Отбросить пакет, используя программный брандмэуер, и передать
    информацию системе журналирования. Работает только в режиме
    inline.
    sdrop - Отбросить пакет при помощи программного брандмэуера и не
    использовать систему журналирования. Работает только в режиме
    inline.
    reject - Используя брандмэуер, отбросить пакет в том случае, если протокол
    TCP, или же записать в файл журнала сообщение: ICMP порт
    недоступен, если пакет приходит по протоколу UDP. Работает только
    в режиме inline.​

    Вот,вкратце о правилах.

    [ОСНОВНОЕ]

    Далее собираем саму систему обнаружения вторжений:
    Code:
    [COLOR=Red]
    cd /usr/local/src/snort-2.9.4.x 
    ./configure --enable-sourcefire  
    make 
    make install
    
    cd /usr/local/lib
    ldconfig –v /usr/local/lib[/COLOR]
    Файлы правил будут лежать в /etc/snort/rules/
    Code:
    [COLOR=Red]cd /etc
    mkdir -p snort
    cd snort
    tar -zvxf <path to>snortrules-snapshot-<nnnn>.tar.gz
    cp ./etc/* .
    touch /etc/snort/rules/white_list.rules /etc/snort/rules/black_list.rules 
    [/COLOR]
    Далее добавим пользователя и группу snort:
    Code:
    [COLOR=Red]groupadd -g 5000 snort
    useradd snort -u 5000 -d /var/log/snort -s /sbin/nologin -c SNORT_IDS –g snort 
    cd /etc/snort 
    chown -R snort:snort *
    chown -R snort:snort /var/log/snort[/COLOR]
    Для того, чтобы демон IDS стартовал при загрузке Centos, выполним:
    Code:
    [COLOR=Red]chkconfig --level 345 snort on[/COLOR]
    Также создадим папку Snort в директории /var/log и назначим ей права:
    Code:
    [COLOR=Red]
    cd /var/log 
    mkdir snort 
    chmod 700 snort 
    chown -R snort:snort snort 
    cd /usr/local/lib 
    chown -R snort:snort snort* 
    chown -R snort:snort snort_dynamic* 
    chown -R snort:snort pkgconfig 
    chmod -R 700 snort* 
    chmod -R 700 pkgconfig [/COLOR]
    Выполним следующие команды:
    Code:
    [COLOR=Red]cd /usr/local/bin 
    chown -R snort:snort daq-modules-config 
    chown -R snort:snort u2* 
    chmod -R 700 daq-modules-config 
    chmod 700 u2* 
    cd /etc 
    chown -R snort:snort snort 
    chmod -R 700 snort [/COLOR]
    Теперь можем тестировать:
    Code:
    [COLOR=Red]cd /usr/local/bin 
    ./snort -T -i eth0 -u snort -g snort -c /etc/snort/snort.conf[/COLOR]
    Если все успешно, увидим следующее:

    Snort successfully validated the configuration!
    Snort exiting


    Также не забываем мониторить /var/log/messages.

    Все сделали,запускаем IDS:
    Code:
    [COLOR=Red]cd /usr/local/bin
    ./snort -A fast -b -d -D -i eth0 -u snort -g snort -c /etc/snort/snort.conf -l /var/log/snort[/COLOR]
    
    Заходим в процессы и видим, что все работает:
    Code:
    [COLOR=Red]ps aux | grep -i "snort"[/COLOR]
    При обновлении Snort до новой версии, рекомендуется сделать резервные копии следующих файлов:
    local.rules, snort.conf, threshold.conf, white_list.rules, black_list.rules.

    [Заключение]

    Конечно, IDS Snort не дает стопроцентной уверенности в том, что будут замечены и отображены все подозрительные события, но если разобраться, то на сегодняшний день ни одна система не обладает такими свойствами. Заметим, что Snort может определять атаки под прикрытием, так называемый шум. Это когда злоумышленник отсылает множество подозрительных пакетов на целевую систему и во время этого шума проводит атаку.

    Спасибо Всем, кто прочитал статью!
    С уважением, YaBtr!
     
    2 people like this.
  2. C6H5CH3

    C6H5CH3 Member

    Joined:
    12 Dec 2008
    Messages:
    40
    Likes Received:
    9
    Reputations:
    1
    Спасибо за статью!
    Вопрос к тем, кто использует. Поделитесь плс. опытом по использованию снорта, на сколько эффективна система по детекту и оражению всевозможных сканирований и буртфорс атак?

    Также очень интересует сравнение с другими IDS
     
  3. kilo_star

    kilo_star New Member

    Joined:
    21 Apr 2013
    Messages:
    23
    Likes Received:
    1
    Reputations:
    0
    Эффективна ровно на столько, на сколько грамотно ты ее настроишь.
     
  4. C6H5CH3

    C6H5CH3 Member

    Joined:
    12 Dec 2008
    Messages:
    40
    Likes Received:
    9
    Reputations:
    1
    Это понятно, вопрос основной все же снорт или сурикана?
    С одной стороны сурикана куда перспективнее, а распространена больше снорт.
    Просто хочу с циски переползти. Вот и выбираю, что бы зря время не тратить...
     
  5. samba77

    samba77 New Member

    Joined:
    29 Apr 2010
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    на форвадинг трафик на линукс роутере че то не пошло, пробовал и чисто правила для iptables от снорт.