So lösen Sie Ihr Rätsel. Das Ziel ist es, den Benutzern das "Fischen" beizubringen, indem sie Standard-Ubuntu-Dienstprogramme verwenden, um die Details aller Prozesse auf ihrem System zu untersuchen.
Schritt 1 (hauptsächlich aus Neugier): Identifizieren Sie, welches Programm Ihnen diesen Fehler liefert:
# -- You may need to search under more dirs, YMMV
# List files (incl. binaries) which contain the warning string
$ sudo grep -ral 'malicious client may be eavesdropping' /usr /bin /lib
/usr/lib/openssh/gnome-ssh-askpass
In meinem env ist das einzige Programm, das diese Warnzeichenfolge in seiner Binärdatei enthält gnome-ssh-askpass
. Ich könnte suchen, ob ein Fehler in diesem bestimmten Programm vorliegt, und sogar dessen Quelle herunterladen apt-get source ssh-askpass-gnome
(beachten Sie, dass sich der Paketname vom Programmnamen unterscheidet), um ihn weiter zu untersuchen.
Ich vermute jedoch, dass die Grundursache kein Problem ist gnome-ssh-askpass
. Da gnome-ssh-askpass
nach Ihrer Passphrase gefragt wird, haben sich die Entwickler einfach dazu entschlossen, auf Nummer sicher zu gehen, wenn sie die Tastatur nicht greifen, das Worst-Case-Szenario annehmen und die Nachricht überparanoid klingen lassen. Beachten Sie jedoch, dass es wahrscheinlich keine gute Idee ist, Ihr Passwort oder Ihre Passphrase versehentlich in ein zufälliges Dialogfeld auf einer Website einzugeben. In diesem Sinne haben die gnome-ssh-askpass
Entwickler den richtigen Anruf getätigt.
In letzter Zeit beschäftigen sich immer mehr Websites mit dem Anzeigen eines Popups, dem Ausblenden aller anderen Elemente außerhalb des Popup-Dialogfelds und dem aggressiven Fokussieren. Dies könnte die Hauptursache dafür sein gnome-ssh-askpass
, dass die Tastatur nicht erfasst werden kann. Wenn Ihr Browser auf einer solchen Website geöffnet ist, kann das Schließen des Browsers oder das Verlassen der aggressiven Website hilfreich sein. Wenn dies die Ursache ist, sind Sie möglicherweise an einer Desktop-Einstellung interessiert, die verhindert, dass einzelne Prozesse den vollständigen (vollständigen Desktop-) Fokus erhalten. In KDE finden Sie diese Einstellung beispielsweise unter ( Systemeinstellungen -> Fensterverhalten -> Fokus -> Fokusdiebstahlschutz ). Wenn Sie sich wirklich paranoid fühlen, würde ich empfehlen, es auf High
oder zu setzen Extreme
. Dies kann natürlich auch verhinderngnome-ssh-askpass
selbst aus der Tastatur greifen, oder genauer: den X
Fokus greifen .
Schritt 2: Identifizieren Sie verdächtige Prozesse:
Da Geräte unter Unix wie Dateien aussehen /dev
, lautet die nächste Frage, welches Gerät "die Tastatur" in der Dateisystemhierarchie darstellt. Wir können dafür das lsof
Dienstprogramm (Liste geöffneter Dateien) verwenden.
# look for processes holding devices open, filter out some common ones:
$ sudo lsof | grep /dev | grep -vE '/(null|urandom|zero)'
Beachten Sie, dass die meisten Prozesse, die Geräte in einer typischen Desktop-Umgebung offen halten, offen halten /dev/pts/<N>
(eine Pseudotty ). Dies sind die "Geräte" von Interesse.
Einige Hintergrundinformationen zu den Vorgängen hier:
In einem typischen grafischen Linux-Desktop kommunizieren Prozesse nicht direkt mit der Tastatur. Stattdessen X
steuert das Programm (Xorg) alle Tastaturereignisse über ein Gerät /dev/input/event<N>
. X
verwendet einen Event-Handler (evdev), der unter anderem Tastaturereignisse behandelt. Sie können dies auch überprüfen, indem Sie sich das X
Protokoll ansehen: /var/log/Xorg.0.log
Wo keyboard
wird es erwähnt ?
Die Tastaturereignisse werden vom X
Ereignishandler über die am geöffnete Prozess-Standardeingabe jederzeit an den Prozess weitergeleitet, der den Mauszeigerfokus hat /dev/pts/<N>
. Streng genommen: Ein Prozess "greift nicht wirklich nach der Tastatur", die Tastatur wird von gehalten X
, der Prozess hat nur (oder greift) "Fokus" oder die Aufmerksamkeit von X
so X
kann Tastaturereignisse über einen offenen stdin-Dateideskriptor an ihn weiterleiten /dev/pts/<N>
.
Schritt 3: Welchen Prozess hat der Xorg-Fokus zu einem bestimmten Zeitpunkt?
Wie kann man herausfinden, welcher Prozess zu einem bestimmten Zeitpunkt im Mittelpunkt steht? Hier ist eine Askubuntu-Frage, die dies beantwortet:
Finden Sie die Anwendung unter der Maus heraus
In der Zusammenfassung der Antwort wird ein Skript wie das folgende in einem Terminal ausgeführt, während Sie mit der Maus navigieren:
#!/bin/bash
# Print the process tree of the window currently in focus.
# prereqs:
# sudo apt-get install xdotool psmisc
while true; do
pstree -spaul $(xdotool getwindowpid "$(xdotool getwindowfocus)")
sleep 2
done
Schritt 4: Vertiefen Sie sich in die Prozessaktivität
Sobald Sie einen verdächtigen Prozess identifiziert haben, müssen Sie diesen einzelnen Prozess untersuchen. Dazu können Sie sich an das Linux- /proc
Dateisystem ( man 5 proc
) wenden .
Fast alles, was Sie über einen Prozess wissen möchten, finden Sie unter /proc
. Programme wie lsof
(offene Dateien auflisten), Debugger, die den Prozessstatus prüfen, und Dienstprogramme für die Prozessauflistung wie ps
oder top
sind alle darauf angewiesen, /proc
welche Daten vom Kernel ausgefüllt werden.
Wenn proc
Sie feststellen, wo sich das ausführbare Prozessprogramm auf der Festplatte befindet (z. B. ein Programm außerhalb der Standardsystemverzeichnisse, insbesondere, wenn es versucht, sich unter einem Namen zu verstecken, bei dem ich nicht aufpasse), kann dies verdächtig sein und verwendet werden Mit einem Debugger oder Systemaufruf-Tracer können Sie überprüfen, was genau sie auf der Ebene des Systemaufrufs tun (auch wenn Sie keinen Quellcode haben).
Die Schritte 2 und 3 sollten Ihnen alle Prozess-IDs geben PID
, die möglicherweise Ihre Tastatur lesen können. Für jede dieser PIDS (bezeichnen wir jede als $pid
) können Sie:
Ordnen Sie $ pid der vollständigen Befehlszeile zu:
cat /proc/$pid/cmdline
Ordnen Sie $ pid der ausführbaren Datei auf der Festplatte zu:
ls -l /proc/$pid/exe
Ordne $ pid seinem aktuellen Arbeitsverzeichnis zu:
ls -l /proc/$pid/cwd
Ordnen Sie $ pid seiner ursprünglichen Umgebung zu
cat /proc/$pid/environ | tr '\000' '\012'
Verfolgen Sie die Systemaufrufaktivität von $ pid (und seinen untergeordneten Prozessen) in Echtzeit:
strace -f -p $pid
(Es gibt noch mehr: siehe man 5 proc
)
Wenn Sie einen unbekannten Vorgang sehen, der auf jeden Tastendruck reagiert, indem er in einer Datei (Via write
) gespeichert oder über das Netzwerk an Via gesendet wird sendto
, haben Sie möglicherweise einen Tastaturschnüffler gefunden.
Sie können auch überprüfen, auf welchen Prozessen (tcp + udp) Netzwerkendpunkte geöffnet sind:
# See 'man netstat' for details on all options used below
$ sudo netstat -tunapee
Endeffekt:
Die wahrscheinlichste Ursache für den Fehler ist nicht Malware, sondern mehrere Prozesse, die gleichzeitig versuchen, die Tastatur zu steuern. Einer der beiden ist gnome-ssh-askpass
(derjenige, der den Fehler druckt). Der andere ist möglicherweise ein offener Browser auf einer Website mit einem aggressiven Dialogfeld zum Erfassen des Fokus.
Selbst wenn aus der Ferne Malware installiert ist, ist die gute Nachricht, dass alle Prozesse für Sie transparent sind, da Sie unter Linux arbeiten. Es ist sehr schwierig für Malware, sich wirklich vor Ihnen zu verstecken oder zu verhindern, dass Sie sie mithilfe der oben genannten Techniken leicht finden, ihre Prozesse beenden und alle ihre Dateien entfernen.