Arkiv för 'Logging "kategorin

Kombinera logwatch och OSSEC - Del 4

18 feb 2010

I mitt senaste inlägg installerade vi logwatch samt OSSEC. Det är nu dags att få logwatch och OSSEC spela tillsammans i samma sandlåda. I det här inlägget ska jag diskutera hur man får logwatch sammanfatta den information som genereras av OSSEC.

Distributionsalternativ

Vi har två vägar vi kan följa för att ställa in det:

  1. Har logwatch tolka OSSEC loggar direkt.
  2. Har OSSEC skicka sina meddelanden till en Syslog typ server, kör logwatch på Syslog servern.

Nyttan för alternativ # 1 är att vi bara behöver ett system. Logwatch kommer att köras på systemet värd för OSSEC servern. Problemet vi kommer att stöta på men innebär OSSEC varning filen. Loggposterna inte får normaliseras. Detta innebär att formatet kan ändras från uppgift till uppgift, och kan även spridas över flera rader. Det kommer att bli en riktig mardröm att skapa en logwatch skript som filtrera och sammanfatta varningsinformation.

Om vi ​​går med alternativ # 2 kommer vi att kräva en annan låda att fungera som vår centraliserad loggning server. I syfte att ha den OSSEC-servern acceptera loggposterna från icke-agent system, har den för att lyssna på UDP/514. Detta är samma port som används av en centraliserad loggning server, och du kan inte ha två ansökningar dela på samma port (utom med Windows, men uttag tillgång är mycket rörigt). På plussidan kommer larm posterna blir normaliseras när de överförs till syslog servern så skapar en logwatch sammanställning skript kommer att bli mycket lättare. Vidare vet logwatch redan till de vanliga Syslog filerna, så vi kommer att ha mindre anpassning att göra.

Slutligen nämnde jag i ett tidigare inlägg som OSSEC inte är avsedd att vara ett SIM-kort. Detta beror på att det inte spela in allt, bara de händelser som genererar en varning. Så vi förmodligen kommer att ha en central server i alla fall, och det är vettigt att ha det lagra information som genereras av OSSEC.

Så om det låter som jag styra dig mot alternativ # 2, du är helt korrekt. Med det sagt, jag ska faktiskt till att omfatta alternativ # 1 eftersom det är en betydligt mer komplicerad installation.

Hantering av datum / tid Frimärken

Ta en titt på de viktigaste OSSEC loggfilen och du bör se ut ungefär så här:

[Root @ Fubar loggar] # tail -3 / var / ossec / logs / ossec.log

2010/02/18 00:32:05 ossec-rootcheck: INFO: Ending rootcheck scan.

2010/02/18 14:27:06 ossec-syscheckd: INFO: Start syscheck scan.

2010/02/18 14:39:21 ossec-syscheckd: INFO: Ending syscheck scan.

Notera hur datum / tid stämpel formateras. Detta är annorlunda än de flesta applikationer, så det första vi behöver göra är att berätta logwatch hur man skall hantera detta format. Vi kommer att behöva skapa ett skript som vi kan kalla när det behövs som förstår formatet som visas ovan.

Börja med att flytta in den delade skript katalogen:

cd / usr / share / logwatch / scripts / delad

Använd din favorit editor, skapa en fil med namnet "applylongdate":

VI applylongdate

Här är vad du behöver inne i den filen. Känn dig fri att kopiera / klistra in från den här sidan:

Använd logwatch ": datum ';

min $ Debug = $ ENV {'LOGWATCH_DEBUG'} | | 0;

$ SearchDate = TimeFilter ('% Y /% m /% d% H:% M:% S');

if ($ Debug> 5) {

print stderr "DEBUG: Inside ApplyLongDate ... \ n";

print stderr "DEBUG: Söker:". $ SearchDate. "\ N";

}

while (definierad ($ ThisLine = <STDIN>)) {

if ($ ThisLine = ~ m / ^ $ SearchDate / o) {

print $ ThisLine = ~ s / ^ .... \ / .. \ / .. ..: ..: .. / /;

skriva ut $ ThisLine;

}

}

# VI: shiftwidth = 3 syntax = perl tabstop = 3 et

När du sparar filen måste vi nu att ställa in rätt behörigheter:

chmod 755 applylongdate

Konfigurera loggfiler

Nästa vi måste berätta för logwatch var OSSEC loggfiler finns. Varje gång du lägger till nya loggfiler eller skapa nya tjänster för att övervaka i logwatch, bör du placera dina ändringar i filen / etc / logwatch katalogen. Vi kommer att skapa två konfigurationsfiler. Den första kommer att hantera OSSEC meddelanden och den andra kommer att hantera OSSEC varningar och aktiva förändringar svar.

Låt oss börja med att skapa konfigurationsfilen för den huvudsakliga OSSEC loggfilen:

cd / etc / logwatch / conf / loggfiler

VI ossec.conf

Innehållet i filen ska som följer:

Logfile = / var / ossec / logs / ossec.log

* ApplyLongDate =

Du kan nu spara och avsluta filen. Därefter kommer vi att skapa konfigurationsfilen för återstående loggfiler:

VI ossec-alert.conf

Innehållet i denna filen ska som följer:

Logfile = / var / ossec / logs / aktiv responses.log

Logfile = / var / ossec / logs / varningar / alerts.log

Logfile = / var / ossec / logs / brandvägg / firewall.log

När du är klar, spara och avsluta. De standardbehörigheter bör vara acceptabel för vår inställning.

Konfigurering av OSSEC Tjänster

Sedan behöver vi definiera OSSEC tjänster och identifiera vad vi vill använda som en titel när rapporter genereras. Så här skapar den första filen:

cd / etc / logwatch / conf / services

VI ossec.conf

Innehållet i denna fil är ganska enkel:

Title = "OSSEC meddelanden"

Logfile = ossec

När du är klar kan du spara och avsluta. Vi måste skapa en större fil i denna katalog:

VI ossec-alert.conf

Innehållet i den här filen bör vara:

Title = "OSSEC alarm"

Logfile = ossec-alert

När du är klar, spara och avsluta som vanligt.

Analysera Posterna

Sedan behöver vi tala om för logwatch hur du formaterar loggposterna i rapporten. Vi kommer att behöva skapa en anpassning manus för varje uppsättning av tjänster. Vi kommer att börja med att använda en logwatch medföljande testskript, bara för att se till att allt fungerar.

Börja med att flytta in i lämplig katalog:

cd / etc / logwatch / scripts / tjänster

Använd din favorit editor för att skapa din första manus:

VI ossec

Innehållet i den skriptet bör utgöra det som följas:

#! / Bin / bash

# Det här är så fint script som visar dig raderna du kommer att

# Att bearbeta och rapportera. Det kommer först att visa

# Standard miljövariabler och sedan tar STDIN och

# Dumpa det tillbaka ut till STDOUT.

# Dessa är de vanliga miljövariabler. Du kan definiera

# Mer i din tjänst config fil (se ovan).

echo "Datumintervall: $ LOGWATCH_DATE_RANGE"

echo "Detalj Nivå: $ LOGWATCH_DETAIL_LEVEL"

echo "Temp Dir: $ LOGWATCH_TEMP_DIR"

echo "Debug Level: $ LOGWATCH_DEBUG"

# Nu tar STDIN och dumpa det till STDOUT

katt

Skapa nu din andra skript:

VI ossec-alert

och inkluderar exakt samma innehåll:

#! / Bin / bash

# Det här är så fint script som visar dig raderna du kommer att

# Att bearbeta och rapportera. Det kommer först att visa

# Standard miljövariabler och sedan tar STDIN och

# Dumpa det tillbaka ut till STDOUT.

# Dessa är de vanliga miljövariabler. Du kan definiera

# Mer i din tjänst config fil (se ovan).

echo "Datumintervall: $ LOGWATCH_DATE_RANGE"

echo "Detalj Nivå: $ LOGWATCH_DETAIL_LEVEL"

echo "Temp Dir: $ LOGWATCH_TEMP_DIR"

echo "Debug Level: $ LOGWATCH_DEBUG"

# Nu tar STDIN och dumpa det till STDOUT

katt

Slutligen måste vi ställa in rätt behörigheter:

chmod 755 ossec *

Testa Setup

Det enklaste sättet att testa vår nya inställning är att köra kommandot:

logwatch | less

Om du bara vill se dina ändringar kan du köra en rapport om varje tjänst, en i taget:

logwatch-service ossec | less

logwatch-service ossec-varning | less

Ytterligare anpassning

När du får allt det ovanstående fungerar kan du fokusera på att få logwatch att filtrera och sammanfatta loggposterna. Logwatch är ganska flexibel och du kan anpassa produktionen något sätt du vill. En av de trevliga sakerna med ovanstående testskriptet ovan är att den visar dig exakt vad du har att arbeta med. Så med lite reguljärt uttryck magi kan du sammanfatta poster som du finner lämpligt. För vissa idéer, kolla in filerna under:

/ Usr / share / logwatch / scripts / tjänster

Dessa är de förvalda sammanfattningen skript som medföljer logwatch. Specifikt ta en titt på filerna "pam" och "sshd". De är bra exempel på både en enkel och en komplicerad uppsättning sammanfattande filter.

När du utveckla dina skript noga till $ LOGWATCH_DETAIL_LEVEL "variabel. Detta kommer att tillåta dig att anpassa utnivån av rapporten beroende på hur mycket informationsnivån användaren är ute efter. Till exempel, medan du fortfarande i ovanstående tjänster katalogen genom att köra följande kommando:

mindre sshd

När den första sidan av filens innehåll visas, skriv in:

/ Detalj <Ange Key>

Det omvända snedstrecket låter oss söka efter filen för en viss textsträng. I detta fallet är vi söker efter ordet "detalj". När du trycker Enter kommer sökningen att hoppa igenom filen tills den hittar den första förekomsten av textsträngen. Det kommer också att belysa söksträngen. I den första matchen kommer du att märka att författaren tilldelas variabeln "$ Detalj" att vara samma som variabeln $ LOGWATCH_DETAIL_LEVEL ". Detta är att spara dem lite skriva.

Tryck nu på snedstreck knappen igen följt av Enter. Detta kommer att gå igenom filen till nästa förekomst av "detalj". Du bör se:

if ($ Detaljer> = 20) {

SEK Användare {$ USER} {$ Host} {$ Metod} + +;

} Else {

if ($ Host! ~ / $ IgnoreHost /) {

SEK Användare {$ USER} {$ Host} {"(alla)"} + +;

Notera författaren ger mer information om detaljnivån är inställd på 20 (halvvägs mellan låg och medelstora) eller högre. Håll hoppa igenom filen och du kommer att se andra exempel där författaren belånade denna teknik.

Nu sida ner till slutet av filen och du bör se detta uttalande:

if (nycklar% OtherList) {

print "\ n ** Omatchade Inlägg ** \ n";

print "$ _: $ OtherList {$ _} (s) \ n" foreach nycklar% OtherList;

}

Detta avsnitt är mycket viktigt, eftersom det är en slutlig catchall. Tänk på en brandvägg politik för ett ögonblick. De flesta av oss att skapa en slutlig regel som säger, "Om jag inte specifikt tillät en trafikmönstret igenom förneka det." Med andra ord, om något oväntat händer, är hur jag vill att du ska hantera det.

Ovanstående uttalande tjänar samma syfte vid tolkning av loggfilen. All tidigare "om" uttalanden försöka matcha en viss textsträng i loggposten för att formatera det ordentligt. Detta inlägg säger "Om du inte har matchas och tryckt en särskild loggpost ännu, skriva ut den i ett avsnitt med titeln" ** Omatchade Poster ** ". Detta steg är mycket viktigt för utan det vi aldrig kommer att se oväntade poster. Det är de oväntade poster som är förmodligen den viktigaste och mest intressanta.

Exec Sammanfattning

Både OSSEC och logwatch är utmärkta gratis verktyg. OSSEC utmärker vid varnar dig när en känd attack mönster sker. Logwatch är ett fantastiskt verktyg för att sammanfatta en tid bit av loggar så att människor kan faktiskt förstå vad som pågår. Genom att kombinera de två verktyg som du kan skapa en mycket mer robust försvar på djupet hållning. Hela blir större än summan av delarna.

Kombinering logwatch-och OSSEC - Del 3

17 feb 2010

I mina två senaste inlägg jag diskuterade logwatch och OSSEC, samt hur de kan vara en hävstång för att öka din säkerhet hållning. I den här delen jag att diskutera hur man installerar båda dessa verktyg.

Du installerar logwatch

Logwatch är ganska lätt att installera. I själva verket är det installeras som standard på många Linux-distributioner, så du kanske redan har en kopia på ditt system. Att kontrollera, logga in som root och försöka köra logwatch med "-v" omkopplare. Om du ser:

[Root @ Fubar logwatch] # logwatch-v

Logwatch 7.3.6 (släppt 05/19/07)

Logwatch är installerat och du har en kopia av den senaste versionen. Om du inte har den senaste versionen kan du ta det från logwatch hämtningssidan .

Det finns tre varianter av logwatch som kan laddas ner, binärfiler i RPM-format, källa i RPM-format eller källa i ett Tar boll. Om ditt system stöder RPM pakethantering, är den binära RPM ditt bästa val. Det är enkelt att installera och RPM kommer automatiskt att uppdatera programvaran när nya versioner finns tillgängliga.

Installera logwatch Från RPM

Om du vill installera den binära versionen av RPM, helt enkelt logga in som root och navigera till den katalog där du hämtade RPM filen. Nu kör kommandot:

rpm-U logwatch-7.3.6-1.noarch.rpm

Glöm inte att du kan använda tab-tangenten för att automatiskt fylla i filnamnet i stället för att skriva in det hela.

Installera logwatch Från källa

Installera från källkod är lite mer tidskrävande. Kom ihåg att för att installera källkod du redan måste ha en kompilator (som GCC) installerat på din dator. Loggar in som root och navigera till den katalog där du hämtade Tar bollen. För att extrahera arkivet, köra kommandot:

tjära xvzf logwatch-7.3.6.tar.gz

Du kommer att se en katalogstruktur under din nuvarande position blir skapade och massor av filer kopieras i. Vi behöver nu flytta in i översta katalogen som skapades:

cd logwatch-7.3.6

För logwatch att köra, det finns ett gäng kataloger som måste skapas på ditt system. Dessa dokumenteras i README i den aktuella katalogen. Lyckligtvis finns logwatch en installation skript som kan göra allt arbete åt dig. Tyvärr har manuset fel behörigheter som så att den inte kommer att köras som standard. Detta är ganska lätt att fixa dock med chmod kommandot:

chmod 500 install_logwatch.sh

Nu kan vi köra skriptet att installera vårt system:

. / Install_logwatch.sh

Glöm inte den period i början av raden.

Testning logwatch

Om du vill testa logwatch setup, kör kommandot:

logwatch | less

Du kommer att se din terminal skärmen bli tom, men det är normalt. Du kommer så småningom se en logwatch Anmäl dig ut på skärmen som du kan navigera genom att använda "Page Up" och "Page Down" tangenterna. Hur loggar det tar för den rapport som visas på skärmen beror på hur mycket logginformation behöver få analyserad. Det kan ta några sekunder eller ett par minuter. Hursomhelst kommer det att ge dig en chans att bekanta dig med rapporten format.

Du installerar OSSEC

Som jag nämnde i mitt förra inlägg, har du två alternativ med OSSEC, lokal eller klient / server. I det här inlägget ska jag fokusera på klient / server inställning, eftersom det är lite mer komplex. Om du utför en lokal installation, välj helt enkelt "lokala" alternativ under installationen och hoppa över avsnittet om att inrätta en säker kanal mellan agenten och servern.

Start med servern

OSSEC använder Blowfish kryptering för säker kommunikation mellan klienten och servern. Blowfish är symmetrisk nyckel baserat, så båda sidor måste veta vad nyckelvärdet att använda för att kommunicera. Servern är ansvarig för att generera den symmetriska nyckeln, så vi måste installera serverprogramvaran först. Under kunden installerar vi kommer att uppmanas att ange en nyckel värde så självklart kommer vi att behöva ha det hands i förväg.

Här är en tidsbesparande tips. Den nyckeln Värdet är lång och nästan omöjligt att komma ihåg. Det enklaste sättet att flytta nyckelvärdet från servern systemet till agent system är att använda SSH. Skapa en säker anslutning till OSSEC servern, och extrahera på lämplig knapp (anvisningarna nedan). I en andra terminalfönster, skapa en SSH-session i systemet där du kommer att installera agenten. När klienten installation uppmanas du nyckeln värde, kan du helt enkelt kopiera / klistra in mellan de två terminalerna.

Installera OSSEC Server

Serverprogramvaran finns som Tar boll, så att du kan ta en kopia av den senaste versionen från OSSEC hämtningssidan . Du kommer att behöva för att extrahera innehållet i Tar bollen:

tjära xvzf ossec-HID-2.3.tar.gz

Därefter flyttar in i katalogstrukturen du just skapat:

cd ossec-HID-2,3

OSSEC ger en installation skript för att gå igenom processen att installera servern. För att starta skriptet skriver du:

. / Install.sh

Glöm inte den period i början av kommandot. Du kommer nu att uppmanas genom ett antal installationen alternativ:

  • Språk - Standard är engelska. Ändra den vid behov.
  • Bekräftelse av installation - Tryck på Enter när du har läst på skärmen.
  • Installera typ - Skriv in "server" utan citattecken och tryck på Enter.
  • Installera plats - Acceptera standard.
  • E-post mottagen - Standard är ja, välja om du vill att e-postmeddelanden. Om du väljer Ja, kommer du att bli tillfrågad om en giltig e-postadress och e-postserver.
  • Integrity Check - Standard är ja. Välj om du vill att lokala systemet regelbundet kontrolleras för intrång.
  • Root kit upptäckt - Standard är ja. Bra alternativ eftersom vi måste bibehålla en hög grad av integritet på detta system.
  • Aktiv svar - Standard är ja. Välj det här alternativet om du vill kunna svara på händelser.
  • Brandvägg drop - medger OSSEC servern att försvara sig själv om en direkt attack upptäcks.
  • Vita listan - Detta kommer att tillåta dig att lägga till IP-adresser från vilka möjliga attacker kommer att ignoreras. Var försiktig med detta alternativ. Om du inte har konsolen tillgång till OSSEC server, kan det vara klokt att identifiera en IP-adress som alltid kan komma in bara se till att käll-IP är en pålitlig system.
  • Aktivera Syslog - Standard är ja. Välj det här alternativet om du vill samla in loggar från system som inte kan köra ett OSSEC agent (som brandväggar, switchar, routrar, åtkomstpunkter etc.).
  • Loggfiler som ska övervakas - Den här skärmen identifierar alla de lokala loggfiler OSSEC kommer att bevaka. Det är endast information, så allt du kan göra är att trycka på Enter för att gå förbi den. Om du märker en eller flera loggfiler som saknas i listan kan du lägga till dem senare till ossec.conf filen.

Vid denna punkt OSSEC ska få tillgång till lokala complier och installera alla nödvändiga filer till systemet. När du är klar kan du starta OSSEC servern genom att köra kommandot:

/ Var / ossec / bin / ossec-control start

Som definierar OSSEC Agents

Vi är inte färdig med OSSEC servern ännu. Sedan behöver vi fördefiniera några system som ska kör OSSEC agent (klient) mjukvara. Denna utförs med användning den manage_agents-kommandot. Först måste dock vi göra lite läxor. Gör en lista över alla de system som kommer att köra OSSEC agenten. För varje system, behöver du ett beskrivande namn samt att systemets IP-adress.

Nu kör följande från kommandoraden:

/ Var / ossec / bin / manage_agents

Detta kommer att producera agenthanteraren huvudmenyn. Tryck på "A" följt av Enter för att definiera din första systemet. Ange ett beskrivande namn för det första systemet, följt av systemets IP-adress. Oroa dig inte om agenten ID-nummer. Bara acceptera standard och OSSEC kommer automatiskt tilldela nästa tillgängliga ID-nummer. När du har bekräftat den information du angett, kommer du tillbaka till agenthanteraren huvudmenyn. Upprepa ovanstående process för varje system som kommer att köra en OSSEC medel.

Generera Keys

När du har lagt i alla dina system, är det dags att skapa krypteringsnycklar. Detta steg utförs också med den manage_agents-verktyget. Om du har stängt verktyget efter det sista steget, nystart nu.

Tryck på "E" knappen följt av Enter för att välja "Extract nyckeln till en agent" menyn. Du kommer sedan att bli tillfrågad om ID-numret på nyckeln du vill extrahera. De beskrivande namn och IP-adresser listas med varje ID-nummer, så det borde vara trivialt att identifiera vilken du vill ha. Börja med det system du planerar att installera agenten programvaran på först.

OSSEC Agent Installera på Linux

När du installerar agenten programvaran på en Linux-eller UNIX-klient använder du exakt samma Tar bollen vi använde för att installera serverprogramvaran. Kör samma installationsskriptet, men den här gången när du ombeds för den typ av installation du vill utföra, skriv "agent" följt av Enter.

Kunden installation har många av samma uppmanas som servern installationen. Använd info ovan för att guida dig genom processen. Frågan som kommer att variera är dock att du kommer bli ombedd att lämna IP-adressen för OSSEC servern. När du är klar, kommer OSSEC tillgång till lokala complier och installera alla nödvändiga filer till systemet.

Nästa vi behöver importera Blowfish nyckeln från OSSEC servern. Medan fortfarande på agent system, kör kommandot:

/ Var / ossec / bin / manage_agents

När Agent Manager-menyn visas, välj "I" för att importera Blowfish nyckeln.

När nästa prompten visas måste du manuellt ange rätt Blowfish nyckeln. Återigen, om du kör SSH till båda systemen samtidigt, kan du helt enkelt kopiera / klistra in mellan de två terminalerna. Se till att nyckeln ser korrekt, tryck på Enter och välj sedan "y" för att bekräfta att nyckeln ser korrekt. Du kommer att returneras till Agent Manager-menyn. Välj "q" för att återgå till kommandoraden.

Nu måste vi helt enkelt starta OSSEC medlet. Kan du göra det genom att köra följande kommando:

/ Var / ossec / bin / ossec-control start

Du bör se alla OSSEC agenten komponenterna starta, följt av en "färdig"-meddelande.

OSSEC Agent installerar på Windows

OSSEC har en självextraherande körbar som kommer att tillåta dig att installera agenten programvara på en Windows-system. Helt enkelt dubbelklicka på den körbara för att starta installationen. Du kommer att uppmanas att godkänna licensen samt vilka komponenter du vill installera. Följ bara anvisningarna tills OSSEC Agent Manager öppnas.

Den OSSEC Agent Manager-fönstret kommer att fråga dig för IP-adress OSSEC servern. Det kommer också att fråga dig efter Blowfish nyckelvärdet att använda, så packa lämplig nyckel på servern och ange värdet på detta område. Se till att du tar bort ett snabbt inom detta område innan du klistrar in i Blowfish nyckeln. Annars kommunikationen med servern kan misslyckas.

Välj sedan "Hantera" från OSSEC Agent Manager-menyn, följt av "Start OSSEC". Du bör nu se "Status:" indikatorn förändring "Running ...".

Testning OSSEC

När du har servern och agenten programvara installerad började och lämpliga knapparna konfigureras är det nu dags att titta på vår inställning. Kör följande kommando på OSSEC servern:

cd / var / ossec / logs

Och kolla in ossec.log filen:

mindre ossec.log

Kontrollera loggfilen för eventuella fel. Ett vanligt fel är att OSSEC rapporter den inte kan skicka e-post. Se till att e-postservern är igång och att den accepterar anslutningar. När du är nöjd med servern installationen är det nu dags att kolla in de anställda. Flytta ner till "varningar" katalogen:

cd varningar

Och kolla in alerts.log filen:

mindre alerts.log

Specifikt söker du efter poster som liknar följande:

2010 17 februari 16:09:16 (desktop) 192.168.1.10-> ossec

Regel: 501 (nivå 3) -> "Nytt ossec agent ansluten."

Src IP: (ingen)

Användare: (ingen)

ossec: Agent startade: "test_system-> 192.168.1.10".

Du bör se en post för varje system som du installerade agenten programmet.

Mer kommer

Puh! Det är mer än tillräckligt för en post! I mitt nästa inlägg ska jag få in att utnyttja logwatch att tolka all varningsinformation som genereras av OSSEC.

Kombinering logwatch-och OSSEC - Del 2

16 februari, 2010

I min senaste inlägget jag beskrev hur logwatch kan användas för att förenkla processen loggen översynen. I detta inlägg ska vi titta på OSSEC och vad det innebär för bordet.

Vad Is OSSEC?

OSSEC , kort för "Open Source Security", är en värd baserat Intrusion Detection System (HIDS). Med andra ord är det utformat för att upptäcka angrepp eller brott mot politiken om och när de inträffar. Även om det inte har förmågan att skydda mot okända eller 0-day-attacker (som skulle vara värd baserad intrångsskydd), gör det innehålla en rad olika verktyg som kan hjälpa dig att identifiera ett intrång när den inträffar, samt i vilken utsträckning av de skador som har orsakats.

Plattformar som stöds

För att kunna utnyttja alla funktioner OSSEC har att erbjuda, måste du köra en agent på det system som skyddas. OSSEC agenter kan köras på Windows, Mac OS X, Linux och ett brett utbud av UNIX-system. Om du bara intresserad av logganalys delen kan dock en ännu bredare utbud av system bör stödjas. Detta inkluderar hårdvara från både Cisco och Juniper. Ett antal specifika produkter också får stöd som Checkpoint brandväggar, Symantec Anti-Virus, Snort, Squid, och arpwatch, bara för att nämna några.

När du installerar OSSEC har du två konfigurationsalternativ, lokala eller klient / server. En lokal installation används när du behöver köra allt på ett enda system. Den klient / server installation kan du köra en distribuerad miljö skydda flera system på samma gång. Medan de flesta distributioner är klient / server-baserad, om du vill ge OSSEC en spin du enkelt kan köra allt på en enda test som använder en lokal installation.

Loggar Analys

OSSEC inkluderar en Log-system Intrusion Detection (lock). Detta har förmågan att granska loggfiler i nära realtid, medan granska dem för kända attack mönster. När en logg genereras på ett skyddat system tar agenten hand säkert överföra log (Blowfish kryptering med en pre-delad hemlighet) tillbaka till servern. Servern tar sedan själv hand att utföra analysen.

De flesta log analysverktyg bearbeta sina regler i en linjär format. Med det menar jag om vi har 500 regler, är i regel en markerad, så regeln två, sedan styra tre och så vidare tills en matchning hittas eller vi når slutet av regeluppsättningen. OSSEC fungerar lite annorlunda då det genomför en hierarkisk struktur till reglerna. Loggposter först klassificeras och kontrolleras endast mot beroende reglerna är lämpliga. Resultatet är att i stället för att behöva behandla alla 500 regler, kommer de flesta händelserna få kontrolleras mot 10 regler eller mindre. Detta reducerar dramatiskt den mängd overhead som krävs för att bearbeta det regeluppsättningen.

Integritet Kontroll

OSSEC inkluderar ett verktyg som heter Syscheck för att utföra fil-och katalog integritet kontroll. Om du kör en Windows agent kan du även specifika tangenter i Windows-registret som skall övervakas också. Filändringar kan detekteras med användning både MD-5 och SHA-1-hash-algoritmer. Systemet är mycket anpassningsbart. Du kan inkludera eller exkludera enskilda filer eller hela strukturer katalogen. Du kan även ställa in en flagga för att upptäcka ny fil skapas.

Den agenten programvara är utformad för att använda en minimal mängd av CPU: n under den integriteten checken. Även om detta innebär att kontrollen kommer att ta längre tid, bidrar den också till att minimera prestanda slå till systemet. Hash information sänds tillbaka till servern. Servern tar sedan själv hand utföra den hash jämförelsen för att se om någon av systemets viktiga filer har ändrats. Servern lagrar också en kopia av Integrity Check politik, så att om de politiska förändringar görs på medlet, kan de upptäckas och rapporteras också.

Upptäcka avvikelser

OSSEC går långt utöver log kontroll för att verifiera systemets integritet. Användning politik kan hanteras centralt från servern, och sedan skjuts ut till lämpliga medel. Till exempel kan du definiera en policy om vilka Windows-program är acceptabla (Office, Firefox, etc.) och vilka som inte är (IM-klient, Skype, etc.). Du kan även ange acceptabla konfigurationsalternativ så kontrollera att NT hashar används för lösenord sparas, men inte Lanman hashar.

OSSEC inkluderar ett antal andra godsaker i syfte att hjälpa till att verifiera en systemets: s integritet. Till exempel OSSEC har förmågan att utföra kommandon från agenten och övervaka produktion som blir genereras. Till exempel kan du ha Linux agenten kör "DF"-kommandot med jämna mellanrum och skapa ett larm om diskanvändning överstiger 90%. En Windows exempel kan vara att ha OSSEC generera en varning när filinformation skrivs till alternativa dataströmmar område NTFS.

Aktiv Response

Slutligen innehåller OSSEC förmågan att reagera när misstänkt aktivitet upptäcks. Svar kan genereras från servern eller dennes ombud, som någonsin du anger. Svar kan vara så godartad generera ett e-postavisering, att vara så aktiv som blockerar en IP-adressen under en begränsad tid. Det finns ett antal som ingår aktiva svar skript Du kan rita på, eller så kan du enkelt skriva din egen.

Säker Arkitektur

De OSSEC Författarna har gjort stora ansträngningar för att säkra alla komponenter i produkten. Uppgifter som integritetskontroll utförs på servern, snarare än medlet, så tillförlitlighet hashes inte kan äventyras under en attack. Processer drivs med lägsta behörigheter möjligt, och olika konton används för att köra varje OSSEC komponent. Detta innebär att en kompromiss en enda ansökan inom OSSEC inte omedelbart kommer att leda till en kompromiss om hela paketet. Vidare är de flesta komponenter som körs i en chrootad fängelse för deras tillgång till systemet ytterligare begränsas.

Slutord

Medan OSSEC är ett kraftfullt verktyg, är det viktigt att komma ihåg att det är en HIDS och inte en logghantering lösning. OSSEC kan granska loggposter söker efter misstänkta mönster, men det kommer bara att spara varningsinformation. Så medan OSSEC inte ersätta din Security Information Management (SIM) lösning, kan det säkert öka den. Du kan enkelt ställa in OSSEC att vidarebefordra alla varningar som den genererar till en central loggning server .

Medan OSSEC är öppen källkod, är Trend Micro utvecklas i första hand det. Om du behöver kommersiell support kan du köpa en supportavtal genom dem till en rimlig kostnad.

Mer kommer

I min nästa avbetalning ska vi titta på att installera OSSEC och logwatch. Efter det kommer vi flytta in att integrera de två tillsammans.

Kombinering logwatch-och OSSEC

15 februari 2010

Jag har nyligen hade en elev frågar mig en fråga om integration av logwatch med OSSEC. Jag kände mig som det var en komplicerad och ändå tillräckligt svalt tanken att det motiverade en serie inlägg att täcka det i sin helhet. Så under de närmaste dagarna ska jag tala om vart och ett av dessa verktyg, hur man kan integrera dem tillsammans, samt vad extra säkerhet synlighet kan vinnas När processen är klar.

Vad Is logwatch?

Logwatch är ett utmärkt open source verktyg för att skapa dagliga människoläsbara log rapporter. Loggposterna tenderar att falla i en av tre kategorier:

  • Saker du vet är ond
  • Saker du vet är normalt och kan ignoreras
  • Allt annat

Det är att "allt annat" kategori där logwatch verkligen skiner. För de saker vi vet är ont, kommer vi att ställa någon form av larmsystem. Vi kan till exempel skriva en varning signatur som varnar säkerhet analytiker när ett konto håller på att brute tvingas. Men hur attackerna vet vi inte om eller är osäker på vad de ser ut? Detta skulle vara ett tydligt exempel på att "allt annat" kategori. Trafiken är inte normalt, men vi har inte sett det förut att ha en signatur som väntar på att generera en varning. Eftersom vi inte kommer att kunna fånga attacken i realtid, måste vi fånga den under en daglig logg översyn.

Naturligtvis den problemet med att göra dagliga log betyg är att det är tråkiga och tidskrävande. Jag menar låt oss vara ärliga, vill som verkligen tillbringa sin dag över en miljon plus poster log? Även om du gjorde, du är säker på att du faktiskt skulle fånga utöver det vanliga trafiken?

Hur det fungerar

Vad logwatch gör mycket väl tillåta dig att omorganisera dina data till ett format som är lättare för människor att följa. Dess verkliga styrka är att den tillåter dig att flytta saker du förstår ur vägen (normal eller ont), så att de oväntade loggposterna står ut som en öm tumme. Med andra ord låter logwatch du sammanfatta dina loggposter så ovanliga saker är lättare att upptäcka.

Vad jag verkligen gillar med logwatch är att du inte förlorar något. Många log recension verktyg bara visa dig saker som har på förhand definieras som onda. Problemet de alla delar är att när något ont, men oväntat händer, flyger det rätt under tråden. Eftersom logwatch kan du se allt, du inte längre missa det oväntade.

Logwatch I Åtgärd

Låter diskutera hur logwatch fungerar med hjälp av SSH -servern tjänsten som ett exempel. De skript för att hantera SSH redan fastställs inom logwatch, så du behöver inte göra någon anpassning för att få de funktioner vi kommer att diskutera.

När du granskar en loggfil, inte det första logwatch är omorganiserar loggposter baserat på deras meddelandetyper. Till exempel alla framgångsrika SSH inloggningar grupperas tillsammans, liksom alltför många inloggning misslyckanden, vägrade anslutningar, låsta konton, utan en ordentlig skal, protokoll mis-matcher, etc. etc. etc. När alla SSH-meddelanden grupperas efter sina typ, är de data sammanfattade sedan för att reducera mängden av information som rapporteras.

Till exempel är det standard att sammanfatta misslyckade inloggningsförsök efter konto och källa IP. Så en typisk misslyckats inloggning rapporten avsnitt kan se ut så här:

Misslyckade inloggningar från dessa:

bsmith / lösenord från 1.2.3.4: 637 (s)

jsmith / lösenord från 1.2.3.5: 2 (s)

Så i stället för att granska 639 loggposter rapporterar en dålig inloggningsförsök har vi all relevant information sammanfattas i tre rader (om du inkluderar titeln). Fortsätt denna process för alla de andra SSH budskap, och vi har dramatiskt minskat den tid som krävs för att se över våra loggar.

Men tänk om något händer som logwatch inte är förprogrammerad att känna igen? När en oväntad loggpost hittas lägger logwatch ett avsnitt i slutet av tjänsten rapport kallad "Omatchade poster". Så om vi ser en sådan avdelning i SSH-servern avsnittet vet vi någon händelse har inträffat som antingen är onormal eller oväntad för SSH-tjänsten. Detta kan mycket väl vara någon form av attack som vi inte är medvetna gör rundor.

Genom att fokusera in på oöverträffad Fält för särskilda uppgifter, kan vi snabbt identifiera oväntade aktivitet. Som jag sa tidigare, är detta verkligen det viktigaste målet att göra dagliga log recensioner. För att hitta de saker vi förväntar oss inte som smyga förbi vår larmsystem. Logwatch gör denna process så snabbt och smärtfritt som möjligt.

Feature Sammanfattning

I ovanstående exempel har jag pratat om att göra dagliga log recensioner, men för att vara ärlig logwatch är mycket anpassningsbar. Du kan ange ett intervall du vill använda ner till ett intervall på en sekund. Till exempel låt oss säga att jag undersöker ett intrång istället för att genomföra en daglig logg översyn. Jag kunde ange ett intervall som "2010/02/14 17:05:00 för den timmen" att fokusera rätt i den information som intresserar mig. Jag kan också fokusera på en specifik loggfilen eller tjänst.

Detaljnivå i rapporten är också anpassningsbar. Vanligtvis när man behandlar med säkerhet får du för vana att alltid vilja högsta detaljnivån i rapporteringen. För att vara ärlig med logwatch en hög detaljnivå är förmodligen mer än du någonsin kommer att behöva. Personligen har jag hålla vanligtvis med "med" för medium och som fungerar riktigt bra. Du kan även ange rapportering nivå som "låg" eller "hög" eller använda en numerisk rad 0-10 för en högre grad av detaljnivå (låg = 0, Med = 5, hög = 10).

Logwatch kan köras automatiskt eller som en manuell process. Vanligtvis kommer du vill ställa in den att köras automatiskt varje dag och sammanfatta en dag värde av loggposter. Om du någonsin behöver expandera eller fokusera rapporten kan du alltid köra logwatch från kommandoraden samtidigt som den specificerar exakt vad du vill se. Du kan sedan använda "-save" för att ange en rapport namn och katalog för lagring.

Mer kommer

Ovanstående bör ge dig en god uppfattning om de funktioner logwatch kan ta med till bordet. I nästa inlägg kommer jag att diskutera OSSEC i samma detaljnivå. Efter det ska jag komma in hur du installerar varje verktyg samt hur man kan integrera dem tillsammans.

Ställa in en förvaltning Security Information System-del 6

20 augusti 2009

Hittills i denna serie har vi omfattas:

  • Definiera en omfattning och inriktning för ditt SIM-
  • Vikten av att bygga istället för att köpa din första systemet
  • Arkitektur och kapacitetsplanering
  • Rekommenderade faser driftsättning
  • Välja en centraliserad plattform loggning server
  • Hur du accepterar avlägsna loggposter
  • Facility, svårighetsgrad och prioritering
  • Så här sorterar loggmeddelanden
  • Konfigurera apparater och operativsystem att lämna loggposter

Cool. Så vi har loggposter för ett antal system som samlats på en central server. Nu kommer den viktigaste uppgiften, utnyttja denna information. Logga bidrag kommer att delas in i två kategorier; kritiska meddelanden vill vi veta om direkt, och poster logg som kommer att fastna som en del av en regelbunden översyn.

Svartlistning Vs. Whitelisting

När du granskar loggmeddelanden, har vi två möjliga ställningar vi kan använda. Den 1:a hänvisas till som svartlistning. Med svartlistning metod vi definierar vad som gör en händelse intressant nog för att motivera rapportering. Detta liknar hur antivirusprogram upptäcker skadlig kod eller den process vi använder för att filtrera bort spam.

Liksom de flesta saker i livet, har svartlistning några bra och dåliga aspekter. På plussidan är det oftast ganska lätt att skriva en signatur om vi vet vad vi vill leta efter. Signaturer kan väl definieras för att hjälpa till att minimera antalet falska positiva som vi möter. Problemet med svartlistning är att vi måste veta vad vi letar efter. Om en ny attack genererar en unik signatur vi aldrig stött på tidigare kommer en svartlistning missar förmodligen den händelse, eftersom ingen underskrift har definierats.

Med vitlistning definierar vi de evenemang vi förstår, och sedan fokusera vår uppmärksamhet på de nya och unika loggmeddelanden som påträffas. På plussidan är vi mycket mer troligt att fånga skäregg attacker. Vitlistning tenderar att vara relativt högljudd men eftersom vi är bundna att möta unika loggmeddelanden som inte tyder på en säkerhet händelse.

Så vilka ska vi använda? Bra försvar djupgående metoder säger oss att använda båda. ;)

Realtid larma

Vi kan utnyttja svartlistning för att utföra realtid varna för händelsen vill vi bli medvetna om så snart de uppstår. Svartlistning bör endast användas för låga bullernivå typer av händelser. Med andra ord vill vi hålla fast vid att skriva signaturer för händelser som har en hög sannolikhet att vara en sann säkerhetsproblem. Goda exempel är:

  • Olika inloggningsnamn misslyckanden alla från samma IP-adress på kort tid
  • Flera HTTP 403 fel som genereras av en enda IP på kort tid
  • Interna system får många ICMP fel eller TCP återställer på kort tid

För att utföra realtid larm behöver vi program som kommer att övervaka de loggar i realtid. Loggposterna bör kontrolleras mot de definierade signaturer, vilket också visar vad som ska göras när händelsen inträffar.

Swatch

Ett av de enklaste verktyg du kan använda för poster övervakning logg är Swatch . Swatch är baserad på Perl. Detta innebär att medan den är avsedd för UNIX-och Linux-system, kan du få det körs på Windows om du har Perl installerat. Enkelhet är både Swatch största styrka och svaghet. Även Swatch är relativt lätt att installera, är det också något begränsad i sin funktionalitet. Men ändå, om du är ny på skogsavverkning, gör Swatch en utmärkt första verktyg för att i realtid varna.

Om du vill distribuera Swatch, måste du skapa en unik konfigurationsfil för varje loggfil som du vill övervaka. I konfigurationsfilen kommer vi att berätta Swatch vad man ska leta efter i just loggfil, och vad man ska göra när händelsen upptäcks.

Till exempel, låt oss säga att vi kommer att ha Swatch övervaka webbserverns felloggen. Vi kanske vill skapa en post liknande följande i Swatch: s konfigurationsfil för felloggen:

# Håll utkik efter buffertspill

watchfor / klient förnekar serverkonfigurationen | Filnamn för lång tid /

mail = noc@fubar.org: webmaster@fubar.org, Ämne = webbserver overflow försök

Raden som börjar med ett "#" är helt enkelt kommentar om undertecknande. Den watchfor raden identifierar vilka teckensträng (s) vill vi definiera som intressant. I detta speciella regel som vi har definierat två olika strängar, "klienten förnekas av serverkonfigurationen" och "Filnamn för långt" som intressant. Röret tecknet mellan strängarna agerar som en logisk "eller". Om någon sträng påträffas definierar e parametern två olika e-postadresser vi ska kontakta. Ämnesraden i e-post kommer att vara "Webbserver overflow försök", medan kroppen i e-post kommer att vara själva loggposten.

Om det finns andra mönster vi vill upptäcka, kan vi lägga till ytterligare watchfor och uttalanden post. Om vi vill göra mer än att skicka ett e-post kan exec parametern användas för att exekvera alla program finns på det lokala systemet. Tröskeln parameter kan också användas för att betygsätta begränsa rapportering av händelser.

Enkel Event Coordinator (SEC)

SEC är en fantastisk varnar verktyget du kan ladda ner från stora webbplats . Den stöder BSD och Linux och levereras med ett antal populära Linux smaker. SEC ger sitt fulla stöd reguljära uttryck och låter dig skapa extremt korniga signaturer.

Regeln formatet som följer:

typ = Metod för detektion

PTYPE = Mönster typ (reguljärt uttryck, sträng match)

mönster = vad du vill söka efter

desc = Beskrivning (kan vara en variabel)

action = Vad gör när de upptäcks

Det finns en utmärkt arkiv med redan skrivna regler du kan använda som är väl värt att titta på. Du kan matcha på flera mönster, definiera flera trösklar, allt medan bearbetning hundratals loggmeddelanden per sekund. Om enda nackdelen av SEC är att du behöver en god förståelse av reguljära uttryck att använda verktyget på ett effektivt sätt. Ändå kan verktyget vara mycket mer kraftfull och flexibel än Swatch.

Var kan jag få fler att varna idéer?

Jag var inblandad i skapandet av de ursprungliga SANS Top 5 Log rapporter . För april uppdaterade 2009 Log-toppmötet jag min presentation för att bryta upp rapporten exempel på låg ljudnivå och hög kategorierna buller. Något på lågt brus listan skulle göra en bra kandidat för att varna. Något i högt buller sektionen övervakas bättre genom dagliga rapporter.

Dagliga rapporter

Så vi belånade svartlistning för att skapa våra realtid varningar. Vi kommer nu utnyttja vitlistning för att hjälpa belysa okända men intressant trafikmönster i våra dagliga rapporter.

När det gäller dagliga rapporter, tenderar vi att dras mot de stora siffrorna. Vilka är de 5 IP-adresser överföra data? Vilken e-postadress skickas de flesta meddelanden? Medan de stora siffrorna är visserligen viktiga, har det varit min erfarenhet att de säkerhetsrelaterade händelser du behöver oroa dig mest genererar minst antal loggposterna. De smarta Angriparna försöker väldigt hårt för att vara gömda i bruset. Så det enda sättet för att hitta dem är att sänka den signal-brusförhållandet.

Jag författaren Områdesskydd banan för SAN. En av de laboratorier jag har mina elever gör är att tolka en 200.000 linje loggfil. Målet är att upptäcka intressanta mönster samt formulera översynen utmynnar i en automatiserad process. De flesta föräldrar tycker hamnen skannern som det är ganska bullrigt. Några upptäcka även IP-adressen som utför attacker applikationslagret mot webbservern. Vad de flesta människor missar dock är de sex linjer som är en ganska tydlig indikation på att ett internt system redan äventyras och kräver hem för marschorder. Hur hittar man de 6 rader? Genom att vitlistning allt du förstår och fokusera på vad som helst som är kvar.

Så det är OK för våra dagliga rapporter för att ge oss vackra diagram med stora siffror. En av rapporterna har emellertid kunna flytta ut alla crud åt sidan så att vi bättre kan upptäcka intressanta smattrar.

Logwatch

Ett av de bästa verktygen för att göra en daglig logg granskning är logwatch . Logwatch sammanfattar alla log mönster man förstår, men belyser någonting utan en fördefinierad signatur. Bästa sättet att förstå denna funktion är att titta på ett exempel.

SSHD dödade: 2 Tid (s)

SSHD igång: 1 Tid (s)

Anslutningar:

Misslyckade inloggningar från dessa:

msmith / lösenord från 1.3.247.11: 6 (s)

jsmith / lösenord från 1.3.247.11: 5 (s)

psmith / lösenord från 1.3.247.11: 4 (s)

Användare loggar in via sshd:

jjones loggade in från solnedgången (1.3.247.9) med PublicKey: 146 Times (s)

jsmith loggade in från dialup5533.wnskvtao.sover.net (216.114.181.200) med lösenord: 1 gånger (s)

jsmith loggade in från dialup984.wnskvtao.sover.net (216.114.163.223) med lösenord: 1 gånger (s)

bjones loggade in från Charlie (1.3.247.11) med PublicKey: 444 gånger (er)

jsmith loggade in från 192.168.1.173 använda lösenord: 2 gånger (s)

djones loggade in från Charlie (1.3.247.11) med lösenord: 47 gånger (s)

** Omatchade Inlägg **

Fick koppla från 148.64.147.168: 3: Key utbyte misslyckades.

Fick Koppla från 216.114.160.132: 11: Alla öppna kanaler stängs

skannas från 146.87.114.150 med SSH-1.0-SSH_Version_Mapper. Inte panik.

skannas från 211.184.226.99 med SSH-1.0-SSH_Version_Mapper. Inte panik.

I det ovanstående exemplet logwatch för tillfället används för att sammanfatta SSH-aktivitet. Det förstår den service som startas och stoppas misslyckades inloggningsförsök liksom framgångsrika inloggningar. All denna information visas i sammandrag format så det är lättare att smälta. Till exempel vet vi inte exakt när msmith fel in sitt lösenord, men vi ser det hände sex gånger, allt från IP-adress 1.3.247.11. Så istället för att behöva sex rader att smälta, behöver vi bara titta på en. Om vi ​​vill se varje enskild loggpost, kan vi hänvisa alltid tillbaka till den ursprungliga stockarna.

Titta nu på "Omatchade poster"-avsnittet. Vart och av dessa är en händelse som logwatch inte har en signatur för. Hellre än att ignorera dem, vilket skulle hända med en svart lista system, de sammanfattas här för oss att granska. Vi har då möjlighet att skapa en signatur för en specifik post, så det kommer att få kategoriseras på ett liknande sätt i processen och inloggning sektioner.

Självklart är detta ger oss det bästa av båda världar. Ovanstående Rapporten utgör en bit över 650 linjer till ett värde av loggposter, sammanfattas ner i en lättläst rapport. Viktigast hade ingen av loggposterna att ignoreras för att producera denna sammanfattande rapport.

Utanför den dagliga rapporteringen

Du kan också finna det lämpligt att genomföra långsiktiga trenden analys och data mining på dina loggdata. Detta kan bidra till att avslöja mönster som normalt inte upptäcks vid loggar för en liten ögonblicksbild i tiden (som 24 timmar) ses över. Utan tvekan en av de bästa verktyg som finns för att hantera massor av data splunk .

Splunk

Splunk finns tillgänglig som en gratis version som är begränsad till behandling av 500 MB per dag, eller så kan du investera i kommersiella versionen som stöder obegränsad databehandling. Splunk är extremt flexibelt kl om godtagande av-data. Den kan fungera som en centraliserad loggning server, eller kan du överföra filer via ett antal metoder, inklusive FTP och HTTP. En gång den data tas emot, varje fält, splunk i index i varje stock fil. Detta ger dig oöverträffad sortera och söka förmåga.

De fullständiga funktioner splunk är för många för att komma in i det här inlägget. Kolla deras hemsida för en fullständig lista över funktioner som stöds. Vad splunk är extremt bra på är att manipulera och rapportera om ett stort antal loggposter. Det kan indexera, söka och rapport om miljarder loggposter per sekund. Detta gör det mycket användbart för att generera långsiktig trend rapporter eller köra sparade sökningar för datautvinning.

Exec Sammanfattning

Vi kommer att vi har nått slutet av spåret. Förhoppningsvis du känner att du har en bättre grepp om hur du distribuerar en centraliserad loggning lösning, samt hur att utnyttja det bättre för att säkra din miljö. Om du har några frågor, kontakta gärna släppa en kommentar. :)

