Bundesamt für Sicherheit in der Informationstechnik

M 5.35 Einsatz der Sicherheitsmechanismen von UUCP

Verantwortlich für Initiierung: Administrator, IT-Sicherheitsbeauftragter

Verantwortlich für Umsetzung: Administrator

Das im Standardumfang von Unix-Systemen enthaltene und ebenfalls für andere Betriebssysteme verfügbare Programmpaket UUCP (Unix-to-Unix Copy) erlaubt den Datenaustausch zwischen IT-Systemen und die Ausführung von Kommandos auf entfernten IT-Systemen. Voraussetzung ist lediglich die Kompatibilität der uucico-Programme auf den beiden beteiligten Systemen. UUCP ist stark verbreitet, auch wenn seine Bedeutung zurückgegangen ist z.B. durch die Möglichkeit, Rechner über ISDN mittels TCP/IP zu verbinden.

UUCP wird in der Regel zum Austausch von E-Mail und News zwischen Rechnern benutzt (uucp). Es ermöglicht auch das Einloggen (cu) und das Ausführen von Programmen (uux) auf fremden Rechnern.

Es gibt verschiedene UUCP-Varianten: Neben der Implementation von Peter Honeyman, David Nowitz und Brian E. Redman von 1983 (HoneyDanBer UUCP) werden auch häufig das ursprüngliche UUCP-System der AT&T UNIX Version 7, dessen zweite Version aktuell ist (diese UUCP-Implementation wird daher auch Version 2 UUCP genannt) oder das Tahoe-UUCP (das mit BSD 4.3 ausgeliefert wurde) eingesetzt.

Die eingesetzte UUCP-Variante kann an den Dateien im Verzeichnis /usr/lib/uucp (auf einigen Systemen /etc/uucp) erkannt werden: Bei Version 2 UUCP findet sich hier die Datei L.sys, beim HoneyDanBer UUCP die Datei Systems.

Version 2 UUCP hat gravierende Sicherheitsprobleme (Fehler in uucico, Gefahr fehlerhafter Konfiguration durch die komplizierte Form der sicherheitsrelevanten Administrationsdateien). Sie sollte daher nicht benutzt werden, stattdessen sollte das HoneyDanBer UUCP eingesetzt werden.

Allgemein sollten folgende Sicherheitsfragen beim Einsatz von UUCP bedacht werden:

  • Die Administration von UUCP setzt eine intensive Beschäftigung mit den Konfigurationsmöglichkeiten und den zugehörigen Dateien voraus. Es muss berücksichtigt werden, dass es zwischen den UUCP-Paketen der verschiedenen Unix-Derivate Abweichungen geben kann, auch wenn diese auf dem HoneyDanBer UUCP basieren.
  • Für die Administration der UUCP-Dateien, -Programme und -Verzeichnisse gelten dieselben Anforderungen wie für die Administration von Systemdateien und -verzeichnissen (siehe M 2.25 Dokumentation der Systemkonfiguration , M 2.31 Dokumentation der zugelassenen Benutzer und Rechteprofile , M 4.19 Restriktive Attributvergabe bei Unix-Systemdateien und -verzeichnissen ).
  • Auf den meisten Systemen gibt es einen Benutzer namens uucp. Diesem Benutzer gehören die UUCP-Dateien, -Programme und -Verzeichnisse. Es ist sicherzustellen, dass dieser Account ein Passwort gemäß den Vorgaben der Maßnahme M 2.11 Regelung des Passwortgebrauchs hat.
    Das Heimatverzeichnis für den Benutzer uucp darf nicht das öffentliche Verzeichnis /usr/spool/uucppublic sein, sondern ein eigenes, auf das nur der Benutzer uucp Zugriff hat.
  • Für jedes IT-System, das sich per UUCP am lokalen IT-System anmelden können soll, muss in der /etc/passwd eine eigene Benutzer-Kennung und ein Passwort eingetragen werden. Als UID darf nicht die des Benutzers uucp gewählt werden, sondern für jedes entfernte IT-System eine beliebige individuelle UID.
  • UUCP-Passwörter werden bei Kommunikationsanforderungen unverschlüsselt übertragen und sind in der entsprechenden UUCP-Konfigurationsdatei für Anforderungen an entfernte Rechner unverschlüsselt gespeichert. Je nach Anwendung und Umgebung (insbesondere bei Benutzung von Weitverkehrsnetzen) sind entsprechende Sicherheitsmaßnahmen wie z. B. der Einsatz von Einmalpasswörtern zu ergreifen.

