06.09.2017 WIBU-SYSTEMS AG 2017 - Virtuelles CodeMoving mit Translocated Execution 1 Virtuelles CodeMoving mit Translocated Execution Alvaro Forero Security Expert alvaro.forero@wibu.com Ruediger Kuegler Security Expert ruediger.kuegler@wibu.com
06.09.2017 WIBU-SYSTEMS AG 2017 - Virtuelles CodeMoving mit Translocated Execution 2 Agenda Übersicht CodeMeter Protection Suite AxProtector IxProtector Translocated Execution Live Demo Zusammenfassung Sicherheit
CodeMeter Protection Suite 06.09.2017 WIBU-SYSTEMS AG 2017 - Virtuelles CodeMoving mit Translocated Execution 3
06.09.2017 WIBU-SYSTEMS AG 2017 - Virtuelles CodeMoving mit Translocated Execution 4 CodeMeter Protection Suite CodeMeter Protection Suite PC (Windows, Linux, macos).net Java SE Java EE Embedded Operating System Authentizität der Software (Secure Loader / Authenticity) ExProtector Integritätsschutz (Tamper Protection) AxProtector AxProtector.NET AxProtector CmE Automatischer Schutz (IP Protection) AxProtector Java Anti-Debug Methoden IxProtector Individuelle Funktionsverschlüsselung CodeMeter Runtime CodeMeter Runtime CodeMeter Runtime CodeMeter Embedded CodeMeter Embedded Verwendete CodeMeter Variante
AxProtector 06.09.2017 WIBU-SYSTEMS AG 2017 - Virtuelles CodeMoving mit Translocated Execution 5
06.09.2017 WIBU-SYSTEMS AG 2017 - Virtuelles CodeMoving mit Translocated Execution 6 AxProtector Code Section Code Encrypted Section Code Section Data Section Resource Section AxProtector Data Encrypted Section Data Section Resource Encrypted Section Resource Section AxEngine (Security Engine) Compiled Application Protected Application
Ungeschützte Anwendung 06.09.2017 WIBU-SYSTEMS AG 2017 - Virtuelles CodeMoving mit Translocated Execution 7
Geschützte Anwendung 06.09.2017 WIBU-SYSTEMS AG 2017 - Virtuelles CodeMoving mit Translocated Execution 8
06.09.2017 WIBU-SYSTEMS AG 2017 - Virtuelles CodeMoving mit Translocated Execution 9 Sicherheitsoptionen Ressource-Verschlüsselung Code-Modifikationen Statisch Dynamisch Debugger Check Basic Erweitert Generisch Sperren von Lizenzen
06.09.2017 WIBU-SYSTEMS AG 2017 - Virtuelles CodeMoving mit Translocated Execution 10 Keine Inter-Sektions Aufrufe (Option a) Code Section Code Encrypted Section Code Section AxEngine (Security Engine) AxProtector Data Section Resource Section Compiled Application Data Encrypted Section Data Section Resource Encrypted Section Resource Section Protected Application
IxProtector 06.09.2017 WIBU-SYSTEMS AG 2017 - Virtuelles CodeMoving mit Translocated Execution 11
06.09.2017 WIBU-SYSTEMS AG 2017 - Virtuelles CodeMoving mit Translocated Execution 12 IxProtector Code Section Code Section Encrypted Encrypted Data Section IxProtector Data Section Resource Section Resource Section AxEngine (Security Engine) Compiled Application Protected Application
Einzelne verschlüsselte Funktion 06.09.2017 WIBU-SYSTEMS AG 2017 - Virtuelles CodeMoving mit Translocated Execution 13
06.09.2017 WIBU-SYSTEMS AG 2017 - Virtuelles CodeMoving mit Translocated Execution 14 Verschlüsselter Code ergibt keinen Sinn Unencrypted Code Encrypted (nonsense) Code
06.09.2017 WIBU-SYSTEMS AG 2017 - Virtuelles CodeMoving mit Translocated Execution 15 AxProtector und IxProtector Code Section Data Section Resource Section AxProtector IxProtector Code Encrypted Section Code Section Encrypted Encrypted Data Encrypted Section Data Section Resource Encrypted Section Resource Section AxEngine (Security Engine) Compiled Application Protected Application
06.09.2017 WIBU-SYSTEMS AG 2017 - Virtuelles CodeMoving mit Translocated Execution 16 IxProtector (Zur Laufzeit - Standard) Start der Anwendung Aufruf WupiDecryptCodeId(n) Entschlüsselt Funktion n in place Ausführung Funktion n Aufruf WupiEncryptCodeId(n) Verschlüsselt Funktion n in place Encrypted Code Encrypted Section Code Section Data Encrypted Section Data Section Encrypted Encrypted Resource Section AxEngine (Security Engine) Protected Application
Translocated Execution 06.09.2017 WIBU-SYSTEMS AG 2017 - Virtuelles CodeMoving mit Translocated Execution 17
06.09.2017 WIBU-SYSTEMS AG 2017 - Virtuelles CodeMoving mit Translocated Execution 18 IxProtector mit Translocated Execution Code Section Code Section Enc. Enc. Stub Stub Data Section Resource Section IxProtector Data Section Resource Section Encrypted s AxEngine (Security Engine) Compiled Application Protected Application
06.09.2017 WIBU-SYSTEMS AG 2017 - Virtuelles CodeMoving mit Translocated Execution 19 AxProtector und IxProtector mit Translocated Execution Code Section Encrypted Code Code Section Section Enc. Enc. Stub Stub Data Section Resource Section AxProtector IxProtector Encrypted Data Section Data Section Enc. Resource Section Encrypted s AxEngine (Security Engine) Compiled Application Protected Application
06.09.2017 WIBU-SYSTEMS AG 2017 - Virtuelles CodeMoving mit Translocated Execution 20 IxProtector (During Runtime With Translocated Execution) Start der Anwendung Ausführung Funktion n Entschlüsselt Funktion n auf Heap Springt zu Funktion n (auf Heap) Entfernt (überschreibt) Funktion n aus dem Heap Nächste Funktion an gleicher Stelle Stub Encrypted Code Code Section Section Enc. Stub Encrypted Data Section Data Section Encrypted s AxEngine (Security Engine) Enc. Enc. Resource Section Protected Application Heap
06.09.2017 WIBU-SYSTEMS AG 2017 - Virtuelles CodeMoving mit Translocated Execution 21 Verfügbare Optionen Automatisch (OOPE=1) Entschlüsseln, Ausführen, Löschen Manuell (OOPE=2) WupiDecryptCodeId, Ausführen, WupiEncryptCodeId Automatisch mit Cache (OOPE=5) Entschlüsseln, Ausführen, im Cache halten Löschen nach x Sekunden
Demo 06.09.2017 WIBU-SYSTEMS AG 2017 - Virtuelles CodeMoving mit Translocated Execution 22
Zusammenfassung Sicherheit 06.09.2017 WIBU-SYSTEMS AG 2017 - Virtuelles CodeMoving mit Translocated Execution 23
06.09.2017 WIBU-SYSTEMS AG 2017 - Virtuelles CodeMoving mit Translocated Execution 24 Sicherheit AxProtector entschlüsselt die komplette Anwendung beim Start Anti-Dumping, Code-Modifikationen und Ressource-Verschlüsselung Vermeidung von Inter-Sektions Aufrufen IxProtector lässt Funktionen verschlüsselt im Speicher Entschlüsselung dynamisch zur Laufzeit bei Bedarf Translocated Execution macht es noch schwerer diese Funktionen zur Laufzeit zu finden Manuelle und automatische Entschlüsselung zur Laufzeit
06.09.2017 WIBU-SYSTEMS AG 2017 - Virtuelles CodeMoving mit Translocated Execution 25 Vielen Dank für Ihre Aufmerksamkeit Germany: +49-721-931720 USA: +1-425-7756900 China: +86-21-55661790 http://www.wibu.com info@wibu.com