venerdì 30 luglio 2021

OWASP ZAP – Zed Attack Proxy

Questo che sto per descrivervi è un evento che accadeva spesso anni fa ma adesso, per fortuna, è diventato piuttosto raro: siamo su un portale web che raccoglie recensioni di film e vogliamo cercarne una su “L’uomo che sapeva troppo”. Individuiamo il motore di ricerca interno del portale, inseriamo “migliori film dell’anno” nel campo a disposizione e clicchiamo sul pulsante “cerca”.

A questo punto, il nostro browser riporta una strana pagina di risposta in cui ci sono parti riconoscibili del portale ma sono formattate male, pezzi di linguaggio di programmazione… Cos’è successo?

Se anziché cercare un altro portale di film, ci soffermassimo su quello strano evento, con l’aiuto di Google potremmo scoprire che a causare quel disservizio è stato un carattere contenuto nella stringa “L’uomo che sapeva troppo”: l’apostrofo. In un linguaggio di programmazione l’apostrofo (o apice) può avere un’importanza enorme e se lo script che gestisce la ricerca all’interno del portale in questione non tiene conto di questa possibilità, allora quello script e il modulo che governa sono vulnerabili.

Nella pratica cosa significa vulnerabile? Significa che quel modulo può essere utilizzato per inserire codice malevolo che potrebbe pregiudicare la funzionalità del portale o peggio, esporre tutti i dati degli altri utenti registrati in esso.

Al giorno d’oggi esistono molti strumenti che cercano di ripetere l’evento sopra descritto. Solitamente è sufficiente fornirgli l’indirizzo del sito web da analizzare: lo strumento naviga tra le pagine del sito alla ricerca di un modulo da attaccare e, se lo trova, tenta di inserirvi parti di codice. Se riceve una risposta nota, allora segnala quella pagina come “vulnerabile”. Purtroppo, però, quella dell’esempio è una delle vulnerabilità più classiche; ne esistono migliaia di altre e quotidianamente ne escono sempre di nuove. Allo stesso modo, anche i tool utilizzati per scovare queste vulnerabilità un giorno sono funzionali, il giorno dopo inutili perché obsoleti.

E allora? Per fortuna esistono strumenti gratuiti come OWASP ZAP (Zed Attack Proxy), un tool creato seguendo i principi della Fondazione OWASP (Open Web Application Security Project) al fine di offrire a tutti la possibilità di poter analizzare le proprie applicazioni e siti web, rendendoli più sicuri.

ZAP è uno strumento alla portata di tutti, dall’utente più inesperto al professionista del settore; è open-source e contiene la maggioranza delle vulnerabilità tuttora presenti e viene aggiornato costantemente da una community dedicata.

Installazione

