Traduttore automatico - Read this site in another language

lunedì 15 aprile 2024

Cross-Site Request Forgery (CSRF), Explained with Real-World ExampleS

This is an official writeup for the TryHackMe room: Cross-Site Request Forgery. 

In the world of cybersecurity, there's a malicious technique that blends technical prowess with psychological manipulation: it's known as Cross-Site Request Forgery, or CSRF for short.

Let's delve into understanding how this attack operates. Essentially, CSRF involves tricking a user of a website or web service into executing unintended actions on the site where they're already authenticated.

Picture this scenario: a user, perhaps browsing their online banking portal, gets lured into clicking a seemingly innocuous link shared by an attacker. Unbeknownst to them, this click triggers a request to transfer funds from their account to the attacker's. The user, who was authenticated on the banking site, unwittingly becomes an accomplice to the cybercrime.

This type of attack preys on the implicit trust that a website places in actions performed by an authenticated user, utilizing session cookies for authentication without verifying the user's identity for each action. And while this might seem like a remote threat, the consequences can be dire, ranging from financial losses to reputational damage for both users and organizations.

To mitigate this risk, developers employ various techniques:

  • Implementing CSRF Tokens: These are unique session tokens appended to each HTTP request, enabling the server to authenticate the user for every action. Without possessing the token, attackers are thwarted from executing CSRF attacks.
  • Leveraging SameSite Attributes: By configuring cookies with the "Strict" attribute, browsers refrain from including them in requests originating from other sites, bolstering security.
  • Utilizing Nonces: A nonce, or number used once, is a random and unique value generated by the server for specific operations. Users include the received nonce with their requests, which the server verifies for authenticity. If the nonce is invalid or has been previously used, the server rejects the request, safeguarding against CSRF attacks.

While these measures provide a layer of defense, it's crucial for developers not to rely solely on one method. Employing multiple techniques can fortify applications against sophisticated attacks that may circumvent individual safeguards.

Real-world examples of CSRF attacks underscore the importance of understanding and safeguarding against this threat. From compromised banking accounts to unauthorized transactions, the implications are far-reaching and necessitate proactive security measures.

In conclusion, if you're intrigued by the intricacies of CSRF and wish to fortify your applications against such threats, resources like OWASP offer comprehensive guides on understanding, testing, and preventing CSRF attacks. By staying informed and implementing robust security protocols, we can collectively mitigate the risks posed by CSRF and safeguard the integrity of online systems.

Alessandro Rugolo
 
https://www.redhotcyber.com/post/cross-site-request-forgery-spiegato-per-tutti/
 

lunedì 8 aprile 2024

Biden istituisce la figura del Chief Artificial Intelligence Officer

Do you need a Chief AI Officer? 

Cosa è successo.

Lo scorso 28 marzo è stato emanato il memorandum M-24-10 il cui oggetto è: "Advancing Governance, Innovation, and Risk Management for Agency Use of Artificial Intelligence". 

Il Memorandum si concentra su tre macro obiettivi:

- Strengthening AI Governance;

- Advancing Responsible AI Innovation;

- Managing Risks from the Use of AI.

Mi soffermo un attimo sul primo obiettivo, tralasciando gli altri, che seppure altrettanto importanti non rappresentano una grossa novità.

Il rafforzamento della Governance dell'AI è basato sull'Executive Order del 30 ottobre 2023 sul "Safe, Secure, and Trustworthy Development and Use of Artificial Intelligence. Il Memorandum recentemente pubblicato riprende le disposizioni presidenziali e detta i tempi di attuazione e le regole da rispettare per la nomina del Chief Artificial Intelligence Officer delle Agenzie federali.

Il memorandum sentenzia che la nomina del CAIO dovrà avvenire entro i sessanta giorni, ovvero entro la fine del mese di maggio.

Il CAIO dovrà avere eseperienza, preparazione e autorità per sovrintendere alle attività dell'Agenzia in cui siano impiegate tecnologie dell'Intelligenza Artificiale.

Le sue principali responsabilità sono: 

- coordinare l'uso dell'AI nella propria agenzia;

- promuovere l'innovazione legata all'AI;

- gestire i rischi derivanti dall'uso dell'AI.

Ma perchè l'introduzione della figura del CAIO è importante? Cosa cambia dalla gestione attuale?

L'importanza di questa nuova figura professionale è direttamente legata alle capacità rivoluzionarie dell'Intelligenza Artificiale, in quanto "disruptive technology"!

L'introduzione di questa nuova figura all'interno delle Agenzie Federali avrà delle ripercussioni nel mondo del lavoro. Le Agenzie federali negli Stati Uniti sono diverse centinaia e la nomina di una figura a livello di Senior Executive o di Senior Leader porterà alla nascita di numerosi uffici che assorbiranno parte del personale dotato di conoscenze nel campo ad oggi impiegato dall'industria. I tempi dettati dal memorandum sono brevi e questo potrebbe creare problemi nell'individuazione del personale. 

Di contro, la creazione di strutture operative dedicate all'impiego dell'AI nelle Agenzie farà nascere nuovi casi d'uso e anche nuove esigenze, stimolando di conseguenza la ricerca applicativa.

Naturalmente il tutto dovrà essere sostenuto da una iniezione di fondi nel settore e questo in effetti sta accadendo. Se leggete bene il Memorandum, contrariamente a quanto accade normalmente da noi, le esigenze di trasformazione organizzativa e di personale non sono "a costo zero".

E in Italia?

In Italia le iniziative sull'Intelligenza Artificiale si moltiplicano ma non sembra che la nuova figura abbia ancora preso piede. 

E' difficile pensare che vi possa essere qualche cambiamento a breve in quanto gli investimenti in AI da parte dello Stato negli anni passati sono stati abbastanza modesti anche se nello scorso mese di marzo vi sono state delle dichiarazioni del sottogretario all’Innovazione Alessio Butti che ha delineato la Strategia Nazionale sull'AI e che dovrebbe essere finanziato con un miliardo di euro. Ma al momento sono solo propositi, vedremo quale sarà la realtà.

Ipotizzare l'introduzione di una figura importante come il CAIO nelle strutture organizzative statali è troppo lontano dalla realtà, e se mai sarà fatto probabilmente si darà un "doppio incarico" a chi già è oberato di lavoro, perdonate la sfiducia! 

