Schutz gegen Entwickler-Ausfall

Anbieter pleite, Quellcode weg

Aufgaben für den Escrow-Agenten

Der Escrow-Dienstleister fungiert als neutrale Instanz zwischen den beiden anderen Parteien, dem Lizenzgeber und dem Lizenznehmer. Neben der Verifizierung und sicheren Verwahrung des Quellcodes muss er bei der vertraglichen und technischen Ausgestaltung der Dreiecksbeziehung zwischen den oft gegenläufigen Interessen vermitteln. Angesichts kurzer Release-Zyklen sollte er zudem über eine passende Hardware-Infrastruktur verfügen, auf der er Änderungen am Quellcode sowie der Dokumentation kontrollieren und sichern kann.

Auch Tests oder die vollständige Neukompilierung des Quellcodes können als Qualitäts- und Sicherheitsroutinen vertraglich festlegt und entsprechend dokumentiert werden. Schließlich ist der Escrow-Agent im Herausgabefall dafür verantwortlich, dass die hinterlegte Software an den Lizenznehmer übergeben wird. Entscheidend ist hier die individuelle vertragliche Regelung, ob der Quellcode beispielsweise schon beim Insolvenzantrag oder erst bei Eröffnung des Verfahrens an den Anwender übertragen wird.

Die technische Verifizierung der Software

Der Escrow-Agent übernimmt den Quellcode sowie die Dokumentation einschließlich Programmierhandbuch und Build Guide vom Lieferanten der Software. Darüber hinaus werden häufig auch die Namen der maßgeblichen Entwickler übergeben - um diese im Notfall nach einer Freisetzung aus dem insolventen Unternehmen kontaktieren zu können. Im Anschluss an die Übergabe beginnt die technische Verifizierung. Dabei handelt es sich um eine Serie von Tests auf Vollständigkeit und Brauchbarkeit der Software. Dieser Schritt ist neben der eigentlichen Übergabe des Materials das Kernstück der Ausfallabsicherung aus Sicht des Anwenders. Eine umfangreiche Verifizierung des Source-Codes stellt sicher, dass das Programm vollständig sowie lauffähig ist und künftig weiter bearbeitet werden kann.

Um das hinterlegte Escrow-Material vollständig zu verifizieren, werden in der Regel die folgenden Schritte absolviert:

  1. Zunächst gibt es einen ersten, quantitativen Test des Materials auf Unversehrtheit und Lesbarkeit: Lässt sich die Software entschlüsseln, entpacken und ist sie frei von Schadcode? Ist mindestens eine Basisdokumentation wie ein Build Guide vorhanden, werden Drittkomponenten identifiziert und eventuelle Fremdlizenzen genannt?

  2. Die Entwicklungsumgebung, also die "Werkstatt" des Entwicklers wird nachgebaut. Hierfür werden zunehmend auch Virtual Machines (VM) genutzt - eigenständige elektronische Container, die mit den wesentlichen Komponenten wie beispielsweise der Entwicklungsumgebung ausgestattet sind.

  3. Compile & Link und anschließend Deploy & Install, in Anlehnung an die Entwicklungsschritte der Software-Hersteller.

  4. Die Anwendung wird getestet, etwa durch einen so genannten "Smoke Test", bei dem zentrale Funktionen genutzt werden und kein "Rauch" aufsteigen darf. Hierbei geht es nicht um eine funktionale Abnahme der Software, sondern um die grundsätzliche Lauffähigkeit sowie die Gewissheit, dass die hinterlegte Anwendung identisch mit der beim Anwender eingesetzten Version ist.

  5. Die einzelnen Schritte und Ergebnisse der Verifizierung werden in einem Kurzgutachten für den Lizenzgeber und den Lizenznehmer dokumentiert. Darüber hinaus wird gegebenenfalls eine Einschätzung zur Eignung des Materials für eine eigenständige Weiterentwicklung durch den Anwender oder einen von ihm beauftragten Experten abgegeben.