bookmark_borderDer Elastic Stack in der Praxis, Teil 4: Benutzerverwaltung

Nachdem unser Elastic Stack nun Daten empfängt und diese nach einer gewissen Zeit auch wieder löscht, kümmern wir uns jetzt um die Benutzerverwaltung.

Die Benutzerverwaltung ist eine der optionalen Sicherheitsfunktionen des Elastic Stacks. Darüber hinaus lässt sich auch die Kommunikation zwischen Elasticsearch und den Datenquellen, zwischen Elasticsearch und Kibana sowie zwischen mehreren Elasticsearch-Nodes verschlüsseln. Im Produktiveinsatz ist es dringend zu empfehlen, beide Features zu konfigurieren und zu aktivieren. Dieser Artikel beschränkt sich zunächst auf die Benutzerverwaltung, die den Zugriff auf die in Elasticsearch gespeicherten Daten reguliert. Die Übertragung erfolgt aber weiterhin unverschlüsselt.

Bis vor kurzer Zeit war dieses Feature nur in der kostenpflichtigen Variante des Elastic Stacks oder über ein Plug-in realisierbar. Seit Mai 2019 stehen grundlegende Sicherheitsfunktionen auch in der kostenlosen Version zur Verfügung. Eine Anbindung an LDAP-Verzeichnisse, Audit-Logs und einige weitere Features bleiben weiter der kostenpflichtigen Version vorbehalten.

1. Konfiguration von Elasticsearch und Kibana

Stoppen Sie Elasticsearch und Kibana:

Windows-Service (per Admin-PowerShell)

Stop-Service elasticsearch
Stop-Service kibana

Linux

sudo systemctl stop elasticsearch kibana

Öffnen Sie die Elasticsearch-Konfigurationsdatei elasticsearch.yml (der vollständige Dateipfad hängt von Ihrer Umgebung ab; weitere Informationen finden Sie in den Abschnitten 1.1 und 1.2 in Teil 1 der Reihe).

Fügen Sie am Ende der Datei die folgenden Zeilen ein:

xpack.security.enabled: true
discovery.type: single-node

Damit aktivieren Sie die Benutzerverwaltung und legen fest, dass es bislang nur einen einzigen Elasticsearch-Host gibt, sodass Sie vorerst keine Einstellungen zur verschlüsselten Kommunikation meherer Elasticsearch-Instanzen untereinander vornehmen müssen. Entfernen Sie außerdem die beiden folgenden Zeilen:

discovery.seed_hosts: ["127.0.0.1", "[::1]"]
cluster.initial_master_nodes: ["node-1"]

Der Elastic Stack benötigt einige interne Benutzer und legt einen Standard-Benutzerzugang namens elastic an. Für diese müssen Passwörter eingestellt werden. Elasticsearch liefert ein Werkzeug mit, das diese Passwörter automatisch generiert.

Starten Sie Elasticsearch:

Windows-Service (per Admin-PowerShell)

Start-Service elasticsearch

Linux

sudo systemctl start elasticsearch

Nun muss das Programm elasticsearch-setup-passwords ausgeführt werden. Unter Windows befindet sich dieses im Verzeichnis bin der Elasticsearch-Installation, unter Linux finden Sie es in der Regel unter /usr/share/elasticsearch/bin.

Starten Sie ein Terminal (Linux) oder eine Powershell (Windows). Wechseln Sie mittels cd in das entsprechende bin-Verzeichnis und führen Sie anschließend den folgenden Befehl aus:

Windows

.\elasticsearch-setup-passwords.exe auto

Linux

./elasticsearch-setup-passwords auto

Das Programm fragt Sie zunächst, ob Sie damit einverstanden sind, dass die Passwörter automatisch generiert und anschließend ausgegeben werden. Bestätigen Sie diese Abfrage mit y. Alternativ können Sie die Passwörter auch selbst bestimmen. Ersetzen Sie dazu den Parameter auto beim Programmaufruf durch interactive.