In ogni caso come sempre, osserviamo che succede e proviamo a dire la nostra per migliorare le cose, sperando di  non arrivare, come spesso accade, troppo tardi.

Alessandro Rugolo

Per approfondire:

- https://www.whitehouse.gov/wp-content/uploads/2024/03/M-24-10-Advancing-Governance-Innovation-and-Risk-Management-for-Agency-Use-of-Artificial-Intelligence.pdf

- https://www.whitehouse.gov/briefing-room/presidential-actions/2023/10/30/executive-order-on-the-safe-secure-and-trustworthy-development-and-use-of-artificial-intelligence/

- https://www.whitehouse.gov/briefing-room/speeches-remarks/2024/03/28/press-call-by-vice-president-harris-on-artificial-intelligence/

- https://www.cbsnews.com/news/white-house-chief-ai-officers-federal-agencies-artificial-intelligence/

- https://federalnewsnetwork.com/artificial-intelligence/2024/04/intelligence-community-gets-a-chief-ai-officer/

- https://cio.economictimes.indiatimes.com/news/artificial-intelligence/is-it-too-early-to-have-a-chief-artificial-intelligence-officer-caio/108932199 

- https://www.agendadigitale.eu/industry-4-0/ia-in-azienda-quando-e-perche-assumere-un-chief-artificial-intelligence-officer/

- https://www.corrierecomunicazioni.it/digital-economy/ai-si-delinea-la-strategia-nazionale-golden-power-e-autorita-di-vigilanza/

lunedì 1 aprile 2024

Cosa sta accadendo nella community Linux: xz backdoor, attacco alla fiducia

XZ Utils 

Appena tre giorni fa, il 29 marzo 2024, un nuovo attacco è stato scoperto.

Un attacco che ha interessato un software open source che fa parte dei principali pacchetti di Linux, si tratta di XZ / liblzma library, un tool di compressione molto noto.

Il ricercatore e sviluppatore Andres Freund ha scoperto infatti che nelle ultime due versioni del github xz project (5.6.0 di febbraio 2024 e 5.6.1 di marzo) è stata introdotta una vulnerabilità valutata con il livello 10 di criticità che consente ad un hacker di collegarsi da remoto, in pratica una backdoor.

Tante sono le distribuzioni Linux impattate, tra queste vi è Kali Linux, Fedora 40, Gentoo e Debian Sid ed altre.

Tante le considerazioni da fare su questo tipo di attacco.

Per cominciare occorre dire che la backdoor è stata inserita da uno di coloro che dovrebbero garantire il mantenimento del software su github, in teoria dunque qualcuno di cui ci si dovrebbe poter fidare. Questo è un punto importante perchè mina la fiducia nei software open source, in teoria più sicuri perchè ispezionabili da chiunque lo voglia (e ne sia in grado), in pratica spesso gestiti con personale che presta la sua opera solo saltuariamente e non sempre di provata affidabilità.

La seconda considerazione riguarda proprio una delle distribuzioni colpite, Kali Linux. Per chi non lo sapesse Kali Linux è considerato il sistema operativo specializzato per la cyber security in quanto dotato di innumerevoli strumenti. Un colpo alla fiducia verso Kali Linux!

La terza considerazione riguarda il fatto che la libreria liblzma è utilizzata da numerosi altri tool, tra cui OpenSSH. OpenSSH è un altro software opensource che consente ad un utente di collegarsi ad un computer da remoto se provvisto delle corrette credenziali. La backdoor introdotta sembra agisca proprio sul processo di autenticazione, effettuando una verifica preventiva sulla chiave inserita dall'hacker e autorizzando la sua connessione in caso di risposta positiva. Ciò vuol dire avere accesso illimitato al sistema attaccato. Ancora una volta tutto ciò va a detrimento della fiducia che si dovrebbe avere  nei confronti dei software di sicurezza.

Credo che per ora ci sia poco altro da dire se non che l'incidente è attualmente sotto investigazione e può darsi che vi saranno novità interessanti a breve. 

Vediamo che succede.


Alessandro Rugolo

 

 

Per approfondire:

- https://www.openwall.com/lists/oss-security/2024/03/29/4

- https://jfrog.com/blog/xz-backdoor-attack-cve-2024-3094-all-you-need-to-know/

- https://thehackernews.com/2024/03/urgent-secret-backdoor-found-in-xz.html

- https://news.ycombinator.com/item?id=39880874

- https://www.suse.com/c/suse-addresses-supply-chain-attack-against-xz-compression-library/

- https://gist.github.com/thesamesam/223949d5a074ebc3dce9ee78baad9e27


mercoledì 27 marzo 2024

Cross-Site Request Forgery (CSRF), spiegato per tutti!

Tra le tecniche utilizzate per compiere attacchi cyber ve n'è una che combina aspetti tecnici e di social engineering: si tratta dell'attacco conosciuto come Cross-Site Request Forgery, da ora CSRF.

Cerchiamo di capire assieme come funziona questo attacco. 

L'attacco consiste nel convincere un utente di un sito o servizio web ad eseguire delle azioni non volute sul sito nel quale è al momento già autenticato. 

Si tratta in pratica di trarre in inganno l'utente. Se la vittima dell'attacco è un utente normale senza particolari privilegi sull'applicazione questo può essere indotto a compiere azioni indesiderate, ma se l'utente è un amministratore del sistema, e perciò dotato di privilegi particolari, le cose si complicano per l'intera applicazione.

Proviamo a fare un esempio.

In primo luogo l'hacker crea un sito simile a quello di un servizio web, magari realizzando una copia di un sito di una banca on line. Niente di più semplice, è sufficiente clonare un sito attraverso l'uso di strumenti automatici come per esempio HTTrack o SiteSucker e poi apportare le modifiche che occorrono per il proprio scopo. 

A questo punto l'hacker diffonde il link al sito malevolo cercando di invogliare i possibili utenti.

Un utente poco attento, precedentemente autenticatosi sul sito o servizio web legittimo, clicca sul link malevolo creato dall'hacker. In questo istante le credenziali dell'utente, salvate nei cookies del browser, vengono rubate ed utilizzate dall'hacker per fare una richiesta al sito web, richiesta che potrebbe essere per esempio un bonifico sul conto dell'hacker.

L'utente purtroppo non può rendersi conto di  cosa sta accadendo. Si accorgerà solo, quando verificherà il suo conto, di aver meno soldi di quanto previsto.

