Arbeitet ein Linux-System als Server, und sei es nur ein Raspberry Pi, so helfen automatisierte Scanner dabei, Sicherheitslücken und Konfigurationsfehler auf dem System zu finden, bevor es jemand anderes in böser Absicht tut.
Linux-Systeme gelten mit gutem Grund als besonders sicher, denn um den Kernel kümmern sich mehr als tausend Entwickler und designierte Sicherheitsexperten. In gut aufgestellten Linux-Distributionen für Serverzwecke wie etwa Debian, Ubuntu, Cent-OS und Open Suse steht Sicherheit auch weit oben auf der Liste der Prioritäten. Und dennoch: Ein Linux-System kann nur so sicher sein, wie seine Administration es zulässt. Veraltete Softwarepakete mit Sicherheitslücken, Konfigurationsfehler und zu einfache Passwörter reißen Löcher, welche die Sicherheit des Systems oder gar eines gesamten Netzwerks gefährden. Das gilt auch für kleine Heimserver, die hinter einer Portweiterleitung des DSL-Routers offen für das Internet laufen. Solche Systeme sind für Hacker oder Cyberkriminelle keine primären Ziele, können aber nach einer erfolgreichen Übernahme zu Angriffen auf andere Server im Internet dienen.
Automatische Suche nach Lücken
Einfach darauf zu hoffen, wegen wechselnden IP-Adressen, untypischen Ports für Serverdienste oder obskuren Domainnamen unentdeckt zu bleiben, ist keine gute Strategie. Auch Server am heimischen DSL-Anschluss werden täglich Dutzende Male nach offenen Ports und verwundbaren Diensten abgesucht. Dahinter stehen automatisierte Scans, die ganze IP-Bereiche routinemäßig absuchen.
Solche automatisierten Scanner helfen aber nicht nur den Angreifern, sondern auch uns als Heim- oder Firmenadministratoren. Für Linux-Server bieten sich eine Reihe von Tools an, die das System auf bekannte Lücken und problematische Einstellungen absucht. Die hier vorgestellten Scanner Lynis, Traitor und Linpeas arbeiten nur auf dem System, das getestet werden soll. Es handelt sich um eine Innenansicht eines Linux-Systems und nicht um einen Scan über das Netzwerk.
Lynis: Ausgewählte Tests
Vom Entwickler des Rootkit-Scanners Rkhunter stammt das Open-Source-Werkzeug Lynis, das komplett als Shell-Script geschrieben ist. Dieses Tool war das erste seiner Art, das in der LinuxWelt schon vor einigen Jahren zur Sprache kam.
Seitdem hat sich bei Lynis viel getan und auch die Syntax hat sich geändert, weshalb jetzt eine Neubetrachtung anliegt. Je nachdem, welche Serverdienste auf einem System aktiv sind, wählt Lynis die passenden Tests aus seiner Datenbank aus und liefert eine englischsprachige Auswertung in seiner Logdatei. Viele Distributionen bieten Lynis in ihren Paketquellen zur Installation an, aber dabei handelt es sich oft um veraltete Versionen.
Es ist besser, Lynis direkt in seiner aktuellen Ausgabe von der Entwicklerwebseite
(https://git.io/lynis) bei Github zu holen:
git clone https://github.com/CISOfy/lynis
Dann geht es mit
cd lynis
ins angelegte Verzeichnis, wo dann der Befehl
sudo chown -R 0:0 *
den Scripts die benötigten Berechtigungen gibt und das Kommando
sudo ./lynis audit system
das Tool mit root-Privilegien startet. Lynis zeigt den Fortschritt und Warnungen im Terminalfenster an. Nach dem Abschluss des Testlaufs präsentiert Lynis Empfehlungen zur Absicherung des Systems sowie URLs mit Hintergrundinformationen.
Hinweis: Die Warnung zu „systemd-analyze security“ kann man ignorieren. Denn es geht bei dieser Testreihe nur um optionale Sandbox-Funktionen von Systemd, welche Linux-Distributionen in ihrer Standardkonfiguration nicht nutzen.

Linpeas: Gut erklärter Rundumschlag
Einen sehr ausführlichen Check, der auch kleineren Verdachtsmomenten nachgeht und diese protokolliert, führt das Shell-Script Linpeas durch (https://github.com/carlospolop/PEASS-ng/tree/master/linPEAS) Die Ergebnisse sind ob ihrer Fülle eher für Fortgeschrittene interessant. Zwar gibt es eine grobe Einschätzung der Schwere eines gefunden Problems, aber es braucht tieferes Know-how, um diese zu bewerten. Linpeas sucht beispielsweise nach unsicheren Zugriffsrechten, verräterischen Dateien, aber auch nach Schlüsselwörtern wie „password“ und „username“ in Konfigurations- und Webserver-Dateien. Dies ist selten ein Problem, sofern nicht alle Welt Zugriffsrechte auf die jeweilige Datei hat. Der Download des Scripts erfolgt mit dem Kommando
wget -O linpeas.sh https://git.io/JOnrv
und
sh linpeas.sh
startet das Script. Privilegien per „sudo“ sind nicht nötig. Die Ausgabe erfolgt im Terminal und Warnungen sind mit Farben hinterlegt: Rote Schrift auf gelbem Hintergrund markiert in jedem Fall eine Sicherheitslücke, während andere Warnungen rot sind. Zu den meisten Warnungen gibt es eine URL, hinter der sich eine (englischsprachige) Erklärung steckt.
Traitor: Einbruch über Binarys
Auf die Ausnutzung von ausführbaren Binarys, über die sich root-Rechte erlangen lassen, hat sich das neuere Tool Traitor spezialisiert (englisch „Verräter“). Diese Lücken werden von Programmen gerissen, deren Datei das SUID-Bit gesetzt haben, also in einem anderen Benutzerkontext wie root laufen, obwohl sie sich von allen Anwendern starten lassen.
Frisch installierte Linux-Distributionen werden keine ausführbaren Programme mit falsch gesetzten SUID-Bits mitliefern, aber auf eilig zusammengezimmerten Cloudinstanzen kann dies durchaus vorkommen. Darüber hinaus klopft Traitor Docker auf Sicherheitslücken und Ausbruchsmöglichkeiten ab, wenn es in einem Docker-Container aufgerufen wird.
Traitor ist in Go geschrieben und liegt als fertig kompiliertes Programm für 32 und 64 Bit sowie für ARM-Prozessoren (64 Bit) auf der Github-Webseite des Entwicklers zum Download vor (https://git.io/JenHd). Nach dem Download der passenden Version macht
chmod +x traitor-amd64
die Datei ausführbar und
./traitor-amd64 -a
ruft das Tool im Benutzerkontext ohne root-Privilegien auf. Die Ausgabe erfolgt im Terminal, wobei Traitor selbständig versucht, potenzielle Lücken auszunutzen, um eine root-Shell zu öffnen.

Zusätzliche Info: Logwatch: Wie oft werde ich angegriffen?
Eine schnell eingerichtete automatische Auswertung von Logdateien, die Angriffsmuster über das Netzwerk zeigt, liefert das Programm Logwatch. Es erstellt täglich einen Bericht über ungewöhnliche Vorkommnisse auf dem System. Auf Servern mit einem Mailserver (Postfix, Sendmail, Exim2) kann es den Bericht auch per Mail senden. Soll ein Benutzer wie root auf dem System die Zusammenfassung im lokalen Postfach erhalten, so genügt dazu auch ein lokaler Mailserver ohne Verbindung zu einem anderen SMTP-Server im Internet.
Debian, Raspbian, Ubuntu, Fedora, Open Suse und Arch bieten das Paket „logwatch“ in ihren Paketquellen. In Debian & Co. wird es beispielsweise mit
sudo apt install logwatch
installiert. Das Kommando
sudo logwatch
präsentiert im Terminal eine Übersicht zu Ereignissen. Erkannte Scans und SSH-Angriffe sind ganz oben aufgelistet.

