Schutz der Software von KI- und ML-Lösungen

Andreas Mühlbauer,

Python-Scripte verschlüsseln

Python-Scripte ließen sich bisher nur durch Vorkompilieren vor Diebstahl oder Manipulation schützen. Ein neues Tool verschlüsselt den Code automatisch und gewährleistet dessen Sicherheit. Zudem ermöglicht es unter anderem Lizenzierungen.

AxProtector Python schützt Python-Anwendungen. © Wibu-Systems / iStock, Serhii Yakovliev

Aufgrund der einfachen Syntax, der Übersichtlichkeit, der vorhandenen Ressourcen und der hohen Flexibilität wird die Programmiersprache Python meist in den Bereichen künstliche Intelligenz (KI) und Machine Learning (ML) eingesetzt, was zu Softwarelösungen beispielsweise für das Gesundheitswesen, Fertigung, Unternehmen, Bildung, Finanzwesen oder dem juristischen Bereich führt. Die Umfrage „State of the developer nation“ des Analysten Slash Data unterstreicht die Bedeutung von Python. Über 19.000 Entwickler gaben im ersten Quartal 2021 bei dieser Umfrage ihr Feedback zu ihren beliebtesten Programmiersprachen. Das Ergebnis ist der zweite Platz für Python. Zu den Haupteinsatzzwecken von Python zählen Data Science, Machine Learning und Anwendungen für IoT.

Die Beliebtheit von Python sorgt dafür, dass sich auch Angreifer mit dieser Programmiersprache befassen, beispielsweise suchen sie nach Schwachstellen. Sie versuchen auch, die Innovationen von Herstellern zu kopieren und mit geringem Aufwand davon zu profitieren. Der Knackpunkt ist, dass Angreifer bei Python, einer Skriptsprache, auf einfache Weise an den Python-Quellcode kommen können, denn dieser wird als Text-Datei ausgeliefert und kann im Klartext gelesen werden. Somit liegt der Quellcode offen und kann, ob absichtlich oder unabsichtlich, geändert, manipuliert, kopiert und die Idee dahinter nachgebaut werden (Reverse Engineering).

Anzeige

Um auch den Herstellern von KI- und ML-Anwendungen sowohl Schutz als auch Lizenzierung ihrer in Python geschriebene Software zu bieten, hat der Karlsruher Hersteller Wibu-Systems seine CodeMeter-Lösung speziell dafür erweitert. Das neue Tool „AxProtector Python“ erlaubt die automatische Verschlüsselung von Python-Software. Zuvor ließ sich die Python-Software über Vorkompilierung der Exe-Datei mittels Cython-Compiler schützen. Viel komfortabler ist das neue Tool, das als Erweiterung der CodeMeter Protection Suite eine direkte und automatische Verschlüsselung der Python-Software erlaubt. Die verschiedenen AxProtector-Varianten basieren auf Verschlüsselung und Lizenzierung, das heißt, zuerst verschlüsseln die Hersteller ihre Software und liefern dann beim Kauf den dazugehörigen Lizenzschlüssel an die Anwender. Der Lizenzschlüssel, der auch nachträglich aktualisiert werden kann, definiert die Berechtigungen des Käufers. Der Lizenzschlüssel lässt sich auf unterschiedliche Weise speichern: in der Schutzhardware CmDongle, der softwarebasierten Aktivierungsdatei CmActLicense oder im CmCloudContainer, der in der Cloud liegt.

Die Methode der Vorkompilierung

Bisher konnten die Hersteller ihre Python-Software in zwei Schritten schützen: über Vorkompilierung und Verschlüsselung. Der Cython-Compiler wird dazu genutzt, um die Python-Software in eine ausführbare, in C geschriebene Datei (Exe) umzuwandeln, die dann im nächsten Schritt über das Tool AxProtector verschlüsselt wird. Bei diesem klassischen Weg muss der Hersteller für jede einzelne Plattform die jeweils dazugehörige ausführbare Datei erzeugen und ausliefern, was nur funktioniert, wenn er die entsprechenden technischen Kenntnisse hat.