Questo tipo di attacco, come abbiamo visto, presuppone che l'utente sia già connesso al sito o servizio reale, il che limita le possibilità dell'hacker. 

L'attacco si basa sul fatto che un sito si fidi delle operazioni compiute da parte di un utente già autenticato, utilizzando i cookies di sessione per l'autenticazione, senza verificare di volta in volta che sia effettivamente l'utente a svolgere l'operazione.

Esistono diversi metodi per mitigare questa vulnerabilità. Vediamone alcuni.

- E' possibile aggiungere ad ogni richiesta HTTP un token unico di sessione, chiamato di CSRF Token, che il server utilizzerà per autenticare l'utente ad ogni richiesta. In questo modo l'hacker non conoscendo il token non può compiere l'attacco;

- E' possibile impostare un particolare attributo dei cookies, chiamato SameSite attribute. Questo attributo può assume due valori, "Strict" e "Lax". Con l'attributo "strict" il browser non includerà i cookie nelle richieste provenienti da altri siti.  

- Si può utilizzare il "nonce" (number used once), cioè un valore casuale e univoco, generato dal server per un'operazione specifica e utilizzato solo una volta. Quando l'utente effettua una richiesta include il "nonce" ricevuto, il server lo verifica per confermare l'autenticità della richiesta stessa, se il valore nonce è assente, non valido o già stato utilizzato in precedenza, il server rifiuterà la richiesta e potrebbe invalidare la sessione.

Naturalmente l'utente generico medio non può verificare di volta in volta l'applicazione di uno dei meccanismi di mitigazione, ne andarsi a leggere l'header del cookie, queste sono attività che devono essere svolte in modo automatico da appositi strumenti di sicurezza come per esempio i Web Application Firewalls che attraverso la costruzione di apposite regole in fase di configurazione si occupano di questo aspetto di sicurezza.

Ultima raccomandazione, se state progettando un software e volete che resista a attacchi CSRF non vi affidate ad un solo metodo per mitigare il rischio, usate almeno due tecniche diverse in quanto alcuni attacchi sono capaci di bypassare le comuni tecniche di mitigazione viste sopra.

Per concludere, se vi ho incuriosito, date un'occhiata al sito di OWASP. Vi potrete trovare nel dettaglio e estensivamente una chiara descrizione di come funziona l'attacco, di come testare un sito o servizio web per evitare questo tipo di attacco, delle modalità di revisione del codice e delle possibili misure di prevenzione.

Alessandro Rugolo

 

Per approfondire:

- https://learn.snyk.io/lesson/csrf-attack/

- https://owasp.org/www-community/attacks/csrf

- https://www.synopsys.com/glossary/what-is-csrf.html

- https://my.f5.com/manage/s/article/K80291425

- https://www.quora.com/What-is-a-CSRF-What-is-it-used-for-How-does-one-go-about-finding-and-exploiting-these-vulnerabilities-How-can-one-prevent-them-in-their-code

- https://portswigger.net/daily-swig/chromium-bug-allowed-samesite-cookie-bypass-on-android-devices


venerdì 22 marzo 2024

Quali competenze di programmazione occorrono per lavorare nella AI e cyber?


 

E' una domanda che non ha una risposta semplice.


In effetti unire i due mondi, AI e Cyber, complica notevolmente le cose.

Ma cerchiamo di dare comunque qualche indicazione per quei giovani che ancora sono in tempo per scegliere una professione emergente.

Iniziamo con cercare risposta ad alcune domande che ci guideranno lungo il percorso formativo. Ecco gli argomenti che, seppur brevemente, tratteremo in questo articolo:

Perchè la programmazione?

E' spesso indispensabile studiare uno o più linguaggi di programmazione, ciò è particolarmente vero se se si vuole lavorare nel campo dell'informatica o delle nuove tecnologie.

Ogni linguaggio di programmazione ha le sue peculiarità e le sue aree di forza. Imparare più linguaggi di programmazione ti rende più adattabile e in grado di affrontare una varietà di compiti e problemi.

Alcuni linguaggi sono più adatti per determinati compiti o settori. Ad esempio, Python è spesso utilizzato nell'analisi dei dati e nell'intelligenza artificiale, mentre JavaScript è comunemente usato nello sviluppo web. Imparare più linguaggi ti consente di lavorare con successo in diversi domini di applicazione.

Imparare più linguaggi ti permette di approfondire la comprensione di concetti quali le variabili, i cicli, le funzioni, l'orientamento agli oggetti, inoltre può essere una sfida stimolante e gratificante. Espandere il tuo repertorio linguistico nel campo della programmazione dà la possibilità di continuare a crescere e migliorare come programmatore. Se poi ci pensiamo un attimo, consideriamo i benefici dell'apprendimento di nuove lingue e paragoniamoli a quelli della programmazione. Si dice che imparare nuove lingue tenga il cervello attivo e favorisca il suo ringiovanimento. L'apprendimento di nuovi linguaggi di programmazione può avere benefici simili sulla salute mentale e cognitiva.

Infine, ma non meno importante, le opportunità di lavoro nel campo dell'informatica spesso richiedono la conoscenza di più linguaggi di programmazione. Essere competenti in più linguaggi può aumentare le possibilità di trovare lavoro e ti permette di scegliere tra un più ampio ventaglio di opportunità.



Quali linguaggi studiare?

Python: È uno dei linguaggi più popolari nel campo dell'IA grazie alla sua semplicità, flessibilità e alla vasta gamma di librerie specializzate come TensorFlow, PyTorch e scikit-learn. Python è un linguaggio di programmazione ad alto livello, interpretato e multi-paradigma. È noto per la sua sintassi chiara e leggibile, che lo rende molto adatto sia ai principianti che agli sviluppatori esperti. Creato da Guido van Rossum e rilasciato per la prima volta nel 1991, Python ha guadagnato una notevole popolarità nel corso degli anni grazie alla sua semplicità, versatilità e alla vasta gamma di librerie e framework disponibili.


R: È ampiamente utilizzato nell'analisi statistica e nell'apprendimento automatico, con una forte comunità di sviluppatori che supporta librerie come caret e e1071.


Java: È utilizzato per lo sviluppo di applicazioni enterprise e ha una presenza significativa nei sistemi di sicurezza informatica, specialmente per lo sviluppo di software robusti e sicuri.


