Czy inny program na X może przechwycić moje hasło roota podczas pisania go w terminalu wirtualnym?

24

Zwykle instaluję programy open source tylko na moim Linux-ie, ponieważ nie ufam aplikacjom zamkniętym. Ostatnio musiałem użyć Dropbox do projektu uniwersyteckiego. Utworzyłem osobne konto linux o nazwie work i uruchamiam (jako pracę ) Dropbox bez instalacji za pomocą skryptu python. Skrypt utworzył również symbol w zasobniku systemowym, który zapewnia GUI dla niektórych funkcji Dropbox.

Pewnego dnia musiałem trochę popracować, więc otworzyłem wirtualny terminal (konsola na KDE) i wprowadziłem hasło roota dla su .

Czy istnieje szansa, że ​​aplikacja Dropbox mogła przechwycić moje hasło roota?

Używam Fedory 20 z KDE 4.14.3.

problemator
źródło

Odpowiedzi:

24

Krótka odpowiedź: tak.

W „dawnych czasach” można było skutecznie uniemożliwić innym aplikacjom X odczytanie określonego wejścia, chwytając je. Chociaż można to zrobić do dziś, specyfikacja protokołu XI2 wydaje się sugerować, że nie można tego więcej zrobić (patrz opis Raw Events wokół linii 2220). Zatem pod samym X nie jesteś już bezpieczny - przynajmniej nie w zwykłych prostych konfiguracjach. Zobacz także dyskusję pod moją odpowiedzią na Jak pozwolić demonowi pytać o hasło (w Xsession, keyloggersafe)? oraz pytania i odpowiedzi AskUbuntu, o których tam mowa. Nie trzeba dodawać, że tak naprawdę nie robią tego żadne terminale - dlatego aplikacje takie jak OpenSSH lub GnuPG są dostarczane z własnymi pomocnikami interfejsu użytkownika, które chwytają klawiaturę (choć jak wspomniano powyżej, w dzisiejszych czasach nie bardzo to pomaga).

To, co możesz zrobić, to uruchomić aplikację na innym serwerze X, np. Zagnieżdżonym serwerze X, takim jak Xephyrlub Xnest, lub opartym na VNC, takim jak Xvnc. Protokół Wayland powinien również zapewnić pewną ochronę przed podsłuchiwaniem.

Oprócz powyższego aplikacja mogła również próbować wykorzystać niezałataną lukę bezpieczeństwa w systemie i uzyskać w ten sposób podwyższone uprawnienia. Lub zrób coś łatwiejszego, na przykład umieszczając a sui sudootoki na swojej ścieżce przed tymi systemowymi, a tym samym przechwytując hasła (dzięki @Joshua za komentarz).

Peter
źródło
Na przykład przekierowanie sudo do ~ / .evil / sudo i pobranie twojego pw.
Joshua
Nigdy nie byłeś bezpieczny pod X - chwytanie urządzenia po prostu zapobiega generowaniu zdarzeń wejściowych, nie chroni przed programem, takim jak xspyciągłe sondowanie klawiatury, aby dowiedzieć się, które klawisze są w tym momencie naciskane.
alanc
@alanc Czy masz link do źródła?
Peter
@peterph dla xspy? Oryginalna witryna zniknęła, ale w archiwum internetowym zapisano jej kopię na stronie web.archive.org/web/20090207115718/http://www.acm.vt.edu/…
alanc
Ani Xnest, ani Xefyr cię nie ochronią ; wydarzenia normalnie pojawiają się w oknie.
goldilocks