Host for Services Mainframe-Sicherheit als SOA-Fundament

Ordnungsmerkmale

erschienen in: <kes> 2007#4, Seite 16

Rubrik: Systeme und ihr Umfeld

Schlagwort: Serviceorientierte Architekturen

Zusammenfassung: Serviceorientierte Architekturen (SOA) können in erheblichem Maße von bewährten Mainframe-Eigenschaften profitieren. Das erfordert allerdings neue Sicherheitsbetrachtungen, die idealerweise systemübergreifend zu implementieren sind.

Autor: Von Georg Lauer, Darmstadt

Der oft schon totgesagte Mainframe erlebt gerade seine x-te Renaissance. Das kommt nicht von ungefähr, denn mit seiner beinahe sprichwörtlichen Zuverlässigkeit und der Fähigkeit, quasi gleichzeitig zigtausende von Anfragen zu bedienen, kann er das stabile und zuverlässige Fundament für eine serviceorientierte Architektur (SOA) bilden, deren Aufbau in vielen Unternehmen zumindest angedacht wird. Der Mainframe bietet dabei weitere Vorteile, weil darauf beispielsweise auch ganze Linux-Serverfarmen konsolidiert und deren Services ohne großen Middleware- und Netzwerk-Overhead verknüpft werden können.

Notwendig ist dafür allerdings ein völlig neuer Ansatz im Security-Management (vgl. Kasten "Vertrauensdienste"), um die sich öffnenden IT-Systeme effizient zu schützen. Dabei könnte ein spezielles SOA-Security-Managementsystem als unabhängige Instanz helfen, alle Sicherheitsregeln des Unternehmens in der gesamten SOA – inklusive des Mainframe – zu kontrollieren und gleichzeitig die drei Hauptaufgaben der Zugriffskontrolle zu übernehmen (Autorisierung, Authentifizierung und Auditing).

Eine solche unabhängige Instanz ist sinnvoll, da ansonsten in der SOA sämtliche Bausteine "vertrauenswürdig" gemacht und ihre Verbindungen untereinander nach außen völlig abgeschirmt werden müssten. Das ist nicht nur im Mainframe-Umfeld schwierig, wo die Anwendungen einerseits in der Regel ausschließlich auf die Nutzung durch autorisierte Mitarbeiter des Unternehmens ausgelegt sind, andererseits aber trotz der Einbindung in die neue SOA-Welt nicht verändert werden sollen.

Um diese Wiederverwertbarkeit zu gewährleisten, sind heute verschiedene Ansätze verbreitet. Beim so genannten "Wrapping", umhüllt eine Middleware-Schicht die Mainframe-Applikationen, um Programmfunktionen daraus zu extrahieren und dann in Services zu transformieren. Diese wiederum können dann über moderne Software-Tools für das Business-Process-Management (BPM), aber auch durch Workflow- oder Rule-Engines (evtl. ergänzt um fehlende Sicherheitsmechanismen) zu neuen Anwendungen kombiniert werden.

Hinter SOA verbirgt sich letzlich immer ein Gestaltungsprinzip, das Applikationen nach Maß aus einem Bündel lose gekoppelter Services erstellt, die über standardisierte Schnittstellen kommunizieren. Entsprechend ergänzt, können darin auch die berühmt-berüchtigten "Anwendungs-Silos" eingebunden werden, die dem Mainframe das kontraproduktive Image eingetragen haben, starr und inflexibel zu sein. Genau hier setzt SOA den Hebel an: Es eröffnet altbewährten Mainframe-Anwendungen neue Einsatzfelder und stellt umgekehrt für neue Anwendungen ausgereifte Mainframe-Funktionen mit hoher Leistungsfähigkeit und in einem zeitgemäßen Look bereit.

----------Anfang Textkasten----------

Vertrauens-Dienste

