La sicurezza informatica: tutte le tipologie di attacchi esterni

La sicurezza informatica: tutte le tipologie di attacchi esterni

Prima di procedere con l’analisi degli attacchi più diffusi, bisogna capire come avviene un attacco analizzandone le fasi più salienti sulla base della filosofia che “Per sconfiggere il nemico bisogna prima conoscerlo”.

Anatomia di un Attacco Informatico: L’hacker prima di attaccare deve conoscere la vittima pertanto le fasi di Footprinting, Scanning ed Enumeration servono per la raccolta metodologica delle informazioni necessarie per eseguire correttamente l’attacco informatico.

Fasi dell’attacco informatico

Footprinting

Il footprintig è la prima fase per un attacco informatico. Più nel dettaglio questa è la fase di raccolta delle informazioni (per eseguire l’attacco informatico) riguardanti il possibile obiettivo da attaccare che permettono di determinare il footprint (letteralmente “impronta”) cioè il profilo della presenza di Internet, della tecnologia per l’accesso remoto, e di eventuali Intranet/Extranet. Quando per esempio i ladri decidono di svaligiare una banca non si limitano ad entrare e a portare via  il  bottino  anzi  tale fase è  preceduta  dalla  redazione di  un piano messo in atto sulla base delle informazioni raccolte quali ad esempio: i percorsi e gli orari del furgone blindato, la posizione delle telecamere, il numero di impiegati, le uscite di sicurezza e qualsiasi altra informazione utile per portare a termine il colpo.

Schema relativo alle fasi di un attacco informatico
Schema relativo alle fasi di un attacco informatico

Così come i ladri che realizzano un piano adeguato riescono a portare a termine il colpo, anche gli hacker che seguono una metodologia ben strutturata riescono a raccogliere informazioni da una serie di fonti e a ricostruire l’impronta fondamentale di qualsiasi organizzazione che gli permette di ricostruire il profilo del suo livello di protezione. In particolare il footprinting concentra la ricerca sulle risorse informatiche possedute dal bersaglio seguendo la tabella mostrata nella figura seguente:

Tecnologie ed informazioni critiche che un Hacker deve cercare di raccogliere
Tecnologie ed informazioni critiche che un Hacker deve cercare di raccogliere

Scanning

Terminata la prima fase di analisi è possibile stilare un elenco delle macchine più esposte ad attacco in modo da restringere il raggio d’azione.  La fase successiva è quella di Scanning che consiste in una analisi più approfondita delle macchine selezionate al fine di individuarne la configurazione ed evetuali vulnerabilità presenti.  Infatti solo conoscendo il sistema operativo installato, i servizi su di esso attivi e sfruttando la conoscenza delle vulnerabilità e attacchi ricavabili da Internet è possibile individuare i punti deboli del sistema da sfruttare. Per eseguire tale analisi l’attaccante si serve ad esempio del comando Ping che permette di sapere se una certa macchina,  che  risponde  ad  un  dato  indirizzo  Ip  è  al  momento  collegata oppure utilizza strumenti come Strobe o Netcat che permettono di conoscere i servizi attivi su una macchina in un dato momento e quindi risalire   a quali sono le porte in ingresso aperte,  ma forse ben sorvegliate, verso il sistema che si vuole raggiungere. Quando ad esempio un ladro vuole entrare in una casa controlla tutte le porte e le finestre al fine di scoprire da quale di queste è possibile introdursi all’interno della casa.

Enumeration

E’ la fase intrusiva di determinazione degli  account  attivi,  delle risorse accessibili come file condivisi in modo insicuro e l’individuazione di vecchie versioni del software che contengono vulnerabilità note.  Una volta ottenuti gli account attivi infatti l’attaccante può tentare di indovinare le password per ottenere l’accesso al sistema.

Gaining Access

Questa è la fase più delicata dell’attacco informatico, l’hacker entra nel sistema sfruttando le vulnerabilità indviduate nelle fasi precedenti oppure utilizzando tecniche più semplici come ad esempio il Brute Force che permette di indovinare la password di un utente. Scoprire la password di un utente non è poi così difficile in quanto gli utenti hanno la brutta abitudine di scegliere password facili da ricordare come ad esempio il nome del figlio o della moglie, la propria data di nascita o il codice fiscale. Sfruttando il  social  engineering  si  può  facilmente  risalire a queste informazioni e di conseguenza indovinare la password entro breve altrimenti si ricorre al brute force che prevede anche l’uso di “dizionari di password, ovvero un elenco di parole generalmente usate come password, un tool automatico si occupa poi di provare tutte le password dell’elenco fino a trovare quella giusta (questo tipo di attacco tutt’oggi funziona 2 volte su 3!).

