ACARM-ng
Originalförfattare |
|
---|---|
Utvecklare | WCSS |
Initial release | 14 februari 2011 |
Stabil frisättning | 1.1.1 / 29 maj 2012
|
Skrivet i | |
Operativ system | Linux |
Företrädare | ACARM |
Typ | |
Licens | GPLv2 |
Hemsida |
ACARM-ng (Alert Correlation, Assessment and Reaction Module - nästa generation) är ett IDS / IPS- system med öppen källkod . ACARM-ng är en varningskorrelationsprogramvara som avsevärt kan underlätta analyser av trafik i datornätverk. Den ansvarar för insamling och korrelation av varningar som skickas av nätverks- och värdsensorer, även kallade NIDS respektive HIDS . Korrelationsprocessen syftar till att minska det totala antalet meddelanden som behöver ses av en systemadministratör till så få som möjligt genom att slå samman liknande händelser i grupper som representerar logiska delar av skadlig aktivitet.
Historia
Den första versionen av ACARM utvecklades inom ramen för det europeiska forskningsprojektet POSITIF mellan 2004 och 2007. Den har skrivits på Java som ett praktiskt bevis på konceptet, som presenteras i artikeln. Trots dess dåliga skalbarhet och effektivitetsproblem visade sig programvaran vara mycket användbar.
I slutet av 2009 blev det uppenbart att den nuvarande designen hade allvarliga brister med dålig prestanda i första hand. Som ett resultat av detta avbröts projektet. Senare samma år lanserades ett nytt projekt med smeknamnet ACARM-ng som syftade till att ersätta den ursprungliga ACARM. ACARM-ng skulle föra varningskorrelationen till en ny dimension tack vare dess skalbarhet och plugin-baserade arkitektur. Det har utvecklats aktivt sedan 2009 av Wroclaw Center for Networking and Supercomputing som en del av PL-Grid- projektet.
Funktioner
ACARM-ngs huvudfunktioner inkluderar:
- generiskt ramverk (systemet kan enkelt utökas med plug-ins)
- flertrådig implementering
- lågt CPU- utnyttjande och minnesfotavtryck
- implementering med hjälp av state-of-art, objektorienterade designmetoder
- återkommande bearbetning av varningar
- information och reaktion i realtid
- webbaserad datavisualisering
- långa korrelationstidsfönster, som inte försenar rapporteringen
Arkitektur
ACARM-ng består av 3 huvudelement: korrelationsdemon , WUI och (valfritt) en databasmotor.
ACARM-ngs demon har designats från grunden som en ramlösning. Det tillhandahåller kärnsystemfunktioner, som loggning, varningar och korrelerade metavarningar som skickas mellan systemdelar, felåterställning, multi-threading, etc.. Resten av paketet är plugin-program, uppdelade i följande klasser:
- persistens (dataabstraktion)
- input (datainsamling)
- filter (datakorrelation och modifiering)
- trigger (automatisk rapportering och reaktion)
Inbyggd mjukvaruövervakning ger uppdaterad information om systemstatus.
WUI gör bläddring av korrelerad data enkel via grafisk och tabellformig representation av insamlade och korrelerade händelser. Systemadministratören kan enkelt se vad som händer vid varje ögonblick av systemets livstid.
WUI:n och demonen samverkar genom en databas. Daemon lagrar insamlad data tillsammans med korrelationsresultaten och dess körtidskonfiguration. WUI har rätt att läsa och visa dessa data.
Observera att även om en databasmotor inte krävs för att köra demon, rekommenderas det starkt att spara data konsekvent. Att inte använda databasen gör det omöjligt att få systeminformation via WUI och leder till förlust av historisk data när systemet startas om. Händelser som inte längre bearbetas av demonen kasseras också.
Förprocessor
Det är ofta nödvändigt att begränsa mängden inkommande data (till exempel: ta bort varningar som höjs med jämna mellanrum av cron scripts). För att tillåta användare att anpassa systemets input till sina egna behov tillhandahålls en speciell "förprocessor"-komponent. Det gör det möjligt att definiera en kedja av regler för acceptera-om-matchning och avvisa-om-matchning för att acceptera eller avvisa inkommande varningar innan de går in i korrelationsmotorn.
Plugins
ACARM-ngs demon tillåter tillägg och borttagning av nya plugin-program utan att behöva kompilera om kärnpaketet. Det gör systemutveckling och testning mycket enklare.
Varje plugin som ska användas måste först konfigureras i huvudkonfigurationsfilen.
Persistens
Persistens ger abstraktion på lagringsnivå. Detta generiska gränssnitt kan användas för att implementera vilken datasparande back-end som helst, så länge som transaktionsmekanism finns.
Den senaste, stabila versionen av ACARM-ng tillhandahåller följande beständighetsimplementeringar:
- stubbar (ignorerar alla skrivförfrågningar - data sparas inte)
- postgres (använder PostgreSQL- databas för att lagra information)
Inmatning
En ingång ger en abstraktion av en datainsamlingsmekanism. Det enda kravet på implementeringen är att skicka ut varningar i en ACARM-ng-kompatibel form.
Den senaste, stabila versionen av ACARM-ng tillhandahåller följande ingångsimplementationer:
- fil (läser XML- filer i IDMEF- format)
- prelude (läs varningar från Prelude-Manager datainsamlingspunkt)
Filtrera
Ett filter ger en abstraktion av korrelations- och datauppdateringsmekanismen. Det finns inga begränsningar för vad filtret kan göra med metavarningen, även om den vanligaste användningen är att korrelera liknande varningar (speciellt avstämt API tillhandahålls för detta specialfall).
Den senaste, stabila versionen av ACARM-ng tillhandahåller följande filterimplementationer:
- en till en (korrelerar händelser mellan ett par värdar)
- en till många (korrelerar händelser, där källvärden är densamma för alla varningar)
- många till en (korrelerar händelser, där målvärden är densamma för alla varningar)
- många till många (korrelerar händelser, där en uppsättning käll- och destinationsvärdar av korrelerade varningar liknar varandra)
- DNS- resolver (löser IP- adresser till DNS-namn, om möjligt)
- IP svart lista (ändrar prioritet för varningar med käll-/destinationsadresser som tillhör misstänkta nätverk)
- samma namn (korrelerar händelser med samma namn)
- händelsekedja (korrelerar händelser som hände i kronologisk ordning, på nästa-i-raden maskiner; en sådan lösning är sällsynt och kan indikera "skanning, inbromsning, eskalering"-sekvens)
- användare övervakar (korrelerar händelser som utlösts av en användares handlingar)
- likhet (korrelerar händelser som liknar varandra, över ett givet tröskelvärde; all data beaktas vid jämförelse av två element)
- ny händelse (ändrar prioritet för händelser som inte tidigare setts i systemet)
- python (använder Python - skript som tillhandahålls av användaren för händelsekorrelation)
Utlösare
En trigger ger en abstraktion av rapporterings- och reaktionsmekanismen. Utlösare genom design, tillåts inte ändra innehållet i data, men initierar ett svar på varningar. Typisk användning är realtidsrapportering av misstänkta händelser till administratörer (till exempel via e-post) och automatisk reaktion på den upptäckta tråden (till exempel blockering av skadlig värd på en brandvägg).
Den senaste, stabila versionen av ACARM-ng tillhandahåller följande triggerimplementationer:
- informera administratören om misstänkta händelser:
- fil (skapar filer i IDMEF- format, med korrelerade händelser)
- gg (använder Gadu-Gadu instant messenger -protokoll)
- jabber (använder XMPP (tidigare hette Jabber) instant messenger- protokoll)
- post (sänder elektronisk post )
- tillhandahålla medel för automatisk reaktion:
Varje utlösare kan ställas in oberoende för att reagera på ett specifikt tröskelvärde, korrelerat varningsantal eller någon annan regel, definierad på samma sätt som demonens huvudförprocessor. Ett sådant tillvägagångssätt ger en helt konfigurerbar lösning, som gör det möjligt att definiera godtyckliga komplexa regler, för att minimera falska positiva, speciellt när systemet är konfigurerat att utföra autonom reaktion på de misstänkta händelserna.