Shellshock Analyse mit Elasticsearch, Logstash und Kibana

von Roland Rickborn

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.

Zurück

© 2006-2024 exensio GmbH
Einstellungen gespeichert

Datenschutzeinstellungen

Wir nutzen Cookies auf unserer Website. Einige von ihnen sind essenziell, während andere uns helfen, diese Website und Ihre Erfahrung zu verbessern.

Sie können Ihre Einwilligung jederzeit ändern oder widerrufen, indem Sie auf den Link in der Datenschutzerklärung klicken.

Zu den gesetzlichen Rechenschaftspflichten gehört die Einwilligung (Opt-In) zu protokollieren und archivieren. Aus diesem Grund wird Ihre Opt-In Entscheidung in eine LOG-Datei geschrieben. In dieser Datei werden folgende Daten gespeichert:

 

  • IP-Adresse des Besuchers
  • Vom Besucher gewählte Datenschutzeinstellung (Privacy Level)
  • Datum und Zeit des Speicherns
  • Domain
You are using an outdated browser. The website may not be displayed correctly. Close