Система обнаружения вторжений на базе Snort IDS

Система обнаружения вторжений на базе Snort IDS
Сетевая система обнаружения вторжений (СОВ, IDS - Intrusion Detection System) - работает по принципу сетевых снифферов, которые по определенным сигнатурам ищут вредный трафик проходящий через защищаемую сеть и предупреждают о его наличие администратора.
Где-то нашел интересную аналогию... что межсетевое экранирование - это установка забора с калиткой, рядом с которой дежурит охранник, у которого есть список, кого можно пропускать, а кого нет. IDS в этом случае сравнивалась с системой охранно-пожарной сигнализации, сенсоры которой расположены внутри охраняемой территории и регистрируют "проблемы" внутри нее. 
name='more'>
Теперь немножко личного опыта. В качестве нового направления служба защиты информации в организации, где я работал, решила внедрить систему обнаружения вторжений. Надо отметить масштаб организации - в сети находилось несколько сотен узлов, часть из которых - шлюзы, за которыми также находилось неведомое количество узлов. Весь трафик проходил через прокси-сервер, с которого параллельно поступал на сенсор Snort

Ну чтож... поставили Snort, закачали свежие правила, запустили... и о ужас, количество предупреждений зашкаливало - порядка 40 000 предупреждений в час (в рабочее время) и четыре раза меньше в нерабочее... В результате Snort периодически падал (правда эту проблему в дальнейшем решили установкой barnyard'а - в новые версии он уже вшит), но главным вопросом оставалось - что делать со всеми этими предупреждениями.

Уникальных из них, правда, было порядка 120-150, но со всеми ними пришлось разбираться, дабы закомментировать "лишние" правила и, в дальнейшем, администратору СОВ обеспечить более спокойную работу.

Первым делом стоит заняться настройкой переменных, указав в файле snort.confдиапазоны для внешней и внутренней сети, список DNS-серверов, SMTP-серверов, WEB-серверов, SQL-серверов и т.д., т.к. многие правила актуальны лишь для этих типов серверов (а по умолчания они просматриваются для всей внутренней сети). Во-вторых, рассмотрим наборы правил.

Группы правил Snort IDS - описание:

  • app-detect.rules - правила обнаруживающие определенные приложения, работающие в сети (например, Gizmo - аналог Skype). При отсутствии политики, запрещающей использования ПО из списка, указанного в данном наборе правил, можно отключать весь набор.
  • attack-responses.rules - срабатывают, когда локальный хост отправляет ответ, который "похож" на ответ подверженного атаке хоста. Например, ответ "403 Forbidden"возникает, когда у клиента отсутствуют права на просмотр ресурса на сервере. В наших интернетах такой ответ генерируется сплошь и рядом, и в отчет Snort'аон попадал многократно не по делу, поэтому конкретно это правило можно и отключить или настроить только на внутриние web-сервера (если таковые имеются). Впрочем, большое количество ложных срабатываний вообще характерно для данного набора правил... так что если Snortобнаружил что-то - без паники.
  • backdoor.rules - правила срабатывают при обнаружение характерных сетевых соединений инициированными известными программами для удаленного доступа к компьютеру.
  • bad-traffic.rules - срабатывают на некорректные (по мнению Snort'а) заголовки пакетов, адреса и порты назначения... На самом деле, дает достаточно много срабатываний из-за обычных ошибок в большой сети.
  • blacklist.rules - фиксирует обращения к доменам из "черного" списка. Кажется за все время моей работы в качестве администратора СОВ было зафиксировано только одно обращение (к сайту, sexyserbiangirl.rsили что-то в этом роде), но выключать эти правила не стоит, т.к. в списке очень много сайтов, распространяющих вредоносов, и, если с какого-то узла было обращение, следует проверить его на наличие заражения.
  • botnet-cnc.rules - срабатывает на трафик, схожий с тем, который генерирует C&C (Command&Control Centre) - центр управления ботнетом. Впрочем, эти правила реагируют на стандартные программы управления множеством компьютеров. 
  • browser-chrome.rules, browser-firefox.rules, browser-ie.rules, browser-other.rules, browser-webkit.rules - реагируют на "косяки" соответствующих браузеров - переполнения адресной строки браузера, попытки отправить отчет об ошибках...  browser-other.rulesв основном содержит ошибки связанные с браузером Opera, а webkit.rules - Safari. Если в организации отсутствуют какие-то из этих браузеров, то соответствующие наборы правил можно закомментировать.
  • chat.rules - по умолчанию отключены. Если в организации запрещено пользоваться программами мгновенного обмена сообщениями, то стоит раскомментировать, иначе получите дикое количество срабатываний.
  • dos.rules, ddos.rules - оповещают о трафике, генерируемом известными методами, вызывающими отказ в обслуживание (например, Trin00). Т.к. обнаружение ddos-атак идет по ключевым словам, которые могут быть вполне обычными для Вашей сети, этот набор правил может создавать ложные предупреждения.
  • dns.rules - реагируют на атаки направленные на dns-сервера.
  • exploit-kit.rules, exploit.rules - сигнатуры известных эксплоитов. Предупреждения генерируются в случае, если данными эксплоитами пытались воспользоваться, хотя сами эксплоиты к этому времени могли быть закрыты патчами или уязвимого ПО вообще может быть не установлено в системе.
  • file-executable.rules, file-flash.rules, file-identify.rules, file-image.rules, file-multimedia.rules, file-office.rules, file-other.rules, file-pdf.rules - предупреждения о наличии в пересылаемых по сети файлах потенциальной опасности (например, макросов в офисных документах).
  • finger.rules - этот набор содержит правила, касающиеся известных атак на службу finger (которая по умолчанию запускается во многих unix-подобных ОС). Если таких узлов в сети нет, то эти правила можно закомментировать.
  • ftp.rules - срабатывают при обнаружении атак на ftp-сервера.
  • icmp.rules - фиксируют попытки пропинговать узлы сети с использованием некоторого хакерского инструментария.
  • icmp-info.rules - то же самое, но уже учитывает любые пинги, которые могут в огромном количестве генерироваться вполне легитимным ПО. Поэтому по умолчанию этот набор правил отключен.
  • imap.rules - детектируют попытки атак на IMAP-сервера.
  • indicator-compromise.rules - фиксирует "опасные" запросы к удаленным ресурсам (попытка обращения к конфигурационным файлам веб-сайтов, вызывать cmd на удаленном узле и т.п.).
  • indicator-obfuscation.rules - обнаруживает в трафике обфусцированный JS код. Как правило его используют для защиты информации от автоматического копирования, но иногда с помощью него могут попытаться скрыть опасный код. Если такого трафика генерируется мало, то в принципе можно попытаться деобфусцировать полученные данные. 
  • info.rules - реагируют на вполне нормальный трафик. По умолчанию набор отключен. Зачем его включать в голову не приходит.
  • malware-backdoor.rules - в отличие от backdoor.rules уже реагирует на запрос соединения с удаленным компьютером, инициализированный вредоносным ПО.
  • malware-cnc.rules - как и botnet-cnc.rulesобнаруживает центр управления множеством компьютеров. Но теперь уже реагирует на вредоносное ПО, ожидающее подключения новых ботов, регистрирующее их в своей базе, следящее за их состоянием и выдающее им команды, выбранные владельцем ботнета из списка всех возможных команд для бота.
  • malware-other.rules - фиксирует работу вредоносного ПО, не подпадающего под описание предыдущих двух пунктов.
  • malware-tools.rules - обнаруживают работу хакерского инструментария на узле сети
  • misc.rules - содержат правила, которые сложно распределить по другим категориям. Обычно, генерируют много ложных срабатываний. Имхо, можно отключить.
  • multimedia.rules - реагируют на открытие мультимедийных ресурсов в сети. Если это не запрещено в организации, то набор правил стоит отключить.
  • mysql.rules - регистрируют попытки атак на сервера баз данных под управлением MySQL
  • netbios.rules - обнаруживают деятельность некоторых сетевых червей, атакующих машины под управлением Windows. Часто выдают ложные срабатывания (особенно если дело касается правил управления общим доступом и правил, предупреждающих о доступе к SMBи NetBIOS). Если сенсор Snort'а наблюдает только за интернет-трафиком, или NetBIOSтрафик не выходит за пределы сети (и не входит в ее пределы), то рекомендуется отключить этот набор правил. 
  • nntp.rules - содержат сигнатуры атак на службы времени
  • oracle.rules - регистрируют известные атаки на сервера баз данных под управлением Oracle
  • other-ids.rules - фиксируют трафик, генерируемых другими системами обнаружения вторжений. Если в вашей сети других быть не должно, то срабатывания требуют проверки.
  • p2p.rules - обнаруживают трафик пиринговых программ (например, торрент-трекеров). Если в организации их использование разрешено, то можно отключить.
  • phishing-spam.rules - реагируют на обращения к фишинговым сайтам, и сайтам, адреса которых часто включаются в спам-рассылку.
  • policy.rules, policy-multimedia.rules, policy-other.rules, policy-social.rules - реагируют на активность, которая может быть запрещена политикой безопасности в некоторых организациях (например, анонимный вход по ftp, запуск java-апплетов плееров для проигрывания видео, доступ к gmail и т.п.). 
  • pop2.rules, pop3.rules - регистрируют потенциальные атаки на соответствующие почтовые службы. POP2 вряд ли используется в вашей сети, в этом случае набор правил pop2.rules можно отключить.
  • pua-p2p.rules - детектирует активность пиринговых программ, нарушающих законодательство (в частности, авторское право)
  • pua-toolbars.rules - правила касаются тулбаров (панелей инструментов, встраиваемых в браузер), нарушающих права (например, отправляющих статистику запросов на удаленный сервер без спроса пользователя). 
  • rpc.rules - регистрируют атаки на службы удаленного вызова процедур. Если такой трафик не поступает из внешней сети или во внешнюю сеть, то набор правил рекомендуется отключить.
  • rservices.rules - фиксируют команды удаленного доступа к системе (rlogin, rsh, rexec). Если они используются в Вашей сети легитимно, то этот набор правил стоит отключить. 
  • scada.rules - фиксируют атаки из внешней сети на scada-системы. Если такие не используются - отключать.
  • scan.rules - обнаруживают попытки сканирования сети. Содержат сигнатуры некоторых конкретных сетевых сканеров.
  • server-mail.rules - регистрируют попытки известных атак на почтовые сервера организации
  • shellcode.rules - обнаруживают в пересылаемых по сети пакетах шеллкод, что вероятнее всего легитимный трафик. По умолчанию - выключены, при включении значительно снижают производительность сервера Snort.
  • smtp.rules - регистрируют потенциальные атаки на почтовую службы SMTP
  • snmp.rules - фиксирует активность SNMP протокола (удаленное управление сетевым оборудованием). Протокол содержит много уязвимостей, но если этот трафик из внешней сети блокируется, то набор правил можно закомментировать. 
  • specific-threats.rules - обнаруживает потенциальные атаки направленные на уязвимости некоторых специальных приложений (например, Lotus Notes, Adobe RoboHelp, Veritas Backup Agent).
  • spyware-put.rules - реагируют на активность шпионского и другого нежелательного софта на узлах сети.
  • sql.rules - детектируют атаки на SQL-сервера.
  • telnet.rules - предупреждают об опасном трафике, пересылаемом во время telnet-сессии.
  • tftp.rules - сигнатуры потенциальных атак на службы tftp.
  • virus.rules - набор правил можно отключить, в силу того, что он не развивается активно. Отслеживание вирусной активности в этом наборе происходит путем поиска определенных файлов, пересылаемых по сети.
  • voip.rules - регистрируют ошибки и потенциальные атаки на средства голосового общения по сети.
  • web-activex.rules - регистрируют вызов функций ActiveX
  • web-attacks.rules - срабатывают при общих признаках атак на web-сервера. Генерируют большое количество ложных срабатываний, потому рекомендуется отключать.
  • web-cgi.rules - реагируют на атаки против CGI-служб
  • web-client.rules - срабатывает при обнаружении потенциально опасного трафика со стороны клиентских веб-приложений. Рекомендуется рассмотреть возможность отключения данного набора, т.к. велико количество ложных срабатываний (например, их в большом количестве вызывает работа Outlook Express и MS Outlook).
  • web-coldfusion.rules - реагируют на потенциальные атаки направленные против веб-приложений написанных на языке ColdFusion.
  • web-frontpage.rules - обнаруживают атаки на службы FrontPage
  • web-iis.rules - обнаруживают атаки на веб-сервера IIS
  • web-misc.rules - регистрируют основные признаки атак на другие веб-службы
  • web-php.rules - регистрируют атаки на веб-сервера, на которых выполняются PHP-скрипты.
  • x11.rules - фиксируют потенциальные атаки использующие уязвимости графического интерфейса UNIX-подобных ОС.
Вот только на что обращать внимания, а на что нет не представлялось возможным, ибо где установлено какое ПО и каких версий не знал никто, не было никакого списка, "что разрешено и что запрещено" соответственно, какие правила закомментировать, а какие нет сказать было нельзя. Более того, при обнаружении подозрительной активности не было регламентировано, что же делать...

Собственно вывод: нельзя внедрять СОВ, пока детально не проработана политика безопасностии правила реагирования на инциденты.
Alt text

Если вам нравится играть в опасную игру, присоединитесь к нам - мы научим вас правилам!

Подписаться