Im Rahmen der Anwendungsentwicklung sollte der produzierte Code laufend geprüft werden, um so ein hohes Qualitäts- und Sicherheitsniveau sicherzustellen. Dabei unterstützen Code Review Tools. Sie helfen Anwendern, frühzeitig in der Entwicklung Fehler zu identifizieren, zu beseitigen und damit die Softwarequalität zu verbessern. Was sich in der Finanzbranche bereits zu etablieren scheint, kann auch in anderen Industrien helfen, die eigene Softwareproduktion zu verbessern.
Banken-IT bedeutet oft über Jahre gewachsene und komplexe Systemlandschaften. Dazu kommt, dass die Finanzinstitute in der Regel zahlreiche Eigenentwicklungen einsetzen. Die damit verbundenen Anforderungen sind hoch. Schließlich gilt es, eine hohe Softwarequalität sicherzustellen und die Systeme vor Manipulation zu schützen. Die entsprechenden Vorgaben für die Anwendungsentwicklung sind in den sogenannten "Bankaufsichtlichen Anforderungen an die IT" (BAIT) formuliert, die die Bundesanstalt für Finanzdienstleistungsaufsicht (BaFin) 2017 veröffentlicht hat. Ziel war es, "den Geschäftsleitungen der Institute die Erwartungen der Bankenaufsicht hinsichtlich der sicheren Ausgestaltung der IT-Systeme sowie der zugehörigen Prozesse transparent zu machen."
Im Regelwerk der BAIT werden klar die Anforderungen an die Anwendungsentwicklung formuliert und mit der Untersuchung des Quellcodes ein möglicher Lösungsweg genannt:
Satz 36: "Für die Anwendungsentwicklung sind angemessene Prozesse festzulegen, die Vorgaben zur Anforderungsermittlung, zum Entwicklungsziel, zur (technischen) Umsetzung (einschließlich Programmierrichtlinien), zur Qualitätssicherung, sowie zu Test, Abnahme und Freigabe enthalten. Anwendungsentwicklung umfasst beispielsweise die Entwicklung von Software zur Unterstützung bankfachlicher Prozesse oder die von Endbenutzern in den Fachbereichen selbst entwickelten Anwendungen (zum Beispiel Individuelle Datenverarbeitung - IDV). Die Ausgestaltung der Prozesse erfolgt risikoorientiert."
Satz 39: "Im Rahmen der Anwendungsentwicklung müssen Vorkehrungen getroffen werden, die erkennen lassen, ob eine Anwendung versehentlich geändert oder absichtlich manipuliert wurde. Eine geeignete Vorkehrung unter Berücksichtigung des Schutzbedarfs kann die Überprüfung des Quellcodes im Rahmen der Anwendungsentwicklung sein. Die Überprüfung des Quellcodes [Code Review] ist eine methodische Untersuchung zur Identifizierung von Risiken."
Mehr SAP-Sicherheit mit Code Review
Trotz der Anforderungen an die Softwarequalität gemäß BAIT, potenzieller Sanktionen und Risiken bei Softwarefehlern oder Manipulation setzen sich viele Banken immer noch zu wenig mit dem Code ihrer Eigenentwicklungen auseinander. Oft scheint der Aufwand zu groß. Dazu erweisen sich über Jahre gewachsene organisatorische Strukturen als Hemmschuh. Die Herausforderung besteht meist darin, den Verantwortlichen und betroffenen Mitarbeitern in der IT und den Fachabteilungen die Notwendigkeit klar zu machen, Akzeptanz für einen neuen Weg in der Anwendungsentwicklung zu schaffen und damit langjährig bestehende Strukturen aufzubrechen.
Dabei lassen sich die Anforderungen hinsichtlich qualitätvoller und sicherer Software mit einem sogenannten Code Review im Grunde gut erfüllen. Hierbei wird der Quellcode laufend geprüft, um frühzeitig in der Entwicklung Fehler zu identifizieren, zu beseitigen und damit die Softwarequalität zu verbessern beziehungsweise zu sichern. Dazu kommt: Fehler, die im bereits im Review auffallen, können häufig bedeutend kostengünstiger behoben werden, als wenn diese erst während der Tests nach Abschluss der Softwareentwicklung gefunden werden. Keine Aufsichtsbehörde verlangt explizit den Code Review, aber das Ergebnis muss stimmen: eine sichere Software!
Weitere nützliche Informationen rund um das Thema Coding finden Sie hier:
Was braucht es dafür? Code Review bedeutet, dass die IT den Code prüft. Er muss in Ordnung sein, beziehungsweise die Software muss funktionieren. Dafür gibt es bewährte Tools, die beim Code Review zum Einsatz kommen und einen Großteil der Arbeit übernehmen. Aufgrund der Komplexität der meisten Eigenentwicklungen führt an einem Code Review und dem Einsatz eines entsprechenden Tools für die systematische und vollständige Überprüfung kein Weg vorbei. Ein möglicher Ad-Hoc-Review, in dem Kollegen in regelmäßigen Abständen den Code im Mehraugenprinzip prüfen, reicht nicht aus. Die Qualität einer solchen Prüfung hängt von verschiedenen Faktoren wie Know-how, Blickwinkel und der verfügbaren Zeit ab - und unterliegt damit kaum einschätzbaren Schwankungen.
Die derzeit am Markt verfügbaren Tools für den Code Review rund um bankspezifische Eigenentwicklungen in SAP-Systemlandschaften sind in ihrer Funktionsweise ähnlich. Hier haben sich zwei Werkzeuge besonders für die Analyse kundeneigener Entwicklungen bewährt. Beide lassen sich gut in die bestehende Entwicklungsumgebung sowie den Entwicklungsprozess integrieren:
der SAP Code Vulnerability Analyzer (CVA) der SAP SE sowie der
Code Profiler for ABAP der Firma Virtual Forge GmbH.
Bei beiden Werkzeugen handelt es sich um Code-Scanner für ABAP-Eigenentwicklungen. Die Kostenspanne liegt dabei - je nach Anforderung - zwischen etwa 15.000 bis zu 200.000 Euro. Lizenz und Wartung des SAP-Tools CVA sind mit einem Hauptvertrag bei SAP schon abgedeckt.
Die Tools bieten zahlreiche, automatisierte Prüfungen an, die je nach Bedarf ausgewählt und eingestellt werden können. Es handelt sich dabei um prioritäre Prüfungssets beispielsweise im Hinblick auf Sicherheit und Compliance sowie sekundäre Prüfungen mit Blick auf Bereiche wie zum Beispiel Performance, Wartbarkeit und Robustheit.
Wichtig dabei ist, dass es einen Verantwortlichen gibt, der die Hoheit über den Software-basierten Code Review innehat. Er wählt die Prüfungssets aus, setzt die Prioritäten, macht entsprechende Vorgaben für die Entwickler und verantwortet die Code Quality. Dabei kann diese Rolle als Schnittstelle zwischen den Entwicklern, dem Management und der Informationssicherheit verstanden werden.
SAP: Umgang mit Altbefunden und Berechtigungen
Soll die Software schon in der Anwendungsentwicklung dauerhaft reibungslos funktionieren, müssen zunächst alle über das Tool identifizierten Altbefunde in den bestehenden Eigenentwicklungen bearbeitet werden. Ansonsten steht das System jedes Mal still, wenn es an die entsprechenden Code-Stellen kommt. Um jedoch keine wertvolle Zeit zu verlieren, bietet es sich als eine bessere Alternative an, die Altbefunde vorläufig zu akzeptieren und dann parallel in Extraprojekten schrittweise zu beheben.
In den Code Review Tools sind Checks auf fehlende oder inkonsistente Berechtigungsprüfungen ein wesentlicher Bestandteil, um die Daten vor dem Zugriff Unberechtigter zu schützen. Daneben gibt es auch das zentrale Berechtigungsmanagement mit technischen und fachlichen Rollen sowie in der Vergabe in der Regel mit einem Vieraugenprinzip. Zusammen mit dem Berechtigungsmanagement muss eine ganzheitliche Sicht auf die Vergabe von Berechtigungen zur Sicherung des Gesamtsystems entstehen.
Eine einzelne Auswertung zu schützen reicht nicht aus, wenn aus der Historie heraus Unberechtigte zum Beispiel Berechtigungen für die Tabellenanzeige oder den SAP QuickViewer haben (beides SAP-Standard-Transaktionen). Der Abgleich dieser Beziehung und Wechselwirkung zueinander ist sehr aufwändig. Es ist nahezu unmöglich alle Sicherheitslücken zu schließen. Was aber möglich ist: Werden über den Code Review Sicherheitslücken in den Berechtigungen gefunden, lassen sich gleichzeitig Empfehlungen für das zentrale Berechtigungsmanagement aussprechen.
Software-basierter Code Review hilft Anwendern dabei, die BAIT-Regeln im Hinblick auf die Anwendungsentwicklung zu erfüllen. Oberstes Ziel ist dabei, möglichst sichere, manipulationsfreie und gut wartbare Software zu produzieren. Zu Beginn ist damit sicherlich ein größerer Arbeitsaufwand verbunden, um das Tool einzuführen, sich damit vertraut zu machen sowie für die Bereinigungsphase der Altbefunde. Nach dieser anfänglichen Hürde ist der Mehrwert aber entsprechend groß. Weitere Vorteile im Überblick:
In den IT-Abteilungen wird zusätzliches Know-how durch die Problemlösung bei wiederkehrenden Befunden und das Ausarbeiten von Best-Practice-Ansätzen für einheitliche, wiederverwendbare Lösungen aufgebaut. Diese sollten in die Architekturvorgaben aufgenommen werden, damit Korrekturen von Befunden nach stets dem gleichen Schema erfolgen.
Der Wissensaustausch und das Teilen von Information intensivieren sich durch die mit dem Code Review neu geschaffenen Verantwortlichkeiten und Prozesse. Es ist damit nicht mehr möglich, dass das Wissen über den Code eines Programms bei nur einer Person liegt. Dies ist insbesondere dann kritisch, wenn die Verantwortlichkeit von historisch gewachsener Software für sensible Bereiche wie zum Beispiel Risiko-Controlling oder Meldewesen bei nur einem Mitarbeiter liegt.
Und nicht zuletzt erhöht sich die Reaktionsfähigkeit in der laufenden Entwicklung - Fehler sind über Altbefunde sowie über die Best-Practice-Lösungen bekannt und lassen sich schnell korrigieren beziehungsweise von Anfang an vermeiden. (ba)