Har Lönsamhet Kill innovation?

September 2, 2010 av Chris Inga kommentarer »

Paul Graham har en utmärkt skriva upp varför Yahoo gick i konkurs . Hela artikeln är värd läsa, men här är två val citat:

Jag minns berättar David Filo i slutet av 1998 eller början av 1999 att Yahoo ska köpa Google, eftersom jag och de flesta andra programmerare i företaget skulle använda det istället för Yahoo för sökning. Han berättade att det inte var värt att behöva oroa dig. Sök endast 6% av vår trafik, och vi växte med 10% per månad. Det var inte värt att göra bättre.

Och senare Paulus fortsätter med att säga:

Om omständigheterna hade varit annorlunda, folk kör Yahoo kan de ha insett tidigare hur viktigt sökning var. Men de hade det mest dunkla hinder i världen mellan dem och sanningen: pengar. Så länge som kunderna skriver stora checkar för bannerannonser, var det svårt att ta söka på allvar. Google hade inte det för att distrahera dem.

Först en disclaimer: De åsikter jag ska uttrycka är mina egna. De utgör inte, eller har någon anknytning till någon organisation jag har arbetat med tidigare, nuvarande eller framtida. Om du ser en brist på innovation inom din organisation, vet att jag har gjort jobbet åt dig, och tror att dessa åsikter om er organisation, kan jag försäkra er att de inte är. De iakttagelser avseende en helt annan organisation.

Paul's artikel fick till en riktig hemma för mig. Att tänka tillbaka på de år jag tillbringat konsulttjänster för olika organisationer, märkte jag ett distinkt mönster. Internet rymden är full av företag som hade några coola innovation, gjort insteg i deras marknadsandel, men då vilse i jakten på högre vinster. Du kan se det i organisationens interna kulturen samt deras fronten mot samspelet med allmänheten. När fokus ändras från långsiktig teknikutveckling för att på kortare sikt, startade organisationen en nedåtgående spiral.

Förmodligen en av de tidigaste mest offentliga exemplen var Lotus . För folk med så mycket grått hår som jag, minns du säkert att det program som 1-2-3 och noter sätta datorn på kartan som valet business class-system. I början av 90-talet var alla som kör Lotus programvara. För att gången i historien det var oerhört innovativa och funktionella. Det var ett antal år där bokstavligen varje företag jag arbetar för hade en stor spridning av Lotus programvara.

Sedan ungefär i mitten på 90-talet det förändrade allt. Nya releaser fast buggar i stället drivit tekniken framåt. En drakonisk kopieringsskyddet genomfördes. Kostnader för telefonsupport och patchar gick igenom taket. Jag minns det exakta ögonblicket bestämde jag mig för jag skulle göra vad jag kunde för att komma bort från Lotus programvara. Jag satt sig ner och cc: Mail-stöd (för datalagring hade skadat sig igen) och förstod att de hade hyrt en skiva jockey för att spela musik och tillkännage kö vänta gånger (vanligtvis 30-60 minuter). Detta sade till mig att Lotus visste att de hade stöd problem, men i stället ta itu med orsaken de tog den billiga vägen ut och hyrde en underhållare. Samtidigt som jag är säker på att det ökade inkomster på kortare sikt, sände folk som jag själv kör in i Microsoft lägret.

Naturligtvis skurkar var inte den sista. Vi såg även Microsoft växa i stormsteg tills fokus ändrats från innovation till kopieringsskydd och slicks marknadsföring. SCO bytte affärsmodell från att vara en SMB-lösning att vara litigators och snabbt gled i glömska. Vi kan till och med se den igen med Oracle. Vissa hävdar att Oracle köpte Sun inte att skicka in sina innovation, men just att väcka talan mot Google . Svårt att argumentera denna punkt som utifrån det framgår att endast annan sak de har gjort med Sun är döda OpenSolaris , och därmed skära av en mängd innovationer som tillhandahålls av utomstående programmerare.

I Paulus 'artikeln han skyller roten på Yahoo inte anställa de bästa programmerare. Enligt min erfarenhet problemet är djupare än så. När ett företag går över till detta självdestruktiva fas de fokuserar mindre på uthyrning innovatörer (som programmerare) och mer på hyra böna diskar. Fokus ändras från att främja nya idéer för att tränga ut varenda öre för kortsiktiga vinster. Det första tecknet är vanligen absurt politiska förändringar. Kuber endast kan dekoreras på något cookie cutter mode, måste ingenjörer tömma sina egna sopor, spenderar du mer av din dag står för vår tid snarare än att faktiskt åstadkomma någonting, etc. etc.

Även om jag är säker på några revisor kan visa på en ganska stapeldiagram att denna typ av politiska förändringar ökad lönsamhet, de missar en mycket viktig punkt. De förändringar som skapar en miljö som är skadlig för nytänkande. Kulturen flytta över alla utan garantier för att innovativa idéer kommer att misslyckas, och innovativa tänkare kommer att gå vidare till andra möjligheter. Paulus interaktion med Yahoo är ett utmärkt exempel. Se det som synonymt att investera i livsmedel i affären. Att köpa billiga livsmedel kommer att resultera i kortare sikt, men på lång sikt kommer det troligen dramatiskt öka dina sjukvårdskostnader . När du räknar ören är det lätt att förlora ur sikte det långsiktiga målet (som att leva ett långt och friskt liv).

Så är problemet "stora"? Är mantrat att endast små hungriga företag kan innovera medan stora företag har ämna att misslyckas? Personligen tror jag inte att detta är sant. Jag har sett stora företag som är smarta nog att skapa inre tankesmedjor att främja innovation. Mekanismer inrättas så att nya idéer får flöt upp till toppen och misslyckande inte blivit synonymt med uppsägning. Även lönsamheten är fortfarande viktigt (och IMHO det bör vara), kreativt risktagande i potentiell teknik vertikaler stöds av högsta ledningen. Ett bra exempel på detta är antagligen Apple. Flytta från datorer till telefoner var en stor förändring i sitt vertikala marknaden, men det lönade sig i spader.

I slutändan tror jag att det verkligen handlar om företagskulturen. Vad dödar ett företag är inte dess storlek, men dess förmåga att främja långsiktigt istället för kortsiktigt tänkande. Snabb förstånd kontrollera om du märker din organisation anställa mer bönor diskar än innovatörer, kan du redan på den nedåtgående spiralen.


VMware Fast Path Versus Långsam Path brandväggar

30 aug 2010 av Chris Inga kommentarer »

Många av oss arbetar nu med virtuella brandväggar. Jag gjorde ett tidigare inlägg om starka och svaga sidor av säkerheten inom den virtuella värld , men i dag vill jag tala om brandväggar möjligheter med VMware. Det har varit mycket spännande för VMwares relativt ny VMsafe API . Specifikt är alla klättra för att skapa / använda snabb väg brandväggar. Men är alla snabba väg implementationer skapade lika? Finns det oro för säkerheten med att gå med en snabb väg lösning? Låt oss dyka i och se.

