mainSlogopaceclick Blog  · informatica · elettronica · astronomia..

Phishing portato a livelli estremi sfruttando Punycode: come funziona, come prevenire ed essere sicuri dei siti web aperti tramite SSL

Punycode è un sistema di codifica che serve a rappresentare una sequenza di caratteri unicode tramite una sequenza di caratteri ASCII, per rendere possibile l'uso di tali sequenze nei nomi di dominio, senza dover modificare infrastrutture e standard esistenti.

In questo modo si possono gestire nomi di dominio internazionalizzati (IDNA) aggiungendo all'inizio della stringa punycode i caratteri 'xn--'.

Ad esempio, inserendo come indirizzo xn--google.com, vedremo il browser mostrare la stringa convertita in caratteri cinesi:

undefined

La traduzione di sequenze Punycode nella codifica originaria è a carico dello user agent (applicazione installata sul computer dell'utente che si connette al server) nel browser .

Il problema è che come tutti i nomi a dominio internet registrati, è possibile creare delle sequenze punycode ad-hoc per mostrare all'utente una stringa convertita totalmente a piacere.

Ad esempio, se inseriamo nel browser la stringa (procedete solo a vostro rischio e pericolo) punycode "xn--80ak6aa92e.com", la vedremo istantaneamente venire convertita in "apple.com".

Ovviamente il sito aperto non sarà quello ufficiale Apple, ma in realtà sarà sempre il sito "xn--80ak6aa92e.com", solo che il nostro browser ci visualizzerà il testo transcodificato in ASCII.

In breve il browser viene tratto in inganno, e con lui l'utente, vediamo l'esempio:

se inseriamo:

undefined

e premiamo invio, avremo in risposta:

undefined

da notare la presenza di un certificato SSL (DV) sul sito fasullo, che crea un FALSO senso di sicurezza

 

LA DIFFERENZA CON QUELLO VERO

undefined

in questo caso il certificato SSL (OV o EV) certifica l'effettiva corrispondenza dell'azienda.

 

Il fenomeno del 'phishing' (tipo di truffa effettuata su internet, specialmente a mezzo e-mail) cerca sempre nuove strategie per trarre in inganno gli utenti, spingendoli a cliccare su link che SEMBRANO essere affidabili ma che in realtà REINDIRIZZANO verso pagine web spesso dannose.

Si tratta di attacchi di social-engineering nei quali un malintenzionato cerca di ingannare la vittima convincendola a fornire informazioni personali, dati finanziari o codici di accesso, fingendosi un ente affidabile in una comunicazione digitale.

PRIMA REGOLA: PREVENZIONE

Quando ricevete email di dubbia provenienza, diffidate dal cliccare sui link proposti, specialmente se legati in qualche modo ad istituti bancari o di credito.
Fare specialmente attenzione all'indirizzo di provenienza, e prima di cliccare su un link, controllare quale sia la sua effettiva destinazione.

Esempio:

un link visualizzato come "apple.com", potrebbe in realtà essere destinato al precedente "xn--80ak6aa92e.com" (questo potrebbe derivare da una formattazione HTML costruita apposta per l'occasione)

in questo caso tuttavia, basterà posizionarsi con il mouse sopra al link e controllare il vero collegamento leggendo il popup che appare (di solito) in basso a sinistra del programma di posta

 

SECONDA REGOLA: CONTROLLO

Una volta cliccato su un link, come fare a sapere che il sito aperto è effettivamente quello sicuro?

L'unica arma di difesa in questo caso è il certificato SSL, che può essere di 3 tipi:

  • DV Domain Validation: garantiscono una connessione cifrata con il server, ma non garantiscono sulla corrispondenza aziendale al nome visualizzato.
  • OV Organization Validation & EV Extended Validation: oltre alla cifratura con il server, garantiscono verifica sull'effettività dell'azienda.

 riguardando le immagini precedenti potrete notare la differenza.

 

Come verificare se un indirizzo email esiste ed è raggiungibile

A quasi tutti sarà capitato di ricevere almeno una volta una email di rifiuto dal Message Delivery Status (o Subsystem), a seguito di un invio verso un indirizzo con problemi o non esistente.
 

Quindi per verificare se effettivamente un indirizzo 'riceve' si potrebbe semplicemente inviargli una email (con attivo il flag 'notifica di recapito') ed aspettare la consegna.

Tuttavia come fare per verificarlo SENZA inviare alcuna mail?

 undefined

Ci viene in aiuto il client Telnet di Windows, vediamo come fare:

Passo 1

Innanzitutto abilitiamo Telnet (di default disattivato), andando su pannello di controllo, programmi e funzionalità, Attivazione o disattivazione delle funzionalità di Windows (in alto a sinistra).

Nella finestra che apparirà dovremo semplicemente abilitare la spunta su 'Client Telnet' e confermare con ok.

Passo 2

Apriamo un prompt dei comandi (su Windows 8.1 e 10, cliccando con il tasto destro sul logo del menu start).

Digitiamo nel prompt il comando

nslookup -q=mx <dominio da testare>

esempio, per verificare un indirizzo @gmail:

nslookup -q=mx gmail.com

premiamo Invio

In questo modo otterremo una lista dei server MX (Mail eXchanger) per tale dominio.
Questi dati vengono forniti da sistema DNS (vedere il post dedicato per capire come funziona) e rappresentano le macchine addette allo scambio e gestione della posta. 

undefined

Copiare in un file esterno di appoggio il vero nome del server MX,
che potrete trovare dopo la dicitura 'mail exchanger' (ad es: mx.gmail.com).

Passo 3

Sempre sul prompt digitare SENZA fare errori (perchè usando Telnet non si può cancellare!) il comando:

telnet <dominio salvato> 25

esempio:

telnet mx.google.com 25

 premere invio per avviare la sessione Telnet.

Passo 4

Adesso siamo 'connessi con il server' e possiamo interagirci tramite Telnet.

Diamo il comando 

helo hi

(helo è giusto con una 'elle' sola) 

In seguito

mail from: <qualcosa@qualcosa.com>

e

rcpt to: <indirizzodatestare@providerchestiamotestando.com>

seguiti da invio.

Ad esempio, coerentemente con i precedenti:

mail from: fittizio@testando.com
rcpt to: aldorossi@gmail.com

Passo 5

Il server risponderà a quest'ultima nostra richiesta dicendoci se l'indirizzo esiste o meno.

Se il server MX risponderà con "OK" o "Recipient OK", significa che la verifica dell'email è andata a buon fine e che quindi l'indirizzo indicato esiste.
Altrimenti verrà restituito un messaggio d'errore (ad esempio "sorry, no mailbox").

 

Riepilogo

Tutti i passi in un terminale (esatto, anche da terminale di linux o mac è possibile eseguire gli stessi steps):

undefined

Come verificare la salute del disco con un controllo SMART (HDD & SSD)

Esistono molti tool per verificare la salute degli hard disk, che rilevano i dati di diagnostica S.M.A.R.T. e segnalano se ci sono dei deterioramenti o altri problemi.

SMART sta per "Self Monitoring Analysis and Reporting Technology" e funziona solo se supportata/abilitata da BIOS/UEFI.

Sappiamo che molte volte questi dati sono da prendere 'con le molle', visto che un test 'passato' non vuol dire che il nostro hard disk stia effettivamente bene. Anzi è capitato in diverse occasioni che un disco 'in rottura' abbia dato comunque risultati SMART buoni.

In ogni caso, se vedremmo in questo test qualcosa di anomalo, non dovremmo pensarci su due volte e cambiare subito il disco.

Esistono delle differenze tra HDD (meccanici) e SSD (solidi), i parametri SMART danno risultati diversi, come riferimento per analisi dettagliate vedere questa lista.

Il tool (HDD & SSD)

Uno dei tool consigliati è il CrystalDiskInfo, scaricabile dal sito ufficiale gratuitamente.

Una volta installato, avremo di fronte la panoramica della diagnostica eseguita, e potremmo essere di fronte a vari scenari.

Di solito apparirà la scritta GOOD, con tutti i pallini celesti accanto ai vari test: in questo caso la salute del nostro hdd potrà essere giudicata buona (notare che comunque non garantisce la presenza di futuri guasti).

undefined

Nel caso dovessero apparire pallini gialli o rossi, con la scritta CAUTION: consigliamo di sostituire al più presto l'hdd.

undefined

Questo tool integra anche altre funzioni (come ad esempio il grafico dell'alimentazione e della temperatura), potrete trovarli nella scheda 'Disk' o in 'Function'.

Il tool (specifico SSD)

Nel caso volessimo monitorare la salute di un disco SSD, esiste un programma apposito.
Si chiama SSDLife (a pagamento, ma prelevabile in versione Trial dal loro sito).

Anche questo programma esegue un controllo SMART, tuttavia oltre ai semplici dati, fornisce anche una visuale di riepilogo molto semplice da leggere: mostra infatti una barra della attuale 'salute' del disco.

undefined

Alternativa

Windows integra anche nativamente un tool SMART basilare: WMIC.
E' possibile eseguire un test dell'hdd senza installare alcun tool e ricevere un OK o un CAUTION.

 1. Aprire un prompt dei comandi come amministratore.

     Su Windows 7 digitare 'cmd' nel menu start,
     cliccare con il destro su cmd.exe e selezionare 'esegui come amministratore'.

 2. Inserire il comando

wmic

     e premere Invio, si avvierà il tool a riga di comando, apparirà:

wmic:root\cli>

 3. Inserire ed eseguire

diskdrive get status

 In questo modo verrà mostrato lo status rilevato dell'hard disk (di solito un OK).

Come verificare la sicurezza dei certificati installati in Windows

Sigcheck è un utile tool rilasciato gratuitamente da Microsoft per verificare che nel proprio computer non siano presenti certificati digitali malevoli.

Potete scaricarlo dal sito Ms-TechNet.

Come si usa

Una volta scaricato il tool ed estratto lo .zip, apriamo una finestra di prompt sulla cartella
(premendo il tasto MAIUSC e cliccando con il tasto destro su un'area vuota all'interno della cartella).

undefined

Nella finestra di prompt che appare inserire il comando:

sigcheck -tv

e premere INVIO.

Alla richiesta di autorizzazione alla scansione, premere I Agree.

Saranno così elencati i certificati rilevati nel computer e per ciascuno sarà indicata la sua validità.

Eliminare un certificato non valido

Nel caso avessimo trovato un certificato non valido, potremo eliminarlo dal computer aprendo la console di gestione certificati di Windows:

1- Cliccare con il tasto destro sul logo del menu start di Windows e aprire 'Esegui' (in alternativa, premere la combinazione Win+R)

2- Inserire ed eseguire il comando

certmgr.msc

3- Aprire la sezione "Autorità di certificazione radice attendibili" e in seguito aprire "Certificati".

4- Selezionare e rimuovere il certificato malevolo.

Altri usi

Il tool può essere usato anche per scansionare una cartella in cerca di file non firmati digitalmente.

Ad esempio con il comando

sigcheck -u -e c:\windows\system32

verrà scansionata la cartella system32 e verranno elencati i file firmati o meno.

Come rimuovere il contrassegno di partizione attiva in sistemi Windows

Se vi siete trovati nella condizione di gestire i dischi e le partizioni in un sistema Windows (XP-->10), avrete sicuramente usato il tool di sistema 'Gestione Disco'.

undefined

In particolare, quando creiamo o modifichiamo partizioni di sistema (quelle dove è presente un sistema operativo), abbiamo la necessità di contrassegnarle come 'attive'.
Questa operazione non è difficile, basta cliccare con il destro sulla partizione e andare su 'Contrassegna come attiva'.

Si nota subito però che non esiste un comando tipo 'rimuovi contrassegno attivo'.

Come fare per rimuovere un contrassegno (active mark in inglese)?

1.
Aprire il prompt dei comandi come amministratore.
(Start>Esegui>cmd su 7 | click destro su logo windows su 8.1/10)

2. Dare il comando

diskpart

3. Si aprirà il tool, eseguire

list disksf

per visualizzare la lista dei dischi,

select disk NUMERO

per aprire un disco (vedi nota in fondo),

list partition

per visualizzare la lista delle partizioni del disco scelto,

select partition NUMERO

per aprire la gestione della partizione scelta

4. Infine eseguire

inactive

per contrassegnarla come 'non attiva'.

Se a questo punto controllate sul tool 'gestione disco' il mark 'attivo' sarà rimosso dagli attributi della partizione.

 

NOTA
Al momento della selezione disco/partizioni potreste essere in difficoltà perché non trovate i nomi delle partizioni.
Per capire su quale partizione eseguire la procedura, controllate il numero disco e il numero partizione (confrontando anche le dimensioni di questi) dal tool 'gestione disco' (i numeri corrispondono anche sul tool da cmd).

Come funziona la password di Windows e perchè quando ne inseriamo una sbagliata il pc impiega più tempo

A tutti sarà capitato di inserire una password sbagliata su Windows (XP/7/8..) e di notare che il computer in questo caso impiega più tempo per riproporre il campo di inserimento.

Molti si saranno chiesti perché quando inseriamo la password corretta il PC la riconosce subito, mentre rimane in una sorta di semi-stallo altrimenti.

undefined

Alcuni avranno pensato che il computer deve eseguire più calcoli per verificare la password 'sbagliata', ma non è così.

Le istruzioni che il PC esegue per la verifica delle password sono sempre le stesse: esegue un hash tra la chiave inserita e quella precedentemente memorizzata.

La memorizzazione nel sistema della password iniziale avviene non in forma 'plain text' (testo leggibile), viene invece eseguito un Hash OWF (problema di complessità classe NP) e memorizzato in una stringa per questioni di sicurezza (non si potrà risalire alla password immessa anche con in mano tale stringa).

Quando andiamo ad inserire la password per accedere, il PC esegue una nuova conversione Hash e compara la nuova stringa con quella salvata inizialmente.

Se vi è una corrispondenza, lascia accedere al desktop, altrimenti ripropone il campo per l'inserimento.

Ma allora se esegue gli stessi calcoli, perché impiega più tempo quando sbagliamo?

E' una misura di sicurezza: imponendo un breve ritardo in caso di fallimento si potranno evitare attacchi brute force (in poche parole quelli che provano tutte le password per cercare quella giusta), in quanto anche solo 5 secondi di attesa farebbero lievitare tali attacchi da anni a decenni in più per poter essere portati a termine.

Il nome generico per questo comportamento è tarpitting.
Concetto inizialmente utilizzato nel rilascio degli accessi per dispositivi di rete, oggi ormai esteso anche a molte altre applicazioni.
Una spiegazione approfondita qui.

Home