Die Dienste einer serviceorientierten Architektur (SOA) benötigen Sicherheit. Die Sicherheitsfunktionen einer SOA müssen dazu selbst dem SOA-Paradigma folgen, wollen sie nicht der versprochenen Flexibilität entgegenstehen; aus diesem Grund ist es empfehlenswert, sie selbst als Dienst zu implementieren. In der Regel wird dabei das Konzept der dokumentenbasierten Föderation herangezogen, um domänenübergreifende Autorisierungsdienste für verknüpfte oder verschachtelte Webservices zu implementieren.

Ein Einkäufer der Firma A löst beispielsweise in seiner Anwendung einen Auftrag per HTML-Formular an das Einkaufsportal eines Geschäftspartners aus. Dieses Einkaufsportal agiert jedoch nur als Zwischenhändler, der zur Bearbeitung automatisch die Webservices eines Rechnungsdienstes und eines Lieferungsdienstes nutzt.

Hierzu könnte ein XML-Agent des Security Managers im Einkaufsportal den Benutzer anhand der konfigurierten Benutzerverzeichnisse authentifizieren. Bei vorliegender Autorisation sendet der Webservice "Lieferung" dann eine SOAP-Nachricht (Simple Object Access Protocol) mit dem Versandstatus an den Webservice "Einkauf". Zusätzlich kann im Rahmen eines so genannten Holder-of-Key-Szenarios ein allgemeiner Token-Dienst (WS-Trust) integriert werden: Dabei signiert die Anwendung des Nutzers dessen Anfrage und schickt das Anwenderpasswort/Ticket zu einem vertrauenswürdigen Token-Service. Nach erfolgreicher Authentifizierung generiert dieser die SAML Assertion für den Nutzer, signiert diese und schickt sie als SAML-Token an die Anwendung des Nutzers zurück.

In dem skizzierten Fallbeispiel könnte die Anwendung ohne weiteren Nutzereingriff das SAML-Token in einen WS-Security-Header als Teil eines SOAP-Requests einfügen und diesen an den Webservice des Lieferanten schicken. Dort werden die SAML-Assertion (Token) und die Signatur des Nutzers im Inhalt der Nachricht daraufhin überprüft, ob beispielsweise das Token tatsächlich von einem "Trusted Partner" ausgegeben wurde und ob die Signatur des anfordernden Webservices im Inhalt der Nachricht im Nutzerverzeichnis existiert.

Der Einbezug von WS-Trust ermöglicht dabei, die Prüflogik an eine zentrale Stelle (z. B. auf einen Mainframe) zu verlagern und die Webservices selbst weitgehend unabhängig von der sicherheitstechnischen Implementierung zu halten. Etwaige Änderungen haben dann nur minimalen Einfluss auf den eigentlichen Anwendungscode.

----------Ende Textkasten----------

Neue Chancen, neue Risiken

Erkauft wird dieser Flexibilitätsgewinn mit neuen Risiken. Denn in einer SOA können neben unternehmenseigenen IT-Services gegebenenfalls auch Komponenten externer Anbieter oder "Funktionsbausteine" von Lieferanten oder Kunden zum Einsatz kommen, für deren Sicherheit der IT-Chef vielleicht nicht immer die Hand ins Feuer legen würde. Nutzer sind unter Umständen nicht nur Mitarbeiter des Unternehmens, sondern auch Geschäftspartner und womöglich sogar Interessenten, Bewerber und andere Webservices, im Zweifelsfall sogar unwillkommene Gäste wie Hacker oder Industriespione. Außerdem bleibt offen, wo genau ein Service betrieben wird: Auf dem "sicheren" Mainframe oder einem anderen Rechner des Unternehmens, bei einem Dienstleister oder Geschäftspartner oder gar auf einem Desktop-PC des Users.

Dazu gesellen sich neuartige Sicherheits- und Ablauf-Risiken, zum Beispiel ein unerwartetes Verhalten von Webservices im Zusammenspiel. Selbst scheinbar simple Fragen, beispielsweise ob einzelne Webservices tatsächlich vorhanden sind, mit welcher Performance sie laufen und wie sicher sie sind, lassen sich nur auf Basis eines integrativen Managements beantworten. Eine ganze Palette von Angriffen ist vorstellbar: von der einfachen Dienstunterbrechung und Verzögerung bis hin zur Datenverfälschung und -löschung oder dem Mitlesen sensitiver Informationen. Und ein kleiner Programmierfehler, der beispielsweise einen Webservice in eine Endlosschleife schickt, könnte eine Denial-of-Service-"Attacke" auslösen, wenn darin permanent andere Webservices aufgerufen werden.

Deshalb arbeiten führende Softwareanbieter für das Enterprise-IT- und -Security-Management intensiv an der Ausarbeitung, Formulierung und Durchsetzung entsprechender Standards mit, die den Betrieb einer SOA vereinfachen und vereinheitlichen – ja, letztlich sogar erst ermöglichen: Mit Standards wie dem Service-Discovery-Protokoll "Universal Description, Discovery and Integration" (UDDI, [1]) oder der Web Service Definition Language (WSDL, [2]) lassen sich Webservices nicht nur nutzen und kombinieren, sondern auch umfassend steuern, verwalten und sichern. Ergänzend treibt die Organization for the Advancement of Structured Information Standards (OASIS) aktiv den Standard "Web Services Distributed Management" (WSdM) voran [3].

Standardisierung

Für die nötige Sicherheit wollen ergänzend auch verschiedene Standardisierungs-Initiativen sorgen, die nicht zuletzt das Identitätsmanagement sowie die Zugriffskontrolle regeln. Vielversprechend ist hier vor allem die so genannte Identity Federation (vgl. [4,5]) für den sicheren Austausch digitaler Identitäten beziehungsweise entsprechender zweckgebundener Nutzungsrechte zwischen den verschiedenen teilnehmenden Stellen. Letztlich kann damit eine mehrmalige Anmeldung von Usern während einer Transaktion überflüssig werden, auch wenn unterschiedliche Systeme beteiligt sind. Mithilfe von Techniken wie Single Sign-on (SSO) kann das sogar gelingen, wenn diese Systeme nur sporadisch oder gar erstmalig zusammenarbeiten.

Im SOA-Rahmen kann so die traditionell sehr dezentrale "Siloverwaltung" der Identitäten durch teilauthentifizierte Services abgelöst werden. Das kann sogar auf Basis der Sicherheitsmechanismen erfolgen, wie sie auf dem Mainframe mit Tools wie RACF von IBM oder ACF2 und Top-Secret von CA in den letzten zwanzig Jahren ausgetüftelt worden sind. Der Host bietet sich damit als vertrauenswürdiger Träger des Benutzerverzeichnisses an, in dem die Identitäten der User ebenso verwaltet werden wie ihre Zugriffsrechte.

Daneben ist allerdings zu beachten, dass im SOA-Betrieb nicht nur die Sicherheitsprobleme der auch schon komplizierten vertikalen Integration zwischen den Schichten der lokalen Software-Architektur zu lösen sind. Darüber hinaus entstehen mit SOA neue, komplexe Service-Prozessketten, die nicht mehr unter einer einheitlichen Verwaltung und Kontrolle stehen. Dennoch muss über eine Kette von Intermediären und Webservices zwischen den beteiligten Parteien ein hinreichend guter Sicherheitskontext aufrechterhalten werden (vgl. [4]).

Gefragt ist daher ein Web-Sicherheitsmodell mit vermaschter Struktur – ein Netzwerk von "Objekten" wie Webservices und Anwendern, die auf mehreren Wegen miteinander verbunden sein können. Diese Struktur eines vermaschten Netzwerks (Mesh Network), die auch bei Funknetzen und Weitverkehrsnetzen (Wide Area Networks – WAN) anzutreffen ist, verspricht den Vorteil, dass bei Unterbrechungen zwischen einzelnen Knoten oder bei Performance-Engpässen alternative Wege für die Kommunikation benutzt werden können. Die Web-Objekte können sich in einer föderativen, vernetzten Umgebung finden, miteinander verhandeln, sich an- und abmelden; insbesondere ist dazu keine permanente Verbindung zwischen ihnen mehr erforderlich.

