Osquery: Unterschied zwischen den Versionen
| Zeile 90: | Zeile 90: | ||
| − | = FleetDM mit Docker Compose ( | + | = FleetDM mit Docker Compose = |
| + | ==Was man mit Fleet machen kann== | ||
| + | *Live-Abfragen auf Hosts ausführen (SQL) | ||
| + | *Regelmäßige Abfragen planen (Schedules) | ||
| + | *Sicherheits-Policies definieren (z. B. "läuft SSH?") | ||
| + | *Host-Inventar anzeigen (Hardware, OS, IP, Benutzer) | ||
| + | *Software-Inventar anzeigen (installierte Pakete, Versionen) | ||
| + | *Prozesse und offene Ports abfragen | ||
| + | *Benutzerkonten und Rechte prüfen | ||
| + | *Logs und Events zentral sammeln (Logger via TLS) | ||
| + | *Hosts in Teams verwalten (Zugriff und Abfragen getrennt) | ||
| + | *Benutzerverwaltung mit Rollen (Admin, Maintainer, Observer) | ||
| + | *Webhook-Aktionen bei Policy-Verstoß auslösen | ||
| + | *REST-API für Integration (CI/CD, Monitoring, Automatisierung) | ||
| + | *Enrollment von Hosts mit Secret & TLS absichern | ||
| + | *Zentrale Konfiguration an osquery verteilen | ||
| + | ==Was Fleet nicht macht== | ||
| + | *Keine Endpoint Protection (kein Virenscanner) | ||
| + | *Kein Intrusion Prevention (keine Blockierung) | ||
| + | *Keine direkte Remote-Steuerung (kein SSH, keine Shell) | ||
| + | *Keine automatische Reaktion (nur manuelle oder Webhook) | ||
== Voraussetzungen == | == Voraussetzungen == | ||
* Debian 12 mit installiertem Docker & Docker Compose | * Debian 12 mit installiertem Docker & Docker Compose | ||
Version vom 18. April 2025, 18:04 Uhr
Einführung
osquery ist ein Framework zur sicherheitsrelevanten Systemüberwachung. Es stellt Betriebssystemdaten als SQL-Tabellen dar. So können Dateien, Prozesse, Nutzer, Netzwerke und Konfigurationen abgefragt werden.
Ursprünglich von Facebook entwickelt, eignet sich osquery für forensische Analysen, Security Monitoring und Integritätsprüfungen.
Architektur
Die Anwendung besteht aus zwei Komponenten:
+-------------------+
| osqueryi Shell | <-- Interaktive SQL-Abfragen
+-------------------+
|
v
+-------------------+
| osqueryd | <-- Daemon für geplante Abfragen
+-------------------+
|
v
+-------------------+
| Systemtabellen | <-- z.B. processes, users, etc.
+-------------------+
Installation unter Debian 12
- Von der Webseite neuste Version runterladen und installieren.
https://osquery.io/downloads/official/5.16.0
- wget https://pkg.osquery.io/deb/osquery_5.16.0-1.linux_amd64.deb
- dpkg -i osquery_5.16.0-1.linux_amd64.deb
Konfiguration
Kopiert die Beispielkonfiguration
- cp /opt/osquery/share/osquery/osquery.example.conf /etc/osquery/osquery.conf
Dienst starten
Startet den osquery-Dienst
- systemctl start osqueryd
Prüft den Dienststatus
- systemctl status osqueryd
● osqueryd.service - The osquery Daemon Loaded: loaded (/lib/systemd/system/osqueryd.service; enabled) Active: active (running)
Interaktive Nutzung mit osqueryi
Startet die interaktive Shell
- osqueryi
Beispielabfragen:
Zeigt aktuell eingeloggte Benutzer
- SELECT * FROM logged_in_users;
Zeigt laufende Prozesse von root
- SELECT name, pid FROM processes WHERE uid = 0;
Zeigt alle Cronjobs
- SELECT * FROM crontab;
Zeigt alle offenen Netzwerkports
- SELECT * FROM listening_ports;
Eigene Regeln über Queries konfigurieren
Bearbeitet die zentrale Konfigurationsdatei vi /etc/osquery/osquery.conf
Beispielkonfiguration:
{
"schedule": {
"users_check": {
"query": "SELECT * FROM users;",
"interval": 600
},
"passwd_check": {
"query": "SELECT * FROM file WHERE path = '/etc/passwd';",
"interval": 300
}
}
}
Aktualisiert osquery nach Konfig-Änderungen
- systemctl restart osqueryd
FleetDM mit Docker Compose
Was man mit Fleet machen kann
- Live-Abfragen auf Hosts ausführen (SQL)
- Regelmäßige Abfragen planen (Schedules)
- Sicherheits-Policies definieren (z. B. "läuft SSH?")
- Host-Inventar anzeigen (Hardware, OS, IP, Benutzer)
- Software-Inventar anzeigen (installierte Pakete, Versionen)
- Prozesse und offene Ports abfragen
- Benutzerkonten und Rechte prüfen
- Logs und Events zentral sammeln (Logger via TLS)
- Hosts in Teams verwalten (Zugriff und Abfragen getrennt)
- Benutzerverwaltung mit Rollen (Admin, Maintainer, Observer)
- Webhook-Aktionen bei Policy-Verstoß auslösen
- REST-API für Integration (CI/CD, Monitoring, Automatisierung)
- Enrollment von Hosts mit Secret & TLS absichern
- Zentrale Konfiguration an osquery verteilen
Was Fleet nicht macht
- Keine Endpoint Protection (kein Virenscanner)
- Kein Intrusion Prevention (keine Blockierung)
- Keine direkte Remote-Steuerung (kein SSH, keine Shell)
- Keine automatische Reaktion (nur manuelle oder Webhook)
Voraussetzungen
- Debian 12 mit installiertem Docker & Docker Compose
- osquery soll zentral über Fleet verwaltet werden
Install the fleetctl command line tool
- curl -sSL https://fleetdm.com/resources/install-fleetctl.sh | bash
Run a local demo of the Fleet server
- ~/.fleetctl/fleetctl preview
The Fleet UI is now available
- http://localhost:1337
- Email: admin@example.com
- Password: preview1337#
Erster Query
- Queries
- Add query
- Query: SELECT * FROM crontab;
- Save
- Add query
- Run query
- Select target host: verwaltung.it113.int
- Run
- Ergebnisse prüfen