Kern, P. (2023). Injecting shared libraries with LD_PRELOAD for cyber deception [Diploma Thesis, Technische Universität Wien]. reposiTUm. https://doi.org/10.34726/hss.2024.111853
E194 - Institut für Information Systems Engineering
-
Date (published):
2023
-
Number of Pages:
68
-
Keywords:
Cyber-Täuschung; Function Hooking; Shared Library; Cloud Computing; Sicherheits-Orchestrierung
de
cyber deception; function hooking; shared library; cloud computing; security orchestration
en
Abstract:
Seit mehr als drei Jahrzehnte haben Cyber-Täuschungen gezeigt, wie Angreifer entdeckt, analysiert und getäuscht werden können. Eines der Probleme, das die Forscher in dieser Zeit zu lösen versuchten, war die Automatisierung und Orchestrierung der Täuschungssysteme, um die Komplexität für den Benutzer zu minimieren und die Akzeptanzrate von Cyber-Täuschungen zu erhöhen. Darüber hinaus muss die Forschung die Echtheit der Täuschung bewahren, damit die Angreifer nicht misstrauisch werden und ihre Interaktion mit dem System abbrechen. Diese Eigenschaften sind besonders schwer in komplexen Cloud-Umgebungen zu erreichen, die sich im Laufe des Tages schnell verändern. Eine Lösung für diese Eigenschaften ist die Verwendung von Function-Hooks. Obwohl Function-Hooks im Bereich der Malware-Erkennung und -Täuschung erforscht werden, bestehen im Bereich des Cloud Computing noch Forschungslücken. In dieser Arbeit analysieren wir Function-Hooks in Bezug auf Shared Libraries für HTTP-Täuschung in Cloud-Umgebungen. Im Detail haben wir die Umgebungsvariable LD_PRELOAD und ihre Möglichkeit, eine benutzerdefinierte Binärdatei bei Prozessstart zu laden, um Shared-Library Methoden zu überschreiben, analysiert. Auf der Grundlage der vorhandenen Literatur haben wir einen Prototyp entwickelt, der zwei Täuschungsmethoden einführt, um HTTP-Antworten zu täuschen. Nach der Bereitstellung in einem Cluster kann sich unser Prototyp in neu erstellte Ressourcen innerhalb eines Produktionssystems einschleusen. Die Täuschungselemente können während der Laufzeit des Produktionssystems durch Änderung einer globalen Konfigurationsdatei modifiziert und deaktiviert werden. Schlussendlich haben wir eine Leistungsbewertung durchgeführt, die zeigte, dass unser Täuschungsprototyp zu einer durchschnittlich 6,72% langsameren Antwortzeit führte, wenn er aktiviert war, und zu 1,58%, wenn er deaktiviert war.
de
For over three decades, cyber deception has shown how adversaries can get detected, analysed, and deceived. Throughout this time, one of the problems researchers tried to address was the automation and orchestration of the deception systems to minimize the user's complexity and increase the adoption rate of cyber deception. In addition, research must still preserve the deception's genuineness so that attackers do not get suspicious and stop their interaction with the system. Such attributes are especially hard to achieve within complex cloud environments, which have rapid changes throughout the day. One solution to address those attributes is by using function hooks. Even though hooks are explored in the area of malware detection and deception, research gaps still exist in the area of cloud computing. In this work, we analyse function hooking of shared libraries for HTTP deception inside cloud environments. In more detail, we analysed the LD_PRELOAD environment variable and its possibility to preload a custom binary file to hook shared library methods. Based on existing literature, we created a prototype to inject two deception tactics to make HTTP responses deceptive. Once deployed to a cluster, our prototype can inject itself into newly created resources inside a production system. The deceptive elements can be modified and deactivated during the runtime of the production system by modifying a global configuration file. Finally, we conducted a performance evaluation showing that our deception prototype resulted in an average of 6.72% slower response time with activated deception elements and 1.58% with deactivated deception elements.