Octopussy (programvara)

Octopussy
Utvecklare Sebastien Thebert och andra
Initial release december 2005
Stabil frisättning
1.0.16 / 3 juni 2017 ; 5 år sedan ( 2017-06-03 )
Förvar
Skrivet i Perl , ASP
Operativ system Linux
Typ Logganalys , säkerhetsprogramvara
Licens GPLv2
Hemsida bläckfisk .pm

Octopussy , även känd som 8Pussy , är en gratis datorprogramvara med öppen källkod som övervakar system genom att ständigt analysera syslogdata som de genererar och överför till en sådan central Octopussy-server (så kallad SIEM -lösning). Därför spelar programvara som Octopussy en viktig roll för att upprätthålla ett ledningssystem för informationssäkerhet inom ISO/IEC 27001- kompatibla miljöer.

Octopussy har förmågan att övervaka alla enheter som stöder syslog- protokollet , såsom servrar , routrar , switchar, brandväggar , lastbalanserare och dess viktiga applikationer och tjänster . Huvudsyftet med programvaran är att uppmärksamma dess administratörer och användare på olika typer av händelser, som systemavbrott, attacker på system eller fel i applikationer. Men till skillnad från Nagios eller Icinga är Octopussy inte en tillståndskontrollerare och därför kan problem inte lösas i applikationen. Programvaran ger inte heller något som helst recept på vilka meddelanden som måste/inte får analyseras. Som sådan kan Octopussy ses som mindre kraftfull än annan populär kommersiell programvara i samma kategori (händelseövervakning och logganalys).

Octopussy är kompatibel med många Linux- systemdistributioner som Debian , Ubuntu , OpenSUSE , CentOS , RHEL och till och med metadistributioner som Gentoo eller Arch Linux . Även om Octopussy ursprungligen designades för att köras på Linux, kunde den portas till andra Unix-varianter som FreeBSD med minimal ansträngning. Octopussy har omfattande rapportgenererande funktioner och även olika gränssnitt till annan mjukvara, som t.ex. NSCA (Nagios), Jabber/XMPP och Zabbix . Med hjälp av programvara som Snare kan även Windows EventLogs bearbetas.

Octopussy är licensierad under villkoren i GNU General Public License .

Egenskaper

Även om Octopussy är gratis programvara med öppen källkod har den en mängd olika egenskaper som också finns i vissa professionella företagsprogram som Splunk , SAWMILL eller Kiwi Syslog.

A screenshot of the Octopussy web-interface displaying a dashboard with the most important aggregated information.
Instrumentpanelssidan i Octopussy 0.9.4+ (2007-2014)

Octopussy funktioner

I skrivande stund kommer Octopussy med följande uppsättning funktioner:

  • Grundläggande LDAP- stöd ( v 1.0+) för Octopussy-användare och kontakter med filtermekanism
  • Varningssändning via e-post, IM (Jabber), NSCA (Nagios) och Zabbix
  • Kartfunktionalitet för att visa systeminfrastrukturen känd för Octopussy
  • Exporterbara rapporter via e-post, FTP och SCP
  • In- och utdataplugins för manuella och automatiska rapporter
  • Rapportschemaläggning och automatisk rapportgenerering baserat på parametrar
  • En loggvisare för att söka efter syslog-meddelanden som tas emot av Octopussy
  • Ett RRD-verktyg för att tillhandahålla datagrafer av syslog-aktivitet för aktiverade tjänster
  • Omfattande tjänstedefinitioner (Apache 2, BIND, BSD Kernel ...)
  • En guide för att enkelt skapa nya tjänster och/eller meddelandemönster för befintliga tjänster
  • Ett alternativ för att aktivera eller inaktivera tjänster och varningar för varje system under övervakning
  • Onlineuppdateringar för tjänster, tabeller och l18n (språkstöd)
  • Flerspråksstöd: Engelska Franska Tyska Italienska Spanska Portugisiska Ryska
  • Ett webbgränssnitt för att se aktuell enhetsstatus, varningar, loggmeddelanden, etc.
  • Ett temabart gränssnitt och rapportdokument
  • Hanterbarhet för Octopussys kärntjänster från operativsystemets skal
  • Platttextformaterade konfigurationsfiler (integreras med många konfigurationsredigerare)
  • Ett alternativ för att snabbt rotera och lagra mottagna syslog-meddelanden på olika platser
  • Användarhantering med möjlighet till granulär behörighetskonfiguration
  • Enkel översikt över stilar och GUI -komponenter i ASP för enkel modifiering

Tjänster som stöds

