Die Datenschutz-Grundverordnung nähert sich mit großen Schritten. Und auch in Sachen Hackerangriffen dürfen sich Unternehmen 2018 wieder auf einiges gefasst ... (mehr)

Option 2: Der Osquery-Daemon

Die völlig losgelöste "osqueryi"-Shell ist praktisch, allerdings zwingt dieser Ansatz den Admin dazu, ein Gerüst zu bauen, das sich in zuvor definierten Abständen auf allen relevanten Hosts einloggt, die nötigen Abfragen ausführt und die Ausgabe zurückgibt. Um dieses Problem zu umgehen, liefert Facebook zusammen mit der "osqueryi"-Shell auch einen Daemon namens "osqueryd" aus. Dessen Hauptaufgabe besteht darin, zuvor per Konfigurationsdatei vom Nutzer bestimmte Checks regelmäßig durchzuführen und die entsprechenden Ergebnisse aufzuzeichnen. Die dabei entstehende Datei mit den Logeinträgen können andere Dienste anschließend verarbeiten.

Freilich geht die erhöhte Funktionalität mit gesteigerter Komplexität einher, und damit "osqueryd" überhaupt sinnvoll Werte erheben kann, braucht der Dienst eine Konfigurationsdatei. Diese heißt unter Linux "/etc/osquery/osquery.conf"; unter [2] findet sich eine vom Autor dieses Artikels vorbereitete Datei, die auf Ubuntu 16.04 funktioniert. Wer diese Datei unverändert übernehmen will, sollte zudem die Datei [3] unter "/usr/ share/osquery/packs/fim.conf" ablegen – dazu später mehr. Wichtig: "osqueryd" ist durch die oben genannte Datei so konfiguriert, dass es für "rsyslog" einen Socket öffnet, den dieser mit Syslog-Daten bedient. Die Datei "/etc/rsyslog.conf" sollte deshalb um diesen Eintrag erweitert werden:

template(
    name="OsqueryCsvFormat"
    type="string"
    string="%timestamp:::date-rfc3339,csv%,%hostname:::csv%,%syslogseverity:::csv%,%syslogfacility-text:::csv%,%syslogtag:::csv%,%msg:::csv%\n"
)
 
*.* action(type="ompipe" Pipe="/var/osquery/syslog_pipe" template="OsqueryCsvFormat")

Nach einem Neustart von "rsyslog" klappt die Verbindung zwischen "osqueryd" und dem Syslog-Dienst und "osqueryd" enthält aktuelle Syslog-Informationen.

Bild 2: Osquery führt auch Buch darüber, welche Nutzer gerade eingeloggt sind, sodass ein angeschlossenes Alerting im Notfall Alarm schlagen kann.

Queries konfigurieren

Die genannte "osquery.conf" ist die zentrale Anlaufstelle für Admins, wenn sie Checks konfigurieren wollen, die "osqueryd" regelmäßig durchführen soll. Dabei folgt die Syntax eines Check-Eintrages immer demselben Schema und entspricht der Syntax, die auch auf der Shell für "osqueryi" gilt. Wichtig: Checks müssen innerhalb der "schedule"-Direktive in der Datei "osquery.conf" stehen. Danach gilt das Konfigurationsformat

"name": {
    "query": "Kommando",
    "interval": Sekunden
},

Um alle fünf Minuten die eingeloggten User in die Logdatei zu schreiben, ist folglich dieser Eintrag notwendig:

"users": {
    "query": "SELECT * FROM logged_in_users;",
    "interval": 300
},
Bild 3: Das File Integrity Monitoring ist eine wichtige Osquery-Funktion: Über die vom OS angebotenen Notifications überwacht Osquery das Dateisystem.

Ähnliche Artikel

comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023