Gelegenheit macht Diebe, eine Erkenntnis, die auch für manche Softwareentwickler gilt. Warum selber schreiben, wenn das Gute sich doch einfach kopieren lässt? Und wer dann noch das Gefühl hat, es ohnehin nicht besser machen zu können, erliegt schon mal der Versuchung. Im Visier befinden sich häufig Open-source-Programme,…
"…zum Beispiel Bibliotheken zum Codieren von Mp3, das wäre eine recht komplexe Software, oder Software, die bestimmte Dateiformate liest, sogenanntes XML ist ein beliebtes Beispiel, und diese Software wird open source veröffentlicht unter der sogenannten GNU-Lizenz, und die verlangt, wenn man die verwendet, dass man auch den eigenen Quelltext offen legen muss. Und da ist Versuchung natürlich groß, dies nicht zu tun, die Software zu verwenden in einem kommerziellen Produkt, und die eigene Software, den eigenen Quelltext nicht offen zu legen","
sagt Christian Lindig, Informatiker am Lehrstuhl für Softwaretechnik der Universität des Saarlandes. Die GNU General Public License, kurz GPL, wird von der Free Software Foundation mit einer sogenannten Copyleft-Lizensierung herausgegeben. Copyleft leitet sich als Wortspiel aus dem englischen Begriff Copyright –Kopierrecht – ab. Copyleft wird im Sinne von "überlassen" genutzt. Allerdings unter einer Bedingung: Der Programmierer kann Open-Source-Software zwar nutzen, muss veränderte Versionen aber ebenfalls offen legen. Wer dies nicht tut, bekommt juristischen Ärger – vorausgesetzt er wird des Softwarediebstahls überführt. Grundsätzlich stehen dafür zwei Methoden zur Verfügung. Lindig:
""Das eine Verfahren ist, man nimmt an, dass das passieren wird und versteckt etwas in seinem Code, und wenn dieser versteckte Code bei der Konkurrenz auftaucht, dann hat man fast einen Beweis, dass das jemand geklaut hat."
Watermarking heißt das Verfahren, ein Wasserzeichen im gestohlenen Softwareteil signalisiert, wer es geschrieben hat. Dem gegenüber steht das von den Saarbrücker Informatikern entwickelte Verfahren, bei dem sogenannten Geburtsmerkmalen beziehungsweise Birthmarks im Mittelpunkt stehen. Lindig:
"Wir lassen die eigene Software ablaufen und beobachten ihr Verhalten und lassen dann die fremde Software ablaufen und beobachten ebenfalls ihr Verhalten, und wenn es eine hohe Übereinstimmung gibt, dann vermuten wir, dass die fremde Software zumindest Teile der eigenen Software enthält."
Bei diesem Verfahren wird das Verhalten beziehungsweise die Interaktion zwischen Programm und Betriebssystem untersucht. Verhalten meint in diesem Zusammenhang,…
"…dass zum Beispiel eine Software eine Datei einliest, etwas auf dem Bildschirm schreibt, einen Drucker anspricht, eine Internetverbindung aufbaut, das ist das Verhalten. Und der Code für dieses Verhalten ist nicht vollständig in dem eigenen Programm enthalten, sondern es benutzt dafür das Betriebssystem. Um zum Beispiel eine Datei zu laden, muss ein Programm eine bestimmte Betriebssystemroutine aufrufen. Und wir beobachten diese Schnittstelle zwischen dem Programm und dem Betriebssystem und zeichnen auf, welche Betriebssystemaufrufe ein Programm macht."
Das Besondere von API BIRTHMARK – so der offizielle Name des Analysewerkzeugs – besteht darin, dass zwar das Verhalten der Software bewertet wird, nicht aber die Form. Letztere lässt sich vergleichsweise leicht verschleiern. Entsprechende Programme – Obfuskatoren – sind im Internet frei erhältlich. Allerdings weiß auch Christian Lindig, dass es mittlerweile auch für diesen Bereich Verschleierungstechniken gibt.
"Eine Möglichkeit wäre, zusätzliche Aufrufe an das Betriebssystem einzufügen, die keinen Effekt haben, die man nicht sehen kann. Da wir die Sequenzen beobachten zwischen einem Programm und dem Betriebssystem, würden diese Sequenzen gestört werden, wenn zusätzliche Aufrufe eingefügt werden. Man kann also versuchen, solche irreführenden Aufrufe einzuführen und so die Aussagekraft des Birthmarks zu verkleinern."
Was aber unerwünschte Konsequenzen hat: Die Software wird langsamer. Ob sich das Werkzeug zum Aufdecken geklauter Software durchsetzt, hängt von seiner Aussagekraft ab. Bei der Analyse komplett gestohlener Programme sind die Ergebnisse überzeugend. Geht es um den Nachweis gestohlener Komponenten, sieht es schon anders aus. Lindig:
"Dies ist deutlich schwieriger, wenn man nach Komponenten sucht, abhängig davon, wie viel die Komponente an der Gesamtsoftware ausmacht, steigt natürlich die Unsicherheit. Wir haben das gezeigt, wo wir mehrere Applikationen in Bibliotheken gesucht haben. In einem relativen Vergleich war die Software, die eine bestimmte Bibliothek genutzt hat, immer am auffälligsten, aber wir konnten kein absolutes Maß feststellen. Wir würden dieses also als Indikator verwenden, um weitere Untersuchungen anzustellen, man würde nicht absolut und vor Gericht sagen können, das ist der Beweis, dass eine Software eine bestimmte Bibliothek verwendet."
"…zum Beispiel Bibliotheken zum Codieren von Mp3, das wäre eine recht komplexe Software, oder Software, die bestimmte Dateiformate liest, sogenanntes XML ist ein beliebtes Beispiel, und diese Software wird open source veröffentlicht unter der sogenannten GNU-Lizenz, und die verlangt, wenn man die verwendet, dass man auch den eigenen Quelltext offen legen muss. Und da ist Versuchung natürlich groß, dies nicht zu tun, die Software zu verwenden in einem kommerziellen Produkt, und die eigene Software, den eigenen Quelltext nicht offen zu legen","
sagt Christian Lindig, Informatiker am Lehrstuhl für Softwaretechnik der Universität des Saarlandes. Die GNU General Public License, kurz GPL, wird von der Free Software Foundation mit einer sogenannten Copyleft-Lizensierung herausgegeben. Copyleft leitet sich als Wortspiel aus dem englischen Begriff Copyright –Kopierrecht – ab. Copyleft wird im Sinne von "überlassen" genutzt. Allerdings unter einer Bedingung: Der Programmierer kann Open-Source-Software zwar nutzen, muss veränderte Versionen aber ebenfalls offen legen. Wer dies nicht tut, bekommt juristischen Ärger – vorausgesetzt er wird des Softwarediebstahls überführt. Grundsätzlich stehen dafür zwei Methoden zur Verfügung. Lindig:
""Das eine Verfahren ist, man nimmt an, dass das passieren wird und versteckt etwas in seinem Code, und wenn dieser versteckte Code bei der Konkurrenz auftaucht, dann hat man fast einen Beweis, dass das jemand geklaut hat."
Watermarking heißt das Verfahren, ein Wasserzeichen im gestohlenen Softwareteil signalisiert, wer es geschrieben hat. Dem gegenüber steht das von den Saarbrücker Informatikern entwickelte Verfahren, bei dem sogenannten Geburtsmerkmalen beziehungsweise Birthmarks im Mittelpunkt stehen. Lindig:
"Wir lassen die eigene Software ablaufen und beobachten ihr Verhalten und lassen dann die fremde Software ablaufen und beobachten ebenfalls ihr Verhalten, und wenn es eine hohe Übereinstimmung gibt, dann vermuten wir, dass die fremde Software zumindest Teile der eigenen Software enthält."
Bei diesem Verfahren wird das Verhalten beziehungsweise die Interaktion zwischen Programm und Betriebssystem untersucht. Verhalten meint in diesem Zusammenhang,…
"…dass zum Beispiel eine Software eine Datei einliest, etwas auf dem Bildschirm schreibt, einen Drucker anspricht, eine Internetverbindung aufbaut, das ist das Verhalten. Und der Code für dieses Verhalten ist nicht vollständig in dem eigenen Programm enthalten, sondern es benutzt dafür das Betriebssystem. Um zum Beispiel eine Datei zu laden, muss ein Programm eine bestimmte Betriebssystemroutine aufrufen. Und wir beobachten diese Schnittstelle zwischen dem Programm und dem Betriebssystem und zeichnen auf, welche Betriebssystemaufrufe ein Programm macht."
Das Besondere von API BIRTHMARK – so der offizielle Name des Analysewerkzeugs – besteht darin, dass zwar das Verhalten der Software bewertet wird, nicht aber die Form. Letztere lässt sich vergleichsweise leicht verschleiern. Entsprechende Programme – Obfuskatoren – sind im Internet frei erhältlich. Allerdings weiß auch Christian Lindig, dass es mittlerweile auch für diesen Bereich Verschleierungstechniken gibt.
"Eine Möglichkeit wäre, zusätzliche Aufrufe an das Betriebssystem einzufügen, die keinen Effekt haben, die man nicht sehen kann. Da wir die Sequenzen beobachten zwischen einem Programm und dem Betriebssystem, würden diese Sequenzen gestört werden, wenn zusätzliche Aufrufe eingefügt werden. Man kann also versuchen, solche irreführenden Aufrufe einzuführen und so die Aussagekraft des Birthmarks zu verkleinern."
Was aber unerwünschte Konsequenzen hat: Die Software wird langsamer. Ob sich das Werkzeug zum Aufdecken geklauter Software durchsetzt, hängt von seiner Aussagekraft ab. Bei der Analyse komplett gestohlener Programme sind die Ergebnisse überzeugend. Geht es um den Nachweis gestohlener Komponenten, sieht es schon anders aus. Lindig:
"Dies ist deutlich schwieriger, wenn man nach Komponenten sucht, abhängig davon, wie viel die Komponente an der Gesamtsoftware ausmacht, steigt natürlich die Unsicherheit. Wir haben das gezeigt, wo wir mehrere Applikationen in Bibliotheken gesucht haben. In einem relativen Vergleich war die Software, die eine bestimmte Bibliothek genutzt hat, immer am auffälligsten, aber wir konnten kein absolutes Maß feststellen. Wir würden dieses also als Indikator verwenden, um weitere Untersuchungen anzustellen, man würde nicht absolut und vor Gericht sagen können, das ist der Beweis, dass eine Software eine bestimmte Bibliothek verwendet."