Tipologie di attacchi informatici

Escalating privilege

Una volta entrato nel sistema informatico, l’hacker acquista i privilegi di un utente normale che non sono sufficienti per compiere attività illecite, deve quindi riuscire ad ottenere privilegi di amministratore o superuser.

Copertura tracce

Come un ladro che si rispetti anche l’hacker non deve lasciare tracce che in gergo informatico assumono il nome di “log” ovvero dei file dove vengono registrate le attività svolte dagli amministratori al fine di individuare eventuali intrusi e poterli rintracciare. A seconda del tipo di macchina e di sistema operativo installato l’hacker sà dove recuperare i log e modificarli rendendo invisibili le sue azioni.

Backdoor

Come si è visto intrufolarsi in un sistema richiede molti passaggi e quindi molto tempo, ecco perchè gli hacker non ripetono ogni volta tutti i passaggi ma utilizzano le backdoor ovvero piccoli programmi che permettono all’intruso di potersi collegare in maniera quasi trasparente e diretta alla macchina.

Malware  

Proprio per la sua caratteristica di essere disponibile a tutti il Web è  diventato  anche  molto  vulnerabile,  infatti è  diventato  il  canale  preferito  dai criminali informatici per propagare malware.  Malware è l’abbreviazione di Malicious Software (Software  Malevolo) ed è un software designato ad accedere segretamente al computer della vittima senza il suo consenso in modo da portare a termine un attacco informatico. La quantità di software malevolo è andata crescendo con gli anni e con la popolarità di Internet come mostra il grafico nella figura seguente, risalente ad uno studio di AV Test Labs del 2008, società tedesca che misura la rapidità e la precisione dei prodotti antivirus di rilevare i nuovi virus.

Grafico relativo alla crescita annuale di nuovi virus
Grafico relativo alla crescita annuale di nuovi virus

La  crescita  esponenziale  di  questo  tipo  di  attacco  è  stata  sottolineata  anche da David Perry, direttore di educazione globale per Trend Micro, che ha affermato: “Nel 1990 eravamo abituati vedere una manciata di nuovi virus ogni settimana. Ora, stiamo analizzando tra 2000 e 3000 nuovi virus, per ora.”

E’ importante  però  comprendere che il malware può  assumere  diverse  forme  anche  se  la  più  diffusa  è  la  forma  di  tipo  infettivo  che  include  virus  e worms, chiamati così perchè possiedono la caratteristica predominante dei virus che provocano malattie a piante ed animali ovvero sono auto-replicanti quindi si diffondono di computer in computer producendo numerose copie di sè stessi. Non è facile accorgersi della presenza di un virus in quanto sono pezzi di codice inseriti in un normale file oppure in un programma che nel momento in cui viene avviato esegue anche il codice del virus che infetta altri file o programmi producendo sue copie.

La differenza tra Virus e Worms si riscontra nella modalità di diffusione, infatti i primi si propagano solo dopo che il programma che li contiene viene esegui   to mentre i secondi sono programmi autonomi. Negli anni molti worm hanno lasciato il segno nella storia del Web in quanto hanno diffuso paure e preoccupazioni sulla velocità con cui si diffondevano tra gli host connessi ad Internet. Il  primo  esempio è  stato  fornito  nel  1988  dal  Robert  Morris  Jr.  worm  sviluppatosi in migliaia di host, che a quel tempo costituivano una parte significante dell’Arpanet (il predecessore di Internet). Solo ad un anno di distanza un worm di nome Melissa fù in grado di infettare documenti Microsoft Word e si diffuse velocemente poichè era in grado di inviarsi tramite email agli indirizzi di posta che trovava nella rubrica degli indirizzi di Outlook, dimostrando così che l’email era un ottimo mezzo per la propagazione del malware.  La facilità con cui il malware riusciva a diffondersi tramite e-mail ispirò negli anni successivi la nascita di altri worm tra i quali: il Love Letter Worm, Code Red, Nimda, Klez, SQL Slammer/Sapphire, Blaster, Sobig e MyDoom.

