SlideShare une entreprise Scribd logo
1  sur  34
Télécharger pour lire hors ligne
Sicurezza e Resilienza di Architetture
basate su Linux Containers
Gianluca Magalotti
Business Developer / Business-e S.p.A.
#redhatosd
Agenda
 Containers: vanno ancora spiegati?
 Sicurezza: Cosa cambia, Come mi adeguo e Dove mi Fermo?
 Attacchi: un esempio pratico di resilienza
Linux Containers: vanno ancora spiegati?
I containers rappresentano un bluff, un’illusione per i
processi che ne fanno parte. Sono, però, e restano gruppi
di processi con specifici privilegi e restrizioni.
Linux Containers: Acceleratori dello sviluppo?
Linux Containers: Acceleratori dello sviluppo?
DevOps IoT
Microservices
Linux Containers: Acceleratori dello sviluppo?
Bello ma che effetto avranno sulle operations?
DevOps IoT
Microservices
Linux Containers: Acceleratori dello sviluppo?
Bello ma che effetto avranno sulle operations?
DevOps IoT
Microservices
Linux Containers: Acceleratori dello sviluppo?
E sulla Sicurezza?
DevOps IoT
Microservices
Linux Containers: Acceleratori dello sviluppo?
E sulla Sicurezza?
DevOps IoT
Microservices
Sicurezza: Cosa Cambia?
Fonte: http://www.darkreading.com/endpoint/rethinking-application-security-with-microservices-architectures-/a/d-id/1325155
Sicurezza: Cosa Cambia?
• Proliferazione Endpoints: Aumenta la superficie di attacco
Fonte: http://www.darkreading.com/endpoint/rethinking-application-security-with-microservices-architectures-/a/d-id/1325155
Sicurezza: Cosa Cambia?
• Proliferazione Endpoints: Aumenta la superficie di attacco
• Perimetri non ben definiti e Indirizzi effimeri: tecniche consolidate (zoning,
VLAN) spesso non sono più utilizzabili
Fonte: http://www.darkreading.com/endpoint/rethinking-application-security-with-microservices-architectures-/a/d-id/1325155
Sicurezza: Cosa Cambia?
• Proliferazione Endpoints: Aumenta la superficie di attacco
• Perimetri non ben definiti e Indirizzi effimeri: tecniche consolidate (zoning,
VLAN) spesso non sono più utilizzabili
• Entropia e Mascheramento: il limite non è più il Datacenter, sorgente non
individuabile da appliances esterni
Fonte: http://www.darkreading.com/endpoint/rethinking-application-security-with-microservices-architectures-/a/d-id/1325155
Sicurezza: Cosa Cambia?
• Proliferazione Endpoints: Aumenta la superficie di attacco
• Perimetri non ben definiti e Indirizzi effimeri: tecniche consolidate (zoning,
VLAN) spesso non sono più utilizzabili
• Entropia e Mascheramento: il limite non è più il Datacenter, sorgente non
individuabile da appliances esterni
• Policies e proliferazione transazioni E-O: La semplicità nell’uso dei Containers
rende complessa la definizione di policies e la individuazione dei servizi.
Fonte: http://www.darkreading.com/endpoint/rethinking-application-security-with-microservices-architectures-/a/d-id/1325155
Sicurezza: Cosa Cambia?
• Proliferazione Endpoints: Aumenta la superficie di attacco
• Perimetri non ben definiti e Indirizzi effimeri: tecniche consolidate (zoning,
VLAN) spesso non sono più utilizzabili
• Entropia e Mascheramento: il limite non è più il Datacenter, sorgente non
individuabile da appliances esterni
• Policies e proliferazione transazioni E-O: La semplicità nell’uso dei Containers
rende complessa la definizione di policies e la individuazione dei servizi.
• Continuous Delivery & Integration: La sicurezza non è ancora «Agile»
Fonte: http://www.darkreading.com/endpoint/rethinking-application-security-with-microservices-architectures-/a/d-id/1325155
Sicurezza: Come mi Adeguo?
Fonte: http://www.darkreading.com/endpoint/rethinking-application-security-with-microservices-architectures-/a/d-id/1325155
Sicurezza: Come mi Adeguo?
• Scoprire e monitorare le comunicazioni tra servizi: Osservare o visualizzare il
traffico tra servizi, Service Discovery, pattern discovery.
• Segmentare e isolare applicazioni e servizi: rafforzare le policies a livello di
cluster/host su cui vengono eseguite le istanze del servizio.
Fonte: http://www.darkreading.com/endpoint/rethinking-application-security-with-microservices-architectures-/a/d-id/1325155
Sicurezza: Come mi Adeguo?
• Scoprire e monitorare le comunicazioni tra servizi: Osservare o visualizzare il
traffico tra servizi, Service Discovery, pattern discovery.
• Segmentare e isolare applicazioni e servizi: rafforzare le policies a livello di
cluster/host su cui vengono eseguite le istanze del servizio.
• Cifratura: anche nelle transazioni E-O. Adottare tools di management e
disseminazione chiavi.
Fonte: http://www.darkreading.com/endpoint/rethinking-application-security-with-microservices-architectures-/a/d-id/1325155
Sicurezza: Come mi Adeguo?
• Scoprire e monitorare le comunicazioni tra servizi: Osservare o visualizzare il
traffico tra servizi, Service Discovery, pattern discovery.
• Segmentare e isolare applicazioni e servizi: rafforzare le policies a livello di
cluster/host su cui vengono eseguite le istanze del servizio.
• Cifratura: anche nelle transazioni E-O. Adottare tools di management e
disseminazione chiavi.
• Automazione: Più complessità e Più routine = più errore umano. Tools di
Automazione riducono significativamente l’incidenza di questi errori.
Fonte: http://www.darkreading.com/endpoint/rethinking-application-security-with-microservices-architectures-/a/d-id/1325155
Sicurezza: Come mi Adeguo?
• Scoprire e monitorare le comunicazioni tra servizi: Osservare o visualizzare il
traffico tra servizi, Service Discovery, pattern discovery.
Fonte: http://www.darkreading.com/endpoint/rethinking-application-security-with-microservices-architectures-/a/d-id/1325155
Sicurezza: Dove mi fermo?
Sicurezza: Dove mi fermo?
Non è possibile soffermarsi sul perimetro, si deve agire a livello
di cluster/host istanza del servizio:
Sicurezza: Dove mi fermo?
Non è possibile soffermarsi sul perimetro, si deve agire a livello
di cluster/host istanza del servizio:
 Sfruttare le caratteristiche dei Container (dockerfile e
stratificazione immagini)
Sicurezza: Dove mi fermo?
Non è possibile soffermarsi sul perimetro, si deve agire a livello
di cluster/host istanza del servizio:
 Sfruttare le caratteristiche dei Container (dockerfile e
stratificazione immagini)
 Partire da immagini certificate in repositories certificate
