5G vantaggi e pericoli

Mobile internet and hacking concept with 5G

E’ ormai un’argomento caldo quello del 5G, e quasi sicuramente, nell’immaginario collettivo si tratta di un’ altro potenziamento per la rete mobile che ci dovrebbe permettere di scaricare video, documenti e musica più velocemente sui nuovi smartphone.

Ma se così non fosse???.

Ad un’analisi piu’ attenta dobbiamo meglio specificare che il 5G non serve realmente agli smartphone. Certo, verrà usata anche come infrastruttura per la comunicazione mobile al posto del 3G e in parte del 4G, ma il vero punto della questione è altrove. La forza di questa nuova implementazione avra’ altre caratteristiche in quanto, mentre il 3G e il 4G sono le tecnologie che ci hanno portato Internet sui nostri smartphone, creando per la prima volta una connessione tra gli uomini e la Rete, in qualsiasi momento H24, il 5G è pensato invece per connettere le macchine ad Internet.

Con l’avvento del 5G, la rete mobile avrà la potenza per gestire milioni di piccoli dispositivi (IoT),  sempre connessi,  che genereranno una ulteriore mole di dati che andranno anch’essi trasferiti a centrali di analisi nel cloud. Non è un caso che le sperimentazioni attualmente in progetto siano proprio improntati nel rendere hi-tech le attività industriali molto complesse.

Ma le grandi promesse dell’avvento del 5G sono accompagnate anche da grandi sfide. La piu’ grande tra le promesse fatte dal 5G e’ quella di poter rendere tutto super-connesso, aumentando le prestazioni, i rendimenti ed il controllo; tutto bello ed interessante ma esponenzialmente piu’ pericoloso dal punto di vista di possibili attacchi hacking.

Attacchi, fraudolenti, compiuti tramite “malware” o “ransomware” di ogni tipologia ormai non si contano e riempiono le pagine delle cronache di citta’ di tutto il mondo, si va da intere amministrazioni cittadine bloccate con richiesta di riscatto, porti o aeroporti, ospedali etc…. tutti fatti accaduti negli ultimi due anni in citta’ importanti americane come europee ed i danni sono incalcolabili, sia per gli affari che per la sicurezza delle persone.

Immaginatevi un’ ospedale bloccato, con strumentazioni per esami clinici di ogni tipo fermi e, cartelle cliniche impossibili da aprire perche’ digitali e quindi crittografate del ransomware, etc… etc…., peggio di un film di Hitchcock.

Tutto questo perche’ mettere online tutte le funzioni chiave di una struttura significa dover trovare un modo per proteggerle sia da chi vuole prenderne il controllo, sia da chi vuole semplicemente bloccarle.

Vi ricordate quel caso del pilota della Germanwings che fece schiantare l’aereo? Dopo quel tragico evento qualcuno ipotizzo’ di mettere su ogni aereo un sistema di controllo da terra che potesse permettere di prendere il totale controllo di un aereo per farlo atterrare in sicurezza. Certo l’intento e’ piu’ che giusto, ma il problema sarebbe dover garantire al 100% che nessuno possa inserirsi in un sistema del genere per, invece, creare incidenti disastrosi o minacciarli in cambio di denaro. Ve lo immaginate essere su un’aereo che non puo’ atterrare perche’ gestito da terra da qualche criminale che aspetta di essere pagato, con tutti i passeggeri in ostaggio ed il pilota tagliato fuori da ogni possibilita’ di controllo?? Beh un vero e proprio incubo.

Purtroppo, la messa in sicurezza non è semplice e, nonostante il fatto che con l’arrivo del 5G ci si dovrebbe poter liberare di alcuni vecchissimi sistemi come l’ SS7, una tecnologia usata da 40 anni dagli operatori per gestire la sicurezza delle connessioni ma che non usava la crittografia o ancora il seppur piu’ moderno Diameter, che non sembra essere all’altezza del compito, non basteranno, per lo meno nell’immediato, a garantire completamente l’alto tasso di sicurezza che servira’ per tenere al sicuro i dati di societa’, enti e privati (pensate alle case domotiche).

