Traduttore automatico - Read this site in another language

venerdì 1 ottobre 2021

Deep Instinct: dalla rilevazione alla prevenzione

E' appurato che gli antivirus non sempre siano in grado di proteggerci. 
In uno studio del 2012, il giornalista esperto di sicurezza Brian Krebs ha riscontrato una efficacia dei principali antivirus allora in uso di circa il 20%, ovvero ogni cinque tentativi d'infezione solo uno veniva segnalato e bloccato! 

Dal 2012 ad oggi sono stati condotti diversi altri studi per dimostrare l'efficacia degli antivirus, usando metodologie differenti e con risultati differenti che dimostrano che gli antivirus di vecchia generazione hanno una efficacia superiore al 90%. Sicuramente un bel passo avanti dal 20% del 2012.

La domanda che ci si pone adesso è relativa alle possibilità di miglioramento fornite dalle tecnologie di Intelligenza Artificiale. 

Gli antivirus di vecchia generazione si basano principalmente sull'uso di elementi di riconoscimento tipici delle infezioni già individuate, ovvero:

- uso di firme associate al malware. Si tratta di comparare la presenza di una o più caratteristiche del software sconosciuto con quelle di software malevoli già noti, per esempio una determinata sequenza di comandi o una particolare sequenza di codice;

- analisi euristica. Si basa sul verificare la presenza di elementi simili (ma non uguali) tra il software sconosciuto e famiglie di malware. Questo metodo si appoggia sulla constatazione che molti virus sono simili tra loro e lo stesso può dirsi del loro comportamento;  

- reputazione dei file. SI basa sulla categorizzazione dei file conosciuti e la gestione e condivisione delle informazioni disponibili verso gli utenti. 

Tutte queste tecnologie sono chiaramente basate sulla conoscenza e analisi di malware esistenti, ma sono in linea di massima poco utili nel caso di nuovi malware. 

Per essere efficaci su malware di nuova concezione occorre sviluppare altre tecnologie e l'Intelligenza Artificiale può essere utile.

Una società americana con quartier generale a New York, "Deep Instinct", fondata nel 2015 utilizza il deep learning per cercare di prevenire attacchi dovuti a malware ancora sconosciuti e sembra essere sulla buona strada.

Vediamo di capire assieme come funziona e per farlo utilizziamo uno schema disponibile sul loro sito.


In questa immagine è possibile vedere l'architettura della piattaforma basata su una rete neurale che si trova presso il laboratorio di Deel Instinct (in alto) e rappresenta il cuore pulsante dell'architettura di sicurezza. La rete neurale è in continuo apprendimento e grazie ad essa è possibile avere un modello predittivo sempre aggiornato, che è chiamato D-Brain.

Il modello predittivo (D-Brain da ora in poi) viene distribuito su tutti i client che vogliamo proteggere. Ciò consente l'esecuzione di analisi statistiche e comportamentali e di usare tutta la "conoscenza" impiegata per la creazione e l'aggiornamento del modello sia per individuare malware già noti ma soprattutto per individuare quelli non ancora noti. Infatti la piattaforma è collegata ad un database (D-Cloud) che comprende le informazioni sulla reputazione di miliardi di file. 

E' chiaro che in un sistema siffatto è necessario che il numero dei falsi positivi (rilevazione di un malware quando questo non lo è) deve essere mantenuto a livelli bassissimi, bloccare l'esecuzione di un file benevolo può essere infatti altrettanto pericoloso del non bloccare un file malevolo. E' importante notare che la verifica della presenza del possibile malware viene fatta nella cache del sistema, ovvero prima che il malware possa aver accesso al disco rigido.

La piattaforma di Deep Instinct è un esempio di come l'AI possa aiutare il mondo della cyber security prevenendo le infezioni prima che queste possano infettare il sistema.


Alessandro Rugolo

Per approfondire:

How useful is antivirus software? | Computerworld

A Closer Look: Email-Based Malware Attacks – Krebs on Security

When it Comes to Antivirus, Herd Immunity Works for Cattle and PCs | PCMag

Existing Evidence for the Effectiveness of Antivirus in Preventing Cyber Crime Incidents (gsu.edu)

What is Heuristic Analysis in Antivirus? Definition, Advantages, and More (computertechreviews.com)


domenica 19 settembre 2021

Cisco Networking Academy, una risorsa per il Paese!

Capita spesso che per trovare un corso interessante e ben fatto si debba pagare un occhio della testa, magari dovendosi iscrivere presso un qualche istituto più o meno privato che, almeno all'apparenza, sembra essere il più blasonato.

Ma siamo sicuri che ciò che cerchiamo non sia magari disponibile gratuitamente su Internet?

Se abbiamo un po' di curiosità allora la Cisco Networking Academy potrebbe fare al caso nostro, per cui diamogli uno sguardo assieme e facciamolo a partire da un sito per una volta in lingua italiana: Scuola digitale

Al di la di ciò che si potrebbe pensare, la Cisco Networking Academy non si occupa solo di networking, anzi. L'offerta in termini di corsi è molto varia e copre tutti i settori delle tecnologie digitali: il Networking, anche perché é il business originario di Cisco, la programmazione e la cyber security.

I corsi sono di differente livello: dal basico per il ragazzo delle scuole superiori che si avvicina alla materia, ai corsi più avanzati per coloro che invece all'uscita dal ciclo formativo si avvicinano al mondo del lavoro. Anche le modalità di fruizione sono varie, esistono corsi totalmente in autoapprendimento ed altri in cui è presente un tutor che indirizza e guida lo studente. 

