Курс молодого бойца: защищаемся маршрутизатором. Продолжение: IPS

    Система предотвращения вторжений (Intrusion Prevention System, IPS).

    Вообще линейка продуктов по системе предотвращения вторжений у компании cisco довольно широкая. Туда входят отдельно стоящие сенсоры IPS серии 42ХХ, модуль в 6500 — IDSM2, модуль в ASA — AIP-SSM, модуль в маршрутизатор (ISR) — NME-IPS, «карточка» в ISR — AIM-IPS. Ту же идеологию циска старается привнести и в софтовые решения на базе ISR, добавляя в IOS соответсвующий функционал.

    Вся идеология обнаружения и предотвращения вторжений основана на понятии сигнатуры. Сигнатура по сути шаблон «неправильности» в одном пакете или потоке.

    «Неправильности» бывают разные, начиная от типичных методов разведки и заканчивая сетевыми червями. Эти шаблоны старательно пишутся программистами циски и доходят до пользователя в виде обновлений. Т.е. система реактивна по своей сути и основана на постоянных обновлениях, что стоит денег. Лицензии на обновления привязываются к каждой железке непосредственно. Без лицензии можно менять ОС, но нельзя накатить обновления сигнатур.

    Немного истории систем обнаружения и предотвращения вторжений на базе маршрутизаторов.

    Первая система IDS (Intrusion Detection System) была внедрена на маршрутизаторах с IOS 12.2.8T с firewall feature set. Тогда это были 26ХХ и 36ХХ маршрутизаторы. Система представляла собой несколько десятков (максимум 105) сигнатур. Их можно было только отключить или задать работу не для всего трафика.

    Эта система включалась командами

    ip audit name IDS attack action {alarm, drop, reset}
    ip audit name IDS info action {alarm, drop, reset}

    int f0/0
    ip audit IDS {in|out}


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

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

    ip ips sdf location flash:{256MB.sdf|128MB.sdf|attack-drop.sdf}

    файл подбирается исходя из количества оперативной памяти на маршрутизаторе. Самый большой файл — 256MB.sdf — содержал более 1500 сигнатур и требовал минимум 256 мегабайт оперативной памяти

    ip ips name IPS

    int f0/0
    ip ips IPS {in|out}

    После привешивания на интерфейс правила IPS циска подгружала в память сигнатуры из файла и давала возможность их настроить как через консоль, так и через web-GUI (кстати, GUI, называемый Security Device Manager, SDM, весьма удобен при настройке IPS)

    Для обратной совместимости в IOSах (до 12.4.Т(11)) оставались и встроенные сигнатуры. При использовании внешнего файла их рекомендовалось отключать

    no ip ips sdf builtin

    Можно было потребовать, чтобы трафик блокировался в случае, если невозможно подгрузить файл sdf или произошёл сбой подсистемы IPS

    ip ips fail close

    Но формат сигнатур тут был такой же, как и в сенсорах IPS версии 4. Этот формат не позволял глубже анализировать трафик и отсекать новые хитрые атаки. На самих IPS сенсорах уже появился к тому времени новый формат — 5, в котором можно настраивать накопительные параметры риска атаки (Risk Rating), создавать зоны более пристального внимания (Target Value Rating) и многое другое.

    Поэтому с версии 12.4.Т(11) старый формат более не поддерживается, обновления сигнатур формата 4 прекратились в августе 2008.

    Чтобы перейти на новый формат и гибко защитить сеть при помощи системы IPS надо теперь грузить другой файл
    IOS-S###-CLI.pkg
    в котором хранятся зашифрованные актуальные сигнатуры и их параметры. Номер ### постоянно увеличивается, обновления надо постоянно подгружать. К слову, это можно сделать автоматически командой

    ip ips auto-update

    Далее, надо установить на маршрутизатор ключ компании cisco для расшифровывания (а вернее, проверки цифровой подписи) выкачанного файла

    Делаем так:

    crypto key pubkey-chain rsa

    named-key realm-cisco.pub signature

    key-string
    30820122 300D0609 2A864886 F70D0101 01050003 82010F00 3082010A 02820101
    00C19E93 A8AF124A D6CC7A24 5097A975 206BE3A2 06FBA13F 6F12CB5B 4E441F16
    17E630D5 C02AC252 912BE27F 37FDD9C8 11FC7AF7 DCDD81D9 43CDABC3 6007D128
    B199ABCB D34ED0F9 085FADC1 359C189E F30AF10A C0EFB624 7E0764BF 3E53053E
    5B2146A9 D7A5EDE3 0298AF03 DED7A5B8 9479039D 20F30663 9AC64B93 C0112A35
    FE3F0C87 89BCB7BB 994AE74C FA9E481D F65875D6 85EAF974 6D9CC8E3 F0B08B85
    50437722 FFBE85B9 5E4189FF CC189CB9 69C46F9C A84DFBA5 7A0AF99E AD768C36
    006CF498 079F88F8 A3B3FB1F 9FB7B3CB 5539E1D1 9693CCBB 551F78D2 892356AE
    2F56D826 8918EF3C 80CA4F4D 87BFCA3B BFF668E9 689782A5 CF31CB6E B4B094D3
    F3020301 0001
    quit

    Эти команды можно просто вколотить в режим
    Ro(config)#
    копипастом. Ключ один для всех.

    Желательно создать во флеше маршрутизатора отдельную папку для файлов IPS

    Ro# mkdir flash:/IPS

    Туда надо скопировать файл IOS-S###-CLI.pkg, а также указать, что в ней будут храниться нужные для работы файлы

    Ro(config)# ip ips config location flash:/IPS/

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

    Ro# copy flash:/IPS/IOS-S###-CLI.pkg idconf

    Эта процедура займет существенное время (несколько минут) и в результаты вы увидите во флеше

    21 0 May 27 2009 14:22:58 +04:00 IPS
    22 8662169 May 27 2009 14:24:22 +04:00 IPS/IOS-S399-CLI.pkg
    23 284871 May 28 2009 22:48:00 +04:00 IPS/ccmt-2811-sigdef-default.xml
    24 255 May 27 2009 16:35:56 +04:00 IPS/ccmt-2811-sigdef-delta.xml
    25 34761 May 28 2009 22:43:44 +04:00 IPS/ccmt-2811-sigdef-category.xml
    26 304 May 27 2009 16:35:56 +04:00 IPS/ccmt-2811-seap-delta.xml
    27 8509 May 28 2009 22:43:40 +04:00 IPS/ccmt-2811-sigdef-typedef.xml
    28 491 May 27 2009 17:05:00 +04:00 IPS/ccmt-2811-seap-typedef.xml

    Эти xml файлы содержат дефолтные настройки, ваши изменения, параметры блокировки и т.д.

    Практически всё. Надо только создать правило и повесить его на интерфейс, как это делалось и раньше:

    ip ips name IPS

    int f0/0
    ip ips IPS {in|out}

    После этого произойдёт подгрузка в память сигнатур и те из них, которые по умолчанию включены, сразу примутся за работу.

    Помните, что сигнатур много, они кушают много памяти и процессора, поэтому циска настоятельно рекомендует сделать следующее.

    1. Отключить категорию сигнатур all

    Ro(config)# ip ips signature-category
    Ro(config-ips-category)# category all
    Ro(config-ips-category-action)# retired true

    2. Включить для начала категорию, рассчитанную на IOS, причём в базовом исполнении

    Ro(config)# ip ips signature-category
    Ro(config-ips-category)# category ios_ips basic
    Ro(config-ips-category-action)# retired false
    Ro(config-ips-category-action)# enabled true

    Конфиг актуализируется после выхода обратно в режим (config)#

    3. Далее, следя за памятью и загрузкой процессора, можно добавлять и другие категории сигнатур. Настройка самих сигнатур возможна как через консоль из режима

    ip ips signature-definition

    так и через SDM или более новый WEB-GUI — ССE (Cisco Configuration Expert)

    Параметры и механизм настройки сигнатур максимально приближен к настройке на сенсорах, поэтому если вы имеете опыт настройки AIP-SSM, сенсоров 42ХХ или IDMS2, можете смело браться за дело. Если такого опыта нет, лучше почитать о настройке сигнатур. Или сходить на курс IPS 6.0 :)

    Продолжение следует...
    Ads
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More

    Comments 3

      0
      спасибо за материал — доступно написан, жду продолжения)
        0
        блин, чувствую себя все глупее и глупее, за что огромное спасибо автору!

        P.S. никакого сарказма в моих словах нет
          0
          спасибо! жду продолжения.

          Only users with full accounts can post comments. Log in, please.