Skip to content

Warum man Schadcode nie ungefragt durch harmlosen Code ersetzen sollte

Wie angekündigt geht es heute um die Frage, wieso es eine schlechte Idee ist, nach der Übernahme eines Botnets den Schadcode auf den einzelnen Bots durch harmlosen Code zu ersetzen. Mal abgesehen davon, dass so eine Manipulation fremder Rechner in vielen Staaten zu Recht verboten ist.

Erstens: Fremder Code ist immer unerwünscht!

Erst mal gilt grundsätzlich "My Computer is my Castle": Nur der Benutzer entscheidet, welche Programme darauf laufen sollen. Jedenfalls im Idealfall, von dem ich jetzt einfach mal ausgehe. Jeder ohne Einverständnis des Benutzers laufende Code verstößt grundsätzlich gegen diese Regel. Das gilt natürlich insbesondere für Schadsoftware.

Jetzt könnte man grundsätzlich argumentieren, dass der Austausch des Schadcodes durch "harmlosen" Code diese Situation vom "schlimm, da böser Code" zu "weniger schlimm, da harmloser Code" verbessert. Auf dem ersten Blick ist das richtig, auf dem zweiten nicht: Wenn das zum Schadcode gehörende Botnet bereits unter der Kontrolle der "Guten" steht, führt der Schadcode ja keine Schadfunktion mehr aus, z.B. sammelt er keine Passwörter mehr oder sendet Daten an die Cyberkriminellen. Da kein Grund besteht, Schaden durch einen Austausch der Schadfunktion durch harmlose Funktionen (vermutlich also "Nichtstun") zu verhindern, kommen wir zu

Zweitens: Jeder Code kann Nebenwirkungen haben

Der infizierte Rechner funktioniert trotz des eingeschleusten Schadcodes ja anscheinend mehr oder weniger einwandfrei. Zumindest so gut, dass der Benutzer keinen Grund hatte, nach Schadcode zu suchen oder das System neu zu installieren. Was passiert aber, wenn die (durch Ausschalten des Botnets ja wirkungslosen) Schadfunktionen durch andere Funktionen ersetzt werden? Und das, indem eine den "Guten" ja nicht unbedingt vollständig bekannte Updatefunktion des Schadcodes genutzt wird? Wer übernimmt die Verantwortung, wenn der "harmlose" Code Schaden anrichtet?

Es ist i.A. auch nicht möglich, den vorhandenen Schadcode z.B. durch geringfügige Änderungen unbrauchbar zu machen. Sehr oft hängt sich der Schadcode in etliche Systemfunktionen ein, um seine bösartigen Funktionen überhaupt ausführen zu können. Wenn der Schadcode nicht mehr läuft, hat das dann automatisch auch Auswirkungen auf das infizierte System.

Drittens: Erkennen Virenscanner "harmlosen" Code?

Mal angenommen, Antivirenhersteller A ersetzt nach der Übernahme eines Botnets den Schadcode auf den Bots durch eigenen, "harmlosen" Code - wird der dann von anderen Virenscannern als Schadcode erkannt? Die Frage ist durchaus berechtigt, zum einen erkennen Virenscanner ja nicht unbedingt jeden Schädling, zum anderen müsste eine Verhaltensanalyse ja beim "harmlosen" Code scheitern, denn der enthält ja keine verdächtigen schädlichen Funktionen.

Und wenn der "harmlose" Code erkannt wird: Wie wird der gemeldet? Vielleicht mit

Achtung:
"Harmloser Code" von Antivirenhersteller A erkannt!
Wollen Sie den Schadcode beseitigen?

Und was ist, wenn der Virenscanner von Hersteller A auf diesen eigenen "harmlosen" Code stößt? Meldet er dann den ursprünglichen Schadcode, oder gibt er zu, dass ihm der Schadcode evtl. entgangen ist und er nun den "harmlosen" Code gefunden hat?

Viertens: Der Rechner bleibt kompromittiert

Der Austausch der (durch Ausschalten des Botnets ja wirkungslosen) Schadfunktionen (ja, ich weiß, dass ich mich dabei wiederhole, aber das hat einen guten Grund, zu dem ich gleich komme) durch "harmlosen" Code beseitigt i.A. die Kompromittierung des Rechners nicht. Die meiste Schadsoftware deaktiviert vorhandene Schutzfunktionen wie Virenscanner etc., so dass ein einmal mit einer Schadsoftware infizierter Rechner i.A. recht schnell mit weiteren Schädlingen infiziert wird. Selbst wenn einer davon durch den Austausch des Codes deaktiviert wird, bleiben die anderen aktiv.

Es ist also deutlich besser, den Benutzer über die Infektion zu informieren. Das könnte man machen, indem der Schadcode durch eine Warnfunktion ersetzt wird. Auf die sollte aber besser kein Benutzer reagieren, denn wie soll er eine echte Warnung von der durch Scareware unterscheiden? Die betroffenen Benutzer müssen also über ihre ISP identifiziert und informiert werden, und dann besteht ja keinerlei Grund mehr, den Schadcode durch "harmlosen" Code zu ersetzen.

Und was ist, wenn der Schadcode noch aktiv ist?

Bisher bin ich davon ausgegangen, dass der Schadcode seine Funktionen nicht mehr erfüllt, weil das zu Grunde liegende Botnet von "Guten" kontrolliert wird, wie z.B. das von Kaspersky Lab übernommene Khelios-Botnet oder der vom FBI ausgeschaltete DNS-Changer.

Aber wie sieht das Ganze aus, wenn die Cyberkriminellen noch die Kontrolle über ihr Botnet haben? Sollte man dann den Schadcode durch "harmlosen" Code ersetzen, um das Botnet lahm zu legen, wie es z.B. aktuell auf der Mailingliste Full-Disclosure für das Sality-Botnet beschrieben wird?

Erst mal ändert sich an den Argumenten oben nichts: Auch hier ist der "Anti-Schadcode" unerwünscht, er kann unerwartete Nebenwirkungen haben, sollte von Virenscannern erkannt werden und der kompromittierte Rechner bleibt kompromittiert. Wiegt das den Vorteil der fehlenden Schadfunktion auf?

Meines Erachtens nicht. Da die vom Schadcode ausgenutzte Schwachstelle noch vorhanden ist und der Schädling selbst ja auch noch im Internet unterwegs ist, dürfte es nicht lange dauern, bis der "befreite" Rechner wieder infiziert ist. Ein Austausch von Schadcode durch harmlosen Code kann zu leicht negative Auswirkungen haben, wie man ja schon z.B. im Fall des Wurms Welchia sehen konnte, der die vom Wurm Blaster ausgenutzte Schwachstelle automatisch schließen sollte und u.U. zu Abstürzen der infizierten Rechner führte. Für die so entstehenden Schäden ist dann der Autor des "Anti-Schadcodes" verantwortlich. Selbst wenn der in einem Staat lebt, in dem ihm keine strafrechtliche Verfolgung droht, dürfte er kaum vor Schadenersatzforderungen sicher sein.

Nur zur Erinnerung: Im Fall von Sality verzichten einige Virenscanner aus Sicherheitsgründen darauf, alle Manipulationen rückgängig zu machen (nur um beim aktuellen Beispiel zu bleiben, das gilt entsprechend auch für manch anderen Schädling). Wer gegen den Willen des betroffenen Benutzers Schadcode manipuliert, begibt sich also auf sehr dünnes Eis. Zwischen "gut gemeint" und "gut gemacht" liegen bekanntlich mitunter Welten!

Carsten Eilers

Trackbacks

Keine Trackbacks