Come detto, ZAP è open-source, per cui è gratuitamente scaricabile a questo link (https://www.zaproxy.org/download/); l’unico prerequisito che richiede è la presenza di Java 8+ con cui far funzionare tutti i suoi moduli. Una delle sue peculiarità è proprio quella di essere disponibile per molte tipologie di piattaforma e sistemi operativi, ed è addirittura disponibile una versione utilizzabile su Raspberry.

Una volta scaricato, la procedura di installazione è davvero semplice ed intuitiva.

Funzionamento


ZAP È principalmente un proxy ed infatti al suo interno immagazzina tutti i dati provenienti dal sito che stiamo analizzando e li elabora sottoponendoli all’archivio delle vulnerabilità che possiede. Per questo ZAP ha due modalità di analisi: quella di default è la scansione che possiamo chiamare “leggera” ma volendo è possibile aumentare la brutalità dell’attacco per fare un’analisi più approfondita. Questa ultima modalità naturalmente implica un aumento in termini di tempo di esecuzione, utilizzo delle prestazioni e stress dell’applicazione o sito web.


Aprendolo, la prima cosa che notiamo è il suo modulo principale, lo scanner: è sufficiente inserire la URL del sito che vogliamo analizzare e ZAP riporterà tutte le stranezze sotto forma di bandierine colorate in base alla gravità di quanto trovato.


Lo Spider di ZAP analizza ogni parte di codice e cataloga ciò che trova secondo la gravità e la tipologia di vulnerabilità; ogni avviso è espandibile e corredato sia di una breve spiegazione che di link su cui trovare informazioni più dettagliate (oltre alle strategie per evitare la vulnerabilità identificata).

Molto spesso, la prima cosa che otterremo sarà un numero considerevole di informazioni, molte delle quali perfettamente inutili per il nostro scopo; questo perché è necessario perdere un po’ di tempo nel profilare correttamente ZAP ed attagliarlo alle proprie esigenze. Comunque, il consiglio è quello di approfondire la conoscenza anche di queste informazioni che possono sembrare inutili, poiché in un futuro potrebbero essere sintomo di una nuova vulnerabilità.


Come tutti gli strumenti di questo tipo, solo la pratica e la conoscenza possono aumentarne le potenzialità di utilizzo.

La scansione attiva

Con la scansione attiva è possibile utilizzare il browser integrato in ZAP e, una volta trovato un elemento del sito che giudichiamo sensibile, con il trasto destro del mouse è possibile farlo analizzare, riducendo molto i tempi ed evitando di mettere sotto stress l’intera struttura.

Questa è una soluzione molto comoda per chi è già abbastanza pratico e vuole condurre delle ricerche mirate senza perdere tempo e senza impegnare la propria postazione catalogando dati inutili.

Sessioni e Report

Ad ogni utilizzo, ZAP chiede all’utente se intende creare una sessione attiva dell’analisi che si sta per effettuare o una temporanea. La discriminante nella richiesta sta nell’utilizzo che si vuole fare dei dati che verranno raccolti: in una sessione attiva tutte le scansioni vengono memorizzate localmente per essere magari analizzate più approfonditamente in un secondo tempo.

Il Market Place

Come detto, ZAP è orientato anche al settore professionale, per cui è possibile personalizzarlo abilitando o disabilitando tipologie di attacco oppure utilizzando lo store inluso dove è possibile acquistare moduli di analisi aggiuntivi, creati e certificati dalla community di OWASP. Tra i moduli in vendita ve ne sono molti in versione prova o anche in versione beta testing per permettere all’utenza di sperimentare nuove tipologie di vulnerabilità e riportare successivamente alla community i risultati delle proprie valutazioni.

Per concludere

ZAP fa parte della grande famiglia dei “PenTesting Tool” (Penetration Testing) e di base simula un attaccante che voglia realmente trovare una vulnerabilità e approfittarne: non credo sia inutile rammentare le conseguenze penali se tale strumento venisse utilizzato senza esplicita autorizzazione da parte del proprietario del sito in questione.

ZAP non è che uno dei tanti progetti della Fondazione OWASP nati con l’intento di aiutare coloro che sviluppano o utilizzano applicazioni web e che spesso, vuoi per la fretta o per l’inesperienza, evitano quelle accortezze che, purtroppo, diventano facilitazioni per i malintenzionati.


Simone DOMINI


Per approfondimenti:

https://www.zaproxy.org/

https://www.zaproxy.org/docs/

https://www.zaproxy.org/community/

https://owasp.org/

https://www.difesaonline.it/evidenza/cyber/cyber-defence-programmare-sicurezza-%C3%A8-la-base-di-tutto

https://www.difesaonline.it/evidenza/cyber/injection-broken-authentication-ed-xss-i-principali-rischi-cyber

https://www.difesaonline.it/evidenza/cyber/sicurezza-e-devops-cosa-vuol-dire-shift-left



martedì 27 luglio 2021

Windows 11, un sistema operativo ancora più sicuro

We want to move people from needing Windows,
to choosing Windows,
to loving Windows.

[Satya Nadella]


Microsoft ha avuto l’ambizione di far sì che Windows non fosse solo un sistema operativo ma un marchio ed un marchio non è semplicemente un nome, un colore o un logo. È ciò che possiamo definire come un qualcosa che “
consenta alle persone di fare le cose che ritengono di maggior interesse per se stesse offrendo la migliore esperienza possibile”.

Se le aziende possono trarre un grande insegnamento dall’esperienza vissuta lo scorso anno, credo che si possa affermare che: “devono essere resilienti e che la tecnologia ed il, cloud siano due tra i fattori più importanti per potere soddisfare questa esigenza”.

La pandemia globale ha accelerato la trasformazione digitale in un modo inimmaginabile fino a poco tempo fa ed il fatto che sempre di più ha preso piede l’hybrid work ha creato le condizioni per cui le varie organizzazioni avessero bisogno di un sistema operativo che consentisse alle persone di lavorare, studiare o apprendere indipendentemente dal luogo in cui si trovassero. Il tutto, senza dimenticare la sicurezza perché, come diceva Albert Einstein: “L’uomo e la sua sicurezza devono costituire la prima preoccupazione di ogni avventura tecnologica”.

È proprio delle funzionalità di sicurezza di Windows 11 che vi voglio parlare. Per tutto il resto, vi rimando ai blog e ai siti ufficiali:

Ripartiamo ancora una volta da quanto accaduto nell’ultimo anno, anno nel quale i Personal Computer e, in generale, i dispositivi di ogni natura ci hanno tenuti in contatto con la famiglia e gli amici e hanno permesso alle aziende di continuare ad operare pur in una situazione di estrema criticità. In questo contesto, la responsabilità di un’azienda come Microsoft, il cui sistema operativo è utilizzato da oltre un miliardo di persone, è cresciuta ancora di più ed il pensiero è corso a come continuare ad offrire la migliore qualità, esperienza e sicurezza possibile. È un dato di fatto che mentre tutti, chi più chi meno, si è adattato a lavorare da casa, è stato raro passare una giornata senza leggere resoconti di nuove minacce relative alla sicurezza informatica. Phishing, ransomware, supply chain e vulnerabilità IoT sono stati i titoli di articoli di giornali e media che hanno messo ancor più in evidenza il fatto di come gli aggressori sviluppano costantemente nuovi sistemi per provocare il caos digitale.

Pertanto, con l'aumento della portata e della raffinatezza degli attacchi, anche i sistemi operativi devono essere sviluppati secondo paradigmi differenti che tengano in considerazione l’intera catena di protezione, dall’hardware al software, dal chip al cloud.

Come dicevo, Windows 11 è stato riprogettato per l’hybrid work ma con criteri di sicurezza estremamente elevati basati sull’adozione del principio “security by design”, adottando nuove tecnologie di sicurezza incorporate che aggiungono un ulteriore livello di protezione sia durante l’utilizzo in locale che durante l’accesso alle piattaforme e ai servizi cloud, consentendo al contempo produttività e nuove esperienze.

Le funzionalità di sicurezza chiave, attivate di default, oltre a quelle già presenti in Windows 10, sono:

  • l’isolamento dei processi basato sull’hardware;

  • la crittografia;

  • la prevenzione del malware.

In Windows 11, inoltre, sarà più semplice abbandonare le password grazie al miglioramento della modalità di accesso agli endpoint aziendali mediante il servizio “Windows Hello for Business”.

E sappiamo tutti quanto l’accesso ai sistemi tramite username e password rappresenti il rischio maggiore per le gli utenti e le organizzazioni di tutto il mondo .

A questo riguardo invito tutti i lettori a visitare il sito https://haveibeenpwned.com/ e a inserire il proprio indirizzo email 😊

Per lo sviluppo di Windows 11 Microsoft ha lavorato, se possibile in maniera ancora più forte, a stretto contatto con i propri partner per garantire una migliore sicurezza digitale grazie alle specifiche dei cosiddetti “PC secured-core”, una nuova generazione di dispositivi in cui vengono adottate le migliori caratteristiche di sicurezza già al livello del firmware dei sistemi. L’obiettivo dichiarato è quello di rendere questa tipologia di Personal Computer estremamente più resistenti alle cyber minacce rispetto ai dispositivi tradizionali.

Questi dispositivi combinano protezioni hardware, software e del sistema operativo per fornire garanzie end-to-end contro minacce sofisticate ed emergenti come quelle contro hardware e firmware che sono in aumento secondo il National Institute of Standards and Technology e il Dipartimento della Sicurezza Interna.

Il Rapporto Security Signals ha rilevato che l'83% delle aziende ha subito un attacco al firmware e solo il 29% sta allocando risorse per proteggersi.

Se le minacce continuano a crescere e a migliorare in termini di sofisticazione e di qualità non si può pensare di non fare altrettanto sul fronte dello sviluppo dei dispositivi. Chi pensa o polemizza sul fatto che sia una manovra voluta per permettere alle multinazionali o ai produttori di hardware di arricchirsi, dimentica che si tratta del normale sviluppo della tecnologia oppure fa ideologia o ancora fa finta di non guardare in faccia la realtà.

A dimostrazione dell’importanza sempre maggiore che riveste la sicurezza informatica, l’utilizzo di Windows 11 è dipendente dalla presenza del TPM (Trusted Platform Module), ossia un chip integrato nella scheda madre del PC o aggiunto separatamente nella CPU Il cui scopo è quello di proteggere le chiavi di crittografia, le credenziali utente e altri dati sensibili grazie ad una sorta di barriera hardware in modo che malware e aggressori non possano accedere o manomettere tali dati.

È corretto sottolineare come già da qualche anno Microsoft lo richiede sui prodotti certificati, cioè sui notebook e, più in generale, su tutti i prodotti pensati per le aziende.

Su molti sistemi assemblati, anche per questioni di contenimento dei prezzi, i produttori di schede madri non integrano questo modulo e quindi potrebbe essere possibile riscontrare alcune difficoltà nell’installazione di Windows 11 sul proprio PC. Si tratta, in ogni caso, di un “ostacolo” superabile grazie al fatto che i produttori di processori integrano, ormai da tempo, nei loro modelli più recenti di CPU uno specifico modulo di sicurezza compatibile con le specifiche Trusted Platform Module. Alcuni esempi? Intel Platform Trust (Intel PTT), AMD PSP fTPM e TA di Qualcomm. Ed in ogni caso la sicurezza viene prima di tutto !!!

È importante ricordare che, nella maggior parte dei casi, il modulo TPM integrato nella CPU deve essere abilitato dal BIOS.

Windows 11 ha, infine, anche il supporto immediatamente disponibile per MAA (Microsoft Azure Attestation), una soluzione unificata per verificare in remoto l’identità, l'affidabilità di una piattaforma e l'integrità dei file binari in esecuzione al suo interno, basata su Azure e che consente di applicare i criteri zero trust a qualsiasi piattaforma.

Tutto quanto detto è compatibile con i prossimi dispositivi che saranno dotati di Chip Pluton, presentato nel novembre 2020, oltre che con qualsiasi dispositivo che utilizza il chip di sicurezza TPM 2.0, inclusi centinaia di dispositivi disponibili da Acer, Asus, Dell, HP, Lenovo, Panasonic e molti altri.

ll rilascio di Windows 11, come detto, avviene in un momento in cui ormai è chiaro che lo smart working, da necessità legata all’emergenza pandemica, è diventato una policy aziendale che si consoliderà anche nel prossimo futuro e si evolverà sempre più verso forme flessibili di lavoro: in ufficio e da remoto.

Proprio per cercare di migliorare la collaborazione nei nuovi ambienti lavorativi “ibridi”, Windows 11 dispone di un’interfaccia utente rivista che mantiene, in ogni caso, una certa familiarità con il passato.

È stato completamente rivisto il menu Start per avere un’interfaccia più moderna e permettere di trovare più facilmente e velocemente le app e i documenti maggiormente utilizzati.

Windows 11 migliora l’interazione con le finestre aperte sul desktop mantenendo “memoria” dei processi in esecuzione. In questo modo, ad esempio, nel momento in cui stacchiamo il nostro notebook dalla postazione di lavoro a casa, il sistema li ricarica automaticamente nel momento in cui ci ricolleghiamo dall’ufficio, in modo da riprendere il flusso lavorativo.

In Windows 11 c’è un grande focus sul mondo della collaborazione grazie all’integrazione con Microsoft Teams. Sarà più semplice silenziare o riattivare il microfono, condividere il desktop o anche una singola applicazione durante una riunione direttamente dalla barra delle applicazioni del desktop.

Per concludere, non è un caso che lo sviluppo del nuovo sistema operativo Microsoft abbia tenuto conto della sempre maggiore diffusione dell’hybrid work, un nuovo modo di lavorare che include virtuosamente sia la distanza sia la presenza. La nuova sfida per tutte le organizzazioni è quella di creare un posto di lavoro fisico e digitale in grado di fare fronte alle nuove esigenze delle persone e del business.

Microsoft ha cercato di rispondere alle richieste, alle opportunità e alle questioni ancora aperte che si sono presentate pensando ad un prodotto in grado di aiutare le organizzazioni a essere resilienti grazie a una tecnologia che ne è parte essenziale .

L’obiettivo o ambizione che dir si voglia è quello di rendere Windows 11 una piattaforma ideale per completare la trasformazione digitale delle aziende e di consentire alle persone di lavorare da casa o in ufficio senza soluzione di continuità.

Infine, Windows 11 sarà facile da gestire per i team IT e fornirà una sicurezza avanzata per affrontare il panorama sempre più complesso della cyber security.

Una sicurezza che sia, realmente, un servizio, secondo la strategia della casa di Redmond; Security as a Service.


Carlo Mauceli

Link utili

Introducing Windows 11 | Windows Experience Blog

Windows 11: The operating system for hybrid work and learning | Microsoft 365 Blog

https://haveibeenpwned.com/

National Institute of Standards and Technology

Dipartimento della Sicurezza Interna

Rapporto Security Signals

TPM

Microsoft Azure Attestation

chip Pluton

lunedì 26 luglio 2021

Stabilire la priorità nel rimedio della superficie vulnerabile

La prioritizzazione è l’arte di rispondere alle domande ‘da dove comincio?’ e ‘con cosa proseguo?

In questo articolo analizziamo come raffrontare teoria e pratica per risolvere nel modo più efficace una problematica di sicurezza che affligge aziende di ogni dimensione, ordine e grado: il rimedio della superficie vulnerabile.

Questo problema si presenta normalmente con l'evoluzione della maturità nella gestione del ciclo di vita delle vulnerabilità presenti nel proprio panorama IT. Quando un'azienda decide di strutturare un programma per stimare, analizzare e comprendere la propria superficie vulnerabile, il punto di partenza è utilizzare sistemi più o meno commerciali per sondare i propri sistemi interni ed esterni, infrastrutturali ed applicativi, al fine di capirne il grado di resilienza rispetto alle vulnerabilità note.

Questo processo di solito parte con scansioni a periodicità variabile, che generano report sulle vulnerabilità identificate. Lungi da essere un punto di arrivo, questo inizio normalmente evidenzia una quantità di problematiche enorme, il cui potenziale rimedio è assolutamente fuori portata rispetto alle capacità dell'azienda.

Da qui l'esigenza di gestione del ciclo di vita di tale superficie vulnerabile, esaminando diversi elementi con il fine di capire come utilizzare al meglio le capacità di mitigazione minimizzando il rischio residuo.
Fino a utilizzare contesti espansi, come ad esempio informazioni di compromissibilità o più in generale di Intelligence della minaccia cyber. Ecco definita l'evoluzione da Vulnerability Assessment, a Vulnerability Management ed infine a Threat & Vulnerability Management.

Vediamo quindi in teoria alcuni metodi per determinare la corretta priorità di azione.

Figura 1 - Gestione del Rischio secondo IEC/ISO 31010:2019


Prima di addentrarci nella teoria è bene fare una premessa: calcolare la priorità fa parte di un piano più grande che è quello della
valutazione del rischio. A tal proposito si rimanda alla norma ISO 31010:2019 [1] e ai documenti del NIST SP-800-37 [2] e SP-800-30 [3], in particolare agli elementi che compongono la valutazione: identificazione, analisi e ponderazione del rischio come illustrato di seguito.

Un punto chiave per avere un piano di rimedio efficace è quello di assegnare opportunamente le priorità. Introduciamo quindi l’approccio sull’analisi del rischio e il metodo utilizzato. Il NIST divide l’approccio in: orientato alle minacce, orientato agli impatti e orientato alle vulnerabilità.

Per brevità viene preso come modello di rischio quello orientato alla minaccia, in cui prioritizzare il rischio significa valutare le minacce e – dopo aver calcolato una matrice di rischio – ricavare un valore numerico: più alto è il valore, più alto sarà il rischio.

Per quanto riguarda i metodi di valutazione del rischio si dividono principalmente in metodi qualitativi, quantitativi e semi-quantitativi.

La letteratura ci insegna che nel metodo qualitativo per poter prioritizzare il rischio ho bisogno di calcolare per ogni minaccia un punteggio, il cosiddetto Risk Score, dato da Probabilità x Impatto secondo la formula R = P x I.

La probabilità indica la possibilità che un evento inatteso e in grado di causare danno – in questo caso la minaccia – si verifichi; l’impatto indica il danno potenzialmente provocato dalla minaccia.

Utilizzando una matrice di rischio 5x5 si assegna a ogni minaccia una probabilità e un impatto, con differenti livelli qualitativi come mostrato nella figura sottostante.

Figura 2 - Matrice di Rischio 5x5


Il vantaggio di tale approccio è nel classificare i rischi, concentrandosi su quelli a più alta priorità.
Per contro, l’analisi qualitativa è soggettiva e si basa sulla percezione che gli stakeholder hanno nei confronti delle minacce analizzate, unite alle loro esperienze e competenze.

Il metodo quantitativo ha un approccio più strutturato.
Potendo contare su tempo e risorse da dedicare, abbiamo la possibilità di avere dati statistici – ad es. quante volte un evento si è verificato in un anno – oltre ad un’analisi di impatto accurata – ad es. il servizio “X” se inattivo fa perdere 1000 euro/ora.
Diventa quindi possibile “tradurre” il rischio in numeri significativi a supporto di decisioni strategiche.

Il metodo quantitativo utilizza i parametri EF (Exposure Factor), SLE (Single Loss Expectancy), ARO (Annualized Rate of Occurrence) e ALE (Annualized Loss Expectancy).
La perdita prevista per il singolo asset è uguale a:

SLE = valore asset x EF

SLE misura quanto una minaccia influisce su un determinato asset, come un server, un framework o anche un servizio composto di software e hardware.

ARO misura invece quale è la frequenza di tale minaccia durante l’arco temporale di un anno. L’aspettativa di perdita economica per un dato asset nel corso dell’anno è data da:

ALE = SLE x ARO

Facendo un esempio numerico, supponiamo che un’impresa abbia un servizio e-commerce che fattura 1 milione di euro all’anno; si prende quindi in considerazione il servizio di vendita composto dall’insieme di hardware, software e persone che lavorano.
Ipotizziamo che un attacco DDoS, che blocchi le vendite e l'attività delle persone operative, abbia un fattore di esposizione del 5%.
Infine supponiamo che tale tipo di attacco sia stato portato a segno 6 volte negli ultimi 3 anni cioè abbia una ARO=6/3 => ARO=2.

SLE = 1.000.000€ x 0.05 = 50.000€

ALE = 50.000€ x 2 = 100.000€

Seguendo il modello di rischio descritto, l'azienda perde in media 100.000€ per anno.

Volendo semplificare l’esempio, un piano di remediation potrebbe essere quello di installare un next generation Firewall con IDS/IPS per bloccare questi attacchi DDoS per un costo pari a 50.000€ + 5.000€/anno di manutenzione.

Attraverso il metodo semi-quantitativo, le valutazioni vengono fatte secondo metodi qualitativi per poter prioritizzare subito il rischio e attivare un piano d’azione, per poi rielaborare i dati e trasformare i termini qualitativi in numeri per fornire una stima economica più accurata.

Dopo questa prima parte teorica, analizzando la pratica nella gestione di una superficie vulnerabile in ambienti IT complessi vediamo che il livello di difficoltà cresce: per mettere in priorità le azioni di rimedio è necessario agire combinando alcuni dei metodi illustrati, in modo da raggiungere una percezione del rischio e della minaccia più descrittiva che analitica, mappata sulla propria superficie digitale.

Come visto il rischio è complesso da calcolare, specialmente il rischio cyber.
Molto diverso da altri tipi di rischio (finanziario, imprenditoriale), si presenta multi-sfaccettato e basato su evidenze certe e percezioni di intelligence. Diventa importante non fidarsi soltanto di una rappresentazione numerica di severità, criticità, in favore di una percezione descrittiva del rischio.

Devo in sostanza poter descrivere cosa mi preoccupa, per contare su un sistema che converta queste mie percezioni in fattori di prioritizzazione.
Esempi di descrizione:

  • Perimetro, cioè la capacità di abbinare il sistema su cui viene scoperta la vulnerabilità al perimetro di cui fa parte, per aumentare (o diminuire) la criticità oggettiva della risorsa.

  • Età delle vulnerabilità, considerando sia quando sono apparse in pubblico che quando sono state rilevate nel proprio ambiente digitale.

  • Impatto sul business: ad esempio considerare tutte le vulnerabilità che se compromesse possono agevolare un attacco DDoS, oppure un’infezione che si propaga tramite worm, oppure ancora un focolaio di ransomware.

  • Probabilità che la minaccia si tramuti in attacco: ad esempio se una vulnerabilità è già armata con un exploit, magari già parte di Exploit Kit facili da reperire (anche a noleggio) per un attaccante motivato; è infatti certamente più alta la probabilità che questa venga sfruttata per un attacco, rispetto ad una vulnerabilità sconosciuta o per cui la tecnica di compromissione deve ancora essere sviluppata.

  • Superficie di attacco propria. Sun Tzu diceva “conosci te stesso e conosci il tuo nemico e sopravviverai a cento battaglie”. Conoscere il proprio panorama digitale aiuta a mettere in priorità il rimedio in base al contesto di rete su cui si deve operare.
    Ad esempio, concentrandosi sul rimedio di vulnerabilità presenti solo su kernel o servizi in esecuzione. Oppure primariamente su sistemi esposti ad internet.

Un esempio di come una piattaforma tecnologica supporti questa descrizione percettiva del rischio è riportato qui di seguito, prendendo spunto dalla soluzione Qualys:

Figura 3: prioritizzazione

Una volta descritta la percezione della minaccia è importante avere un ulteriore contesto, in merito alle patch: sia quelle disponibili che quelle già installate sui sistemi, per effettuare su queste ultime un controllo di obsolescenza.

È anche importante analizzare le vulnerabilità derivanti da errate configurazioni – soprattutto in ambienti tipo cloud dove la responsabilità è condivisa: se istanzio uno storage su AWS o Azure e mi dimentico di restringere la lista degli IP che vi può accedere rischio un data leakage gravissimo; se dimentico di attivare l’autenticazione multifattore su un’istanza, le conseguenze potrebbero essere anche peggiori.

Spesso l’attività di rimedio (patching, modifica configurazione, implementazione controlli compensativi) viene eseguita da team aziendali che non sono gli stessi a cui è demandato il rilevamento e la classificazione delle vulnerabilità... quindi serve un collante interdipartimentale che agevoli integrazione e automazione per evitare conflitti e inefficienze operative. Questo può tradursi nello sfruttamento di interfacce di programmazione applicative (API) che possono essere attivate per trasformare le informazioni di ogni singola piattaforma/applicazione in flussi informativi cifrati e sicuri, che diventino fattori abilitanti per i flussi operativi interdipartimentali.

Ultimo tema il tracciamento dello status quo, altrimenti chiamato osservabilità.
Questo si traduce nello studio di forme di aggregazione di dati grezzi in informazioni più semplici da comprendere; può avvenire con una rappresentazione dinamica – come le
dashboard – oppure statica – come report in PDF o altri formati – che aiutino a tenere traccia nel tempo dei progressi, delle anomalie rilevate e di inefficienze nel processo.

Ad esempio, aggregare le vulnerabilità rilevate negli ultimi 30 giorni, da 30 a 60, da 60 a 90.
Quindi per ogni categoria mappare l'esistenza di una patch per rimediare, evidenziando per quelle vulnerabilità la disponibilità di exploit.
Infine rendere questa informazione dinamica, costantemente aggiornata in modo da fornire a ogni parte interessata l'immagine dello status quo e dell'efficienza del processo di rimedio.

Rimediare una superficie vulnerabile anche molto ampia ed articolata non è certamente semplice; tuttavia l'organizzazione di un ciclo di vita monitorato e prioritizzato in modo olistico ed efficace permette di confinare il rischio residuo ad un livello accettabile, evitando una pericolosa trasformazione in superficie di attacco.


Andrea Piras e Marco Rottigni


Riferimenti:

[1] https://www.iso.org/standard/72140.html - IEC 31010:2019 Risk management — Risk assessment techniques

[2] https://csrc.nist.gov/publications/detail/sp/800-37/rev-2/final - Risk Management Framework for Information Systems and Organizations: A System Life Cycle Approach for Security and Privacy

[3] https://csrc.nist.gov/publications/detail/sp/800-30/rev-1/final - Guide for Conducting Risk Assessments

domenica 25 luglio 2021

Sindrome della Guerra del Golfo e Alzheimer: cos'hanno in comune?

Da militare ho sentito spesso parlare della sindrome della Guerra del Golfo.
Da civile mi sono spiacevolmente imbattuto in malattie degenerative del cervello come l'Alzheimer.
Non avevo però mai associato le due cose come problemi aventi una possibile causa comune.
La lettura di un interessante articolo uscito su "Le Scienze" del mese di luglio 2021, "Un cervello troppo permissivo", di Daniela Kaufer e Alon Friedman mi ha fatto riflettere sulla questione assieme all'influenza che ha, nel bene e nel male, il fenomeno sociale che va sotto il nome di "guerra".
Parlando della guerra è inutile negare che il pensiero dei più vada immediatamente alla crudeltà di immagini viste tante volte nei film o nei documentari, o vissute qualche volta in prima persona e che lasciano tracce indelebili nella memoria del singolo e della collettività (provate a parlarne coi nostri anziani che hanno vissuto la seconda guerra mondiale!).
E' altrettanto innegabile che la guerra (o a causa della guerra) la società sia sottoposta a stimoli particolarmente forti e che spesso le menti più brillanti, adeguatamente sostenute, abbiano superato ostacoli altrimenti insormontabili e dato alla società mezzi, tecniche e soluzioni del tutto nuove e mai pensate prima.
Per tornare al titolo di questo articolo, cos'hanno in comune la sindrome della Guerra del Golfo e una malattia come l'Alzheimer, gli autori raccontano che nel 1994 lavoravano ad un progetto comune: cercavano infatti di capire a cosa fosse dovuta la sindrome della guerra del Golfo.
Molti militari americani (ma non solo!) al termine della guerra soffrivano di "fatica cronica, dolori muscolari, problemi del sonno e deterioramento cognitivo". Per alcuni medici si trattava di un effetto secondario della "piridostigmina", un farmaco usato per proteggere i soldati dall'effetto di alcune armi chimiche.
La piridostigmina però, almeno teoricamente, non avrebbe dovuto essere in grado di superare le barriere naturali dei vasi sanguigni. Infatti il cervello è costruito in modo tale da limitare al massimo il passaggio di agenti patogeni e di medicinali grazie alla "barriera ematoencefalica" (BEE).
La domanda che i due autori si posero è: "cosa accade se la BEE si danneggia? E poi: lo stress può essere causa del danneggiamento della BEE?
Nell'articolo si raccontano con dettaglio gli esperimenti che da quella lontana notte del 1994 sono stati condotti su topi da laboratorio e che nel tempo hanno portato a capire come lo stress fosse con molta probabilità all'origine della sindrome del Golfo associato, forse, alla piridostigmina. Lo stress sembra infatti la causa dell'indebolimento della barriera ematoencefalica, indebolimento che si verifica nella maggior parte delle persone col fenomeno naturale dell'avanzare dell'età: ed eccoci giunti all'Alzheimer.
L'Alzheimer è infatti una malattia che si manifesta con l'età e comporta tutta una serie di problemi che oltre a colpire il singolo malato, sono sempre più rilevanti in una società come la nostra, sempre più "vecchia".
Negli anni i due scienziati hanno continuato a collaborare nella ricerca, orientatasi nella direzione delle malattie neurodegenerative e hanno dimostrato che l'invecchiamento e lo stress indeboliscono la BEE che non riesce più a trattenere una proteina del sangue, l'albumina, che una volta raggiunto il cervello innesca una serie di reazioni infiammatorie che agiscono indebolendo o distruggendo i circuiti neurali.
Negli anni si è giunti a capire che esistono dei metodi per impedire all'albumina di provocare reazioni infiammatorie e che, con l'impiego di un farmaco antitumorale chiamato IPW è possibile ridurre l'infiammazione dovuta alla presenza di albumina nel cervello e, in definitiva, ringiovanire il cervello stesso. Perlomeno, sui topi la cosa sembra funzionare.
Ed eccoci giunti alla fine dell'articolo.
Partendo dalla ricerca sulle origini di una "malattia di guerra", la sindrome del Golfo, si stà arrivando alla soluzione di un problema della nostra società, quello delle malattie neurodegenerative come l'Alzheimer, con la speranza di alleviare, seppure in parte, le sofferenze dovute al fenomeno sociale della guerra.

Alessandro Rugolo


https://www.ncbi.nlm.nil.gov/books/NBK222848/

https://www.fda.gov/news-events/press-announcements/fda-grants-accelerated-approval-alzheimers-drug

giovedì 22 luglio 2021

Un nuovo modo per certificare i software open-source. La sfida del progetto AssureMOSS

L’Europa dipende in larga parte da software open-source progettati principalmente all’estero. All’interno del Mercato unico digitale Europeo la maggior parte del software è assemblata online e più della metà proviene da (repositories di) software open-source realizzati oltre confine.

Alcune università, piccole, medie e grandi imprese, un gruppo di interesse specializzato e un consiglio consultivo con competenze chiave nell’ambito del software open-source, si sono riuniti in una partnership strategica per la creazione di nuovi metodi e approcci per accelerare lo sviluppo di software più efficienti e sicuri.

In questo articolo vedremo brevemente il tentativo del progetto AssureMOSS (Assurance and certification in secure Multi-party Open Software and Services - https://assuremoss.eu) di affrontare la sfida dei software open-source “progettati ovunque, ma garantiti in Europa. Il progetto, di durata triennale (Ottobre 2020 - Settembre 2023), è finanziato dalla Commissione Europea nell'ambito del programma HORIZON 2020 [1].

La corsa ai software assemblati e il paradigma MOSS.

Nell'ultimo decennio, tra le molteplici innovazioni, due principali caratteristiche in particolare hanno modificato e condizionato radicalmente i progetti di sviluppo software [2]. Innanzitutto, l'accorciamento del ciclo di feedback tra i team di sviluppo e la risposta ai prodotti che questi team rilasciano (ad esempio, A/B testing, DevOps) ha portato a uno sviluppo frenetico con modifiche dei prodotti più rapide. In secondo luogo, gli sviluppatori si sono sempre più concentrati sulla differenziazione delle funzionalità nei loro prodotti finali, affidandosi però, in misura crescente, a terze parti per tutto il resto (implementazione cloud, uso estensivo di framework aperti come OpenSSL [3] or Node.js [4], oppure uso di prodotti più ristretti ma con protocolli, procedure, librerie ed API [5] comunque open-source). Tutto ciò ha portato a uno sviluppo che vede coinvolte diverse parti (detto multi-stakeholder, dall’Inglese: multi-parte interessata): la risultante è un assemblaggio operato da diversi attori, ognuno con le proprie pratiche/politiche di sicurezza e privacy.

Possiamo qui già introdurre un acronimo che utilizzeremo nel resto dell’articolo. Il software moderno è basato su un paradigma chiamato Multi-party Open Software and Services (MOSS). Pertanto, una software company che sviluppa un prodotto rappresenta solo uno dei protagonisti coinvolti nel processo di garanzia della sicurezza software su quello stesso prodotto.

Queste parti coinvolte includono le comunità di sviluppo dei Sistemi Operativi, ad esempio, nella creazione di aggiornamenti di sicurezza, o le società che forniscono nuovi servizi di sicurezza o aggiornamenti alle interfacce esistenti. Il paradigma MOSS si applica certamente al caso delle imprese più grandi, mentre le aziende più piccole, come le PMI e le start-up, potrebbero avere una supply chain più corta che si basa principalmente su software gratuito e open source (FOSS - Free and Open Source Software).

Quest’ultimo è la spina dorsale dell'industria del software: quasi l'80% dei prodotti commerciali oggi contiene almeno un componente FOSS al punto che il Parlamento Europeo ne ha riconosciuto formalmente il ruolo chiave. È interessante notare anche la tendenza progressiva a ridurre la porzione di codice prodotto internamente dalle società di sviluppo software. Alla fine degli anni '90, oltre il 95% dello stack software era costituito da codice sviluppato in proprio. Solo i Database e i Sistemi Operativi provenivano da fornitori in modalità closed-source con licenza. Osservando il trend attuale si può notare come al 2019 invece, la porzione di codice prodotto internamente sia diminuita drasticamente fino a rappresentare solo il 5% della torta: browser, framework UI, gestori di pacchetti, server applicativi, piattaforme di microservizi, container, sistemi operativi containerizzati, sono tutti generalmente componenti software di terze parti (per lo più open-source) che le software companies utilizzano quotidianamente [6-7-8].



Certificazione e ricertificazione del software.

Questa evoluzione del processo di sviluppo software in cicli rapidi e frammentati implicherebbe altrettanti processi/cicli di certificazione e garanzia della sicurezza software a causa delle numerose modifiche che hanno conseguenze sulla sicurezza e sulla privacy (una nuova vulnerabilità potrebbe per esempio essere introdotta dall’utilizzo di una nuova libreria in grado di accedere a dati personali ed eventualmente trasmetterli). Pertanto il nuovo paradigma per la garanzia della sicurezza dovrebbe essere "leggero e continuo" rispetto al precedente paradigma “rigido e fisso”. Non si dovrebbe dunque parlare di certificazione ma piuttosto di certificazione, ricertificazione e valutazione del rischio.

Il fatto che lo sviluppo del software sia, in effetti, un'attività multi-stakeholder (dove alcuni stakeholder sono nascosti in sub-sub-sub dipendenze su librerie di terze parti) significa che le tecniche di garanzia dovrebbero funzionare in un ecosistema frammentato con più fonti di artefatti (ad es. dalla comunità open-source), diverse tecnologie e linguaggi e diversi domini decisionali. Di conseguenza, un nuovo paradigma per la garanzia della sicurezza implica un approccio "intelligente e flessibile", ovvero in grado di apprendere, adattarsi e migliorare nel tempo con la disponibilità di nuovi dati e feedback aggiuntivi.

A meno che non vengano create tecniche di garanzia della sicurezza innovative, leggere e intelligenti, in grado di integrarsi con più parti interessate e con sviluppatori dal ritmo serrato, la sicurezza continuerà a essere penalizzata [9] dalla corsa alla produttività dei team di sviluppo, sollecitati a distribuire nuove funzionalità su base giornaliera.

Lo sviluppo veloce e multi-stakeholder pone anche una sfida alla certificazione del software sicuro. Gli schemi di certificazione di sicurezza esistenti, inclusi quelli per progetti open-source, ad esempio Core Infrastructure Initiative (CII) Badge Program [10], si concentrano sulla certificazione che i progetti software seguano determinate best practice di sicurezza. In sostanza, questi schemi si concentrano sul processo di sviluppo del software. Tuttavia, nei progetti software moderni, il processo di sviluppo sta diventando più fluido e continuamente adattato dagli sviluppatori (invece di essere rigido e applicato a livello centrale). Di conseguenza, le strutture coinvolte in ogni fase potrebbero non disporre delle risorse necessarie per acquisire e mantenere tali certificazioni.

La sfida del progetto AssureMOSS.

Da quanto detto si sarà certamente percepita la necessità di un cambio di prospettiva da parte dell’Unione Europea, che ha provato a innescare un nuovo approccio finanziando il progetto AssureMOSS . Il progetto coinvolge un team composto da 4 Università (Delft, Gotheborg, Trento, Vienna), 3 PMI innovative (Pluribus One, FrontEndArt, Search-Lab,), 2 grandi imprese (SAP, Thales), l’organizzazione EU-VRi e un Advisory Board composto da figure strategiche del mondo dell’industria e dell’Open Source Software (OSS).


Nello specifico, AssureMOSS propone di attuare il passaggio dalla valutazione della sicurezza basata sui processi a quella basata sugli artefatti (Models, Source code, Container images, Services), supportando tutte le fasi del ciclo di vita continuo del software (progettazione, sviluppo, implementazione, valutazione e backup).

AssureMOSS adotta quindi un approccio completo alla garanzia della sicurezza e alla ricertificazione e ha l'ambizione di contribuire a ogni fase del processo di sviluppo del software, grazie ad un insieme coerente di tecniche automatizzate e leggere che consentano alle società di software di valutare, gestire e ricertificare i rischi per la sicurezza e la privacy associati allo sviluppo rapido e alla distribuzione continua di software aperto multiparte e servizi . In definitiva, il progetto mira a supportare la creazione di software MOSS più sicuro.

L'idea chiave è quella di supportare meccanismi per screening leggeri e scalabili, applicabili automaticamente all'intera popolazione di componenti software mediante:

uso di Machine Learning per l’identificazione intelligente di problemi di sicurezza tra gli artefatti;

analisi e verifica delle modifiche attraverso tracciamento continuo di effetti collaterali sulla privacy e sulla sicurezza;

costante analisi dei rischi e valutazione della sicurezza del software (con un occhio particolare agli impatti potenziali sul business causati da prodotti potenzialmente vulnerabili).

Il progetto genererà non solo una serie di metodi innovativi e strumenti open source, ma anche set di dati di benchmark con migliaia di vulnerabilità e codice che potranno essere utilizzati da altri ricercatori.

Gli strumenti AssureMOSS aiuteranno per esempio a risparmiare tempo nella ricerca di bug e vulnerabilità attraverso il vaglio semiautomatico di aggiunte, rimozioni e modifiche nei repository di codice (analisi dei commit [11]), accelerando anche in questo modo quindi il processo di valutazione e analisi del software.

Il cambio di prospettiva (artefatti vs processi) e il concetto di ricertificazione continua del software sviluppato, sono dunque alla base di una sfida estremamente ambiziosa: stabilire le linee guida che potranno essere utilizzate, ad esempio, dagli organismi di certificazione e standardizzazione per fondare uno schema di certificazione incentrato sugli artefatti per il software MOSS.

L'intuizione di base è ben riassunta da una pratica ben nota in ambito medico sanitario [12] e che qui adattiamo allo scopo: “Lo screening è definito come l'identificazione preventiva di una malattia in una popolazione apparentemente sana e asintomatica mediante test (di componenti software), esami o altre procedure che possano essere applicate rapidamente e facilmente alla popolazione target. […] Nel sostenere i programmi di screening, è importante evitare di imporre modelli derivati da ambienti ad alta efficienza con sistemi sanitari avanzati e schemi di verifica (della sicurezza) sofisticati e costosi, a società, processi, (sviluppatori e utenti) di paesi che non dispongono dell'infrastruttura e delle risorse necessarie per ottenere un'adeguata prevenzione sulla popolazione”.


Matteo Mauri


1 Il progetto AssureMOSS è regolato dal Grant Agreement n° 952647, ed è finanziato per un totale di 4.689.425 Euro, www.pluribus-one.it/it/ricerca/progetti/assuremoss

2 Jan Bosch, Speed, Data, and Ecosystems: Excelling in a Software-Driven World, CRC Press, 2016

3 OpenSSL è un'implementazione open source dei protocolli SSL e TLS, disponibile per la maggior parte dei sistemi operativi unix-like, inclusi GNU/Linux e macOS, e anche per Microsoft Windows, www.openssl.org

4 Node.js è un runtime system open source multipiattaforma orientato agli eventi per l'esecuzione di codice JavaScript, costruita sul motore JavaScript V8 di Google Chrome. Molti dei suoi moduli base sono scritti in JavaScript, e gli sviluppatori possono scrivere nuovi moduli in JavaScript, https://nodejs.org/it/

5 API, acronimo di Application Programming Interface, www.redhat.com/it/topics/api/what-are-application-programming-interfaces

6 Black Duck's Future of Open Source Survey, 2015

7 Holger Mack,Tom Schröer, Security Midlife Crisis, SAP Product Security Summit 2019

8 http://www.europarl.europa.eu/oeil/popups/ficheprocedure.do?lang=en&reference=2015/2147%28INI%29

9 According to CVE Details, 2017 smashed the record of vulnerabilities of the previous years (14714 in 2017 vs the previous record of 7946 in 2014). Unfortunately, 2018 has done even worse (16555 vulnerabilities). https://www.cvedetails.com/browse-by-date.php

10 https://www.coreinfrastructure.org

11 https://wiki.ubuntu-it.org/Programmazione/Git/Commit

12 https://www.who.int/cancer/prevention/diagnosis-screening/screening/en/

13 Eoin Woods, Democratizing Software Architecture, Keynote at ICSA 2019, online at https://speakerdeck.com/eoinwoods/democratising-software-architecture

14 www.pluribus-one.it/it/chi-siamo/blog/88-cybersecomics/111-bug