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
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
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.
Lavoro svolto
Lavoro svolto
Lavoro svolto
Lavoro svolto
Lavoro svolto
Lavoro svolto
Lavoro svolto
Lavoro svolto
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 On
SSLCertificateKeyFile /etc/apache/keys/server.key
SSLCertificateFile /etc/apache/server.crt
... altre direttive ...
•Setting di alcuni parametri per PHP
FINE
Scarica

commessa n.1 - Sicurezza su reti 2