Kolejna wpadka Lenovo – mechanizmy keyloggera w laptopach ThinkPad

dodał 23 lutego 2015 o 11:07 w kategorii Prywatność, Wpadki  z tagami:
Kolejna wpadka Lenovo – mechanizmy keyloggera w laptopach ThinkPad

Po ogromnej wpadce z oprogramowaniem Superfish oferującym niechciane reklamy a przy okazji poważnie zagrażającym bezpieczeństwu użytkownika, Lenovo z kolei ma problem z pewnym programem w ThinkPadach.

Kilka dni temu w laptopach Lenovo odkryto poważny problem z bezpieczeństwem, który mógł zagrozić prywatności przeglądania bezpiecznych stron internetowych. Tym razem pracownicy polskiej firmy Prevenity natrafili na podejrzane funkcje innej aplikacji instalowanej domyślnie na laptopach ThinkPad.

Niedokończony keylogger

Na blogu Prevenity możemy przeczytać o ciekawej funkcji aplikacji USB Enhanced Performance Keyboard w wersji 2.0.1.9. Rejestruje ona wszystkie uderzenia klawiszy użytkowników. Aplikacja uruchamiana z klucza rejestru  HKLM\Software\Microsoft\Windows\CurrentVersion\Run ładuje bibliotekę SKHOOKS.DLL, która za pomocą funkcji SetWindowsHookExA() rejestruje procedurę przechwytującą, monitorującą zdarzenia  dotyczące klawiatury.

Funkcja przechwytująca naciśnięte klawisze

Funkcja przechwytująca naciśnięte klawisze

Należy tutaj podkreślić, że nie jest to w pełni funkcjonalny keylogger – aplikacja naciśnięcia klawiszy rejestruje i w formie kodów ASCII udostępnia poprzez funkcję API OutputDebugString(). Do pełnej funkcjonalności brakuje drugiego modułu, który odbierze generowane informacje i je utrwali. Nie znaleziono także śladów zapisu naciskanych klawiszy na dysku ani przesyłania ich za pośrednictwem sieci. Po co zatem taka funkcja w zainstalowanej na laptopie aplikacji?

Odpowiedź prawdopodobnie znajduje się w nazwie API. OutputDebugString w założeniu służy do przekazywania danych do debuggera. Funkcja ta wygląda na pozostawioną przez pomyłkę i mającą na celu wsparcie rozwiązywania problemów z aplikacją lub obsługiwaną przez nią klawiaturą. Aby odebrać rejestrowane przez nią znaki wystarczy użyć narzędzia DebugView z pakietu Sysinternals lub programu napisanego przez autora odkrycia.

Gdzie leży ryzyko?

Nie mamy powodu podejrzewać Lenovo o celowe pozostawienie ukrytych funkcji w aplikacji. Brak jakichkolwiek przesłanek wskazujących na złą wolę firmy. Jednak tak samo jak w przypadku aplikacji Superfish, ryzyko posiadania tej aplikacji na dysku nie wynika z niej samej, a z możliwych skutków ubocznych. Dysponując wiedzą o istnieniu funkcji rejestrującej klawisze przestępcy mogą w łatwy sposób stworzyć aplikację odbierającą udostępniane w ten sposób dane, nie zawierając w swoim złośliwym programie kodu monitorującego klawiaturę. W ten sposób złośliwa aplikacja może łatwiej uniknąć wykrycia przez mechanizmy analizy behawioralnej lub statycznej. Lenovo powinno było wyeliminować kod używany na etapie testów z aplikacji przekazywanej do wdrożenia produkcyjnego i niestety tego nie zrobiło.