C++: È ampiamente utilizzato nel campo della sicurezza informatica per lo sviluppo di software ad alte prestazioni e applicazioni che richiedono un controllo preciso sulla memoria e sulle risorse del sistema.


JavaScript: È cruciale per lo sviluppo di applicazioni web e mobile, e il suo utilizzo nell'IA è in crescita grazie alle librerie come TensorFlow.js per l'esecuzione di modelli di machine learning direttamente nel browser.


Scala: È un linguaggio funzionale che esegue sulla JVM (Java Virtual Machine) ed è utilizzato per lo sviluppo di sistemi di elaborazione distribuita e scalabili, che possono essere importanti nell'analisi dei dati e nell'IA.


Go: È apprezzato per le sue prestazioni, la semplicità di sviluppo e la concorrenza incorporata. Viene utilizzato in progetti di sicurezza informatica, come lo sviluppo di strumenti per il monitoraggio e l'analisi dei dati.


Lisp: È un linguaggio di programmazione funzionale storico che ha ancora una certa rilevanza nell'IA, specialmente in settori come l'elaborazione del linguaggio naturale e la ricerca simbolica.


SQL: Anche se non è un linguaggio di programmazione nel senso tradizionale, è fondamentale per l'estrazione e la manipolazione dei dati, che sono essenziali sia per l'IA che per la sicurezza informatica.


Swift: È il linguaggio di programmazione principale per lo sviluppo di app iOS e macOS, e il suo utilizzo nell'IA sta crescendo grazie alla disponibilità di librerie e framework come Core ML.

Naturalmente è difficile immaginare di studiare tutti questi linguaggi assieme, ma se avete già chiaro cosa volete fare, potete considerare anche delle alternative a Python.

Perchè Python?


Python è un linguaggio interpretato, cioè il codice sorgente viene eseguito direttamente da un interprete senza la necessità di essere compilato in un linguaggio a basso livello. Questo lo rende molto flessibile e portabile su diverse piattaforme. È un linguaggio estremamente ricco e potente che può essere utilizzato in una vasta gamma di applicazioni, dall'automazione di compiti semplici all'implementazione di complessi algoritmi di intelligenza artificiale.


Per un neofita, Python è spesso considerato il linguaggio più semplice da imparare e utilizzare, in primo luogo perché possiede una sintassi chiara e leggibile. L'indentazione significativa aiuta a mantenere il codice ben organizzato e facilmente comprensibile. Inoltre esiste un'ampia documentazione e risorse online per imparare Python, rendendo più facile per i principianti ottenere supporto e risolvere i propri problemi di programmazione.

Python ha una comunità di sviluppatori molto attiva e accogliente, pronta ad aiutare i principianti e condividere conoscenze ed esperienze.Python per le sue caratteristiche è spesso raccomandato come il primo linguaggio di programmazione per i principianti che vogliono imparare a programmare.

Come studiare Python?

Si inizia, come per tutte le cose nuove, con il comprendere i concetti fondamentali, come le variabili, i tipi di dati, gli operatori, le strutture di controllo (if, for, while...), le funzioni e le liste. Una volta familiarizzato con questi concetti sarà relativamente semplice fare il salto di qualità che conduce verso la comprensione e l'impiego degli oggetti e delle librerie.

La pratica è essenziale come e forse più dello studio. Scrivere codice regolarmente, provare a risolvere esercizi e progetti pratici presi dalla vita di tutti i giorni, magari anche dalla scuola, consente di applicare ciò si è imparato nella teoria.

Esistono molti tutorial, corsi e risorse online, disponibili gratuitamente, per imparare Python.Sfruttale!

Studia il codice scritto da altri programmatori e prova a capire cosa hanno fatto.Prova a modificare delle parti di codice e cerca di capire se è comprensibile e come migliorare la conprensibilità.


Unisciti a forum online, gruppi di studio o comunità di sviluppatori locali. Interagire con altri programmatori ti offre l'opportunità di condividere conoscenze, porre domande e ricevere feedback sui tuoi progetti.

La documentazione ufficiale di Python è una risorsa preziosa che fornisce informazioni dettagliate su tutte le funzionalità del linguaggio. Prenditi del tempo per leggerla e tieni a portata i link utili per consultarla quando necessario.

Soprattutto, occorre essere costanti e pazienti e non avere paura di fare errori. Sbagliando si impara! 


Alessandro Rugolo


venerdì 15 marzo 2024

Come ingannare le difese per fare un attacco SQL con JSON


Come abbiamo visto precedentemente, le SQLi sono ancora temibili nonostante l'età.

Se qualcuno si fosse perso le informazioni base su SQLi gli consiglio di dare uno sguardo al primo articolo: Attacco SQL injection: di che si tratta? 

Naturalmente l'industria della sicurezza ha sviluppato degli strumenti per combattere le SQLi, si tratta di applicativi capaci di filtrare le richieste web e determinare con buona approssimazione se si tratta di richieste lecite o di tentativi di attacco.

Naturalmente anche gli hacker non si sono lasciati scoraggiare ed hanno trovato tutta una serie di espedienti per "bypassare" le difese, tra questi è di moda l'attacco chiamato JSON - SQL bypass.

Vediamo di capire di che si tratta, ma prima due parole su JSON.

JSON è un formato per lo scambio di dati basato su un sottoinsieme del linguaggio di programmazione JavaScript, in effetti è l'acronimo di JavaScript Object Notation.

Nel tempo JSON è diventato il formato più utilizzato nello scambio di dati e i database hanno incluso in SQL il supporto a JSON. La stessa cosa non è accaduta a molti strumenti di sicurezza che conseguentemente non sono in grado di identificare tentativi di attacco SQLi realizzati con questa tecnica. 

Se consideriamo per esempio una applicazione web protetta da un WAF e proviamo a fare un attacco SQLi per cercare di esfiltrare dei dati cui noi non abbiamo l'accesso, i controlli del WAF in linea di massima riescono ad individuare la richiesta impropria e a bloccare il tentativo di attacco. Se però si tenta un attacco utilizzando una stringa nel formato JSON, il WAF viene ingannato non essendo in grado di capire che la stringa contiene un comando SQL mentre il database è capace di interpretare correttamente il comando in quanto supporta la sintassi JSON.