Für die Benutzung von UUCP müssen verschiedene Konfigurationsdateien eingerichtet werden. Alle Einstellungen sollten dokumentiert und Abweichungen der im Folgenden vorgeschlagenen Einstellungen kurz begründet werden, damit später nachvollziehbar ist, wozu diese Änderung notwendig war.

Die Verwaltung der folgenden Dateien muss besonders sorgfältig gehandhabt werden, da sie sicherheitskritische Informationen enthalten. Sie befinden sich im Verzeichnis /usr/lib/uucp bzw. /etc/uucp). Auf diese Verzeichnisse darf nur der Benutzer uucp schreibenden Zugriff haben.

  • Systems: Diese Datei enthält die für einen Verbindungsaufbau mit entfernten IT-Systemen benötigten Informationen. Hier können für jedes einzelne IT-System die Zeiträume festgelegt werden, in denen die Übertragung per UUCP zugelassen ist. Diese Zeiträume sind möglichst eng zu fassen. Die Datei enthält außerdem die Telefonnummern und Login-Sequenzen der IT-Systeme, zu denen per UUCP eine Verbindung aufgebaut werden kann. Auf Systems darf nur der Eigentümer uucp lesenden Zugriff haben, da hier auch die Passwörter für die entfernten IT-Systeme eingetragen sind.
  • Permissions: Hier werden Zugriffsrechte für entfernte Systeme festgelegt. Bei Auslieferung sind in Permissions keine IT-Systeme eingetragen, d. h. über UUCP sind keine Zugriffe möglich. Für jeden Rechner, der anrufen und sich einloggen darf, und für jeden Rechner, der angerufen werden darf, müssen hier Einstellungen zur Festlegung der jeweilig notwendigen Zugriffsrechte und anderer Bedingungen vorgenommen werden. Die Zugriffsrechte für die IT-Systeme, die vom lokalen IT-System angerufen werden, werden unter den auf MACHINE folgenden Einträgen spezifiziert, die für die anrufenden IT-System unter den auf LOGNAME folgenden. Durch Ausnutzung dieser Konfigurationsmöglichkeiten kann die Sicherheit beachtlich erhöht werden.
    Mit dem Kommando uucheck -v sollten die in der Datei Permissions gesetzten Optionen regelmäßig überprüft werden. Die Optionen sollten wie folgt gesetzt sein:
    • REQUEST
      Diese Option sollte auf NO (Default-Wert) gesetzt sein, um entfernten Systemen das Lesen lokaler Dateien zu verbieten.
    • COMMANDS
      Hier darf auf keinen Fall ALL eingetragen sein, es dürfen nur die Kommandos zugelassen werden, die nötig sind wie rnews oder rmail. Die Kommandos sollen mit vollem Pfadnamen angegeben werden.
    • WRITE/READ
      Wenn diese Optionen nicht angegeben sind, ist der schreibende bzw. lesende Zugriff ausschließlich auf das Verzeichnis /usr/spool/uucppublic möglich.
      Falls hiermit Verzeichnisse angegeben werden, auf die zugegriffen werden darf, ist zu dokumentieren, auf welche und warum. Auf keinen Fall darf hier das Root-Verzeichnis oder das Verzeichnis, in dem sich die UUCP-Konfigurationsdateien befinden, eingetragen sein.
    • NOWRITE/NOREAD
      Hiermit werden Ausnahmen zu den mit WRITE/READ festgelegten Optionen festgelegt. Verzeichnisse mit sensitiven Inhalten sollten hier generell aufgeführt werden. Dann kann nicht dadurch, dass das Setzen von Restriktionen vergessen wird, von entfernten IT-Systemen auf solche Verzeichnisse zugegriffen werden, wenn darüberliegende Verzeichnisse über READ/WRITE freigegeben werden.
    • PUBDIR
      Hiermit kann statt /usr/spool/uucppublic ein anderes öffentliches UUCP-Verzeichnis angegeben werden. Bei UUCP-Kommunikation mit mehreren IT-Systemen sollte für jedes IT-System ein eigenes UUCP-Verzeichnis angegeben werden.
    • CALLBACK
      Wenn CALLBACK auf YES gesetzt ist, muss das lokale IT-System das anrufende IT-System zurückrufen, bevor ein Datenaustausch stattfinden kann. Dies macht natürlich nur für LOGNAME Einträge Sinn. Es sollte zwischen den Kommunikationspartnern abgesprochen sein, welche einen CALLBACK aktiviert.
    • MYNAME
      Wenn MYNAME=name gesetzt ist, identifiziert sich das lokale System beim Aufbau einer UUCP-Verbindung beim entfernten System nicht mit dem Rechnernamen, sondern mit name. Diese Möglichkeit sollte benutzt werden, um sich mit einem Namen identifizieren zu können, der nur speziell für diese Verbindung benutzt wird und daher nicht so leicht herausgefunden werden kann.
    • VALIDATE
      Wenn VALIDATE=namen gesetzt ist, können nur die unter namen aufgeführten IT-Systeme über die unter LOGNAME angegebenen Systemnamen eine Verbindung aufbauen. Bei dieser Option muss unbedingt ein Eintrag vorhanden sein, da sonst ein entferntes IT-System eine Maskerade durchführen könnte, indem über MYNAME ein anderer Rechnername vorgespiegelt wird.
    • SENDFILES
      Hier sollte die Voreinstellung (SENDFILE=CALL) beibehalten werden, da dann lokal in der Queue befindliche Aufträge nur nach extern übertragen werden, wenn das lokale IT-System die Verbindung aufgebaut hat.
  • Die Datei /usr/lib/uucp/remote.unknown des HoneyDanBer UUCP wird ausgeführt, wenn ein unbekanntes, also ein nicht in der Datei Systems eingetragenes IT-System einen Verbindungsaufbau versucht. Es protokolliert den Versuch und weist ihn ab. Wenn remote.unknown nicht ausführbar ist, geht das lokale IT-System auf alle Verbindungsanforderungen entfernter IT-Systeme ein. Es muss daher darauf geachtet werden, dass remote.unknown stets ausführbar ist. remote.unknown ist je nach Unix-System als ausführbares Shellskript oder als C-Programm realisiert. Falls remote.unknown auf dem lokalen IT-System als Shellskript realisiert ist, sollte es aus Sicherheitsgründen durch ein Programm ersetzt werden. Sonst besteht die Gefahr, dass ein anrufendes IT-System ein Kommando wie "cat < /etc/passwd" als Systemnamen einträgt, das dann zur Ausführung gelangen kann.
  • Für UUCP gibt es einige Cleanup-Shellskripte, die automatisch über den crontab-Dämon ausgeführt werden. Dies darf nicht von root initiiert werden, wie es auf vielen Systemen üblich ist, sondern muss durch den Benutzer uucp erfolgen.

Bei der Benutzung von UUCP werden automatisch verschiedene Protokollierungsdateien angelegt. Beim HoneyDanBer UUCP finden sich diese in Unterverzeichnissen von /usr/spool. Hier werden erfolgreiche und abgelehnte Verbindungsversuche festgehalten, die gesendeten und empfangenen Datenmengen, Fehlermeldungen und Datentransferstatistiken. Diese Protokollierungsdateien müssen regelmäßig ausgewertet werden (siehe auch M 4.25 Einsatz der Protokollierung im Unix-System ).

Prüffragen:

  • Werden die Sicherheitsmechanismen von uucp genutzt?

  • Entspricht das Sicherheitsniveau der Administration von uucp -Dateien, -Programmen und Verzeichnissen dem von Systemdateien und - verzeichnissen?

Stand: 13. EL Stand 2013