Fördelning av VMsafe

Med utgåvan av VMsafe säkerhets-API har VMware ökat de alternativ som finns för genomförandet av säkerheten inom en vSphere miljö genom att tillåta leverantörer att ansluta direkt i hypervisorn vid ring 0. VMsafe består av tre delar:

  • VDDK - Disk block inspektion. API har offentligt släppts.
  • vCompute - CPU och minne API. Har inte offentliggjorts. Okänd som utomstående har tillträde, om något.
  • vNetwork - API för att övervaka och filter mellan vNIC och vSwitch. Har inte offentliggjorts. Så vitt jag vet, bara Altor Networks & Reflex system har tillgång (två leverantörer som medverkat i utvecklingen av API).

Konkret vill jag tala med vNetwork API. Vid styrning nätverkstrafik flödet i en ESX-värd, finns det två möjliga genomförande "långsam väg" och "snabb väg".

Långsam Path

Långsam väg är den enklaste genomförandet och den vi har använt i flera år. Effektivt detta är bara en VM-gäst, som liknar någon annan VM-gäst, körs på ESX värd. Typiskt varje gäst är ansluten till en unik vSwitch, och dessa vSwitches är ansluten till en unik vNIC på brandväggen. Det är ungefär som ett arv brandvägg setup, men genomfördes så gott. Fördelen med att köra i långsam väg är att du kan köra en full blåsa OS med något bibliotek eller tjänster behövs för att stödja brandväggen.

Fast Path

Fast vägen är faktiskt en ring 0 drivrutin som ansluts direkt i hypervisorn kärnan. Detta gör att en tredje part för att utnyttja hypervisor för insättning mellan varje vNIC / vSwitch anslutning. Eftersom en snabb väg föraren kör i kernel-kontexten, lägger den minimala overhead till systemet. Resultatet är kod i snabb väg är betydligt snabbare än samma kod exekveras inom långsam väg (alltså VMware namnkonventionen för varje sammanhang). Belastningen på ESX värd minimeras, så slutresultatet är att du kan köra mycket mer virtuella gäster.

Fast Vs Långsam

Så det låter som du skulle vilja göra allt som står i snabb väg, men det finns ett antal frågor. Fast vägen är en kärndrivrutinen koppla in ett minimerat hypervisor och inte en full blåsa operativsystem. Detta begränsar bibliotek och brandväggen har tillgängliga för att bekämpa trafikflöde. Dessutom är vi koppla in en kärna föraren så måste det finnas garantier för att den inte svälla hypervisorn, öka attacken ytan eller stör andra hypervisor funktioner. VMware utför en kodgranskning på alla snabb väg förare innan de släpps. Så om jag teoretiskt sett skulle genomföra alla mina nummer i snabb väg, skulle jag behöva VMware godkännande före varje patch eller funktionen release.

Med detta i åtanke, ett företag som hävdar "snabb väg" stöd faktiskt kommer att hamna genomföra en del av sin kod så snabbt väg, en andel som långsam väg, och sedan skapa en koppling mellan de två. Hur mycket last placeras på systemet beror på hur mycket av detta nummer har genomförts i snabb väg och hur mycket den körs i långsam väg.

Möjliga Fast Path implementering

Till exempel kan en leverantör välja att skriva en snabb väg drivrutin som helt enkelt tunnlar alla paket till en långsam väg genomförs brandvägg. Den långsamma väg koden avgör sedan om trafiken bör överlämnas eller tappas, och passerade paket skickas tillbaka till den snabba vägen koden för att infogas i den hypervisorn kontroll kanal. Även om detta skulle vara den enklaste metoden för att sprida snabb väg, och otvivelaktigt den säkraste, skulle det ge minst resultat fördelar. Belastningen på systemet skulle förmodligen inte vara mycket bättre än en hel långsam väg genomförande. Jag ser detta alternativ som mycket attraktiv för leverantörer gamla brandvägg, eftersom det skulle kräva att minst antal ändringar av sina befintliga koden samtidigt som de kan göra anspråk på "snabb väg support".

Ett annat alternativ skulle vara att använda den långsamma vägen utrymme för administrativa funktioner med den snabba vägen föraren som brandvägg motorn. Så till exempel brandvägg administratör skulle skapa den politik med ett gränssnitt som körs på en långsam väg VM, som sedan skulle driva den politik ned till en snabb väg förare. Med den här inställningen den snabba vägen föraren har en kopia av den politik så trafikkontroll kan genomföras omedelbart. Resultatet är snabbare trafik hantering med minimala belastningen på systemet. Den avvägning är skrymmande kod vid ring 0.

Det är också möjligt att genomföra en blandning av de två. Till exempel kan jag använda den snabba vägen föraren att genomföra brandvägg politik, men då klarar "godkänd" paket tillbaka till den långsamma vägen för intrång kontroll, virussökning, eller vad behövs. Acceptabel paket sedan föras tillbaka till snabb väg föraren att införas. Så i denna setup alla "släpps" paket hanteras via snabb väg, samtidigt som accepteras paket interagera med en långsam väg komponent.

Som en sida noterar, måste du hålla ovanstående information i åtanke när man överväger alla vNetwork implementationer, inte bara brandväggar. De vNetwork API kan också användas för genomdrivandet, QoS, insamling av nätverk statistik, etc. Till exempel den allra första vNetwork genomförande var faktiskt VMWare's Lab Manager. Detta verktyg används för självbetjäning proviantering och inte innehåller en brandvägg komponent (detta genomförs genom vShield).

Sammanfattning

Även om en VMware produkt som integrerar med VMsafe kan absolut vara en "långsam väg" genomförandet, det är högst osannolikt att en produkt kan betraktas som enbart en "snabb väg" genomförande. Någon snabb väg produkt är mest sannolikt kommer att bli en hybrid. Det är bara en fråga om hur mycket nummer i "snabb väg" utrymme kontra "långsam väg" utrymme. När en produkt fordringar snabb väg support måste du gräva lite djupare för att analysera genomförandet i syfte att identifiera eventuella verkliga resultat fördelar.

Den Comcast Scam

25 augusti, 2010 av Chris Inga kommentarer »

Helt utan samband med säkerhet, men blev förvånad när detta hänt mig så jag trodde att jag skulle kasta ut en heads up.

När du betalar ditt kreditkort eller amorteringar, det finns lagar på plats för att (försöka) hålla borgenärerna med mejsling dig. Till exempel om du gör en betalning med kreditkort, har borgenären att ansöka om att betalningen till de äldsta köp. Om de inte gjorde det kunde de Whack lätt dig med högre ränta och straffavgifter med endast betala av de senaste inköp. Lagen är utformad för att ge en viss nivå på konsumentskyddet.