Ställa in en förvaltning Security Information System-Del 5

14 augusti 2009

I mitt sista inlägg jag diskuterat hur en logga server använder en meddelandets prioritetsvärde för att sortera inkommande loggmeddelanden. I den här delen ska jag tala om att testa anslutning, samt hur du får olika redskap på tråden att lämna loggposter till en central server.

Krav

För att ett system för att skicka loggposter, måste den ha stöd för Syslog. Loggposterna måste överföras i klartext till port UDP/514 på loggning servern. Om du använder rsyslog på servern, är TCP/514 accepteras.

Inskickade långa poster bör innehålla följande information:

  • Ett prioriterat värde (i <PRI>-format) vid början av nyttolasten
  • Namnet på programmet lämnas in loggposten
  • Den process-ID används av programmet
  • Kroppen av loggmeddelanden

Men för att vara ärlig, är Syslog inte särskilt kinkig. Det kommer att försöka spela in allt som skickas till den lyssnande port som en lång post. Om prioritet värde inte finns, kommer det att anteckna till vad filen används för anläggning 1. Normalt är / var / log / messages.

Testa anslutning

När du installerar en ny inställning, jag gillar att kontrollera anslutningen mellan de första kunderna och loggning servern. Om loggningen inte fungerar, kommer du vill kunna isolera problemet området. Typiska problem är:

  • Klient felaktigt konfigurerad
  • Brandvägg i vägen (på klienten, tråden, eller logga server)
  • Server felaktigt konfigurerad