Attacchi: un Esempio Pratico di Resilienza
Situazione client-server sfruttabile per Denial of Service
 Un demone vulnerabile (memory leaks, fork bomb, saturazione risorse)
 Un client ”opportunamente scritto”, che le sfrutta
Attacchi: il demone
for (;;) {
len_inet = sizeof adr_clnt;
c = accept(s, (struct sockaddr *)&adr_clnt, &len_inet);
if ( c == -1 )
bail("accept(2)");
if ( (PID = fork()) == -1 ) { /* Tentativo fork fallito */
close(c);
continue;
} else if ( PID > 0 ) { /* Sono il processo PADRE */
char *buffer = (char *)malloc(leakSize*sizeof(char));
memset(buffer,0,leakSize*sizeof(char));
close(c);
continue;
} else { /* Sono il Processo FIGLIO, che servirà il client*/
while ( fgets(buf,sizeof buf,rx) )
rpn_process(tx,buf);
fclose(tx);
shutdown(fileno(rx),SHUT_RDWR);
fclose(rx);
exit(0);
}
Simulazione di Memory Leak
Succube della chiusura lato client per cui,
un numero sufficiente di richieste,
satura le porte del server
Fork illimitato. Possibilità di fork bomb
Attacchi: l’attaccante
using System; using System.Net.Sockets; using System.Threading;
namespace EvilClient
…
Client[] clients = new Client[numberOfRequests];
for (int i = 0; i < numberOfRequests; i++) {
clients[i] = new Client(serverAddr, serverPort, msgToSend, noQuit, closeConn);
}
/****************************************************************************/
serverStream = connect(60000);
sendData(serverStream,Msg);
receiveResponse(serverStream);
while (neverQuit){
Thread.Sleep(250);
if(closeConn) {
disconnect(serverStream);
serverStream = null;
serverStream = connect(60000); //ricrea la socket
}
sendData(serverStream,Msg);
}
Primo dialogo
Il server è succube della chiusura lato client,
quindi perché non stressarlo un po’?
Numero di thread definito
Scenario 1 – Attacco a VM
SERVER
HOST OS
Hypervisor
VM VM
S1S2S3
Attacchi: Dimostrazione
Scenario 1 – Attacco a VM
SERVER
Evil 1
°°°
HOST OS
Hypervisor
VM VM
Evil 2
Evil n
S1S2S3
Attacchi: Dimostrazione
Scenario 1 – Attacco a VM
SERVER
Evil 1
°°°
HOST OS
Hypervisor
VM VM
Evil 2
Evil n
S1S2S3
Attacchi: Dimostrazione
Scenario 2 – Attacco a LxC
SERVER
HOST OS
Scenario 1 – Attacco a VM
SERVER
Evil 1
°°°
HOST OS
Hypervisor
VM VM
Evil 2
Evil n
S1S2S3
Attacchi: Dimostrazione
VM VM
S3 S2 S1
Hypervisor
Scenario 2 – Attacco a LxC
Evil 1
°°°
Evil 2
Evil n
SERVER
HOST OS
Scenario 1 – Attacco a VM
SERVER
Evil 1
°°°
HOST OS
Hypervisor
VM VM
Evil 2
Evil n
S1S2S3
Attacchi: Dimostrazione
VM VM
S3 S2 S1
Hypervisor
Scenario 2 – Attacco a LxC
Evil 1
°°°
Evil 2
Evil n
SERVER
HOST OS
Scenario 1 – Attacco a VM
SERVER
Evil 1
°°°
HOST OS
Hypervisor
VM VM
Evil 2
Evil n
S1S2S3
Attacchi: Dimostrazione
VM VM
S3 S2 S1
Hypervisor
Grazie
Gianluca Magalotti
Business Developer/ Business-e S.p.A.
@Aniaclug
#redhatosd

Contenu connexe

Similaire à Sicurezza e resilienza di Architetture a Containers

Webinar 23 giugno 2022 - Advanced Cluster Security: come si mette davvero al ...
Webinar 23 giugno 2022 - Advanced Cluster Security: come si mette davvero al ...Webinar 23 giugno 2022 - Advanced Cluster Security: come si mette davvero al ...
Webinar 23 giugno 2022 - Advanced Cluster Security: come si mette davvero al ...Par-Tec S.p.A.
 
Consolidamento e virtualizzazione
Consolidamento e virtualizzazione Consolidamento e virtualizzazione
Consolidamento e virtualizzazione S.info Srl
 
L'impatto di ACME e Internal PKI nella sicurezza di medio-grandi infrastrutture
L'impatto di ACME e Internal PKI nella sicurezza di medio-grandi infrastruttureL'impatto di ACME e Internal PKI nella sicurezza di medio-grandi infrastrutture
L'impatto di ACME e Internal PKI nella sicurezza di medio-grandi infrastruttureMarcoMarinello2
 
Linux Day 2014 - Napoli - Programma Il Futuro: una scelta open source
Linux Day 2014 - Napoli - Programma Il Futuro: una scelta open sourceLinux Day 2014 - Napoli - Programma Il Futuro: una scelta open source
Linux Day 2014 - Napoli - Programma Il Futuro: una scelta open sourceMario Rossano
 
Programma il futuro: una scelta open source
Programma il futuro: una scelta open sourceProgramma il futuro: una scelta open source
Programma il futuro: una scelta open sourceMarco Ferrigno
 
Infrastructure as Code e metodologia DevOps
Infrastructure as Code e metodologia DevOpsInfrastructure as Code e metodologia DevOps
Infrastructure as Code e metodologia DevOpsPietro Ciotola
 
Red Hat OpenShift: l'abilitatore della Cloud Native Enterprise
Red Hat OpenShift: l'abilitatore della Cloud Native EnterpriseRed Hat OpenShift: l'abilitatore della Cloud Native Enterprise
Red Hat OpenShift: l'abilitatore della Cloud Native EnterpriseKiratech
 
Smau Milano 2014 Massimo Maggiore
Smau Milano 2014 Massimo MaggioreSmau Milano 2014 Massimo Maggiore
Smau Milano 2014 Massimo MaggioreSMAU
 
FileMaker Server Global Developing Networks
FileMaker Server Global Developing NetworksFileMaker Server Global Developing Networks
FileMaker Server Global Developing NetworksStefano Monti
 
I Love Cloud by Soluzioni Futura
I Love Cloud by Soluzioni FuturaI Love Cloud by Soluzioni Futura
I Love Cloud by Soluzioni FuturaSoluzioni Futura
 
I Love Cloud by Soluzioni Futura
I Love Cloud by Soluzioni FuturaI Love Cloud by Soluzioni Futura
I Love Cloud by Soluzioni FuturaValerio Versace
 
Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini Whymca
 
SVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROIDSVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROIDLuca Masini
 
Cloud Computing: La nuvola intelligente 2015
Cloud Computing: La nuvola intelligente 2015Cloud Computing: La nuvola intelligente 2015
Cloud Computing: La nuvola intelligente 2015Lorenzo Carnevale
 
MySQL Day Milano 2017 - Dalla replica a InnoDB Cluster: l’HA secondo MySQL
MySQL Day Milano 2017 - Dalla replica a InnoDB Cluster: l’HA secondo MySQLMySQL Day Milano 2017 - Dalla replica a InnoDB Cluster: l’HA secondo MySQL
MySQL Day Milano 2017 - Dalla replica a InnoDB Cluster: l’HA secondo MySQLPar-Tec S.p.A.
 
Programma il futuro : una scelta Open Source
Programma il futuro : una scelta Open SourceProgramma il futuro : una scelta Open Source
Programma il futuro : una scelta Open SourceNaLUG
 
Evento ConsulPartner - Polo PN - 15-11-2013
Evento ConsulPartner - Polo PN - 15-11-2013Evento ConsulPartner - Polo PN - 15-11-2013
Evento ConsulPartner - Polo PN - 15-11-2013ConsulPartner iSrl
 
Progettazione e sviluppo di un software applicativo su un single board computer
Progettazione e sviluppo di un software applicativo su un single board computerProgettazione e sviluppo di un software applicativo su un single board computer
Progettazione e sviluppo di un software applicativo su un single board computerAlessandro Mascherin
 
API Transformation in Crédit Agricole Italia
API Transformation in Crédit Agricole ItaliaAPI Transformation in Crédit Agricole Italia
API Transformation in Crédit Agricole ItaliaProfesia Srl, Lynx Group
 

Similaire à Sicurezza e resilienza di Architetture a Containers (20)

Webinar 23 giugno 2022 - Advanced Cluster Security: come si mette davvero al ...
Webinar 23 giugno 2022 - Advanced Cluster Security: come si mette davvero al ...Webinar 23 giugno 2022 - Advanced Cluster Security: come si mette davvero al ...
Webinar 23 giugno 2022 - Advanced Cluster Security: come si mette davvero al ...
 
Consolidamento e virtualizzazione
Consolidamento e virtualizzazione Consolidamento e virtualizzazione
Consolidamento e virtualizzazione
 
L'impatto di ACME e Internal PKI nella sicurezza di medio-grandi infrastrutture
L'impatto di ACME e Internal PKI nella sicurezza di medio-grandi infrastruttureL'impatto di ACME e Internal PKI nella sicurezza di medio-grandi infrastrutture
L'impatto di ACME e Internal PKI nella sicurezza di medio-grandi infrastrutture
 
Linux Day 2014 - Napoli - Programma Il Futuro: una scelta open source
Linux Day 2014 - Napoli - Programma Il Futuro: una scelta open sourceLinux Day 2014 - Napoli - Programma Il Futuro: una scelta open source
Linux Day 2014 - Napoli - Programma Il Futuro: una scelta open source
 
Programma il futuro: una scelta open source
Programma il futuro: una scelta open sourceProgramma il futuro: una scelta open source
Programma il futuro: una scelta open source
 
Infrastructure as Code e metodologia DevOps
Infrastructure as Code e metodologia DevOpsInfrastructure as Code e metodologia DevOps
Infrastructure as Code e metodologia DevOps
 
Red Hat OpenShift: l'abilitatore della Cloud Native Enterprise
Red Hat OpenShift: l'abilitatore della Cloud Native EnterpriseRed Hat OpenShift: l'abilitatore della Cloud Native Enterprise
Red Hat OpenShift: l'abilitatore della Cloud Native Enterprise
 
Smau Milano 2014 Massimo Maggiore
Smau Milano 2014 Massimo MaggioreSmau Milano 2014 Massimo Maggiore
Smau Milano 2014 Massimo Maggiore
 
FileMaker Server Global Developing Networks
FileMaker Server Global Developing NetworksFileMaker Server Global Developing Networks
FileMaker Server Global Developing Networks
 
I Love Cloud by Soluzioni Futura
I Love Cloud by Soluzioni FuturaI Love Cloud by Soluzioni Futura
I Love Cloud by Soluzioni Futura
 
I Love Cloud by Soluzioni Futura
I Love Cloud by Soluzioni FuturaI Love Cloud by Soluzioni Futura
I Love Cloud by Soluzioni Futura
 
Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini
 
SVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROIDSVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROID
 
Cloud Computing: La nuvola intelligente 2015
Cloud Computing: La nuvola intelligente 2015Cloud Computing: La nuvola intelligente 2015
Cloud Computing: La nuvola intelligente 2015
 
MySQL Day Milano 2017 - Dalla replica a InnoDB Cluster: l’HA secondo MySQL
MySQL Day Milano 2017 - Dalla replica a InnoDB Cluster: l’HA secondo MySQLMySQL Day Milano 2017 - Dalla replica a InnoDB Cluster: l’HA secondo MySQL
MySQL Day Milano 2017 - Dalla replica a InnoDB Cluster: l’HA secondo MySQL
 
Programma il futuro : una scelta Open Source
Programma il futuro : una scelta Open SourceProgramma il futuro : una scelta Open Source
Programma il futuro : una scelta Open Source
 
Evento ConsulPartner - Polo PN - 15-11-2013
Evento ConsulPartner - Polo PN - 15-11-2013Evento ConsulPartner - Polo PN - 15-11-2013
Evento ConsulPartner - Polo PN - 15-11-2013
 
Soluzioni server
Soluzioni serverSoluzioni server
Soluzioni server
 
Progettazione e sviluppo di un software applicativo su un single board computer
Progettazione e sviluppo di un software applicativo su un single board computerProgettazione e sviluppo di un software applicativo su un single board computer
Progettazione e sviluppo di un software applicativo su un single board computer
 
API Transformation in Crédit Agricole Italia
API Transformation in Crédit Agricole ItaliaAPI Transformation in Crédit Agricole Italia
API Transformation in Crédit Agricole Italia
 

Sicurezza e resilienza di Architetture a Containers

  • 1. Sicurezza e Resilienza di Architetture basate su Linux Containers Gianluca Magalotti Business Developer / Business-e S.p.A. #redhatosd
  • 2. Agenda  Containers: vanno ancora spiegati?  Sicurezza: Cosa cambia, Come mi adeguo e Dove mi Fermo?  Attacchi: un esempio pratico di resilienza
  • 3. Linux Containers: vanno ancora spiegati? I containers rappresentano un bluff, un’illusione per i processi che ne fanno parte. Sono, però, e restano gruppi di processi con specifici privilegi e restrizioni.
  • 5. Linux Containers: Acceleratori dello sviluppo? DevOps IoT Microservices
  • 6. Linux Containers: Acceleratori dello sviluppo? Bello ma che effetto avranno sulle operations? DevOps IoT Microservices
  • 7. Linux Containers: Acceleratori dello sviluppo? Bello ma che effetto avranno sulle operations? DevOps IoT Microservices
  • 8. Linux Containers: Acceleratori dello sviluppo? E sulla Sicurezza? DevOps IoT Microservices
  • 9. Linux Containers: Acceleratori dello sviluppo? E sulla Sicurezza? DevOps IoT Microservices
  • 10. Sicurezza: Cosa Cambia? Fonte: http://www.darkreading.com/endpoint/rethinking-application-security-with-microservices-architectures-/a/d-id/1325155
  • 11. Sicurezza: Cosa Cambia? • Proliferazione Endpoints: Aumenta la superficie di attacco Fonte: http://www.darkreading.com/endpoint/rethinking-application-security-with-microservices-architectures-/a/d-id/1325155
  • 12. Sicurezza: Cosa Cambia? • Proliferazione Endpoints: Aumenta la superficie di attacco • Perimetri non ben definiti e Indirizzi effimeri: tecniche consolidate (zoning, VLAN) spesso non sono più utilizzabili Fonte: http://www.darkreading.com/endpoint/rethinking-application-security-with-microservices-architectures-/a/d-id/1325155
  • 13. Sicurezza: Cosa Cambia? • Proliferazione Endpoints: Aumenta la superficie di attacco • Perimetri non ben definiti e Indirizzi effimeri: tecniche consolidate (zoning, VLAN) spesso non sono più utilizzabili • Entropia e Mascheramento: il limite non è più il Datacenter, sorgente non individuabile da appliances esterni Fonte: http://www.darkreading.com/endpoint/rethinking-application-security-with-microservices-architectures-/a/d-id/1325155
  • 14. Sicurezza: Cosa Cambia? • Proliferazione Endpoints: Aumenta la superficie di attacco • Perimetri non ben definiti e Indirizzi effimeri: tecniche consolidate (zoning, VLAN) spesso non sono più utilizzabili • Entropia e Mascheramento: il limite non è più il Datacenter, sorgente non individuabile da appliances esterni • Policies e proliferazione transazioni E-O: La semplicità nell’uso dei Containers rende complessa la definizione di policies e la individuazione dei servizi. Fonte: http://www.darkreading.com/endpoint/rethinking-application-security-with-microservices-architectures-/a/d-id/1325155
  • 15. Sicurezza: Cosa Cambia? • Proliferazione Endpoints: Aumenta la superficie di attacco • Perimetri non ben definiti e Indirizzi effimeri: tecniche consolidate (zoning, VLAN) spesso non sono più utilizzabili • Entropia e Mascheramento: il limite non è più il Datacenter, sorgente non individuabile da appliances esterni • Policies e proliferazione transazioni E-O: La semplicità nell’uso dei Containers rende complessa la definizione di policies e la individuazione dei servizi. • Continuous Delivery & Integration: La sicurezza non è ancora «Agile» Fonte: http://www.darkreading.com/endpoint/rethinking-application-security-with-microservices-architectures-/a/d-id/1325155
  • 16. Sicurezza: Come mi Adeguo? Fonte: http://www.darkreading.com/endpoint/rethinking-application-security-with-microservices-architectures-/a/d-id/1325155
  • 17. Sicurezza: Come mi Adeguo? • Scoprire e monitorare le comunicazioni tra servizi: Osservare o visualizzare il traffico tra servizi, Service Discovery, pattern discovery. • Segmentare e isolare applicazioni e servizi: rafforzare le policies a livello di cluster/host su cui vengono eseguite le istanze del servizio. Fonte: http://www.darkreading.com/endpoint/rethinking-application-security-with-microservices-architectures-/a/d-id/1325155
  • 18. Sicurezza: Come mi Adeguo? • Scoprire e monitorare le comunicazioni tra servizi: Osservare o visualizzare il traffico tra servizi, Service Discovery, pattern discovery. • Segmentare e isolare applicazioni e servizi: rafforzare le policies a livello di cluster/host su cui vengono eseguite le istanze del servizio. • Cifratura: anche nelle transazioni E-O. Adottare tools di management e disseminazione chiavi. Fonte: http://www.darkreading.com/endpoint/rethinking-application-security-with-microservices-architectures-/a/d-id/1325155
  • 19. Sicurezza: Come mi Adeguo? • Scoprire e monitorare le comunicazioni tra servizi: Osservare o visualizzare il traffico tra servizi, Service Discovery, pattern discovery. • Segmentare e isolare applicazioni e servizi: rafforzare le policies a livello di cluster/host su cui vengono eseguite le istanze del servizio. • Cifratura: anche nelle transazioni E-O. Adottare tools di management e disseminazione chiavi. • Automazione: Più complessità e Più routine = più errore umano. Tools di Automazione riducono significativamente l’incidenza di questi errori. Fonte: http://www.darkreading.com/endpoint/rethinking-application-security-with-microservices-architectures-/a/d-id/1325155
  • 20. Sicurezza: Come mi Adeguo? • Scoprire e monitorare le comunicazioni tra servizi: Osservare o visualizzare il traffico tra servizi, Service Discovery, pattern discovery. Fonte: http://www.darkreading.com/endpoint/rethinking-application-security-with-microservices-architectures-/a/d-id/1325155
  • 22. Sicurezza: Dove mi fermo? Non è possibile soffermarsi sul perimetro, si deve agire a livello di cluster/host istanza del servizio:
  • 23. Sicurezza: Dove mi fermo? Non è possibile soffermarsi sul perimetro, si deve agire a livello di cluster/host istanza del servizio:  Sfruttare le caratteristiche dei Container (dockerfile e stratificazione immagini)
  • 24. Sicurezza: Dove mi fermo? Non è possibile soffermarsi sul perimetro, si deve agire a livello di cluster/host istanza del servizio:  Sfruttare le caratteristiche dei Container (dockerfile e stratificazione immagini)  Partire da immagini certificate in repositories certificate
  • 25. Attacchi: un Esempio Pratico di Resilienza Situazione client-server sfruttabile per Denial of Service  Un demone vulnerabile (memory leaks, fork bomb, saturazione risorse)  Un client ”opportunamente scritto”, che le sfrutta
  • 26. Attacchi: il demone for (;;) { len_inet = sizeof adr_clnt; c = accept(s, (struct sockaddr *)&adr_clnt, &len_inet); if ( c == -1 ) bail("accept(2)"); if ( (PID = fork()) == -1 ) { /* Tentativo fork fallito */ close(c); continue; } else if ( PID > 0 ) { /* Sono il processo PADRE */ char *buffer = (char *)malloc(leakSize*sizeof(char)); memset(buffer,0,leakSize*sizeof(char)); close(c); continue; } else { /* Sono il Processo FIGLIO, che servirà il client*/ while ( fgets(buf,sizeof buf,rx) ) rpn_process(tx,buf); fclose(tx); shutdown(fileno(rx),SHUT_RDWR); fclose(rx); exit(0); } Simulazione di Memory Leak Succube della chiusura lato client per cui, un numero sufficiente di richieste, satura le porte del server Fork illimitato. Possibilità di fork bomb
  • 27. Attacchi: l’attaccante using System; using System.Net.Sockets; using System.Threading; namespace EvilClient … Client[] clients = new Client[numberOfRequests]; for (int i = 0; i < numberOfRequests; i++) { clients[i] = new Client(serverAddr, serverPort, msgToSend, noQuit, closeConn); } /****************************************************************************/ serverStream = connect(60000); sendData(serverStream,Msg); receiveResponse(serverStream); while (neverQuit){ Thread.Sleep(250); if(closeConn) { disconnect(serverStream); serverStream = null; serverStream = connect(60000); //ricrea la socket } sendData(serverStream,Msg); } Primo dialogo Il server è succube della chiusura lato client, quindi perché non stressarlo un po’? Numero di thread definito
  • 28. Scenario 1 – Attacco a VM SERVER HOST OS Hypervisor VM VM S1S2S3 Attacchi: Dimostrazione
  • 29. Scenario 1 – Attacco a VM SERVER Evil 1 °°° HOST OS Hypervisor VM VM Evil 2 Evil n S1S2S3 Attacchi: Dimostrazione
  • 30. Scenario 1 – Attacco a VM SERVER Evil 1 °°° HOST OS Hypervisor VM VM Evil 2 Evil n S1S2S3 Attacchi: Dimostrazione
  • 31. Scenario 2 – Attacco a LxC SERVER HOST OS Scenario 1 – Attacco a VM SERVER Evil 1 °°° HOST OS Hypervisor VM VM Evil 2 Evil n S1S2S3 Attacchi: Dimostrazione VM VM S3 S2 S1 Hypervisor
  • 32. Scenario 2 – Attacco a LxC Evil 1 °°° Evil 2 Evil n SERVER HOST OS Scenario 1 – Attacco a VM SERVER Evil 1 °°° HOST OS Hypervisor VM VM Evil 2 Evil n S1S2S3 Attacchi: Dimostrazione VM VM S3 S2 S1 Hypervisor
  • 33. Scenario 2 – Attacco a LxC Evil 1 °°° Evil 2 Evil n SERVER HOST OS Scenario 1 – Attacco a VM SERVER Evil 1 °°° HOST OS Hypervisor VM VM Evil 2 Evil n S1S2S3 Attacchi: Dimostrazione VM VM S3 S2 S1 Hypervisor
  • 34. Grazie Gianluca Magalotti Business Developer/ Business-e S.p.A. @Aniaclug #redhatosd