Oltre  alla  forma  di  tipo  infettivo,  altra  forma  ampiamente  diffusa è  quella  dei malware  caratterizzati  dalla  possibilità  di  nascondersi  agli  occhi  della vittima tra i quali compaiono Trojan Horses e rootkits. La caratteristica di  essere  furtivi è  molto  importante  per  i  malware  poichè  i  software  Antivirus altrimenti potrebbero scovarli. I Trojan Horses per non essere scoperti, si presentano all’utente come un programma utile e una volta che l’utente effettua il  download  scarica  anche  il  software  malevolo.   Rootkit  è  essenzialmente  una modifica inserita nel sistema operativo della vittima per nascondere la presenza di file o processi malevoli all’utente e ad eventuali scansioni. Un’altra forma molto diffusa è quella di malware che permettono il controllo del pc della vittima da remoto e comprende: Remote Access Trojan (RATs) e boots. Grazie a un RAT, un malintenzionato è in grado di visualizzare e modificare i file  e  le  funzioni  del  computer,  di  controllare  e  registrare  le  attività  eseguite  e di utilizzare il computer per attaccare altri computer ad insaputa della vittima, esempio di RAT sono: Back Orifice, Netbus, and Sub7. Bot deriva dalla parola robot e sono programmi a controllo remoto installati sotto copertura nei pc delle vittime, tipicamente sono programmati per apprendere istruzioni dal “bot header”.

Tutti i pc comandati dallo stesso “bot header”formano una botnet che tipicamente viene progettata per produrre spam oppure per sferrare un attacco di tipo Distribuited Denial of Service (DDOS). La potenza della botnet è proporzionale alla sua grandezza tuttavia la sua grandezza è difficile da scoprire.  Uno dei più famosi esempi di botnet è fornito dallo Storm worm che fù lanciato nel gennaio del 2007 in una rete peer-to-peer distribuita in cui ogni host infetto condivideva liste di altri host infetti, ma nessun host singolo possedeva la lista dell’intera botnet. Ben  presto  la  botnet  divenne  sempre  più  grande  fino  a  raggiungere circa un  milione  di  host  anche  se è  impossibile  risalire  alla  vera  dimensione  a causa delle misure per sfuggire alle scansioni adottate dai bot. Un’altra classe di  malware è  popolata  da  malware  designato  al  furto  dei  dati  ed include keyloggers e spyware.

Un keylogger può assumere la forma di un Trojan Horse o di qualunque altro malware e sono finalizzati a rubare password oppure altre informazioni di valore personale.  Un esempio è fornito dal KeyLogger Magic Lantern utilizzato dal’FBI. Gli Spyware, proprio come dice il nome, sono delle  spie  che  monitorano  e  registrano  l’attività  dell’utente  al  fine  di  carpire informazioni personali all’insaputa dell’utente.

Sniffing

Lo sniffing è una tecnica che consiste nel catturare il traffico all’interno di una rete e può essere utilizzata per due scopi:

  1. Scopi Legittimi: Individuazone di problemi di comunicazione o di tentativi di intrusione.
  1. Scopi Illegittimi: Intercettazione fraudolenta di password o di altre informazioni sensibili.

Se utilizzato per scopi legittimi lo sniffing è utile agli amministratori di sistema per supervisionare la rete e prevenire eventuali attacchi mentre se usato per scopi illegittimi minaccia la  riservatezza delle informazioni che transitano in rete. Nel secondo caso quindi permette ad un’attaccante di leggere i dati in transito senza esserne autorizzato, come mostrato in figura sgeunte.

Schema funzionamento attacco di tipo Sniffing
Schema funzionamento attacco di tipo Sniffing

Una volta catturato il traffico, l’attaccante può leggere i dati contenuti nei pacchetti di rete, incluse le eventuali password trasmesse per autenticare un utente nei confronti di un servizio a cui sta cercando di accedere. L’intercettazione dei dati avviene attraverso appositi strumenti, detti sniffer, che hanno il compito di raccogliere le informazioni in transito sulla rete ed effettuare su di esse diverse operazioni quali la conversione dei pacchetti in una forma leggibile e filtraggio in base a criteri stabiliti dall’attaccante.

La soluzione per difendersi da questo tipo di attacco è l’utilizzo di algoritmi per cifrare il traffico, in particolare le informazioni sensibili, in modo da assicurare la confidenzialità dei dati.  Inoltre esistono molti software che rivelano gli sniffer presenti sulla rete.

Clickjacking   

