Bundesamt für Sicherheit in der Informationstechnik

M 5.168 Sichere Anbindung von Hintergrundsystemen an Webanwendungen und Web-Services

Verantwortlich für Initiierung: Verantwortliche der einzelnen Anwendungen, Leiter IT

Verantwortlich für Umsetzung: Administrator

Webanwendungen und Web-Services verwenden häufig Hintergrundsysteme, zum Beispiel für die Datenhaltung in einer Datenbank oder für die Authentisierung durch einen Identitätsspeicher. Die Daten sind auch bei der Übermittlung und Speicherung in Hintergrundsystemen ausreichend zu schützen. Dazu müssen die Hintergrundsysteme sicher an die Webanwendung oder den Web-Service angebunden sein.

Typische Hintergrundsysteme von Webanwendungen und Web-Services sind:

  • Datenbanken,
  • Verzeichnisdienste,
  • Middleware,
  • Web-Services und
  • Legacy-Systeme.

Zur sicheren Anbindung von Hintergrundsystemen sollten folgende Punkte beachtet werden:

Platzierung von und Zugriff auf die Hintergrundsysteme

Die Benutzer der Webanwendung beziehungsweise Aufrufer des Web-Service sollten nicht direkt auf die Hintergrundsysteme zugreifen können, da so gegebenenfalls Schutzmaßnahmen umgangen werden. Stattdessen sollte der Zugriff ausschließlich über vordefinierte Schnittstellen und Funktionen der Webanwendung oder des Web-Service möglich sein.

Darüber hinaus sollte bei hohem Schutzbedarf die Verbindung zu den Hintergrundsystemen zusätzlich geschützt werden. Hierzu sollten sich die Systeme vor der Datenübertragung authentisieren und die übertragenen Daten verschlüsseln, sodass sie nicht unbemerkt mitgelesen oder geändert werden können (zum Beispiel mittels SSL / TLS ; siehe auch M 5.66 Clientseitige Verwendung von SSL/TLS und M 5.177 Serverseitige Verwendung von SSL/TLS ).

Werden die beteiligten IT-Systeme über unsichere Kanäle angebunden, so sollte in jedem Fall ein kryptographisch abgesicherter Tunnel mit entsprechender Verschlüsselung und Authentisierung verwendet werden.

Zugriffe auf Hintergrundsysteme sollten mit minimalen Rechten erfolgen. Hierfür sollten Dienstekonten auf dem jeweiligen Hintergrundsystem eingerichtet werden.

Wird für den Zugriff auf ein Hintergrundsystem ein einziges Dienstekonto verwendet, werden alle Anfragen im Sicherheitskontext dieses Dienstekontos bearbeitet. Dies gilt dann sowohl für Zugriffe von Benutzern mit eingeschränkten Zugriffsberechtigungen als auch für die Zugriffe administrativer Benutzer. Um dies zu verhindern, sollten mehrere Dienstekonten mit unterschiedlichen Zugriffsrechten für ein Hintergrundsystem verwendet werden.

Bei einer geeigneten Systemumgebung (zum Beispiel bei der Verwendung eines Verzeichnisdienstes, der sowohl von der Webanwendung als auch für das Hintergrundsystem zur Verwaltung der Benutzer verwendet wird) können die Benutzerkonten an das Hintergrundsystem weitergeleitet werden. Auf diese Weise können die Privilegien auf die notwendigen Rechte des jeweils an der Webanwendung angemeldeten Benutzers limitiert werden.

Es ist darauf zu achten, dass für unauthentisierte Zugriffe auf die Webanwendung ein eigenes Dienstekonto im Verzeichnisdienst mit eingeschränkten Berechtigungen verwendet wird.

Enterprise Service Bus

Im Kontext sogenannter Service-Orientierter Architekturen ( SOA ) werden Webanwendungen und Web-Services häufig über einen Enterprise Service Bus ( ESB ) als zentrale Kommunikationsinfrastruktur an Hintergrundsysteme angebunden. Dadurch wird erreicht, dass für jede Anwendung jeweils nur die Schnittstelle zum ESB definiert und realisiert werden muss, und nicht viele separate Schnittstellen zu anderen Anwendungen und Diensten. In einem eigenen Verzeichnis ("Repository") speichert der ESB Metainformationen über die angeschlossenen Dienste.

