Bundesamt für Sicherheit in der Informationstechnik

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?

Stand: 11. EL Stand 2009