Kategorien: Software-Schutz

AxProtector mit Code-Obfuskation

Wibu-Systems hat im letzten Jahr eine neue Variante seines bewährten AxProtector für native Anwendungen unter Windows, Linux und macOS entwickelt.

AxProtector Compile Time Protection (CTP)

AxProtector CTP ist verfügbar für Windows, Linux und macOS. Er unterscheidet sich in der Anwendung und in der Schutztechnologie vom herkömmlichen AxProtector für diese Betriebssysteme.

AxProtector CTP steht mit dem Release von AxProtector 11.20 im Februar 2023 separat zum Download bereit. AxProtector CTP kann mit den vorhandenen Lizenzen für AxProtector Windows, Linux oder macOS verwendet werden. Die Features Automatischer Schutz, Modular Licensing, License Free (IP Protection), File Encryption und das neue Feature Compile Time Obfuscation sind für native Anwendungen für alle drei Betriebssysteme einsetzbar.

AxProtector CTP integriert sich dabei bei der Schutzerstellung in den Compile-Prozess des Build-Systems.

Warum AxProtector CTP?

Apple führte Änderungen am Betriebssystem macOS unter der ARM-Plattform ein, die zu einer Verstärkung der Code-Signing-Richtlinien ab macOS Version 12.3 führten. Dies erschwert die Ausführung von geschützter und zur Laufzeit zu entschlüsselnder Software, speziell Plugins, auf macOS ARM.

Bisher ist eine Ausführung geschützter Software unter Intel oder auf der Intel-Emulation (Rosetta) nicht beeinträchtigt.

Ein weiterer Anlass für die Entwicklung von AxProtector CTP ist die Steigerung des Schutzes von geistigem Eigentum (Intellectual Property), vor allem bei Software, die nur gegen Reverse Engineering, aber ohne Lizenzierung geschützt ist (License Free oder IP Protection). Der klassische Schutz von Intellectual Property durch Wibu-Systems basiert auf der Verschlüsselung und temporären Entschlüsselung des ausführbaren Codes im Arbeitsspeicher des Nutzers. Der ausführbare Code liegt notwendigerweise kurzzeitig in seiner ursprünglichen lesbaren Form vor.

Wie funktioniert es?

Unsere neueste Entwicklung basiert auf der Obfuskation des Codes nativer Anwendungen. Das neue Obfuskations-Feature für nativen Code lehnt sich an bekannte Obfuskations-Methoden an. Während des Compile-Vorgangs mit einem angepassten LLVM-Compiler werden die Funktionen in drei Schritten geschützt. Zunächst werden Funktionsnamen und Texte durch Verschlüsselung unkenntlich gemacht (Bild 1). Im zweiten Schritt werden Codeblöcke obfuskiert. Durch zusätzliche Codeblöcke und Ablaufverzweigungen wird der Code weiter verschleiert (Bild 2). Dies ist mit einer Vergrößerung der ausführbaren Datei verbunden.

Und schließlich werden im dritten Schritt die logischen Verbindungen zwischen Codeblöcken durch indirekte Aufrufe ersetzt (Bild 3).

Der logische Zusammenhang des ausführbaren Codes im auslieferbaren Binary ist mit den aufgebrochenen Ablaufverbindungen nicht mehr erkennbar und ist somit effektiv gegen Reverse Engineering geschützt.

Das Verfahren stellt eine hervorragende Abwehrmaßnahme gegen Reverse Engineering dar, da der ausführbare Code zu jeder Zeit fragmentiert und obfuskiert im Arbeitsspeicher eines Rechners vorhanden ist. Eine Analyse dieses Codes ist somit nahezu ausgeschlossen.

Lizenzierung

Die neue Technologie unterstützt nicht nur den Schutz des geistigen Eigentums, sondern auch die Lizenzierung von Software oder ihren Komponenten. Dafür stehen alle verfügbaren Konfigurationsoptionen für die Lizenzierung wie bei AxProtector .NET NC bereit.

Der von AxProtector injizierte Code zur Kontrolle der Lizenznutzung ist schwer von dem Applikationscode des Herstellers zu unterscheiden und kann nur in Verbindung mit einem spezifischen Lizenzschlüssel ausgeführt werden.