Il risultato è che i principali produttori di WAF (Palo Alto Networks, Amazon Web Services, Cloudflare, F5, and Imperva) nel 2022 sono dovuti correre ai ripari inserendo delle regole per garantire il controllo della sintassi JSON.

A scoprire questo nuovo tipo di attacco è stato il team di ricerca TEAM82, di CLAROTY. 

Ora, dato che si tratta di un attacco abbastanza recente, suggerisco a tutti coloro che per proteggere i propri servizi WEB utilizzano un WAF di far effettuare dei test specifici per verificare se sono protetti da JSON SQL Bypass.

Saranno in tanti a pensare che non c'è bisogno di allarmarsi in quanto si tratta di un attacco molto complesso da condurre: a questi ultimi consiglio di fare molta attenzione invece in quanto SQLMap permette di cercare automaticamente siti vulnerabili a JSON SQL Bypass attack. 

SQLMap, strumento opensource di facile utilizzo...

No, questa è un'altra storia!

Alessandro Rugolo.


Per approfondire:

- https://www.picussecurity.com/resource/blog/waf-bypass-using-json-based-sql-injection-attacks

- https://www.json.org/json-it.html

- https://claroty.com/team82/research/js-on-security-off-abusing-json-based-sql-to-bypass-waf



domenica 10 marzo 2024

SQL Injection: sempre attuale nonostante l'età

image

Qualche settimana fa ho pubblicato un articolo dal titolo: "Attacco SQL Injection: di che si tratta?",  pensando sinceramente di dire cose note a tutti e senza andare quindi troppo a fondo nella materia. 

In queste settimane mi sono dovuto ricredere!

Sono stati infatti in tanti a contattarmi chiedendo spiegazioni e increduli sulla possibilità di effettuare attacchi simili.

Certo direte: "Ma da quale pianeta arrivano!?!". Non sto a giudicare, anche perchè io stesso scopro ogni giorno cose, più o meno banali per alcuni, di cui io non avevo sentito parlare.

Le domande principali vertono sulla reale possibilità di questo attacco: "Mi fai un esempio?", mi domandano...

Ecco allora l'esigenza di scrivere qualcosa di più rispetto a quanto già detto nel mio precedente articolo, non tanto dal punto di vista tecnico ma ricordando qualche attacco.

Prendiamo per esempio il caso reso pubblico da Information Week nel 2009. Un gruppo hacker di probabile origine turca, m0sted, attaccò il sito web di una fabbrica di munizioni dell'esercito (McAlester Ammunition Plant in McAlester, Okla.) ed il sito web dello U.S. Army Corps of Engineers Transatlantic Center, in Winchester.  

Secondo quanto reso pubblico, gli hacker utilizzarono la tecnica di SQL Injection per sfruttare una vulnerabilità del database del server SQL di Microsoft per accedere ai siti web.

Una volta guadagnato l'accesso gli hacker hanno modificato alcune pagine inserendo dei messaggi contro gli Stati Uniti e Israele.

Vediamo un altro caso. Qualche anno dopo, nel 2011, la Sony Pictures ha subito un attacco simile. Circa 77 milioni di account della rete di PlayStation furono compromessi per un danno stimato in circa 170 milioni di dollari. Gli hacker riuscirono ad accedere al database degli utenti e ai dati personali, comprese le carte di credito. In quel caso la Sony accusò Anonymous del furto dei dati delle carte di credito che però affermò pubblicamente di non avere alcuna responsabilità in merito all'accaduto. 

Naturalmente trattandosi di SQLi i sistemi più a rischio sono quelli che impiegano grossi database. Cosa c'è di più grosso dei database delle società di comunicazione come i gestori della posta elettronica?

Ecco infatti che nel 2012 è la volta di Yahoo! Il gruppo hacker conosciuto come D33D è il probabile colpevole dell'attacco contro l'infrastruttura di Yahoo, nell'attacco furono compromessi circa 400 mila account.

Potrei continuare con esempi più recenti ma credo sia più utile ricordare a tutti che questo tipo di attacco continua ad essere uno dei più usati e sembra che programmatori e amministratori di data base non imparino molto dalla storia. 

A supporto di quanto dico potete dare uno sguardo al report di Trustwave del giugno 2023. Basato su una rete globale di honeypot (barattoli di miele, si intende falsi obiettivi per attirare gli hacker) il report analizza i tipi di attacchi contro database in alcuni paesi sensibili (Russia, Ucraina, Polonia, UK, Cina e Stati Uniti) cercando di mettere a fuoco metodi e tecniche usate. Lettura interessante per i più curiosi.

Grazie come sempre agli amici di Sicynt.

Alessandro Rugolo

Per approfondire:

- https://www.itnews.com.au/news/hackers-hit-us-army-websites-146603

- https://www.informationweek.com/it-sectors/anti-u-s-hackers-infiltrate-army-servers#close-modal

- https://www.theguardian.com/technology/2011/apr/26/playstation-network-hackers-data

- https://www.theguardian.com/technology/blog/2011/may/05/anonymous-accuses-sony-hack-playstation-network

- https://www.csmonitor.com/Technology/Horizons/2012/0712/Yahoo-hack-steals-400-000-passwords.-Is-yours-on-the-list

- https://siliconangle.com/2023/06/13/trustwave-report-finds-attacks-targeting-ms-sql-skyrocketing/

- https://www.trustwave.com/en-us/resources/blogs/spiderlabs-blog/honeypot-recon-global-database-threat-landscape/

- https://github.com/PenTestical/sqli

giovedì 7 marzo 2024

CLUSIT Security Summit 2024 è in arrivo!

Si terrà a Milano tra il 19 e il 21 marzo, l'evento principale del panorama della cybersecurity in Italia: il Security Summit.

Organizzato su tre giorni di conferenze, aggiornamenti e eventi di formazione, si aprirà con la presentazione della nuova edizione del Rapporto Clusit, a cura degli esperti dell’Associazione Italiana per la Sicurezza Informatica.

Con l'occasione si cercherà di far luce su quanto accaduto nell'ultimo anno cercando di delineare il quadro delle nuove minacce e le possibili strategie di difesa.

Il convegno si terrà presso Unahotels Expo Fiera Milano ed oltre egli approfondimenti darà modo a molti esperti del mondo cyber di incontrarsi e fare rete, fondamentale in un mondo digitale in cui la complessita è in continua crescita.