Molti esperti hanno pubblicato test e studi, lamentando di come si stia dando troppo valore alla gestione di questi dati ed alla loro sicurezza semplicemente perche’ saranno crittografati, ma anche la crittografia ha mostrato molte lacune, e sono moltissimi gli eventi negativi che impattano su errori di programmazione e/o l’implementazione dell’uso di sistemi crittografati in ogni ambito, commerciale e non.

Si spera che per quando il 5G sarà una realtà affermata, le cose saranno state implementate a dovere.

Ma la sicurezza informatica non è l’unico punto critico per il 5G. Anche la semplice copertura del segnale potrebbe rappresentare per gli operatori uno scoglio importante. Infatti, le frequenze usate, sono ideali per quello che riguarda il trasferimento ad altissima velocità dei dati, ma poco adatte agli ambienti “affollati” di ostacoli come quelli cittadini. E’ proprio a causa del numero elevato di antenne che serviranno ad implementare la struttura del 5G, per coprire in maniera efficace una città, che i produttori stanno preparando sistemi che possono essere incorporati ovunque, dai lampioni alle pareti degli edifici, passando per semafori e qualsiasi altro possibile “punto di appoggio”.

Il problema della scarsa penetrazione e capacità di rimbalzo delle onde radio usate dal 5G porterà a costi molto elevati nella creazione dell’infrastruttura che dovrebbe far diventare smart le nostre città.
Gli alti costi potrebbero ulteriormente lievitare anche a causa di dispute geo-politiche come quella tra il governo statunitense e l’azienda cinese Huawei, che al momento è una delle aziende più avanti nella sperimentazione 5G e nella produzione dell’hardware necessario a implementarlo. Senza di loro, o con una forte limitazione della
loro presenza negli Stati alleati degli Stati Uniti, l’adozione del 5G sarà sicuramente rallentata.

Probabilmente si dovrebbe parlare anche dei possibili rischi inerenti alla salute nell’utilizzo delle frequenze necessarie all’uso di questa implementazione tecnologica ma qui il discorso dovra’ attendere parecchio tempo e molti studi futuri, dei quali noi saremo le cavie.

Staremo a vedere !!!

OpenStack – Introduzione

OpenStack Cloud Software

OPENSTACK – PARTE PRIMA

Si parla molto di OpenStack e delle sue applicazioni. Ma che cos’è davvero, perché è stato sviluppato e quali sono i suoi vantaggi?

Che cos’è?
OpenStack è un sistema operativo per il cloud computing in grado di controllare componenti di storage, networking e computing. È open source e gratuito, di solito è installato sotto forma di soluzione IaaS. OpenStack fornisce un insieme di strumenti che servono a costruire e gestire piattaforme cloud sia pubbliche sia private. Permette agli utenti di installare macchine virtuali e si può accedere al codice sorgente per modificarlo in qualsiasi modo sia utile per gli scopi specifici del progetto.

Chi lo ha sviluppato?
Nel 2010 Rackspace e la NASA hanno collaborato a un progetto congiunto che è poi diventato OpenStack. Il codice iniziale è stato usato per Nebula, la piattaforma cloud della NASA, poi il progetto si è dato l’obiettivo più ampio di aiutare le aziende a far girare software cloud su hardware standard.

Chi lo usa?
Tra i vendor, alcuni dei nomi più importanti che attualmente supportano e distribuiscono OpenStack sono Canonical, Cisco, EMC, HP, Huawei, IBM, Oracle, Google e Red Hat. Tra gli utenti attuali ci sono Bloomberg, Comcast, PayPal e Wells Fargo. Ci sono incontri internazionali periodici su OpenStack – gli OpenStack Summit – in tutto il mondo, che raccolgono programmatori e utenti della piattaforma.

E’ quindi ormai innegabile l’interesse che tutto il mondo IT ha riservato in questi ultimi anni ad OpenStack.

Qual’è la ragione di tutto questo?