Clickjacking è una parola costruita dalla fusione dei  termini hijacking (dirottamento) e click quindi si può definire come un “dirottamento del click”. E’una tecnica di attacco che consiste nell’ingannare gli utenti del Web nel momento in cui cliccano su un link apparentemente innocuo, reindirizzandoli, a loro insaputa, ad un altro oggetto.  Solitamente questa tecnica sfrutta JavaScript   o Iframe.

La tecnica basata su JavaScript è molto semplice in quanto il click dell’utente su di una pagina HTML non genera alcuna azione in sè ma si limita a generare un evento all’interno della pagina. Questo evento viene ricevuto e gestito da un’apposita funzione JavaScript nota come event handler che viene scritta dal programmatore ed avrà il compito di redirigere il click del mouse.  Per emulare il  click  del  mouse  è  sufficiente  che  il  programmatore  utilizzi  il  seguente  event handler:

button1.onclick=”myEventHandler()”

Questo definisce l’event handler da usarsi quando viene premuto il pulsante button1

myEventHandler()

Questo invoca direttamente l’event handler, come se fosse stato premuto il pulsante

La seconda tecnica è basata su IFRAME, un tag Html che, opportunamente utilizzato, permette di posizionare una finestra Html su una esistente o su tutta la sua estensione o utilizzando parti di essa. Un hacker utilizza, di norma, un IFRAME per inserirvi un sito insidioso su uno legittimo per tutta la sua estensione. In questo modo le eventuali selezioni sulla pagina cadono sulla pagina fittizia.

Per esempio utilizzando il codice riportato:

iframe height=”100″% width=”100″% src=attacker site Attualmente nessun browser è immune da attacchi di questo tipo in quanto

la minaccia è insita nel tag IFRAME o nello standard HTML e Javascript.  La soluzione possibile è allora l’inasprimento dei controlli del browser oppure l’inibizione di certe opzioni. Ad esempio si possono disabilitare contemporaneamente l’interprete Javascript e il tag IFRAME. Inoltre alcuni browser come Mozilla e Firefox permettono l’installazione di plug-in NoScript e la selezione dell’opzione “forbid IFRAME”. Inoltre gli amministratori di siti web possono innalzare le barriere di sicurezza relative ai propri siti associando ad ogni click i famosi captcha (Test per determinare se l’utente sia un umano e non un computer o un bot. Tipicamente si richiede all’utente di scrivere quali siano le lettere o i numeri presenti in una sequenza che appare distorta o offuscata sullo schermo) o definendo password mirate per una singola operazione oppure delle mail di conferma.

Attacchi DoS

Gli attacchi Denial Of Service, DoS (letteralmente negazione del servizio) hanno lo scopo di portare il server web al limite delle prestazioni in modo che non possa più erogare servizi. Le comunicazioni su Internet avvengono tramite il protocollo TCP/IP che prevede una sincronizzazione della connessione tra sorgente e destinatario realizzata tramite il Three Way Handshaking secondo il quale il client inizia la connessione verso il server inviando un pacchetto TCP contrassegnato con il flag SYN, il server invia una notifica di ricezione della richiesta generando un pacchetto con flag SYN/ACK, di seguito la connessione viene stabilita e mantenuta con  dei pacchetti aventi il flag ACK. In figura seguente (Protocollo Handshake) viene mostrato il processo di sincronizzazione:

L’attacco al server può quindi essere realizzato inviando contemporaneamnte migliaia di richieste di sincronizzazione al secondo verso il server che risponde inviando SYN/ACK finchè le sue possibilità hardware e software lo permettono, ovvero  finchè  il  livello  di  utilizzo  della  CPU  non  sale  al  100  %  bloccando  di fatto il server e quindi non permettendo nessun tipo di operazione, sia essa di amministrazione locale della macchina sia in remoto. Ovviamente anche tutte le connessioni dall’esterno non saranno possibili e quindi tutti i servizi, web server incluso, non risulteranno disponibili. Questa tecnica di attacco DoS viene definita Flooding (innondamento), in quanto viene realizzata tramite l’invio di un flusso anomalo di pacchetti verso un’unica destinazione.

Attacchi DDoS

