PIC

Aus IT-Forensik Wiki

Position-unabhängiger Code (PIC) ist eine Schlüsseltechnik in der Softwareentwicklung, die sowohl zur Effizienzsteigerung als auch zur Verbesserung der Systemsicherheit eingesetzt wird. Doch diese Flexibilität und Unvorhersehbarkeit von PIC kann auch missbraucht werden, insbesondere in der Entwicklung von Malware. In der Malware-Entwicklung erlaubt PIC eine effektive Umgehung von Sicherheitsmechanismen, eine bessere Tarnung und Integration in legitime Prozesse sowie die Erstellung von effektivem Shellcode.

Überblick

Position-unabhängiger Code (PIC) bezieht sich auf Code, der effizient an jeder Speicheradresse ausgeführt werden kann, ohne dass seine Instruktionen geändert werden müssen. Dies bietet eine Reihe von Vorteilen in regulärer Software, indem es beispielsweise das Teilen von Code zwischen verschiedenen Prozessen ermöglicht. Aber diese Fähigkeit kann auch missbraucht werden, insbesondere in der Malware-Entwicklung, um Sicherheitsmechanismen zu umgehen, sich besser zu tarnen und sich in bestehende Prozesse zu integrieren.

Funktionsweise

PIC offset.png

Der Hauptvorteil von PIC besteht darin, dass er an jeder Speicheradresse ausgeführt werden kann. Dadurch muss er im Gegensatz zum absoluten Code nicht geändert werden, wenn er an einer anderen Stelle im Speicher ausgeführt werden soll. Dies ermöglicht es der Malware, sich effektiv im Speicher zu bewegen und zu tarnen und sich unauffällig in laufende Prozesse einzufügen, was ihre Erkennung erschwert.


Verwendung

  • Umgehung von Sicherheitsmechanismen:

PIC kann Sicherheitsmechanismen wie die Address Space Layout Randomization (ASLR) umgehen, da er unabhängig von seiner Position im Speicher ausgeführt werden kann.

  • Tarnung und Integration:

Die Fähigkeit, an verschiedenen Speicheradressen ausgeführt zu werden, macht PIC für Malware nützlich, um sich zu tarnen und leicht in laufende Prozesse zu integrieren, wodurch sie schwerer zu entdecken ist.

  • Shellcode:

PIC ist ein grundlegender Bestandteil des Shellcodes, einer Technik, die in der Exploit-Entwicklung häufig verwendet wird. Der Shellcode muss oft in einer Umgebung ausgeführt werden, in der die genaue Speicheradresse unbekannt ist, daher muss er positionsunabhängig sein.


Erkennung

Wegen seiner Fähigkeit, sich im Speicher zu bewegen und sich in laufende Prozesse einzufügen, kann PIC-basierte Malware oft traditionelle Erkennungsmechanismen umgehen. Allerdings können fortgeschrittene Techniken wie Speicherforensik, Code-Muster-Analyse und maschinelles Lernen dabei helfen, solche Malware aufzuspüren.

Quellen

https://www.slideshare.net/codewhitesec/pic-your-malware https://docs.oracle.com/cd/E26505_01/html/E26506/glmqp.html https://tuprints.ulb.tu-darmstadt.de/8090/1/Liebchen-PhD-Advancing-Memory-corruption-Attacks-and-Defenses.pdf