Du kommer att vilja övervaka meddelanden filen på loggning servern för att säkerställa att testet loggposten tas emot. På loggning servern genom att köra följande kommando:

tail-f / var / log / messages

Tail kommer att öppna loggfilen bara läsa och skriva de sista fem raderna. När nya loggposterna emot kommer de att få ut på skärmen också.

För att generera en post testlogg, jag gillar att använda Netcat . Netcat kan användas från alla Windows-, Linux-eller UNIX-system. Från testsystemet, kör kommandot:

echo "detta är en UDP-test loggpost '| nc-u-w 1 <IP adress logga server> 514

Bör du se ekade delen av kommandot visas i filen / var / log / messages-filen på loggning servern. Om inte, starta ett paket sniffer och se om du kan avgöra var felet inträffar. Om du vill testa TCP-uppkopplingen och bara köra kommandot igen lämnar ut Netcat "-u" switch:

echo "detta är ett TCP-test loggpost '| nc-w 1 <IP adress logga server> 514

Om båda poster tas emot, vi är redo att börja pekdon på vår loggning server.

Nätverksmaskinvara

De flesta nätverksmaskinvara stöder Syslog via UDP/514. Det är bara en fråga om att gå igenom dokumentationen och fastställande av lämplig kommandot set för att skicka loggposterna till en fjärrserver.