Några av de (meta-)tjänster som stöds av/kända av Octopussy är:

Apache 2, BIND, BSD Kernel, BSD PAM, BSD System, Cisco Routers (ASR), Cisco Switchar, ClamAV, DenyAll Reverse Proxy, DRBD, F5 BigIP, Fortinet FW, HP-Tools, Ironport MailServer, Juniper Netscreen FW, Juniper Netscreen NSM, LDAP, Linux AppArmor, Linux Auditd, Linux IPTables, Linux Kernel, Linux PAM, Linux System, 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 System, Xen ...

A screenshot of the Octopussy web-interface displaying the alert viewer with present incident alert messages.
Varningsvisningssidan i Octopussy 0.9.4+ (2007-2014)

Bearbetbara händelser

Händelser som tas emot från tjänster och därmed kan behandlas av Octopussy inkluderar:

  • Misslyckade och/eller lyckade inloggningar, särskilt för högre privilegierade användare
  • Brott mot åtkomstbehörigheter eller policyer i applikationer och operativsystem
  • Skriv- och/eller läsbehörighet i kritiska miljöer, t.ex. med AppArmor eller SELinux
  • Etablerade eller avslutade VPN-tunnlar i system, som t.ex. Juniper Netscreen
  • Objekt som processer eller filer som har ändrat säkerhetskontext eller konfiguration
  • Startade eller stoppade processer på operativsystemnivå
  • Kritiska systemtillstånd som (oåterställbart) hårdvaru- eller mjukvarufel
  • Ändring i operativsystemets tillstånd på grund av uppstart, omstart eller avstängning
  • Information om nätverksanslutningar/trafik, inklusive ICMP-meddelanden, etc.
  • Upptäckt eller annan hantering av skadlig programvara (t.ex. maskar, virus, trojaner)

Beroenden

Programvaran kräver RSYSLOG installerat på syslog-servern och förväntar sig att system som övervakas kör en av de många tillgängliga syslog-tjänsterna, som t.ex. syslogd /klogd, RSYSLOG eller syslog-ng.

Programvaran beror vidare på Apache 2 HTTP-servern installerad, med Apache::ASP, Mod_Perl och Mod_SSL. Octopussy kräver också en MySQL DBMS (faktisk databas installeras/kopieras under installationen av Octopussy) samt en ny Perl-tolk installerad på operativsystemet, med en mängd olika Perl-moduler från CPAN (t.ex. Crypt::PasswdMD5, DBD::mysql, JSON , Unix::Syslog, XML ::Simple). En omfattande lista över dessa moduler finns i filen README.txt för mjukvarupaket/arkiv. Utöver det är NSCD och RRDtool ett krav. RRDtool hjälper till att skapa grafer som kommer att visas på Octopussy- instrumentbrädan eller visas på en per enhet/per-servicenivå.

Arkitektur

An image that displays the architecture of the Octopussy software including its most important components.
Architecture of Octopussy 1.0.14 (2014)

Octopussy tar emot syslog-meddelanden via syslog-protokollet och beter sig därför passivt och kör inte någon typ av nätverksagent fjärrdatorerna under övervakning / övervakning . Octopussy överensstämmer helt med RfC 3164 och RfC 3195 i IETF , och beskriver syslog som loggningsmekanismen i Unix-liknande/BSD-operativsystem. Detta inkluderar särskilt den interna representationen av anläggningen och allvarlighetsprincipen där tillämpligt.

Mjukvaran drivs av en semi- statlig händelsekorrelationsmotor . Detta innebär att motorn registrerar och därmed känner till sitt interna tillstånd, men bara använder det till viss del för att länka samman logiskt relaterade element för samma enhet, för att dra en slutsats (dvs. generera en varning). I Octopussy kan den semi-statliga korrelationsmotorn, med sitt så kallade glidande fönster (ett skiftande fönster är den logiska gränsen för ett antal händelser under en viss tidsperiod), jämföra kända tidigare händelser med nuvarande baserat på en begränsad antal jämförande värden.

Octopussy avsändare

Octo-Dispatcher är den komponent som används av Octopussy-mjukvaran för att ta emot syslog-rader från RSYSLOG och skicka dem till enhetskataloger. Varje enhet som registreras och aktiveras inom Octopussy får sina syslog-meddelanden tilldelade beroende på enhetens namn. Anmärkningsvärt är också den intilliggande Octo-Replay-komponenten, som är programmet som används av Octopussy-mjukvaran för att spela upp loggmeddelanden för någon enhet eller tjänst (den tar emot och bearbetar igenkända loggar och lägger tillbaka dem i den inkommande katalogen).