Gli attacchi DoS si sono evoluti nel corso del tempo,  da semplici attacchi, condotti da singoli PC, ad attacchi organizzati in modo distribuito (da qui l’acronimo DDoS), realizzati da migliaia di computer disseminati per tutta la rete che insieme compongono una botnet a libera disposizione dell’attaccante. Infatti l’attaccante non si espone direttamente, per evitare di essere individuato, ma infetta un numero elevato di computer utilizzando virus o worm che permettono di lasciare aperte delle backdoor a loro riservate in modo da consentire all’attaccante di prendere il controllo remoto della macchina senza il consenso del proprietario.

L’attacco Ddos non deve essere sottovalutato basti pensare che riuscì, nel febbraio del 2000, a mettere in ginocchio siti ad elevata visibilità come CNN, Yahoo, Ebay, Amazon.  Un attacco di questo tipo risulta così pericoloso in quanto è impossibile fare una distinzione tra un carico pesante, ma legittimo, proveniente da molteplici sorgenti e un attacco di tipo Ddos.

Protocollo Handshake
Protocollo Handshake

Web Spoofing

Tale attacco consiste nella falsificazione di un sito web per trarre in inganno l’utente che crede di navigare all’interno del sito web richiesto mentre in realtà è connesso ad un server malevolo.

Innanzitutto l’hacker adesca la vittima servendosi di hyperlink fasulli che indirizzano il click dell’utente, non al sito web desiderato, ma a quello creato dall’attaccante. Gli hyperlink fasulli per adescare nuove vittime devono essere diffusi in diversi modi, ad esempio:

  • l’hyperlink può essere posto all’interno di una pagina web popolare
  • inviando alla vittima una mail contenente un puntatore al falso sito web
  • alternativamente inviando alla vittima una mail che contenga il contenuto di una pagina presente sul falso sito web
  • l’hacker  può ingannare  un  motore  di  ricerca  riuscendo a far puntare il risultato di una ricerca ad un contenuto del falso sito web
Schema riassuntivo di un attacco di tipo Web Spoofing
Schema riassuntivo di un attacco di tipo Web Spoofing

Il falso sito web, creato dall’hacker, assomiglia totalmente a quello originale in quanto contiene le stesse pagine e gli stessi link in modo che l’utente non  si accorga dell’inganno. L’inganno permette all’attaccante di impadronirsi del traffico tra il browser web dell’utente ed il Web permettendogli così di ottenere anche  le  credenziali  inserite  dall’utente.   Inoltre  l’hacker  può  modificare  tutti i dati in transito tra la vittima ed il Web server senza che egli se ne accorga. Ad esempio se la vittima effettua on-line un ordine di 100 widgets, l’hacker può:  modificare la quantità dell’ordine, inviare a sè stesso una parte dei widgets modificando l’indirizzo oppure modificare il contenuto inviato dal Web server all’utente inserendo altro materiale come mostrato in figura seguente.

Esempio svolgimento di un attacco di tipo Web Spoofing
Esempio svolgimento di un attacco di tipo Web Spoofing

Cross Site Scripting

L’attacco Cross Site Scripting(XSS) richiede tipica mente l’utilizzo di script client-side realizzati in Java Script e progettati allo  scopo di estrapolare informazioni dalla vittima e trasmetterle all’attaccante.

Una pagina web contiene testo e immagini che vengono immagazzinati in un Server Web e formattate utilizzando HTML in modo che,  quando  la  pagina viene inviata all’utente, il suo browser interpreti il linguaggio HTML fornendo all’utente  la  pagina desiderata.

Tali pagine possono essere statiche o dinamiche: nel primo caso le informazioni contenute al suo interno non cambiano anzi sono le stesse per ogni visitatore mentre nel secondo caso cambiano il proprio contenuto in base all’input inserito dall’utente.

L’attacco XSS si basa sulle pagine dinamiche infatti si tratta di codice malevolo (tipicamente in JavaScrpit ma anche in ActiveX) inserito in specifiche pagine dinamiche.   Tuttavia  l’attacco  XSS  non  è  direttamente  rivolto  alla  pagina  in questione, in quanto l’hacker non intende entrare nel Web Server, ma la sua vittima è  l’utente  che  naviga  nel  web  visitando  pagine  dinamiche  e  iniettando inconsapevolmente nell’applicazione web uno script di tipo client-side.

