Wie erkenne und entferne ich einen Linux-Trojaner?


16

Ich bin kürzlich (wieder) darauf gestoßen:

Ja, ich weiß, dass das Hinzufügen einer zufälligen PPA / Software von einer nicht vertrauenswürdigen Quelle zu Problemen (oder Schlimmerem) führt. Ich mache das nie, aber viele machen es (viele Linux-Blogs und -Tabloids fördern das Hinzufügen von PPAs für ausgefallene Apps, ohne zu warnen, dass es Ihr System beschädigen oder schlimmer noch, Ihre Sicherheit gefährden könnte.)

Wie kann ein Trojanisches Pferd oder eine Schurkenanwendung / -schrift erkannt und entfernt werden?


Ich habe die gleiche Frage gestellt (3 Minuten nachdem ich hier gefragt habe) unter: askubuntu.com/questions/13265/… Lassen Sie mich wissen, wenn dies eine Verletzung ist, ich werde eine von ihnen löschen.
Iamsid

Antworten:


20

Es gibt kein allgemeines Rezept. Wenn Ihr System von einem unbekannten Trojaner infiziert wurde, können Sie es nur neu installieren.

Wenn Sie wissen, dass der Trojaner auf eine bestimmte Art und Weise funktioniert - zum Beispiel, dass der Trojaner den Kernel nicht infiziert -, gibt es möglicherweise einen weniger harten Weg, sich zu erholen. Aber das hängt ganz davon ab, wie sich der Trojaner verhält. Wenn Sie nur Symptome haben (wie das Versenden von Spam durch Ihren Computer ohne Ihre Zustimmung), gibt es keine generelle Technik: Der Trojaner-Detektor muss schlauer als der Trojaner-Designer sein (und Glück haben). Für Trojaner ist das Erkennen und Verstecken wie Waffen und Rüstungen: Es gibt eine technologische Eskalation, und keine Partei hat einen wesentlichen Vorteil (obwohl die Versteckspieler einen Vorsprung haben).

Viele Systeme verfügen über einen sicheren Vertriebskanal. Wenn Sie beispielsweise ein Paket aus den Ubuntu-Repositorys mit den apt-basierten Tools (apt-get, aptitude, synaptic, software center, ...) installieren, überprüft das Tool, ob das Paket von jemandem signiert (überprüft) ist, dem Ubuntu vertraut. (Die meisten Distributionen haben einen ähnlichen Mechanismus.) Wenn Sie ein Paket von einem PPA installieren, können Sie nur wissen, dass der PPA-Besitzer das Paket überprüft hat. Dies ist keine Hilfe, wenn Sie dem PPA-Besitzer überhaupt nicht vertrauen.

In Bezug auf Trojaner und Hintertüren empfehle ich dringend, Ken Thompsons Turing-Preisvortrag „ Reflections on Trusting Trust“ zu lesen . Zusammenfassend hat er den Compiler so geändert, dass er beim Kompilieren des Anmeldeprogramms Code hinzufügt, mit dem er sich mit einem geheimen Passwort anmelden kann. Dann änderte er den Compiler so, dass er beim Kompilieren den Code zum Hinzufügen der Hintertür einfügt. dann kompilierte er das gesamte System neu (insbesondere das Anmeldeprogramm und den Compiler); Schließlich stellte er die Compilerquelle auf die ursprüngliche, unbestreitbare Quelle zurück. Lesen Sie noch einmal Ken Thompsons Artikel . Dann können Sie auch den Kontrapunkt von David Wheeler lesen , der vielleicht am besten in Bruce Schneiers Blog-Artikel zu finden ist .


+1 für die beschreibende Antwort und für die Empfehlung dieser Artikel: Sie haben mein Wissen erweitert. Vielen Dank.
iamsid

7

Wenn ich richtig verstehe, konnte der in diesem Artikel beschriebene Trojaner nicht auf "normale" Weise als "normale" Malware erkannt werden. Dieser IRCd hat sich bis zu seiner Verwendung normal verhalten, sodass der Administrator diese Sicherheitslücke nur dann finden konnte, wenn: 1) er verwendet wurde und die von dieser Lücke ausgeführten Aktionen zu Einträgen in Protokollen führten oder auf andere Weise sichtbar waren, 2) der Quellcode gelesen wurde.