Il 19 marzo alle ore 9, è prevista la presentazione del Rapporto Clusit 2024, con introduzione a cura del presidente di Clusit, Gabriele Faggioli. Alcuni degli autori illustreranno lo studio con riferimenti alla situazione globale e italiana dei crimini informatici del 2023 mettendo in luce andamento e tipologia degli attacchi, i settori più colpiti, le tecniche più frequenti. 

Come è logico attendersi, in questa edizione sarà riservato grande spazio alle tecnologie dell'Intelligenza Artificiale, che così tanto stanno influendo nel ridisegnare la nostra società.

Per vedere in tempo reale il programma del Security Summit si può fare rifermento al sito securitysummit.it.

Alessandro Rugolo

Per approfondimenti:

- https://clusit.it/rapporto-clusit/

giovedì 29 febbraio 2024

Cloudflare hackerata: perchè e da chi ?

All'inizio del mese di febbraio è uscita la notizia dell'hackeraggio di Cloudflare.

Nei titoli delle riviste si leggeva che la società Cloudflare, gigante statunitense della sicurezza in rete, era stata hackerata da un probabile gruppo "state sponsored". 

L'attacco, secondo Security Week, è avvenuto attraverso l'impiego di credenziali sottratte nel corso di un precedente attacco (Okta hack). Okta, fornitore di servizi di sicurezza e identità on-line, era stata hackerata presumibilmente nel mese di settembre ed aveva denunciato la perdita di dati riguardanti i propri clienti. 

Sempre dall'articolo di Security Week di inizio febbraio si apprende che le informazioni di login rubate nel corso dell'attacco ad Okta non erano state sostituite, consentendo all'attaccante di accedere ai sistemi CLoudflare a partire dal 14 novembre.

Già da quanto sappiamo fino ad ora, dovremmo cominciare a porci qualche domanda:

- se una società di sicurezza riceve la notifica di una avvenuta perdita di dati di accesso che la riguarda, perchè non procede a disabilitarli immediatamente?

- perchè tirare in ballo uno "State Actor" per un tentativo di hackeraggio basato banalmente sull'impiego di credenziali rubate e ancora attive?

Due domande la cui risposta non è banale.

Proseguiamo. 

Sempre secondo Cloudflare l'attaccante ha avuto accesso a diversi sistemi interni: 

- un ambiente AWS; 

- i sistemi Jira e Confluence, di Atlassian, due sistemi di collaboration avanzata usati da Cloudflare. Jira in particolare è impiegato per gestire i bug dei sistemi.

Sempre secondo le dichiarazioni della società, l'attaccante si è potuto muovere all'interno dell'ambiente di lavoro e ha avuto accesso a 120 repositories di codice. Se li abbia scaricati o meno a me non è chiaro. Fatto sta che i documenti cui ha avuto accesso riguardavano le modalità di funzionamento dei backup, la configurazione e gestione della rete globale Cloudflare, l'accesso remoto e l'uso di Terraform (per farla semplice un sistema di gestione di infrastrutture informatiche) e di Kubernetes (per la gestione dei carichi di lavoro e servizi).

L'hacker è stato identificato solo il 23 novembre, dunque dopo circa 10 giorni, durante i quali è anche riuscito ad installare del software all'interno della rete di Cloudflare, un tool di red teaming che si chiama Sliver Adversary Emulation Framework ed è open source e liberamente scaricabile da GitHub.

Detto questo passiamo a cercare di rispondere alle due domande poste poco sopra:

- la risposta alla prima è abbastanza semplice, le società sono fatte di esseri umani che hanno i loro tempi, i loro problemi e che commettono errori. Chi doveva occuparsene probabilmente ha sottovalutato la cosa o magari, più semplicemente, era in vacanza o in altre faccende affaccendato! Il risultato lo conoscete.

- alla seconda domanda è più difficile rispondere. Da un punto di vista di esposizione mediatica è più facile giùstificare una mancanza se il colpevole è uno stato avversario, più difficile giustificare l'accaduto se si scoprisse che l'attaccante è un ragazzino di quindici anni alle prime armi. Inoltre la situazione internazionale degli Stati Unitie la posizione di Cloudflare come fornitore globale di servizi di sicurezza ne fa una vittima ideale per chiunque voglia rivendicare l'attacco. 

Purtroppo, a mio parere, è difficile asserire che l'attacco è stato "state sponsored" per diversi motivi. Un attacco "state sponsored" sarebbe stato in qualche modo rivendicato. Inoltre, dalla lettura dei vari articoli sembra che l'attaccante si sia preso una pausa il giorno del "Thanksgiving", il 23 novembre, probabilmente perchè impegnato nei festeggiamenti con la famiglia!

Allora diamo tempo al tempo. Magari più avanti salterà fuori qualcosa che ci permetterà di capire cosa sia successo.

PS, per i più curiosi ho inserito diversi link a piè pagina da cui si possono anche intuire i danni provocati da questo attacco in termini di attività di controllo, in pratica di soldi spesi!

Buona lettura.


Alessandro Rugolo


 Per approfondire:

- https://www.securityweek.com/cloudflare-hacked-by-suspected-state-sponsored-attacker/

-  https://www.reuters.com/technology/cybersecurity/okta-says-hackers-stole-data-all-customer-support-users-cyber-breach-2023-11-29/

- https://www.atlassian.com/software/confluence/jira-integration

- https://developers.cloudflare.com/terraform/ 

- https://bishopfox.com/tools/sliver

- https://blog.cloudflare.com/thanksgiving-2023-security-incident

martedì 20 febbraio 2024

Attacco SQL Injection: di che si tratta?

Quante volte avete sentito parlare di SQL Injection e vi siete ripromessi di capire di che si tratta, senza poi avere il tempo o la voglia di farlo?

Se avete tre minuti, provo a spiegarvelo io, in modo semplice.

Partiamo dal nome: SQLi, SQL Injection o, per esteso (in una delle possibili interpretazioni), "Structured Query Language Injection" è un tipo di attacco nei confronti del database di un'applicazione web che consiste nella esecuzione di una interrogazione malevola. Per completezza aggiungo che SQL è il linguaggio standard impiegato per interagire un database relazionale.

Ma cosa significa? Direte voi. 