L’ormai tradizionale paradigma client-server, in progetti in cui la scalabilità e le finestre di picchi di carico sono variabili essenziali all’interno dell’equazione della produttività, presenta oggi giorno evidenti limiti di gestione dei carichi e della velocita’ di evoluzione dei progetti. Ecco quindi nascere l’esigenza di uno strumento che fosse flessibile ed allo stesso momento affidabile.

Questo concetto spiega quindi le motivazioni che possono spingere ad adottare una piattaforma cloud, ma perché fra tutte le piattaforme esistenti si parla sempre di OpenStack?

OpenStack è un progetto aperto
La sua natura aperta ha fatto sì che tutti i vendor interessati all’introduzione di specifiche funzionalità o determinati ambiti potessero contribuire in maniera attiva e funzionale al progetto, innescando un circolo virtuoso in cui ogni miglioramento apportato per favorire se stessi va a beneficio della comunità.

La sua natura aperta fa sì che chi adotta OpenStack per il proprio ambiente cloud è di fatto esente dal cosiddetto vendor lock-in, ossia l’essere vincolato ad un rivenditore specifico per le proprie tecnologie. Infatti se lo standard OpenStack è garantito, ogni venditore potrà essere valutato in modo paritetico a tutti gli altri, rendendo così il mercato più competitivo e conveniente per il cliente finale.

I presupposti di un progetto OpenStack

Bisogna subito tenere presente che “non tutti i progetti sono adatti al cloud“, nonostante cio che viene erroneamente interpretato leggendo in giro per il web, infatti questo principio sfugge a molti che guardano verso le nuvole vedono unicamente un posto differente da cui erogare i propri servizi. Esistono dei requisiti da tenere presente per capire se un progetto è adatto al cloud.

Un progetto OpenStack quindi deve essere:

** Non persistente: non deve basarsi sulla persistenza dei dati all’interno delle macchine coinvolte. Questo aspetto non va confuso con l’esigenza di avere uno storage solido e sicuro, si tratta invece di non giudicare le istanze che concorrono al progetto come perenni, ma come componenti utili al loro scopo e liberamente sacrificabili;

** Scalabile: deve supportare applicazioni che nativamente siano in grado di scalare. L’applicazione nasce già dallo sviluppo come pensata per il cloud;

** Dinamico: a fronte di un innalzamento delle richieste ricevute il progetto deve essere in grado in maniera autonoma di gestire le nuove componenti. Gli interventi manuali successivi all’implementazione sulle istanze coinvolte devono essere inesistenti;

** Rapido: deve essere passibile di provisioning, favorendo la velocità di creazione (e distruzione) di nuove istanze;

Se il vostro progetto risponde a questi requisiti messi in evidenza qui sopra, allora potete pensare ad integrare OpenStack ed è giunto quindi il momento di capire in cosa consiste.

Le componenti di OpenStack

La parola stack descrive un insieme di entità che concorrono ad uno scopo comune. OpenStack è composto da numerose elementi che devono comunicare fra loro, lo strato di comunicazione passa attraverso due filoni fondamentali: la memorizzazione delle informazioni e la coda delle azioni da svolgere. Queste due azioni sono coperte ciascuna da un elemento specifico:

MySQL

Il database MySQL è necessario per la memorizzazione delle informazioni di configurazione generali del sistema, per la memorizzazione delle informazioni di autenticazione relative a ciascun componente e per il mantenimento dinamico dello stato del sistema.
Ogni azione eseguita all’interno dell’infrastruttura OpenStack è tracciata all’interno del database. L’importanza di questa componente è evidentemente capitale.

RabbitMQ

RabbitMQ è uno scheduler, un software didicato alla gestione delle code ed all’organizzazione delle sequenze di operazioni. Tutti i nodi facenti parte dell’infrastruttura OpenStack comunicano con lo scheduler, ed anche in questo caso è presto spiegato come questa componente ricopra enorme importanza per il regolare funzionamento dell’ambiente.

Determinato quindi il sistema di circolazione e reperimento delle informazioni si può focalizzare l’attenzione sugli elementi peculiari di OpenStack, riassunti in questo diagramma che si trova sul sito ufficiale del progetto:

OpenStack Diagramma Software

                                                     OpenStack Diagramma Software

