domenica 28 aprile 2024

Adversarial SQLi attack. Solo il nome fa paura!

Ho già parlato in diverse occasioni di attacchi del tipo SQL Injection e questo non è che una evoluzione, ma prima di proseguire e per rinfrescarci la memoria potrebbe essere utile andare a rivedere questi articoli: SQL Injection: di che si tratta?, SQL Injection, sempre attuale nonostante l'età e Come ingannare le difese per fare un attacco SQL con JSON.

Dato che gli attacchi SQLi sono sempre in testa alle classifiche, allo scopo di migliorare le tecniche di difesa, i ricercatori di sicurezza hanno approfondito questo tipo di attacco concentrandosi in particolare su alcune tecniche di detection basate su due paradigmi:

- detection tramite signature;

- Machine Learning detection.

Mentre per le tecniche basate su signature è chiaro che un attacco viene individuato se la signature è presente nel database di firme malevole, per quanto riguarda la detection tramite algoritmi ML c'è molto da dire. 

Quest'ultima categoria infatti cerca di individuare gli attacchi SQLi grazie all'addestramento cui è stato sottoposto l'algoritmo di ML. 

Per cercare di evitare di essere individuati dagli algoritmi di Machine Learning detection gli attaccanti hanno inventato una nuova tecnica di attacco chiamata per l'appunto Adversarial SQLi attack.

Cerchiamo ora di capire che cosa sia un Adversarial SQLi Attack, come funziona un attacco di questo tipo e come lo si può contrastare.

Cominciamo come al solito dall'inizio, la definizione di Adversarial SQLi Attack.

Per Adversarial SQLi Attack si intende un attacco di tipo SQL injection costruito appositamente per non essere individuato da modelli di Machine Learning che si occupano di contrastare attacchi SQLi. 

In pratica si tratta di un tipo di attacco che sfrutta le vulnerabilità dell'addestramento del modello ML impiegato da strumenti come i Web Application Firewall (WAF) per individuare gli attacchi di tipo SQL Injection. 

