Corso di Sicurezza su reti II
Anno accademico 2006-2007
Prof. A. De Santis
Simulazione della rete Internet:
Versione finale
Sommario
Parte prima: Informazioni generali ....................................................................................... 4
Parte seconda: Scheda tecnica ........................................................................................... 5
Descrizione dei servizi: ..................................................................................................... 5
Manuale d’uso: ................................................................................................................. 5
Implementazione: ............................................................................................................. 6
Parte terza: Fase di setup .................................................................................................... 7
Organizzazione:................................................................................................................ 7
Risorse hardware: ............................................................................................................ 7
Strumenti software:........................................................................................................... 7
Installazione software: ...................................................................................................... 8
Software installato e Motivazioni ................................................................................... 8
Sicurezza: ....................................................................................................................... 12
Parte quarta: Fase di tuning............................................................................................... 14
Parte quinta: La commessa ............................................................................................... 15
Descrizione della commessa .......................................................................................... 15
Breve descrizione dei requisiti ........................................................................................ 15
Specifiche .................................................................................................................... 15
Esempio di utilizzo .......................................................................................................... 15
Aquirente ..................................................................................................................... 15
Amministratore ............................................................................................................ 16
Applicazione realizzata ................................................................................................... 16
Homepage ................................................................................................................... 16
Catalogo ...................................................................................................................... 17
Carrello ........................................................................................................................ 18
Pannello amministratore.............................................................................................. 18
Suddivisione del lavoro ................................................................................................... 19
2
Misure di sicurezza ......................................................................................................... 20
Difficoltà riscontrate ........................................................................................................ 21
Difficoltà con la distribuzione del carico del database ................................................. 21
Difficoltà riscontrate nella fase di integrazione ............................................................ 21
Fonti bibliografiche: ............................................................................................................ 23
3
Parte prima: Informazioni generali
NOME DEL GRUPPO
g3isp
DENOMINAZIONE
ISP3
COMPONENTI
Bruno Andrea - 0521000495
Di Perna Francesco - 0521000442
Granato Francesco - 0521000383
OBBIETTIVO
Implementazione di un portale web commerciale che offra servizi di web
authoring e web hosting, registrazione domini e spazio web a terzi.
PROGETTO
Questo documento ha lo scopo di illustrare e definire i compiti ed il
lavoro svolto dal gruppo ISP3 all’interno della simulazione.
4
Parte seconda: Scheda tecnica
Descrizione dei servizi:
Un Internet Service Provider (ISP) è una struttura commerciale o un'organizzazione che
offre agli utenti (residenziali o imprese) accesso a Internet con i relativi servizi. In italiano è
detto anche fornitore d'accesso. Per estensione, si usa il termine ISP anche per fornitori di
servizi Internet diversi dall'accesso. La scelta dell'ISP è fondamentale. Ogni giorno
appaiono sul mercato nuovi provider di servizi. Esistono ISP locali e nazionali, i quali
offrono opzioni e modalità di pagamento diverse. Il provider deve vantare soprattutto un
tempo di connessione eccellente, caratterizzato da pochissime ore di interruzione (meno
di due o tre interruzioni negli ultimi 3 mesi). Dopo tutto, ogni volta che qualcuno non riesce
ad accedere al sito Web della società o a inviare un messaggio, l'azienda può subire delle
perdite.
In particolare l’ ISP offre servizi avanzati di sviluppo e gestione delle pagine Web. La
realizzazione di questi servizi richiede ampie conoscenze tecniche e l'integrazione dei
sistemi informatici.
Manuale d’uso:
Gli utenti per poter richiedere dei servizi devono contattare l’Internet Service Provider e
richiedere il rilascio di username e password. Una volta ottenute l’utente potrà accedere ai
servizi attivati. Tra i servizi attivabili vi sono: registrazioni di domini, sviluppo e
pubblicazione di siti web. Inoltre gli utenti possono far uso di un server ftp per effettuare
l’upload sullo spazio da loro richiesto ed assegnato. Le scelte tecnologiche si fondano
principalmente su versioni aggiornate, sicure e free. Si intendono fornire servizi che
rispecchiano tali caratteristiche, che siano in primo luogo sicuri e che non consentano
“ospiti inattesi”, dunque la sicurezza prima di tutto, ma anche il rispetto dell’utente
nell’offrirgli un sistema stabile, in grado di rispondere ad ogni sua esigenza e che offra
servizi efficienti. Servizi dunque on-line, rispondenti ai requisiti proposti e la possibilità si
far viaggiare sicure le informazioni, quali login, password, numero di carta di credito e cosi
via.
Gli scopi che ci siamo prefissati di realizzare sono sviluppati con l’ausilio di: Apache, Php
e MySql. La sicurezza sui vari provider sarà garantita tramite firewall, ssl (aggiornato alla
versione 0.9.8c ) e https.
La simulazione per funzionare ha bisogno di attraversare 5 stadi fondamentali:





5
Documentazione su Internet e sulle tesine del corso di sicurezza su reti.
Installazione del sistema operativo e dei software utili ai fini lavorativi.
Realizzazione provider internet commerciale che offra servizi su Internet (web hosting, web
authoring registrazione di domini, applicazioni on-line).
Realizzazione di commesse.
Simulazione della rete.
Implementazione:
Il gruppo ISP3 è composto da 3 persone e si è cercato di suddividere il carico di lavoro in maniera equa
sfruttando le conoscenze pregresse dei vari componenti del gruppo. In particolare:
COMPONENTE
LAVORO SVOLTO
BRUNO ANDREA
Selezione software da installare, installazione S.O., gestione
politiche di sicurezza (guardog) e attivazione nuovi account
(webmin)
FRANCESCO
GRANATO
Selezione software da installare, installazione Web Server Apache e
installazione altri software
FRANCESCO
PERNA
6
DI Selezione software da
installazione altri software
installare,
installazione
MySQL
e
Parte terza: Fase di setup
Organizzazione:
Tutti i componenti del gruppo hanno preso parte all’installazione del sistema operativo, alla
scelta dei prodotti software da installare, alla ricerca di materiale su internet per la fase di
documentazione e scelta delle distribuzioni. La prima fase di cui il gruppo si è occupata è
stata la scelta della macchina sulla quale iniziare l’attività. Successivamente i componenti
si sono accertati del completo funzionamento di tutte le parti hardware per non
compromettere la riuscita della fase di setup e dell’intera simulazione.
Risorse hardware:
1 PC assemblato con le seguenti caratteristiche:
PROCESSORE
Intel© Pentium 3 800 Mhz (L1 cache: 256KB)
MEMORIA RAM
128 MB
SCHEDA VIDEO
Matrox mga G400
HARD DISK
Quantum Fireball 20 GB
LETTORE CD
Creative 52X
SCHEDA DI RETE
Realtek RTL8139
SCHEDA AUDIO
Ensoniq 5880 audiopci
Con queste caratteristiche questa risulta essere un delle macchine più potenti all’interno
della rete della nostra simulazione.
Strumenti software:
CATEGORIA
SOFTWARE
VERSIONE
SISTEMA OPERATIVO
Ubuntu
7.04 server edition x86
SERVER WEB
Apache
2.2.3
DBMS
MySQL
5.0.38
SERVER
SIDE
LANGUAGE
SCRIPTING Php
LIBRERIE SSL
PANNELLO
REMOTO
7
DI
CONTROLLO
5.2.1
Openssl
0.9.8c
Webmin
1.340
PANNELLO
Wirtualmin
3.39
SERVER FTP
ProFtpd
1.3.0a
CONFIGURAZIONE FIREWALL
Guarddog
2.5.0
Webalizer
2.01-10
DI
CONTROLLO
VHOST
GESTIONE
STATISTICHE
SITI
WEB
Installazione software:
Software installato e Motivazioni
Ubuntu 7.04 – server edition x86
Abbiamo scelto ubuntu come distribuzione linux in quanto tra le distribuzioni server
completamente libere e gratuite di linux era quella che garantiva una maggiore presenza
di pacchetti precompilati ed un miglior supporto della comunità di utenti tramite forum.
La versione di ubuntu presa in considerazione è l’ultima realizzata. E’ stata scelta perchè
include già le versioni più recenti e sicure. Tra queste abbiamo riscontrato Apache2, Mysql
e php. Ubuntu 7.04 prende il posto della versione 6.10 "Edgy Eft" e, come quest'ultima,
arriva nell'edizione desktop e server. Al suo cuore c'è il kernel di Linux 2.6.20 e le
interfacce grafiche KDE 3.5.6, GNOME 2.18 e Xfce 4.4.
In fase di installazione è stato migliorato il riconoscimento dell'hardware, soprattutto per
quanto riguarda i notebook.
In Ubuntu 7.04 fa capolino l'Easy-to-install codec wizard, un programma grafico che
semplifica l'installazione di codec multimediali aggiuntivi: nel caso in cui non si riesca a
riprodurre un file, il tool suggerisce automaticamente il download del codec più adatto. Il
tool Restricted Drivers manager permette invece di installare drive grafici o WiFi
proprietari.
Gli sviluppatori di Ubuntu hanno poi migliorato l’Help Center, un sistema di aiuto
centralizzato di cui è stata limata l'interfaccia e sono stati aggiunti molti argomenti. Il
gruppo di volontari italiani che si occupa della traduzione di Ubuntu ha per altro già
tradotto quasi tutta la nuova distribuzione.
Dal punto di vista grafico, Feisty Fawn include un tema ampiamente rivisitato e permette di
attivare effetti 3D per il desktop.
In Ubuntu 7.04 è stato infine incluso il modulo Kernel Virtual Machine (KVM), che permette
di far girare più sistemi operativi sullo stesso PC, ed il supporto alle estensioni hardware
Intel VT o AMD-V e a VMI, che ottimizza le performance di VMware. Al debutto anche
Jetpipe, una nuova architettura per la stampa dedicata ai thin client.
8
La distribuzione installata, dato l’ hardware messo a disposizione, è stata la alternate
perché questa consente di gestire al meglio sistemi che hanno meno di 256Mb di ram.
Inoltre l’interfaccia grafica è Xfce 4.4 dato che non si doveva appesantire il sistema.
In fase di installazione abbiamo scelto di partizionare il nostro Hard Disk nel seguente
modo:



300MB per partizione Swap
7GB per il Sistema Operativo
13.5 GB per la cartella Home con attivati i flag per la gestione della quota disco per singolo utente o
gruppi
Apache 2.2.3
Il web server Apache è uno dei più riusciti progetti open source al mondo, infatti può
vantare una quota di mercato pari al 54% a luglio 2007 secondo quanto affermato da
netcraft. Inoltre la documentazione relativa a questo popolare web server è molto copiosa
e ben realizzata. Se a questo si aggiunge che è completamente gratuito ed Open Source,
si può facilmente vedere come questa sia stata quasi una scelta obbligata per il nostro
gruppo.
Questo, come tutti gli altri software della simulazione è stato installato tramite il tool
Synaptic della distribuzione ubuntu e i pacchetti precompilati specifici di questa
distribuzione.
Apache 2 è la più recente e migliore versione del server Apache, la cui architettura
contiene significativi miglioramenti rispetto alla serie 1.3, tra cui possiamo menzionare:


Moduli multiprocesso, grazie ai quali Apache può essere configurato come un server basato su
processi
Moduli di protocollo, rendono possibile la scrittura di moduli per protocolli diversi da HTTP, quali
POP3 per la posta o FTP per il trasferimento di file.
Apache 2 conserva l'architettura modulare di 1.3 con l'aggiunta di un ulteriore meccanismo
di estensione rappresentato dai filtri.
La versione 2.2.3 introduce diverse interessanti novità sul fronte delle autorizzazioni
basate sul modulo mod_authn_alias, del caching per le memorie, un sistema di
bilanciamento del carico, una nuova gestione delle Api, un nuovo supporto per file di
dimensioni superiori a 2Gb. Inoltre, il nuovo modulo mod_proxy_ajp supporta il protocollo
Apache JServ utilizzato da Tomcat in Java Servlet e JavaServer Pages.
Mysql 5.0.38
Il software MySQL 5.0.38 costituisce la versione più affidabile, sicura ed aggiornata del
database open source più famoso al mondo, che consente di realizzare economicamente
applicazioni di E-commerce, Online Transaction Processing (OLTP) e Data Warehousing
da molti terabyte. È un database completamente integrato, transaction-safe e conforme ad
ACID (per realizzare applicazioni business critical affidabili e sicure), con eccezionali
capacità di commit, rollback, crash recovery e locking a livello di riga. MySQL garantisce la
9
facilità d’impiego, la scalabilità e le prestazioni che hanno reso MySQL il database open
source più famoso al mondo.
Php 5.2.1
PHP è un linguaggio di scripting interpretato, con licenza open source, originariamente
concepito per la realizzazione di pagine web dinamiche. Attualmente è utilizzato
principalmente per sviluppare applicazioni web lato server ma può essere usato anche per
scrivere script a linea di comando o applicazioni standalone con interfaccia grafica.
La versione 5.2.1 contiene una serie di bugfix ed aggiornamenti per la sicurezza. Oltre ai
bugfix sono state apportate alcune migliorie alle performance, modificato il driver di PDO
per l'accesso tramite MySQL in modo che utilizzi le query bufferizzate di default ed emuli i
prepared statement ove necessario ed aggiornate le estensioni zip e filter.
OpenSSL 0.9.8c
OpenSSL è un'implementazione open source dei protocolli SSL e TLS. Le librerie di base
(scritte in linguaggio C) eseguono le funzioni crittografiche principali. Nei diversi linguaggi
di programmazione sono disponibili procedure che permettono di accedere alle funzioni
della libreria OpenSSL.
VirtualMin 3.39 e WebMin 1.340
Virtualmin è la più diffusa gestione di sistema di hosting Open-Source virtuale del mondo
progettata per rendere hosting virtuale rapido, affidabile e sicuro. Virtualmin, è anche facile
installare, professionalmente supportato e in modo aggressivo mirato alla risposta a delle
necessità di fornitori di web hosting. Il professionista Virtualmin aggiunge strumenti di
creazione template-based website, sostegno per analytics come Google Analytics e
QuantCast forniti da terze parti, installazione automatica di dozzine di applicazioni,
accesso mobile completo con monitoraggio e con allarmi e molto di più. Il professionista
Virtualmin è il più completo sistema di amministrazione di hosting virtuale disponibile.
Webmin è uno strumento di configurazione di sistema per sistemi Unix-like. Ha un
interfaccia desktop basata sul web in un ambiente indipendente, per configurare alcuni
degli internals del sistema operativo.
Webmin è basato in gran parte su Perl ed è in esecuzione come il proprio processo e
server web. Di solito utilizza porta 10000 TCP per la comunicazione e può essere
configurato per utilizzare SSL se OpenSSL è installato.
Costruito intorno a moduli, che hanno un'interfaccia verso i file di configurazione e
un'interfaccia verso il server webmin. Questo rende facile aggiungere le nuove
funzionalità, senza troppo lavoro. E a causa della progettazione modulare di Webmin,
sarebbe possibile, per chiunque è interessato, per scrivere plugins per configurazione
desktop. Webmin permette anche più avanti di controllare molte macchine attraverso una
singola interfaccia, o senza limitazioni login molto altri host webmin nella stessa LAN.
Chi si è trovato a fornire soluzioni di hosting su piattaforma GNU/Linux, è a conoscenza
del fatto di come spesso sia difficile, specie se il numero di utenti è alto, integrare i sistemi
10
di creazione e gestione dei diversi servizi necessari, dallo spazio web, alla posta
elettronica fino alla configurazione dei database SQL.
Esistono ottimi prodotti che permettono di fare questo, ma spesso hanno costi davvero
sostenuti e funzionalità non sempre trasparenti.
Esiste comunque un’alternativa a questi prodotti, completamente gratuita, si tratta di
Webmin (http//:www.webmin.com), la famosa e diffusissima interfaccia per la gestione via
Web dei sistemi GNU/Linux, a cui va aggiunto il modulo Virtualmin.
Maggiori e più dettagliate informazioni sono reperibili seguendo il link:
http://www.sistemistiindipendenti.org/pdf/virtualmin.pdf
Webalizer 2.01-10
Il programma genera statistiche d'utilizzo in formato HTML consultabili mediante un
qualsiasi browser.
Fornisce dati annuali, mensili, giornalieri ed orari, dati d'accesso per sito, per URL, per
referer, user agent e paese, ovviamente se tali informazioni sono state registrate nei file di
log.
Il programma presenta le seguenti caratteristiche:








è scritto in C per essere maggiormente veloce e portabile;
è distribuito sia in formato sorgente che binario per varie piattaforme (Linux, Windows, Mac OS X);
supporta svariate lingue tra cui l'italiano;
analizza log in Common Log Format e Combined Log Format (non solo);
può essere personalizzato mediante l'utilizzo di un semplice file di configurazione;
è possibile utilizzare più file di configurazione uno per ciascun sito;
può essere utilizzato anche in presenza di un sistema di rotazione dei log;
è gratuito e distribuito con licenza GNU General Public License.
Proftpd 1.3.0
Abbiamo scelto questo server ftp per il compromesso tra semplicità di utilizzo e sicurezza
offerta.
ProFTPD è un server ftp molto performante, con obiettivo primario il tenerlo il più semplice
possibile, il piu sicuro possibile e con una configurazione completa e facile, Naturalmente
proftpd è usato da alcuni dei più grandi siti su internet. Ha una configurazione che è molto
simile a quella di apache nella sintassi, nei moduli e per la personalizzazione. Include il
supporto per server FTP virtuali, per il login di utenti anonimi e per la permission-based
directory visibility.
Guarddog 2.5.0
Utility per la configurazione del firewall in sistemi Unix-like. Può essere utilizzato da diversi
gruppi di utenti, dagli utenti novizi e intermedi che non hanno conoscenza del networking
TCP/IP e delle questioni di sicurezza a quelli più esperti che però non amano avere a che
fare con criptici script di shell e con i parametri di iptables.
11
Sicurezza:
Al fine di garantire la sicurezza del sistema si è configurato, tramite guarddog, il firewall
iptables al fine di ridurre al minimo gli accessi al sistema lasciando aperte aperte solo le
porte strettamente indispensabili ai servizi da fornire, infatti sonno aperte solo le porte 80 e
443, per essere utilizzate da http e https, la porta 21 per l’uso con ftp e la port 10000 per
l’utilizzo del pannello di controllo di virtualmin. È stato inoltre impedita la risposta del server
ai pacchetti ICMP al fine di ridurre le informazioni rilasciate ad eventuali attaccanti a
proposito del sistema. Sempre in quest’ottica si è modificato il file di configurazione di
Apache per fornire la minor quantità di informazioni nella sua signature.
La modifica effettuata nel file apache2.conf per ottenere questo risultato consiste
nell’inserire la seguente direttiva:
ServerTokens Major
Come risultato di questo commando avremo che la signature di apache sarà:
Server: Apache/2
Inoltre abbiamo effetuato una modifica nel file di configurazione dell’host virtuale di
informatica-granata.it al fine di trasferire tutte le connessioni al server su protocollo https. Il
codice da aggiungere è il seguente:
<IfModule mod_ssl.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</IfModule>
<IfModule !mod_ssl.c>
order allow,deny
</IfModule>
Da una semplice scansione delle porte si può facilmente verificare quello che abbiamo
appena detto, notiamo inoltre che anche se la porta 21 non è filtrata dal firewall, al
momento no c’è nessun demone pronto a rispondere, infatti tale porta risulta closed,
questo perché non ci è stata effettuata nessuna richiesta che richiedesse l’accesso ftp alla
macchina in questione e pertanto al momento, pur avendolo installato, abbiamo deciso di
non avviare il demone ProFtpd.
12
# nmap –T4 –A –p 1-65535 192.168.0.4
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2007-07-16
14:14 CEST
Interesting ports on informatica-granata.it (192.168.0.4):
Not shown: 65532 filtered ports
PORT
STATE SERVICE
VERSION
21/tcp
closed ftp
80/tcp
open
http
Apache httpd 2
443/tcp open
ssl/http
Apache httpd 2
MAC Address: 00:E0:4C:39:11:F4 (Realtek Semiconductor)
Device type: firewall|general purpose
Running: Checkpoint Windows NT/2K/XP, Linux 2.4.X
OS details: Checkpoint SecurePlatform NG FP3, Linux 2.4.20
Nmap finished: 1 IP address (1 host up) scanned in 864.258 seconds
13
Parte quarta: Fase di tuning
SERVIZI RICHIESTI
Per il corretto e regolare svolgimento della
nostra attività abbiamo bisogno di un
certificato intestato alla nostra società per
poter gestire le connessioni sicure sul
nostro sito web. Inoltre avremo bisogno di
certificati intestati ad ognuno dei nostri
clienti per poter permettere loro connessioni
sicure.
Inoltre abbiamo bisogno di registrare i nomi
di dominio per conto nostro e dei nostri
clienti.
RICHIESTE EFFETUATE
Sono state effettuate richieste specifiche al
NIC per avere assegnato l’indirizzo IP
192.168.0.4 ed alla Certification Authority
per avere un certificato digitale riconosciuto
da tutti i gruppi partecipanti alla
simulazione.
RICHIESTE RICEVUTE
Nessuna richiesta ricevuta
14
Parte quinta: La commessa
Descrizione della commessa
Realizzazione del sito “www.informatica-granata.it” che implementi un sito di e-commerce
di materiale informatico che si appoggia per i pagamenti ad un ufficiale pagatore realizzato
dagli altri gruppi partecipanti alla simulazione.
Breve descrizione dei requisiti
Il sito comprende alcune pagine esplicative, un catalogo navigabile e, per gli utenti
registrati, il listino prezzi, il carrello per la spesa e la possibilità di acquisto on-line, tramite il
sistema implementato da “UfficialePagatore.com”.
Specifiche
Si richiede l'implementazione del sito Informatica Granata e piu' precisamente:
1.
2.
3.
4.
5.
6.
Gestione anagrafica clienti
Gestione catalogo e listino (con apposito pannello amministratori)
Gestione utenti amministratori
Carrello della spesa
Interfaccia col sistema di pagamento U.P.
Si richiede la registrazione di almeno 30 utenti ed un catalogo di almeno 20 prodotti
di diversa prezzatura.
Esempio di utilizzo
Aquirente
L’utente Francesco vuole acquistare un portatile su “www.informatica-granata.it” . Per fare
questo dovrà innanzitutto registrarsi su informatica-granata inserendo
 Nome e Cognome
 Codice fiscale
 Indirizzo
 Username
 Password
Una volta registrato potrà sfruttare lo username e la password creati per accedere al
catalogo, selezionare il portatile che vuole acquistare, quindi accedere al carrello e
confermare l’acquisto.
A questo punto l’utente verrà rediretto verso il sito “UfficialePagatore.com” per effettuare il
pagamento dello merce. Una volta ricevuta conferma dal’ufficiale pagatore dell’avvenuto
pagamento il negozio metterà in spedizione la merce richiesta.
Per effettuare il pagamento l’utente ha a disposizione 5 minuti.
15
Amministratore
L’utente Andrea, con permessi di amministratore può accedere al pannello di
amministratore dopo aver effettuato il login. Da qui può gestire l’anagrafica cliente
(modificandone i dati, eliminandone alcuni, promuovendo nuovi amministratori o
degradando altri amministratori al ruolo di utenti) oppure getire il catalogo, aggiungendo ad
esempio prodotti o modificando le caratteristiche dei prodotti esistenti.
Applicazione realizzata
Homepage
Figura 1 Screenshot della homepage prima di aver effettuato il login
La homepage di informatica granata permette ai visitatori del sito di avere una conoscenza
della nostra società. Permette inoltre di accedere al catalogo ed al carrello e di effettuare il
login per gli utenti registrati o di accedere alla pagina di registrazione.
16
Figura 2 Screenshot della homepage dopo aver effettuato il login come amministratore
Se si effettua il login nella barra laterale sarà possibile accedere al pannello di modifica dei
dati utente dal quale un utente può modificare i propri dati. Infine se si effettua il login
come amministratore apparirà anche nel footer un link al pannello di amministrazione
Catalogo
In questa pagina è possibile selezionare gli oggetti che si desidera acquistare e quindi
passare al carrello per completare l’acquisto.
Figura 3 Screenshot del catalogo
17
Carrello
Da questa pagina l’utente può confermare i suoi acquisti e passare alla fase di
pagamento.
Figura 4 Screenshot del carrello
Pannello amministratore
Un utente che ha effettuato il login e a cui sono riconosciuti i permessi di amministratore
può accedere a questa pagina dalla quale, tramite il pannello posto nella barra laterale
sinistra, può gestire il catalogo e gli utenti del sito.
Figura 5 Screenshot del pannello amministratore
18
Figura 6 Screenshot del pannello di gestione catalogo
Figura 7 Screenshot del pannello di gestione utenti
Suddivisione del lavoro
Il sito di informatica granata nasce dalla collaborazione tra gli ISP gruppo 2 e 3, pertanto
tra di noi è stato facile effettuare una prima divisione logica del lavoro, ovvero il gruppo 2 si
è occupato dello sviluppo del database e delle API php per l’accesso al database, invece il
gruppo 3 si è occupato dello sviluppo del sito vero e proprio. Inoltre abbiamo valutato col
gruppo di Ufficiale Pagatore di suddividere anche il lavoro di sviluppo delle API php per
l’implementazione del protocollo di interazione in quanto noi eravamo meglio a
conoscenza di quali fossero i bisogni del negozio in merito all’interazione con queste API e
potevamo inoltre in questo modo velocizzare lo sviluppo di tutta l’applicazione, pertanto
noi abbiamo sviluppato la parte client delle suddette API. La suddivisione del lavoro è
stata la seguente:
COMPONENTE
GRUPPO
LAVORO SVOLTO
IVO BARONE
ISP
gruppo 2
Progettazione e realizzazione del database
DOMENICO
LAURINO
ISP
gruppo 2
Sviluppo API database
BRUNO ANDREA
ISP
gruppo 3
Sviluppo API protocollo lato client e integrazione del
sito
FRANCESCO
GRANATO
ISP
gruppo 3
Sviluppo catalogo e carrello
19
FRANCESCO
PERNA
DI ISP
gruppo 3
Sviluppo pannello amministratore e homepage
Misure di sicurezza
Quando si realizza un sito web di e-commerce è molto importante l’aspetto della sicurezza
sia per evitare attacchi che causano perdite economiche al gestore del negozio, sia
attacchi volti a ottenere dati dei clienti.
A tal fine abbiamo messo in atto alcune misure utili a rendere più difficile la vita di un
eventuale attaccante. Innanzitutto a tutti gli input del sito, sia che essi vengano da un
utente comune che da un amministratore, vengono applicate le funzioni addslashes, in
fase di memorizzazione nel database che fa si che quanto inserito non venga interpretato
come comando sql causando una sql injection, e htmlentities prima di visualizzare una
stringa presa dal database che trasforma la suddetta stringa sostituendo tutti i caratteri
html con le rispettive entitites (ad es. “<” diventa “>”) impedendo in questo modo gli
attacchi di Cross Site Scripting.
Inoltre abbiamo chiuso ogni possibile accesso dalla rete al database dell’applicazione al
quale è possibile accedere solo in locale e tramite password. L’applicazione web può
accedere al database in quanto il web server apache gira anch’èsso in locale.
Per evitare di favorire eventuali attaccanti abbiamo modificato il file di configurazione di
apache in modo che rilasciasse la minor quantità di informazioni sulla versione installata
all’esterno, infatti da un semplice scanning effettuato sulla porta 80 con il software nmap si
evince che apache si presenta all’esterno con la stringa “Apache 2” indicando solo
genericamente che appartiene alla seconda generazione del popolare web server, invece
di fornire indicazioni dettagliate sul numero di versione, sulla versione di openssl installata,
sulla versione di php e di molti altri moduli di apache (come ad es. WebDAV). Tutte queste
informazioni facilitano un attaccante nell’individuazione di eventuali bug nelle applicazioni
installate sul server e quindi nella scelta degli script da utilizzare nel portare a termine un
attacco.
Una ulteriore precauzione è quella di far si che tutta l’interazione tra l’ufficiale pagatore ed
il negozio avviene tramite https per garantirne una maggiore sicurezza.
Abbiamo inoltre impedito l’accesso a tutte le pagine che contengono funzioni che non
debbono essere accedute direttamente all’utente, senza che questo si sia loggato come
amministratore aggiungendo il seguente codice php:
Session_start();
if(strcmp($_SESSION['login_admini'],"")==0){
die("Devi essere un amministratore per accedere a questa pagina");
}
Questo codice controlla che un utente abbia effettuato il login come amministratore ,
altrimenti termina l’esecuzione dello script prima che venga eseguito altro codice.
Una ulteriore tipologia di attacco a cui può essere soggetto un sito web è quella degli
attacchi Denial Of Service (DOS) e di Distributed Denial Of Service (DDOS) che hanno
20
come obbiettivo di saturare le risorse di un server web al fine di impedire l’accesso ai
clienti del server. Uniche protezioni a questo tipo di attacchi sono quelle di ridurre le
connessioni provenienti da uno stesso host (solo per attacchi di tipo DOS), il tempo che
una connessione rimane aperta, o di impedire l’accesso ad un host che sta effettuando
troppe connessioni strane (anche questo vale solo per gli attacchi DOS ed inoltre questo
rimedio più che una prevenzione è una cura dopo che l’attacco è avvenuto) ma queste
sono solo cure palliative. Soluzioni efficaci possono essere il clustering del server, che
aumenta le risorse a disposizione del server, ma soprattutto luso di un sistema di proxy o
di un content delivery network come ad esempio Akamai, che favoriscono lo spostamento
del carico del server verso la periferia della rete, evitando il sovraccarica mento del server
centrale. Queste ultime soluzioni non sono applicabili alla rete della simulazione data la
sua ristrettezza, è anche vero però che in questa rete risulta, proprio per la sua ristrettezza
e per la scarsa potenza dell’hardware dei computer utilizzati, la realizzazione di un forte
attacco di questo tipo.
Difficoltà riscontrate
Durante il corso dello sviluppo della commessa abbiamo riscontrato due principali di
difficoltà, la prima riguardante il database, che inizialmente era installato sulla macchina
dell’ISP gruppo 2, e la seconda riguardante la fase di integrazione sia interna al gruppo,
sia tra l’Ufficiale Pagatore e Informatica granata.
Difficoltà con la distribuzione del carico del database
All’inizio della commessa era stato deciso tra i due ISP che il gruppo 2 avrebbe mantenuto
il database ed il gruppo 3 il web server con l’applicazione web. Questo però ha comportato
un notevole rallentamento del sito, causando tempi di generazione delle pagine che
accedevano al database prossimi ai 20 secondi. Questo era dovuto dalla necessità di
utilizzare il protocollo https anche per l’accesso al database, in quanto altrimenti i dati
avrebbero viaggiato in chiaro sulla rete e sarebbero potuti essere facile preda di un
attaccante. Dopo molti tentativi e ricerche sui forum siamo arrivati alla conclusione che il
problema fosse nelle librerie di accesso al database fornite da php e pertanto abbiamo
deciso di installare anche il database sulla macchina del gruppo 3, in quanto questa ha
l’hardware più performante.
Difficoltà riscontrate nella fase di integrazione
Avendo noi dovuto lavorare separati, per problemi logistici, in quanto siamo residenti in
posti diversi e non vicini, al termine del lavoro di sviluppo delle singole componenti del sito
abbiamo dovuto procedere all’integrazione delle parti, e se le difficoltà sono state minimali
nell’integrazione con le API del database in quanto una firma delle funzioni ci era stata
fornita fin dall’inizio dal collega Domenico Laurino (e tra l’altro le funzioni di cui avevamo
bisogno erano state definite in comune) maggiori difficoltà si sono riscontrate
nell’integrazione tra altre componenti di informatica granata.
Successivamente ancora maggiori difficoltà si sono riscontrate nella integrazione tra
informatica granata e ufficiale pagatore, in quanto, per il funzionamento stesso delle
librerie curl e openssl di php su cui si basava il protocollo di interazione tra le due parti,
bastava una piccola differenza tra i flag utilizzati dall’uno o dall’altro gruppo per impedirne
21
il corretto funzionamento. Inoltre il mancato funzionamento dell’interazione era dovuto
anche a differenze nell’interpretazione del protocollo tra chi ha implementato la parte client
del protocollo di interazione e chi ha implementato la parte server.
L’unica soluzione a questo problema è stato passare alcune giornate vicino alle macchine
a correggere tutti i bug riscontrati.
22
Fonti bibliografiche:










23
http://httpd.apache.org
http://www.ubuntu.com
http://www.mysql.com
http://www.dia.unisa.it
http://www.webmin.com
http://www.openssl.org
http://www.sistemistiindipendenti.org/pdf/virtualmin.pdf
http://www.swelltech.com/support/virtual-servers/
http://www.virtualmin.com/support/documentation/virtualmin-admin-guide/index.html
http://news.netcraft.org