domenica 30 giugno 2024

Linguaggi di programmazione sicuri: che cosa significa?

Avete mai sentito dire che esistono linguaggi di programmazione sicuri e altri meno?

Io si, ma mi sono sempre chiesto cosa ciò possa significare in pratica. 

Credo sia arrivato il momento di scoprirlo assieme.

Per non perderci nei meandri dei linguaggi di programmazione cercherò di concentrarmi solo su una categoria, ovvero su quei linguaggi più adatti allo sviluppo di applicazioni web.

La sicurezza è un aspetto fondamentale nello sviluppo di applicazioni web ed ogni linguaggio ha le proprie caratteristiche e best practice da rispettare per garantire la sicurezza delle applicazioni. Naturalmente non tutti gli aspetti di sicurezza dipendono dal linguaggio di programmazione, è importante anche l'architettura generale del sistema e l'hardware su cui gira, per non parlare poi delle persone che in qualche modo interagiscono col processo di sviluppo. Noi cercheremo però di focalizzare il nostro interesse su quegli aspetti di sicurezza che hanno a che fare col linguaggio di programmazione impiegato o con i framework derivati. 

Ci tengo a dire, prima di iniziare, che esistono differenze tra linguaggi intrinsecamente sicuri e best practices per lo sviluppo sicuro. 

I primi, quelli intrinsecamente sicuri, possiedono delle funzionalità create apposta per impedire il verificarsi di problemi di sicurezza semplificando, in un certo qual modo, la vita al programmatore.

HTML e CSS

Tanto per cominciare, anche se non si tratta propriamente di linguaggi di programmazione, dobbiamo considerare HTML e CSS. Ricordiamo brevemente che HTML significa Hyper Text Markup Language e che serve per strutturare il contenuto delle pagine web mentre CSS significa Cascading Style Sheets e si utilizza per formattare i contenuti delle pagine web e per indicare al browser come questi devono essere visualizzati. In linea di massima HTML e CSS sono sempre in qualche modo impiegati nella realizzazione di applicazioni web ed è importante considerare l'interazione di questi, tra essi e con altri framework e linguaggi.

Per quanto riguarda la sicurezza in HTML e CSS possiamo affermare che trattandosi di linguaggi che si occupano della visualizzazione del contenuto dell'applicazione o pagina web è di fondamentale importanza validare e sanificare gli input utente per prevenire attacchi di tipo HTML Injection, Cross-Site Scripting e minacce simili. Per migliorare la sicurezza è consigliato l'uso di un layer aggiuntivo chiamato Content Security Policy (CSP). Attraverso le CSP lo sviluppatore può definire quali risorse possono essere caricate dal browser per ogni pagina, attenuando così i rischi di attacchi XSS, Clickjacking e simili.

Python

Uno dei linguaggi più utilizzati per produzione di applicazioni web è Python. In particolare due dei framework più noti che permettono lo sviluppo in Python sono Django e Flask.

Per quanto riguarda Django, ricordiamo che si tratta di un framework web open source per lo sviluppo di applicazioni web con il linguaggio Python. Questo framework è stato progettato per facilitare la creazione di applicazioni web complesse e ad alte prestazioni in modo rapido e semplice. Tra le sue caratteristiche, di rilievo per la sicurezza, vi è la presenza di un sistema di autenticazione e autorizzazione integrato, che supporta la gestione degli utenti, dei permessi e delle sessioni. Inoltre Django ha adottato una architettura chiamata Model-View-Template (MVT) allo scopo di separare logicamente i dati dalla logica di presentazione e dalla logica di controllo, questo è da considerare sicuramente come un vantaggio dal punto di vista della sicurezza. 