----------Anfang Textkasten----------

Sicherheit für SOA

Eine auf SOA ausgerichtete Sicherheitsarchitektur sollte zwei grundlegenden Anforderungen genügen: Einerseits müssen lokale Sicherheitsbedürfnisse und lokal geltende Sicherheitsregeln weiterhin gelten. Zum anderen sind föderierte, geschäftlich und vertraglich verbundene Einheiten so zu integrieren, dass unter Beibehaltung aller lokalen Sicherheitsanforderungen auch die notwendige Ende-zu-Ende-Sicherheit gewährleistet wird.

Mit anderen Worten: Vertraulichkeit, Integritätsschutz, Verfügbarkeit und Verbindlichkeit müssen sowohl intern als auch extern garantiert werden. Neben dem sicheren Transport sollte die Sicherheitsarchitektur daher föderative Methoden des Identitäts- und Zugangs-Managements unterstützen, um eine Sicherheitsdomänen-übergreifende Zusammenarbeit für Anwender und Services herzustellen.

[Illustration]
Im Sicherheitskonzept zu bedenken: Die bunte Schar der Anwender – Mitarbeiter, Kunden, Lieferanten oder Interessenten – greift auf Web-Dienste zu, die auch außerhalb des Unternehmens entwickelt und betrieben werden können.

Die notwendigen Industriestandards für den hierzu nötigen Austausch von Identitätsinformationen zwischen den Domänen einer Föderation definiert der Standard der Security Assertion Markup Language (SAML) in der aktuellen Version 2.0 [6]. Ebenso wichtig sind in diesem Zusammenhang die Protokolle, die den Austausch von Security-Informationen betreffen: Vertraulichkeit und Integrität des Nachrichtenaustauschs zwischen Web-Services realisieren dabei vor allem die vom World Wide Web Consortium (W3C) formulierten Verfahren XML Encryption und XML Signature. Ersteres liefert eine Syntax für die selektive Verschlüsselung und Dekodierung von XML-Dokumenten (bei Web-Services von SOAP-Nachrichten) – und eine XML Signature sichert darüber hinaus die Integrität der Nachricht sowie die Urheberschaft von Informationen. Einen derartigen Austausch gibt es in Bezug auf die Ressourcen (Assets) und Personen, aber auch die Organisationsstrukturen und die Sicherheitsbestimmungen (Policies) der beteiligten Unternehmen.

Ergänzend lassen sich in Identity Federations auch Zuordnungen und Abbildungen treffen, etwa von Ressourcen auf Abteilungen oder Personen (Eigentümer), von Policies auf Organisationseinheiten (Gültigkeitsbereiche) oder von Nutzern auf Organisationseinheiten (Rollen). So können beispielsweise allen Mitarbeitern in der Rolle "Einkäufer" bestimmte Rechte eingeräumt werden, was den Aufbau von Identity Federations wesentlich erleichtert.

Mit Blick auf die Unterstützung föderativer Szenarien bieten gängige Sicherheitsverfahren wie Secure Sockets Layer (SSL) oder das Secure Hypertext Transfer Protocol (HTTPS) bestenfalls einen rudimentären Schutz, da sie nur den Transportweg zwischen den Services schützen, nicht aber die Nachrichten selbst; zudem wird ausschließlich eine Punkt-zu-Punkt-Verbindung behandelt. In SOA-geprägten Infrastrukturen, die vom Einbezug diverser Zwischenstationen (Intermediaries) sowie einer mehrstufigen Webservices-Bearbeitung gekennzeichnet sind, müssen demgegenüber die sicherheitsrelevanten Fragen der Autorisierung, Authentifizierung, Integrität und Vertraulichkeit zusätzlich auf Nachrichtenebene behandelt werden.

WS-Security legt hier mit seinen grundlegenden Funktionen das Fundament für eine Ende-zu-Ende-Sicherheit im Rahmen der verschlüsselten SOAP-Kommunikation. Hierzu wird das SOAP-Dokument um eine Art Behälter ergänzt, der festschreibt, wo genau in einer Web-Service-Schnittstellendefinition Sicherheitsinformationen wie Signatur- und Verschlüsselungs-Header untergebracht sind. Dabei unterstützt WS-Security mehrere Wege, um so genannte Security-Token als Identitätsbeweis zu nutzen: unter anderem Kerberos-Tickets, X.509-Zertifikate, SAML-Assertions, Rights-Expression-Language-Token (Dokumente in Extensible Rights Markup Language – XrML) oder das XML Common Biometric Format (XCBF).

----------Ende Textkasten----------

Sicherheit als Service

Der SOA-Idee folgend lassen sich auch Sicherheitsleistungen zum Teil durch zentrale Server-Plattformen (z. B. auf dem Mainframe) betreiben und ihrerseits als Dienst anfordern. Die notwendige Koordination kann über einen so genannten Enterprise Service Bus (ESB) erfolgen, der auch die Orchestrierung und das Routing der Services innerhalb einer SOA verantwortet.

Die Bereitstellung solcher Sicherheitsservices allein reicht jedoch nicht aus. Um die Sicherheitsbestimmungen zu überwachen und gegebenenfalls auch durchzusetzen, ist eine Kontrollinstanz wie das eingangs erwähnte (SOA-)Security-Managementsystem notwendig. Ein solches System könnte dabei zwischen den unterschiedlichen Sicherheitsanforderungen in drei Regionen unterscheiden:

Föderative Security-Policies

Im Endeffekt sollte das letztlich zu einem zentralisierten, aber dennoch föderativen Management von Security-Policies für ausnahmslos alle Webservices führen – inklusive eines entsprechenden Berichtswesens – und auch für Fälle, in denen die Anforderungen so unterschiedlich sind wie das Single Sign-on über ein Portal oder die Verkettung mehrerer Webservices zur Bedienung einer Anfrage.

So könnte beispielsweise ein Bankkunde am Portal nicht nur Überweisungen tätigen oder den Kontostand abfragen, sobald er sich einmal erfolgreich identifiziert hat. Er könnte dann auch eine Kreditkarte beantragen, wobei dieser Prozess durchaus bei einem partnerschaftlich mit der Bank verbundenen Kreditkartenunternehmen ablaufen könnte, das über Identity Federation mit den entsprechenden Informationen versorgt wird. Dabei könnten im Hintergrund beliebig verschachtelt weitere Webservices auch auf einem Mainframe angestoßen werden, etwa zur Prüfung der Kreditwürdigkeit.

Das Ergebnis ist (wie im genannten Beispiel) nicht nur eine bessere und längere Nutzung bewährter Mainframe-Anwendungen, sondern auch ein wesentlich geringeres Projektrisiko und eine deutliche Zeit- und Kostenersparnis bei der Erweiterung und Modernisierung der IT-Unterstützung – vorausgesetzt, die skizzierten Sicherheitsmaßnahmen werden effektiv in die Praxis umgesetzt.

Georg Lauer ist Regional Manager Technology Services bei CA.

Literatur

[1]
Organization for the Advancement of Structured Information Standards (OASIS), Universal Description, Discovery and Integration (UDDI), [externer Link] www.oasis-open.org/committees/uddi-spec/
[2]
World Wide Web Consortium (W3C), Web Services Description Language (WSDL), [externer Link] www.w3.org/TR/wsdl
[3]
OASIS, Web Services Distributed Management (WSDM), [externer Link] www.oasis-open.org/committees/wsdm
[4]
Sebastian Rohr, Vertrauensverbund, Standards zur Identity Federation, <kes> 2006#6, S. 38
[5]
Angelika Steinacker, Identity- und Access-Management, Bestandsaufnahme, Entwicklung und Empfehlungen, <kes> 2007#3, S. 15
[6]
OASIS, Security Assertion Markup Language (SAML), [externer Link] http://docs.oasis-open.org/security/saml/v2.0/