Keylogger
Autor: Dean Werner
Sadržaj |
Što je to Keylogger?
Keylogger je aplikacija ili uređaj namijenjen za tajno praćenje onoga što korisnik unosi na računalo putem tipkovnice. Postoje različite metode za bilježenje onoga što korisnik unosi putem tipkovnice, većina alata je u obliku aplikacija koje su skrivene na korisnikovom računalu te putem interneta šalju prikupljene podatke. Također postoje i Keyloggeri u obliku uređaja, najčešće su to mali uređaji koji se priključuju na tipkovnicu između same tipkovnice i računala. Podaci prikupljeni putem Keyloggera prepuni su informacija koje mogu neželjenim osobama omogućiti pristup korisničkim računima korisnika kojeg se tajno prati.
Jedan od primjera korištenja Keyloggera, a tako i posljedice toga vidimo u slućaju gdje je u veljači 2005. godine, Joe Lopez, poslovni čovjek iz Floride, podnio tužbu protiv američke banke "Bank of America". Nepoznati hakeri ukrali su mu $90.000 sa bankovnog računa. Istraga je pokazala da je računalo gospodina Lopez-a bilo zaraženo Keyloggerom. Tako su se hakeri dokopali korisničkog imena i lozinke gospodina te prebacili novce na njihov račun u Latviji. Međutim sud je odbacio tužbu, rekavši da je gospodin Lopez zanemario poduzeti osnovne mjere predostrožnosti pri upravljanju svojim bankovnim računom na internetu. Potpis malicioznog koda odnosno Keyloggera koji je pronađen na njegovom sustavu je dodan u baze gotovo svih antivirusnih alata još u 2003. godini.
S vremenom se razvija sve više i više različitih metoda, jedna od najnovijih metoda je Keylogger ugrađen u zidni USB punjać, kada se priključi na strujnu utičnicu, ovaj uređaj bežičnim putem prikuplja podatke s tipkovnica u okolini te preko mobilnog interneta šalje podatke.
Unutar punjaća nalazi se Arduino mikrokontrolerska pločica koja je zadužena za "snifanje" prometa između tipkovnice i USB modula koji se spaja na računalo. Kako Arduino troši jako malo el. energije, moguće ga je napajati baterijom te tako ovaj uređaj radi i dok nije spojen na vanjsko napajanje. Uređaj je trenutno napravljen da podatke koje je prikupio šalje mobilnim internetom međutim uređaj se može jednostavno doraditi da ih šalje i na bilo koji drugi način kako što je Wi-Fi, spremanje na SD karticu ili sl.
Ovim Keyloggerom bile su pogođene sve bežićne tipkovnice koje nisu koristile enkripciju u komunikaciji sa računalom, a to je većina bežičnih tipkovnica. Ovaj uređaj je jako jeftin i efikasan, cijena izrade ovakvog uređaja je oko $10 zavisno o mogučnostima
Vrste Keyloggera
Hardwerski Ova vrsta Keyloggera se fizički spaja između tipkovnice i računala ili na neki drugi način hardwerom bilježi unos korisnika sa tipkovnice. OVakvi uređaji se također mogu ugraditi i u samu tipkovnicu te na taj način nisu vidljivi. Ovakva riješenja su čisto hardwerska i ne ovise o operacijskom sustavu računala. Za praćenje bežićnih tipkovnica koriste se uređaji koji su slićni onome koji je opisan u prvom poglavlju.
Softwerski
Postoji nekoliko vrsta softwerskih Keyloggera:
- Hypervisor bazirani: ovo je u suštini rootkit gdje se sam OS vrti kao virtualna mašina te je iz njega gotovo nemoguće detektirati sami Keylogger. Blue Pill je primjer takvog Keyloggera.
- Kernel Keylogger: ovakva vrsta se duboko skriva u operacijski sustav računala te tamo presreće ono što korisnik tipka. Ovakva vrsta je rakođer vrlo teška za otkriti.
- API bazirani: ovo je najčešća vrsta keylogger alata. Oni koriste API kuke kako bi se povezali na tipkovnice unutar aktivnih programa. Windows funkcije kao što su: GetAsyncKeyState () , () GetForegroundWindow , itd koriste za prozivanje stanje tipkovnice ili se pretplatite na događaj tipkovnice.
- Memory injection : Memory Injection ( MitB ) keyloggeri mogu mijenjati memorijske tablice. Ubrizgavanje izravno u memoriju može se koristiti u svrhu zaobilaženja Windows UAC (User Account Control). Zeus i Spyeye Trojanci koristiti ovu metodu.
Komercijalni Keyloggeri
Neko od komercijalnih Keylogger alata su:
- Hardwerski
- KeyGrabber
- KeyGhost
Rade sa bilo kojom vrstom tipkovnica, rade na svim platformama, spremaju podatke u internu memoriju ili šalju putem bežićne mreže. Dobri za praktičnu primjenu ali skupi.
- Softwerski
- Refog Keylogger
- Actual Keylogger
- Elite Keylogger
Odličan broj opcija, spremaju puno informacija o korisniku, jedini problem je što svi moderni antivirusni programi blokiraju komercijalne keyloggere te da bi se postavio Keyyloger kako spada treba podesiti antivirusni program da ne blokira Keylogger. Moje osobno iskustvo govori da je ovo jako zahtjevan proces te bez obzira koliko se trudio da antivirus ne blokira Keylogger, uvijek na neki način koći njegov rad.
Primjeri korištenja Keyloggera
Jedan od najvažnijih keylogging incidenata nedavno je krađa od preko $1.000.000 s računa klijenata u skandinavskoj banci Nordea. U kolovozu 2006. klijenti banke počeli su primati mailove, mail adrese pošiljatelja su bile maskirane da izgleda kao da je netko zi banke slao. Kada korisnik otvori datoteku iz privitka, stroj će biti zaražen poznatim Trojanom koji se zove Haxdoor. On će se aktivirati kada se žrtva prijavi na online usluge banke, a Trojan će prikazati obavijest o pogrešci sa zahtjevom da ponovno unesete podatke za prijavu. Keylogger uključen u Trojanski konj će snimati podatake unesene od strane klijenta banke, a kasnije će ih poslati na poslužitelj cyber-kriminalaca. Na taj način cyber kriminalci moglu pristupiti računima klijenata i prijenos novca od njih.
Dana 24. siječnja 2004. godine, zloglasni Mydoom crv izazvao je veliku epidemiju. Crv koristi metode društvenog inženjeringa i organizira DDoS napad na www.sco.com. Stranica je bilo nedostupna ili nestabilna idućih nekoliko mjeseci. Crv je ostavio Trojan na zaraženim računalima koja su naknadno zarazili računala žrtvi novim izmjenama crva. Činjenica da je MyDoom imao Keylogging funkciju za prikupljanje brojeva kreditnih kartica nije bila objavljivana u medijima.
Početkom 2005. godine policija je u Londonu spriječila ozbiljan pokušaj krađe bankovnih podataka. Nakon napada bankarskog sustava, kriminalci su planirali ukrasti 423 milijuna dolara iz Sumitomo Mitsui-a u Londonu. Glavna komponenta Trojanca, bio je keylogger koji je dopuštao kriminalcima pračenje svih podataka koje žrtve koristi pri korištenju ebankarstva.
U svibnju 2005. godine u Londonu je izraelska policija uhitila bračni par, koji se tereti da su u razvoju zlonamjernih programa koji su korišteni od strane nekih izraelskih tvrtki u industrijskoj špijunaži. Prema izvješćima, Trojan se koristi za pristup informacijama koje se odnose na PR agencije Rani Rahav (Izrael je drugi vodeći pružatelj usluga mobilne). Tvrtka Mayer, koja uvozi Volvo i Honda automobile u Izrael, bila je osumnjičena za industrijske špijunaže protiv tvrtke Motors, koja uvozi Audi i Volkswagen vozila u zemlju. Ruth Brier-Haephrati, koji je prodao Keylogger, bio je osuđen na četiri godine zatvora, a Michael je dobio dvije godine zatvora.
U veljači 2006. godine, Brazilska policija uhitila je 55 ljudi koji su uključeni u širenje zlonamjernih programa koji su korišteni za krađu informacija korisnika za bankovne sustave. Keyloggeri su aktivirani kada su korisnici posjetili web stranice svojih banaka, nakon toga su svi podaci poslani kriminalcima. Ukupan iznos novca ukraden iz 200 računaklijenata u šest banaka u zemlji iznosila 4.700.000$.
U otprilike isto vrijeme, slično kazneno dijelo počinila je grupacija sastavljena od mladih (20-30 godina) Rusa i Ukrajinaca. Krajem 2004. godine, grupa je počeo slati klijentima banaka u Francuskoj e-mail koji je sadržavao zlonamjerni program tj. Keylogger. Tijekom 11 mjeseci ukradeno je više od milijun dolara.
Kako se zaštititi od Keyloggera?
Većina antivirusnih tvrtki imaju u svojim bazama poznate Keylogger alate, zaštita od Keyloggera ne razlikuje se od zaštite drugih oblika zloćudnog programa. Primarno je instalirati antivirusni program i održavati antivirusne baze ažurnima. Budući da je glavni cilj Keyloggera, dobiti povjerljive podatke (brojeve bankovnih kartica, lozinke i slično), najlogičniji način da se zaštitimo od nepoznatih Keyloggera su:
- Primjenom jednokratne lozinke ili dvo-faktornom autentifikacijom
- Pomoću sustava s proaktivnom zaštitom dizajniranom za otkrivanje Keyloggera
- Pomoću virtualne tipkovnice
Koristeći jednokratnu zaporku može pomoći minimalizirati gubitke, kako se lozinka može koristii samo jednom, nova se generira svaki puta te je i vrijeme u kojem se može korisiti lozinka ograničeno pa tako ako i zloćudna osoba dođe u posjed jednokratne lozinke pomoću Keyloggera, teško da će je moći iskoristiti te pristupiti povjerljivim informacijama.
Primjer eToken uređaja za generiranje jednokratnih lozinki:
Ovakve uređaje danas koriste sve institucije koje čuvaju povjerljive podatke u svojim korisničkim računima kao što su banke, državne institucije i sl. Primjer eTokena za generiranje jednokratnih lozinki za pristup mBanking i netBanking usluga Erste banke.
Praktični dio projekta
Kao praktični dio projekta izradio sam jednostavan Keylogger u C# programskom jeziku. Aplikacija je napravljena u .NET 2.0 frameworku kako bi mogla raditi i na starijim verzijama Windows OS-a kao što su XP i Win7.
Ovdje vidimo glavno korisničko sučelje aplikacije:
Ovdje vidimo pregled log filea u koji se bilježi sve što korisnik unosi s tipkovnice.
Osim što se podaci mogu pogledati lokalno na računalu, oni se također šalju i na mail svakih 1h.
Glavni dio koda zadužen za prikupljanje podataka o ulazu sa tipkovnice:
using System;
using System.Collections.Generic;
using System.Text;
namespace BlackBox
{
class APIs { [System.Runtime.InteropServices.DllImport("user32.dll", CharSet = System.Runtime.InteropServices.CharSet.Auto)] public static extern int GetWindowText(IntPtr hwnd, string lpString, int cch);
[System.Runtime.InteropServices.DllImport("user32.dll", CharSet = System.Runtime.InteropServices.CharSet.Auto)] private static extern IntPtr GetForegroundWindow(); [System.Runtime.InteropServices.DllImport("user32.dll", CharSet = System.Runtime.InteropServices.CharSet.Auto)] private static extern Int32 GetWindowThreadProcessId(IntPtr hWnd, out Int32 lpdwProcessId); public static Int32 GetWindowProcessID(IntPtr hwnd) { //This Function is used to get Active process ID... Int32 pid; GetWindowThreadProcessId(hwnd, out pid); return pid; } public static IntPtr getforegroundWindow() { //This method is used to get Handle for Active Window using GetForegroundWindow() method present in user32.dll return GetForegroundWindow(); } public static string ActiveApplTitle() { //This method is used to get active application's title using GetWindowText() method present in user32.dll IntPtr hwnd = getforegroundWindow(); if (hwnd.Equals(IntPtr.Zero)) return ""; string lpText = new string((char)0, 100); int intLength = GetWindowText(hwnd, lpText, lpText.Length); if ((intLength <= 0) || (intLength > lpText.Length)) return "unknown"; return lpText.Trim(); } }
}
Zaključak
Iako su većina komercijalnih Keylogger programa na tržištu zapravo legitimni softver, većina Keyloggera se može koristiti za krađu osobnih podataka korisnika kao i za političke i industrijske špijunaže. Trenutno su Keyloggeri, zajedno s phishingom i društvenim inženjeringom, jedan od najčešće korištenih metoda internetskih prijevara. IT sigurnosne tvrtke bilježe stalan porast broja zlonamjernih programa koji imaju Keylogging funkcionalnost. Izvješća pokazuju da postoji povećana sklonost da koriste rootkit tehnologije u svojim alatima, kako bi se izbjeglo ručno otkrivanje i prepoznavanje od strane antivirusnih rješenja. Treba poduzeti sljedeće mjere kako bi se zaštitili od Keyloggera: koristiti standardne antivirusne programe, koristiti virtualnu tipkovnicu ili sustav za generiranje jednokratnih lozinki za zaštitu od Keylogging softvera i hardvera.
Literatura
- Keystroke logging. [1]
- Keyloggers: How they work and how to detect them. (Part 1) [2]
- Keyloggers: Implementing keyloggers in Windows. (Part 2) [3]
- What is keylogger (keystroke logger, key logger, or system monitor). [4]
- C# Keylogger. [5]
- Hacker builds wireless Microsoft keyboard keylogger disguised as USB wall charger. [6]
Dean Werner 08:30, 21. siječnja 2015. (CET)