Tydligen samma regler gäller inte för Comcast. Tillbaka i juni gick jag in i det lokala Comcast kontoret och plockade upp två nya kabeln lådor. Dessa gör det på mitt juni lagförslag, som jag helt missat på grund av resa. Jag har min bank-inställningarna för att auto-betalningar, men i juni automatisk betalning till slut blev $ 18 kort. Hoppa till juli och jag hade samma problem. Ser inte på räkningen och bara låta automatisk betala göra sin grej. Fast nu är det inte bara $ 18 korta, är det 18 $ plus avgifter och sanktioner.

Så här är vi i augusti. Mindre än 30 dagar sedan jag senast gjorde en betalning och Comcast dödade min tjänst. Telefon, TV och Internet allt offline. När jag ringde för att ta reda på problemet, fick jag veta mitt konto var 60 dagar försenade. Efter att ha talat med tre olika personer fick jag höra att Comcast har något sådant krav att gälla betalningar till äldsta skulder. Så medan min juli propositionen ansågs nuvarande, var min juni lagförslaget ansåg 60 dagar försenade. Således avbrott i tjänsten, liksom flera avgifter för att räta ut medan sak. Om Comcast hölls till samma standard som de flesta fordringsägare skulle jag är fortfarande skyldig dem $ 18. Eftersom de inte är, med sina avgifter jag nu skyldiga $ 47 och det antalet fortsätter att öka (tydligen deras Tivo tjänster kan inte slås på igen utan en tjänst tech).

EFTERSNACK

  • Paketförsäljning hem tjänster kan spara pengar, men gör för en otäck enstaka fel
  • Var noga med att använda en bank baserad automatisk betala räkningar som kan variera
  • Comcast avgiftsstruktur låter dem få en årlig avkastning på 967% om du är så mycket som $ 1 försenad och missa den följande månaden

Är tidvattnet vänder?

3 jun 2010 av Chris Inga kommentarer »

Jag har i åratal sagt att anti-virus inte längre är effektiv och att en god säkerhet hållning behöver inkludera ansökan vit notering. Här är en cool citat från George Kurtz, Chief Technology Officer för McAfee:

"Du kan inte bara förlita sig på antivirusprogram - och vi är ett antivirus företag. Och brandväggar monoterapi inte ger tillräckligt skydd, sade han.

Antivirus, brandväggar och intrångsskydd är en början. Men "vita lista" erbjuder ett starkare försvar. Det är i huvudsak låsa datorer ner så att endast betrodda program som får köras. Ingenting kan ändras eller läggas till eller uppdateras, utom av en systemadministratör.

McAfee tror "det är där framtiden är på väg," Kurtz sagt.

Länk till hela artikeln

Fashionabelt sent till festen, men jag tar det. ;-)

Är virtualiserad systemen mer eller mindre säkra?

18 maj, 2010 av Chris Inga kommentarer »

Jag har haft ovanstående fråga som ställs tillräckligt många gånger att jag kände att det förtjänar ett blogginlägg. Även om ett par år tillbaka svaret kan ha varit "mindre säker", är i dag svaret "både". Jag vet, låter som Chris vara fritt från förpliktelser, men det svaret verkligen så exakt som möjligt beskriva den aktuella situationen av tekniken.

Virtualisering förändrar allt

Jag har hört en del folk påpeka att virtualisering handlar om att påverka branschen på samma sätt som Internet gjorde under 90-talet. För att vara ärlig, jag tror det finns fördelar i detta yttrande. I början av 90 mest folk sprang IPX, AppleTalk, NetBUI och en uppsjö av andra protokoll om slutna nätverk. I slutet av 90-talet var de flesta folk som kör IP uteslutande med anslutning till hela världen. Det sätt vi gjorde affärer, samt hur vi tillämpat säkerhet, helt förändrats över att 10 år. Både nätverksadministration och färdigheter säkerhet som var banbrytande 1990 var alla utom värdelösa 1999.

Virtualisering börjar ramp upp till ha samma effekt på branschen. Virtualisering distribution kräver en fullständig omvärdering av hur man ansöker säkerhet. Tillbaka på 1990-talet, admins som helt enkelt ansluten till Internet, utan hänsyn till hur detta skulle påverka deras nätverk, men jag brände big time. Vi är kö för att se ett liknande resultat som folk antar virtualisering.

Vad gör Virtualisering osäkrare

Akilleshälen i virtualisering är i själva programvaran. Vi hoppas att vi kan lita på programvaran för att hålla gäst-system från varandra, liksom mottagande och / eller hypervisor. Det finns två stora problem med denna förväntan:

  1. Ingen mjukvara är buggfri
  2. Programvara kan felkonfigurerad

För några år tillbaka Core Forskning visar att de kunde bryta sig ut ur en gäst och få full kontroll i den mottagande OS . Även om en hypervisor är tänkt att begränsa den typen av exponering, har vi sett säkert fall där även den hypervisorn har hamnat . Vi även har sett fall var mjukvaran blir användbara bara när de körs i en virtualiserad miljö . Dessa länkar visar ett litet tvärsnitt av virtualisering problem som har upptäckts under de senaste åren. Google kan ge dig en mer komplett lista om du är intresserad.

Så en försiktig säkerhet professionell kommer att vara försiktig med att blint lita på programvara för att vara säker. Problemet är säljare inte alltid samma tillvägagångssätt. Ta VMware med sina ESX (snart ESXi) produkt som ett exempel. Många av oss var helt mållös när en VMware representant meddelade vid CanSecWest att det var teoretiskt omöjligt att attackera ESX hypervisor . När vi helt enkelt anta att något är okrossbar, någon mer kreativa kommer att fundera ut ett sätt att stansa igenom .

En av mina största farhågor med ESX / ESXi är att VMware har utformat att det är modulärt (via VMSafe ). På den positiva sidan innebär det att externa leverantörer kan skapa produkter för att förbättra hypervisor funktionalitet och säkerhet. Medaljens baksida detta dramatiskt ökar risken för dålig kod införs som kan äventyra säkerheten.

Vi har sett ett bra exempel på detta i det förflutna. Marcus Ranum skapade Gauntlet brandvägg, som då var en av de säkraste och rumpa säkerhet kick-enheter tillgängliga. När tre brev myndigheter ville den bästa säkerheten, vände de sig till Gauntlet. Marcus säljs Gauntlet till Network Associates (senare blev McAfee) som genast började tillsätta i dragen. Det dröjde inte länge innan en jämn rad sårbarheter var upptäckt, var till följd av dessa nya "funktioner". Därifrån förlorade produkten dess säkerhet cred och gled av radar.

