Ich verwende eine Installation von Ubuntu 14.04, die ich über 6 Monate eingerichtet habe. Vor ungefähr einer Woche bekam ich eine Fehlermeldung:
Could not grab keyboard. A malicious client may be eavesdropping on your session.
Ich habe es erst gesehen, als ich nach längerer Abwesenheit (normalerweise über Nacht) zu meinem Computer zurückgekehrt bin. Es hat mehrmals verhindert, dass der Bildschirm nach dem eingestellten Timeout gesperrt wird (ich habe damit begonnen, ihn vor dem Verlassen aktiv zu sperren).
Ich verwende eine USB-Tastatur (Kinesis Advantage), die direkt mit einem USB-Anschluss auf dem Motherboard verbunden ist. Ich benutze eine drahtlose ELECOM- Maus.
Ich werde versuchen, den Maus-Dongle zu entfernen, bevor ich gehe. Wie kann ich sonst feststellen, ob ein böswilliger Client meine Tastatureingaben verfolgt oder ob dies ein Konnektivitätsproblem ist?
Antworten:
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:
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 herunterladenapt-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
. Dagnome-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 diegnome-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 aufHigh
oder zu setzenExtreme
. Dies kann natürlich auch verhinderngnome-ssh-askpass
selbst aus der Tastatur greifen, oder genauer: denX
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 daslsof
Dienstprogramm (Liste geöffneter Dateien) verwenden.Beachten Sie, dass die meisten Prozesse, die Geräte in einer typischen Desktop-Umgebung offen halten, offen halten
Einige Hintergrundinformationen zu den Vorgängen hier:/dev/pts/<N>
(eine Pseudotty ). Dies sind die "Geräte" von Interesse.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 dasX
Protokoll ansehen:/var/log/Xorg.0.log
Wokeyboard
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 gehaltenX
, der Prozess hat nur (oder greift) "Fokus" oder die Aufmerksamkeit vonX
soX
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:
In der Zusammenfassung der Antwort wird ein Skript wie das folgende in einem Terminal ausgeführt, während Sie mit der Maus navigieren:
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 wielsof
(offene Dateien auflisten), Debugger, die den Prozessstatus prüfen, und Dienstprogramme für die Prozessauflistung wieps
odertop
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:
Ordnen Sie $ pid der ausführbaren Datei auf der Festplatte zu:
Ordne $ pid seinem aktuellen Arbeitsverzeichnis zu:
Ordnen Sie $ pid seiner ursprünglichen Umgebung zu
Verfolgen Sie die Systemaufrufaktivität von $ pid (und seinen untergeordneten Prozessen) in Echtzeit:
(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 wirdsendto
, haben Sie möglicherweise einen Tastaturschnüffler gefunden.Sie können auch überprüfen, auf welchen Prozessen (tcp + udp) Netzwerkendpunkte geöffnet sind:
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.
quelle
/dev/pts/7
(nur 3 eindeutige PID-Werte). Durch die Ergebnisse zu scrollen scheint das hilfreichste Gerät zu sein,/dev/pts/15
obwohl einige es halten1, 3, 12, 16, 17, 21, 22, 23, 24, 25, 25, 26, 27, 28, 29, 30, 31, 32, 34
. Ist die Tastatur immer7
? Wie erkenne ich, welche davon meine Tastatur ist?/usr/bin/X
) geöffnet, da/dev/input/eventN
Sie es finden können,N
indem Sie sich die Zeichenfolgeevdev
in ansehen/var/log/Xorg.0.log
. Xorg "leitet" dann jeden Tastaturklick an den einzelnen Prozess weiter, bei dem der Mauszeiger zu diesem bestimmten Zeitpunkt "fokussiert" ist. Wenn ich laufe,ssh-askpass
sehe ich, dass es/dev/pts/3
offen ist, aber in jeder Umgebung kann es ein beliebiges Pseudo-Gerät sein. Jeder von Ihnen/dev/pts/N
könnte hier relevant sein.{firefox}
wenn ich auf Firefox klicke, und{thunderbird}
wenn ich Thunderbird auswähle. Nichts ist so unerwartet. Vielleicht liegt das an Ihrem Fazit: Das Problem kommt nicht von etwas, das die Tastatur greift. Ich wünschte, ich wäre sicher, dass dieser Hinweis bedeutungslos ist oder ihn beseitigen könnte.firefox
), als Sie eine Website mit einem Popup-Fenster besucht haben, das den Fokus auf sich zieht. Sofern Sie nicht regelmäßig Software von zweifelhaften (nicht-kanonischen) Quellen herunterladen und installieren, bezweifle ich, dass Sie versehentlich einen Tastatur-Sniffer auf Ubuntu installiert haben. Es ist gut, ein bisschen paranoid zu sein, aber es besteht kein Grund, darüber zu schwitzen.Mein Problem war wegen zwei gleichzeitigen
gnome-ssh-askpass
Fenstern. Ich hatte zwei rsync-Jobs über SSH auf demselben Server und beide haben versucht, das Kennwort des SSH-Zertifikats anzufordern. Sie zu gruppieren (und zu verketten) löste sich für mich!quelle