![]() | |
Разработчик(и) | Себастьен Тебер и другие |
---|---|
Первоначальный выпуск | Декабрь 2005 г. [1] |
Стабильный релиз | 1.0.16 / 3 июня 2017 г. ( 2017-06-03 ) [2] |
Репозиторий |
|
Написано в | Perl , ASP |
Операционная система | линукс |
Тип | Анализ журналов , программное обеспечение безопасности |
Лицензия | GPLv2 |
Веб-сайт | осьминожка.pm |
Octopussy , также известный как 8Pussy , — это бесплатное программное обеспечение с открытым исходным кодом , которое отслеживает системы, постоянно анализируя данные системного журнала , которые они генерируют и передают на центральный сервер Octopussy (поэтому его часто называют решением SIEM ). [3] Таким образом, такое программное обеспечение, как Octopussy, играет важную роль в поддержании системы управления информационной безопасностью в средах, соответствующих стандарту ISO/IEC 27001 .
Octopussy имеет возможность контролировать любое устройство, поддерживающее протокол syslog , например , серверы , маршрутизаторы , коммутаторы, брандмауэры , балансировщики нагрузки , а также его важные приложения и службы . Основная цель программного обеспечения — оповещать администраторов и пользователей о различных типах событий, таких как сбои в работе системы, атаки на системы или ошибки в приложениях. [4] Однако, в отличие от Nagios или Icinga , Octopussy не является средством проверки состояния , и поэтому проблемы не могут быть решены в приложении. Программное обеспечение также не дает никаких предписаний относительно того, какие сообщения должны/не должны анализироваться. Таким образом, Octopussy можно рассматривать как менее мощное, чем другое популярное коммерческое программное обеспечение в той же категории (мониторинг событий и анализ журналов). [5]
Octopussy совместим со многими дистрибутивами Linux , такими как Debian , Ubuntu , OpenSUSE , CentOS , RHEL и даже метадистрибутивами, такими как Gentoo или Arch Linux . Хотя Octopussy изначально был разработан для работы на Linux, его можно портировать на другие варианты Unix, такие как FreeBSD, с минимальными усилиями. Octopussy имеет обширные функции генерации отчетов, а также различные интерфейсы для другого программного обеспечения, например, NSCA (Nagios), Jabber/XMPP и Zabbix . С помощью такого программного обеспечения, как Snare, можно обрабатывать даже журналы событий Windows . [6]
Octopussy распространяется в соответствии с условиями GNU General Public License .
Хотя Octopussy является бесплатным программным обеспечением с открытым исходным кодом, оно обладает рядом характеристик, которые также встречаются в некоторых профессиональных корпоративных приложениях, таких как Splunk , SAWMILL или Kiwi Syslog.
На момент написания статьи Octopussy обладал следующим набором функций:
Некоторые из (мета-)сервисов , поддерживаемых/известных Octopussy:
Apache 2, BIND, ядро BSD, BSD PAM, система BSD, маршрутизаторы Cisco (ASR), коммутаторы Cisco, ClamAV, обратный прокси-сервер DenyAll, DRBD, F5 BigIP, Fortinet FW, HP-Tools, Ironport MailServer, Juniper Netscreen FW, Juniper Netscreen NSM, LDAP, Linux AppArmor, Linux Auditd, Linux IPTables, ядро Linux, Linux PAM, система Linux, Monit, MySQL, Nagios, Neoteris/Juniper FW, NetApp NetCache, Postfix, PostgreSQL, Samba, Samhain, SNMPd, Squid, SSHd, Syslog-ng, TACACS, VMware ESX(i), Windows Snare Agent, система Windows, Xen ... [7]
События, которые могут быть получены от служб и, следовательно, обработаны Octopussy, включают:
Программное обеспечение требует установки RSYSLOG на сервере syslog и ожидает, что отслеживаемые системы будут запускать одну из многочисленных доступных служб syslog, например, syslogd /klogd, RSYSLOG или syslog-ng. [8]
Программное обеспечение также зависит от установленного Apache 2 HTTP Server с Apache::ASP, Mod_Perl и Mod_SSL. Octopussy также требует MySQL DBMS (фактическая база данных устанавливается/копируется во время установки Octopussy), а также установленный в операционной системе последний интерпретатор Perl с различными модулями Perl из CPAN (например, Crypt::PasswdMD5, DBD::mysql, JSON , Unix::Syslog, XML ::Simple). [9] Полный список этих модулей можно найти в файле README.txt пакетов/архивов программного обеспечения . Кроме того, требуются NSCD и RRDtool. RRDtool помогает в создании графиков, которые будут отображаться на панели инструментов Octopussy или показаны на уровне каждого устройства/службы. [10]
Octopussy получает сообщения syslog через протокол syslog и, следовательно, ведет себя пассивно, не запуская никаких сетевых агентов на удаленных машинах, находящихся под мониторингом / наблюдением . [11] Octopussy полностью соответствует RFC 3164 и RFC 3195 IETF , описывающим syslog как механизм ведения журнала в операционных системах Unix/BSD. [12] [13] Это особенно касается внутреннего представления объекта и принципа серьезности , где это применимо.
Программное обеспечение управляется полу -состоянным движком корреляции событий . Это означает, что движок записывает и, таким образом, знает свое внутреннее состояние, но использует его только в некоторой степени для связывания логически связанных элементов для одного и того же устройства, чтобы сделать вывод (т. е. сгенерировать оповещение). В Octopussy полу-состоянный движок корреляции с его так называемым скользящим окном (сдвигающееся окно является логической границей ряда событий в течение определенного периода времени) способен сравнивать известные прошлые события с настоящими на основе ограниченного числа сравнительных значений.
Octo-Dispatcher — это компонент, используемый программным обеспечением Octopussy для получения строк syslog из RSYSLOG и отправки их в каталоги устройств. [14] Каждое устройство, зарегистрированное и активированное в Octopussy, получает свои сообщения syslog, назначенные ему в зависимости от имени устройства. Также следует отметить смежный компонент Octo-Replay, который является программой, используемой программным обеспечением Octopussy для воспроизведения сообщений журнала для некоторого устройства или службы (она получает и обрабатывает распознанные журналы и помещает их обратно во входящий каталог).
Octo-Parser и Octo-Uparser — два важнейших основных компонента Octopussy. Octo-Parser — это программа, используемая программным обеспечением Octopussy для разбора журналов в формате syslog для каждого устройства, зарегистрированного в Octopussy. [15] В основном он использует движок регулярных выражений и начинает сопоставление с шаблоном входящих сообщений syslog. Octo-Uparser перезапускается каждый раз при изменении служб устройства, чтобы проверить, можно ли связать ранее полученные «неизвестные» сообщения журнала со службой.
В некоторых случаях Octo-Pusher также вызывается заранее для обработки не-syslog сообщений, поступающих с некоторых устройств. В этом отношении настройка устройства "асинхронный" полезна для обработки таких сообщений журнала после того, как они были отправлены на сервер Octopussy с помощью, например, FTP, rsync или SSH/SCP.
Интерфейс Octopussy ( GUI ) является пользовательским интерфейсом по умолчанию и обеспечивает управление конфигурацией , управление устройствами и службами, а также определение оповещений и, следовательно, расширяет основные компоненты Octopussy. Устройства отображаются в табличной форме на странице «Устройства» со следующими минимальными дескрипторами: имя хоста , IP-адрес , тип журнала, модель/тип устройства, полное доменное имя и ОС .
Таким образом, интерфейс (Octo-Web) в основном обеспечивает доступ к другим основным компонентам Octopussy, таким как Octo-Commander, Octo-Message-Finder, Octo-Reporter и Octo-Statistic-Reporter. Интерфейс Octopussy/GUI написан на Perl 5, используя Apache::ASP для структурирования и отображения контента. [16]
В дополнение к этому, основные службы Octopussy также могут быть доступны из оболочки операционной системы. Это представляет собой удобный способ для администраторов запускать/останавливать службы или вносить фундаментальные изменения в конфигурацию.
Генератор графиков Octopussy RRD является основным компонентом программного обеспечения и устанавливается по умолчанию. Поскольку генерация таких графиков очень ресурсоемка, администраторы могут отключить его на сервере syslog Octopussy с менее мощным ЦП и небольшим объемом оперативной памяти . Сгенерированные графики RRD отображают активность всех активных служб для отслеживаемых устройств, в значительной степени зависящую от конкретной службы. После перезапуска программного обеспечения Octopussy или во время работы Octo-Dispatcher и Octo-Parser всегда будут обрабатывать сообщения syslog в своем буфере и очереди в первую очередь, а генерация графика RRD задерживается. [17] Octo-RRD также зависит от Octo-Scheduler для выполнения функции Octopussy::Report с целью генерации графиков RRD активности syslog, которые были запланированы ранее. Наконец, Octo-Sender имеет возможность отправлять данные отчетов произвольным получателям.
В Octopussy есть система плагинов / модулей , которая в основном ориентирована на модификацию отчетов Octopussy. Такой плагин состоит из файла описания, который определяет имя и функции плагина, и файла кода с кодом perl для обработки фактических данных. [18]
Существуют также расширения для программного обеспечения, связанного с Octopussy, например, плагин Nagios , который проверяет основные службы Octopussy (т. е. Octo-Dispatcher, Octo-Scheduler и т. д.), а также состояния парсера Octopussy и разделы журнала. [19]
Создание новых сервисов и шаблонов сервисов представляет собой наиболее важный способ расширения Octopussy без внесения изменений в исходный код. Однако, поскольку шаблоны представлены в виде упрощенных регулярных выражений , администраторы должны иметь хотя бы некоторые базовые знания о регулярных выражениях в целом. Кроме того, настоятельно рекомендуется опираться на уже существующие сервисы, а также понимать значение основных полей объектов сообщений, которые являются идентификатором сообщения, шаблоном, уровнем журнала, таксономией, таблицей и рангом. [20]
Обычно мастер журналов используется для поиска в системе нераспознанных сообщений syslog на каждом устройстве для генерации новых шаблонов обслуживания. В ходе процесса создание шаблонов должно осуществляться таким образом, чтобы Octopussy мог различать сообщения на основе их серьезности и таксономии . [21]