Om du använder Cisco IOS, kör följande från global konfiguration läge:

loggning <IP-adressen för loggning server>

Om du vill ändra logga anläggningen från "lokalt bruk 7" till något annat, är kommandot:

loggning facilitet <facility kort namn>

Så för att ändra logga möjligheten att "lokal användning 3", skulle kommandot vara:

loggning facilitet local3

Linux och UNIX-system

Det finns ett antal Syslog alternativ som finns tillgängliga för Linux och UNIX. I detta avsnitt ska jag täcka hur man får Syslog och rsyslog att vidarebefordra sina loggmeddelanden till en fjärrserver.

Syslog

Om klienten körs Syslog, måste du redigera filen / etc / syslog.conf fil. Lägg till följande rad i slutet av filen:

*. * @ <IP-Adressen för loggning server>

Så ett exempel skulle vara:

*. * @ 192.168.1.150

Notera den vita utrymmet mellan wild card matchen och fjärr-IP-adress måste vara tabbtecken. Om du använder mellanslag kommer Sysylog inte att kunna tolka filen. Spara och stäng filen och starta sedan om Syslog för att aktivera ändringarna.

rsyslog

Med rsyslog har vi möjlighet att vidarebefordra våra loggmeddelanden via UDP eller TCP. I båda fallen kommer vi att behöva redigera / etc / rsyslog.conf fil. För att vidarebefordra långa poster med UDP, lägg till följande rad i slutet av filen:

*. * @ <IP Adress logga server>: <port>

Så ett exempel skulle vara:

*. * @ 192.168.1.150:514

Om vi ​​vill använda TCP istället använder vi bara två "®" symboler:

*. * @ @ 192.168.1.150:514

När du är klar spara och avsluta filen. Du måste starta om rsyslog för att aktivera dina ändringar.