$ elasticsearch-setup-passwords auto
Initiating the setup of passwords for reserved users elastic,apm_system,kibana,logstash_system,beats_system,remote_monitoring_user.
The passwords will be randomly generated and printed to the console.
Please confirm that you would like to continue [y/N]y


Changed password for user apm_system
PASSWORD apm_system = BxVWXck5A78myrpwqiNb

Changed password for user kibana
PASSWORD kibana = uZVB9wLOH5OgDDJBFrJl

Changed password for user logstash_system
PASSWORD logstash_system = V8kGGmRw1WYy6PfvleJx

Changed password for user beats_system
PASSWORD beats_system = ScF9ncYaJ2IC6eAh13h3

Changed password for user remote_monitoring_user
PASSWORD remote_monitoring_user = 1IOElU2xnQ0IuFUV57HM

Changed password for user elastic
PASSWORD elastic = 6xVF0bW338SJW5zggnlL

Notieren Sie sich die ausgegebenen Passwörter oder speichern Sie sie ab.

Öffnen Sie nun die Konfigurationsdatei von Kibana, kibana.yml (siehe Teil 1, Abschnitt 1.1 und 1.2). Suchen Sie den auskommentierten Block

#elasticsearch.username: "kibana"
#elasticsearch.password: "pass"

und ersetzen Sie ihn durch

elasticsearch.username: "kibana"
elasticsearch.password: "KIBANA-PASSWORT"

Ersetzen Sie dabei KIBANA-PASSWORT durch das eben generierte Passwort für den internen Benutzer kibana.

Starten Sie Kibana:

Windows-Service (per Admin-PowerShell)

Start-Service kibana

Linux

sudo systemctl start kibana

Wenn Sie nun die Weboberfläche von Kibana aufrufen, werden Sie von einer Login-Maske begrüßt:

Die Kibana-Login-Maske

Sie können sich hier mit dem Standard-Administrator elastic anmelden, dessen Passwort ebenfalls durch elasticsearch-setup-passwords generiert wurde.

2. Erstellen neuer Benutzer und Rollen

2.1 Erstellen von Kibana-Benutzern

Sie können für jede Person, die auf Kibana zugreifen soll, ein eigenes Benutzerkonto erstellen. Klicken Sie dazu in der Seitenleiste auf „Management“ (Zahnrad) und anschließend im Bereich „Security“ auf „Users“. Sie sehen eine Liste der (bisher ausschließlich internen) Benutzer. Klicken Sie auf „Create user“, um einen neuen Benutzer zu erstellen.

Benutzerverwaltung in Kibana

Füllen Sie das folgende Formular aus. Weisen Sie dem Benutzer insbesondere die Rolle kibana_user zu. Diese erlaubt es dem Benutzer, sich in Kibana anzumelden. Klicken Sie anschließend auf „Create user“, um den Benutzer zu erstellen.

Erstellen eines neuen Benutzers für Kibana

Der neue Benutzer kann sich nun in Kibana anmelden, wird aber noch keine Daten sehen können. Dazu müssen Sie ihm zunächst Zugriff auf einen oder mehrere Indizes gewähren.

Legen Sie dazu eine neue Rolle an, die diese Berechtigung abbildet. Klicken Sie dazu in der Seitenleiste auf „Roles“ und anschließend auf „Create role“.

Rollenverwaltung in Kibana

Geben Sie der Rolle einen (sprechenden) Namen, z. B. my_reader_role. Listen Sie im Feld „Indices“ alle Indizes auf, auf die der Benutzer Zugriff haben soll. Sie können das Zeichen * als Platzhalter verwenden. Bei der Eingabe sollten Ihnen die Indizes vorgeschlagen werden, die in Kibana als Index Patterns konfiguriert sind.

Tragen Sie unter „Privileges“ die folgenden Berechtigungen ein:

  • read
  • view_index_metadata

Speichern Sie die Rolle mit Klick auf „Create role“.

Erstellen einer neuen Rolle für Kibana-Benutzer