Voraussetzungen

Der Schutz, den der neue AxProtector CTP bietet, erfordert spezielle Build-Umgebungen. AxProtector CTP ist nur kompatibel mit einem modifizierten Clang-Compiler und einem zusätzlichen Plug-in von Wibu-Systems. Die notwendigen Anpassungen am Compiler sind minimal und können vom Softwarehersteller mit Hilfe des Setup-Guides von Wibu-Systems eigenständig vorgenommen werden. Sie dienen schlichtweg dazu, die Nutzung von Plugins zu aktivieren. Momentan wird AxProtector CTP zusammen mit dem Compiler Clang 14.05 ausgeliefert.

Durch die Unterstützung des Clang-Compilers in gängigen Entwicklungsumgebungen wie Visual Studio und Xcode ist es möglich, die Funktionalität von AxProtector CTP zu nutzen. Dadurch kann auch Cross-Plattform-Schutz wie beim herkömmlichen AxProtector erreicht werden. Zielsysteme können Windows, Linux und macOS sein. Die unterstützten Plattformen Intel, ARMHF und AARCH64 werden von AxProtector CTP ebenfalls unterstützt.

Empfohlene Anwendungsszenarien

Wibu-Systems bietet auch in Zukunft Unterstützung und Entwicklung für AxProtector Windows, AxProtector Linux und AxProtector macOS an, sodass Softwarehersteller diese weiterhin verwenden können.

macOS

Softwarehersteller, die Plug-ins für macOS entwickeln und mit CodeMeter schützen, wird empfohlen, den neuen Schutzmechanismus zu verwenden. Dies gilt insbesondere dann, wenn die Hostanwendung, die das geschützte Plug-in lädt, nicht mit AxProtector geschützt ist. Hersteller von Applikationen für macOS sollten AxProtector CTP ebenfalls in Betracht ziehen, da dieser zukünftig der Standardschutz für macOS werden wird.

Windows und Linux

AxProtector CTP bietet einen effizienten Schutz für geistiges Eigentum, indem Code durch Obfuskation zusätzlich gesichert wird. Wenn die entsprechenden technischen Bedingungen erfüllt sind oder hergestellt werden können, kann ein Wechsel lohnenswert sein.

Performance

Unsere Erfahrungen zeigen, dass Applikationen, die mit AxProtector oder AxProtector CTP geschützt wurden, ähnlich schnell ausgeführt werden. Abhängig von der Anwendung der Obfuskation auf laufzeitkritische Funktionen können jedoch systembedingte Einschränkungen auftreten. Daher empfehlen wir, zunächst einen Trainingslauf mit dem integrierten Profiler des AxProtector CTP durchzuführen.

Anwendung in der Praxis

Für eine erste Evaluation werden von Wibu-Systems ein vorkonfigurierter Clang-Compiler und ein Compiler-Plug-in für den Schutzprozess bereitgestellt.

Dieser Compiler kann problemlos in das Build-System integriert werden. Für Hersteller, die selbst Compiler-Anpassungen vornehmen, steht eine Anleitung zur Verfügung, um das Plug-in zu nutzen.

Die Konfiguration des AxProtector CTP ist nahezu identisch zur Konfiguration des AxProtector .NET NC oder AxProtector Python NC.

AxProtector bietet eine Reihe leistungsstarker Funktionen, darunter Automatic Protection (automatischer Schutz), Modular Licensing (modulare Lizenzierung, License Lists), IP Protection (License Free), CodeMoving und File Encryption. Mit AxProtector CTP steht zudem die Möglichkeit der Compile Time Obfuscation zur Verfügung, die ganz einfach über eine Konfiguration aktiviert werden kann. Für die Nutzung dieser Funktion ist eine zusätzliche Lizenz erforderlich.

AxProtector CTP basiert auf dem intermediären Dateiformat des LLVM-Compilers, wodurch die Unterstützung zahlreicher Programmiersprachen und Zielplattformen möglich ist. Dazu zählen C, C++, Rust und Swift, die von der LLVMCompiler-Infrastruktur unterstützt werden.

 

KEYnote 45 – Ausgabe Frühjahr/Sommer 2023

Nach oben