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