Gehen Sie nun zurück in den Bereich „Users“. Klicken Sie auf den Benutzernamen des eben angelegten neuen Benutzers, um ihn zu bearbeiten. Fügen Sie die eben erstellte Rolle my_reader_role im Feld „Roles“ hinzu und speichern Sie die Änderungen („Update user“).

2.2 Erstellen von Beats-Benutzern

Der Zugriff auf Elasticsearch wird jetzt nicht nur für das Abrufen von Daten limitiert, sondern auch für die Zulieferer – und damit auch für alle Beats. Auch für diese müssen Sie eine Rolle und Benutzerkonten erstellen.

Erstellen Sie zuerst die Rolle: klicken Sie im Bereich „Roles“ auf „Create role“. Geben Sie der Rolle bspw. den Namen beat_writer. Setzen Sie außerdem die folgenden Einstellungen im Bereich „Elasticsearch“:

  • Cluster privileges
    • manage_index_templates
    • manage_ingest_pipelines
    • monitor
    • manage_ilm
  • Indices
    • Fügen Sie hier die Indizes ein, die Sie mit den Beats befüllen möchten. Auch hier können Sie wieder den Platzhalter * verwenden.
  • Privileges
    • write
    • create_index
    • manage
    • manage_ilm
    • view_index_metadata
Erstellen einer neuen Rolle für Beats

Erstellen Sie nun im Bereich „Users“ einen neuen Benutzer für jeden Beat, den Sie verwenden. Weisen Sie diesem die neue Rolle beat_writer zu.

Erstellen eines Benutzers für Filebeat

Konfigurieren Sie zum Schluss die Beats entsprechend. Öffnen Sie dazu die Konfigurationsdatei, bspw. filebeat.yml, und fügen Sie den Benutzernamen und das Passwort im Bereich output.elasticsearch ein. Das könnte etwa so aussehen:

output.elasticsearch:
  hosts: ["localhost:9200"]
  username: "filebeat" 
  password: "FILEBEAT-PASSWORT"

Starten Sie den Beat anschließend neu.

bookmark_borderDer Elastic Stack in der Praxis, Teil 3: Index Lifecycle Management

In den letzten Artikeln zum Log Management mit dem Elastic Stack haben wir einige Datenquellen an unser System angeschlossen. Diese senden permanent Daten, die den verfügbaren Speicherplatz füllen. In diesem Artikel kümmern wir uns um das Index Lifecycle Management (ILM), einen Mechanismus, der den Umgang mit alten Daten kontrolliert.

Continue reading „Der Elastic Stack in der Praxis, Teil 3: Index Lifecycle Management“

bookmark_borderDer Elastic Stack in der Praxis, Teil 2: Weitere Datenquellen anschließen

Im zweiten Artikel der Reihe zum Log Management mit dem Elastic Stack geht es um das Anschließen weiterer Datenquellen. Bisher haben wir mithilfe des Winlogbeat ein Windows-System überwacht und an ein zentrales Log Management angeschlossen. Nun sollen weitere Systeme folgen.

Continue reading „Der Elastic Stack in der Praxis, Teil 2: Weitere Datenquellen anschließen“

bookmark_borderDer Elastic Stack in der Praxis, Teil 1: Windows-Logs zentralisieren

Dieser Artikel ist der erste in einer Reihe zum Thema Log-Management mit dem Elastic Stack. Der Elastic Stack ist eine Reihe von Open Source-Software-Produkten rund um die zentralisierte Speicherung, Auswertung und Visualisierung von Logs. Diese helfen dabei, den Status der eigenen Infrastruktur im Blick zu behalten, wie zum Beispiel das Active Directory oder die DHCP Logs und bieten eine zentrale Anlaufstelle zur Fehlersuche und machen auf Auffälligkeiten aufmerksam. Die Software steht in ihrer (sehr umfassenden) Grundversion kostenfrei zur Verfügung.