Keystone

Keystone è il software che gestisce il sistema di autenticazione di OpenStack. Il principio su cui si fonda è quello classico degli utenti e dei gruppi, ma di fatto si occupa di gestire le tre tipologie di utenti configurabili in OpenStack:

  • Cloud Provider Admins: ossia gli amministratori del sistema OpenStack;
  • Tenants: ossia i profili delle compagnie fruitrici dei servizi;
  • Users: ossia gli utenti delle compagnie fruitrici dei servizi;

Il concetto di “compagnia” si riferisce ad un sotto-ambiente interno alla stessa installazione di OpenStack. Applicato ad un provider esso potrebbe essere rappresentato dai clienti, mentre all’interno di un cloud privato potrebbe essere associato ad un dipartimento interno.

Glance

Glance si occupa del provisioning (ossia di fornire) delle immagini all’interno dell’ambiente. Questa componente fornisce un bacino di istanze gia preconfigurate, disponibili ai fruitori dei servizi, per effettuare il deploy (ossia la messa in produzione) dell’istanza desiderata all’interno del proprio ambiente.
Le immagini sono supportate nei formati KVM qcow, Aws, VMWare purché esista su queste un Master Boot Record.

Nova

Nova è il compute service, un servizio che permette di gestire i sistemi virtuali erogati all’interno dell’ambiente. All’interno della macchina definita controller il servizio nova-api guiderà l’avvio e la terminazione delle istanze comandando la sua controparte nova-compute, attiva su tutte le macchine hypervisor facenti parte della struttura OpenStack.
Le decisioni su dove e come le istanze dovranno essere avviata saranno gestite dal servizio nova-compute-service (basato su libvirt).

Horizon

Horizon è l’interfaccia web dalla quale è possibile controllare agevolmente le istanze in modalità point-and-click oltre che le immagini gestite da Glance. Il software Horizon è basato sul modulo wsgi del webserver Apache.

C’è ancora un’ultimo aspetto da tenere presente, come è deducibile dallo schema, lo storage.
In un setup base le macchine possono essere erogate direttamente dai dischi degli hypervisor, ma in ambienti di larga scala ciò potrebbe non essere auspicabile. In questi casi fare riferimento ad un gestore dello spazio centralizzato permetterebbe di utilizzare gli hypervisor come semplici erogatori, valorizzando la scalabilità generale del progetto, ed ecco dunque venirci in aiuto questo componente per la gestione dei volumi, Cinder.

Cinder

In origine parte del progetto Nova (chiamato nova-volume) e dal 2012 progetto a se stante, Cinder è il servizio che fornisce il block storage per le istanze, uno storage gestito e centralizzato che funziona da dispositivo a blocchi per le virtual machines. Le macchine virtuali risiedono quindi su un device dedicato, definito sulla base di quello che è la modalità con cui l’hypervisor ha accesso allo storage.
Cinder supporta diverse modalità per essere visto dagli hypervisors: è possibile infatti utilizzare dischi locali o sistemi storage esterni, quali NFS, FibreChannel, DRBD o iSCSI.

Swift

A differenza di Cinder, Swift è un servizio di storage online che si occupa di rendere disponibile spazio all’interno dell’ambiente OpenStack mediante la modalità object storage. I dati non vengono registrati direttamente su dispositivi a blocchi, ma preventivamente convertiti in oggetti binari, distribuiti all’interno di più device in modo da garantirne la massima accessibilità oltre che la replica.
Swift è compatibile con il servizio di storage Amazon S3 e funziona con lo stesso principio: fornire uno storage web accessibile e scalabile.

Conclusioni

In questa lunga introduzione sono stati illustrati filosofia, componenti e soprattutto potenzialità di OpenStack, ma sebbene la lettura possa essere apparsa lunga, questa tocca appena la superficie dell’universo relativo a questo grande progetto.
Nel prossimo articolo verrà avviato un piccolo studio di fattibilità vero e proprio con lo scopo di mettere su strada tutti i vari software che lo compongono ed iniziare cosi ad adoperare OpenStack.