linux day 2014 - napoli - programma il futuro: una scelta open source

23
Programma Il Futuro: una scelta open source di Marco Ferrigno Mario Rossano SysAdmin & IT Security Manager Web and Software Engineering Declaimer: attualmente lo stato del progetto è da definirsi in beta pubblica , pertanto gli autori si riservano dal rivelare attuali dettagli critici e future implementazioni

Upload: mario-rossano

Post on 19-Jun-2015

415 views

Category:

Internet


0 download

DESCRIPTION

Slide di presentazione del progetto Programma Il Futuro (http://www.programmailfuturo.it) che mi ha visto come progettista del software in cooperazione con Marco Ferrigno che ha curato l'infrastruttura di rete. Il progetto, ideato dal prof. Giorgio Ventre (Univ. "Federico II" di Napoli) ed il prof. Enrico Nardelli (Univ. di Roma "Tor Vergata") per il CINI (Consorzio Interuniversitario Nazionale per l'Informatica) ed il MIUR (Ministero dell'Istruzione, Università e Ricerca), fa parte de "La Buona Scuola", iniziativa promossa dal Ministro Giannini, in collegamento con il progetto internazionale Code.org tra i cui testimonial Barak Obama. Il portale, che è il primo ad integrare la crittografia frattale FNA che ho sviluppato, ha come cuore il sistema di registrazione con profilazione capillare - a nodi - degli utenti, ed il bridge di comunicazione (un hack) verso il sistema di registrazione di code.org e di hourofcode.com. Nelle slides i link ipertestuali verso pastebin.com dove sono riportate alcune parti del codice crittografico e del bridge in Perl.

TRANSCRIPT

Page 1: Linux Day 2014 - Napoli - Programma Il Futuro: una scelta open source

Programma Il Futuro: una scelta open source

di

Marco Ferrigno Mario RossanoSysAdmin & IT Security Manager Web and Software Engineering

Declaimer: attualmente lo stato del progetto è da definirsi in beta pubblica, pertanto gli autori si riservano dal rivelare attuali dettagli critici e future implementazioni

Page 2: Linux Day 2014 - Napoli - Programma Il Futuro: una scelta open source

il pensiero computazionale

Il pensiero computazionale è un processo mentale per cui tramite competenze logiche si acquisisce la capacità di risolvere

problemi in modo creativo ed efficiente.

Programma Il Futuro: una scelta open source

Page 3: Linux Day 2014 - Napoli - Programma Il Futuro: una scelta open source

uno strumento per domarli tutti:programmailfuturo.it

Nasce come piattaforma di supporto alla versione italiana del portale code.org, progetto – quest'ultimo – made in USA che ha visto nel 2013 la partecipazione di circa 40 milioni di studenti e insegnanti di tutto il mondo.

Dal portale sono fruibili i seguenti servizi:

Indicazioni sulla finalità del progetto Iscrizione come insegnante di scuola statale Iscrizione come insegnante di scuola paritaria Iscrizione per studenti Iscrizione per altre tipologie di utenti Lezioni interattive Lezioni “senza rete” Forum di supporto

Programma Il Futuro: una scelta open source

Page 4: Linux Day 2014 - Napoli - Programma Il Futuro: una scelta open source

programmailfuturo.it- ipotesi di carico -

Al di là del fine e prima ancora della tecnica, giusto qualche specifica dimensionale:

~7.000.000 di studenti ~650.000 insegnanti ~400.000 accessi distribuiti (ipotesi di picco nella settimana Hour of Code, 8-14 dicembre 2014) … ~60.000.000 di abitanti

Programma Il Futuro: una scelta open source

Page 5: Linux Day 2014 - Napoli - Programma Il Futuro: una scelta open source

programmailfuturo.it in cloud server

L'infrastruttura cloud server è realizzata su macchine multiprocessore multicore ridondate N+1, con SAN ad alta disponibilità . L'elevato tasso di scalabilità permette di aggiungere server di varia potenza e natura ed assemblare delle infrastrutture complesse e dinamiche, anche stand-alone: web server, db server, load balancer, firewall etc ...

Programma Il Futuro: una scelta open source

Page 6: Linux Day 2014 - Napoli - Programma Il Futuro: una scelta open source

il cloud server su carta

server farm

virtual Infrastructure

vm

os

app

vm

os

app

virtual machine

operating system

application

users users users

n+1

Page 7: Linux Day 2014 - Napoli - Programma Il Futuro: una scelta open source

cloud server: i dettagli sono importanti

Server farm e virtual infrastructure – punti di forza:

KVM (Kernel-based Virtual Machine) SAN in multipath Firewall ridondante Switch in fault-tolerance e load-balancing

Programma Il Futuro: una scelta open source

Page 8: Linux Day 2014 - Napoli - Programma Il Futuro: una scelta open source

cloud server: i dettagli sono importanti

Programma Il Futuro: una scelta open source

vm

os

app

users

guest os

quemu

host os kvm

user space

kernel space

MVCobject user

Page 9: Linux Day 2014 - Napoli - Programma Il Futuro: una scelta open source

Debian GNU/Linux | basic services

(L)AMP2

#Linux

Apache

MySQL

PHP

Perl

Joomla

Kunena

CMS

Security layer

Monitoringservices

layer

Intrusion detection system

Monitor and backup

configuration layer

Smtp serverBug tracking

system

Backup system

Crypt::FNA

Object usercontroller

Page 10: Linux Day 2014 - Napoli - Programma Il Futuro: una scelta open source

operating system layers

Programma Il Futuro: una scelta open source

Debian GNU/Linux | basic services

Strumenti di compilazione e sviluppo: gcc, make, libc6 ... ntp, ntpdate

ssh ftp / sftp

I am root

Page 11: Linux Day 2014 - Napoli - Programma Il Futuro: una scelta open source

(l)amp layer

Programma Il Futuro: una scelta open source

2

(L)AMP2

#Linux

Apache

MySQL

PHP

Perl

libapache2-mod-php5

...

phpmyadmin (via https con .htaccess)

Data::DumperTry::TinyFastCGINet::SMTPNet::SMTP:SSLWWW::MechanizeLWP::UserAgentCrypt::FNA

Page 12: Linux Day 2014 - Napoli - Programma Il Futuro: una scelta open source

security layer

Programma Il Futuro: una scelta open source

Security layer

IDS

Backup

Monitor and backup

configuration layer

cosa c'è di più comodo di un antivirusopensource messo in cron ed eseguibile,

magari per una diversa esigenza, stand-aloneda riga di comando?

Una serie di layers a correlazione stretta!

Lynis: scanner di vulnerabilità Rkhunter: anti rootkitClamAV

Page 13: Linux Day 2014 - Napoli - Programma Il Futuro: una scelta open source

intrusion detection system layer

Programma Il Futuro: una scelta open source

- un po' di letteratura informatica: ids~=ips (intrusion prevention system) -

Fail2ban: è un software per la prevenzione delle intrusioni scritto in Python. E’ in grado di girare su sistemi POSIX che hanno un interfaccia ed un sistema di controllodei pacchetti o firewall installato localmente (per esempio, iptables o TCP Wrapper).

La funzione principale di Fail2ban è quella di bloccare gli indirizzi IP selezionati che potrebbero appartenere a dei computers che stanno tentando di violare la sicurezza del sistema. Determina i server che devono essere bloccati da un controllo dei file di log (per esempio /var/log/pwdfail, /var/log/auth.log, etc) e proibisce l’accesso dagli IP degli host che hanno troppi tentativi di accesso indesiderato o esegue altre azioni in un arco di tempo definito dall’amministratore.

Portsentry: è un attack detection tool il cui compito consiste nella rilevazione di scansioni e nella risposta a tali scansioni.ATTENZIONE: effettua un bind verso ogni porta che monitorizza e di conseguenza offre la visione ad un attaccante che vi sia una moltitudine di open ports disponibili ad un exploit sulla macchina vittima.

Snort: è un software opensource con funzione di ids.Si pone come efficiente contromisura ad attività di footprinting e scansione da parte di un attacker,identificando quindi accessi non autorizzati.

Page 14: Linux Day 2014 - Napoli - Programma Il Futuro: una scelta open source

monitoring & co

Programma Il Futuro: una scelta open source

Security layer

IDS

Backup

Monitor and backup

configuration layer

Backup configuration layer

etckeeperQuesto software e’ una collezione di script bash che consentono di tenere sotto controllo tramite un sistema di revisione distribuito la nostra directory /etc, dove sono appunto presenti i file di configurazione della maggior parte dei nostri servizi in Linux.

bzrun software di controllo versione a cui etckeeper si appoggia

Page 15: Linux Day 2014 - Napoli - Programma Il Futuro: una scelta open source

monitoring & co

Programma Il Futuro: una scelta open source

Monitoring services layer

muninerogatore di grafici e statistiche tramite interfaccia web

monitè un programma gratuito e open source per la gestione e il monitoraggio di processi, file, directory e file system su un sistema UNIX. Monit effettua la manutenzione e la riparazione automatica e può eseguire azioni significative in situazioni di errore.

logcheckè una semplice utility che è progettata per consentire ad un amministratore di sistema di visualizzare i file di log che si realizzano su macchine sotto il proprio controllo.Lo fa, attraverso una sintesi dei log mandati tramite email, filtrando prima le voci “normali” presenti nei log.

Monitoringservices

layer

….

….

Page 16: Linux Day 2014 - Napoli - Programma Il Futuro: una scelta open source

sistema di registrazione utenti

Programma Il Futuro: una scelta open source

Preventiva importazione dati MIUR nel database MySQL

Step 1

Form di registrazione con struttura a nodi - logica condizionalePopolamento select scuole statali tramite AJAXControllo inserimento dati con jQuery

Invio dati all'object user del CMS

Hook nel controller dell'object userSalvataggio password utente tramite Crypt::FNA su MySQL

Invio mail all'utente con token di autenticazione

Page 17: Linux Day 2014 - Napoli - Programma Il Futuro: una scelta open source

Programma Il Futuro: una scelta open source

Preventiva importazione dati MIUR nel database MySQL

Step 2

Utente riceve mail con url (token di autenticazione)Passaggio token all'object user del CMS

Hook nel controller dell'object userVerifica tokenRecupero password utente tramite Crypt::FNA su MySQLInvocazione bridge in Perl verso Code.org ed HourOfCode.com

sistema di registrazione utenti

Page 18: Linux Day 2014 - Napoli - Programma Il Futuro: una scelta open source

il bridge verso code.org ed hourofcode.com

Programma Il Futuro: una scelta open source

Joomla

CMS

Crypt::FNA

Object usercontroller

Page 19: Linux Day 2014 - Napoli - Programma Il Futuro: una scelta open source

Ed ora un po' di code...

Programma Il Futuro: una scelta open source

PHP - Javascript AJAX System - part ONE → http://pastebin.com/KLG2CNkH

PHP - Javascript AJAX System - part TWO → http://pastebin.com/rNgCg8Sz

PHP - Javascript AJAX System - part THREE → http://pastebin.com/y4uDc1EY

Perl Import XLSX data into MySQL→ http://pastebin.com/6RxQHeMu

PHP hack Controller Object User → http://pastebin.com/j47eP3CM

Perl signUp bridge to Code.org → http://pastebin.com/2yke0TE2

Perl Crypt::FNA service → http://pastebin.com/qygfZzRf

Page 20: Linux Day 2014 - Napoli - Programma Il Futuro: una scelta open source

programmailfuturo.it: security alert

Programma Il Futuro: una scelta open source

shellshock (23 settembre 2014)un bug di sicurezza trovato in bash, un programma di shell di comando comunemente utilizzato su sistemi UNIX-like.Il bug in questione è una vulnerabilità legata all’esecuzione di codice in modalità remota, o RCE.L’attaccante è in grado di ingannare bash e “forzarlo” ad eseguire codice arbitrario sulla macchina target. Ufficialmente, il bug è documentato come CVE­2014­6271 e CVE­2014­7169.

poodle (13 ottobre 2014)(Padding Oracle On Downgraded Legacy Encryption) è un tipo di attacco alle connessioni https in grado di rubare informazioni sensibili, incluse, teoricamente, le password degli account.L’attacco si basa su una vulnerabilità di SSLv3, RFC6101, un protocollo del novembre 1996 poco sicuro che fa parte del gruppo di protocolli di scambio dati previsti da https e da tutti i protocolli che usano TLS, come IMAPS, POP3S, SMTP con STARTTLS, etc ...

… che forse ci avrebbero creato qualche problema ...

Page 21: Linux Day 2014 - Napoli - Programma Il Futuro: una scelta open source

un passo indietro ...

Programma Il Futuro: una scelta open source

siege -b -c 300 -r 3 <<url>>Transactions: 4300 hitsAvailability: 99.08 %Elapsed time: 57.81 secsData transferred: 1.42 MBResponse time: 2.75 secsTransaction rate: 74.38 trans/secThroughput: 0.02 MB/secConcurrency: 204.26Successful transactions: 4354Failed transactions: 40Longest transaction: 31.46Shortest transaction: 0.08

siege -b -c 1023 -r 3 <<url>>siege aborted due to excessive socket failure; youcan change the failure threshold in $HOME/.siegercTransactions: 1500 hitsAvailability: 45.29 %Elapsed time: 94.60 secsData transferred: 0.86 MBResponse time: 11.47 secsTransaction rate: 15.86 trans/secThroughput: 0.01 MB/secConcurrency: 181.90Successful transactions: 2629Failed transactions: 1812Longest transaction: 40.05Shortest transaction: 0.00

Page 22: Linux Day 2014 - Napoli - Programma Il Futuro: una scelta open source

ringraziamenti

Programma Il Futuro: una scelta open source

programmailfuturo.it

direzione didattica:- Prof. Giorgio Ventre | CINI - Università degli Studi di Napoli Federico II

direzione dei lavori:- Prof. Enrico Nardelli | CINI - Università degli Studi di Roma Tor Vergata

Comitato tecnico-scientifico MIUR

Linux Day Napoli 2014

- INAF OACN- NaLUG team

Page 23: Linux Day 2014 - Napoli - Programma Il Futuro: una scelta open source

contatti

Programma Il Futuro: una scelta open source

Marco Ferrigno @marco_ferrigno

- Researcher and consultant in computer security and systems engineering

- ICTFF (International Cyber Threat Task Force) Member

- NaLUG (Napoli Linux Users Group) Member

- Developer of the Italian Debian GNU/Linux HowTos

- http://marcoferrigno.wordpress.com/ - [email protected]

Mario Rossano @anakthewolf

- Cryptographic research

- CPAN (Comprehensive Perl Archive Network) Author

- Perl.it Member

- NaLUG (Napoli Linux Users Group) Member

- Application dev/Analyst

- CEO Netlogica

- [email protected]

- anak@cpan-org