Oben: Umwandlung in eine native Python-Anwendung mittels Vorkompilierung. Mitte: AxProtector Native schützt eine zuvor kompilierte Python-Anwendung. Unten: AxProtector Python schützt die Python-Anwendung direkt. © Wibu-Systems

Die unterschiedlichen Verschlüsselungstools erlauben den Herstellern, ihre Software und somit ihr geistiges Eigentum zu schützen und auch zu lizenzieren. Dank einer granularen Lizenzierung lassen sich Modelle zur Software-Monetarisierung erstellen und nutzen, was für zusätzlichen Umsatz sorgt. Hersteller können automatisiert verschiedene Lizenzmodelle umsetzen, beispielsweise Einzelplatzlizenz, Floating-Lizenz innerhalb eines Netzwerks oder ein zeitbasiertes Modell. Die für die Python-Software wichtigen Daten lassen sich über das Code-Meter Core API ebenfalls verschlüsseln und auch signieren.

Die Mindestvoraussetzungen zum Einsatz von AxProtector Python sind Python 3 und CodeMeter 7.30. Ohne den Schritt der Vorkompilierung über Python verschlüsselt AxProtector Python das Skript direkt, und es wird kein nativer Code erzeugt. Die Stärke des neuen Tools liegt in der Plattformunabhängigkeit, denn es wird nur ein einziges Mal ausgeführt, um eine einzige ausführbare Datei zu erzeugen, die auf den unterschiedlichen Plattformen Windows, Linux oder macOS läuft. Dies bedeutet, dass die Python-Software nur einmal verschlüsselt wird und der Hersteller wie gewohnt das Schutzniveau der CodeMeter-Technologie nutzen kann. Nur der gerade benötigte Teil wird zur Laufzeit entschlüsselt, sodass der Großteil der Software weiterhin verschlüsselt bleibt. Hersteller können modulare Lizenzen abbilden, denn jede Funktion der Python-Software lässt sich einzeln verschlüsseln. Ausgeliefert werden die verschlüsselte Software und die Lizenzschlüssel genau so, wie die Anwender sie gekauft haben. Problemlos können Nutzer später weitere Softwarefunktionen und die dazugehörigen Lizenzschlüssel nachkaufen. Sollen bestimmte Funktionen und Dateien unverschlüsselt bleiben, dann kann der Hersteller Annotationen setzen sowie dies über Einträge in der Schutzdefinition steuern. Da der Schritt der Vorkompilierung entfällt, erfolgt die Integration über AxProtector Python auf einfache Weise.

Die CodeMeter Protection Suite

Hersteller können die unterschiedlichen Verschlüsselungstools nutzen, um die komplette Software oder Teile davon zu verschlüsseln. Optimiert für die verschiedenen Programmiersprachen gibt es die entsprechenden AxProtector-Varianten. Sie dienen dem Schutz einer ausführbaren Datei. Zusätzlich gibt es AxProtector zur Verschlüsselung einzelner Funktionen und IP Protection, um Software vor Reverse Engineering zu schützen. Der AxProtector Python ergänzt die vorhandenen Varianten.

Wenn die Popularität von Python anhält, wovon aufgrund des Wachstumspotenzials bei KI und ML auszugehen ist, werden Hersteller sich noch intensiver mit passenden Schutz- und Lizenzierungskonzepten befassen müssen. Wibu-Systems hat seine CodeMeter-Technologie schon frühzeitig so erweitert, dass Hersteller ihre Python-Software auf einfache Weise schützen und lizenzieren können.

Rüdiger Kügler, VP Sales & Security Expert, Wibu-Systems

Anzeige
Jetzt Newsletter abonnieren

Das könnte Sie auch interessieren

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige