310 likes | 477 Views
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.
E N D
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 "www.tuttipunti.org" 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 dall’utente permette l’accesso 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 l’elenco 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 • In input alla prima fase arriva la richiesta del cliente, output di questa fase è una descrizione informale dei requisiti dell’applicazione • In seguito sono partite in parallelo le fasi di sviluppo e di analisi delle problematiche di sicurezza. • Lo sviluppo prevede la codifica dell’applicazione web
Organizzazione del lavoro • L’analisi delle problematiche di sicurezza è partita dall’analisi 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 dell’applicazione. • 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 dell’applicazione. In tal modo si è cercato di rendere l’applicazione più sicura.
Lavoro svolto • Di seguito saranno presentati gli screen shot principali relativi all’applicazione realizzata.
Problematiche di sicurezza • Attacchi DOS un attacco DoS ha essenzialmente l’obiettivo 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 all’utilizzo 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 192.168.0.3 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 l’effetto di chiudere l’apice presente nel codice dello script. Il secondo rappresenta l’apice iniziale cui corrisponde l’apice finale presente nel codice della query sql.
Problematiche di sicurezza:SQL Injection • Per evitare l’utilizzo 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 l’accesso 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 • <Files ~ "^\nomefile.inc"> • Order allow,deny • Deny from all • Satisfy All • </Files>
Impostazioni di sicurezza del web server • Altra modalità di protezione dei file in una directory del server è quella inerente l’utilizzo di file di tipo htaccess. • <IfModule mod_ssl.c> RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} • </IfModule> • <IfModule !mod_ssl.c> order allow,deny • </IfModule>
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:<VirtualHost 192.168.0.3:443>SSLEngine OnSSLCertificateKeyFile /etc/apache/keys/server.keySSLCertificateFile /etc/apache/server.crt... altre direttive ... • Setting di alcuni parametri per PHP