Per comprendere meglio come funziona il Cross Site Scripting, vengono di seguito elencate le fasi della sua attuazione:

  1. L’attaccante cerca un sito web, vulnerabile all’attacco XSS, che visualizzi la login errata come mostrato in figura segeunte.
  2. Individuato il sito, l’attaccante può generare un URL che contenga al suo interno alcuni comandi JavaScrip.
  3. Successivamente questo URL viene inviato tramite mail alla vittima chiedendogli di inserire le proprie credenziali al fine di verificare la propria password oppure promettendogli di ricevere servizi
  4. Inconsapevolmente la vittima clicca sull’URL dell’attaccante ed inserisce i propri username e password che vengono inviati al server dell’attaccante prima di essere trasmesse al vero server Web. La vittima viene logga ta all’interno dell’applicazione web senza rendersi conto che le proprie credenziali  sono  state rubate.
Esempio di login errata
Esempio di login errata

Mentre, nella figura che segue vengono riassunte le fasi descritte sopra:

Schema riassuntivo relativo ad un attacco di tipo Cross Site Scripting
Schema riassuntivo relativo ad un attacco di tipo Cross Site Scripting

SQL Injection

Tale tecnica mira all’attacco di applicazioni web che si appoggiano su data base di tipo SQL al fine di accedere ad informazioni private, modificare le informazioni presenti nel database bersaglio, controllare o addirittura  distruggere  il  database stesso.

In questa tipologia di attacco, l’intruso non tenta di accedere al database, eludendo la protezione crittografica oppure il sistema di password, ma tenta di iniettare  alcuni  script  “legali”sfruttando  modalità  standard  di  input  dei  dati quale ad esempio un textbox in una pagina web. Se tale attacco và a buon fine è possibile accedere o modificare dati sensibili presenti sul database ed inserire Query o comandi SQL tra cui anche il comando DROP TABLE che permetterebbe all’attaccante di eliminare l’intero contenuto del database.

Esempio di SQL Injection

Nelle pagine asp Microsoft, Un esempio di codice HTML per un form in cui inserire due input, login e password è:

<form  method=post action=http://testasp.acunetix.com/login.asp>

<input name=tfUName type=text id=tfUName>

<input name=tfUPass  type=password id=tfUPass>

</form>

 

La via più facile per far funzionare il login.asp è quella di costruire una query per il database come la seguente:

SELECT id

FROM logins

WHERE username = ‘$username’ AND password = ‘$password’

 

Se le variabili username e password vengono richieste direttamente dall’input dell’user, questo può essere facilmente compromesso.

Supponiamo di inserire “Joe come username e di fornire come password la seguente stringa:

‘anything’OR ‘x’=’x’.

SELECT id

FROM logins

WHERE username = ‘Joe’

AND password = ‘anything’OR ‘x’=’x’

 

Se gli input dell’applicazione web non sono correttamente controllati, l’uso delle virgolette singole modifica il comando WHERE di SQL in una clausola di due componenti.

Il codice ‘x’=’x’garantisce che la password risulti corretta a prescindere da ciò che la prima parte contiene.  Questo pùo permettere ad un attaccante di bypassare il form di login senza conoscere una combinazione username/password valida.

Esistono tre possibili meccanismi da attuare per prevenire attacchi di tipo SQL Injection:

  1. Utilizzare un Proxy interposto tra l’applicazione web e il database in modo che ogni istruzione di tipo SQL venga controllata dal proxy prima di essere reindirizzata al database e in caso di validità ottenga l’accesso al database.
  2. Utilizzare un filtro per monitorare il traffico HTTP ed eliminare eventuali attacchi malevoli.
  3. Utilizzare istruzioni SQL parametrizzate in modo che ogni input possa venire automaticamente verificato dall’applicazione

Tuttavia le soluzioni proposte comportano degli svantaggi per l’applicazione web, quali ad esempio un elevato carico computazionale e una maggior difficoltà di implementazione.

Cookie Manipulation  

I Cookie sono frammenti di testo inviati da un server   ad un web client e poi rispediti dal client al server, senza subire modifiche, ogni volta che il client effettua l’accesso al  server.

I cookie sono spesso usati dagli sviluppatori web in quanto permettono di gestire informazioni senza bisogno di memorizzarle sul server stesso ma in maniera distribuita sui client, preservando quindi le risorse del server.  I siti Internet che   li utilizzano, ne fanno uso, solitamente, oltre  che per controllare quante volte  uno stesso utente accede al sito web, anche per memorizzare informazioni che possano rendere migliore la navigazione di un client all’interno di uno stesso  sito, ad esempio possono essere creati per conservare informazioni di login per accesso ad un forum o ad un’area privata.