Nu är det säkert möjligt att lägga till funktioner och hålla saker säkert. The FreeBSD föräldrar är ett utmärkt exempel på hur man gör detta på rätt sätt. För att garantera säkerhet de upprätthåller en mycket strikt revision . Är det perfekt? Absolut inte, men revisionen har satt ribban för säker implementering. Med lite tur VMware kommer att göra liknande, men jag har inte hört något surr om att detta är fallet.

Komma huvudet rakt

OK, så vi kan inte blint litar virtualiseringsprogramvara hålla angriparna på avstånd. Vi kan dock fortfarande vidta försiktighetsåtgärder för att minimera konsekvenserna om det värsta inträffar. En av de största du kan göra är att noga överväga vilka servrar blir värd och vilka andra gäst-system tillåts köra på samma låda. Säkerhetszonen begrepp som används av nätverket arkitekter är lika tillämpligt här.

En säkerhetszon är helt enkelt en samling av system som har samma relativa risknivå. Till exempel webb, och SMTP-servrar är oftast alla ligger på en DMZ, eftersom de alla har liknande risker från direkta angrepp. På den inre delen av nätet är stationära oftast placerats i en annan säkerhetszon än servrarna. Detta beror på att servrar har liten eller ingen tillgång till Internet medan skrivborden är oftast rätt att kommunicera direkt. Detta innebär att datorer löper större risk för angrepp än servrarna.

Vi kan tillämpa samma logik när de genomför virtualisering. Ett DMZ-server och en intern server ska inte vara gäster på samma hårdvara (både CPU och disk array). Om du gör det kan tillåta en angripare att skapa en alternativ rutt i vårt nätverk. Hellre än att behöva passera någon brandvägg, nids, nationella vägledande program, etc. enheter, vilka har använts på kabeln, kan en angripare kan få tillgång till interna resurser via virtualization mjukvaran. Är det en lätt attack? Inte från vad vi sett hittills. Funktionella bedrifter har upptäckts dock, så varför införa onödiga risker om vi inte måste.

Förresten, borde samma säkerhetszon regler att tillämpas i din virtualiserade nätverk redskap. Till exempel är det en dålig idé att använda samma fysiska byta till VLAN DMZ och det interna nätverket. Jag har sett ett par kunder får fixat det sättet.

Vad gör Virtualisering säkrare

Lyckligtvis ur ett säkerhetsperspektiv är virtualisering inte bara dåliga nyheter. I själva verket finns det några mycket cool säkerhetsrutiner du kan använda i en virtualiserad miljö som du bara inte kan vara utan det. Detta var ett av skälen till att vi började använda virtualisering inom Honeynet så tidigt som 2000.

En av de största säkerhetsproblemen vi står inför i dag är kärnan nivå rootkits . Vad gör denna stam av malware så lömskt är det i praktiken blir själva operativsystemet till malware. Detta gör upptäckt oerhört svårt, eftersom alla säkerhetskontroller måste passera genom kärnan. Om själva kärnan äventyras, kan vi inte lita på kärnan att korrekt rapportera säkerhetsinformation. Vi slutar att behöva stänga av systemet, montera enheten på en känd för att vara rena OS, och utför våra kriminaltekniska checkar därifrån. Oh naturligtvis problemet med denna process är att den inte skala bra. Om vi har tiotals eller hundratals servrar, det finns helt enkelt inte finns tillräckligt med tid på en dag för att kontrollera dem alla ordentligt.

Som tidigare nämnts är VMware medger nu tredje parts företag tillgång till hypervisorn API via VMSafe. Detta ger tillgång till privilegierad stat information, såsom minne och nätverkstrafik, på varje gäst operativsystem. Genom att plugga in i hypervisorn, vissa oerhört cool säkerhetsalternativ bli möjlig.

Till exempel låt oss säga en gäst OS blir attackerad av en kärna nivå rootkit. Genom att analysera gäst minnet kan rootkit upptäcks utanför den virtuella operativsystemet. När du utför de kontroller via hypervisorn, finns det mycket mindre av en slump att ett rootkit kan stealth sin verksamhet och gå oupptäckta. Som tidigare nämnts finns det inget jämförbart alternativ med en icke-virtualiserade system.

API kontakten skapar också nya möjligheter för att hantera krypterad trafik. När början till slut kryptering är anställd (som en VPN), nätverksbaserade kontroller av applikationslagret är lätta att kringgå. Din enda verkliga alternativet var att köra agent program på slutpunkt, så säkerhet skulle kunna genomföras efter dekrypteringsprocessen. Naturligtvis problemet här är att om agenten blir attackerad, alla spel är släckta. Återigen, genom att ansluta till hypervisor vi befinner oss i en bättre position att mer säkert granska dessa uppgifter.

Vi är bara i början för att se nya produkter som utnyttjar VMSafe API kontakten . Eftersom alla produkter är relativt nya, är högst osäkra på hur effektiva de kan vara. Erbjudanden köra gambit från att ersätta värdbaserad brandväggar och IDS skydd till full genomdrivandet. Det kommer att bli intressant att se hur denna produkt nisch skakar ut under det kommande året.

Sammanfattning

Så som jag nämnde i början av det här inlägget, har virtualisering förmågan att göra din miljö vare sig mer eller mindre säkra, beroende på hur man i anspråk. Om du helt enkelt börja visa allt på en enda ruta, du kommer förmodligen att få fixat. Om du förlänga den bästa praxis som har utvecklats under åren i virtualisering rike, och att utnyttja några av de nya säkerhetsfunktionerna som släpps, kan du faktiskt skapa en bättre total säkerhet kroppshållning.

Kombinera logwatch och OSSEC - Del 4

18 feb 2010 av Chris 3 kommentarer »

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

Distribution Alternativ

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

  1. Har logwatch tolka OSSEC stockar direkt.
  2. Har OSSEC skicka sina meddelanden till en Syslog typ server, kör sedan logwatch om syslog-server.

Förmånen 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. Det problem vi kommer att rinna ut innebär dock OSSEC registreringen filen. Loggposter inte får normaliseras. Detta innebär att formatet kan ändras från tillträde till inresa, och kan även spridas över flera rader. Det kommer att bli en riktig mardröm att skapa en logwatch skript som filter och sammanfattning av varningsinformation.

Om vi går med alternativ # 2 kommer vi att kräva en annan låda som skall fungera som vår centraliserad loggning server. För att få OSSEC servern accepterar loggposter från icke-agent, är den att lyssna på UDP/514. Det är samma port som används av en centraliserad loggning server, och du kan inte ha två ansökningar har samma hamn (utom med Windows, men uttaget är extremt rörigt). På den positiva sidan, kommer registreringen poster blir normaliserat när de överförs till syslog-servern så att skapa en logwatch sammanfattning skript kommer att bli mycket lättare. Vidare logwatch redan känner till standarden Syslog-filer, så vi kommer att ha mindre anpassning att göra.