Octopussy Parser

Octo-Parser och Octo-Uparser är två av Octopussys viktigaste kärnkomponenter. Octo-Parser är programmet som används av Octopussy-mjukvaran för att analysera loggar i syslog-format för varje enhet som är registrerad inom Octopussy. Den använder i princip en regex -motor och startar mönstermatchning på inkommande syslog-meddelanden. Octo-Uparsern startas om varje gång enhetens tjänster ändras, för att kontrollera om tidigare mottagna "okända" loggmeddelanden kan kopplas till en tjänst.

I vissa fall anropas Octo-Pusher också i förväg för att behandla icke-syslog- meddelanden som kommer in från vissa enheter. I det avseendet är enhetsinställningen "asynkron" användbar för att behandla sådana loggmeddelanden, efter att de skickats till en Octopussy-server med t.ex. FTP, rsync eller SSH/SCP.

A screenshot of the Octopussy web-interface displaying an RRD graph with cumulative device message data.
En RRD-grafsida i Octopussy 0.9.4+ (2007-2014)

Octopussy gränssnitt

Octopussy-gränssnittet ( GUI ) är standardanvändargränssnittet och tillhandahåller konfigurationshantering , enhets- och tjänstehantering samt varningsdefinition och utökar därför Octopussy-kärnkomponenterna. Enheter visas i tabellform på Enheter , med följande beskrivningar som ett minimum: värdnamn , IP-adress , loggtyp, enhetsmodell/typ, FQDN och OS .

Därför ger gränssnittet (Octo-Web) huvudsakligen tillgång till andra Octopussy-kärnkomponenter som Octo-Commander, Octo-Message-Finder, Octo-Reporter och Octo-Statistic-Reporter. Octopussy front-end/GUI är skrivet i Perl 5 och använder Apache::ASP för att strukturera och visa innehåll.

Utöver det kan Octopussy kärntjänster också nås från operativsystemets skal. Det är ett bekvämt sätt för administratörer att starta/stoppa tjänster eller göra grundläggande konfigurationsändringar.

Octopussy RRD

Octopussy RRD- grafgeneratorn är en kärnkomponent i programvaran och installerad som standard. Eftersom genereringen av sådana grafer är mycket resurskrävande kan administratörer välja att inaktivera den på en Octopussy syslog-server med en mindre kraftfull CPU och en låg mängd RAM . De genererade RRD-graferna visar aktiviteten för alla aktiva tjänster för övervakade enheter, mycket beroende på den specifika tjänsten. Efter en omstart av Octopussy-mjukvaran eller under drift kommer Octo-Dispatcher och Octo-Parser alltid att bearbeta syslog-meddelanden i deras buffert och först och generering av RRD-grafer försenas. Octo-RRD är vidare beroende av Octo-Scheduler för att exekvera Octopussy::Report-funktionen för att generera syslog-aktivitets-RRD-grafer, som har schemalagts tidigare. Slutligen har Octo-Sender möjlighet att skicka rapportdata till godtyckliga mottagare.

Tillägg

Det finns ett plug-in / modulsystem i Octopussy, som huvudsakligen är inriktat på modifiering av Octopussy-rapporter. En sådan plug-in består av en beskrivningsfil, som definierar plugin-namnet och funktionerna, och en kodfil med perl-kod för att bearbeta själva data.

Det finns också tillägg för programvara relaterad till Octopussy, som t.ex. en Nagios plug-in som kontrollerar Octopussy kärntjänster (dvs Octo-Dispatcher, Octo-Scheduler, etc.) samt Octopussy parsertillstånd och loggpartitioner.

Tjänster och mönster

Skapandet av nya tjänster och tjänstemönster är det viktigaste sättet att utöka Octopussy utan att göra ändringar i källkoden. Men eftersom mönster beskrivs som förenklade reguljära uttryck bör administratörer ha åtminstone en del grundläggande kunskaper om regex i allmänhet. Det rekommenderas vidare starkt att bygga på redan befintliga tjänster och även förstå innebörden av ett meddelandeobjekts grundläggande fält, som är meddelande-ID, mönster, loggnivå, taxonomi, tabell och rang.

Vanligtvis används loggguiden för att söka i systemet efter okända syslogmeddelanden per enhet för att generera nya tjänstemönster. Under processen bör skapandet av mönster vara på ett sätt som gör det möjligt för Octopussy att särskilja meddelanden baserat på deras svårighetsgrad och taxonomi .

Se även

externa länkar