next up previous contents index
Nächste Seite: NFS - Network File Aufwärts: Probleme und Gefahren durch Vorherige Seite: BGP Border-Gateway-Protokoll RFC 1771   Inhalt   Index


RPC-Dienste - Remote Procedure Call

Eines der ersten RPC-Protokolle wurde von Sun Microsystems entwickelt und bildet die Grundlage für weitere Dienste (z.B. NFS,NIS). Durch dieses Protokoll ist es möglich, Anwendungen auf mehrere Rechner zu verteilen. Ein Client schickt eine Nachricht an einen Server. Der Server führt daraufhin den entsprechenden RPC-Dienst aus und schickt dem Cliente seine Antwort. Damit RCP über UDP oder TCP laufen kann, müssen die RPC-Service-Nummern in die entsprechenden UPD- bzw. TCP-Portnummern übersetzt werden. Diese Aufgabe übernimmt der portmapper (oder auch rpcbind). Der Portmapper-Server ist der einzige RPC-Server, dessen UDP- bzw. TCP-Port festgelegt ist. Ihm wurde die Portnummer 111 zugewiesen [BIF-96].

Die Bedrohungen, die von RPC ausgehen, hängen stark mit den Anwendungen zusammen, die auf RPC basieren. Clienten, die einen RPC-Server nutzen, müssen sich gegenüber dem Server authentisieren, damit dieser entscheiden kann, welche Zugriffsrechte für den jeweiligen Client angewendet werden müssen. Viele UNIX Impelmentierungen von RCP nutzen dazu AUTH_UNIX, d.h., jeder RPC-Request enthält die Uid und Gruppennummern des Users, der die Anfrage an der Server stellt. Diese Informationen sind leicht zu fälschen und deshalb ist dies eine unsichere Authentisierungsmethode. Sicherer ist es, Secure RPC zu verwenden. Dabei werden die Daten verschlüsselt durch DES (Data Encryption Standard) übertragen. Leider ist dieses Verfahren nicht stark genug, um auch gegen versierte Angreifer ausreichend Schutz zu bieten, da der verwendete DES-Algorithmus nur 56-bit-Schlüssel verwendet2.7. Daten, die mit dieser Schlüssellänge verschlüsselt worden sind, können durch Ausprobieren (brute-force-Angriff) mit einem leistungsstarken PC entschlüsselt werden. [PUIS]
Eine weitere Schwachstelle ist der oben schon erwähnte Portmapper. Der Portmapper hat einen Aufruf zum Abmelden von Diensten. Dieser kann für Denial-of-Service-Attacken mißbraucht werden. Darüberhinaus kann man den Portmapper-Server dazu veranlassen, daß er Informationen über die angebotenen Dienste preisgibt. Diese sind meist eine extrem nützliche Planungshilfe für weitere Angriffe. In Tabelle 2.4 ist der Inhalt einer Portmapper-Tabelle zu sehen. In ihr steht, welche Dienste mit welchen Versionsnummern angeboten werden und auf welchen Portnummern sie zu finden sind. Viele Portnummern sind größer als 1024! 2.8


Tabelle 2.4: Portmapper-Tabelle, Quelle: [FSI-96],S. 41
program vers proto port  
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100029 1 udp 656 keyserv
100026 1 udp 729 bootparam
100021 1 tcp 735 nlockmgr
100021 1 udp 1029 nlockmgr
100021 3 tcp 739 nlockmgr
100021 3 udp 1030 nlockmgr
100020 2 udp 1031 llcockmgr
100020 2 tcp 744 llockmgr
100021 2 tcp 747 nlockmgr
100021 2 udp 1032 nlockmgr
100024 1 udp 733 status
100024 1 tcp 736 status
100011 1 udp 3739 rquotad
100001 2 udp 3740 rstatd
100001 3 udp 3740 rstatd
100001 4 udp 3740 rstatd
100002 1 udp 3741 rusersd
100002 2 udp 3741 rusersd
100012 1 udp 3742 sprayd
100008 1 udp 3743 walld
100068 2 udp 3744  


Das größte Problem des portmapper ist aber seine Fähigkeit, indirekte RPC-Aufrufe zu ermöglichen. Um den Aufwand einer Anfrage nach der tatsächlichen Port-Nummer, der Antwort und dem eigentlichen RPC-Aufruf zu vermindern, kann der Client den portmapper beauftragen, den RPC-Aufruf an den gewünschten Server weiterzuleiten. Diese weitergeleitete Nachricht trägt aber notwendigerweise die Quelladresse des portmapper. Damit wird es den Applikationen unmöglich, diesen Auftrag von echten lokalen Aufträgen zu unterscheiden und dessen Vertrauenswürdigkeit angemessen zu beurteilen [FSI-96].



Unterabschnitte
next up previous contents index
Nächste Seite: NFS - Network File Aufwärts: Probleme und Gefahren durch Vorherige Seite: BGP Border-Gateway-Protokoll RFC 1771   Inhalt   Index
Klaus Bauer 1999-10-20