Questo tipo di architettura riduce i rischi che eventuale codice malevolo venga inserito o eseguito nel contesto errato, per esempio le SQL injection. Grazie all'autoescape automatico anche attacchi XSS possono essere evitati, infatti Django possiede una funzione che converte i caratteri speciali in ingresso, tramite template utente, in testo normale prevenendo così eventuali azioni dannose. I caratteri speciali vengono infatti così convertiti: 

  • < diventa &lt;
  • > diventa &gt;
  • & diventa &amp;
  • " diventa &quot.
  • Django migliora la protezione da attacchi Cross-Site Request Forgery utilizzando token che assicurano che le richieste provengano da fonti autorizzate.
    Flask a differenza di Django è un framework di sviluppo molto leggero che richiede, se necessaria,  l'implementazione manuale di molte funzionalità di sicurezza come la protezione CSRF. L'uso di estensioni di sicurezza come Flask-Security può aiutare a rafforzare la protezione dell'applicazione.

    Javascript

    JavaScript è un linguaggio di programmazione essenziale per lo sviluppo web, utilizzato per creare contenuti dinamici e interattivi nei siti web. Funziona sia lato client, per migliorare l'esperienza utente, che lato server, grazie a runtime come Node.js, permettendo la creazione di applicazioni web scalabili e performanti. Oltre al web, è impiegato nello sviluppo di app mobile, desktop e nell'Internet of Things (IoT).

    Per quanto riguarda la sicurezza occorre differenziare tra lato client e lato server.

    Per quanto attiene il lato client, il codice viene eseguito nel browser dell'utente, ed è vulnerabile a manipolazioni e attacchi XSS. È dunque di cruciale importanza evitare le injection di codice non sicuro e gestire correttamente i dati provenienti dall'utente. 

    Con riferimento alla gestione delle vulnerabilità in Javascript, come in altri linguaggi, occorre utilizzare librerie di terze parti verificate e aggiornate, e applicare politiche di sicurezza rigorose come la CSP.

    Lato server (Node.js): Evitare l'esecuzione di codice non attendibile e implementare pratiche sicure per la gestione delle dipendenze e la configurazione del server, adottando misure e metodologie atte a garantire che le librerie e i componenti software esterni utilizzati in un progetto non introducano vulnerabilità o problemi di sicurezza.

    PHP

    PHP (Hypertext Preprocessor) è un linguaggio di scripting lato server ampiamente utilizzato per lo sviluppo web. E' stato progettato per creare contenuti dinamici e interattivi su pagine web. La sua facilità d'uso, unita a una curva di apprendimento accessibile, ha reso PHP uno dei linguaggi più popolari per lo sviluppo di siti e applicazioni web. PHP è particolarmente adatto per la gestione di database, la generazione di pagine HTML dinamiche e l'integrazione con vari sistemi di gestione dei contenuti (CMS) come WordPress, Drupal e Joomla. PHP dispone di un'ampia gamma di librerie e framework, come Laravel e Symfony.

    PHP è stato molto criticato per problemi di sicurezza ma ultimamente sono state introdotte funzionalità di sicurezza migliorate. In ogni caso è importante sanificare l'input utente e utilizzare funzioni sicure per le query SQL, per esempio attraverso l'uso di librerie come PHP Data Object, per prevenire SQL injection. E' inoltre necessario mantenere il server PHP sempre aggiornato e configurare correttamente le impostazioni di sicurezza.

    Ruby

    Ruby è un linguaggio di programmazione dinamico, interpretato e orientato agli oggetti. Conosciuto per la sua sintassi semplice ed espressiva ed apprezzato per la sua capacità di favorire la produttività degli sviluppatori. Ampiamente utilizzato per lo sviluppo web grazie a framework come Ruby on Rails, che semplifica la creazione di applicazioni web robuste e scalabili. Oltre al web development, Ruby trova applicazione anche nello scripting, nell'automazione dei task e nello sviluppo di applicazioni desktop.  

    Dal punto di vista sicurezza, Ruby on Rails come framework per lo sviluppo di applicazioni web, fornisce diverse protezioni integrate per prevenire vulnerabilità comuni come XSS (Cross-Site Scripting), SQL injection e CSRF (Cross-Site Request Forgery). Per quanto riguarda XSS vale il concetto di "escaping" automatico dei dati di output, ciò significa che i dati inseriti dagli utenti sono automaticamente filtrati per evitare che codice JavaScript dannoso venga eseguito nel browser. Invece, per prevenire SQL Injection Rails utilizza un ORM (Object-Relational Mapping) chiamato ActiveRecord  che automatizza la generazione di query SQL parametrizzate. In questo modo previene efficacemente l'SQL injection, in quanto i parametri delle query vengono trattati separatamente dai comandi SQL, evitando l'inserimento di codice SQL dannoso direttamente nelle query. In merito ad attacchi di tipo CSRF (Cross-Site Request Forgery), Rails implementa l'uso di token CSRF generati automaticamente. Questi token vengono inclusi in ogni form e richiesta AJAX generata da Rails. Il framework verifica che il token CSRF inviato corrisponda a quello generato dal server, impedendo così che le richieste provenienti da siti esterni non autorizzati siano eseguite.

    Un ulteriore meccanismo di sicurezza, chiamato "Strong Parameters", è stato introdotto in Rails per controllare quali parametri sono accettabili. Questo aiuta a prevenire l'inserimento di dati non desiderati o malevoli attraverso le richieste HTTP.

    Java

    Java è un linguaggio di programmazione ad alto livello, orientato agli oggetti e fortemente tipizzato, creato negli anni '90. È uno dei linguaggi più popolari e diffusi nel mondo dello sviluppo software, grazie alla sua portabilità, alla robustezza del suo sistema di tipizzazione e alla sua ampia adozione sia in ambito enterprise sia nel settore delle applicazioni desktop e mobili. Java è molto conosciuto anche grazie alla sua virtual machine (JVM) che consente l'esecuzione del codice Java su diverse piattaforme senza la necessità di doverlo ricompilare. Oltre alla libreria standard, esiste un vasto ecosistema di framework e strumenti di sviluppo, come Spring Framework, che semplificano la creazione di applicazioni scalabili e robuste per il web e altri contesti. 

    Per quanto riguarda gli aspetti di sicurezza, Spring Security è un modulo potente per gestire autenticazione e autorizzazione, offrendo protezione contro CSRF e altre minacce.

    L'uso di Java e dei suoi framework richiede una gestione accurata della configurazione per prevenire l'accesso non autorizzato e la divulgazione di dati sensibili. Mantenere aggiornato l'ambiente di runtime (JVM) e il framework stesso è cruciale per evitare vulnerabilità note.

    C# (C Sharp)

    C# è un linguaggio di programmazione sviluppato da Microsoft nel 2000 come parte della piattaforma .NET. Si tratta di un linguaggio orientato agli oggetti, fortemente tipizzato e progettato per essere robusto, sicuro e adatto allo sviluppo di una vasta gamma di applicazioni tra cui siti e applicazioni Web. 

    C# combina elementi presi da C, C++ e Java, offrendo una sintassi moderna e intuitiva che facilita lo sviluppo di software complesso. È noto per la sua affidabilità, prestazioni elevate e per il supporto integrato per il garbage collection, che semplifica la gestione della memoria. C# è ampiamente utilizzato per lo sviluppo di applicazioni desktop Windows, applicazioni web tramite ASP.NET, applicazioni mobile con Xamarin e una varietà di altre soluzioni basate sulla piattaforma .NET, comprese le applicazioni cloud con Azure. Grazie alla sua interoperabilità con altre tecnologie Microsoft e alla sua continua evoluzione attraverso il framework .NET Core e .NET 5 e successivi, C# continua a essere una scelta popolare tra gli sviluppatori per la creazione di software robusto e scalabile. 

    In particolare, parlando di sicurezza nello sviluppo di applicazioni Web con ASP.NET occorre dire che offre strumenti avanzati per la protezione contro attacchi XSS, CSRF e SQL injection. Tra questi ASP.NET Identity per gestire in modo sicuro l'autenticazione e l'autorizzazione degli utenti.

    Per riassumere, se dovessi stilare una graduatoria tra i differenti sistemi analizzati (seppur molto sommariamente) attribuendo punteggi da 0 a 10, direi che:

    1. Java: 10. Ottima sicurezza intrinseca, gestione robusta della memoria e forte tipizzazione. Framework come Spring Security offrono protezioni avanzate contro molte vulnerabilità comuni.

    2. Ruby (Ruby on Rails): 9. Fornisce protezioni integrate contro XSS, SQL injection e CSRF grazie a meccanismi come ActiveRecord e i token CSRF generati automaticamente.

    3. C# (ASP.NET): 9. ASP.NET offre strumenti avanzati per la protezione contro attacchi XSS, CSRF e SQL injection, inclusi meccanismi come ASP.NET Identity e l'implementazione automatica di token CSRF.

    4. Python (Django): 8. Include una serie di misure di sicurezza come il sistema di autenticazione integrato, il supporto per template sicuri e la gestione delle sessioni.

    5. PHP: 7. Ha migliorato significativamente la sua sicurezza nel corso degli anni, ma richiede attenzione nella gestione delle query SQL e nella validazione degli input per prevenire SQL injection e altre vulnerabilità comuni.

    6. JavaScript: 6. E' vulnerabile agli attacchi XSS, soprattutto quando eseguito lato client. L'uso di librerie di terze parti e politiche di sicurezza come CSP sono fondamentali per mitigare questi rischi.

    7. Python (Flask): 6. E' un framework più leggero rispetto a Django e richiede una maggiore implementazione manuale di funzionalità di sicurezza come la protezione CSRF. L'uso di estensioni come Flask-Security può migliorare la sicurezza dell'applicazione.

    8. HTML e CSS: 5. Pur essendo essenziali per la strutturazione e la presentazione delle pagine web, HTML e CSS non offrono nativamente meccanismi di sicurezza avanzati. La sanitizzazione degli input è cruciale per prevenire attacchi XSS.

    E' ovvio che questa graduatoria si basa su considerazioni generali e non esclude la possibilità che, rispettando le best practices dei differenti linguaggi e framework e con le corrette configurazioni, tutti questi linguaggi possano essere utilizzati in modo sicuro per lo sviluppo di applicazioni web.

    Consigli Generali sulla Sicurezza

    Nei paragrafi precedenti abbiamo visto alcune caratteristiche di sicurezza dei linguaggi di programmazione più utilizzati in ambito sviluppo di applicazioni Web. Non dobbiamo però mai dimenticare, nonostante gli aiuti diretti dei linguaggi di programmazione, di applicare sempre e comunque le best practices per lo sviluppo sicuro, brevemente riassunte qui sotto:

    • Aggiornamenti: Mantenere sempre aggiornato il software, inclusi i linguaggi di programmazione, framework e librerie.
    • Input Sanitation: Validare e sanificare tutti i dati in ingresso per prevenire iniezioni di codice.
    • Autenticazione e Autorizzazione: Implementare meccanismi robusti per garantire che solo gli utenti autorizzati possano accedere a determinate funzionalità.
    • Crittografia: Utilizzare protocolli di crittografia per proteggere i dati in transito e a riposo.
    • Log e Monitoraggio: Tenere traccia delle attività sospette e monitorare l'integrità del sistema. 

    Per finire, programmare è anche una questione di collaborazione e buonsenso. 

    Scrivere e leggere il codice da soli non è bene. Occorre scrivere il codice, commentarlo, e farlo leggere e revisionare ad un altro programmatore. 

    Ricordiamo sempre il detto: quattro occhi vedono meglio di due!

    Alessandro Rugolo

     

    Per approfondire:
    - https://618media.com/en/blog/web-security-with-css-best-practices/

    - https://www.c-sharpcorner.com/article/c-sharp-security-best-practices-for-secure-coding/

    - https://docs.djangoproject.com/en/5.0/topics/security/

    - https://learn.microsoft.com/it-it/troubleshoot/developer/webapps/aspnet/development/security-overview

    - https://www.secureworld.io/industry-news/ultimate-html-css-security-checklist

    - https://www.cloudflare.com/it-it/learning/security/what-is-web-application-security/

    - https://www.linkedin.com/pulse/introduction-computer-programming-languages-chukwuebuka-ejie-vi6mf/ 

    - https://w3techs.com/technologies/history_overview/programming_language

    lunedì 24 giugno 2024

    Common Vulnerability Scoring System (CVSS) 4.0: capiamo assieme di che si tratta

    Come si valutano le vulnerabilità di sicurezza di un software?

    Come si può determinare la loro severità?

    Come si pùò stabilire l'ordine da utilizzare per procedere all'aggiornamento del codice in caso di vulnerabilità multiple?

    Queste sono solo alcune delle domande che ci si deve porre quando si gestisce la sicurezza di un sistema informatico.

    Una delle possibili soluzioni passa per una organizzazione chiamata FIRST (Forum of Incident Response and Security Teams) e per uno strumento conosciuto con l'acronimo di CVSS ovvero Common Vulnerability Scoring System, ormai giunto alla versione 4.0.

    La storia del CVSS si deve fare risalire al 2005 quando dopo circa due anni di studi e ricerche il National Infrastructure Advisory Council, organo consultivo del presidente degli Stati Uniti d'America, lanciò la versione 1.0. Seguirono la versione 2.0 del 2007 e la 3.0 del 2015. Il 21 ottobre 2023 è stata rilasciata la versione attuale, la 4.0.

    CVSS è uno standard tecnico molto utile ma, come tutte le cose non risolve ogni genere di problema, per esempio non fornisce la misura della probabilità di quanto una vulnerabilità possa essere sfruttata da un attaccante, questo perchè essa non è determinata esclusivamente da fattori tecnici.



    Come funziona CVSS 4.0.

    CVSS consiste nella assegnazione di un punteggio tra 0 e 10 ad ogni vulnerabilità identificata, il punteggio indica la gravità della vulnerabilità che é tanto maggiore quanto più alto è il punteggio.

    L'assegnazione del punteggio si effettua valutando 30 diversi fattori, che per comodità e omogeneità sono raggruppati in quattro categorie: Base, Threat, Environmental, Supplemental, che sono abbreviati in B,T,E ed S. Perciò quando si parla di CVSS-B si intende il valore CVSS calcolato utilizzando solo le metriche Base e ciò accade nella maggior parte dei casi.

    La categoria (o metrica) Base contiene a sua volta altre due metriche: Exploitability e Impact.

    Exploitability comprende quelle metriche che valutano i requisiti per sfruttare con successo la vulnerabilità.

    Impact invece comprende le metriche utili a misurare l'impatto della vulnerabilità in oggetto sulla triade CIA (Confidentiality, Integrity, Availability).

    Come detto, oltre alle metriche Base esistono altre tre categorie:

    - Threat, che comprende solamente informazioni sulla maturità degli exploit cioè su quanto é facile sfruttare una vulnerabilità;

    - Environmental, che comprende le stesse categorie della Base ma valutate secondo l'impatto sulla specifica azienda o organizzazione;

    - Supplemental, comprende sei categorie: Safety, Automatable, Recovery, Value Density, Vulnerability Response Effort, Provider Urgency.

    Naturalmente il CVSS 4.0 ha tante altre interessanti caratteristiche che i più curiosi potranno trovare in questo studio di Davide Ariu: About the Common Vulnerability Scoring System (a.k.a. CVSS) 4.0..

    Provare a calcolare il valore a partire da una vulnerabilità nota è relativamente semplice impiegando l'apposito calcolatore online fornito sempre da FIRST. Fare qualche prova permette di rendersi effettivamente conto del livello di dettaglio dato da CVSS e capire quanto il valore reale dipenda effettivamente dalla specificità dell'organizzazione presa in considerazione.

    Con quanto detto finora abbiamo risposto in parte solo alla prima delle domande iniziali: come si valutano le vulnerabilità di sicurezza di un software.

    Per provare a rispondere alle altre due domande occorrono delle considerazioni sulla infrastruttura informatica in esame, sull'ambiente e sui rischi connessi. Considerazioni quindi legate al singolo caso e non generalizzabili.



    Gestione delle vulnerabilità.

    Spesso nel corso dell'analisi delle vulnerabilità di un sistema informatico aziendale emergono decine o centinaia di vulnerabilità, alcune note, la maggior parte non note al team di sicurezza. Valutare il rischio legato ad ogni singola vulnerabilità e dare la giusta priorità per la loro risoluzione è il lavoro difficile. Occorre inoltre considerare che questo processo è spesso frammentario e viene eseguito manualmente in quanto non è sempre possibile avere tutti i dati disponibili e visibili con un solo strumento ne è sempliceriversarli in un unico contenitore per poterli analizzare. Un'ultima problematica, non la meno importante, riguarda la loro visualizzazione, che spesso comporta la creazione di grafici non di immediata lettura.Esistono inoltre diversi problemi di natura pratica legati alla individuazione delle vulnerabilità e alla loro mitigazione. In alcuni ambienti non è possibile lanciare programmi automatici per la scansione dei sistemi, comportando la ricerca manuale nei singoli dispositivi. Non sempre i sistemi aziendali sono aggiornati e non sempre supportano le modifiche necessarie per mitigare le vulnerabilità note. In alcuni casi si potrebbe addirittura compromettere la funzionalità (leggasi operatività) del sistema e ciò non è normalmente gradito. In definitiva occorre trovare il giusto compromesso tra sicurezza e operatività.



    Nuovo approccio alla gestione delle vulnerabilità basata sul rischio specifico

    A questo punto è importante notare che esistono anche metodi per la gestione della vulnerabilità sulla base del rischio specifico che corre una determinata azienda o organizzazione. Questo approccio tiene conto di informazioni relative alla vulnerabilità della parte in considerazione. L'analisi automatizzata e continua, ove possibile, può fornire un valido aiuto ai team di sicurezza.



    Ma quali sono le vulnerabilità e dove è possibile trovarle elencate?

    Per rispondere a queste nuove domande occorre prendere in considerazione un nuovo acronimo: CVE, che sta per "Common Vulnerabilities and Exposures". Infatti CVE non è altro che una lista che comprende le vulnerabilità conosciute ed è pubblicata da MITRE. che mantiene anche aggiornato l'elenco delle CVE Numbering Authorities (CNA), ovvero delle organizzazioni autorizzate ad assegnare un numero ad una vulnerabilità e a pubblicarlo secondo una ben definita procedura. Queste CNA sono generalmente produttori di software e ricercatori di sicurezza ma chiunque può richieder di assegnare un numero ad una nuova vulnerabilità. Ogni CVE è composta da un numero identificatore, una breve descrizione e i riferimenti ai report della vulnerabilita.

    L'elenco, nella versione attuale, comprende 233.151 diversi elementi.


    Alessandro Rugolo

     

    Per approfondire:

    - https://www.first.org/cvss/v4-0/

    -  https://davideariu.substack.com/p/about-the-common-vulnerability-scoring

    - https://cve.mitre.org/blog/September112018_A_Look_at_the_CVE_and_CVSS_Relationship.html

    - https://cve.mitre.org/cve/search_cve_list.html

    - https://www.first.org/cvss/calculator/4.0#

    - https://www.agendadigitale.eu/sicurezza/gestione-delle-vulnerabilita-e-delle-patch-in-azienda-come-evitare-rischi/

    - https://purplesec.us/learn/vulnerability-prioritization/

    sabato 22 giugno 2024

    Conoscete già ransomfeed?


    Ogni giorno nascono nuovi servizi online, spesso si tratta di servizi già esistenti che vengono riproposti in forma digitale sul web. Talvolta si tratta invece di servizi del tutto nuovi: Ransomfeed.it è uno di questi.

    Vediamo di capire di che si tratta e a chi può essere utile.

    Per non sbagliare faccio riferimento al sito e a quanto dichiarato, cercando di semplificare affinchè sia più chiaro a che ci si riferisce.

    Ransomfeed è un servizio di monitoraggio dei gruppi ransomware. L'attività di monitoraggio avviene  tramite l'estrazione di dati da più siti web per mezzo di programmi software che svolgono tale attività in automatico. 

    I dati raccolti sono successivamente organizzati e strutturati ed infine memorizzati in un feed RSS permanente, disponibile per la libera consultazione.

    Ricordo per i lettori più distratti che un feed RSS è una tecnologia che utilizza una segnalazione per aggiornare un utente dell’avvenuta pubblicazione di un contenuto online di suo interesse, pubblicato da parte del sito cui il feed fa riferimento. Naturalmente è necessario che l'utente inizialmente si iscriva ad un feed RSS e da quel momento saranno i contenuti di suo interesse a raggiungerlo senza più bisogno di andarli a cercare.

    Il servizio di monitoraggio di Ransomfeed è gratuito e si basa sulla raccolta continuativa di dati relativi agli attacchi ransomware a livello internazionale. 

    Con quanto detto spero di aver chiarito cosa sia Ransomfeed. 

    La domanda successiva è la seguente: a chi possono servire queste informazioni?

    Ransomfeed è una piattaforma in grado di rilevare in modo tempestivo gli attacchi ransomware di cui esiste pubblica conoscenza "mettendo i dati a disposizione di chiunque desideri comprendere l'entità e l'evoluzione degli attacchi informatici". 

    Comprendere l'entità degli attacchi informatici in una certa regione o nazione può aiutare le aziende di ogni dimensione e settore ad affrontare attacchi sempre più sofisticati. Sapere cosa ci accade intorno ci aiuta ad avere una visione chiara e in tempo reale dei rischi che corriamo e adottare le misure preventive necessarie e più efficaci per mitigare i rischi.

    Ora che abbiamo le basi, vi consiglio di dare uno sguardo al sito Ransomfeed.it per capire, in particolare, cosa stà accadendo in Italia.

    Piccole e medie imprese vengono colpite da attacchi ransomware, sono 386 dal 12 gennaio 2020 le vittime italiane di cui si sa qualcosa, su 11.663 in totale.

    Sul sito è possibile leggere i particolari relativi ad ogni attacco registrato, alle cyber gang, alle richieste di riscatto e farsi così un'idea dei rischi che si corrono.

    Ma perchè accade ciò?

    Possibile che siamo così vulnerabili?

    Effettivamente siamo molto vulnerabili. 

    La sicurezza informatica o cyber security è ancora poco conosciuta e ancor meno tenuta in considerazione. Il risultato è sotto gli occhi di  tutti coloro che vogliono guardare. 

    Mancanza di cultura e di consapevolezza fanno si che il nostro mondo digitale assomigli sempre più ad una giungla in cui le vittime siamo tutti noi.

    Forse è dunque giunto il momento di capire che per cambiare le cose occorre cambiare approccio, migliorando la formazione di tutti indistintamente, dal ragazzino che tiene in mano uno smartphone (senza capire cosa rischia) all'impiegato di banca che impiega dispositivi aziendali per questioni private o viceversa.

    Si spera sempre che migliorando la formazione aumenti la consapevolezza.

    Cos'altro possiamo fare? Chi ci può aiutare?

    Spesso si è in balia delle onde e non si vede la riva, eppure talvolta è possibile essere aiutati e senza troppa spesa. Ciò vale soprattutto per le piccole e medie imprese.

    Vi chiederete come, ed ecco la risposta: Cyber 4.0.

    Cyber 4.0 è il Centro di Competenza nazionale ad alta specializzazione per la cybersecurity, istituito e cofinanziato dal Ministero delle Imprese e del Made in Italy, avviato nell'ambito del piano Industria 4.0.  Il Centro Cyber 4.0 è soggetto attuatore del PNRR per conto del MIMIT.

    Si tratta di un’associazione di diritto privato, costituita con da un partenariato pubblico-privato in cui sono presenti oltre 40 attori di rilevanza nazionale, rappresentanti di università ed enti di ricerca, istituzioni pubbliche, grandi aziende, fondazioni e PMI altamente specializzate.

    il Centro offre servizi di advisory, formazione, assessment e test-before-invest in ambito cybersecurity, e finanzia progetti di ricerca e innovazione in ambito Cyber, Healthcare, Automotive e Aerospace.

    E' sufficiente rivolgersi ad uno dei soci del Centro di Competenza nazionale Cyber 4.0 per avere tutte le informazioni necessarie per pianificare per esempio un intervento formativo che a seconda del tipo di impresa potrebbe risultare completamente gratuito.

     

    Alessandro RUGOLO

     

    Per approfondire:

    - https://www.cyber40.it/ 

    - https://www.assolombarda.it/servizi/credito-finanza-e-incentivi/informazioni/regolamento-de-minimis-2024-2030-nuova-soglia-a-20ac-300.000

    sabato 15 giugno 2024

    On June 13th, OpenAI announced the addition of retired General Paul M. Nakasone to its Board of Directors.

    According to OpenAI’s executives, General Nakasone’s presence on the Board brings valuable cybersecurity expertise. He will join the Board’s Safety and Security Committee.

    Nakasone’s appointment reflects OpenAI’s commitment to security and protection, and underscores the growing importance of cybersecurity as AI technology continues to develop and impact society.

    Nakasone will also contribute to OpenAI’s efforts to better understand how AI can be used to strengthen cybersecurity.

    According to company executives, AI has the potential to provide significant benefits for many institutions that are frequently targeted by cyber attacks, such as hospitals, schools, and financial institutions.

    Artificial intelligence has the potential to have huge positive impacts on people’s lives, but it can only reach this potential if these innovations are securely built and deployed, said Bret Taylor, Chair of OpenAI’s Board of Directors.

    It is important to remember that retired U.S. Army General Paul M. Nakasone is a leading expert in the field of cybersecurity. Throughout his career as an Army officer, he was instrumental in the creation of U.S. Cyber Command (USCYBERCOM). He has led USCYBERCOM and the National Security Agency (NSA), tasked with protecting the United States' digital infrastructure and enhancing the country’s cyber defense capabilities. He has served in command and staff positions at all levels of the U.S. Army, with assignments in elite cyber units in the United States, South Korea, Iraq, and Afghanistan.

    Beyond General Nakasone’s undeniable professionalism, one might immediately think of a possible greater involvement of American institutions in OpenAI’s affairs. A figure of such high caliber is, in my opinion, exactly what is needed to engage with important public administration institutions on equal terms.

    We will see what the future holds.

    Alessandro Rugolo

    For further information:

    Il generale in pensione Paul M. Nakasone nominato membro del Consiglio di Amministrazione di OpenAI

    Il 13 giugno OpenAI ha annunciato l'ingresso nel CDA del generale in pensione Paul M. Nakasone.

    Secondo i vertici di OpenAI la presenza del generale Nakasone nel CDA apporta esperienza in cybersicurezza; il generale entrerà a far parte del Comitato per la Sicurezza e la Protezione del Consiglio.

    La nomina di Nakasone rifletterebbe l'impegno di OpenAI verso la sicurezza e la protezione, e sottolinea l'importanza crescente della cybersicurezza dato il crescente sviluppo della tecnologia dell'intelligenza artificiale e il suo impatto nella società.

    Il compito di Nakasone sarà anche quello di contribuire anche agli sforzi di OpenAI per comprendere meglio come l'IA possa essere utilizzata per rafforzare la cybersecurity.

    Secondo i vertici dell'azienda l'IA ha il potenziale per fornire benefici significativi per molte istituzioni frequentemente bersaglio di attacchi informatici come ospedali, scuole e istituti finanziari.

    L'intelligenza artificiale ha il potenziale per avere enormi impatti positivi sulla vita delle persone, ma può raggiungere questo potenziale solo se queste innovazioni vengono costruite e implementate in modo sicuro, ha dichiarato Bret Taylor, presidente del Consiglio di Amministrazione di OpenAI. 

    Ricordiamo che il generale dell'Esercito degli Stati Uniti in pensione Paul M. Nakasone è un esperto leader nel campo della cybersecurity. Nel corso della sua carriera come ufficiale dell'Esercito, è stato tra gli artefici della creazione del Comando Cibernetico degli Stati Uniti (U.S. Cyber Command). È stato il capo di USCYBERCOM e ha guidato la National Security Agency (NSA), con l'incarico di proteggere l'infrastruttura digitale degli Stati Uniti e di migliorare le capacità di difesa informatica del paese. Ha servito in posizioni di comando e di staff a tutti i livelli dell'Esercito degli Stati Uniti con assegnazioni a unità cibernetiche d'élite negli Stati Uniti, nella Repubblica di Corea, in Iraq e in Afghanistan.

    Al di là dell'indubbia professionalità del generale Nakasone, viene immediatamente da pensare ad possibile maggior coinvolgimento delle istituzioni americane negli affari della società OpenAI. Un personaggio di così alto livello è a mio parere ciò che serve per parlare alla pari con istituzioni importanti della pubblica amministrazione. 

    Vedremo cosa ci riserva il futuro

    Alessandro Rugolo

    Per approfondire:

    - https://openai.com/index/openai-appoints-retired-us-army-general/

    domenica 9 giugno 2024

    Lockbit3: conosciamo meglio la cybergang


    Quando è nata Lockbit3?

    LockBit3è il nome attribuito al gruppo di cyber criminali considerato più pericoloso nel panorama mondiale in merito agli attacchi ransomware. LockBit3 è anche il nome della attuale versione della piattaforma di ransomware-as-a-service (RaaS).

    La sua nascita si può far risalire al 2019, quando comparve sulla scena il ransomware chiamato inizialmete "ABCD" poi Lockbit. Nel giro di soli quattro anni LockBit è diventata la piattaforma di RaaS più utilizzata al mondo.  

    Come funziona il ransomware as a service?

    Ricordiamo, solo per i lettori più distratti, che un attacco ransomware nella forma più semplice consiste nell'accedere ai dati di un computer o sistema e nella loro cifratura. I dati risultano in questo modo inutilizzabili e il cyber criminale può chiedere un riscatto, generalmente da pagare in bitcoin, per liberare (ovvero decifrare) i dati sequestrati.

    Il RaaS è un modello di business basato sul modello Software-as-a-Service (SaaS), consiste nella vendita o affitto di licenze del ransomware a terzi, chiamati affiliati. In questo modo chi vuole compiere attacchi ransomware nei confronti di specifici target non necessita di eccessive competenze tecniche. Ciò ha portato, negli ultimi anni, ad una grande diffusione di attacchi di tipo ransomware.

    Esistono varianti di questo tipo di attacco, per esempio la cosiddetta "double extortion" in cui ai dati cifrati si aggiunge la minaccia di renderli pubblici e la "triple extortion" che consiste nell'esercitare diverse forme di pressione per ottenere il pagamento del riscatto. La triple extortion infatti oltre a prevedere la cifratura dei dati e la richiesta del riscatto, prevede la minaccia di pubblicazione dei dati più sensibili in caso di mancato pagamento e altre forme di attività collaterali contro la vittima, come per esempio il DDoS verso i suoi servizi. Ultimamente esistono ulteriori forme di attacco, in cui si estende la richiesta di riscatto a terze parti in qualche modo legate con la vittima.

    Per quanto riguarda il riscatto, questo viene generalmente spartito tra gli affiliati e il core team.

    LockBit3 è stata debellata?

    Nel 2022 a seguito di una richiesta dello stato francese, EUROPOL viene interessata per combattere la cybergang. Seguono una serie interminabile di riunioni di coordinamento tecnico, che portano, ad inizio 2024, all'annuncio del 20 febbraio di aver debellato la cybergang attraverso una operazione di polizia estesa sull'intero pianeta. L'operazione ha condotto al sequestro di 34 servers dislocati sul territorio di varie nazioni (Olanda, Germania, Finlandia, Francia, Svizzera, Australia, Stati Uniti e Regno Unito). Si è potuto procedere all'arresto di due membri della cybergang, uno in Polonia ed uno in Ucraina e al sequestro di 200 account di cryptocurrency. 

    Sembrava, per qualche giorno, che la più pericolosa cybergang fosse stata debellata. 

    Ma se oggi, a soli due mesi di distanza, si va a vedere cosa sta accadendo nel mondo del ransomware, ci si può facilmente rendere conto che le cose stanno diversamente.

    E' sufficiente dare uno sgurado alle richieste di riscatto per rendersi immediatamente conto che LockBit3 è tuttaltro che defunta. 

    Ransomfeed: LockBit3 è saldamente in testa alla classifica anche nel 2024

    Se utilizziamo un servizio tipo Ransomfeed ci accorgiamo che dall'inizio dell'anno ad oggi (25 maggio), dunque in cinque mesi, sono state registrate 409 richieste di riscatto da parte di LockBit3 a seguito di attacchi andati a buon fine, attestandosi anche quest'anno in testa alla classifica. Inoltre, dopo qualche giorno di calma (dal 20 al 24 febbraio) a seguito dell'operazione di EUROPOL a febbraio, la cybergang ha ripreso le sue operazioni con più  foga che mai. L'efficacia dell'operazione è dunque quanto meno discutibile.

    E in Italia?

    Anche l'Italia è tra le vittime di LockBit3. Sempre secondo Ransomfeed l'Italia ha registrato 11 attacchi nel 2024 ovvero circa il 3% del totale. Per nostra fortuna, in questo caso, non siamo gli Stati Uniti che registrano 167 attacchi andati a buon fine, ovvero il 41% degli attacchi.

    Purtroppo il nostro tessuto sociale è molto vulnerabile ai cyberattacchi e se è vero che LockBit3 conta per il 3%, è anche vero che non si tratta dell'unico gruppo che agisce in questo modo, per cui le vittime di ransomware, quasi sempre PMI, nel 2024 sono state ben 53.

    Vittime italiane di Lockbit3 nel 2024 - Ransomfeed.it

    Come proteggersi?

    Proteggersi dai ransomware è possibile ma richiede un mix di elementi che combinati assieme consentono di aumentare la sicurezza.

    La prima regola è quella del Backup sempre efficiente e separato dalla rete. Se si è previdenti in caso di attacco ransomware sarà infatti possibile ripristinare i dati a partire dal backup. Avere il backup sempre disponibile è efficace contro la cifratura ma è solo una parte della soluzione, questo perchè attualmente la maggior parte degli attacchi i dati sensibili vengono anche esfiltrati e la minaccia di pubblicazione fa parte della strategia di attacco.

    Mettere in piedi delle chiare policy di accesso e gestione dei dati sensibili. La conoscenza e gestione dei dati dell'organizzazione non può essere lasciata alla cura degli utenti. In particolare per quanto riguarda i dati sensibili.

    Proteggere i sistemi utilizzando dispositivi fisici e software di varia natura ma gestiti unitamente per tenere sempre sotto controllo le reti e i sistemi. I firewall, soprattutto quelli di nuova generazione come i Web Application Firewall, sono una misura importante e consentono la raccolta di grandi quantità di dati. 

    Il monitoraggio continuo deve essere sempre una priorità.

    I ransomware si impossessano dei dati e sistemi solo una volta che sono riusciti ad accedere al perimetro interno. Una delle tecniche più usate è ancora oggi il phishing dunque occorre istruire il proprio personale affinchè sia in grado di riconoscere tentativi di phishing nelle sue varie forme.

    Preparare un piano di risposta ad un eventuale attacco ransomware consente di gestire l'emergenza e di evitare di prendere delle decisioni avventate.

    Chi c'è dietro Lockbit 3.0?

    L'attribuzione, come sappiamo tutti, è molto complessa e stabilire un legame tra un gruppo cyber come Lockbit è più una questione politica che tecnica, fatto sta che gli Stati Uniti nelle loro dichiarazioni ufficiali affermano che la cyber gang è di base in Russia. Un cittadino russo, Dmitry Yuryevich Khoroshev, è ricercato in quanto sviluppatore e distributore del ransomware.


    Alessandro Rugolo


    Per approfondire: 

    - https://www.europol.europa.eu/media-press/newsroom/news/law-enforcement-disrupt-worlds-biggest-ransomware-operation 

    - https://www.trendmicro.com/vinfo/us/security/definition/ransomware-as-a-service-raas

    - https://www.swascan.com/it/lockbit-3-0-analisi-malware-dinamica/

    - https://www.paloaltonetworks.com/cyberpedia/what-is-multi-extortion-ransomware

    -https://www.akamai.com/blog/security/learning-from-the-lockbit-takedown

    -  Dmitry Yuryevich Khoroshev, a Russian national and a leader of the Russia-based LockBit group, for his role in developing and distributing LockBit ransomware


    venerdì 7 giugno 2024

    OWASP Cyber Journey 2024

    Quando si parla di cyber security si pensa sempre ai cattivi pirati informatici e a coloro che, dall'altra parte della barricata, li combattono. Eppure, tutto ha inizio molto prima.

    In particolare per gli aspetti software tutto ha inizio quando si progetta e si realizza un programma.

    La cattiva progettazione, la mancanza di conoscenze nel campo della programmazione di software sicuro e l'inefficienza nei test e nei controlli di qualità sono all'origine dei problemi che affrontiamo tutti i giorni nel cyberspace. Eppure esistono standard per la produzione di applicazioni sicure: Open Web Application Security Project, in breve OWASP.

    La fondazione OWASP è on-line dal 1 dicembre 2001 ed è riconosciuta come organizzazione non profit americana a partire dal 21 aprile del 2004. La fondazione e i collaboratori si attengono alla regola fondamentale di non affiliarsi ad alcuna industria tecnologica per mantenere intatta la propria imparzialità e credibilità.

    Ma perché OWASP è così importante?

    Owasp è importante perché è ormai uno standard mondiale per lo sviluppo di software sicuro ma non solo, è importante perché vi sono migliaia di esperti di sicurezza informatica che collaborano quotidianamente sui progetti di OWASP, è importante perché è una raccolta di best practices che sono rese disponibili gratuitamente, è importante perché tra i tanti progetti vi è anche la OWASP Academy che ha lo scopo di diffondere la conoscenza sullo sviluppo di software sicuro.

    OWASP è uno standard de facto, adottato da singoli sviluppatori ma anche da grandi produttori di software. In effetti trattandosi di uno standard, va da se che la sua adozione da parte di una organizzazione diventi parte integrante della struttura di cyber security della organizzazione stessa.
    Una organizzazione che produce software, come pure una organizzazione i cui processi di business sono fortemente dipendenti dal software impiegato (prodotto o meno da essa) deve porre attenzione anche ad aspetti di policy quale per esempio l'adozione di OWASP al suo interno.

    L'adozione di OWASP o di altro standard di sicurezza è dunque parte integrante della cyber security aziendale e in quanto tale merita attenzione da parte della dirigenza. È assolutamente inutile infatti effettuare investimenti nel settore sicurezza senza pensare anche alla policy di settore.

    Se quando si produce software non si bada allo standard di sicurezza impiegato in fase di produzione e test, si rischia di dover mettere in atto una serie di controlli molto più costosi del dovuto, se messi a paragone con i costi di uno sviluppo di software sicuro sin dall’inizio.

    Naturalmente l'adozione di uno standard di produzione di software sicuro non garantisce che non vi possano essere problemi ma quantomeno garantisce dai problemi già conosciuti.

    Uno dei prodotti più importanti di OWASP è la Top Ten, una lista dei primi 10 rischi legati alle web application, nella sua versione del 2021:

    A1 Broken-Access Control
    A2 Cryptographic Failures
    A3 Injection
    A4 Insecure Design
    A5 Security Misconfiguration
    A6 Vulnerable and Outdated Components
    A7 Identification and Authentication Failures
    A8 Software and Data Integrity Failures
    A9 Security Logging and Monitoring Failures
    A10 Server-Side Request Forgery

    OWASP è presente in Italia ed organizza con i suoi partner eventi in tutto il territorio, il prossimo si terrà il giorno giovedì 20 Giugno 2024 a Cagliari dalle ore 16.00, nella splendida cornice della sua spiaggia più frequentata, il Poetto.

    L’evento sarà sponsorizzato da Equixly, IMQ Minded Security e da Pluribus One.

    Vedi il programma.

    L’evento accoglierà professionisti del settore, software developers, software quality engineers, e studenti di informatica con un forte interesse nell’ambito della sicurezza.

    Per prenotazioni: https://clicqui.net/2Lst5

     

    Francesco RUGOLO 

    mercoledì 5 giugno 2024

    Cos'é la Cybersecurity? Una guida introduttiva

    Si sente parlare sempre più spesso di cybersecurity, ma in quanti sono in grado di dire di che si tratta realmente?

    Proviamo a capirlo assieme.

    Sembra una banalità ma dare una definizione è indispensabile quanto complesso.

    Se facciamo una veloce ricerca, magari chiedendo aiuto ad un motore di ricerca, troviamo tante definizioni di cybersecurity e non sempre chiarissime.

    Per evitare errori grossolani conviene sempre cercare delle fonti ufficiali o comunque autorevoli.

    Tra quelle ufficiali possiamo fare sicuramente affidamento su alcune istituzioni, tra queste:

    - ENISA (European Union Agency For Network And Information Security);

    - NIST (National Institute of Standards and Technology - USA Agency);

    - Normativa italiana: Decreto n. 82 del 82 del 14 giugno 2021, di istituzione dell'ACN (Agenzia per la cybersicurezza nazionale).

    Tra le istutuzioni più autorevoli in materia di cybersecurity io metto sempre le grandi società che si occupano di cybersecurity: CISCO, CrowdStrike, Kaspersky e così via...

    Veniamo dunque alle definizioni.

    Secondo il NIST (Special Publication 800-39) con il termine cybersecurity si intende: "The ability to protect or defend the use of cyberspace from cyber attacks".

    Per la normativa italiana con il termine cybersicurezza si intende: "insieme delle attività necessarie per proteggere dalle minacce informatiche reti, sistemi informativi, servizi informatici e comunicazioni elettroniche, assicurandone la disponibilità, la confidenzialità e l'integrità, e garantendone altresì la resilienza”.

    Secondo CISCO, con cybersecurity si intende: "la prassi di proteggere i sistemi, le reti e i programmi dagli attacchi digitali. Questi attacchi informatici sono solitamente finalizzati all'accesso, alla trasformazione o alla distruzione di informazioni sensibili, nonché all'estorsione di denaro agli utenti o all'interruzione dei normali processi aziendali.

    Secondo Kaspersky con cibersecurity si intende: "l'insieme delle azioni volte a difendere computer, server, dispositivi mobili, sistemi elettronici, reti e dati dagli attacchi dannosi. È anche conosciuta come sicurezza informatica o sicurezza delle informazioni elettroniche".

    Come preannunciato, tante definizioni quanti sono gli interlocutori consultati. E se espandiamo la ricerca ai dizionari ci accorgeremo che le cose non si semplificano affatto. Questa è la realtà, conviene prenderne atto e di volta in volta riferirsi all'una o all'altra definizione, a seconda del contesto o dello scopo da raggiungere. 

    Spero comunque che ora sia più chiaro cosa si intende per cybersecurity. Se non lo fosse ancora vi invito a dare uno sguardo al paper dell' ENISA in cui si fa l'analisi del termine secondo i principali standard... ma senza poter giungere ad una definizione comune.

    Questa semplice ricerca ci introduce in un mondo ricco di termini anch'essi non sempre chiari: "cyberspace, minacce informatiche, confidenzialità, resilienza...". Li vedremo nelle prossime puntate!

    Alessandro Rugolo

    - https://www.cisco.com/c/it_it/products/security/what-is-cybersecurity.html 

    - https://www.kaspersky.it/resource-center/definitions/what-is-cyber-security