Windows-system

Som nämnts i ett tidigare inlägg, innehåller Windows inte stöd för Syslog. Det betyder att du behöver programvara från tredje part för att konvertera dina loggar i realtid och skicka dem till en loggning server. Den Loganalysis webbplats har en lista av möjliga lösningar.

Vid tillämpningen av detta inlägg, jag täcker Snare . Det är gratis att använda kommersiellt kan licensieras, och har en mycket enkel distribution process.

När du laddat ner programvaran, måste du konfigurera den för systemet. Detta visas i Figur # 1. Snara behöver veta platsen för loggning servern och vad anläggningen och allvarlighetsgrad att använda. När du är klar, klicka på "Senaste händelser" menyn dryck för att se vilka specifika Loggboken Loggposter Snare är vidarebefordran till loggning servern.

snare-config

Exec Sammanfattning

I det här inlägget diskuterade jag testar anslutningen till en logga server, samt hur du konfigurerar klienterna att centralisera sina loggar. I nästa inlägg ska jag tala om vad man ska leta efter i en daglig rapportering verktyg, samt realtid varning.

Ställa in en förvaltning Security Information System-Del 4

12 augusti, 2009

I förra inlägget jag pratade om hur man ställer in en logga server som tar emot avlägsna loggposter. I den här delen ska jag tala om hur du sorterar loggposter i särskilda filer.

Facility, svårighetsgrad och prioritering

Låt oss tala om hur loggning servrar reda på vilka fil för att lagra en loggpost i när det blir emot. Loggmeddelanden innehåller två beskrivande parametrar, anläggning och svårighetsgrad. När dessa två parametrar kombineras värdet kallas prioritet loggmeddelandet.

Facility

Stödet definieras den typ av process som genererade loggposten. Till exempel alla e-postservrar förväntas att identifiera att deras loggposter är en del av "post" anläggning. FTP processer bör använda FTP anläggningen bör NTP processer använder NTP anläggningen, och så vidare. RFC 3164 definierar giltiga anläggningar, men här är listan:

Numerisk Facility

-Kod

0 kärnan meddelanden (Kern)

1 användare nivå meddelanden (användare) - standard om det inte anges

2 postsystem (mail)

3 system demoner (daemon)

4 Säkerhet / auktorisation meddelanden (AUTH)

5 interna syslogd (syslog)

6 radskrivare delsystem (LPR)

7 Network News delsystem (nyheter)

8 UUCP delsystem (uucp)

9 klocka-demonen

10 säkerhet / auktorisation meddelanden (authPriv)

11 FTP daemon (FTP)

12 NTP delsystem (NTP)

13 log granskning

14 logg alert

15 klockan daemon (cron)

16 lokal användning 0 (local0)

17 lokal användning 1 (local1)

18 lokal användning 2 (local2)

19 lokal användning 3 (local3)

20 lokal användning 4 (local4)

21 lokal användning 5 (local5)

22 lokal användning 6 (local6)

23 lokal användning 7 (local7)

De "lokala användning" anläggningar liknar privata adresser i IP-världen. Dessa anläggningar är inte reserveras, och är tillgängliga för alla att använda som de vill.

Facility problem

Det finns ett par problem här. Till att börja med var är webbservern anläggning? Denna lista genererades redan 1987 innan webbservrar (eller Gopher för den delen) fanns. Så några av de tjänster vi använder idag (VoIP, SQL, etc.) saknas. Även vissa av de uppräknade tjänsterna går vanligtvis oanvänd i en företagsmiljö. UUCP och Network News (NNTP) är utmärkta exempel.

Bristen på aktuella tjänster har orsakat många leverantörer starkt beroende av de lokala använda dessa anordningar. Detta kan orsaka potentiella konflikter när vi kommer in sorteras våra loggposter. Till exempel Linux använder lokalt bruk 7 för att identifiera sina boot poster tid logg. Apache använder också lokalt bruk 7 för fel webbserver. Så på vägen kan det vara svårt för oss att sortera Web fel och meddelanden starta upp olika loggfiler.

Ett annat problem är att det inte finns någon utförlig beskrivning av varje av dessa anläggningar. Detta kan göra det lite svårt för en programmerare att identifiera vilka som ska användas. Till exempel, låt oss säga att vi har skrivit ett program som autentiserar användaren för nätverksåtkomst. Vilken anläggning ska vi använda? Facility 4 och 10 verkar mest troligt, men deras beskrivningar är identiska. Hur väljer vi? Om vårt program körs i bakgrunden ska vi välja egentligen anläggning 3 i stället?

Du får idén. Listan är inte lika entydig som den kunde vara. Det är inte ovanligt att se säljare använda en annan anläggning än du förväntar dig. Till exempel jag har sett VPN leverantörer osäkra för att skillnaderna mellan anläggningarna 4 och 10, så de bara skicka några procent av loggposter till varje.

Svårighetsgraden

Severity definierar betydelsen av loggposten. Samma RFC 3164 definierar svårighetsgrad nivåer som:

Numerisk Allvarlighetsgrad

-Kod

0 Emergency: Systemet är oanvändbart (SOS)

1 Alert: åtgärder måste vidtas omedelbart (larm)

2 Kritisk: kritiska förhållanden (crit)

3 Fel: feltillstånd (fel)

4 Varning: varning förhållande (warn)

5 Observera: normal men signifikant tillstånd (meddelande)

6 Informationsansvarig: informationsmeddelanden (info)

7 Debug: Debug-nivå meddelanden (debug)

Som tur var svårighetsgrad är mycket mindre vaga än anläggningen beskrivningar. Detta innebär att de är mycket mindre förvirrande att arbeta med. De högre numrerade svårighetsgrad nivåer tenderar att vara mycket utförlig. Detta innebär att säga att du vill skicka meddelanden debug nivå till loggning server kan lätt översvämma nätet. Använd de högre numrerade svårighetsgrad med försiktighet.

Prioritet

När en loggpost blir överförs till en logg server, är det första värdet som finns i det prioritet meddelandet. Prioriteten är anläggningen och svårighetsgrad värden kombinerade per följande matematisk formel:

(Facility x 8) + Severity = Prioritet

Så låt säga vår mailserver måste skicka ett varningsmeddelande. Vad skulle prioriteras? Posten Anläggningen har ett värde av 2, medan varningar har en svårighetsgrad 4. Så matte skulle vara:

(2 X 8) + 4 = 20

Om en skrivarserver (anläggning 6) krävs för att skicka en loggpost säga att det för närvarande är i brand (svårighetsgrad 0), skulle prioritetsvärde i meddelandet att:

(6 x 8) + 0 = 48

När en loggpost får överföras, behöver den prioritet värdet som skall inkapslas i mindre än och större än skyltar. Så prioritetsvärde i ovanstående e-postserver budskapet skulle vara "<20>" medan skrivarservern skulle använda "<48>". Återigen måste detta vara den första delen av information som överförs i loggen meddelandet.

Sortering loggposter

Den prioritet värdet används genom att logga servrar för att sortera de inkommande meddelanden. Till exempel om vi ville att alla e-postmeddelanden för att gå till samma fil, skulle vi säga till avverkning server att alla meddelanden med prioritet 16 (2 × 8 +0) till 23 (2 × 8 +7) ska gå till " maillog "-fil. De flesta avverkning servrar (som rsyslog) låter dig göra detta numeriskt eller genom att använda den korta beskrivningen namn.

rsyslog.conf exempel

Här är två rader ur rsyslog.conf filen som levereras med Fedora. Låt oss tala om vad de faktiskt gör:

authPriv. * / var / log / säkra

*. Info, mail.none, authpriv.none, cron.none / var / log / messages

Dessa linjer definierar två av de regler för att fastställa vilken loggposterna ska gå till som loggfiler. Syntaxen för sortering är:

facility.severity

Så den första raden säger att alla anläggning 10 (authPriv) loggposter, oavsett svårighetsgrad ("*" är en wild card match) ska skickas till filen / var / log / säkra.

Den andra raden är lite mer komplicerad eftersom den har flera villkor separerade med semikolon. Dessa villkor tillstånd:

  • *. Info = Alla anläggningar så länge svårighetsgrad är info
  • mail.none = Inga mail anläggning loggposter, oavsett svårighetsgrad
  • authpriv.none = Inga authprive poster anläggning log, oavsett svårighetsgrad
  • cron.none = Ingen cron poster anläggning log, oavsett svårighetsgrad

Eller att översätta detta till engelska, säger raden "Skicka alla svårighetsgrad" info "-meddelanden till / var / log / messages, utom sådana som innehåller en anläggning av" mail "," authPriv "eller" cron ".

Så med dessa regler kan vi definiera vilken kombination som helst av anläggning och svårighetsgrad värderingar och som loggfil vi vill styra den. När du först ställa in det, hålla med standardinställningarna. När du börja samla loggposterna kan du justera reglerna som du vill.

Böja RFC

I en idealisk värld skulle RFC vara en perfekt passform för allas behov. Tyvärr är detta inte alltid fallet. Ett bra exempel är loggning anläggningar. Som nämnts vi saknar underlättar för moderna tjänster, samtidigt som samtidigt har lättare att vi aldrig kommer att använda. Ett självklart svar är att återvinna de omoderna anläggningar i syfte att stödja moderna tjänster.

Till exempel, är uucp-(facilitet 8) inte ens stöds av moderna operativsystem. Med detta i åtanke, jag gillar att använda det som min Windows anläggning. På så sätt kan jag sortera alla Windows loggposter i sin egen fil. För nätverksmaskinvara använder jag möjligheten Network News (anläggning 7). Om du är osäker på om en anläggning som används för tillfället, ändra din loggning servers konfigurationsfil för att skicka alla loggposter för denna anläggning till en unik fil:

ftp. * / var / log / anläggning-test

Om inga poster anländer, är du i gott skick. Bara hålla i minnet att en legitim tjänst kan använda den vid ett senare tillfälle. Till exempel om tre månader från nu någon sätter upp en FTP-server, kan vi få problem om vi redan använder FTP anläggningen (anläggning 11). Om du är osäker kan du alltid hålla fast vid den lokala användningen anläggningarna, eftersom det är vad de är avsedda för. Lokal användning 0 och 7 verkar vara den mest använda, så undvik dem när det är möjligt.

Andra sorteringskriterium optioner

Medan dess inte en del av RFC vissa loggning servrar ger dig möjlighet att sortera loggposter baserade på mönster i meddelandet. Ett bra exempel är syslog-ng . Syslog-ng kommer att sortera baserat på anläggningen och svårighetsgrad, men du kan också sortera baserat på käll-IP, det program som genererade loggpost, etc. Detta ger dig betydligt mer flexibla sorterings alternativ och det kan vara något att överväga om anläggningen / svårighetsgrad inte är kornig tillräckligt för dina behov.

Exec Sammanfattning

I denna delbetalning pratade vi om hur anläggningen och svårighetsgrad används för att sortera loggposter. I mitt nästa inlägg ska jag prata om hur man får alla våra system för att lämna loggmeddelanden till vår central server.