Facciamo un esempio pratico. Pensate ad una pagina web di un sito di commercio online, in cui generalmente è possibile eseguire la ricerca e selezione di un prodotto da acquistare. Spesso nella casella di ricerca è possibile inserire delle stringhe di testo che includono dei simboli o dei caratteri speciali. Ebbene alcuni caratteri a noi possono sembrare innocui ma ciò non vale per il database che li interpreta in tutt'altro modo.

Cosa può accadere se si è vittima di un attacco SQLi?

Purtroppo può accadere di tutto.

Se i controlli sulle possibili interrogazioni del database sono sbagliati (o come capita ancora di vedere, inesistenti) è possibile che i dati contenuti al suo interno vengano modificati, cancellati, copiati o anche cifrati. Passare poi dal database ad altre aree del sistema non è difficile per cui un attaccante dotato di tempo e un minimo di risorse e conoscenze informatiche può fare veramente molti danni.

SQLi è uno degli attacchi più conosciuti e che ancora oggi funziona, principalmente a causa della cattiva programmazione delle pagine web in cui, come già accennato, non sono eseguiti i corretti controlli su ciò che un utente del sito può inserire come richiesta.

Questo tipo di attacco è noto pubblicamente almeno dal 1998, grazie all'articolo "NT Web Technology Vulnerabilities" uscito su Phrack a firma di Rain Forest Puppy, pseudonimo di Jeff Forristal, hacker ed esperto di sicurezza mondiale.

 

Alessandro Rugolo

Per approfondire:

- http://phrack.org/issues/54/8.html

- https://www.esecurityplanet.com/networks/how-was-sql-injection-discovered/

- https://owasp.org/www-community/attacks/SQL_Injection


sabato 17 febbraio 2024

Cosa si intende per Digital Forensics

Nel mondo attuale si sente sempre più spesso parlare di incidenti cyber, di hacker e di gruppi APT. 

In questo contesto alcuni termini sono ormai diventati di uso comune, altri restano meno evidenti e non sempre sono conosciuti. Tra questa seconda categoria ricade la Digital Forensics (un tempo conosciuta come computer forensics). Vediamo di capire di che si tratta.

Come sempre partiamo da qualche definizione, per esempio il NIST dice che per "Digital Forensics" si intende "the application of computer science and investigative procedures involving the examination of digital evidence - following proper search authority, chain of custody, validation with mathematics, use of validated tools, repeatability, reporting, and possibly expert testimony."

In pratica stiamo parlando dell'uso di procedure investigative e della scienza dei computer applicate all'investigazione di fatti criminosi per stabilire l'accaduto. 

In un'altro documento NIST troviamo un'altra definizione con alcune informazioni aggiuntive: "The process used to acquire, preserve, analyze, and report on evidence using scientific methods that are demonstrably reliable, accurate, and repeatable such that it may be used in judicial proceedings."

Da questa seconda definizione emerge chiaramente la necessità di impiegare, per la raccolta delle prove di un crimine informatico, metodi scientifici che siano affidabili, accurati e ripetibili, allo scopo di utilizzare le prove raccolte in procedimenti giudiziari.

Quanto sopra esposto risulta di notevole importanza per i team di sicurezza informatica che operano nell'abito della "defensive security" e che si occupano di analisi di evidenze di attacchi nel campo digitale come lo spionaggio cyber, il furto di identità, il furto di proprietà intellettuale, brevetti, crimini compiuti in rete come truffe e così via.

Le principali attività di cui si  occupa chi fa  Digital Forensics sono essenzialmente le seguenti:

- analisi dei log della rete incriminata: i log (registrazioni eventi) effettuati sulle reti interessate da un crimine o impiegate per compiere un crimine possono aiutare a capire come si è svolto un attacco cyber e ciò talvolta da un indizio anche su chi potrebbe essere l'autore;

-  analisi del file system: occorre creare una copia del file system senza provocare danni o modifiche dello stesso e procedere alla analisi dei programmi installati, dei file cancellati o sovrascritti e tentare di ripristinarli. La raccolta di queste informazioni può far emergere prove dei reati commessi e individuare il periodo temporale dell'accaduto.

- analisi dei log di sistema: occorre raccogliere ed analizzare i log di sistema, in cui sono raccolte informazioni su cosa è successo al sistema o ai sistemi informatici.

Alcune di queste attività si possono svolgere mentre i sistemi sono in funzione, mentre gli utenti svolgono le loro attività, altre devono essere svolte a sistemi spenti, in ogni caso i dati raccolti devono essere custoditi accuratamente e seguendo criteri ben definiti in quanto potrebbero avere rilevanza penale.

Raccontato così sembra semplice ma non lo è. 

Per fare Digitl Forensics esistono tanti software utili, sia gratuiti che a pagamento, che possono dare una mano nella raccolta delle evidenze, ne cito solo alcuni sicuro che la vostra curiosità vi porterà a scoprirne tanti altri: 

  • Wireshark: analizzatore di rete; 
  • Oxygen Forensic Suite: analizzatore per dispositivi mobili;
  • Autopsy Digital Forensic, suite completa di analis.

Ed ora a voi la palla, divertitevi ad utilizzare questi strumenti, sono gratuiti e liberamente scaricabili.

Come sempre, un grazie agli amici di SICYNT.

Alessandro Rugolo

Per approfondire:

- https://csrc.nist.gov/glossary/term/digital_forensics

- https://www.salvationdata.com/knowledge/digital-forensics-software/

- https://www.fastweb.it/fastweb-plus/digital-magazine/come-analizzare-il-flusso-dati-della-rete-con-wireshark/

-  https://www.wireshark.org/

- https://oxygenforensics.com/en/

- https://www.autopsy.com/

sabato 10 febbraio 2024

L'importanza dell'integrità dei dati

Cosa si intende per File Integrity Monitoring?

Quali strumenti si utilizzano oggigiorno?

Due domande che richiedono attenzione in ogni azienda o organizzazione in cui i dati e più in generale il proprio patrimonio informativo sono alla base del business o di processi interni vitali, in pratica tutte.

Un tempo la custodia dei propri documenti era devoluta ad una figura ormai scomparsa, l'archivista. Poi, la digitalizzazione (selvaggia) ha fatto si che questa figura venisse sostituita o più spesso eliminata, conferendo a tutti la possibilità di "conservare" i propri dati in file server più o meno regolamentati e strutturati creando l'illusione che in questo modo era possibile ricreare l'archivio che un tempo era cartaceo.

