I primi attacchi di rete sfruttavano le vulnerabilità legate all'implementazione dei protocolli TCP/IP. Con la correzione progressiva di queste vulnerabilità, gli attacchi si sono spostati verso i livelli applicativi e in particolare il web, dove la maggior parte delle società aprono i loro sistemi firewall per il traffico destinato al web.
Il protocollo HTTP (o HTTPS) è lo standard che permette di veicolare le pagine web attraverso un meccanismo di richieste e risposte. Usato essenzialmente per trasportare delle pagine web di informazioni (pagine web statiche), il web è rapidamente diventato un supporto interattivo che permette di fornire dei servizi online. Il termine di «applicazione web» designa quindi tutte le applicazioni la cui interfaccia è accessibile attraverso il web tramite un semplice browser.
Diventato il supporto di un discreto numero di tecnologie (SOAP, Javascript, XML RPC, ecc.), il protocollo HTTP possiede ormai un ruolo strategico comprovato nella sicurezza dei sistemi di informazione. Da quando i server web sono sempre più sicuri, gli attacchi si sono progressivamente spostati verso lo sfruttamento delle falle delle applicazioni web. Per questo motivo, la sicurezza dei servizi web deve essere un elemento da considerare al momento della loro concezione e la programmazione.
Le vulnerabilità delle applicazioni web possono essere classificate nel modo seguente: vulnerabilità del server web, questo tipo di caso è sempre più raro dato che i principali sviluppatori di server web hanno rinforzato il loro livello di sicurezza; manipolazione degli URL, modificando manualmente i parametri degli URL per modificare i comportamenti attesi dal server web; sfruttamento delle debolezze dei login di sessione e dei meccanismi di autenticazione; iniezione di codice HTML e Cross-Site Scripting; iniezione SQL:
Il HTTP è per natura previsto per gestire delle richieste, cioè ricevere dei dati in entrata e inviare dei dati in ritorno. I dati possono essere inviati in modi diversi: attraverso l'URL della pagina web; nelle intestazioni HTTP; nei testi della richiesta (richiesta POST); attraverso un cookie.
Il principio di base da considerare in maniera generale al momento di qualsiasi programmazione informatica è che non bisogna fare affidamento ai dati inviati dal cliente. Infatti, quasi la totalità delle vulnerabilità dei servizi web è legata alle negligenze dei programmatori, che non verificano il formato dei dati inseriti dagli utilizzatori.
Gli attacchi verso le applicazioni web sono sempre nocivi dato che danno un cattiva reputazione alla società. Le conseguenze di un attacco riuscito possono essere una delle seguenti: cancellazione del sito web, furto di informazioni, modifica di dati, soprattutto modifica di dati personali degli utenti e intrusioni sul server web.
Foto: © Martial Red – Shutterstock.com