Consiste nel modificare un payload malevolo (codice malevolo usato per l'attacco SQLi) affinchè il modello di ML utilizzato nei WAF non lo classifichi come tale ma come una richiesta legittima. Ma come è possibile aggirere gli algoritmi di Machine Learning?

Occorre sapere che la maggior parte dei WAF open source, ma spesso anche quelli proprietari, si basano su un set di regole chiamato Core Rule Set (CRS), sviluppato da Open Web Application Security Project (OWASP). OWASP ha anche sviluppato un WAF open source, ModSecurity, che è spesso integrato in altri sistemi. In pratica la maggior parte dei sistemi di detection di SQLi si basa sul CRS. Ma siamo sicuri che ciò sia un bene? 

La risposta sembra essere negativa. Secondo le risultanze di alcuni test le regole CRS portano in alcuni casi ad avere un elevato numero di falsi positivi, in pratica richieste legittime vengono scambiate per attacchi di tipo SQLi, provocando disservizio. Inoltre ModSecurity è altamente vulnerabile a attacchi di tipo Adversarial.

Ma come è possibile difendersi da questo tipo di attacco?

Per cercare di risolvere questi problemi sono stati seguiti diversi approcci tra cui quello conosciuto come AdvModSec, che consiste nell'addestrare il modello ML agli attacchi di tipo Adversarial, ovvero a riconoscere le varianti di un attacco SQLi. Il nuovo modello così addestrato sarà capace di riconoscere gli attacchi SQLi e voro varianti e a ridurre il numero di falsi positivi, avendo in definitiva un sistema di detection più efficace.

Alessandro RUGOLO

Per approfondire:

- https://arxiv.org/abs/2308.04964

- https://owasp.org/www-project-modsecurity/

- https://dl.acm.org/doi/10.1109/TIFS.2024.3350911

- https://davideariu.substack.com/p/the-rise-and-fall-of-modsecurity

- https://www.sciencedirect.com/science/article/abs/pii/S0065245815000649

Attacco XXE injection: cos'è e come prevenirlo

Immagine tratta da https://abu-talha.medium.com/xml-external-entity-xxe-attacks-understanding-and-mitigating-the-threat-e000e4ae385c


Quando si parla di XXE injection si fa riferimento ad una vulnerabilità web molto diffusa che permette ad un hacker di impossessarsi dei dati nei nostri server o di procedere con una cosiddetta “escalation” dell’attacco che potrebbe compromettere il server attaccato e altre infrastrutture ad esso collegate.

Prima di tutto vediamo cosa vuol dire XXEi ossia XML external entity injection. Per spiegare come funziona dobbiamo però sapere cos'è l’XML, acronimo di eXtensible Markup Language.

In breve, in informatica l’XML è un linguaggio usato per definire elementi e il loro significato all’interno di un testo. XML è estensibile ossia permette di definire dei tag personalizzati, tag che organizzano e definiscono ciò che si trova nel nostro documento.

All’interno del documento XML un oggetto può essere rappresentato attraverso una “entità” invece di utilizzare l’oggetto in sé.

Nel file DTD (document type definition) vi sono tutte le specifiche che definiscono le tipologie di dati che il nostro documento XML può contenere, i valori che gli possono essere assegnati ed altro ancora.

XML permette la creazione di entities o la possibilità di importarne di esterne, ed eccoci giunti alla definizione di external entities.

Le external entities sono delle entità non definite dal nostro DTD ma completamente esterne ad esso e vengono specificate attraverso un URL dal quale vengono caricate nell’applicazione.

Ora non è difficile capire i rischi che questa procedura potrebbe comportare verso i nostri sistemi.

Gli attacchi più comuni che sfruttano questa vulnerabilità puntano alla sottrazione di dati e password dai nostri database ma lo scenario più grave si presenta quando questa vulnerabilità viene utilizzata per portare un attacco di tipo Server-Side Request Forgery o in breve SSRF.

L’SSRF è un attacco nel quale una applicazione appartenente al server può venire utilizzata dall’hacker per avviare delle richieste verso qualunque indirizzo web e portare ad una compromissione inizialmente del server attaccato e in seguito di ogni infrastruttura ad esso collegata e potenzialmente vulnerabile.

L’XXEi ha come bersaglio principale le applicazioni che svolgono il parsing (ossia una analisi dei componenti) dell’XML che presentano una configurazione debole, applicazioni che accettano XML da fonti non fidate e applicazioni che non disabilitano l’utilizzo delle external entities.

Per scongiurare la maggior parte degli attacchi esistono tutta una serie di best practices tra le quali possiamo menzionare:

- la procedura di whitelisting a livello server, che ha lo scopo di bloccare ogni input che non rispetta i nostri standard di sicurezza;

- eseguire una validazione del dato XML;

- bloccare l’opzione dei parser XML di accettare entità esterne, ovvia ma spesso non utilizzata.

Con questi semplici accorgimenti è possibile prevenire una grande percentuale degli attacchi di tipo XXE.

Per trovare eventuali vulnerabilità di questo tipo possiamo in ogni caso utilizzare uno strumento molto utile e potente, chiamato Burp Suite, un software in grado di mappare le vulnerabilità di una applicazione web ed analizzarne le caratteristiche.

In ogni caso è sempre utile ricordarsi che la maggior parte degli attacchi è dovuta alla presenza di vulnerabilità nel software, riconducibili ad errori dei programmatori che non sempre sono adeguatamente preparati per lo sviluppo sicuro ecco perchè sempre più spesso si sente parlare di formazione per DevOps e DevSecOps, concetti strettamente legati allo sviluppo software e alla sicurezza.

Francesco RUGOLO

 

Sitografia:

https://owasp.org/www-community/vulnerabilities/XML_External_Entity_(XXE)_Processing

https://portswigger.net/burp/documentation

https://www.redhat.com/it/topics/devops

- https://www.pluribus-one.it/it/servizi/formazione/offerta-formativa-2

- https://owasp.org/www-project-devsecops-guideline

- https://abu-talha.medium.com/xml-external-entity-xxe-attacks-understanding-and-mitigating-the-threat-e000e4ae385c

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