Continue reading „Der Elastic Stack in der Praxis, Teil 1: Windows-Logs zentralisieren“

bookmark_borderAusschreibung wissenschaftliche Mitarbeit – Security Analytics

(by RRZEicons, some rights reserved)

Bauen Sie mit uns an einem modularen System für IT Security Analysen, gerne auch im medizinischen Kontext! Wir bieten Ihnen dazu viele Themen, die sich gut für ein Hochschulpraktikum, Bachelorthesis, Masterprojekt oder Masterthesis eignen. Dabei haben Sie die Möglichkeit, aus mehreren Bereichen zu wählen, von der Bewertung der Informationsquellen, der technischen Integration, der visuellen Darstellung bis zur Korrelation mit bestehenden Auswertungen. Hierzu gibt es sowohl konzeptionelle, als auch technisch-praktische Aufgaben.

Unser Ziel ist es, ein modulares System hinsichtlich der IT-Security zu entwickeln mit einem Elastic-Stack im Zentrum, sowie einer Vielzahl an gängigen Applikation oder anderen Quellen, die Informationen einspeisen.Sie werden die Möglichkeit haben mit folgenden Tools und Standards zu arbeiten:

  • Ansible
  • Elasticsearch, Logstash, Kibana, Grafana
  • Kafka
  • Openvas, nmap
  • Honeypots
  • Jira, Confluence, Bitbucket
  • Docker/Container
  • ISO 27001
  • CIS-CSC
  • … und vieles mehr

Wir suchen motivierte Personen, die sich mit Informationssicherheit auskennen und zielorientiert arbeiten können. Die oben genannten Tools und Standards sollten größtenteils keine Fremdwörter sein. Kontakt: hr@dahamoo.com

bookmark_borderErfolgreiche Bachelorarbeit zu den Themen Log Management, ELK, COBIT 5 und Metriken im Krankenhaus

Nach einem arbeitsreichen Jahr 2017 freuen wir uns vermelden zu können, dass wir eine weitere Bachelorarbeit an der Hochschule Bonn Rhein-Sieg erfolgreich begleiten konnten. Till Schlüter, der bei der Dahamoo GmbH bereits im Frühjahr 2017 sein Pflichtpraktikum absolvierte, hatte sich dabei ein Thema aus dem Bereich Log Management, und wie man es zum Nachweis von Sicherheitsprozessen einsetzen kann, gewählt.

Herr Schlüter: „Der Ausgangspunkt meiner Arbeit ist die Fragestellung, wie sich die meist recht abstrakten Metriken des COBIT-Frameworks in den technischen und systemnahen Daten, die in Form von Log-Dateien anfallen, widerspiegeln und ob auf dieser Basis eine automatisierte Bewertung der Prozess-Performance möglich ist.“

Für die technische Evaluierung der Ergebnisse aus Kundensicht stand freundlicherweise das Klinikum Leverkusen zur Verfügung. Dieses verfügt über eine moderne Log-Management Infrastruktur basierend auf dem sogenannten ELK-Stack und sein Leiter der IT, Herr Jens Schulze, war sehr an den Ergebnissen interessiert. Herr Schulze: „Seit wir wissen, dass wir als Klinikum unter das IT-Sicherheitsgesetz fallen, hat sich die Bedeutung der IT-Sicherheit nochmals erhöht. Insbesondere zur Erkennung von Anomalien und der Erfüllung der gesetzlichen Nachweispflichten ist ein modernes Log-Management erforderlich.“ Continue reading „Erfolgreiche Bachelorarbeit zu den Themen Log Management, ELK, COBIT 5 und Metriken im Krankenhaus“

bookmark_borderDer Schatz im eigenen Unternehmen

logging_grafikIn der heutigen Zeit sind Informationen mit das Wichtigste. Jeder holt sich neue Informationen aus dem Web oder aus Zeitschriften. Wir werden förmlich mit Informationen überflutet. Dabei ist es wichtig die wichtigen Elemente herauszufiltern um nicht darin unterzugehen. Am besten sind Plattformen, welche alle Informationen zentralisieren und damit den User erlauben die für ihn wichtigen Informationen zu filtern. Warum nicht auch im eigenen Unternehmen? Continue reading „Der Schatz im eigenen Unternehmen“