"Echte" Linux-Malware sollte auch von AV-Software für Linux oder AV LiveCD Rescue Disks erkannt werden, damit Sie Computer mit dieser Software scannen können. Wie Sie in der Liste in SecureList sehen können, gibt es 1941 Einträge mit Linux-Namen, und diese Software sollte von Kaspersky-Software erkannt werden. Ein kurzer Blick auf diese Liste zeigt, dass es in vielen Einträgen um einige DDoS-Tools und Exploits oder Tools geht, die sich nicht automatisch verbreiten lassen und nur als Tools für Angriffe verwendet werden können (also nicht schädlich sind).

Um zu überprüfen, ob von Cracker installierte Backdoors / Rootkits vorhanden sind, können Sie ein Tool verwenden, mit dem die Dateiprüfsummen überprüft werden. Jede neue Datei oder Datei mit falscher Prüfsumme ist verdächtig. Die Liste der Prüfsummen und Tools, die sie generieren, sollte sich auf einem Nur-Lese-Medium befinden (der Cracker könnte zum Beispiel auch die md5sum für seine eigene Version ändern, die falsche Prüfsummen anzeigt). Diese Methode zum Auffinden von Malware kann auf "stabilen" Systemen verwendet werden, auf denen die Software nicht täglich aktualisiert wird.

Einige Malware-Programme werden möglicherweise netstatlokal ausgeführt, um den Netzwerkverkehr zu überprüfen. Wenn das System infiziert ist, können die von angezeigten Daten netstatjedoch auch geändert werden. In diesem Fall besteht eine Lösung darin, den Netzwerkverkehr von einem anderen Computer aus zu überwachen (z. B. vom Router, um zu überprüfen, welcher Verkehr an das Internet gesendet wird).


4

SELinux und AppArmor dienen der Vorbeugung von Trojanern / Rootkits und anderen Infektionen. Ich erzähle den Fall für SELinux, den ich besser kenne. Wenn SELinux aktiviert ist, geben Sie allen Prozessen (einschließlich Daemon), die Sie auf dem Computer installieren, einen Kontext. Sie beschriften auch das Dateisystem, um mit dem Kontext zu arbeiten, und passen es an. Wenn ein Prozess versucht, etwas zu tun, das nicht in seinem Kontext liegt, erhalten Sie eine Meldung, und wenn sich SELinux im Erzwingungsmodus befindet, kann die Aktion nicht abgeschlossen werden.
Auf diese Weise wäre ich nicht dazu berechtigt, wenn Ihr ircd-Trojaner bereit wäre, den Befehl ps oder etwas anderes zu überschreiben (übliche Strategie für Trojaner / Rootkits / Würmer, um eine Erkennung zu vermeiden). Und Sie würden informiert werden.
Ich weiß, dass es schwierig zu konfigurieren ist, aber meine Computer arbeiten derzeit mit SELinux, und meine (zwei) Fedora-Laptops können alles tun, was ein Desktop benötigt, ohne zu viel Aufwand.
Sogar mein Heimserver befindet sich jetzt im Erzwingungsmodus.
Eine andere Strategie ist die regelmäßige Ausführung von Rootkit-Detektoren, die eine Prüfsumme für die Cirtical-Befehle berechnen und Sie über Änderungen in den Basisbefehlen informieren.
Ich arbeite sowohl mit dem SELinux als auch mit dem rkhunter (plus einem Clamav-Antivirus).

Grüße


2

Eine andere Antwort behauptete, dass "Hiders" (Stealth-Malware) einen intrinsischen Vorteil gegenüber "Detektoren" hätten. Ich stimme dir nicht zu. Dies ist der Fall, wenn Sie sich auf Erkennungsansätze beschränken, die auf Signaturen oder Heuristiken zur Erkennung von Malware beruhen. Es gibt jedoch noch eine andere Möglichkeit, Malware zu erkennen: Überprüfen Sie bekannte Waren. Tripwire, AIDE usw. können Dateien auf der Festplatte überprüfen. Second Look kann den laufenden Kernel und die Prozesse überprüfen. Second Look verwendet die Speicherforensik, um das Betriebssystem, aktive Dienste und Anwendungen direkt zu überprüfen. Es vergleicht den Code im Speicher mit dem vom Linux-Distributionsanbieter veröffentlichten Code. Auf diese Weise können böswillige Änderungen, die von Rootkits und Backdoors vorgenommen wurden, sowie von nicht autorisierten Programmen, die ausgeführt werden (Trojaner usw.), sofort erkannt werden.

(Offenlegung: Ich bin der Hauptentwickler von Second Look.)

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.