Eppure in tanti non si sono resi conto che l'archivista era anche un custode, il custode dell'integrità dei documenti e perciò dei dati dell'organizzazione. Egli si occupava di verificare che le cartelle fossero al loro posto, che la muffa non attaccasse i documenti più vecchi ed era in grado di ritrovare, come un bibliotecario, i documenti necessari ai piani alti per poter prendere le decisioni.

Ma ora chi fa queste cose al suo posto? 

Qualcuno potrebbe obiettare che non c'è più bisogno di tutto ciò e in parte gli do ragione, ma esistono delle attività equivalenti di cui nessuno si occupa.

I database e i file server, l'equivalente degli archivi cartacei, sono soggetti a variazioni, aggiornamenti, cancellazioni e aggiunte sia nei dati che nella struttura e soprattutto nel software, senza che ci si renda conto dei  danni che si possono creare, anche semplicemente per errore o distrazione. E tutto ciò senza considerare azioni malevole di concorrenti, hacker, dipendenti scontenti e chi più ne ha più ne metta.

Ecco come entra in gioco il File Integrity Monitoring (FIM). Ora possiamo vedere di che si tratta.

Con FIM ci si riferisce a dei meccanismi di controllo di sicurezza impiegati nelle organizzazioni IT. Un FIM si occupa di esaminare l'integrità dei file più sensibili e importanti, dei dati contenuti nei registri e nelle cartelle dei sistemi operativi (e non solo), verificando se sono stati alterati o compromessi, attraverso il tracciamento di tutte le attività condotte sugli stessi (log). Periodicamente si effettua una verifica dei dati conservati per vedere quali sono cambiati, come sono cambiati, chi li ha modificati e se la modifica era autorizzata. Per fare ciò, naturalmente, si utilizzano degli strumenti automatici. 

Se siete interessati a conoscere meglio qualcuno di questi FIM potete usare TrustRadius (https://solutions.trustradius.com/), che fornisce comparazioni sui prodotti tecnologici o un altro sito di vostra preferenza, ne esistono vari. Nella lista dei prodotti di File Monitoring presente sul sito TrustRadius il primo è AlienVault® Unified Security Management® (USM) di AT&T, seguito da Falcon Endpoint Protection di CrowdStrike e da SolarWinds Security Event Manager (che in effetti è un SIEM, qualcosa di più di un FIM).

In generale questi prodotti si basano su moderne tecniche crittografiche applicate alla gestione della sicurezza dei file e alla loro analisi.

L'ultima obiezione che qualcuno potrebbe fare è la seguente: ma a che serve tutto ciò? Questi FIM sono un'ulteriore complicazione.

Non posso negare che tale obiezione abbia senso ma ciò non toglie che i FIM siano utili. Immaginate cosa potrebbe accadere se i gruppi sanguigni degli ospiti di un ospedale venissero cancellati o, peggio ancora modificati arbitrariamente!

Come sempre grazie agli amici di SICYNT per gli stimoli e la continua discussione.

Alessandro Rugolo

Per approfondire:

- https://www.trustradius.com/file-integrity-monitoring

- https://www.solarwinds.com/resources/it-glossary/file-integrity

- https://www.crowdstrike.com/cybersecurity-101/file-integrity-monitoring/

- https://kinsta.com/blog/file-integrity-monitoring/

- https://www.tripwire.com/state-of-security/file-integrity-monitoring

- https://www.comparitech.com/net-admin/file-integrity-monitoring-tools/ 

- https://sicynt.org/

mercoledì 7 febbraio 2024

Cos'è un Web Application Firewall

Un Web Application Firewall, WAF per gli amici, è una applicazione di sicurezza che si occupa di proteggere applicazioni web da attacchi malevoli e da traffico internet indesiderato. Stiamo parlando di dispositivi che hanno già una loro storia.

All'inizio i firewall si occupavano di proteggere le risorse di rete, server, data base, file server, poi con lo sviluppo del web divenne sempre più importante protegere le proprie applicazioni web e ciò determinò, all'inizio del 2000, lo sviluppo dei web application firewall.  

Ma vediamo più in dettaglio cosa fa un WAF.

  1. analizza il traffico web in entrata e in uscita per individuare e bloccare eventuali attacchi informatici, come attacchi di injection, cross-site scripting (XSS), SQL injection e altri tipi di minacce;

  2. protegge e rileva la presenza di vulnerabilità delle applicazioni web, come errori di programmazione o configurazione che potrebbero essere sfruttati dagli hacker per compromettere la sicurezza dell'applicazione.

  3. gestisce e controlla gli accessi degli utenti autorizzati, garantendo che solo coloro che hanno i diritti appropriati possano accedere e interagire con l'applicazione web. In genere è capace di distinguere tra un utente umano ed uno strumento automatico e reagire in maniera adeguata alle azioni dell'avversario.

Naturalmente esistono WAF e WAF, ogni prodotto è leggermente diverso dall'altro e può svolgere funzioni aggiuntive. 

C'è da dire che il WAF è uno strumento che deve essere inserito in una più completa struttura di sicurezza in quanto è specializzato per le applicazioni web ma non è adatto per altro.

Oggi esistono WAF che fanno uso dell'Intelligenza Artificiale per svolgere meglio e soprattutto più velocemente le loro funzioni.

Se guardiamo il mercato mondiale, tra i più quotati vi sono le soluzioni di Akamai (USA), Radware (USA), Cloudflare (USA), F5 (USA), Barracuda networks (USA) e naturalmente i grandi marchi quali AWS, Microsoft e Google, diciamo pure che il mercato è praticamente in mano agli USA.

Ma se volessimo trovare un prodotto europeo o, meglio ancora, italiano?

Esistono vari prodotti: potremmo rivolgerci alla francese .OGO o magari alla italiana Pluribus One, si tratta di scelte personali.

Certo è che se si deve gestire la sicurezza di un'azienda che col web ci lavora giornalmente, è opportuno considerare l'aggiunta di un prodotto WAF nel suo portafoglio di sicurezza.

Alessandro Rugolo


Per approfondire:

- https://www.oracle.com/uk/security/cloud-security/what-is-waf/

- https://www.akamai.com/it/glossary/what-is-a-waf

- https://www.checkpoint.com/it/cyber-hub/cloud-security/what-is-web-application-firewall/

- https://www.ogosecurity.com/

- https://seerbox.it/