Ställa in en förvaltning Security Information System-del 3

11 augusti 2009

I förra inlägget jag täckt en del av de arkitektur bekymmer med rulla ut ett centraliserat system säkerhetsinformation. I det här inlägget ska jag täcker driftsätta en grundläggande logg-server, och kontrollera att den är redo att acceptera loggposter.

Välja en loggning server

Det första vi behöver göra är att välja en plattform för vår loggning server. Om vi ​​helt enkelt att inrätta ett testlabb, kommer Windows, UNIX eller Linux gör alla bra val. Välja Windows kan vara till hjälp för en Windows-administratör, eftersom de inte behöver skära kurvan på ett nytt operativsystem samtidigt som man försöker testa loggning. Medan Windows stöder inte Syslog ur lådan, det finns flera fina paket som Kiwi Syslog Server , och WinSyslog det kommer att lägga Syslog-stöd. Båda har utvärderingsversioner och är relativt billiga att licens.

Om vi ​​talar om att inrätta en produktion server kommer dock att vi vill hålla sig borta från Windows. Windows är ökänd för att ha en hemsk IP-stack. Om faktum tidigare "plåster" har förlamat det ännu mer i syfte att bromsa mask utbredning och öka hastigheten på GUI. Även om många av dessa begränsningar har tagits bort under 2008 Server och Windows 7 är IP prestanda fortfarande är sub-par jämfört med ett Linux eller Unix-system distribueras på samma hårdvara.

Så som lämnar Linux och UNIX som val för ett produktionssystem. Att välja beror på personliga val. Vissa gillar stabiliteten i BSD medan andra gillar flexibilitet Linux. För detta dokument kommer jag att arbeta med en Fedora Linux-system. Installation och konfiguration av OS är relativt intuitivt och enkelt.

Att acceptera avlägset belägna stockar

För att ta emot loggposter från fjärrsystem krävde äldre versioner av Fedora du initiera syslog-demon (syslogd) med "-r" alternativet. Detta gjordes genom att lägga till "-r" till syslogd_options raden av / etc / sysconfig / syslog-fil. Vissa versioner av Linux stöder fortfarande arvet Syslog, och kräver att du lägger till "-R" till syslog RC initieringsfil. Kontrollera docs för din specifika distribution.

Nya Fedora-system stöder dock "Pålitlig Syslog" eller rsyslog. Genomförandet är ganska lik vanliga gamla Syslog, utom rsyslog stöder kommunikation över TCP/514 samt UDP/514. I förra inlägget jag beskrev att köra loggposter över TCP kan fixa några av skälen till att vi förlorar loggposterna, men inte alla av dem. Om du vill leka med TCP stöd, gå vidare och öppna båda portarna på loggning servern.

För att få rsyslog att acceptera avlägsna loggposter, måste vi redigera / etc / rsyslog.conf fil. Mot början av filen bör du se följande:

# Tillhandahåller UDP-syslog--reception

# $ ModLoad imudp.so

# $ UDPServerRun 514

# Tillhandahåller TCP-syslog--reception

# $ ModLoad imtcp.so

# $ InputTCPServerRun 514

Den "#" (pundet) symbolen vid början av raden talar om för systemet att inte bearbeta resten av raden. Vi använder denna teknik för kommentar liksom "kommentera bort" kommandon vi inte vill ha behandlats. Genom att kommentera ut ModLoad och hamnar linjer specifikation, förhindrar vi rsyslog från att öppna en lyssnande uttag. Den hjälper till att hålla systemet i en säkrare stat.

Eftersom vi sätter upp en central loggning server, måste vi öppna dessa uttag för att acceptera avlägsna loggposter. Ändra / etc / rsyslog.conf filen och ta bort lämpliga pund symboler. Filen ska nu se ut så här:

# Tillhandahåller UDP-syslog--reception

$ ModLoad imudp.so

$ UDPServerRun 514

# Tillhandahåller TCP-syslog--reception

$ ModLoad imtcp.so

$ InputTCPServerRun 514

Om du vet att du aldrig kommer att använda TCP, kan du lämna de två sista raderna kommenterade ut. När du är klar sparar dina ändringar och avsluta filen.

Vi måste nu starta om avverkning så att våra förändringar genomförs. Detta görs på Fedora genom att köra följande kommando:

tjänsten rsyslog starta om

När du kör kommandot, bör du se rsyslog stopp och börja med statusen "OK". Om avstängning inte beror det på att rsyslog inte är initieras vid uppstart. Från kommandoraden, exekvera kommandot "setup" och välj "System-tjänster" från huvudmenyn. När tjänster menyn visas, rulla ned i listan tills du hittar rsyslog. Bocka i rutan till vänster och välj sedan "OK". Avsluta Setup Utility och rsyslog kommer nu att initiera varje gång systemet startas.

Verifiera lyssnande port

Nästa vi måste se till att vår loggning process emot avlägsna loggposter. Från kommandoraden, skriv "netstat-an | grep: 514". Utgången bör likna följande:

[Root @ Fubar ~] # netstat-an | grep: 514

tcp 0 0 0.0.0.0:514 0.0.0.0: * LISTEN

tcp 0 0 ::: 514 ::: * LISTEN

udp 0 0 0.0.0.0:514 0.0.0.0: *

udp 0 0 ::: 514 ::: *

Den första raden säger att TCP/514 lyssnar via IPv4 på alla nätverksgränssnitt. Rad två berättar TCP-port är också att lyssna på alla gränssnitt med en IPv6-adress. Linjer tre och fyra är samma information, med undantag för UDP. Om någon av uppgifterna staten "127.0.0.1:514" istället för "0.0.0.0:514", då porten endast bunden till loopback-gränssnitt. Endast lokala systemet kommer att kunna nå den. Detta kan ske med system äldre Syslog om du glömde att köra dem med "-r" omkopplare.

Du bör nu ha en logga server som kan ta emot inkommande loggposter. I nästa inlägg ska jag tala om hur dessa loggposter få sorteras i särskilda filer.

Ställa in en förvaltning Security Information System-Del 2

10 augusti 2009

I mitt senaste inlägg diskuterade vi att definiera dina mål för en Security Information Management (SIM) system. I detta inlägg kommer vi tala om arkitektur oro samt kapacitetsplanering.

Nätverkskommunikation

Målet är att ha en eller flera SIM-servrar som ska samla loggposter från andra system. Detta kommer naturligtvis att påverka nätutnyttjande. Hur mycket av en effekt beror på mängd och typ av system som vi samlar in loggposter från.

UDP/514

Bara om alla system stöder det ursprungliga genomförandet Syslog kommunikation som går hela vägen tillbaka till år 1988. Den sista beskrivningen av denna spec dök upp i RFC 3164 . Även om detta RFC har efterträtts av RFC 5424 , representerar RFC 3164 fortfarande genomförande stöds av de flesta leverantörer. Windows är ett anmärkningsvärt undantag (egen, ingen Syslog-stöd), men det finns 3: e parts programvara för att rätta till detta.

Båda RFC ange användning av UDP-protokollet vid sändning loggposter. Den välkända porten att använda är UDP/514. När RFC 3164 och 5424 skiljer sig åt är i form av loggen meddelandet. Jag gräver i dessa skillnader i ett senare inlägg.

Kärleken / hat för att använda UDP

På den positiva sidan är UDP förbindelselös. Detta innebär att det genererar mindre trafik än om vi använde TCP. Dessutom log sändningar är en enkelriktad process. Värden generera en loggpost skickar ett paket till loggning servern, men loggning servern inte svarar. Det innebär att vi kan styra trafikflödet med statisk filtrering snarare än stateful filtering som ställer mindre overhead på trafiken styranordningen. Dessutom är UDP header vanligtvis 1/3 - 1/4 storleken av en TCP header, vilket innebär mindre överföring paket, därmed mindre nätverk overhead.

På den negativa sidan är UDP förbindelselös. ;) Detta innebär att det har minimal kapacitet felrapportering. Till exempel om vi överför en loggpost och ramen går saknas (säg en kollision eller en brandvägg släppa paketet), har UDP inte förmågan att upptäcka att en omsändning krävs. Detta innebär att det möjligt för loggposterna att gå saknas om vi svämma över nätet. Vidare har UDP ingen möjlighet flödeskontroll. Om SIM-servern känner igen den når kapaciteten har ingen möjlighet att bromsa den inkommande överföringen av loggposter. SIM-serverns enda alternativ är att kasta paketen bort utan bearbeta dem.

Naturligtvis måste vi se till att vi på rätt sätt anger kapacitet. Om nätverket eller SIM-servern blir överbelastad, kommer vi att förlora loggposter. Ordentlig kapacitetsplanering börjar med att förstå hur inloggning i nätverket.

Nätverk effekterna av avverkning

Den maximala storleken på ett UDP Syslog paket har olika specifikationer i olika RFC-talet. Den föråldrade RFC 3164 definierar den maximala meddelandestorleken som 1024 bytes. RFC 5426 sjunker den maximala storleken till 480 bytes. Om en säljare fortfarande efter den gamla spec dess möjligt att de fortfarande kan tro att 1.024 byte storleken är legitimt. Det har varit min erfarenhet dock att de flesta loggposten paket varierar i storlek från 75 till 225 bytes, så de maxima är en icke-fråga.

Windows-system, brandväggar och intrång system för upptäckt tenderar att generera de största meddelanden. Nätverksmaskinvara tenderar att generera minsta meddelanden. Om vi ​​har ett 100 Mb Ethernet-nätverk, skulle den teoretiskt maximala vara någonstans runt 50.000 till 130.000 bilder per sekund. Detta förutsätter noll annan trafik, vilket sällan är fallet. Vid tillämpning av kapacitetsplanering, anta att du kommer att begränsas till 5000 loggposter per sekund. Detta antal kan även vara mindre om du har en hektisk nätverk. Med vissa utnyttjande mätningar under planeringsprocessen är nyckeln.

Syslog över TCP

Som nämnts ovan, introducerar UDP problemet att loggposter kan bli förlorad utan att vi ens veta om det. Det finns sätt att validera kapacitet som jag kommer att täcka i en senare inlägg. Några känner att köra Syslog över TCP kan rätta till detta problem. TCP kan tas tillvara för sin tillförlitlighet insurie våra loggposter ordentligt emot.

Tyvärr TCP stöd för Syslog inte var nära standardiserade. Vissa leverantörer stöder TCP genom att helt enkelt lyssna på TCP/514. RFC 3195 definierar Pålitlig Syslog som att använda port TCP/601, men den antas har varit mycket begränsad. RFC 5425 definierar användningen av TLS för att säkra Syslog överföring. Detta RFC anger användningen av hamnen TCP/6514. Detta är en helt ny specifikation och jag är medveten om någon stödja den ännu.

