M 2.438 Sicherer Einsatz externer Programme auf einem Samba-Server
Verantwortlich für Initiierung: IT-Sicherheitsbeauftragter, Leiter IT
Verantwortlich für Umsetzung: Administrator
Viele Funktionen, wie das Anlegen eines neuen Benutzers im Unix System oder die Abfrage von Druckerstatusinformationen, sind nicht in Samba implementiert.
Samba nutzt zur Realisierung dieser Funktionen Programme des Systems, auf dem es installiert ist. Um beispielsweise einen neuen Benutzer im Unix System anzulegen, ruft Samba das über den Parameter "add user script" spezifizierte Programm auf. Alle Konfigurationsparameter, die Samba für den Aufruf externer Programme nutzt, enden auf die folgenden Zeichenketten:
- command
- script
- exec
- panic action
- program
In Samba 3 gibt es ungefähr 40 solcher Konfigurationsparameter. Mit dem Kommando:
testparm -vs | grep -E "(command =)|(script =)|(exec =)|\ (panic action =)|(program =)" | wc -l
kann die genaue Anzahl der Konfigurationsparameter für die momentan eingesetzte Samba-Version angezeigt werden. Falls Samba zur Kommunikation mit dem Drucksystem das Common Unix Printing System (CUPS) Application Programming Interface (API) nutzt, ist standardmäßig keiner dieser Parameter gesetzt, beziehungsweise wird keiner dieser Parameter verwendet. Ob Samba mit der CUPS-Bibliothek übersetzt und verlinkt wurde, kann mit folgendem Kommando überprüft werden:
root# ldd $(which smbd) | grep 'libcups'
Nutzt Samba nicht das CUPS API zur Kommunikation mit Druckern, so werden, je nach Wert des Konfigurationsparameters "printing" in der Konfigurationsdatei "smb.conf", einige der drucksystemspezifischen Konfigurationsparameter mit Standardwerten vorbelegt. Folgende Konfigurationsparameter sind davon betroffen:
- print command
- lpq command
- lprm command
- lppause command
- lpresume command
- queuepause command
- queueresume command
Viele, der über solche Konfigurationsparameter spezifizierten externen Programme, werden von Samba mit Root Rechten ausgeführt. Es ist daher sicherzustellen, dass nur Programme, die keine schadhafte Funktion besitzen, von Samba aufgerufen werden.
Mit dem Kommando
user> testparm -vs | grep -E "(command =)|(script =)|(exec =)|\ (panic action =)|(program =)"
werden alle Parameter ausgegeben, die für die Einbindung externer Programme in Samba verantwortlich sind. Zusätzlich zu den Parametern werden die momentan gültigen Werte angezeigt.
Prüffragen:
-
Werden externe Programme auf schadhafte Funktionen überprüft, bevor diese Programme in Samba eingebunden werden?