Software Assurance der Zukunft

Posted on 5 February 2011

Software Assurance wird definiert als das Maß an Gewissheit, dass eine Software frei ist von Sicherheitsschwachstellen, die entweder bewusst in die Software eingeplant oder unabsichtlich während des Softwareentwicklungsprozesses (Software Development Life Cycle, SDLC) eingefügt wurden, und dass die Software wie vorgesehen funktioniert.

Aktuelle Herausforderungen
Die große Bedeutung software-abhängiger Systeme in unserer Welt und die zahlreichen Risiken und Bedrohungen für diese Systeme, die von Einzelpersonen, Organisationen und Staaten ausgehen, verlangt nach Software, die frei von Schwachstellen ist und wie geplant funktioniert.

In der Vergangenheit haben Unternehmen und Behörden benötigte Software und Systemlösungen selbst entwickelt. Dabei konnten Softwaresicherheit und Assuranceanforderungen direkt im SDLC berücksichtigt werden. Da Unternehmen und Behörden immer mehr zu kommerziellen Standardprodukten und ausgelagerter Entwicklung von großen Systemen übergehen, hat sich der Ort der Kontrolle geändert. Da Software Assurance bereits während des SDLC berücksichtigt werden muss und nicht einfach wie ein Softwarepatch am Ende des SDLC aufgespielt werden kann, müssen die Auftraggeber bzw. Käufer überprüfen, wie ihre Vertragspartner Softwaresicherheit und Assuranceanforderungen während des SDLC umsetzen.

Kommerzielle Softwareanbieter reagieren normalerweise zuerst auf die Nachfrage des Marktes nach besseren und neuen Features und nach einer kürzeren Entwicklungszeit. In den meisten Fällen stellt der Käufer nur einen kleinen Teil der Kundenbasis eines Anbieters dar, hat daher wenig Marktmacht. Softwareanbieter spüren daher keinen wirklichen Druck vom Markt oder vom Käufer bei einer Auftragsentwicklung. Sicherheitsaspekte können als Erschwernisse bei der Implementierung gewünschter Features und Funktionalitäten wahrgenommen werden. Die Folge ist, dass Softwarehersteller und ihre Kunden den Wert von Sicherheit erst erkennen, wenn das Schlimmste bereits passiert ist. Dies muss sich ändern.

Ziele
Ein Software-Assurance-Programm, das die oben geschilderten aktuellen Herausforderungen meistern will, muss folgende Bestandteile aufweisen:

  • Risikomanagement der Softwarewertschöpfungskette: Eine abgesicherte Wertschöpfungskette (Supply Chain) für Software ist unabdingbar, da der Outsourcinganteil immer mehr ansteigt und sich dadurch zahlreiche Risikoquellen öffnen.
  • Überprüfungen und Kontrollen: Umfangreichere diagnostische Verfahren mit Mess- und Analysemethoden werden benötigt, um zuverlässige quantitative Informationen über die Softwaresicherheit zu liefern. Für das Fällen von risikobasierten Entscheidungen wird ein Regelwerk benötigt, das auf diesen Informationen zugreift. Aktuell angewandte Verfahren sind unausgereift und unzureichend für diese Zwecke.

Risikomanagement der Softwarewertschöpfungskette
Die Softwareentwicklung muss Sicherheitsrisiken, die durch manipulierbare Software entstehen können, explizit während des gesamten SDLC behandeln.

Neben physischer Sicherheit stellen Diebstahl des geistigen Eigentums, Produktfälschungen, unsichere Software von Herstellern mit niedrigen Sicherheitsstandards und Software, die absichtlich mit bösartigen Funktionen wie Keyloggern, logischen Bomben und versteckten Backdoors ausgestattet wurde, Risiken für die Wertschöpfungskette dar.

Leider jedoch sind viele Gesetze, Programme, Standards und Praktiken, die die IT- und Software-Sicherheit regeln, nicht ausgereift. Herkömmliche Prozesse konzentrieren sich auf die Infrastrukturkomponenten und nicht explizit auf die softwarebezogenen Sicherheitsrisiken. Eine erfolgreiche Risikominderung in der Softwarewertschöpfungskette muss folgende Herausforderungen bewältigen:

  • Komplexität der Wertschöpfungskette: Größte Herausforderung ist die Komplexität, die es erschwert, das Codeverhalten einer Software festzustellen und vorherzusagen. Dadurch wird bei sicherheitskritischen Anwendungen jegliche Software-Assurance-Aussage eingeschränkt.
  • Unzureichende Datenbasis für das Überprüfen von Software-Assurance-Aussagen: Die Softwarewertschöpfungskette leidet unter ungenügenden diagnostischen Verfahren und dem Fehlen allgemein anerkannter Standards, auf deren Basis Aussagen über die Software Assurance und Qualität von Produkten, Systemen und Diensten gemacht werden sollte. Daher ist heutzutage das wichtigste Entscheidungskriterium bei sicherheitskritischen Anwendungen der Standort des Herstellers. Kunden fehlt die Transparenz um bessere Entscheidungen zur Risikominimierung zu treffen. Das bedeutet allerdings auch, dass die einfache Bevorzugung heimischer Lieferanten/Hersteller nicht den Erwerb von sicheren Komponenten garantiert, da keine allgemein anerkannten Benchmarkingverfahren existieren, um die organisatorischen und technischen Fähigkeiten des Herstellers, sichere Produkte und Dienstleistungen entwickeln und liefern zu können, zu überprüfen.
  • Mangel an Kooperation: Das Absichern der Softwarewertschöpfungskette ist schwierig, wenn nicht alle Teilnehmer davon überzeugt sind, dass Software Assurance eine lohnenswerte Investition ihrer Zeit und Ressourcen darstellt.

