Artikel

Tagg för artiklar

Elasticsearch och Kibana via C# utan Logstash

Publicerat: 
2015-09-25
På Simovits Consulting använder vi, för arbete med dokument, en server som saknar kopplingar till andra nätverk (air gapped system). Detta är en helt självklar säkerhetsåtgärd för ett IT-säkerhetsföretag. Att ha ett galvaniskt åtskilt nätverk är dock inte den enda säkerhetsåtgärden som krävs för att ha kontroll över viktiga resurser. Eftersom Simovits Consulting utför penetrationstester och säkerhetsgranskningar kan man aldrig vara tillräckligt noggrann vad gäller hantering av dokument. 
 
Vanligtvis så exporteras få filer ut från den åtskilda servermiljön men ifall en rapport färdigställts och behöver levereras till en kund i digitalt format så behöver filer kunna exporteras ut. Om det är känsliga rapporter så är det viktigt att de krypteras innan de exporteras ut från den fristående servern. Det finns därför behov av stark kontroll av detta förfarande. En kontrollmekanism är att logga vilka filer som exporteras ut från servern, vem som har exporterat filerna och i vilket format. Det finns ett antal produkter på marknaden för data leakage prevention och liknande fokus som kan hantera detta men vi vill själva ha en bra kontroll över vilka programvaror som installeras på servern och samtidigt undvika höga licenskostnader.
 
Kommersiella produkter i detta område tenderar att vara ytterst kostsamma samtidigt som de inte möter våra behov exakt. Därför har vi byggt en liten Windows-tjänst i C# som övervakar skrivningar till USB-diskar som ansluts till servern och loggar detta i en Elasticsearch-databas. Självklart kan vi inte beskriva exakt hur vårt system ser ut (i egenskap av IT-säkerhetsföretag) men det är trevligt att kunna dela med sig av erfarenheter till er som lyckats hitta vår webbsida och är intresserad av företaget eller IT-säkerhet i allmänhet. 
 
För att lagra information om vem som har skrivit vilka filer till vilket USB-minne så använder vi en Elasticsearch-databas och Kibana för att kunna få bra visuella översikter (Dashboards). Därmed får vi kontroll över vilka filer som flyttas ut från servern, när, av vem och på vilket sätt. 
 
 
Elasticsearch-databaser är fantastiskt bra på att lagra stora mängder data. Det är dock förstås väldigt enkelt att använda Elasticsearch för att lagra data oavsett mängd. En fördel med Elasticsearch, anser jag personligen, är att man kan använda Kibana som gränssnitt för att enkelt skapa dashboards samt att det är väldigt enkelt att installera och skala lösningen i efterhand.
 
Med Logstash får man ett enkelt verktyg för att kunna importera/samla in data till Elasticsearch. I vissa fall kan det dock ses som overkill att ha en separat logginsamlingstjänst och man kan därför vilja skicka in loggar direkt till Elasticsearch utan Logstash. I vårt system har vi valt att inte använda Logstash eftersom det enda tjänsten skulle göra är att ta emot en loggrad på ett särskilt format och skicka den vidare till Elasticsearch. Om vi bara har en loggkälla känns det inte meningsfullt att använda Logstash och därför bestämde vi oss för att låta C#-programmet skicka in sina loggar till Elasticsearch genom en enkel HTTPS-anslutning utan hjälp av Logstash. Eftersom det inte är speciellt många loggrader som skickas till Elasticsearch-databasen så behöver vi inte använda Elasticsearchs bulk-API (https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-bul...). Ifall systemet behöver skalas upp kan detta enkelt läggas till. 
 
