keylogger
| Po angielsku | keylogger |
|---|---|
| Którą formą pisać | po angielsku Polski odpowiednik istnieje, ale w praktyce nikt tak nie pisze. Zostaw angielski, polski trzymaj jako synonim. |
| Inne formy | rejestrator klawiszy · program rejestrujący naciśnięcia klawiszy |
| Kategoria | Złośliwe oprogramowanie |
Keylogger to program albo urządzenie, które zapisuje naciśnięcia klawiszy, żeby przechwycić hasła, numery kart i inne wpisywane dane. W katalogu MITRE ATT&CK keylogging to technika T1056.001, podtechnika przechwytywania danych wejściowych: przeciwnik rejestruje naciśnięcia klawiszy, aby przejąć dane logowania w chwili, gdy użytkownik je wpisuje [1]. Keylogger bywa samodzielnym narzędziem, ale częściej jest jedną z funkcji szerszego złośliwego oprogramowania (malware), na przykład infostealera albo RAT-a.
Jak działa
MITRE opisuje kilka sposobów realizacji tej techniki: przechwytywanie wywołań API obsługujących klawiaturę (tzw. hooking), odczyt surowych danych z bufora sprzętowego, zmiany w rejestrze Windows, własne sterowniki oraz modyfikację obrazu systemu na urządzeniach sieciowych [1]. Technika dotyczy systemów Windows, Linux, macOS i urządzeń sieciowych [1]. W ATT&CK należy do dwóch taktyk: zbierania danych i kradzieży danych uwierzytelniających [1].
Zebrane znaki keylogger zapisuje lokalnie albo odsyła do serwera atakującego. Schemat poniżej pokazuje typowy obieg danych w wariancie programowym.
Rodzaje
Keyloggery dzieli się według tego, gdzie działają. Tabela zestawia główne odmiany.
| Rodzaj | Gdzie działa | Przykład ze źródeł |
|---|---|---|
| programowy (system) | proces lub sterownik w systemie ofiary [1] | funkcja „logowanie wciśniętych klawiszy” w malware z 2015 roku [4] |
| sprzętowy | między klawiaturą a komputerem [3] | kabel O.MG Cable [3] |
| w przeglądarce (JavaScript) | skrypt wstrzyknięty w stronę [5] | kampania na stronach WordPress z przełomu 2017 i 2018 roku [5] |
| niezamierzony | legalne oprogramowanie z błędem [2] | sterownik audio Conexant w laptopach HP [2] |
Wariant w przeglądarce jest dla właściciela strony najważniejszy, bo działa na cudzych komputerach, ale z kodu jego witryny. Blisko mu do web skimmingu, który podsłuchuje formularze płatności.
W WordPressie
Keylogger nie musi siedzieć na komputerze ofiary. Wystarczy, że atakujący dopisze skrypt do strony, którą ofiara odwiedza. Tak działała kampania opisana w styczniu 2018 roku: złośliwy kod wstrzykiwano do bazy danych WordPressa albo do pliku functions.php motywu [5]. Keylogger przechwytywał dane zarówno ze strony logowania administratora, jak i z publicznej części witryny [5]. Poprzednia fala tej kampanii, z grudnia 2017 roku, objęła ponad 5400 stron, a skrypty ładowano z domeny cloudflare[.]solutions [5]. W styczniu 2018 roku ponownie wykryto zakażenie na ponad 2000 witryn, tym razem przez nowe domeny [5]. Obok keyloggera ten sam kod uruchamiał koparkę kryptowaluty CoinHive, czyli cryptojacking [5].
Plik functions.php jest częścią każdego motywu, dlatego atakujący, który ma zapis do plików, dopisuje kod właśnie tam. Drogą wejścia bywa podatność w motywie albo we wtyczce, przejęte hasło lub wbudowany edytor plików motywów i wtyczek. Dokumentacja WordPressa wskazuje, że stała DISALLOW_FILE_EDIT w wp-config.php odbiera wszystkim użytkownikom uprawnienia edit_themes, edit_plugins i edit_files [6].
define( 'DISALLOW_FILE_EDIT', true );
Zagrożenia i skutki
Głównym celem keyloggera są hasła. MITRE wprost podaje przechwycenie danych logowania jako cel techniki [1]. Skradzione hasło administratora prowadzi do przejęcia konta, a hasło wpisane w formularzu sklepu może dotyczyć także innych serwisów, gdzie użytkownik użył tego samego hasła.
Keylogger niezamierzony jest groźny inaczej. W 2017 roku firma modzero wykazała, że program MicTray64.exe, instalowany ze sterownikiem audio Conexant, zapisywał wszystkie naciśnięcia klawiszy do pliku C:\Users\Public\MicTray.log, który mógł odczytać każdy użytkownik systemu [2]. Gdy pliku nie było, znaki trafiały do interfejsu OutputDebugString, z którego mógł je odczytać dowolny proces w kontekście użytkownika [2].
Jak się bronić
MITRE zaznacza, że keyloggingu nie da się łatwo zablokować środkami prewencyjnymi, bo opiera się na nadużyciu zwykłych funkcji systemu [1]. Nacisk pada więc na wykrywanie: monitorowanie podejrzanych wywołań SetWindowsHookEx w procesach bez interfejsu w Windows, nieuprawnionego dostępu do urządzeń /dev/input w Linuksie i usług przechwytywania zdarzeń w macOS [1]. Takie zdarzenia zbiera i analizuje EDR (Endpoint Detection and Response).
Po stronie witryny WordPress liczą się środki, które utrudniają dopisanie skryptu i skracają czas jego działania.
- Aktualizacje. Dokumentacja WordPressa przypomina, że starsze wersje nie dostają poprawek bezpieczeństwa [6].
- Uprawnienia plików. Zalecane są prawa 755 dla katalogów i 644 dla plików [6]; zob. uprawnienia plików.
- Drugi składnik logowania. Dokumentacja zaleca weryfikację dwuetapową obok silnego hasła [6]. Uwierzytelnianie wieloskładnikowe (MFA) sprawia, że samo przechwycone hasło nie wystarcza.
- Kontrola zmian. Monitorowanie integralności plików wykrywa zmianę
functions.php. - Polityka treści. CSP (Content Security Policy) to zestaw instrukcji dla przeglądarki, które ograniczają, co może robić kod strony [7]. Ścisła polityka utrudnia ładowanie skryptów i wysyłanie danych do obcych domen.
Po wykryciu infekcji zalecano usunięcie kodu z functions.php, przeszukanie tabeli wp_posts, zmianę wszystkich haseł WordPressa i aktualizację motywów, wtyczek oraz oprogramowania serwera [5]. Opisuje to szerzej czyszczenie przejętej strony.
Przed keyloggerem sprzętowym chroni głównie kontrola fizyczna. Sekurak przy okazji kabla O.MG radził nie podłączać do komputera nieznanych urządzeń USB [3].
Historia i przykłady
- Czerwiec 2015. CERT Polska opisał złośliwe oprogramowanie podszywające się pod akta afery podsłuchowej; wśród jego funkcji wymieniono logowanie wciśniętych klawiszy i kradzież haseł zapisanych w przeglądarkach [4].
- Maj 2017. Ujawniono rejestrowanie klawiszy przez sterownik audio Conexant; podatne były m.in. laptopy HP z linii EliteBook, ProBook i ZBook [2].
- Grudzień 2017 – styczeń 2018. Kampania keyloggera i koparki CoinHive na stronach WordPress [5].
- Sierpień 2022. Sekurak opisał kabel O.MG, który emuluje klawiaturę, działa jako sprzętowy keylogger i ma wbudowany router Wi-Fi [3].
Przypisy
7- [1] T1056.001 Input Capture: Keylogging · MITRE ATT&CK
- [2] Keylogger w sterownikach audio – podatne laptopy HP i innych vendorów · Sekurak
- [3] W tym „zwykłym” kablu USB udało się upakować keyloggera, router WiFi oraz tryb udawania prawdziwej klawiatury · Sekurak
- [4] Złośliwe oprogramowanie udaje akta afery podsłuchowej · CERT Polska
- [5] Nearly 2000 WordPress Websites Infected with a Keylogger · The Hacker News
- [6] Hardening WordPress — Advanced Administration Handbook · WordPress.org
- [7] Content Security Policy (CSP) · MDN Web Docs
Hasła w tym artykule
16- MITRE ATT&CK
- złośliwe oprogramowanie
- infostealer
- RAT (remote access trojan)
- dane uwierzytelniające
- web skimming
- cryptojacking
- podatność w motywie
- edytor plików motywów i wtyczek
- przejęcie konta
- EDR (Endpoint Detection and Response)
- uprawnienia plików
- uwierzytelnianie wieloskładnikowe
- monitorowanie integralności plików
- CSP (Content Security Policy)
- czyszczenie przejętej strony