Så stöd för TCP är hela styrelsen. Vidare, inte TCP inte helt lösa problemet. Även TCP kommer att ge oss flödeskontroll och tillförlitlighet på tråden, kan det inte göra up för det faktum att Syslog på applikationslagret inte bekräfta mottagandet av loggposter. Detta var avsiktligt eftersom det minskar overhead. Problemet är att även med hjälp av TCP vi fortfarande kan förlora meddelanden i IP-stacken och aldrig vet att det sker.

Så om du vill försöka överföra loggar via TCP, det enda att gå till jobbet mellan en specifik leverantörs klient-och serverprogramvara. Till exempel kan du behöva köra syslog-ng i båda ändarna av förbindelsen att utnyttja det stöd för TCP. Detta är inte alltid praktiskt, eftersom du inte kan köra programmet klienten på apparater som accesspunkter, switchar, routrar etc.

Var du placera loggning servern

När man beslutar var du vill placera loggning servern måste vi hålla både nätkapacitet och säkerhet i åtanke. Ta en titt på figur # 1. Detta är en idealisk situation där loggning servern har isolerats till ett särskilt nät nätverksamheten. Detta isolerar den från andra säkerhetszoner och gör det mycket lättare att utnyttja brandväggen för att begränsa tillgången till loggning servern.

sim-placement

Ritningen antar att vi bara behöver en loggning server för hela vår miljö. Vad händer om vi har 100.000 noder för att hålla reda på? Stora nätverk kan behöva titta på aggregera data. Till exempel om jag har 10 fältkontor, kan jag ha en logga server placerad i varje en av dem samla lokal inloggning info. Alla dessa loggning servrar skulle därefter relä sammanfattande information tillbaka till huvudkontoret för nätverks trend rapporter. Detta sätt kan vi upprätthålla en hög grad av synlighet och samtidigt minska belastningen på nätet. Jag täcker några möjliga sammanläggning alternativ i ett senare inlägg.

Hur många system kan logga till en enda loggning server?

Det finns inget enkelt svar på denna fråga eftersom varje nätverk är olika. Det kommer att bero på hur mycket kapacitet som finns på ditt nätverk och hur många loggposter vart och ett av dessa system genererar. Till exempel kunde jag nog peka 50.000 växlar på en enskild avverkning server, som växlar tenderar att generera mycket få meddelanden. Brandväggar å andra sidan är extremt pratsam, så jag kan maxa ut nätverket eller SIM-server med bara 20-50 brandväggar. Så för att besvara frågan måste vi titta på två mått:

  • Hur mycket ledig kapacitet finns det på tråden?
  • Hur många loggposter kommer varje värd genererar?

Den andra frågan är inte så enkelt som det kan verka. Till exempel det genomsnittliga skrivbordet kan endast generera 40-100 loggposter per dag. Om vi ​​kan driva 1000 loggposter per sekund, säger matte att vi ska kunna peka 86 miljoner datorer i ett enda loggning server. Problemet är ca 80% av dessa meddelanden genereras vid första uppstart. Om alla typiskt befogenheter runt 9:00 AM, de matematiska ändringar i en mer realistisk 750 stationära datorer (igen, förutsatt att vi kan driva 1000 loggposter per sekund över tråd).

Så vi kan inte bara titta på mängden av långa poster. Vi måste ta tid på dagen beaktas också. Detta kommer att identifiera det faktiska antalet loggposter per sekund kan vi förvänta oss i värsta fall förhållanden. Värsta fall är kapaciteten nivå vi behöver för att planera för.

Deploy centraliserad loggning i faser

Om du har tiotusentals system för att hantera, är det lätt att bli överväldigad med arbetet med utbyggnaden av centraliserad loggning. Rulla ut lösningen i faser gör det enklare att linda din hjärna runt hela processen.

Först börja med en enda loggning server. Du kanske inte kan täcka hela nätverket, men vi måste börja någonstans. Stora nätverk bör överväga en utplacering på huvudkontoret först flyttar ut till fältkontor när företagets systemet är fullt kontrollerats och funktionell.

Du kommer också vill fasa in vilka enheter du samlar in information från. Jag brukar gå med följande ordning:

  1. Nätverk Intrusion Detection Systems
  2. Brandväggar
  3. Nätverksmaskinvara (routrar, switchar, tillfarter och skrivarservrar, etc.)
  4. Internetpriser som står inför-servrar
  5. Interna servrar
  6. Interna stationära datorer

Självklart kan du justera den här listan för att passa dina behov. Till exempel om du inte planerar på att samla in information från stationära datorer, helt enkelt lämna det steget ut. Jag vill börja med system nätverk intrång först som deras loggposter är väl lämpade för prövning både dagliga rapporter och realtid varningar. När vi har ett handtag på larm och rapportering, lägga ytterligare enheter blir mycket lättare.

Exec Sammanfattning

I det här inlägget jag täckte alla de saker du behöver tänka på när första utbyggnaden av en centraliserad loggning lösning. Vi täckte hur förutse den inverkan det kommer att ha på nätutnyttjande, hur man beräknar antalet värdar per loggning server, och varför det är viktigt att använda lösningen i faser. I nästa inlägg kommer vi börja tala om hur du konfigurerar centraliserad loggning servern. Specifikt kommer vi att titta på hur vi ska sortera loggposter.

Ställa in en Security Information Management (SIM) - Del 1

8 augusti 2009

Jag får en massa logga frågor. Så mycket så att jag beslutat att göra en serie om hur du distribuerar logghantering. Det finns några utmärkta loggar resurser på Internet, men de är splittrade i omfattning och / eller säljaren specifika (oftast skriven av försäljarna). Jag ville skapa neutrala något leverantör som håller din hand genom hela processen med att distribuera en lösning logghantering.

Varför ska jag använda ett säkerhetssystem informationshantering?

Låt oss vara uppriktiga, är utbyggnaden av logghantering hårt och smärtsamt. Detta är anledningen till att så många administratörer undvika det som pesten. Det är svårt att driftsätta och en vild buck för att utföra långtidsbehandling. Veckovisa resor till tandläkaren skulle förmodligen vara mer lustfyllt.

Med allt det sagt, är logghantering förmodligen den enskilt mest effektiva säkerhetslösningen du kan distribuera. Du kan inte släppa den och glömma det som en brandvägg, men logghantering kan ge dig oöverträffad insyn i det inre arbetet i ditt nätverk. När dess inte ge insikt i säkerhetsfrågor händelser som du annars skulle missa, det gör dubbel plikt att hjälpa dig felsöka kommunikation och system frågor. Ett loggning system kan vara resurskrävande, men det kan också ge en mycket hög avkastning.

Varför vill du en SIM?

Innan vi börjar, är den första frågan du måste ställa dig själv varför du vill ha en SIM-lösning . Vill du förbättra säkerheten eller finns det en övervakningsplan specifikation måste du följa? Det kan tyckas märkligt att vilja skilja mellan de två, men kraven är drastiskt annorlunda. Standarder är mycket lättare (och billigare) att uppfylla än sann säkerhet.

Standarder som PCI-DSS kräver att du loggar användaren, ansökan och nätverk aktivitet. Men de tenderar att vara mycket vaga i hur denna information blir bearbetas. Du kan oftast komma undan med att droppa i en svart låda, som genererar några färgglada ledningsrapporter och betraktas som "compliant". Det kan inte hjälpa dig att hitta backdoored system som ringer hem, men du har träffat standarden.

Standarder tenderar att fokusera på den minsta gemensamma nämnaren. De måste gälla för en bred kundkrets, inklusive företag utan en massa resurser. Istället för att utvärdera en särskild organisation risk och basera kraven på att sätter vi ribban lågt så det är möjligt för små och stora organisationer lika.

Dessutom, för att förenkla processen, tenderar vi att fokusera på checklistor. Checklistor är cool eftersom de berätta exakt vad som behöver göras för att bli klagomål. Om en revisor kan sätta en bock bredvid alla objekt, passerar du testet. Problemet är checklistor tenderar att fokusera på symptomen, inte själva problemet.

Jag ska ge er ett bra exempel. Jag hade en kund ta in en kvalificerad Security Assessor att certifiera dem för PCI-DSS. Detta var en av mina klienter som kör en strikt tillämpning av programkontroll, så de kunde visa ett och ett halv historia av noll Malware infektioner. Medan de verkligen fick Malware över denna gången kunde vi bevisa att det fanns noll fall av konstaterad infektion som varje Malware angrepp omedelbart innehöll och elimineras. Inte många företag kan göra anspråk på ett år + med noll Malware infektioner.

Revisorn svikit dem. PCI-DSS krav # 5 säger: "anti-virusprogram måste användas på alla system som vanligen utförs av Malware". Eftersom de sprang programkontroll, inte anti-virus, ansågs de inte uppfyller kraven. Om kravet 5 hade skrivits för att identifiera en acceptabel tröskel för Malware inneslutning, de skulle säkert ha träffat specifikationen. Men riskbedömning och statistik gör inte för enkel checklista objekt.

Så om du vill distribuera en SIM att faktiskt öka säkerheten i din omgivning, det kommer att ta längre tid och kräver mer arbete än att bara uppfylla en specifikation.

Om du bygga ditt eget SIM?

Jag övertygad om att alla som funderar en SIM lösning bör börja med att bygga sin egen. Medan det finns några anständiga kommersiella SIM-lösningar där ute, isolera de dig från de inre verk av loggning processen. Detta kan vara en bra sak i det sparar tid. Problemet är att du inte kommer att lära sig så mycket.

Dessutom är logghantering distribution en resa. Du hittar under en utbyggnad att dina krav kan ändras. Information som du först trodde var viktigt, är helt plötsligt inte. Rapporter du inte ens tänka på, helt plötsligt hopp till toppen av listan. Genom att bygga din egen system du kommer att ha mer flexibilitet att göra ändringar i farten. Om du senare bestämmer dig för en kommersiell lösning, du är nu bättre informerade om dina krav och kan göra ett bättre jobb att utvärdera ett eventuellt köp. Detta är viktigt, eftersom många log-lösningar är dyra. Du vill inte släppa en massa pengar på en lösning som inte kommer att uppfylla dina långsiktiga behov.

Jag ska ge er ett bra exempel. De flesta av de platser jag har arbetat med från början tror misslyckade inloggningar är viktiga och vill se rapporterna. Det tar dem inte lång tid att räkna ut att se alla misslyckade inloggningar är en komplett slöseri med tid eftersom alla feta fingrar på tangentbordet ibland. De inser då de vill ha några trösklar runt data. Till exempel de vill bara för att se misslyckade inloggningar om tre eller fler fel ses i fem sekunder (vilket indikerar en automatisk attack). Eller bara visa misslyckades inloggningar när flera inloggning namn används från samma källa IP (som indikerar ett lösenord gissa attack). Så genom att hantera viss information overload, blir de bättre skicklig på att definiera exakt vad de vill se.

Summary

OK, så vi har täckt definiera en inriktning (säkerhet Vs. Standarder krav) samt vikten av att initialt bygga ditt eget system. I nästa delbetalning jag få in arkitektur och kapacitetsplanering.