Zusätzlich kann der ESB auch zentrale Sicherheitsfunktionen realisieren, um die angeschlossenen Anwendungen weiter zu schützen. Solche Sicherheitsfunktionen können beispielsweise Replay-Attacken erkennen und abwehren oder XML-Daten auf potenziell schädliche Inhalte prüfen, aber auch den Nachrichtenaustausch zentral und revisionssicher protokollieren.

Beim Einsatz eines ESB muss sichergestellt werden, dass sich alle Dienste gegenüber dem ESB authentisieren, bevor ihnen ein Zugriff erlaubt wird. Dies gilt auch für Zugriffe auf das ESB -Repository. Der ESB muss so in die Netzarchitektur integriert werden, dass ein Zugriff nur von den Servern der angeschlossenen Anwendungen und Dienste möglich ist und ein Zugriff von außen auf den ESB ausgeschlossen wird. Dazu sollte der ESB ein eigenes logisches Netzsegment erhalten.

Der ESB muss eine eigene Berechtigungsprüfung durchführen, um zu prüfen, ob ein Zugriff auf den angefragten Dienst durch den anfragenden Dienst beziehungsweise die anfragende Anwendung zulässig ist. Dabei muss insbesondere sicher ausgeschlossen werden, dass Anwendungen oder Dienste mit Außenkontakt auf interne Dienste zugreifen, die dafür nicht vorgesehen sind. Solche Anwendungen dürfen auch nicht über das ESB -Repository Kenntnis von internen Diensten und ihren Schnittstellen erlangen.

Sofern die service-orientierte Architektur mehrere Sicherheitsdomänen umspannt, zum Beispiel eine DMZ mit extern aufrufbaren Services und ein internes Netz mit Backend-Systemen, so muss auch der ESB in entsprechende Sicherheitsdomänen mit kontrollierten Übergängen aufgeteilt werden, oder es müssen mehrere ESB für die einzelnen Sicherheitszonen realisiert werden.

Sofern der ESB nicht ausschließlich lokal in einem geschützten RZ-Netz kommuniziert, muss die Kommunikation zwischen ESB und den angeschlossenen Anwendungen geeignet gesichert werden (Authentisierung und Verschlüsselung).

Durch die Bündelung der Kommunikation vieler Anwendungen und Dienste kommt der Verfügbarkeit des ESB eine besondere Bedeutung zu. Dies ist bei der Realisierung und beim Betrieb des ESB entsprechend durch Redundanzen und eine geeignete Überwachung des Dienstes zu berücksichtigen.

Prüffragen:

  • Ist der Zugriff auf Hintergrundsysteme von Webanwendungen oder Web-Services ausschließlich über definierte Schnittstellen und von definierten Systemen aus möglich?

  • Wird der Datenverkehr zwischen den Benutzern und der Webanwendung beziehungsweise den Anwendungen, Web-Services und weiteren Diensten sowie den Hintergrundsystemen durch Sicherheitsgateways (Firewalls) reglementiert?

  • Werden die Verbindungen zwischen Webanwendungen oder Web-Services und Hintergrundsystemen bei hohem Schutzbedarf durch eine Transportverschlüsselung geschützt?

  • Ist sichergestellt, dass Anfragen der Webanwendung oder des Web-Service an Hintergrundsysteme nur mit minimalen Rechten auf diesen ausgeführt werden?

  • Ist beim Einsatz eines ESB ein eigenes logisches Netzsegment für den ESB vorgesehen? Ist der Zugriff auf den ESB ausschließlich durch die angeschlossenen Anwendungen und Dienste möglich?

  • Ist eine Segmentierung nach Zonen entsprechend den vorhandenen Sicherheitsdomänen im ESB durchgehalten, nötigenfalls bis hin zur Auftrennung in mehrere ESB ?

  • Werden alle Zugriffe auf den ESB authentisiert und bei der Kommunikation über Standort- und Netzgrenzen hinweg ausreichend gesichert/verschlüsselt?

  • Sind bei der Realisierung und beim Betrieb des ESB geeignete Maßnahmen zur Sicherstellung einer angemessenen Verfügbarkeit umgesetzt?

Stand: 14. EL Stand 2014