Loggar till Elasticsearch skickas via JSON-objekt som serialiseras med hjälp av tredjeparts-klassen Newtonsoft.Json.Serialization (se http://www.newtonsoft.com/json/help/html/SerializingJSON.htm). I vårt fall finns två typer av loggar och vi har valt att låta en basklass innehålla kod för serialisering såväl som minimalistisk anslutning mot Elasticsearch. De olika typerna av loggar är klasser som ärver från basklassen. Programmet är väldigt enkelt och har ett fåtal kodrader. Nedan visas basklassen för loggposter samt exempel på en loggpost-klass som används för kommunikation med Elasticsearch-databasen (varning för utebliven felhantering).
/// Copyright Simovits Consulting 2015
/// License: no rocket science, thus use it as you wish.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Newtonsoft.Json.Serialization;
using System.Net;
using System.IO;

namespace fileaxlog
{
    /// Used for serializing logpost to json.
    class LogPost
    {
        // The getter-setter may be added later for making nice code. Now, we care about lines of code more.
        string strLogPath2 = null;              // Log path for stream
        protected string strType = "LogPost";   // Type for indexing
        static ulong id = 0;                    // For unique IDs in index
        const string STR_POST = "POST";         // HTTP-method


        /// In order to convert to a format that is understood by elasticsearch.
        class ElasticTimeConverter : Newtonsoft.Json.Converters.IsoDateTimeConverter
        {
            public ElasticTimeConverter()
            {
                base.DateTimeStyles = System.Globalization.DateTimeStyles.AssumeUniversal;
                base.DateTimeFormat = "yyyy-MM-ddTHH:mm:ss";
            }
        }

        /// Constructor
        ///The path where to log 
        public LogPost(string strLogPath2 )
        {
            this.strLogPath2 = strLogPath2;
            id++;
        }

        /// Serializing object to JSON
        /// Formatted JSON
        public override string ToString()
        {            
            return Newtonsoft.Json.JsonConvert.SerializeObject(this, new ElasticTimeConverter());
        }

        /// Write the log to a stream.
        ///The stream used for writing
        public void writeLog(StreamWriter swrite)
        {
            if (swrite == null)
            {
                swrite = new StreamWriter(strLogPath2, true);
            }

            swrite.WriteLine(this.ToString());
            swrite.Flush();
        }


        /// Sends logs to Elasticsearch-database.
        /// 
        /// TODO: Error handling
        ///IP or hostname
        ///The index where to store the log
        public void sendLog(string strHost, string strIndex)
        {
            string postData = this.ToString();
            string strURL = string.Format("{0}/{1}/{2}", strHost, strIndex, this.strType);
            WebRequest request = WebRequest.Create(strURL);

            request.Method = STR_POST;

            byte[] byteArray = Encoding.UTF8.GetBytes(postData);

            request.ContentType = "application/x-www-form-urlencoded";
            request.ContentLength = byteArray.Length;
            Stream dataStream = request.GetRequestStream();
            dataStream.Write(byteArray, 0, byteArray.Length);
            dataStream.Close();

            WebResponse response = request.GetResponse();
            
            dataStream = response.GetResponseStream();            
            StreamReader reader = new StreamReader(dataStream);            
            string responseFromServer = reader.ReadToEnd();
            
            reader.Close();
            dataStream.Close();
            response.Close();
        }
    }
    /// Standard event viewer log post
    class WatchLog : LogPost
    {
        public WatchLog(string str) : base(str)
        {
            strType = "FileLog";
        }

        public DateTime dtCreated;
        public string strObjectName;
        public string strUserName;
        public ulong eventID;
        public string strProcessName;
    }
}

Programmet exekverar som en Windows-service och övervakar filer/mappar samt ifall USB-stickor ansluts mot någon av USB-portarna på servern. Varje gång som något händer så skickas loggposten till Elasticsearch och kan senare hämtas upp genom Kibana eller andra gränssnitt som kan hantera REST och JSON. Genom detta, mycket enkla, program med endast några fåtal timmars utveckling så har vi nu en lösning som ger stora möjligheter till att övervaka fil-flyttar på vårt galvaniskt separerade servernätverk. 
 
Elasticsearch har, i sin minimalism, inte mycket säkerhetsfunktioner. Det finns exempelvis, som standard, ingen autentisering för HTTP-requests vilket gör att vilken användare som helst kan ta bort loggposter eller skriva nya loggposter. För att åtgärda detta krävs därför att man använder sig av en proxy eller gör en egen modul till Elasticsearch. Hur detta går till lämnar vi dock för tillfället … för att möjligen återvända till ämnet i en senare bloggpost.
 
 
 

 

Skribent(er): 
James Dickson
Taggar: 

Novus undersökning visar brister på säkerhetsmedvetandet

Publicerat: 
2014-02-19 14:19
Säkerhetsföretag varnar för privatpersoners användning av företagsinformation i sina mobiler
 
Novus har för Simovits Consultings räkning genomfört en undersökning om hur allmänheten ser på säkerhet, oro och vad som finns i deras mobiltelefoner. Undersökningen genomfördes under slutet av januari 2014.
 
Man kan se tydliga skillnader i ålder och kön avseende användandet av mobiltelefonen. Det visar sig att det är fler män (35 %) än kvinnor (26 %) som t ex. är positivt inställda till att betala med mobilen. Man ser också tydligt att det är betydligt vanligare för yngre människor (18-29 år) att utföra betalningar med sin mobil jämfört med den äldre generationen (65-79 år).   
 
Undersökningen visar också att företagen utsätts för en starkt ökad risk på grund av de anställdas okunskap om risker och hot vid användandet av sina mobiltelefoner. Över 20 % av de tillfrågade använder sin mobiltelefon för att arbeta med sitt företags epost. En ännu större andel av de tillfrågade använder mobilen för sociala medier, kontaktnätverk, bankärenden, mobila betalningar, olika spel samt för fotografering.
 
Undersökningen bekräftar vår bild av de ökande risker som kommer med den ökade användningen av smarta mobiler berättar Tomas Gardelin. Dagens användare vill vara ständigt uppkopplade mot både företagets epost och sociala medier och om mobilen stjäls så är den ofta fullt upplåst. En tjuv är därför ofta beredd att vänta tills han ser en användare låsa upp mobilen på tunnelbanan eller på krogen. Det finns också fortfarande många användare som inte har någon låsning av sin mobil då den är inaktiv.
 
Över 50 % av svenska företag tillåter sina anställda att ansluta sina privata mobiler till företagets nätverk visar undersökningen. Med tanke på majoritetens ringa kunskap om risker och hot utsätter man sin arbetsgivare för stora risker att förlora viktig data säger Mikael. Man kan undra om företagarnas säkerhetschefer inser riskerna? Ett sätt att minimera riskerna kan vara att de anställda måste genomgå kurser
 
Vår slutsats är att företagen måste inse att deras säkerhet kommer först i andra hand om de inte aktivt arbetar med att informera sina anställda hur säkerheten i mobiltelefoner ska hanteras för att både användaren och företaget ska vara så trygga som möjligt. Tack vare undersökningen vet vi idag bättre vad olika användargrupper har i sina mobiler och vilka säkerhetsmässiga råd som är relevanta att ge.
 
Simovits Consulting etablerades 1997 och är idag ett av Sveriges ledande konsult företag inom IT- och Informationssäkerhet.
Taggar: 

Examensarbete om RFID

Publicerat: 
2012-09-24 16:11

Enkelhet och smidighet i all ära. RIFD gör inpassering enkel men det kan också öppna nya dörrar för angripare. I vissa fall vill angriparen att ett system ska sluta fungera för att kunna utnyttja situationen som följer detta, exempelvis om det leder till att säkerheten i en fastighet sjunker. I andra fall kan angriparen vara intresserad av innehållet på RFID-etikett för att kunna spåra någon eller utvinna information. Detta examensarbete utfördes av Tiina Loukusa här på Simovits Consulting och presenterar ett flertal angreppsvinklar mot RFID och en djupdykning om hur ett kloningsangrepp kan gå till väga.

Skribent(er): 
Tiina Loukusa Hyttnäs
Taggar: 

ENIGMA fortfarande mystisk efter 80 år

Publicerat: 
2011-12-08 13:47

Enigman var ingen tysk krigshemlighet – den lanserades redan 1922 och konstruktionen var allmänt känd. Men trots att den forcerades redan 1932 kom den att användas kriget ut. I artikeln beskrivs Enigman – när utvecklades den, och hur fungerade denna mytomspunna maskin? Framför allt: hur forcerade man den –och varför var det över huvud taget möjligt? Vad kan vi lära av Enigman, de allieradesframgångar, och nazisternas misstag? Särtryck från ”Säkerhet och Sekretess”, nr 4, 2005.

Bifogad fil: 
Skribent(er): 
Mikael Simovits
Tomas Forsberg
Taggar: 

Kryptomisstag vi minns

Publicerat: 
2011-12-08 13:48
Kryptohistorien är full av misstag, men hur mycket lär vi oss av dem egentligen?
Följ med på en tur bland några riktiga klassiker: Worddokument, WEP, RDP och ända tillbaka till ryska spioner under andra världskriget.
Bifogad fil: 
Skribent(er): 
Mikael Simovits
Tomas Forsberg
Taggar: 

600 miljarder dollar i sjön

Publicerat: 
2011-12-08 13:47
När nyårsklockorna ringde för det nya året 2000 skulle våra datorer slås ut.
Det skulle bli kaos och förtvivlan när år 2000-buggen påverkade alla system. Vi skulle drabbas av kärnkraftsolyckor, öppna dammportar, kor som inte kunde mjölkas och flygplan som föll från skyn. Men inget hände.
Bifogad fil: 
Skribent(er): 
Mikael Simovits
Taggar: 

Due Diligence

Publicerat: 
2012-01-13 15:42

Här finner du en artikel som Mikael har skrivit om nödvändigheten med en teknisk Due Diligence i samband med ett företagsförvärv. Den påvisar vilka svårigheter (läs kostnader) som kan uppstå om man inte undersöker de tekniska förutsättningarna innan ett förvärv, eller lansering av en ny produkt. Du finner artikeln via nedanstående länk. Tveka inte för att kontakta oss om du har några frågor eller funderingar inför ett förvärv eller lansering av en ny produkt! Vi ställer gärna upp på ett förutsättningslöst möte.

Bifogad fil: 
Skribent(er): 
Mikael Simovits
Taggar: 

Man in the middle attack!

Publicerat: 
2011-12-08 13:43

Många diskuterar gärna Man-in-the-middle attacker. Men vad kan en angripare egentligen uppnå. Denna rapport är resultatet av ett examensarbete som finansierades av Simovits Consulting, och utfördes av Matthias Ericsson (också tidigare anställd på Simovits Consulting). Rapporten visar en ”avancerad” arkitektur för hur ett ”man-in-the-middle” verktyg ska implementeras för att fungera effektivt mot t.ex. en Internetbank eller Spellösning som tillämpar svaga autenticerings och signeringslösningar. Artikeln har publicerats på ACNS (Applied Cryptography and Network Security) i Kina 2003.

Taggar: 

Hur använder man LCG/CLCG nummer i applikationer för elektroniskt spel?

Publicerat: 
2011-12-08 13:44

Det finns många åsikter kring hur slumptalsgeneratorer skall användas. Denna rapport är resultatet av ett examensarbete som finansierades av Simovits Consulting, och utfördes av Anders Knutsson (också tidigare anställd på Simovits Consulting). Rapporten visar att val av svaga slumpalgoritmer för att generera spelvärden kan få ödesdigra konsekvenser då man tillåter spel om pengar. Artikeln har publicerats på ACNS (Applied Cryptography and Network Security) i Kina 2003. (Resultatet har även redovisats för World Lottery Association vid seminarier i Australien och Sydafrika).

Taggar: 

Business Intelligence and Information Warfare on the Internet

Publicerat: 
2011-12-08 13:45

Business Intelligence and Information Warfare var och är ett stort problem. Denna artikel presenterades dels på NordSec 1995 samt Infosec 1996. Även om Artiklarna är snart tjugo år gamla så ger de insikt om problematiken med globalisering och hur svårt det är att agera samt försvara sig mot konkurerande företag på en global marknad. Viss reservation är att vissa av metoderna som beskrivs i artikeln idag är utdaterade. Ni får gärna komma med förslag och kommentarer för vilka metoder som är aktuella idag. 

Skribent(er): 
Mikael Simovits
Tomas Forsberg
Taggar: