Herzlich willkommen auf dem Blog der exensio GmbH

exensio ist ein unabhängiges Software-Unternehmen von erfahrenen IT Beratern und Architekten. Zu unseren Kunden zählen namhafte deutsche Großunternehmen.

exensio verbessert das Kommunikations- und Informationsmanagement von Unternehmen. Auf Basis sinnvoller und zweckmäßiger Technologien erarbeiten wir flexible und übergreifende Lösungen für webbasierte Informationssysteme. Abhängig von den Kundenanforderungen realisieren wir Web Applikationen sowie Lösungen auf Basis von Web Content Management- und Portalsystemen. Integrativ, wirtschaftlich und anwenderfreundlich!

Hier gelangen Sie zur exensio GmbH.

Mittwoch, 1. April 2015

Shellshock Analyse mit Elasticsearch, Logstash und Kibana

In diesem Blog Post will ich zeigen, wie einfach man Logdateien eines Webservers mit Elasticsearch, Logstash und Kibana (dem ELK Stack [1]) untersuchen kann. Dabei analysiere ich Angriffe, die die im September 2014 veröffentlichte Sicherheitslücke Shellshock [2] versuchen auszunutzen. Shellshock Angriffe machen sich eine Sicherheitslücke in der Bash Shell zu nutze. Über einen Webserver lässt sich die Lücke durch CGI-Skripte ausnutzen. Üblicherweise wird dabei der vom Client angegebene User-Agent manipuliert. Das Ergebnis möchte ich anhand der IP-Adressen geografisch sortieren und visualisieren.

Vorbereitung

Zuerst werden alle verfügbaren Logdateien vom Server geladen und zu einer großen Datei zusammengefügt. Der ELK-Stack ist bereits vorhanden. Mit der folgenden Konfigurationsdatei legen wir einen neuen Index an und lesen unsere Logdatei mit Logstash ein.

input {
    file {
        path => "access.log"
        start_position => "beginning"
        sincedb_path => ".sincedb_access_log"
    }
}
filter {
    urldecode {}
    grok {
        match     => ["message", "%{COMBINEDAPACHELOG}"]
    }
    date {
        match => [ "timestamp", "dd/MMM/yyyy:HH:mm:ss Z" ]
    }
    geoip {
        source => "clientip"
    }
}
output {
    elasticsearch {
        host => "localhost"
        port => 9201
        protocol => http
        index => "myIndex"
        template_name => "template"
        template => "template.json"
        template_overwrite => true
    }
}

Der Aufruf von Logstash zum Einlesen der Logdatei geschieht mit dem Kommando:
./logstash agent --verbose -f elasticsearch.conf

Die Konfigurationsdatei wendet im grok-Filter das Muster COMBINEDAPACHELOG auf jede Zeile der Logdatei an. Danach wird das Format des Zeitstempels vereinheitlicht und am Ende wird die Client IP aus der Logdatei geokodiert. Damit kann in Kibana auf die geoip-Felder zugegriffen werden. Die Daten stehen in Kibana im Index myIndex zur Verfügung.

Angriffsversuche finden

Bei der abgebildeten Suche wird nach agent: \/bin gesucht, da viele Angriffe einen Befehl aus /bin versuchen zu starten.

Fazit

Mit dem ELK-Stack hat man ein mächtiges Tool zur Hand, mit dem sich sehr einfach die Logdateien eines Webservers analysieren lassen. Damit ist man in der Lage schnell und flexibel auf aktuelle Situationen zu reagieren.
In meinem Beispiel habe ich den ELK-Stack als Tool zur gelegentlichen Verwendung eingesetzt. Viel ratsamer ist natürlich die Einrichtung als Dienst im Intranet, welcher Loginformationen von allen zu überwachenden Systemen kontinuierlich sammelt.


Links

[1] ELK Stack
[2] Sicherheitslücke Shellshock

Keine Kommentare:

Kommentar veröffentlichen