Überprüfung von Software-Assurance-Aussagen
Das Risikomanagement für die Wertschöpfungskette beinhaltet sowohl Unternehmens- als auch Projektaspekte. Auf Unternehmensgebiet müssen Compliance, die sich stetig ändernde Bedrohungslandschaft und der Businesscase für Software Assurance berücksichtigt werden. Auf Projektgebiet konzentriert sich das Risikomanagement auf Kosten, Termine und Leistungen.

Auf diesen zwei Gebieten müssen international anerkannte Standards entwickelt werden, um Prozesse zur informierten Entscheidungsfindung zu unterstützen. Neueste Entwicklungen in diesem Bereich sind das Assurance Process Reference Model für Capability Maturity Model Integration (CMMI), das Building Security In Maturity Model (BSIMM) und das Open Software Assurance Maturity Model (OpenSAMM).

Kostenrechtfertigung für Software Assurance
Sämtlicher Aufwand zur Reduktion von Sicherheitsrisiken ist am kosten-effektivsten wenn er während des SDLC gemacht wurde.

Entwicklung neuer Verfahren zur Absicherung der Softwarewertschöpfungskette
Der Bedarf nach neuen Verfahren, um die Softwarewertschöpfungskette abzusichern, ist da. Hier ist die Wissenschaft und Forschung gefordert, da aktuelle Verfahren nicht ausreichend sind.

Software-Assurance-Messung
Aktuelle Software- und Systemmessinstrumente berücksichtigen Sicherheit und Software Assurance nicht als Maßstab für Qualität. Daher ignorieren sie zahlreiche Faktoren, die Software kompromittieren und sie Angriffen aussetzen können. Da keine standardisierten Messinstrumente für Software Assurance existieren, ist es schwierig – wenn nicht unmöglich – informierte Entscheidungen während des SDLC über die Informationssicherheit, Compliance, Leistungsfähigkeit und funktionalen Anforderungen zu treffen.

Fehlen von qualifiziertem Personal
Nur wenige Entwickler besitzen das nötige Hintergrundwissen, um sichere Software zu erstellen. In der universitären Ausbildung ist Software Assurance keine eigene Disziplin sondern ist auf vielen unterschiedlichen Fächern aufgeteilt. Folglich bezweifeln Behörden und Industriekunden zu Recht die Fähigkeiten von Herstellern, sichere Software mit einem benötigten Grad an Integrität zu entwickeln und ein Mindestmaß an verantwortungsvollen Praktiken auszuüben. Dieses Problem wird verstärkt durch den Mangel an Weiterbildung für hohe Beamte und Einkaufspersonal, um Kaufentscheidungen für Technologieprodukte anhand ihres jeweiligen Sicherheitsbedarfs zu treffen.

Blick in die Zukunft
Das junge Feld der Software Assurance hat in den letzten Jahren bereits einiges erreicht, dennoch liegt noch viel Arbeit vor uns. Hier werden vor allem die US-Amerikaner mit ihrer “National Strategy to Secure Cyberspace” den größten Einfluss haben.

Diagnostische Verfahren
Durch die Zusammenarbeit von Behörden, Universitäten und Industrie werden bessere diagnostische Verfahren zur Minderung der Risiken aus Sicherheitslücken und -schwachstellen entwickelt werden. Auch der Einsatz von Messinstrumenten und Benchmarkingverfahren für die Softwaresicherheit wird sich weiterentwickeln. Sie werden zu den Faktoren Qualität und Sicherheit den Einkaufsverantwortlichen eine ausreichende Datenbasis liefern, um Einkaufsentscheidungen zu treffen, und Herstellern eine zuverlässige Datenbasis zum Vergleich und zur Positionierung ihrer Produkte gegenüber der Konkurrenz. Die Verwendung derartiger Tools und Verfahren wird ein Teil des normalen Geschäftsbetriebes werden.

Die Berücksichtigung von Risiken in der Wertschöpfungskette
Einkaufsmanager und Anwender werden Risiken in der Softwarewertschöpfungskette im Rahmen ihres jeweiligen Risikominimierungsprogrammes berücksichtigen. Informationen über Fähigkeiten und Geschäftspraktiken eines bestimmten Herstellers stehen zur Verfügung, um die Sicherheitsrisiken, die die Produkte und Dienstleistungen des Herstellers beinhalten, berechnen zu können. Informationen über geprüfte Produkte und deren Sicherheitsschwachstellen sind vorhanden. Produkte werden standardmäßig vom Hersteller sicher konfiguriert.

Anerkannte Sicherheits- und Software-Assurance-Standards
Die Sicherheit und Qualität von Software wird mittels Standards und geeigneten Tools von unabhängigen Dritten zertifiziert.