Più in dettaglio i diversi utilizzi dei cookie sono dunque:

  • Riempire il carrello della spesa virtuale in siti commerciali
  • Permettere ad un utente il login in un sito web
  • Personalizzare una pagina web sulla base delle preferenze dell’utente. Modalità sfruttata ad esempio dal motore di ricerca Google per permettere all’utente di decidere il numero di risultati della ricerca che l’utente desidera  visualizzare  per pagina Tracciare i percorsi  dell’utente.
  • Modalità tipicamente sfruttata dalle compagnie pubblicitarie al fine di ottenere informazioni sul navigatore, quali gusti e preferenze. I dati raccolti vengono poi utilizzati per creare un profilo del visitatore che gli presenti, al momento della navigazione, solo i banners pubblicitari scelti sulla base dei suoi gusti.
  • Gestire ed aggiornare un sito sulla base di informazioni riguardanti i suoi visitatori al fine di migliorarne le  navigazione. Ad esempio raccogliendo informazioni sui percorsi compiuti dagli utenti all’interno del sito, il gestore può accorgersi di eventuali percorsi ciechi ed eliminarli.

Inoltre i cookie possono memorizzare dati identificativi dell’utente (ad esempio: nome, indirizzo e-mail, indirizzo di casa, numero telefonico) ma attenzione non  può  carpirli  dal  pc  dell’utente  quindi  deve  essere  direttamente  l’utente  a fornirli.

I cookie sono caratterizzati dagli attributi:

  • Nome/Valore: è una variabile ed un campo obbligatorio.
  • Scadenza (expiration date):  è  un  campo  opzionale  ed  indica  la  scadenza del cookie rispetto al timestamp nel quale lo stesso viene creato, può essere espressa come data, come numero di giorni, come NOW (adesso) e come NEVER (mai). L’utilizzo di una scadenza NOW elimina immediatamente il cookie dal sistema ospite in quanto il cookie scade nel momento in cui viene creato o aggiornato. L’utilizzo di una scadenza NEVER permette la creazione di cookies non soggetti a scadenza.
  • Sicuro  (secure):   è  un  attributo  opzionale  che  indica  se  il  cookie  debba essere trasmesso criptato HTTPS.
  • Percorso (path):  è un campo opzionale e definisce il sottoinsieme di indirizzi url a cui il cookie può essere applicato.
  • Dominio (domain): indica il dominio a cui il cookie si riferisce.

L’attacco  cookie  manipulation compare tra  i 20  attacchi  più  utilizzati dagli hacker proprio per la semplicità dei cookie che essendo file di testo possono essere facilmente modificati.  Attraverso questa tecnica chi attacca può ottenere  informazioni  private  e  non  autorizzate da un utente, nonchè rubare la sua identità.

Dati relativi alle diverse tipologie di attacchi registrati
Dati relativi alle diverse tipologie di attacchi registrati annualmente nel 2008, 2009, 2010 da Acunetix Web Vulnerability Scanner

Spam

Spam è il nome della prima carne in scatola in gelatina, inventata da J.C. Hormel nel 1936 in una cittadina dello stato del Minnesota che ebbe un successo immediato e straordinario.

Nei primi anni ’90 una coppia di avvocati dell’Arizona inonda il mondo dei newsgroup di mail pubblicitarie in cui offrivano i loro servizi. Le proteste furono così numerose che il fenomeno venne battezzato spam perchè, come l’originale, destinato a capillare  diffusione.

Attualmente il termine spam viene utilizzato per indicare un’ondata di mail non richieste, inviate a scopo pubblicitario ad indirizzi reperiti dagli attaccanti in diverse modalità.

Gli spammers possono ottenere indirizzi email da varie sorgenti: siti Web, newsgroups, directory online, virus che rubano i dati e così via. Lo spam è un mezzo molto popolare per diffondere malware ed esche che attirino gli utenti su siti malevoli attraverso l’invio di link agli indirizzi mail individuati.

Questa tecnica non è molto persuasiva infatti si stima che solo 4 persone ogni mille contattate mostri qualche interesse, ma è una  tecnica  molto diffusa in quanto praticamente gratuita.

La  soluzione è data  all’adozione di  filtri per lo Spam. L’uso del sistema antispam (molto spesso associato all’antivirus) permette di bloccare i messaggi indesiderati (spam) prima che questi vengano recapitati all’utente, mettendoli in una zona di quarantena su cui l’utente pùo agire per cancellarli o richiederne comunque la ricezione.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *