Linux

CIS Hardening Helper-Serie von Mondoo - Teil 1

Bei dem Versuch, verschiedene Linux-Systeme so abzusichern, dass sie den Benchmarks des Center for Internet Security (CIS) entsprechen, stoßen Systemadministratoren häufig auf zwei häufig auftretende Probleme. Die CIS-Benchmarks sind Standards für die sichere Konfiguration eines Systems. Sie werden weithin als bewährte Methoden zur Absicherung von Systemen gegen Cyberbedrohungen verwendet.

Dauerhafte Deaktivierung voneinander abhängiger Dienste und Dienstabhängigkeiten

Viele CIS-Benchmarks kontrollieren, ob ein bestimmter Dienst „deaktiviert“ ist und/oder „nicht läuft“. Ein wichtiges Beispiel ist die Kontrolle „Stellen Sie sicher, dass CUPS nicht aktiviert ist“ aus dem 'CIS Debian Linux 10 Benchmark'.

Nach dem Korrekturverfahren können Sie versuchen, den Dienst mit dem folgenden Befehl zu deaktivieren:

  systemctl --now disable cups.service

Dieser Befehl sollte sofort das beenden Tassen Dienst und verhindern Sie auch, dass er beim Booten neu gestartet wird. Jedoch Tassen ist eine nachgelagerte Abhängigkeit des Dienstes Tassen durchsucht, das nicht deaktiviert ist. Folglich Tassen kann nach einem Neustart neu gestartet werden. Um solche Abhängigkeiten zu finden, können Sie den folgenden Befehl verwenden:

systemctl --reverse list-dependencies cups.service

Um sicherzustellen, dass deaktivierte Dienste nicht unerwartet neu gestartet werden, können Sie einen Dienst zusätzlich zur Deaktivierung mit dem folgenden Befehl maskieren:

 systemctl mask cups.service

Durch das Maskieren eines Dienstes wird er für andere Dienste unsichtbar, wodurch das Problem effektiv gelöst wird.

Find and fix the security risks that pose the biggest threat to your business.

Warum sollten Sie verwenden treffende Säuberung statt geeignet entfernen

Fast alle CIS-Benchmarks erfordern das Entfernen des einen oder anderen Softwarepakets. Für Debian-basierte Distributionen wird der APT-Paketmanager verwendet, und in älteren CIS-Benchmarks (Debian 8/9, Ubuntu 14.04 oder der CIS Distribution Independent Linux Benchmark) schlägt das Korrekturverfahren vor, ein Paket mit dem folgenden Befehl zu entfernen:

apt remove <package>

Oder

apt-get remove <package>

Neuere CIS-Benchmarks wurden jedoch ersetzt apt-get entfernen mit treffende Säuberung.

apt purge <package>

Ein weit verbreitetes Missverständnis ist, dass apt-get entfernen löscht alle potenziell schädlichen Dateien und bewahrt nur die Konfiguration des Softwarepakets für eine mögliche zukünftige Verwendung auf. Manchmal enthalten nicht die Binärdateien selbst Sicherheitslücken, sondern auch die zusätzlichen Dateien, die mit dem Softwarepaket installiert wurden. Zum Beispiel die NTP-Sicherheitslücke CVE-2016-0727, ist eine Sicherheitslücke im Cronjob, der dem Paket beiliegt. APT-Softwarepakete ermöglichen es dem Paketbetreuer, festzulegen, welche Dateien gelöscht oder aufbewahrt werden sollen, falls das Paket entfernt wird geeignet entfernen. Daher besteht die einzige Möglichkeit, sicher zu sein, dass alle anfälligen Teile eines APT-Softwarepakets von einem System gelöscht wurden, darin, treffende Säuberung Befehl.

Wenn Sie ein Paket entfernen mit geeignet entfernen, es wird immer noch als installiert angezeigt cnspec Abfragen:

cnspec screenshot

Das liegt daran, dass unter der Haube cnspec überprüft den Paketstatus in /var/lib/dpkg/status oder /var/lib/dpkg/status.d.

1. Lass uns benutzen cnspec um zu überprüfen, ob das Paket Vorlink ist auf unserem Ubuntu 22.04-Testsystem installiert und verwendet cnspec shell local --sudo.

cnspec>  package("prelink").installed == false[failed] package.installed == false  expected: == false  actual:   true

2. Jetzt entfernen wir das Paket mit geeignet entfernen

.

vagrant@vagrant:~$ sudo apt remove prelink

3. Wenn Sie dieselbe Abfrage wie oben ausführen, um den Installationsstatus zu überprüfen, wird angezeigt, dass es immer noch als installiert gilt:

cnspec> package("prelink").installed == false
[failed] package.installed == false  
expected: == false  
actual:   true

Der Paketstatus in /var/lib/dpkg/status lautet wie folgt:

Package: prelinkStatus: deinstall ok config-filesPriority: optional

4. Jetzt verwenden wir treffende Säuberung um das zu entfernen Vorlink Paket komplett:

vagrant@vagrant:~$ sudo apt purge prelink

Jetzt das Paket Vorlink wurde entfernt von /var/lib/dpkg/status.

5. Die folgende cnspec-Abfrage bestätigt die erfolgreiche Deinstallation:

cnspec> package("prelink").installed == false
[ok] value: false

Abschließend verwenden Sie immer treffende Säuberung um Pakete zu entfernen, um eine korrekte Abhärtung Ihrer Debian-basierten Systeme sicherzustellen.

Manuel Weber

Manuel, Sicherheitsingenieur bei Mondoo, ist begeistert davon, Wege zu finden, Computersysteme sicherer zu machen. Bevor er zu Mondoo kam, arbeitete er als Pentester und überprüfte eine Vielzahl von Computersystemen (Webanwendungen, mobile Apps, ICS und andere) auf Sicherheitslücken und Fehlkonfigurationen. In seiner Freizeit hebt Manuel schwere Dinge, unternimmt mehrtägige Wanderungen und kocht gerne.

You might also like

Vergleiche
Mondoo gegen Tenable — Zehn Möglichkeiten, Tenable-Alternativen zu vergleichen
Sanierung
Wie wir unser Risiko in weniger als drei Stunden um 54% reduziert haben
Sanierung
Branchenweit erste Priorisierung von Problembehebungen unter Berücksichtigung der Auswirkungen und des Aufwands