bookmark_borderDie Renaissance der Logs

Wer schodashboardn etwas länger dabei ist, mag sich an die 90er erinnern. Wenn man seinerzeit das Logging einschaltete, waren die Platten in Kürze gefüllt, mit der Folge, dass man es umgehend wieder ausschaltete 😉

Zehn Jahre später, in 00ern, war der Speicherplatz vorhanden, doch brauchbare Tools zur Auswertung fehlten gänzlich. Wer wollte schon Millionen von Events „zu Fuß“ auswerten?

Nochmal zehn Jahre später sind die Auswertetools wie ElasticSearch oder Splunk endgültig in der Breite verfügbar, Big Data sei Dank!

Folglich können die lange gehegten Wünsche eines Leiters IT-Sicherheit heute in Erfüllung gehen, als da sind:

Continue reading „Die Renaissance der Logs“

bookmark_borderBig Data macht‘s möglich: Klinikweite Logfile-Auswertungen mit „ELK“

Digital HospitalWas in der Medizin unvorstellbar erscheint – eine Behandlung ohne Untersuchung – ist in der Krankenhaus-IT scheinbar gelebte Praxis. Denn viel zu häufig werden Logdateien zwar erfasst, aber nicht systematisch zur „Untersuchung“ ausgewertet. Im Ergebnis steht ein ziemlicher Blindflug – Sicherheitsverletzungen, Datendiebstähle, Einbrüche und andere Vorälle bleiben unentdeckt; deren  „Behandlung“ eher dem Zufall überlassen.

Dies ist umso dramatischer, da restriktive IT-Sicherheits-Maßnahmen in der Regel nur sehr begrenzt möglich. Denn wer möchte schon die Gesundheit eines Patienten durch zu eingeschränkt konfigurierte IT-Systeme aufs Spiel setzen. Continue reading „Big Data macht‘s möglich: Klinikweite Logfile-Auswertungen mit „ELK““

bookmark_borderBachelorarbeit implementiert Open Source Protokollierung für Klinik

Warum ist die Protokollierung bei der Klink-IT so entscheidend?

Kibana 3 - KL 2014-09-01 12-51-39Da es im Umfeld einer Klinik immer wieder zu Notfall-Situationen kommt, und die Behandlung des Patienten absoluten Vorrang genießt, sind restriktive IT-Sicherheits-Maßnahmen nur sehr begrenzt möglich. Denn wer möchte schon die Gesundheit eines Patienten durch zu eingeschränkt konfigurierte IT-Systeme aufs Spiel setzen.

Umso wichtiger ist folglich die Protokollierung von Vorgängen (Events), da sie zumindest nachträglich Missbrauch aufdecken decken können.

Leider ist es in den vergangen Jahren aber so gewesen, dass Logfiles mit dem Hinweis auf begrenzten Speicherplatz oft gar nicht erzeugt wurden bzw. wegen des schieren Umfangs niemals analysiert wurden. Im besten Fall wurden die Logs an zentraler Stelle erfasst und archiviert, allerdings nicht analysiert, schon gar nicht in Echtzeit visualisiert.

Folglich bedarf es neuer Lösungen, die klinikweit Protokolldaten erfassen, Datenschutz konform aufbereiten, zusammenführen, analysieren, korrelieren und die Ergebnisse in Echtzeit visualisieren können. Selbstverständlich sollen die Kosten für eine solche Lösung überschaubar bleiben.

Vor diesem Hintergrund wurde die Bachelorarbeit von Herrn Leek mit dem Thema „Implementierung eines Open Source Analyse- und Visualisierungssystems für domänenspezifische Protokolldateien“ erstellt. Continue reading „Bachelorarbeit implementiert Open Source Protokollierung für Klinik“