Czym jest keylogger
Czym są keyloggery? Jak działają, jakie znamy ich typy i jak się przed nimi ochronić? Na te pytania postaramy się odpowiedzieć w tym artykule.
Keylogger (znany też jako keystroke logger) jest narzędziem lub typem software, który ma na celu zapisywanie wciskanych klawiszy klawiatury przez użytkownika. Keyloggery występują praktycznie we wszystkich systemach i platformach. Mimo tego, że mogą różnić się miedzy sobą w formie i sposobie, w jaki są zaimplementowane, to ich działanie sprowadza się do przechwycenia wciskanych klawiszy i zapis, pozwalający na późniejsze jego odczytanie. Bywają częścią malware, który ma bardziej rozbudowane możliwości, takie jak zapisywanie zawartości schowka, zrzuty ekranu, zrzuty każdej strony, którą odwiedzamy, czy nawet ciągłego nagrywania ekranu.
Zwykle wykorzystywane są przez cyberkryminalistów do wykradania danych, ale mają również swoje legalne zastosowanie takie jak:
- Monitorowanie dzieci przez rodziców
- Monitorowanie urządzeń przez pracodawców
- Monitorowanie urządzenia przez ich właścicieli
- Badania nad procesem pisania
Początki keyloggerów
Historia keyloggerów ma swoje początki w latach siedemdziesiątych, kiedy to Sowieci opracowali urządzenie szpiegujące elektryczne maszyny do pisania. Wykorzystane zostało tu śledzenie pola magnetycznego emitowanego przez ruchy głowicy drukującej. Keylogger został zainstalowany w maszynach IBM i służył do podsłuchiwania ambasadorów USA w konsulatach w Moskwie i Petersburgu. Odkryty został dopiero w 1984 roku.
Perry Kivolowitz jest autorem jednego z pierwszych keyloggerów softwarowych, który powstał w 1983 roku. Program ten działał w systemie UNIX.
Czemu keyloggery są tak niebezpieczne
Coraz większą częścią tego, co nazywamy życiem dzieje się w cyfrowym świecie. Praktycznie każda jego część, zaczynając od pracy, a kończąc na związkach międzyludzkich, odbywa się, przynajmniej częściowo, na ekranie komputera, czy telefonu. Nie trzeba nawet zbytniej wyobraźni, by uświadomić sobie, jakie konsekwencje może nieść za sobą, dostęp niepowołanych osób do naszych haseł, prywatnej, czy firmowej korespondencji.
Keyloggery, a kryptowaluty
Kryptowaluty stały się niezwykle popularne w ostatnich latach. Nieodwracalność transakcji zapisanych na blockchainie jest jedną z ich najważniejszych cech, ale wiąże się również z niebezpieczeństwem, z którym nie mieliśmy wcześniej do czynienia. W przypadku bankowości transakcje są w mniejszym lub większym stopniu odwracalne. Po odkryciu zhakowanego konta możemy je zablokować. Takiej możliwości nie ma w przypadku kryptowalut — raz stracone klucze prywatne portfela oznaczają utracone środki na zawsze. Bezpieczeństwo w tym przypadku jest niewiarygodnie ważne. Coraz częściej trafiają do nas inwestorzy indywidualni, dla których przeprowadzamy konsultację z tym związane. Keyloggery są jednym z kluczowych niebezpieczeństw, z jakimi spotykają się właściciele kryptowalut.
Keyloggery softwarowe/programowe
Keyloggery programowe w przeciwności do hardwarowych występują w formie kodu. Mogą występować na różny poziomie systemu, a możliwość wykrycia uzależniona jest od poziomu, na którym się znajdują. Im bliżej jądra systemu, tym mniejsze możliwości wykrycia.
Poniżej przykład wygenerowanego tekstu. W tym przypadku zalogowane są nie tylko wciśnięte klawisze, ale dodatkowe dane dotyczące programów, w których zostały wciśnięte.
Rodzaje keyloggerów softwarowych
- Z poziomu hipernadzorcy — to poziom poniżej jądra systemu.
- Z poziomu jądra systemu — keyloggery czy ogólnie malware z tego poziomu jest bardzo trudne do wykrycia. Rootkity na tym poziomie mają możliwość manipulacji aplikacjami, które znajdują się na wyższych poziomach. Tego typu keylogger może działać jako sterownik klawiatury i przechwycić całą komunikację między klawiaturą a systemem.
- Bazujące na API — aplikacje, działające w systemie, korzystają z API klawiatury, by odczytać wciśnięte klawisze. Tego typu keyloggery podłączają się pod API działających aplikacji. Przykładowymi funkcjami do komunikacji z klawiaturą, w systemie Windows, są GetAsyncKeyState(), czy GetForegroundWindow().
- Przechwycające formularze — przechwytują dane wysyłane w formularzach, zanim te zostaną wysłane na serwer.
- Wykorzystujące JavaScript — w tym przypadku dochodzi najczęściej do wstrzyknięcia kodu. JavaScript nasłuchuje wciśnięć np. przy pomocy onKeyUp().
- Man-in-the-Browser — tego typu keyloggery wykorzystują manipulację tabelami pamięci związanymi z przeglądarką lub innymi funkcjami systemu.
Keyloggery hardwarowe/sprzętowe
Są to fizyczne urządzenia. Zwykle występują w formie połączenia pomiędzy komputerem a samą klawiaturą. Urządzenie takie zwykle zaprojektowane jest tak, by przypominać zwykły konektor ps/2, czy przejściówkę USBusb, do której podłącza się klawiaturę.
Keyloggery hardwarowe mają przewagę nad softwarowymi, bo mają możliwość działania od momentu włączenia komputera, a co za tym idzie, mogą przechwycić hasło BIOS, bądź te do odszyfrowania dysku.
Wszystkie keyloggery hardwarowe zawierają dwie części:
- Mikrokontroler, który przechwyca strumień danych i przesyła do pamięci
- NVM (Non-volatile memory) to rodzaj pamięci, która nie traci informacji po odłączeniu od prądu (np. pamięć flash).
Keyloggery mogą przechowywać od paru kilobajtów do gigabajtów. Jeden przycisk klawisza zajmuje jedne bajt w pamięci.
Rodzaje keyloggerów sprzętowych
- Standardowe keyloggery hardware — to te występujące w formie łączącej klawiaturę z komputerem.
- Bezprzewodowe sniffery — przechwytują dane wysyłane przez bezprzewodowe klawiatury i próbują złamać użyte szyfrowanie danych.
- Firmware — te najczęściej atakują BIOS, który jest odpowiedzialny za obsługę klawiatury i może zostać przeprogramowany.
- Nakładki na klawiaturę — te są często stosowane w atakach dotyczących bankomatów.
- Keyloggery akustyczne — wciskane klawisze różnią się między sobą charakterystyką akustyczną. Do dokonania analizy danych pozwalającej odkryć sygnatury akustyczne danych klawiszy potrzebne jest nagranie, które zapisało nie mniej niż 1000 wciśnięć.
- Wykorzystujące emisję elektromagnetyczną — jest możliwe zapisanie, z odległości (maksymalnie) 20 metrów, emisji magnetycznej z kabla klawiatury. Na tej podstawie możliwe jest odczytanie wciskanych klawiszy.
- Optyczna obserwacja — ta metoda nie jest klasycznym keyloggerem, ale umiejscowiona kamera w strategicznym miejscu jest często wykorzystywana do zapisu np. wciskanego PINu.
- Fizyczna inspekcja — analiza odcisków palców wciskanych podczas wprowadzani PINu może zredukować liczbę możliwości z 10 tysięcy do 24.
- Wykorzystujące smartfony — badacze udowodnili, że możliwy jest atak wykorzystujący telefon leżący nieopodal klawiatury, który zapisuje dane z akcelerometru. Podobnie jak w przypadku danych dźwiękowych odczyt podaje się dalszej analizie.
- Wykorzystujące badanie ruchów — ruchy podczas pisania są poddawane analizie statystycznej. Próbuje się znaleźć korelację pomiędzy wykonywanymi ruchami a wciskanymi klawiszami.
Jak bronić się przed keyloggerami?
Tak jak pisaliśmy, keyloggery występują na różnych poziomach systemu, co oznacza, że poniższe metoda skuteczna dla jednego typu nie musi być skuteczna w przypadku innego.
Antykeylogger
To typ oprogramowania, który został stworzony specjalnie w celu wykrywania. Działają na podobnych zasadach jak programy antywirusowe, z tą różnicą, że są wyspecjalizowane w zwalczaniu tego rodzaju malware.
System z zaufanego nośnika
Jeśli chcemy mieć pewność uniknięcia softwarowych keyloggerów, możemy odpalić system z CD/USB. USB powinno być zabezpieczone przed możliwością zapisu. System powinien być zaktualizowany. Ta metoda nie uchroni nas przed keyloggerami z poziomu BIOSa.
Antyspyware / Antywirus
Spyware stało się masowym problemem. Z tego powodu na rynku pojawiło się oprogramowanie pozwalającejego zwalczanie.
Trzeba mieć świadomość, że niektóre programy antywirusowe nie interpretują keyloggerów jako malware i ich nie wykrywają.
Programy monitorujące sieć
Keyloggery najczęściej wysyłają zapis do hakera przy pomocy sieci, co może zostać wykryte przez programy monitorujące.
Automatyczne wypełnianie formularzy
Przeglądarki oferują opcję automatycznego wypełniania formularzy i warto z niej skorzystać.
OTP (One-time password)
OTP to jednorazowe hasła, które są unieważniane po użyciu.
Token (generator kodów)
To urządzenie elektryczne, które jest dodatkowym zabezpieczeniem podczas wykonywania transakcji internetowych. Generuje dodatkowy kod, który zostaje wykorzystany przy uwierzytelnieniu. Są często wykorzystywany jest przy transakcjach bankowych — w Polsce częściej spotyka się karty kodów jednorazowych, ale np. w Wielkiej Brytanii to rozwiązanie jest standardem.
Klawiatura ekranowa
Systemy umożliwiają wprowadzenie tekstu za pomocy wyświetlonej na ekranie klawiatury, którą obsługuje się kliknięciami. Ta metoda nie jest skuteczna przeciwko dużej części keyloggerów, które mogą przechwycić znaki przesyłane z jednej aplikacji do drugiej. Niektóre z keyloggerów mają także możliwość zapisywania zrzutów ekranu.
Software generujący dodatkowe wciśnięcia klawiszy
Tego typu oprogramowanie (keystroke interference software) wstrzykuje dodatkowe wciśnięcia przycisków klawiatury, zmieniając to co zapisuje keylogger w bełkot.
Rozpoznawanie mowy
Systemy umożliwiają dyktowanie. Tego typu rozwiązanie ma takie same wady jak klawiatura ekranowa — ciągle możliwe jest przechwycenie komunikacji między programami.
Pisanie ręczne
Sytuacja wygląda podobnie jak w przypadku rozpoznawania mowy.
Wprowadzanie w błąd podczas pisania
Istnieją metody, które można zastosować, by utrudnić działanie keyloggerom.
Jedna z nich to przerywanie wpisywania hasła dodatkowymi, przypadkowymi wciśnięciami klawiszy w nieaktywnym punkcie interfejsu.
Można też zastosować metodę wpisywania hasła z dodatkowymi znakami, po czym usuwanie ich przy pomocy myszki (zaznaczenie i wycięcie).