Slutligen nämnde jag i ett tidigare inlägg som OSSEC inte är utformad för att ett SIM. Detta eftersom det inte anteckna allt, bara de händelser som leder till en anmälan. Så vi förmodligen kommer att vilja 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 styr dig mot alternativ # 2, du är helt riktig. Med det sagt, jag ska faktiskt till att omfatta alternativ 1 eftersom det är ett mycket mer komplicerat setup.

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: Slutdatum rootcheck scan.

2010/02/18 14:27:06 ossec-syscheckd: INFO: Från syscheck scan.

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

Notera hur datum-/tidstämpel formateras. Detta är annorlunda än de flesta tillämpningar, så det första vi behöver göra är att berätta logwatch hur man skall hantera detta format. Vi behöver skapa ett manus som vi kan kalla när det behövs som förstår det format som anges ovan.

Börja med att inflyttningen till delad skript katalogen:

cd / usr / share / logwatch / scripts / delade

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

VI applylongdate

Här är vad du behöver insidan av den filen. Känn dig fri att kopiera och klistra in från denna sida:

användning 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";

)

medan (definierade ($ ThisLine = <STDIN>)) (

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

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

print $ ThisLine;

)

)

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

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

chmod 755 applylongdate

Konfigurera loggfilerna

Nästa vi måste berätta logwatch där OSSEC loggfiler finns. Varje gång du lägger loggfiler eller skapa nya tjänster för att övervaka i logwatch bör du placera dina ändringar under / 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 de viktigaste OSSEC loggfilen:

cd / etc / logwatch / conf / loggfiler

VI ossec.conf

Innehållet i filen ska vara så följas:

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

* ApplyLongDate =

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

vi ossec-alert.conf

Innehållet i detta ärende bör vara så följas:

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. Standardbehörigheterna torde vara godtagbart för vår inställning.

Konfigurera OSSEC Tjänster

Sedan behöver vi också fastställa OSSEC tjänster och identifiera vad vi vill använda som en rubrik när rapporterna genereras. Här skapar du den första filen:

cd / etc / logwatch / conf / tjänster

VI ossec.conf

Innehållet i detta ärende är ganska enkelt:

Titel = "OSSEC Meddelanden"

Logfile = ossec

När du är klar kan du spara och avsluta. Vi måste skapa en mer filen i den katalogen:

vi ossec-alert.conf

Innehållet i denna fil bör vara:

Titel = "OSSEC alarm"

Logfile = ossec-alert

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

Analysera Inlägg

Sedan behöver vi berätta logwatch hur du formaterar loggposter i betänkandet. Vi behöver skapa en anpassning skript för varje uppsättning av tjänster. Vi kommer att börja med att använda en logwatch medföljande testunderlag, bara se till att allt fungerar.

Börja med att inflyttningen till lämplig katalog:

cd / etc / logwatch / scripts / tjänster

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

VI ossec

Innehållet i skriften ska vara så följas:

#! / Bin / bash

# Det är så trevligt script som visar dig de linjer du

# Vara bearbetning och rapportering om. Det kommer först att visa

# Standard miljövariabler och det tar STDIN och

# Dumpa det rätt ut igen till standard ut.

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

# Mer i din config-fil (se ovan).

echo "Datumintervall: $ LOGWATCH_DATE_RANGE"

echo "Detaljnivå: $ LOGWATCH_DETAIL_LEVEL"

echo "Temp Dir: $ LOGWATCH_TEMP_DIR"

echo "Debug Nivå: $ LOGWATCH_DEBUG"

# Ta Nu STDIN och dumpa det på standard ut

katt

Now create your second script:

vi ossec-alert

and include the exact same contents:

#!/bin/bash

# This is as nice script that will show you the lines you will

# be processing and reporting on.  It will first display the

# standard environment variables and then it takes STDIN and

# dump it right back out to STDOUT.

# These are the standard environment variables.  You can define

# more in your service config file (see above).

echo “Date Range: $LOGWATCH_DATE_RANGE”

echo “Detail Level: $LOGWATCH_DETAIL_LEVEL”

echo “Temp Dir: $LOGWATCH_TEMP_DIR”

echo “Debug Level: $LOGWATCH_DEBUG”

# Now take STDIN and dump it to STDOUT

cat

Finally, we need to set the appropriate permissions:

chmod 755 ossec*

Testing The Setup

The easiest way to test our new setup is to run the command:

logwatch | less

If you only want to see your changes, you can run a report on each service, one at a time:

logwatch –service ossec | less

logwatch –service ossec-alert | less

Further Customization

Once you get all of the above working, you can focus on getting Logwatch to filter and summarize the log entries. Logwatch is pretty flexible, and you can customize the output any way you want. One of the nice things about the above test script above is that it shows you exactly what you have to work with. So with a little regular expression magic you can summarize the entries as you deem appropriate. For some ideas, check out the files located under:

/usr/share/logwatch/scripts/services

These are the default summary scripts included with Logwatch. Specifically, have a look at the files “pam” and “sshd”. They are great examples of both a simple and a complex set of summary filters.

As you develop your scripts, pay close attention to the $LOGWATCH_DETAIL_LEVEL” variable. This will permit you to customize the output level of the report depending on how much verbosity the user is looking for. For example, while you are still in the above services directory, run the following command:

less sshd

When the first page of the file's contents is displayed, type in:

/Detail<Enter Key>

The backslash lets us search the file for a particular text string. In this case we are searching for the word “Detail”. Once you press Enter the search will skip through the file till it finds the first instance of the text string. It will also highlight the search string. In the first match you will notice that the author assigned the variable “$Detail” to be the same as the variable $LOGWATCH_DETAIL_LEVEL”. This is to save them some typing.

Now press the backslash key again followed by the Enter key. This will jump through the file to the next instance of “Detail”. You should see:

if ($Detail >= 20) {

$Users{$User}{$Host}{$Method}++;

} else {

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

$Users{$User}{$Host}{“(all)”}++;

Note the author provides more information if the detail level is set to 20 (half way between low and medium) or higher. Keep jumping through the file and you will see other examples where the author leveraged this technique.

Now page down to the end of the file and you should see this statement:

if (keys %OtherList) {

print “\n**Unmatched Entries**\n”;

print “$_ : $OtherList{$_} time(s)\n” foreach keys %OtherList;

)

This section is extremely important, as it is a final catchall. Think of a firewall policy for a moment. Most of us create a final rule that says, “If I did not specifically permit a traffic pattern through, deny it”. In other words, if something unexpected happens, this is how I want you to handle it.

The above statement serves the same purpose when parsing the logfile. All of the previous “if” statements attempt to match a specific text string in the log entry in order to format it properly. This entry says “If you have not matched and printed a specific log entry yet, print it out in a section titled “**Unmatched Entries**”. This step is extremely important because without it we will never see unexpected entries. It is the unexpected entries that are probably the most important and most interesting.

Exec Sammanfattning

Both OSSEC and Logwatch are excellent complimentary tools. OSSEC excels at warning you when a known attack pattern takes place. Logwatch is a terrific tool for summarizing a time chunk of logs so humans can actually make sense of what is going on. By combining the two tools you can create a far more robust defense in-depth posture. The whole becomes greater than the sum of the parts.

Kombinera logwatch och OSSEC - Del 3

February 17th, 2010 by Chris No comments »

In my last two posts I discussed Logwatch and OSSEC, as well as how they can be leverage to augment your security posture. In this installment I'll discuss how to install both of these tools.

Installing Logwatch

Logwatch is pretty easy to install. In fact, it is installed by default on many Linux distributions so you may already have a copy on your system. To check, logon as root and try running Logwatch with the “-v” switch. If you see:

[root@fubar logwatch]# logwatch -v

Logwatch 7.3.6 (released 05/19/07)

Logwatch is installed and you have a copy of the latest version. If you do not have the latest version, you can grab it from the Logwatch download page .

There are three flavors of Logwatch which can be downloaded; Binaries in RPM format, source in RPM format, or source in a Tar ball. If your system supports RPM package management, the binary RPM is your best choice. It is simple to install and RPM will automatically update the software when new versions are available.

Installing Logwatch From RPM

To install the binary version of the RPM, simply logon as root and navigate to the directory where you downloaded the RPM file. Now execute the command:

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

Don't forget you can use the tab key to auto-complete the file name rather than having to type in the whole thing.

Installing Logwatch From Source

Installing from source is a bit more time consuming. Remember that in order to install source code you must already have a compiler (like gcc) installed on your system. Logon as root and navigate to the directory where you downloaded the Tar ball. To extract the archive, execute the command:

tar xvzf logwatch-7.3.6.tar.gz

You will see a directory structure below your current location get created and lots of files being copied in. We now need to move into the top most directory that was created:

cd logwatch-7.3.6

In order for Logwatch to run, there are a bunch of directories that need to be created on your system. These are documented in the README in the current directory. Luckily, Logwatch includes an install script that can do all the work for you. Unfortunately, the script has the wrong permissions set so it will not run by default. This is pretty easy to fix however with the chmod command:

chmod 500 install_logwatch.sh

Now we can run the script to setup our system:

./install_logwatch.sh

Don't forget the period at the beginning of the line.

Testing Logwatch

To test your Logwatch setup, execute the command:

logwatch | less

You will see your terminal screen go blank, but that is normal. You will eventually see a Logwatch report get printed to the screen that you can navigate through using the “Page Up” and “Page Down” keys. How log it takes for the report to show up on the screen will depend on how much log information needs to get parsed. It could take a few seconds or a couple of minutes. Either way, it will give you a chance to familiarize yourself with the report format.

Installing OSSEC

As I mentioned in my last post, you have two installation options with OSSEC, local or client/server. In this post I'm going to focus on the client/server setup, as it is a bit more complex. If you are performing a local install, simply select the “local” option during the install process and skip the section on setting up a secure channel between the agent and the server.

Start With The Server

OSSEC uses Blowfish encryption to secure communication between the client and the server. Blowfish is symmetrical key based, so both sides must know what key value to use in order to communicate. The server is responsible for generating the symmetrical key, so we have to install the server software first. During the client install we will be prompted for a key value so obviously we will need to have that handy ahead of time.

Here's a time saving tip. The key value is long and nearly impossible to remember. The easiest way to move the key value from the server system to the agent system is to use SSH. Create a secure connection to the OSSEC server, and extract the appropriate key (directions provided below). In a second terminal window, create an SSH session to the system where you will be installing the agent. When the client install prompts you for the key value, you can simply copy/paste between the two terminals.

Installing The OSSEC Server

The server software is available as a Tar ball, so you can grab a copy of the latest version from the OSSEC download page . You will then need to extract the contents of the Tar ball:

tar xvzf ossec-hids-2.3.tar.gz

Next, move into the directory structure you just created:

cd ossec-hids-2.3

OSSEC provides an install script to walk you through the process of installing the server. To start the script, type:

./install.sh

Don't forget the period at the beginning of the command. You will now be prompted through a number of install options:

  • Language – The default is English. Change as needed.
  • Confirmation of installation – Press Enter once you have read the screen.
  • Install type – Type in “server” without the quotes and press Enter.
  • Install location – Accept the default.
  • E-mail notification – Default is yes, select if you want e-mail alerts. If you select yes, you will be prompted for a valid e-mail address and mail server.
  • Integrity check – Default is yes. Select if you want the local system periodically checked for intrusions.
  • Root kit detection – Default is yes. Good option since we need to maintain a high level of integrity on this system.
  • Active response – Default is yes. Select this option if you wish to be able to respond to events.
  • Firewall drop – Permits the OSSEC server to defend it self if a direct attack is detected.
  • White list – This will permit you to add IP addresses from which possible attacks will be ignored. Be careful with this option. If you will not have console access to the OSSEC server, it might be wise to identify one IP address that can always get in. Just ensure the source IP is a trustworthy system.
  • Enable Syslog – Default is yes. Select this option if you wish to collect logs from system that cannot run an OSSEC agent (like firewalls, switches, routers, access points, etc.).
  • Log files to be monitored – This screen identifies all of the local log files OSSEC will monitor. It is purely information, so all you can do is press Enter to move past it. If you notice one or more log files missing from the list, you can add them later to the ossec.conf file.

At this point OSSEC will access the local complier and install all needed files onto the system. Once complete, you can start the OSSEC server by executing the command:

/var/ossec/bin/ossec-control start

Defining OSSEC Agents

We are not done with the OSSEC server just yet. Next, we need to pre-define any systems that will be running the OSSEC agent (client) software. This is performed using the manage_agents command. First however, we need to do a bit of homework. Make a list of all of the systems that will be running the OSSEC agent software. For each system, you will need a descriptive name as well as that system's IP address.

Now, execute the following from the command line:

/var/ossec/bin/manage_agents

This will produce the Agent Manager main menu. Press “A” followed by the Enter key to define your first system. Enter a descriptive name for the first system, followed by the system's IP address. Don't worry about the agent ID number. Simply accept the default and OSSEC will auto-assign the next available ID number. Once you confirm the information you entered, you will be returned to the Agent Manager main menu. Repeat the above process for each system that will be running an OSSEC agent.

Generating Keys

Once you have added in all of your systems, it is time to generate encryption keys. This step is also performed with the manage_agents utility. If you closed the tool after the last step, relaunch it now.

Press the “E” key followed by Enter to select the “Extract key for an agent” menu option. You will then be prompted for the ID number of the key you wish to extract. The descriptive names and IP addresses are listed with each ID number, so it should be trivial to identify which one you want. Start with the system you plan to install the agent software onto first.

OSSEC Agent Install On Linux

When installing the agent software on a Linux or UNIX client, you use the exact same Tar ball we used to install the server software. Run the same install script, but this time when you are prompted for the type of install you wish to perform, type in “agent” followed by the Enter key.

The client install has many of the same prompts as the server install. Use the info above to guide you through the process. The prompt that will vary however is that you will be asked to provide the IP address of the OSSEC server. Once complete, OSSEC will access the local complier and install all required files onto the system.

Next we need to import the Blowfish key from the OSSEC server. While still on the agent system, run the command:

/var/ossec/bin/manage_agents

When the Agent Manager menu appears, select “I” to import the Blowfish key.

When the next prompt appears, you need to manually enter the appropriate Blowfish key. Again, if you are running SSH to both systems at the same time, you can simply copy/paste between the two terminals. Make sure the key looks correct, press the Enter key, and then select “y” to confirm that the key looks correct. You will be returned to the Agent Manager menu. Select “q” in order to return to the command line.

Now we simply need to start the OSSEC agent. You can do so by executing the following command:

/var/ossec/bin/ossec-control start

You should see all of the OSSEC agent components start up, followed by a “Completed” message.

OSSEC Agent Install On Windows

OSSEC has a self-extracting executable that will permit you to install the agent software on a Windows system. Simply double click the executable to start the install process. You will be prompted to agree to the license as well as which components you wish to install. Simply follow the prompts till the OSSEC Agent Manager window appears.

The OSSEC Agent Manager window will prompt you for the IP address of the OSSEC server. It will also prompt you for the Blowfish key value to use, so extract the appropriate key on the server and enter the value in this field. Make sure you delete the prompt within this field before you paste in the Blowfish key. Otherwise communication with the server may fail.

Next, select “Manage” from the OSSEC Agent Manager menu, followed by “Start OSSEC”. You should now see the “Status:” indicator change to “Running…”.

Testing OSSEC

Once you have the server and agent software installed, started and the appropriate keys configured, it is now time to check our setup. Execute the following command on the OSSEC server:

cd /var/ossec/logs

And check out the ossec.log file:

less ossec.log

Check the log file for any errors. A common error is that OSSEC reports it cannot send e-mail. Make sure the mail server is running and that it is accepting connections. Once you are happy with the server setup, it is now time to check out the agents. Move down to the “alerts” directory:

cd alerts

And check out the alerts.log file:

less alerts.log

Specifically, you are looking for entries similar to the following:

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

Rule: 501 (level 3) -> 'New ossec agent connected.'

Src IP: (none)

User: (none)

ossec: Agent started: 'test_system->192.168.1.10′.

You should see an entry for every system on which you installed the agent software.

Mer att komma

Usch! That's more than enough for one post! In my next post I'll get into leveraging Logwatch to parse all of the alert information being generated by OSSEC.

Kombinera logwatch och OSSEC - Del 2

February 16th, 2010 by Chris No comments »

I mitt senaste inlägg beskrev jag hur logwatch skulle kunna användas för att förenkla översynen loggen. I detta inlägg kommer vi att titta på OSSEC och vad det innebär för bordet.

Vad är OSSEC?

OSSEC , kort för "Open Source Security", är en värdbaserad Intrusion Detection System (HIDS). Med andra ord är det utformat för att upptäcka angrepp eller kränkningar politik om och när de uppstår. While it does not have the ability to protect against unknown or 0-Day attacks (that would be host based intrusion prevention), it does include a wide range of tools which can help you identify an intrusion when it occurs, as well as the extent of the damage that has been caused.

Plattformar som stöds

För att kunna utnyttja alla funktioner OSSEC har att erbjuda, måste du köra en agent på systemet som skyddas. OSSEC agenter kan köras på Windows, Mac OS X, Linux och ett brett utbud av UNIX-system. If you are just interested in the log analysis portion however, an even wider range of systems can be supported. Detta inkluderar hårdvara från både Cisco och Juniper. A number of specific products are also supported like Checkpoint firewalls, Symantec Anti-Virus, Snort, Squid, and Arpwatch, just to name a few.

När du installerar OSSEC du har två inställningsalternativ, lokala eller klient / server. En lokal installation används när du behöver köra allt på ett enda system. I klient / server installation kan du köra en distribuerad miljö skydda flera system samtidigt. Även om de flesta installationer är klient / server-baserat, om du vill ge OSSEC en spin du lätt kan köra allt på ett enda test som använder en lokal installation.

Log Analysis

OSSEC ingår ett Log-baserad Intrusion Detection System (lock). Detta har förmågan att granska loggfiler i nära realtid, medan granska dem för kända angrepp mönster. När en stock genereras på ett skyddat system, tar agenten hand om säkert översändande loggen (Blowfish kryptering med en i förväg delad hemlighet) tillbaka till servern. Servern tar sedan hand om att utföra analysen.

De flesta log analysverktyg bearbetar sina regler på ett linjärt format. Med det menar jag om vi har 500 regler, regel ett är markerad, så i regel två, sedan regel tre och så vidare tills en matchning hittas eller att vi kommer till slutet för regeln. OSSEC fungerar lite annorlunda då det genomför en hieratical struktur med reglerna. Loggposterna först klassificeras och kontrolleras enbart mot beroende på reglerna är lämpliga. Resultatet är att istället för att behöva bearbeta alla 500 regler, kommer de flesta evenemang får kontrolleras mot 10 regler eller mindre. Detta dramatiskt reducerar overhead krävs för att behandla den regel som.

Integritetskontroll

OSSEC innehåller 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 inkludera specifika tangenter i Windows-registret som skall övervakas också. Arkiv förändringar kan spåras med både MD-5 och SHA-1 algoritmer hash. Systemet är mycket anpassningsbart. Du kan inkludera eller utesluta enskilda filer eller hela strukturer katalog. Du kan även ställa in en flagga för att upptäcka nya filen skapas.

Agenten programvara är att använda minimalt med CPU under integritet kontroll. Även om detta innebär att kontrollen kommer att dröja längre, den bidrar till att minimera utförande slå till systemet. Hash information skickas tillbaka till servern. Servern tar sedan hand om att utföra de hash jämförelse för att se om någon av systemets viktiga filer har ändrats. Servern lagrar också en kopia av hederligheten check politik, så att om politiska förändringar görs på ombudet, kan de påvisas och rapporteras också.

Att upptäcka avvikelser

OSSEC goes far beyond log checking to verify system integrity. Riktlinjer för användning kan hanteras centralt från servern, och sedan sköt 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 acceptabelt konfigurationsalternativ vilja kontrollera att NT hashar används för lösenord lagras men inte Lanman hashar.

OSSEC innehåller ett antal andra godsaker för att bidra till att verifiera systemets integritet. Till exempel OSSEC har möjligheten att köra kommandon från agenten och övervaka produktionen som får genereras. Till exempel kan du få Linux-agenten utföra "df"-kommandot med jämna mellanrum och leder till en anmälan om diskanvändning överstiger 90%. En Windows exempel kan vara att ha OSSEC generera en varning när filen är skriven för Alternate Data Streams område med NTFS.

Aktiv respons

Slutligen innehåller OSSEC förmågan att reagera när misstänkt aktivitet upptäcks. Svaren kan genereras från servern eller dennes ombud, som någonsin du anger. Svaren kan vara så tillmötesgående som genererar ett e-postmeddelande, att vara så aktiv som blockerar en IP-adressen för en begränsad tid. Det finns ett antal av de ingående aktiv respons skript du kan dra på, eller så kan du enkelt skriva en egen.

Säker Arkitektur

De OSSEC Författarna har gjort stora ansträngningar för att säkra alla delar i produkten. Uppgifter som att integritetskontroll utförs på servern, snarare än agenten, så trovärdigheten i hashar inte kan äventyras under en attack. Processer körs med den lägsta nivån av behörigheter möjligt och olika konton används för att köra varje OSSEC komponent. Detta innebär att ett röjande av en enda ansökan inom OSSEC inte omedelbart kommer att leda till en kompromiss av hela paketet. Ytterligare komponenter, de flesta körs i en chrootade fängelse så deras tillgång till systemet är ännu mer begränsad.

Slutord

Medan OSSEC är ett kraftfullt verktyg är det viktigt att komma ihåg att det är en HIDS och inte en stock management-lösning. OSSEC kan granska loggposter söker efter misstänkta mönster, men det kommer bara spara varningsinformation. So while OSSEC will not replace your Security Information Management (SIM) solution, it can most certainly augment it. Du kan enkelt setup OSSEC att vidarebefordra alla registreringar som skapas för att en central loggning server .

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

Mer att komma

I mitt nästa delbetalning vi titta på installation OSSEC och logwatch. Efter det kommer vi att flytta in i att integrera de två tillsammans.

Kombinera logwatch och OSSEC

February 15th, 2010 by Chris No comments »

I recently had a student ask me a question regarding the integration of Logwatch with OSSEC. I felt like this was a complex and yet cool enough idea that it warranted a series of posts to cover it in full. So over the next few days I'll talk about each of these tools, how to integrate them together, as well as what additional security visibility can be gained once the process is complete.

What Is Logwatch?

Logwatch is an excellent open source tool for generating daily human readable log reports. Log entries tend to fall into one of three categories:

  • Stuff you know is evil
  • Stuff you know is normal and can be safely ignored
  • Everything else

It is that “everything else” category where Logwatch really shines. For the stuff we know is evil, we will setup some form of alerting system. For example we may write an alert signature that warns the security analyst when an account is being brute forced. But what about the attacks we don't know about or are not sure what they look like? This would be a clear example of that “everything else” category. The traffic is not normal, but we have not seen it before to have a signature waiting to generate an alert. Since we will be unable to catch the attack in real time, we will need to catch it during a daily log review.

Of course the problem with doing daily log reviews is that it is tedious and time consuming. I mean let's be honest, who really wants to spend their day reviewing one million plus log entries? Even if you did, are you sure you would actually catch the out of the ordinary traffic?

How It Works

What Logwatch does very well is permit you to reorganize your data into a format that is easier for humans to follow. Its real strength is that it permits you to move the stuff you understand out of the way (normal or evil), so that the unexpected log entries stand out like a sore thumb. In other words, Logwatch lets you summarize your log entries so the unusual stuff is easier to spot.

What I really love about Logwatch is that you don't lose anything. Many log review tools will only show you the stuff that has been pre-defined as being evil. The problem they all share is that when something evil but unexpected happens, it flies right under the wire. Because Logwatch lets you see everything, you no longer miss the unexpected.

Logwatch In Action

Lets discuss how Logwatch works using the SSH server service as an example. The scripts to deal with SSH have already been defined within Logwatch, so you do not need to do any tweaking to receive the features we are going to discuss.

When reviewing a log file, the first thing Logwatch does is reorganize log entries based on their message types. For example all Successful SSH logons are grouped together, as well as too many logon failures, refused connections, locked accounts, accounts without a proper shell, protocol mis-matches, etc. etc. etc. Once all the SSH messages are grouped by their type, the data is then summarized to reduce the amount of information being reported.

For example, the default is to summarize failed logon attempts by account and source IP. So a typical failed logon report section might look like this:

Failed logins from these:

bsmith/password from 1.2.3.4: 637 time(s)

jsmith/password from 1.2.3.5: 2 time(s)

So rather than having to review 639 log entries reporting a bad logon attempt, we have all the pertinent information summarized into three lines (if you include the title). Continue this process for all of the other SSH messages, and we have dramatically reduced the amount of time required to review our logs.

But what if something happens that Logwatch is not pre-programmed to recognize? When an unexpected log entry is found, Logwatch adds a section to the end of the service report called “Unmatched Entries”. So if we see this title in the SSH server section, we know some event has occurred that is either abnormal or unexpected for the SSH service. This could very well be some form of attack that we are not aware is making the rounds.

By focusing in on the unmatched entries section, we can quickly identify unexpected activity. As I stated earlier, this is really the main goal of doing daily log reviews. To find the stuff we don't expect which will sneak past our alerting system. Logwatch makes this process as quick and as painless as possible.

Feature Summary

In the above example I talked about doing daily log reviews, but to be honest Logwatch is highly customizable. You can specify any range you wish to use down to an interval of one second. For example let's say I'm investigating an intrusion rather than performing a daily log review. I could specify a range such as “2010/02/14 17:05:00 for that hour” to focus right in on the information that interest me. I can also focus in on one specific log file or service.

The detail level of the report is also customizable. Typically when you deal with security you get in the habit of always wanting the highest detail level of reporting. To be honest, with Logwatch a high level of detail is probably more than you will ever need. Personally I typically stick with “med” for medium and that works out nicely. You can also specify the reporting level as “low” or “high” or use a numeric range of 0-10 for a higher level of granularity (low =0, med=5, high=10).

Logwatch can be run automatically or as a manual process. Typically you will want to set it up to run automatically each day and summarize one day's worth of log entries. If you ever need to expand or focus the report, you can always run Logwatch from the command line while specifying exactly what you want to see. You can then use the “–save” option to specify a report name and directory location for storage.

Mer att komma

The above should give you a good idea as to the features Logwatch can bring to the table. In the next post I'll discuss OSSEC in the same level of detail. After that, I'll get into how to install each tool as well as how to integrate them together.

Dag 2 Keynote

January 12th, 2010 by Chris No comments »

Thanks to all who came out to the Encryption/DLP summit. Here are the slides from my keynote on day 2.

encryption-dlp-keynote