Gruppo ISP1 Commessa tuttipunti.org
Sommario Descrizione commessa Organizzazione del lavoro Lavoro svolto Problematiche di sicurezza Impostazioni di sicurezza del web server Conclusioni
Descrizione commessa Realizzazione del sito " che implementi uno sportello per lo scambio di punti premio di un insieme di prodotti. Il sito in accordo ad una breve descrizione dei requisiti formulata dallutente permette laccesso agli stessi a due diverse sezioni:portafoglio e scambia
Descrizione commessa Nella sezione portafoglio è possibile inserire le proprie disponibilità unitamente alle proprie richieste di punti. Nella sezione scambia è visualizzabile lelenco delle disponibilità inserite dagli utenti nel sito.
Organizzazione del lavoro Sono stati individuati quattro task fondamentali e sono state associate le risorse ad ogni task. Si è cercato di ottimizzare la suddivisione dei task per rispondere in maniera più efficiente alle possibili problematiche di sicurezza riscontrabili nella gestione di siti web
Organizzazione del lavoro Analisi richiesta Laurino Rocco Sviluppo Cepparulo Marco Guarino Giuseppe Testing Cepparulo Marco Guarino Giuseppe Rilascio Analisi problematiche sicurezza Granatello Emmanuel Laurino Rocco
Organizzazione del lavoro In input alla prima fase arriva la richiesta del cliente, output di questa fase è una descrizione informale dei requisiti dellapplicazione In seguito sono partite in parallelo le fasi di sviluppo e di analisi delle problematiche di sicurezza. Lo sviluppo prevede la codifica dellapplicazione web
Organizzazione del lavoro Lanalisi delle problematiche di sicurezza è partita dallanalisi dell applicazione commissionata fino ad arrivare allo studio delle principali metodologie di attacco e i relativi approcci di difesa. Sarà redatto un breve documento contenente frammenti di codice per contrastare le tipologie di attacco individuate. Eseguendo in parallelo le attività di sviluppo e analisi problematiche di sicurezza, si è cercato di ottimizzare i tempi. Bisogna considerare infatti che le nozioni relative allo sviluppo web erano gia acquisite, mente un approccio organizzato alla sicurezza non era mai stato considerato in passato
Organizzazione del lavoro Ultima attività prima del rilascio è quella del testing. Inizialmente gli sviluppatori hanno concentrato la loro attenzione sul testing funzionale dellapplicazione. Fatto questo si è passato ad una fase di testing sulle caratteristiche di sicurezza.
Organizzazione del lavoro Realizzato il documento relativo alle problematiche di sicurezza, i responsabili di tale attività hanno verificato le risposte agli attacchi più comuni. Ad ogni mancanza rilevata è conseguita una modifica al codice dellapplicazione. In tal modo si è cercato di rendere lapplicazione più sicura.
Lavoro svolto Di seguito saranno presentati gli screen shot principali relativi allapplicazione realizzata.
Lavoro svolto
Problematiche di sicurezza Attacchi DOS un attacco DoS ha essenzialmente lobiettivo di mettere fuori uso o negare un servizio agli utenti legittimi. Sql Injection Questa tecnica prevede lo sfruttamento, attraverso stringhe ad-hoc inviate ad un web server,delle vulnerabilità specifiche dei database basati su sql
Problematiche di sicurezza:DOS Gli attacchi di tipo DOS possono essere evitati o quanto meno ridotti mantenendo aggiornato il sistema e adottando un opportuno firewall. Il sistema win 2003 è stato costantemente aggiornato. Diverso è il problema relativo allutilizzo di un firewall.
Problematiche di sicurezza:DOS Firewall di tipo commerciale risultavano adatti a contrastare gli attacchi DOS ma non è stato possibile utilizzarli nella simulazione come da accordo. Quindi con un semplice script è possibile produrre un tale tipo di attacco. :ciao start ping –l Datasize goto ciao
Problematiche di sicurezza:SQL Injection Questo tipo di attacco può essere contrastato unicamente ponendo attenzione al codice degli script che accede al database. Un tale tipo di attacco viene eseguito inserendo una stringa opportuna in input ad un campo di un form. Presentiamo in seguito un attacco ti questo tipo e le contromisure adottate
Problematiche di sicurezza:SQL Injection Supponiamo di riempire un campo di un form che esegue una ricerca. Inseriamo nel campo or 1=1 Il primo apice ha leffetto di chiudere lapice presente nel codice dello script. Il secondo rappresenta lapice iniziale cui corrisponde lapice finale presente nel codice della query sql.
Problematiche di sicurezza:SQL Injection Per evitare lutilizzo di apici nel campi dei form, tali campi sono stai controllati in questo modo. if(ctype_alnum($_POST[campo1]) and ctype_alnum($_POST['campo'])){ La funzione ctype_alnum permette di verificare se la stringa passata come parametro è composta solo da caratteri alfabetici o numeri. Nel caso in cui la stringa passata risulta essere del tipo descritto la funzione ritorna true, altrimenti restituisce false.
Impostazioni di sicurezza del web server Si è cercato di proteggere laccesso ai file sensibili in due modi. Abbiamo utilizzato alcune direttive di Apache ed inoltre è stato utilizzato un file htaccess.
Impostazioni di sicurezza del web server Per prima cosa abbiamo modificato il file http.config di Apache inserendo direttive simili alla seguente Order allow,deny Deny from all Satisfy All
Impostazioni di sicurezza del web server Altra modalità di protezione dei file in una directory del server è quella inerente lutilizzo di file di tipo htaccess. RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) order allow,deny
Conclusioni Non sono stati rilevati particolari problemi nello sviluppo del codice. Per quanto riguarda gli attacchi DOS non sono stati sufficientemente testati i firewall open source disponibili, il sistema è quindi vulnerabile a questo tipo di attacchi. Sono stati riscontrati problemi con http 1.0 con la diretiva virtualhost di Apache
Conclusioni Openssl req -new -out server.csr -keyout server.pem -config tuttipunti-ssl.cnf Common Name nome DNS completo del virtual host Attivare per il virtual host il motore SSL: SSLEngine On SSLCertificateKeyFile /etc/apache/keys/server.key SSLCertificateFile /etc/apache/server.crt... altre direttive... Setting di alcuni parametri per PHP
FINE