Esiste ancora un divario abissale tra l’attuale livello di tecnologia e la sicurezza dei rispettivi sistemi tecnologici: uno degli esempi nella nostra quotidianità che marca questo divario fra tecnologia e sicurezza, è rappresentato dagli ATM (Automated Teller Machine) o sportelli Bancomat, molto più esposti ad attacchi informatici di quanto si possa pensare.
Sarà capitato a tutti di prelevare contanti da queste apparecchiature in diverse situazioni e sentirsi sicuri. Ebbene, molti di questi “sportelli automatici” non sono così protetti come potremmo credere ed utilizzano ancora sistemi operativi obsoleti come Windows XP.
Ma andiamo sul pratico e tentiamo di capire come un cyber criminale potrebbe portare a termine un attacco verso questi dispositivi. Come sempre, la parte più importante per la riuscita di un attacco è la sua preparazione e la raccolta di informazioni sul bersaglio.
Indice degli argomenti
ATM attack: la fase inziale di OSINT
Il primo passo consiste nell’individuare il bersaglio. Selezionare più bersagli permette di avere una tolleranza maggiore in caso di imprevisti. Utilizzando le Mappe di Google, è possibile localizzare le banche in una data zona e collezionare alcune informazioni, tra cui fasce orarie e numeri di telefono.
L’ATM utilizzato in questo esempio è il modello Wincor2000xe (ampiamente in uso non solo in Italia, ma anche in molti altri Stati).
Inoltre, con un semplice Google-Dork è possibile reperire il manuale tecnico completo, scrivendo nella barra del noto motore di ricerca la stringa: wincor 2000xe filetype:pdf.
ATM attack: la fase di test in laboratorio
La fase successiva di testing in laboratorio permette di preparare sia il software, che gli strumenti necessari.
L’inoculazione all’interno del sistema operativo dell’ATM (nel nostro esempio) prevede l’utilizzo del malware WinPot (maggiori dettagli nelle immagini seguenti).
- i riquadri da 1 a 4 rappresentano le varie “cassette” del bancomat;
- le cifre sotto i riquadri rappresentano i contanti per ogni “cassetto”;
- il pulsante SCAN determina quante banconote sono presenti nel dato alloggiamento;
- il pulsante SPIN serve a svuotare la data “cassetta” dei contanti;
- il pulsante STOP permette di stoppare l’espulsione, dopo aver svuotato un alloggiamento, e avviare un nuovo “SPIN”.
Il malware dovrà essere inoculato nell’ATM utilizzando una USB stick. Più piccola è, meglio sarà. La grandezza di riferimento è da 1 a 4 GB.
Nell’evenienza remota in cui fosse installato un sistema antivirus, l’attaccante preparerà uno script per riavviare l’ATM (Windows XP) in “safe mode”, che copierà sempre nell’USB drive (vedremo in seguito come disabilitare l’antivirus):
Echo Off
REM Check Windows Version
ver | findstr /i “5.0.” > nul
IF %ERRORLEVEL% EQU 0 goto ver_nt5x
ver | findstr /i “5.1.” > nul
IF %ERRORLEVEL% EQU 0 goto ver_nt5x
ver | findstr /i “5.2.” > nul
IF %ERRORLEVEL% EQU 0 goto ver_nt5x
ver | findstr /i “6.0.” > nul
IF %ERRORLEVEL% EQU 0 goto ver_nt6x
ver | findstr /i “6.1.” > nul
IF %ERRORLEVEL% EQU 0 goto ver_nt6x
goto warn_and_exit
:Run Windows 2000/XP comandi
bootcfg /raw /a /safeboot:network /id 1
REG ADD HKLMSOFTWAREMicrosoftWindowsCurrentVersionRunOnce /v “*UndoSB” /t REG_SZ /d “bootcfg /raw /fastdetect /id 1”
SHUTDOWN -r -f -t 07
goto end
:Run Windows Vista/7 comandi
bcdedit /set {current} safeboot network
REG ADD HKLMSOFTWAREMicrosoftWindowsCurrentVersionRunOnce /v “*UndoSB” /t REG_SZ /d “bcdedit /deletevalue {current} safeboot”
SHUTDOWN -r -f -t 07
goto end
Echo On
echo Versione OS non trovata.
:end
Una possibile variazione, per manomettere la sicurezza del sistema operativo dell’ATM, prevede di eseguire il boot del sistema direttamente dalla nostra USB.
L’attaccante avrà bisogno di un’immagine .iso del sistema operativo e gli basterà utilizzare un programma simile a “Rufus” per la creazione della sua USB.
Sarà inoltre necessario cambiare la sequenza di boot nel BIOS. Qualora risulti protetto da password, nel 30% dei casi sarà facilmente compromissibile con un semplice “guessing-attack”.
Qualora la password del BIOS fosse più complessa, data l’obsolescenza di tali macchine, sarà possibile generare un codice di errore inserendo più volte password sbagliate. A questo punto, con un cellulare, basterà inserire in un motore di ricerca le cifre decimali dell’errore per ottenere una lista di “BIOS Recovery Password”.
Una volta eseguito il boot dall’USB drive, sarà possibile avere completo accesso all’hard disk dell’ATM. Il passo successivo sarà aggiungere il programma nella “White-List” dei software attendibili, disabilitare i software di sicurezza (come abbiamo visto) e manomettere le chiavi di registro relative all’UAC (User Account Control) utilizzando un qualsiasi software di “registry editor” per modificare il valore DWORD a 0 del seguente registro:
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystem
Come avviene l’hacking dell’ATM
Ipotizziamo che, in accordo con la documentazione reperita durante la fase di OSINT, l’USB entry si trovi sulla parte superiore dell’ATM. In questo caso l’attaccante dovrà staccare il “piatto” di plastica per scoprire le porte USB ed il pulsante di reset (seguono due esempi).
Il primo passo dell’attaccante sarà quello di resettare l’ATM (schiacciando l’apposito pulsante, vedere figura precedente) ed attendere. Windows rileverà automaticamente i nuovi driver della tastiera e installerà in maniera automatica la nostra periferica di input.
Adesso è il turno dell’USB con il malware.
Lo scopo è eseguirlo, premendo la combinazione di tasti Ctrl+Esc (oppure Win+R) e digitando poi explorer.exe nella barra di testo che appare. Si aprirà la finestra di navigazione del file system, quindi l’attaccante potrà selezionare l’USB device e lanciare il malware con un semplice doppio clic.
Se l’operazione non avrà successo, il nostro attaccante chiuderà tutti i programmi utilizzando la combinazione di tasti Ctrl+Alt+Del che gli permetterà di accedere al Task Manager. Successivamente, tenterà ancora una volta l’avvio del malware.
Nell’ipotesi in cui fosse presente un antivirus, verrà utilizzato lo script visto prima (durante la fase due, di preparazione), per riavviare il sistema operativo in modalità “safe”. Ancora, con la combinazione di tasti Win+r verrà avviato il “Run” e, digitando il comando msconfig, l’attaccante avrà modo di vedere tutti i servizi in running sulla macchina.
Esistono anche tecniche di Social Engineering basate su “Skimmer”, cioè dei card reader fasulli che vengono sovrapposti a quelli originali degli ATM, in modo da registrare tutti i dati della carta di credito mediante lettura della banda magnetica.
Conclusioni
Come è possibile quindi, colmare questo gap fra tecnologia e sicurezza?
Bisognerebbe iniziare introducendo il tema nelle scuole, per sensibilizzare le nuove generazioni alla tematica della cyber security.
Le aziende, inoltre, dovrebbero investire particolarmente sulla formazione dei dipendenti e stanziare un piano economico per aggiornare tutti software e i dispositivi ormai obsoleti (vedi ATM con sistemi operativi vecchi di 20 anni) e via dicendo.
Inoltre, la sicurezza è un processo che comincia già nel momento in cui si sviluppa un qualsiasi software. È per questo che anche i programmatori devono essere adeguatamente formati su queste tematiche.
Pertanto, sino a quando la cyber security verrà vista come un prodotto, e non come un processo da interiorizzare ad ogni grado della società, sarà sempre una battaglia “anacronistica” dove due civiltà si affronteranno ad armi impari.