Ci si potrebbe chiedere il motivo che spinge la Cisco ad investire ingenti risorse nella Cisco Network Academy. La risposta è semplice: il mondo cambia e occorrono sempre più specialisti per sostenere la trasformazione digitale, specialisti che in parte vengono formati dalle aziende, in parte dai sistemi scolastici pubblici. La Cisco Network Academy si inserisce in questo processo di formazione rendendo fruibile la sua expertise nel settore (ricordiamo che Cisco rappresenta una parte significativa dell'infrastruttura di rete globale), agevolando in questo modo sia la preparazione dei giovani sia il loro possibile inserimento nel mondo del lavoro. 


Tra le iniziative del 2020, vi è la disponibilità, per l'Italia, di 500 borse di studio in cybersecurity che danno diritto a:

- accesso gratuito ai corsi Intro e Cybersecurity Essentials;

- webinar con professionisti Cybersecurity di Cisco Italia, Cisco Corporate Affairs e Commissione Europea;

- laboratori con Academy Partner su tutto il territorio nazionale;

- opportunità di conoscere le realtà aziendali operanti nel settore digitale;

- certificato di partecipazione;

- Digital Badge Cisco Networking Academy.

A tutto ciò va aggiunto la possibilità di conoscere tantissimi esperti del mondo Cisco.

L'iniziativa giunta alla sua terza edizione, avviata a fine 2020, è terminata in giugno 2021 e ha visto la partecipazione di tantissimi ragazzi. Non perdetevi la quarta edizione che avrà inizio il prossimo mese di ottobre.

In Italia sono circa 60.000 i ragazzi che hanno usufruito dei corsi gratuiti della Cisco Networking Academy nell'ultimo anno e sono sempre di più le organizzazioni e istituzioni che stringono accordi con Cisco per poter approfittare di questa immensa mole di conoscenza. 

E tutti sappiamo quanto ci sia bisogno di conoscenza in questo settore.

Per cui un grazie per quanto si sta facendo alla Cisco Networking Academy e al suo rappresentante in Italia, Luca Lepore.


Alessandro Rugolo, Danilo Mancinone, Maurizio D'Amato, Orazio Russo, Marco Rottigni.


Per approfondire:

Home - Scuola digitale (scuoladigitalecisco.it)

Cisco Networking Academy Builds IT Skills & Education For Future Careers (netacad.com)

sabato 18 settembre 2021

Sistemi adattivi e Situational Awareness

Il mondo cambia ad una velocità incredibile... in tutti i settori. 

Cosa direste se da un giorno all'altro non doveste più perdere tempo a capire le modifiche apportate dal produttore del foglio di calcolo che utilizzate per tenere la contabilità del vostro negozio? 

Che direste se di colpo non doveste più preoccuparvi del passaggio al nuovo Sistema Operativo Microsoft o alla nuova versione di Linux o al nuovo software di controllo della vostra lavasciuga intelligente?

Per essere chiari, non dico che non ci sarebbero più varianti o modifiche nei sistemi, soprattutto quando queste sono legate ad aspetti di sicurezza o a incrementi di funzionalità, parlo di quelle varianti che consistono nello spostamento di un pulsante o di una funzione da un menù ad un altro o della modifica del simbolo o della descrizione di un pulsante o alla visualizzazione di una finestra in basso a destra o in alto a sinistra... si, parlo di tutte quelle varianti che per chi non ha voglia o tempo da perdere sono assolutamente deleterie e spesso non fanno altro che creare disamoramento verso il prodotto proprio da parte di chi quel prodotto lo impiega, magari da anni!

Se volessimo tradurre la domanda utilizzando il linguaggio scientifico potremmo dire: "Perché i sistemi informatici di cui facciamo uso non sono adattivi?", ed in questo contesto intendo dire che i sistemi informatici dovrebbero essere capaci di adattarsi all'utente o, ancora meglio, che Sistema Informatico e utente dovrebbero divenire un sistema adattivo.

Per far ciò, a mio parere, le tecnologie già esistono. Nel mondo dei videogames, per esempio, da tempo si fa uso dell'Intelligenza Artificiale per "adattare" la difficoltà del gioco al giocatore. Ma io parlo di altro.

L'Intelligenza Artificiale, sempre più diffusa, prima o poi comincerà ad essere parte dei sistemi informatici di base, come i sistemi operativi. 

Nel mio sistema ideale sarà suo il compito di studiare il mio comportamento, studiare le modifiche apportate nel tempo ai software che impiego e propormi, oppure no, spiegarmi o meno, l'utilità della nuova funzione. In pratica il sistema operativo dovrà prendersi cura di me (come utente) e adattare i sistemi che impiego al mio sistema di conoscenze in base all'uso che ne faccio.

Il secondo concetto importante che emerge è quello di situational awareness, che detto in italiano sarebbe consapevolezza della situazione. 

Il termine "Situational awareness" è di solito impiegato per descrivere lo stato di conoscenza e consapevolezza di una persona o di una organizzazione riguardo un determinato argomento o situazione operativa in un tempo ben preciso e riguardo degli obiettivi ben stabiliti. 

Nel caso specifico, dato che richiedo che il Sistema Operativo (messo a sistema con me in qualità di utente) sia un sistema adattivo presuppongo che il Sistema Operativo sia dotato di capacità di situational awareness, ovvero sia capace di creare e mantenere una certa conoscenza e consapevolezza relativa all'uso che l'utilizzatore (io) fa del sistema e dei software installati.

Per fare un esempio chiaro supponiamo che io sia l'unico utente di un computer portatile sul quale ho installato solo il Sistema Operativo (che chiamo WinAI giusto per dargli un nome), un browser per la navigazione su internet, un editor di testi e un antivirus. 

Il mio sistema operativo, l'amico fedele WinAI, comincia a studiare il mio comportamento dal momento stesso in cui accendo per la prima volta il pc e si fa un'idea di come io mi comporto, "registrando" nella sua "rete neurale" le mie abitudini, le mie interazioni con i software, le mie abitudini di navigazione, gli orari, la frequenza con cui utilizzo il tasto "enter" mentre digito un testo, la lunghezza delle frasi ma anche come mi comporto di fronte ad una nuova versione del mio browser o dell'antivirus. 


Dopo un breve periodo di apprendimento, il mio fedele WinAI dovrebbe, teoricamente essere pronto a suggerirmi delle scelte, influenzando così il mio comportamento, ma anche a prendere lui stesso delle decisioni sulla base della conoscenza di me che ha acquisito. Grazie alla conoscenza dei programmi che sono installati (e con i quali colloquia continuamente) dovrebbe anche essere in grado di aiutarmi, semplificandomi la vita, qualora si rendesse conto (e qui rientra il concetto di Situational Awareness applicato stavolta alla AI del mio sistema operativo) che io non voglio modificare il mio comportamento o che il periodo di adattamento al nuovo sistema potrebbe comportare un calo di produttività o semplicemente dello stress aggiuntivo.

Naturalmente sto semplificando molto. In effetti il sistema adattivo come è facile capire, comprende anche me come utente e tanti altri "oggetti" o "entità" che in qualche modo interagiscono col sistema stesso.

E' chiaro che a raccontarla così sembra tutto facile, ma non è così e non è neppure detto che lo sarà mai.

Vi sono dietro motivazioni di diversi tipi. 

Una di queste riguarda la sicurezza di un tale sistema, lasciata in fin dei conti, nelle mani di una WinAI qualunque, di cui sappiamo veramente troppo poco e sul quale la nostra capacità di controllo sarebbe molto bassa. La sicurezza (intesa come security e come safety) di un tale sistema sarebbe veramente molto difficile da gestire, in primo luogo perché tanto più è complesso un sistema tanto più è estesa la superficie di attacco, in secondo luogo perché una AI può essere soggetta a sua volta ad attacchi. Supponiamo che il mio carissimo tutor WinAI si accorga che in un certo momento io sono molto stressato (e come abbiamo visto è capace di farlo) e, all'arrivo di una comunicazione importante, magari l'annuncio di un incidente ad un parente, decida di non avvisarci in quanto ciò aumenterebbe il nostro livello di stress. Come prenderemo una simile ingerenza nella nostra vita privata? Oppure, per tornare a cose più semplici, supponiamo che l'antivirus richieda un aggiornamento di sicurezza di un nuovo tipo, non ancora catalogato da noi e quindi non conosciuto neppure dalla nostra WinAI. Supponiamo ora che sulla base del nostro comportamento abituale riguardo gli aggiornamenti software la nostra WinAI decida di non procedere perché tale aggiornamento stravolge soprattutto (secondo la sua esclusiva valutazione) l'aspetto grafico dell'interfaccia e non sia dunque rilevante. E che questa catena di eventi risulti infine causa di compromissione del sistema. Come la prenderemo? Come la prenderebbe un responsabile della sicurezza dell'azienda presso la quale lavoro? 

Un'altra motivazione è probabilmente legata alla imprevedibilità dell'utente, che in taluni momenti si comporta in un certo modo mentre in altri, sottoposto a spinte emotive o a stress, si comporta diversamente. Il nostro amico WinAI, dovrebbe conoscerci veramente molto bene per prendere delle decisioni che realmente ci agevolino e, forse, nessuno vorrebbe che una AI ci conoscesse troppo bene, anche perché fondamentalmente siamo degli esseri sospettosi e in fondo in fondo ci piace tenere dei segreti per noi.   

In ogni caso, sempre dal punto di vista teorico, le tecnologie per fare queste cose già esistono, occorre solo capire se qualcuno le sta già usando per creare dei Sistemi Operativi adattivi, sempre che sia ciò che vogliamo, almeno in determinati settori.


Alessandro Rugolo,

vignetta di Simone Domini


Per approfondire:

Adaptive Systems - an overview | ScienceDirect Topics

(PDF) Endsley, M.R.: Toward a Theory of Situation Awareness in Dynamic Systems. Human Factors Journal 37(1), 32-64 (researchgate.net)

Tendenze ed implicazioni per la Sicurezza e la Difesa italiana: Concetto Scenari Futuri

Con questo titolo, qualche mese fa, è uscito il documento che, nato dall’applicazione della cosiddetta Open Innovation, ha il compito di meglio comprendere il futuro per proiettarvi lo Strumento Militare. Il concetto è, infatti, il frutto della collaborazione degli “innovatori” del Centro Innovazione Difesa, delle Forze Armate, del Comando Generale dei Carabinieri, del Segretariato Generale della Difesa, del Comando Operativo di Vertice Interforze e degli esperti civili del mondo accademico, industriale e della ricerca attestati al network di INNOV@DIFESA.

E' inutile dire che l'Italia non è l'unico paese che cerca di capire cosa potrebbe accadere nel prossimo futuro, attività di pensiero necessaria per cercare di orientare lo sviluppo delle capacità future (meglio nota come strategic foresight), lo fanno tutti i grandi paesi. In un precedente articolo della fine 2019 avevo trattato le attività francesi in tal senso e dato una panoramica storica che può essere utile richiamare alla memoria. La stessa cosa avviene in ambito cyber dove la European Union Agency for Network and Information Security (ENISA), qualche tempo fa, aveva fatto un esercizio simile.

Ma vediamo di capire come è articolato il documento e quali sono le principali linee di tendenza all'orizzonte 2040.

Il documento è molto snello ed è articolato in quattro capitoli che riflettono l’analisi effettuata per aree tematiche (politica, socio-economica, tecnologica e climatico-ambientale), preceduti da una breve introduzione e seguiti dalle conclusioni e da alcuni allegati riassuntivi. Da notare che ogni capitolo è chiuso dall'analisi delle linee guida da perseguire in ambito Sicurezza e Difesa per affrontare i trend emergenti.

Il primo capitolo tratta lo scenario geopolitico futuro (2040+) e mette in evidenza come sarà caratterizzato da profondi cambiamenti rispetto a ciò che vediamo oggi e da ricorrente instabilità, elevata dinamicità e imprevedibilità. In aumento la competizione per l'accesso alle risorse pregiate, per quantità o qualità, in cui gli attori internazionali si muoveranno in modo spregiudicato. Secondo gli studiosi Il tratto fondamentale del quadro geopolitico vede la rinnovata competizione tra le grandi potenze e la messa in discussione dell’Ordine costituito da parte, principalmente, di Russia e Cina e da alcuni attori statali regionali come Iran e Corea del Nord, ma anche da parte di gruppi terroristici internazionali quali Al-Qaida o l'Islamic State. In tutto ciò l'Europa non sembra in grado di giocare un suo ruolo indipendente, troppo impegnata nel superare le sfide interne e le sue talvolta non chiare dinamiche decisionali verso l'esterno per non parlare dei fenomeni migratori che la interesseranno, soprattutto in provenienza dal Sud.

Il secondo capitolo si interessa dello scenario socioeconomico. In primo luogo vi è la crescita demografica che interessa differenti parti del mondo, sicuramente l'Africa. In conseguenza dell’incremento della popolazione mondiale e dei cambiamenti climatici in atto vi è il fenomeno dell'immigrazione con le conseguenti sfide in termini sociali, economici, ambientali e di sicurezza. La sostenibilità ambientale è divenuta sempre più importante. L'aumento della popolazione e lo sviluppo tecnologico richiederanno sempre maggiori risorse, che saranno ancora più contese.

Il terzo capitolo prende in esame le tendenze della tecnologia. Il mondo militare, al pari del resto della società, è profondamente interessato dagli sviluppi tecnologici e dall'influenza sulla società. Uno dei problemi principali è da ricercarsi nella velocità dell'innovazione, velocità che non consente all'uomo di adattarsi in modo equilibrato. Tra le nuove tecnologie, in particolare sono le tecnologie dirompenti quelle che creano spinte difficilmente prevedibili e poco controllabili. Tutto ciò avrà dei forti influssi culturali e sociali che avranno sicuramente forti riflessi sugli equilibri geopolitici e di stabilità. Tra le nuove tecnologie gli sviluppi più attesi sono nel campo dell'Intelligenza Artificiale, delle nanotecnologie, dell'ipervelocità, dei nuovi materiali, della tecnologia quantistica e dei robot e sistemi autonomi, per non citare gli sviluppi dello spazio e del cyberspace. Tutti gli sviluppi sono strettamente legati alla cosiddetta sovranità tecnologica, argomento sempre più percepito come vitale da tutte le parti in campo.

Il quarto ed ultimo capitolo ci permette di capire come l'ambiente che ci circonda sia sempre più importante e instabile. L'ambiente naturale è sempre più soggetto al fattore stress chiamato "Uomo". Riscaldamento globale, innalzamento del livello del mare, incremento (in numero e potenza) di fenomeni atmosferici e naturali "estremi", riduzione della biodiversità, sono sempre più spesso attribuibili all'influenza della nostra specie.

Nelle conclusioni si cerca di armonizzare quanto presentato nel lavoro e di tracciare le possibili traiettorie di sviluppo, tenendo conto delle interdipendenze tra i diversi settori e della elevata instabilità che sembra caratterizzare la nostra epoca e il prossimo futuro. Secondo gli studiosi, lo scenario geopolitico internazionale con orizzonte 2040 sarà caratterizzato da instabilità, dinamicità, imprevedibilità, crisi e conflitti dai contorni molto sfumati e da profondi cambiamenti in ogni settore. Proseguirà la crescita di tensioni economiche e sociali (etniche, religiose e nazionali) e nuovi assetti etico-valoriali cercheranno di prendere il posto degli attuali, in questo scontro tra il nuovo e il vecchio spesso si cercherà di preservare i valori nazionali. I cambiamenti climatici influiranno sulla produzione di risorse, e contestualmente assisteremo ad un aumento della domanda anche a causa della generale crescita della popolazione. Aumenterà la competizione per l'accesso alle risorse pregiate del pianeta (cibo, acqua, energia e materie prime). Spazio e Cyberspace divengono più raggiungibili e campo di scontri tra attori vecchi e nuovi.

In definitiva il mondo del 2040 sembra essere molto più fragile e meno sicuro di quello attuale.

Naturalmente, come potete immaginare, questo articolo non vuol essere in alcun modo esaustivo ma vuol essere semplicemente da stimolo all'approfondimento di un settore di studi poco conosciuto eppure molto importante. Cercheremo perciò di approfondire assieme alcuni settori, provando a dare anche il nostro contributo.


Alessandro Rugolo, Fabrizio Benigni


Per approfondire:

Concetto_Scenari_Futuri_CSF

Centro Innovazione della Difesa

Francia, Red Team: come costruire il futuro - Difesa Online

DIRITTO BELLICO E SIMBOLI DI PROTEZIONE UMANITARIA NEL CYBER-SPAZIO

Si cresce nelle Scuole militari con il principio - morale, prima che giuridico - di non attaccare mai chi, nel campo di battaglia, reca sull’elmetto l’emblema della croce rossa sullo sfondo bianco; e lo stesso vale per il simbolo della mezzaluna o del cristallo rosso sul tetto bianco di un’ambulanza, di un edificio o di una di tenda. Questi segni distintivi sono i significanti della protezione che il diritto internazionale accorda a quelle persone, veicoli e strutture che si prendono cura di malati, feriti e naufraghi di guerra. Attaccarli significa violare il principio di umanità che deve caratterizzare la condotta delle operazioni militari.

Sappiamo anche che non è lecito sfruttare quei simboli per azioni di rappresaglia verso il nemico. Inoltre, è ben noto in ambiente militare quanto sia disonorevole sfruttare quei segni distintivi per raggirare l’avversario: la perfidia - cioè la condotta di chi fa appello, con l’intenzione di ingannarla, alla buona fede di un avversario per fargli credere che ha il diritto di ricevere (o l’obbligo di accordare) protezione umanitaria - è un crimine di guerra ed assume sempre una connotazione particolarmente spregevole.

Da tempo sono in atto studi e ricerche finalizzate a rendere efficaci questi principi etici e giuridici anche nel dominio cyber. E’ infatti necessario assicurare che i sistemi d’arma autonomi siano in grado di riconoscere i distintivi di protezione umanitaria e che le relative intelligenze artificiali li preservino dagli effetti dell’azione cinetica, diretta od indiretta. Ed è anche necessario che le operazioni di attacco cyber, ad esempio l’impiego di malware che si diffondono nelle architetture informatiche dell’avversario, non interessino porzioni di reti, sistemi informativi e servizi informatici serventi le strutture sanitarie o la catena logistica di esfiltrazione dei feriti dal campo di battaglia.

Nella ricerca di misure concrete per rafforzare tale protezione nel dominio cyber si sta facendo strada l'idea di sviluppare una marcatura informatica, una sorta di impronta hash, che identifichi digitalmente le organizzazioni di protezione umanitaria. In questo senso già oggi esiste un quadro regolatorio, che può essere utilizzato per indirizzare le nuove esigenze di identificazione digitale: si tratta dell’annesso 1 al primo protocollo addizionale alla Convenzione di Ginevra, che elenca e norma i segnali elettrici, radio ed elettronici riconosciuti come emblemi del personale medico e paramedico operante in teatro.

Le interazioni del mondo accademico sono stimolate, tra l’altro, dall’azione encomiabile del Comitato Internazionale della Croce Rossa nella sua incessante missione di diffondere la conoscenza del diritto internazionale umanitario applicabile nei conflitti armati. Al momento gli studi seguono due filoni principali: la ricerca della soluzione tecnica più efficace e la valutazione degli inconvenienti e dei benefici di una tale scelta. Ai vantaggi infatti di un pronto riconoscimento elettronico che eviti l’errore di “targeting” o gli effetti indiretti delle operazioni di impatto informatico, si contrappone il rischio che la palese identificazione digitale stimoli la presa di mira da parte di attori malintenzionati; oppure agevoli il già ricordato, disonorevole, uso “fake” di emblemi con finalità d’inganno della buona fede dell’avversario.

Ovviamente questi rischi e questi benefici sono noti nel mondo del tangibile da sempre: si tratta ora però di capire se la traslazione sul piano digitale possa attutire o al contrario enfatizzarne gli effetti negativi, tenuto conto delle ampie superfici di attacco e delle caratteristiche di asimmetria che distinguono gli attacchi cyber. E’ infatti un dato sotto gli occhi di tutti che l’aggressione al sistema informatico, ad esempio, di un ospedale da campo possa essere attivata da migliaia di chilometri di distanza con un laptop da poche centinaia di euro.

Orazio Danilo Russo


Per approfondire:

https://www.icrc.org/en/document/potential-human-cost-cyber-operations

https://shop.icrc.org/avoiding-civilian-harm-from-military-cyber-operations-during-armed-conflicts-icrc-expert-meeting-21-22-january-2020-geneva-pdf-en

https://blogs.icrc.org/law-and-policy/2021/09/16/legal-protection-digital-emblem/?utm_campaign=DP_ORE%20blog%3A%20Signaling%20legal%20protection%20in%20a%20digitalizing%20world%3A%20a%20new%20era%20for%20the%20distinctive%20emblems%3F&utm_medium=email&_hsmi=160129452&_hsenc=p2ANqtz-_k6XRN3TOAReLJlee7-bPK_JeHpN0-hsT2-YT86UbnlkpOhRLWZltzm9lqxPuHKnKOTvxoTCI4mEY4zj-0Cz8QyYOHeg&utm_content=160129452&utm_source=hs_email#_ftnref1

mercoledì 1 settembre 2021

Il chaos nel cosmo(DB)

Qualche giorno fa, mentre spiragli di frescura si insinuavano nella canicola agostana, appariva nuovamente sui social media professionali una domanda molto importante ma alquanto provocatoria: “Quanto è sicuro il cloud?”

La ragione principale di questo dubbio risiedeva in una vulnerabilità di un componente software descritta da alcuni ricercatori della società Wiz.

Proviamo ad approfondire cosa è successo per capire rischi e soluzioni.

Microsoft, come parte delle soluzioni cloud che vanno sotto l’ombrello “Azure”, offre una soluzione di database chiamata CosmosDB.

Questo è un database di tipo NoSQL, quindi radicalmente differente in struttura e in prestazioni rispetto a un database relazionale come ad esempio SQLServer.

I vantaggi che spingono piccole e grandi aziende ad adottare un database NoSQL in cloud sono essenzialmente tre: archiviare grandi quantità di dati non strutturati, velocità di risposta in pochi millisecondi e, non meno importante, scalabilità a livello planetario.

Questi vantaggi, uniti alla potenza del cloud, spiegano le ragioni del successo di CosmosDB.

In agosto 2021 la società Wiz, capitanata a livello tecnico da Ami Luttwak che poco tempo fa ricopriva lo stesso ruolo in Microsoft Cloud Security Group, informa Microsoft che il suo team di ricerca ha identificato una vulnerabilità in un componente software utilizzato con CosmosDB che si chiama Jupyter Notebook.

Questa è una piccola applicazione a contorno del motore di database principale, che si definisce Open Document Format.

In pratica è un modo di rappresentare i dati che consente di creare e condividere documenti che contengano dal testo narrativo a equazioni scientifiche, da codice software a dati più complessi come semplificato nell’immagine qui sotto:



Figura 1 - Esempio di dati complessi in Jupyter Notebook

Questi documenti possono poi essere memorizzati nel database, quindi interrogati, ordinati, estratti, e così via.

Jupyter Notebook non nasce con CosmosDB, bensì circa dieci anni fa come parte del linguaggio di programmazione Python. Nel 2015 viene scorporato in un progetto opensource autonomo chiamato per l’appunto Jupyter Project.

Messa nei termini più semplici possibili per capirne il rischio, la vulnerabilità di Jupyter Notebook, se sfruttata con un apposito exploit codificato per l’occasione, permette a un attaccante di interrogare il componente Jupyter Notebook di un database CosmosDB raggiungibile da Internet, ottenendo credenziali valide utili per visualizzare, modificare e cancellare dati nell’utenza di CosmosDB.

Come sempre accade quando le cose si fanno per benino, i ricercatori hanno dato un nome a questa vulnerabilità chiamandola ChaosDB ed informato Microsoft secondo i dettami della ResponsibleDisclosure

La società di Redmond ha reagito prontamente in meno di 48 ore disabilitando questa opzione software che era presente di default su tutte le istanze CosmosDB a prescindere dall’utilizzo e ha avvisato i clienti del rischio in modo che provvedessero a modificare le configurazioni per rimediare al rischio di potenziale compromissione.

Concludo questa disamina con una serie di cinque domande per chiarire il rischio reale, offrendo per ultima una mia riflessione sul tema.

Domanda 1 - Ma quindi il cloud è sicuro?

Risposta di Marco - Come lo può essere qualsiasi implementazione raggiungibile da chiunque ne sia autorizzato e da ovunque sul pianeta. Ad aumentare il livello di sicurezza - rispetto ad aziende che, come attività principale, fanno altro - c’è l’attenzione costante e continua di chi su questi servizi genera una parte importante dei propri profitti ed ha tutto l’interesse alla costruzione e conservazione di un rapporto di fiducia basato sull'integrità dei dati, così come la loro riservatezza.

Domanda 2 - Ma questa vulnerabilità è rimasta attiva per mesi prima di essere rilevata?

Risposta di Marco - Come centinaia di migliaia di vulnerabilità, alcune delle quali rimangono dormienti per anni fino alla loro scoperta. Microsoft ha anche confermato che non risulta nessun accesso illecito ai dati a causa di questa vulnerabilità. È anche opportuno ricordare che la vulnerabilità di un componente non significa necessariamente vulnerabilità della piattaforma.

Domanda 3 - Come posso proteggermi da attacchi in cloud?

Risposta di Marco - Curando di avere sempre la massima visibilità sul proprio ambiente digitale, oltre alla conoscenza delle diverse opzioni di configurazione delle istanze che vengono attivate in ambienti cloud. Ad esempio, sebbene vulnerabile a causa di un componente software come Jupyter Notebook un database CosmosDB diventa compromissibile solo se esposto alla raggiungibilità pubblica via internet. E non bisogna dimenticare il rischio interno, derivante da attaccanti che sfruttino vulnerabilità dall’interno dei perimetri di sicurezza.

Domanda 4 - Come posso mitigare il rischio di questa vulnerabilità?

Risposta di Marco - Oltre alla guida fornita da Microsoft, due giorni fa la stessa Wiz ha pubblicato alcune interessanti linee guida al proposito, consultabili a questo link.

Domanda 5 - Ma non dovrebbe essere responsabilità di Microsoft garantire la sicurezza del mio account in cloud?

Risposta di Marco - No. O meglio, non completamente. È certamente compito di Microsoft garantire che il software e le piattaforme offerte come servizio restino il più possibile libere da bug e vulnerabilità, attività che viene continuamente effettuata da chiunque offra servizi cloud a terzi. Infatti, proprio in questo caso la vulnerabilità è stata trovata in un continuo rapporto tra Microsoft ed i suoi partner volto ad aumentare la sicurezza dei servizi. È anche importante per gli utenti capire il concetto di responsabilità condivisa, di cui ho parlato in un altro articolo più in dettaglio e che riassumo qui con un esempio: ipotizziamo di affittare un’abitazione dotata di tutte le caratteristiche di sicurezza più evolute ed aggiornate, in modo da renderla davvero una fortezza praticamente inespugnabile. Restiamo comunque noi le persone a cui vengono consegnate le chiavi per aprire la porta di questa abitazione. siamo noi che decidiamo se quando usciamo di casa lasciamo le finestre socchiuse; noi siamo anche quelli che decidiamo di fare una copia di sicurezza delle chiavi per attaccarle sotto il portaombrelli con il nastro adesivo perché non si sa mai.

La forza di ogni catena è pari al suo anello più debole e spesso questo anello è quello che unisce la sedia alla tastiera.


Marco Rottigni 

Vignetta: Simone Domini


Per approfondire:

Il progetto Jupyter 🡺 https://jupyter.org/

Introduzione a CosmosDB 🡺 https://docs.microsoft.com/it-it/azure/cosmos-db/introduction

La notizia di Wiz sulla vulnerabilità 🡺 https://www.wiz.io/blog/chaosdb-how-we-hacked-thousands-of-azure-customers-databases

Linee guida di Wiz su come mitigare 🡺 https://www.wiz.io/blog/protecting-your-environment-from-chaosdb


venerdì 27 agosto 2021

Internet of Things : l’Internet degli Oggetti

Considerazioni generali e aspetti introduttivi di sicurezza

Il termine Internet of Things o IoT, spesso tradotto erroneamente con Internet delle Cose quando sarebbe più opportuna la traduzione Internet degli Oggetti, e’ ormai entrato a far parte del lessico comune di quanti si occupano di tecnologie ICT.

Nel corso di queste note mi sono riproposto di fare un po’ di chiarezza sulle tecnologie adottate, sui componenti e sulle possibili problematiche di sicurezza delle soluzioni IoT.

Inizio con affermare che le soluzioni IoT hanno delle caratteristiche particolari che le rendono uniche. L’elevato numero di dispositivi, che solitamente fanno parte di una soluzione IoT, impone delle caratteristiche di scalabilità basate non tanto sulle prestazioni quanto sulla necessità di gestire e manutenere un parco installato caratterizzato da una cardinalita’ estremamente rilevante (numeri estremamente elevati). Tutto ciò si riflette nella mole di dati da memorizzare e analizzare.

Il fine ultimo delle soluzioni IoT nei diversi ambiti applicativi e’ sempre quello di fornire degli strumenti che, a fronte di un fenomeno fisico naturale o artificiale, permettano di capire cosa sta succedendo, perché sta succedendo e potenzialmente cosa potrebbe avvenire. Sensori e attuatori sono quindi i mezzi che permettono di interagire con l’ ambiente i con il fenomeno fisico che si vuole controllare. Si tratta dunque di gestire e analizzare un grande numero di dati di natura diversa aggregandoli ed elaborandoli in modo da trarre da esse delle informazioni in base alla quale eseguire specifiche azioni (in inglese Actionable Information).

Proseguo con l’ affermare che nel corso degli ultimi 2 / 3 anni si e’ verificata la disponibilità di un insieme di catalizzatori che hanno favorito lo sviluppo delle tecnologie necessarie alla realizzazione di soluzioni IoT e conseguentemente l’attenzione dell’ industria verso questo tipo di tecnologie e’ cresciuto in proporzione. Ormai parlare di soluzioni IoT rappresenta non tanto una sperimentazione di frontiera, quanto la necessità di confrontarsi con le specifiche problematiche di implementazione.

Tra i catalizzatori che concorrono alla adozione di soluzioni IoT si possono citare :

  • La disponibilità di sensori e attuatori di tipologia diversa e variegata

  • L’ offerta da parte dei principali vendor di soluzioni Cloud di piattaforme dedicate a questo ambiente e dotate di primitive atte ad indirizzare alcune delle caratteristiche specifiche di questo tipo di applicazioni

  • La disponibilità di protocolli di comunicazione specializzati in grado di supportare le peculiarità (cardinalita’, resilienza, affidabilità) necessarie in ambito IoT.

Prima di addentrarci nella analisi di una soluzione IoT e dei relativi componenti tecnologici conviene spendere qualche parola sul concetto di sensori e attuatori che rappresentano gli elementi fondamentali di una tale soluzione .

I sensori.


I sensori sono dei componenti hardware specializzati nella lettura di un parametro fisico (temperatura, pressione, umidità, intensità luminosa,…) e nella trasmissione del dato rilevato in forma digitale o analogica mediante un insieme di regole (protocollo) che permettono al ricevente di interpretarlo correttamente. Un esempio molto semplice puo’ essere un termometro per la temperatura : esso genera un valore espresso in gradi Celsius o Fahrenheit che viene solitamente rilevato mediante la lettura di una apposita scala graduata o di un piccolo display. Qualora il termometro sia dotato di un minimo di logica per la trasmissione di questo valore verso un altro componente, utilizzando un protocollo opportuno, avremo realizzato un sensore di temperatura. Naturalmente i sensori possono essere di tipologia diversa e molto complessi in grado di rilevare più grandezze fisiche contemporaneamente. Esistono oggi sensori in grado di rilevare il transito di una persona attraverso un Gate (cancello logico) e individuarne il senso (ingresso o uscita), sensori in grado di riconoscere codici a barre o impronte digitali, sensori in grado di misurare la distanza relativa tra due oggetti e cosi via. Tutti i dati raccolti dai sensori devono essere codificati opportunamente per l’ elaborazione successiva. Tornando all’ esempio del sensore di temperatura sara’ necessario anche prevedere l’ invio o la segnalazione dell’ unita’ di misura associata : Celsius o Fahrenheit. Il dato generato dal sensore deve quindi essere opportunamente formattato per l’ invio e la successiva elaborazione.

Gli attuatori.

Mentre i sensori si occupano di catturare un dato e inviarlo per l’elaborazione successiva, e’ necessario anche disporre della possibilità di eseguire delle azioni a seguito dell’ elaborazione eseguita a partire dai dati forniti dai sensori o da un sistema di controllo. Questo e’ il compito degli attuatori. Come in precedenza un semplice esempio può essere la chiusura o apertura di un circuito alla ricezione di uno specifico comando (banalissimo esempio : l’apriporta di casa). Analogamente a quanto affermato per i sensori anche gli attuatori possono essere complessi e multifunzione : si pensi, per esempio alla necessita’ di porre in rotazione un motore ad una specifica velocità o al posizionamento di un braccio meccanico per il rilascio di un contenuto (apertura di circuito). Anche in questo caso, gli attuatori devono essere dotati di funzioni primitive di comunicazione che permettono la ricezione di comandi e l’interpretazione del loro significato.

I protocolli di comunicazione

Sensori e attuatori devono quindi, per quanto detto, essere in grado di trasmettere e ricevere delle informazioni verso un sistema di più alto livello per una successiva elaborazione. Si noti che sia per i sensori che per gli attuatori, la comunicazione deve essere in genere bidirezionale e dunque devono essere gestite verso entrambi sia la trasmissione che la ricezione di dati e comandi. Per esempio in un sensore può essere possibile definire una stringa univoca che ne identifica il posizionamento, mentre un attuatore deve essere in grado di fornire un indicazione di errore qualora la funzione richiesta (posizione, velocità, apertura/chiusura di un contatto,…) non sia attuabile.

L’ insieme di regole e di formati con cui sensori e attuatori comunicano con un sistema di elaborazione (PLC, Gateway, Edge Computer,…) costituisce il protocollo di comunicazione utilizzato tra queste entità. Il protocollo di comunicazione deve indirizzare una serie di situazioni per essere efficace e supportare la implementazione della soluzione prevista.

Alcune tra le problematiche che devono essere risolte dal protocollo sono:

  • Come indirizzare univocamente lo specifico sensore/attuatore in una installazione

  • Come stabilire una priorità di accesso al mezzo trasmissivo (chi parla per primo)

  • Cosa fare nel caso il mezzo trasmissivo sia occupato (chi sta parlando)

  • Come segnalare eventuali errori

  • Come formattare i dati trasmessi o ricevuti (p.es. quanti bit assegnare ad una specifica grandezza)

  • Come assicurare che il dato trasmesso non venga corrotto nel corso della trasmissione

  • Etc.

I requisiti che tali protocolli devono soddisfare includono sia la semplicità di implementazione vista la limitata capacita’ elaborativa che la necessita’ di ridurre il consumo di eventuali batterie dei sensori e attuatori. I protocolli vengono poi resi disponibili su mezzi trasmissivi diversi : dal classico doppino in rame fino alle connessioni Wireless su bande non soggette a licenza (bande ISM). Una caratteristica comune a questi protocolli e’ la limitata larghezza di banda richiesta per la trasmissione dei dati come conseguenza appunto della semplicità dei dati trasmessi.

In ambito IoT esistono svariati protocolli di comunicazione sia proprietari che standardizzati, tra questi possono essere ricordati IO-Link, ModBus, LoraWAN, En-Ocean, gli ultimi due su mezzo trasmissivo radio.

L’ architettura di una soluzione IoT

Una soluzione IoT non si esaurisce ovviamente con la sola disponibilità di sensori e attuatori ma richiede la presenza e la coordinazione di una serie di componenti che permettano di estrarre dai dati le informazioni decisionali (Actionable Information).

La figura seguente schematizza i vari componenti di una implementazione IoT.


Procedendo da sinistra verso destra si notano i sensori e attuatori responsabili della cattura del dato e della eventuale modifica dell’ ambiente controllato. I protocolli di trasmissione permettono di consolidare questi dati presso dispositivi intelligenti che si differenziano sostanzialmente per la capacita’ elaborativa necessaria in base alle caratteristiche del sistema che si vuole realizzare. Diciamo subito che qualora non sia necessaria una risposta del sistema complessivo in tempi molto ristretti (near real-time) i dati verranno consolidati da un Edge Gateway (1) di capacita’ più limitate rispetto ad un Edge Computer in grado di fornire sofisticate elaborazioni locali. I dati cosi consolidati, normalizzati e opportunamente formattati vengono poi trasmessi ad unapplicazione Cloud che estrarra’ le informazioni di interesse. Anche in questo ulteriore passaggio trasmissivo risultano fondamentali le caratteristiche del protocollo di comunicazione utilizzato per inoltrare i dati verso l’ ambito applicativo in cloud. Rispetto al caso della trasmissione da sensore/attuatore da/per Edge device, c'è pero’ in questo caso una significativa e importante differenza : tutti i protocolli utilizzati (MQTT, AMPQ, OPC UA,…) si basano su di un unico comune denominatore rappresentato dal protocollo IP sul quale poi si appoggiano, a livello superiore, i protocolli prima identificati. In ambito applicativo, i server o i corrispondenti servizi Cloud forniranno le necessarie funzioni primitive per la memorizzazione, elaborazione e presentazione delle informazioni estratte dai dati catturati. Da considerare poi che i principali fornitori di servizi Cloud propongono oggi delle piattaforme specializzate per l’ambito IoT che offrono una serie di funzionalita’ primitive volte a semplificare il processo di implementazione e che indirizzano le necessità di installazione, configurazione e gestione dei dispositivi Edge sia Gateway che Computer.

Una necessaria precisazione va fatta in merito alle funzionalità di Edge Computing necessarie, come abbiamo affermato, alla realizzazione di implementazioni caratterizzate da requisiti temporali molto stringenti. E’ questo il caso di soluzioni di controllo di sistemi critici per i quali il ritardo (ed eventualmente la non disponibilità delle applicazioni Cloud) non e’ tollerabile ed e’ dunque necessario fornire una risposta (una azione) in tempi molto contenuti. L’elaborazione locale quindi si sostituisce all’elaborazione in cloud della quale e’ in grado di sfruttare algoritmi e dati storici.

Riassumendo dunque la catena tecnologica di una implementazione IoT e’ composta da un numero di componenti sicuramente elevato che possono pero’ essere aggregati in tre principali categorie :

  • i sensori/attuatori responsabili dell’interazione con l’ambiente che si vuole realizzare o controllare

  • I dispositivi di edge che concentrano, normalizzano e trasmettono i dati verso i sistemi di elaborazione applicativa

  • Le applicazioni che estraggono dai dati le informazioni fruibili e le rendono disponibili presentandole opportunamente.

Malgrado la apparente semplicità della soluzioni, gli aspetti critici che devono essere analizzati in dettaglio sono numerosi:, in particolare gli aspetti di sicurezza meritano una attenzione particolare.

La sicurezza nelle realizzazioni IoT

Come qualunque sistema. ICT anche nelle realizzazioni IoT la sicurezza gioca un ruolo fondamentale. Si tratta quindi di individuare le eventuali criticità e i componenti specifici che devono essere considerati nella pianificazione di una strategia di sicurezza in ambito IoT.

Seguendo la catena tecnologica individuata in precedenza si possono ipotizzare alcune considerazioni partendo da sensori e attuatori.

Si tratta solitamente di componenti relativamente semplici caratterizzati da limitate capacità elaborative in modo da ridurre il consumo di eventuali batterie di alimentazione. Le grandezze su cui sensori/attuatori devono intervenire sono rappresentate da un valore numerico (temperatura, pressione, rotazione di un motore passo-passo…) o digitale (on/off, aperto/chiuso, …) che assume un significato specifico nel contesto globale della soluzione considerata. Possiamo affermare che il valore del SINGOLO dato e’ dunque limitato e di poco interesse : la prospettiva e’ completamente diversa quando si tratta dell’ INSIEME dei dati che e’ poi possibile correlare. In ogni caso i sensori/attuatori sono dotati di un firmware relativamente semplice e molto spesso non aggiornabile. Una prima valutazione sulla sicurezza deve quindi essere svolta sul firmware del dispositivo e successivamente sul protocollo di comunicazione che permette l’inoltro dei dati verso il dispositivo edge. Si noti che in questo caso si tratta di protocolli specializzati, per certi versi proprietari, per i quali la disponibilità di tool di compromissione o di intercettazione e’ comunque limitata. Cio’ non toglie che eventuali rischi di compromissione di tali protocolli /mezzi trasmissivi debbano essere valutati.

Diverso è lo scenario relativo ai dispositivi edge : in questo caso le possibili compromissioni di sicurezza possono essere molteplici. Il firmware del dispositivo in questo caso e’ spesso basato o comunque include delle componenti Open Source che possono presentare vulnerabilità : e’ dunque necessario valutare sia l’ aspetto comportamentale del dispositivo, che la possibile presenza di “backdoor” dormienti che potrebbero essere presenti in qualche modulo software. L’ utilizzo di protocolli di comunicazione basati su IP apre poi la possibilità alle vulnerabilità tipiche degli ambienti basati su IP. Fortunatamente queste sono ben comprese e documentate nell’ambito tecnologico ed esistono strumenti sofisticati per minimizzare il rischio di compromissioni a questo livello.

Le principali soluzioni Cloud in abito IoT offrono oggi tutta una serie di strumenti per indirizzare le problematiche di una connessione sicura tra un edge device e la relativa applicazione Cloud : tali strumenti forniscono tra l’ altro la crittografia dei dati trasmessi, la mutua autenticazione tra applicazione e edge device, la verifica dell’ integrità del dato e la non replicabilità dello stesso. A completamento delle possibili vulnerabilità di una soluzione IoT vanno menzionate quelle relative all’ambiente Cloud e alle applicazioni e dati ivi installati, per le quali esistono dettagliate informazioni in letteratura.

Per concludere, le soluzioni IoT a fronte di una semplicità concettuale dovuta alla schematicità dell’ architettura di rete, presentano invece una serie di complessità derivanti dall’elevato numero di dispositivi in gioco, dalla conseguente necessità di disporre di efficaci strumenti di gestione e dalle problematiche di sicurezza che si possono concretizzare, con modalità diverse, in più punti della realizzazione richiedendo l’ applicazione, il coordinamento e la gestione di strumenti di difesa di natura differente. Questo comporta una conoscenza multidisciplinare di tecnologie e prodotti che può essere in parte mutuata da precedenti esperienze in ambito ICT quando associata alla necessaria padronanza dell’ ambiente fisico (degli Oggetti) che si vuole controllare e/o realizzare.

Giorgio Tosi

1 Edge Gateway : con questo termine viene identificato un dispositivo di comunicazione che è in grado di estrarre le informazioni ricevute tramite uno specifico protocollo di comunicazione e formattarle opportunamente per la trasmissione e l’ inoltro tramite un protocollo diverso. Ad esempio un Edge Gateway è in grado di rilevare lo stato di un contatto digitale (ON/OFF) e formattare questa informazione in modo opportuno in modo che possa essere trasmessa ad una applicazione residente su di un server mediante il protocollo TCP/IP.