Die freie Software OSSEC ist ein Intrusion-Detection- und Host-basiertes Intrusion-Prevention-System, das auf Betriebssystemebene Sicherheitsprobleme in Echtzeit erkennt und behebt. Es ist dabei universell einsetzbar und unterstützt Plattformen wie Linux, Windows und macOS. Das Tool kombiniert Funktionen wie Loganalyse, Datei-Integritätsprüfung, Windows-Registry-Überwachung und Rootkit-Erkennung mit einer automatisierten Abwehr.
OSSEC [1] erkennt als Host-basiertes Intrusion-Detection-System (HIDS) Sicherheitsvorfälle in Echtzeit und reagiert darauf. Die Software ist in der Lage, eine Vielzahl von Sicherheitsvorfällen aufzudecken – darunter Angriffe auf Dateisysteme und Verzeichnisse, Veränderungen von Systemdateien und Konfigurationsdateien, fehlgeschlagene Anmeldeversuche sowie Versuche, Root-Privilegien zu erlangen. Auch Veränderungen von Logdateien sowie Netzwerkangriffe wie Portscans, Verbindungsdurchbrüche und DDoS-Attacken ermittelt das Tool.
Gegenmaßnahmen ergreifen
Um auf Sicherheitsvorfälle zu reagieren, bietet OSSEC eine Reihe von Gegenmaßnahmen an. Diese beinhalten das Blockieren von IP-Adressen oder Hosts, die verdächtiges Verhalten zeigen, und das Beenden von Prozessen, die nicht autorisiert sind oder Angriffsversuche ausführen. Darüber hinaus erlaubt die Anwendung das Deaktivieren von Benutzerkonten, die für Angriffe missbraucht werden, und das Alerting, um schnell auf Vorfälle zu reagieren. Grundsätzlich steht auch die Überwachung von Systemen und Netzwerken im Fokus der freien Software.
Wir zeigen in diesem Betrag, warum die Verwendung von OSSEC ein sinnvoller Schritt ist, um die Sicherheit in Netzwerken deutlich zu erhöhen. Schlussendlich können Sie mit OSSEC Sicherheitsvorfälle erkennen, bevor Virenscanner oder andere Systeme dazu in der Lage sind. Das spielt zum Beispiel vor allem bei Ransomware-Angriffen eine wichtige Rolle, da die Zeit in diesem Fall ein kritischer Faktor ist.
OSSEC [1] erkennt als Host-basiertes Intrusion-Detection-System (HIDS) Sicherheitsvorfälle in Echtzeit und reagiert darauf. Die Software ist in der Lage, eine Vielzahl von Sicherheitsvorfällen aufzudecken – darunter Angriffe auf Dateisysteme und Verzeichnisse, Veränderungen von Systemdateien und Konfigurationsdateien, fehlgeschlagene Anmeldeversuche sowie Versuche, Root-Privilegien zu erlangen. Auch Veränderungen von Logdateien sowie Netzwerkangriffe wie Portscans, Verbindungsdurchbrüche und DDoS-Attacken ermittelt das Tool.
Gegenmaßnahmen ergreifen
Um auf Sicherheitsvorfälle zu reagieren, bietet OSSEC eine Reihe von Gegenmaßnahmen an. Diese beinhalten das Blockieren von IP-Adressen oder Hosts, die verdächtiges Verhalten zeigen, und das Beenden von Prozessen, die nicht autorisiert sind oder Angriffsversuche ausführen. Darüber hinaus erlaubt die Anwendung das Deaktivieren von Benutzerkonten, die für Angriffe missbraucht werden, und das Alerting, um schnell auf Vorfälle zu reagieren. Grundsätzlich steht auch die Überwachung von Systemen und Netzwerken im Fokus der freien Software.
Wir zeigen in diesem Betrag, warum die Verwendung von OSSEC ein sinnvoller Schritt ist, um die Sicherheit in Netzwerken deutlich zu erhöhen. Schlussendlich können Sie mit OSSEC Sicherheitsvorfälle erkennen, bevor Virenscanner oder andere Systeme dazu in der Lage sind. Das spielt zum Beispiel vor allem bei Ransomware-Angriffen eine wichtige Rolle, da die Zeit in diesem Fall ein kritischer Faktor ist.
Editionen von OSSEC
Die Basisversion von OSSEC ist Open Source und bietet Ihnen einen reichen Funktionspark mit Log-based Intrusion Detection, Rootkit- und Malware-Erkennung, Active Response, Compliance Auditing, File Integrity Monitoring und System Inventory. Es ist wichtig zu beachten, dass sich OSSEC als HIDS auf die Überwachung von Einzelsystemen konzentriert. Daher ist es empfehlenswert, OSSEC in Kombination mit anderen Sicherheitswerkzeugen wie Netzwerk-basierten Intrusion-Detection-Systemen (NIDS) oder Firewalls zu verwenden, um ein umfassendes Sicherheitssystem aufzubauen.
Daneben stehen aber noch weitere Editionen zur Verfügung. So bietet "OSSEC+" zusätzliche Funktionen wie etwa Machine Learning, erfordert jedoch eine Registrierung beim Hersteller vor dem Einsatz. Diese Edition integriert darüber hinaus den ELK-Stack (Elasticsearch, Logstash, Kibana). Eine zentrale Verwaltung und tausende Regeln sowie rollenbasierte Berechtigungen und ein umfassendes Reportsystem sind der "Atomic OSSEC"-Version vorbehalten. Die Unterschiede der verschiedenen Editionen finden Sie direkt auf der Downloadseite [2].
Typische Einsatzszenarien
Ein praktischer Einsatz von OSSEC ist die Loganalyse. Diese umfasst System- und Anwendungsprotokolle, um Anzeichen für Sicherheitsverstöße oder verdächtige Aktivitäten zu erkennen. Wenn das System eine solche Aktivität identifiziert, benachrichtigt OSSEC Sie per E-Mail, Slack oder über eine andere konfigurierte Benachrichtigungsmethode. Parallel dazu kann die Software über ihr Active-Response-System Aktionen durchführen, wie das Sperren von Benutzern oder IP-Adressen.
Ein weiterer Anwendungsfall ist die Dateiintegritätsprüfung. OSSEC überwacht wichtige Systemdateien und -verzeichnisse auf Veränderungen. Tritt darin etwas Unerwartetes auf, erhalten Sie eine Information und können aktiv Angreifer und Malware bekämpfen, bevor der Schaden sich ausweitet. Das ist ein wertvolles Hilfsmittel insbesondere im Kampf gegen Ransomware.
Für Windows-Nutzer bietet OSSEC eine Überwachung der Windows-Registry. Änderungen in der Registry können auf einen Sicherheitsverstoß oder eine unerwünschte Anwendung hindeuten. OSSEC verfolgt solche Änderungen und alarmiert Sie bei verdächtigen Aktivitäten.
Die Rootkit-Erkennung ist ein weiteres wichtiges Merkmal von OSSEC. Rootkits sind schädliche Programme, die versuchen, sich tief im Betriebssystem zu verstecken, um unentdeckt zu bleiben. Das Tool sucht nach bekannten Signaturen und Verhaltensmustern, um solche Rootkits zu identifizieren und Ihnen deren Vorhandensein zu melden.
Schließlich verfügt OSSEC über eine aktive Antwortfunktionalität (Active Response), die automatisch auf erkannte Bedrohungen reagiert. Sie können zum Beispiel OSSEC so konfigurieren, dass es den Netzwerkzugriff für eine IP-Adresse blockiert, von der aus wiederholte fehlgeschlagene Anmeldeversuche erfolgten.
OSSEC auf verschiedenen Plattformen
OSSEC arbeitet plattformübergreifend und lässt sich auf Linux, Windows und macOS installieren. Die Umgebung eignet sich daher als zusätzliches Sicherheitswerkzeug in hybriden Netzwerken. Linux-Distributionen wie Debian, Ubuntu, CentOS, Red Hat Enterprise Linux und Fedora unterstützen OSSEC. Die Installation erfolgt über den Paketmanager oder durch Kompilieren aus dem Quellcode.
Unter Windows müssen Sie zunächst sicherstellen, dass die Software Ihre Version unterstützt und alle notwendigen Updates installiert sind. Anschließend laden Sie den OSSEC-Agenten für Windows von der offiziellen Website herunter und führen die Installationsdatei aus. Den OSSEC-Server selbst können Sie aber nicht auf Windows installieren, außer Sie nutzen das Windows-Subsystem für Linux – optimal ist das aber nicht. Für macOS funktioniert die Installation von OSSEC ähnlich wie bei Linux. Sie können den Quellcode von der offiziellen Website herunterladen und das Programm kompilieren oder einen Paketmanager wie Homebrew verwenden.
Bei der Installation von OSSEC ist es wichtig, die Komponenten aufeinander abzustimmen. Die Software besteht aus einem zentralen Server, dem "OSSEC Manager", und den "OSSEC Agents" auf den zu überwachenden Systemen. Der Manager sammelt und analysiert Daten von den Agenten und führt entsprechende Aktionen aus, wenn das Tool Bedrohungen oder Sicherheitsverstöße erkennt. Stellen Sie sicher, dass Sie die richtige Konfiguration für Ihre Anforderungen wählen und die Kommunikation zwischen Manager und Agenten korrekt einrichten. Die Anpassung erfolgt über die Konfigurationsdatei.
Der OSSEC-Server kann generell auch agentenlos arbeiten, liest dann aber auch nicht alle Informationen ein. Über Agenten lässt sich auf Windows-Servern zum Beispiel auch wie angesprochen die Registry auf Änderungen überwachen. Darüber hinaus kann der Server Daten aus Protokolldateien von Systemen auslesen. Alle diese Informationen aggregiert der Server und führt im Alarmfall Aktionen oder Benachrichtigungen aus.
OSSEC kann auch in der Cloud zum Einsatz kommen. In Cloudumgebungen können Sie die Anwedung sowohl auf virtuellen Maschinen als auch auf Cloud-basierten Servern installieren. Für Azure, AWS und GCP stehen parallel buchbare Dienste direkt in der Cloud zu Verfügung. Dort installieren und konfigurieren Sie den OSSEC-Manager auf einer zentralen Instanz oder einem dedizierten Server. Anschließend richten Sie die Agenten auf den einzelnen virtuellen Maschinen oder Cloudservern ein, die Sie überwachen möchten. Auch hier kommunizieren die Agenten mit dem zentralen Manager und senden Informationen über die Systemaktivitäten, die der Manager analysiert und entsprechende Aktionen ausführt.
Bei der Nutzung von OSSEC in der Cloud ist es wichtig, die Sicherheit der Kommunikation zwischen den Agenten und dem Manager zu gewährleisten. Verwenden Sie geschützte Verbindungen wie verschlüsselte VPN-Tunnel oder private Netzwerkverbindungen, um die Kommunikation zwischen den Systemen zu schützen.
In vielen Fällen bieten Cloudanbieter auch eigene Sicherheitsprodukte und Überwachungswerkzeuge an. Es ist ratsam, diese in Kombination mit OSSEC zu nutzen, um die Sicherheit Ihrer Cloudinfrastruktur zu maximieren.
Installation und Einrichtung
Sie können OSSEC entweder installieren oder als virtuelle Appliance herunterladen, wobei die erste Variante zu bevorzugen ist. Server und Agenten lassen sich getrennt herunterladen und an einen OSSEC-Server anbinden. Im Gegensatz zu vielen Live-DVDs oder einfacheren Open-Source-Werkzeugen ist OSSEC in der Installation, Einrichtung und Betrieb nicht ganz einfach. Sie sollten sich daher Zeit lassen und sich umfassend in das Produkt einarbeiten. Wir zeigen nachfolgend die Einrichtung des Servers und der Clients. Die Inbetriebnahme als Docker-Container ist ebenfalls möglich. Alle Pakete sind direkt auf der schon erwähnte Downloadseite zu finden. Generell lohnt sich, bei der Einrichtung und Verwaltung die Dokumentation [3] zu nutzen.
Wir konzentrieren uns nachfolgend auf die kostenlose OSSEC-Version 3.7.0. Die Installation erfolgt in diesem Fall auf Ubuntu 22.04. Nach der obligatorischen Aktualisierung von Linux erfolgt die Installation der notwendigen Voraussetzungen:
Nach dem Start des Installationsskripts besteht der nächste Schritt darin, die Sprache auszuwählen, in der Sie OSSEC installieren wollen. Englisch ist vorausgewählt und da deutsche Übersetzungen in den meisten Fällen leider nicht so gelungen sind, kann es sinnvoll sein, die Oberfläche in englischer Sprache zu installieren.
Umgebung nach Installation anpassen
Danach können Sie über den Assistenten die Installation anpassen. Die Auswahl "Server" installiert den ersten OSSEC-Server im Netzwerk, an den Sie später weitere Agenten anbinden können, die Sie wiederum auf Linux, Windows oder macOS aufbringen. Im Anschluss wählen Sie das Installationsverzeichnis aus, der Standard lautet "var/ossec".
Auch das Aktivieren von E-Mail-Benachrichtigungen erledigen Sie bereits jetzt. Dafür geben Sie eine E-Mail-Adresse an, die das System für das Versenden von E-Mails nutzen soll. In vielen Fällen erkennt das System den SMTP-Server, Sie können die Konfiguration aber jederzeit anpassen. Den Integrity Check Daemon sollten Sie in jedem Fall mit einspielen. Auch dieser ist bereits ausgewählt, das Gleiche gilt für die Rootkit Detection Engine.
Active Response sollten Sie im Rahmen der Einrichtung ebenfalls mit an Bord holen. Diese Funktion ermöglicht das Ausführen von vorgegebenen Befehlen auf der Grundlage der empfangenen Ereignisse. Sie können zum Beispiel eine IP-Adresse blockieren oder den Zugang für einen bestimmten Benutzer sperren. Sinnvoll ist es im nächsten Schritt, die Firewall-Drop-Response einzuschalten. Diese erlaubt OSSEC, wenn es einen Angreifer erkennt, den Host in iptables (Linux) oder in ipfilter (Solaris, FreeBSD oder NetBSD) zu blockieren. Sie können dadurch Brute-Force-Scans, Portscans und einige andere Formen von Angriffen abwehren.
Im Anschluss haben Sie die Option, IP-Adressen zu Whitelists hinzufügen, wenn OSSEC die Kommunikation dieser IP-Adressen nicht prüfen und blockieren soll. Remote-Syslog über den UDP-Port 514 sollten Sie ebenfalls aktivieren, damit das System Protokolldateien zu Syslog-Servern senden kann. Haben Sie die Auswahl getroffen, installiert der Assistent OSSEC entsprechend. Am Ende der Installation erhalten Sie die Information "Configuration finished properly".
OSSEC-Server konfigurieren
Im nächsten Schritt schneiden Sie OSSEC an Ihre Anforderungen zu. Das erfolgt über die Konfigurationsdatei "/var/ossec/ etc/ossec.conf", die Sie zum Beispiel mit "nano" bearbeiten:
sudo nano /var/ossec/etc/ossec.conf
Dies erlaubt zum Beispiel, die E-Mail-Konfiguration anzupassen. Es kann sinnvoll sein, wie im Listing 1 gezeigt, im global-Abschnitt die IP-Adressen der Dienste und Clients zu integrieren.
Listing 1: IP-Adressen in OSSEC-Konfigurationsdatei hinterlegen
<global>
<allow_list>127.0.0.1</allow_list>
<allow_list>::1</allow_list>
<allow_list>localhost.localdomain</allow_list>
<allow_list>127.0.0.53
<allow_list>10.0.0.2</allow_list>
<!-- OSSEC client → >
</global>
Um die Syslogs von den verschiedenen OSSEC-Agenten einzulesen, ist es notwendig, dass in der Konfigurationsdatei bei "<remote>" die IP-Adressen der Clients integriert sind und die Verbindung als "secure" definiert ist, zum Beispiel in dieser Form:
Erkennt OSSEC einen Angriff, der von einer IP-Adresse ausgeht, blockiert das System diese für zehn Minuten. Gehen dann von der IP-Adresse weitere verdächtige Pakete aus, kann OSSEC diese als "repeated offender" (Wiederholungstäter) erkennen und bei weiteren mutmaßlichen Angriffen länger sperren. Das lässt sich in der Konfigurationsdatei "/var/ossec/ etc/ossec.conf" im active-response-Abschnitt definieren, zum Beispiel mit:
Dieses Beispiel sperrt potenzielle Angreifer bei jedem neuen Versuch jeweils länger. Bei Änderungen in der Konfigurationsdatei müssen Sie OSSEC neu starten.
Agenten anbinden
Damit OSSEC Informationen von Computern im Netzwerk erfassen kann, ist der beste Weg, Agenten zu installieren. Für Windows steht ein Client auf der Download-Seite zur Verfügung, der sich in der grafischen Oberfläche installieren lässt. Die Anbindung von Linux-Rechnern gestaltet sich etwas umständlicher, ist aber ebenfalls schnell abgeschlossen.
Um den Agenten auf einem Windows-Server in Betrieb zu nehmen, erfolgt zunächst die Installation, die sich problemlos scripten lässt. Die Verbindung mit OSSEC erfolgt danach mit dem "OSSEC Agent Manager". Dort müssen Sie die IP-Adresse oder den Namen des OSSEC-Servers eintragen und den Authentication-Key für die Verbindung. Diesen erstellen Sie wiederum auf dem OSSEC-Server. Wichtig ist an dieser Stelle, dass Sie die IP-Adressen der Clients in der OSSEC-Konfigurationsdatei auf dem Server eintragen, wie zuvor beschrieben.
Um die Agenten auf dem Server zu verwalten oder Authentication Keys zu erstellen, starten Sie auf dem Server das Verwaltungsprogramm mit:
sudo /var/ossec/bin/manage_agents
Die Installation des Linux-Agenten läuft im Grunde genommen genauso ab wie die Installation des OSSEC-Servers. Bei der Auswahl der Installationsvariante wählen Sie aber nicht "server", sondern "agent". Danach erscheint ein Assistent, nit dem Sie den Agenten genauso einrichten wie den Server. Sie legen das Installationsverzeichnis fest, geben den Namen des OSSEC-Servers an und aktivieren den Integrity Check Daemon, die Rootkit Detection Engine und Active Response. Auf Linux-Rechnern konfigurieren Sie den Agenten ebenfalls über die Datei "/var/ossec/etc/ossec.conf". Wichtig ist an dieser Stelle, im Abschnitt "<ossec_config>" bei "<client> -> <server-ip>" die IP-Adresse des Servers anzugeben.
In der Verwaltung der angebundenen Clients können Sie zunächst eine Liste der verbundenen Computer anzeigen und den Authentifizierungsschlüssel erstellen, den die Clients für die Anbindung benötigen. Bei Windows-Clients nutzen Sie dazu das Einrichtungsfenster, unter Linux starten Sie das gleiche Tool wie auf dem Server mit
sudo /var/ossec/bin/manage_agents
Im Anschluss können Sie mit der Auswahl von "I" den Authentifizierungscode im Terminal eingeben. Generell ist es nach der Integration von Clients sinnvoll, den Server und den Client neu zu starten. Dazu nutzen Sie auf den Geräten:
/var/ossec/bin/ossec-control restart
Ob sich ein Linux-Client erfolgreich verbunden hat, sehen Sie mit:
sudo /var/ossec/bin/agent_control -lc
Klappen die Verbindungen zwischen Clients und Servern nicht, liegt es meistens an den Einstellungen der Firewall auf dem Server. Achten Sie darauf, dass diese die Kommunikation zwischen Server und Clients nicht blockiert, insbesondere die Ports 1514 und 514. Außerdem muss in der OSSEC-Konfigurationsdatei die sichere Kommunikation mit dem Server erlaubt sein. Die Konfiguration dazu zeigt Listing 2.
Listing 2: Sichere Kommunikation mit dem Server
<global>
<allow_list>10.0.0.2</allow_list>
<!-- OSSEC client → >
</global>
<remote>
<connection>secure</connetion>
<allowed-ips>10.0.0.2</allowed-ips>
<!-- OSSEC client → >
</remote>
Fazit
OSSEC ist ein mächtiges Tool, das Malware und Cyberangriffe erkennen und bekämpfen kann. Der Betrieb ist über eine VM möglich, physische Hardware ist dazu keine notwendig. Neben der Benachrichtigung per E-Mail kann OSSEC Aktionen durchführen und für die Kommunikation Slack nutzen – die Dokumentation des Projekts bietet dazu zahlreiche Hilfen.
Neben der kostenlosen OSSEC-Version kann es sinnvoll sein, OSSEC+, zu testen. Allerdings ist dazu eine Registrierung notwendig und in vielen Fällen reicht OSSEC vollkommen aus.