Business Logic Vulnerabilities: la minaccia “silenziosa” alla sicurezza delle web apps
di Marco Raimondi, Offensive Security Lead e Federico Ottone, Integration Development Associate Solution Engineer AlfaGroup
Le applicazioni web sono tra i principali protagonisti del mondo fortemente digitalizzato in cui viviamo: accessibili e fruibili tramite browser attraverso una connessione attiva (Intranet o Internet), le web apps sono ampiamente utilizzate sia da organizzazioni di diversi settori, per l’erogazione di una molteplicità di servizi quali il commercio elettronico o l’online banking, sia da singoli utenti privati, come ad esempio nel caso dei social media.
Dal punto di vista aziendale, queste applicazioni costituiscono una componente importante della Cyber Exposure di un’organizzazione: data la quantità spesso molto elevata di dati e informazioni personali, aziendali e sensibili che esse contengono, sono frequentemente scelte come vettore d’attacco principale per bersagliare l’organizzazione e i dati che essa tratta.
Secondo il Verizon Data Breach Investigations Report (DBIR), nel 2022 quasi la metà dei data breach è riconducibile a vulnerabilità sulle Web Applications: centinaia di GigaByte di utilizzati come metodo di riscatto ai danni delle organizzazioni, con conseguenze catastrofiche a livello economico e di immagine.
Una volta individuata una vulnerabilità in un’applicazione web, i cybercriminali la sfruttano per introdursi nel sistema sottostante, per poi muoversi verticalmente (all’interno del sistema compromesso) e lateralmente (nel perimetro di sicurezza) per ottenere privilegi massimi su gran parte dell’infrastruttura interna, arrivando a colpire i dati di dipendenti, utenti e clienti dell’azienda.
Attualmente, la proattività è uno degli approcci migliori per la mitigazione dei rischi legati agli attacchi web. Grazie a strumenti di Vulnerability Assessment è infatti possibile individuare, in modo automatico e periodico, le vulnerabilità legate ai sistemi e risolverle prima che possano essere sfruttate.
Esistono, però, delle vulnerabilità che anche i migliori strumenti di scansione automatici non sono in grado di rilevare: le Business Logic Vulnerabilities.
Cosa si intende per business logic o logica di business?
Possiamo definire la logica di business come tutte quelle regole che stabiliscono il comportamento previsto dell’applicazione in determinate situazioni, ad esempio i controlli di accesso, le autorizzazioni, i calcoli finanziari e le transazioni.
In fase di sviluppo può tuttavia capitare che alcuni comportamenti non vengano presi in considerazione, o che si effettuino errori nella progettazione e implementazione delle logiche. Questo, quindi, crea dei “punti ciechi”, delle situazioni non gestite che possono costituire delle vulnerabilità (anche di livello critico) con conseguente impatto sulla confidenzialità, integrità e disponibilità dei dati.
Alcuni esempi pratici di business logic vulnerabilities:
- Un’applicazione di e-commerce potrebbe presentare una vulnerabilità che permette di modificare i valori dei parametri di un articolo senza un controllo di integrità da parte del server, consentendo a un attaccante di applicare sconti sproporzionati ai prodotti o di effettuare acquisti senza pagare.
- Un’applicazione bancaria potrebbe avere una vulnerabilità che permette a un utente malintenzionato, modificando adeguatamente i token di sessione, di effettuare trasferimenti di denaro senza essere in possesso delle autorizzazioni necessarie.
- Un’applicazione di prenotazione online potrebbe consentire, per un mancato o errato controllo legato all’identità, di prenotare un numero sproporzionato di posti o servizi, sovraccaricando il sistema e danneggiando l’esperienza degli utenti legittimi.
- Un’applicazione di gestione delle risorse umane potrebbe presentare una vulnerabilità di tipo Insecure Direct Object Reference (IDOR), consentendo a un dipendente di visualizzare le buste paga degli altri colleghi e i dati relativi ai loro contratti.
Appare quindi evidente, come nei casi sopra esemplificati, che le vulnerabilità di business logic possono essere causa di danni finanziari, violazioni dei dati o interruzioni dei processi aziendali.
Il rilevamento e lo sfruttamento di tali vulnerabilità richiedono, oltre a competenze tecniche e grande esperienza in ambito di sicurezza informatica, un’approfondita conoscenza del funzionamento dell’applicativo stesso e, di conseguenza, l’investimento di una notevole quantità di tempo nella fase di raccolta di informazioni.
Simili requisiti limitano di molto l’efficacia, per questa tipologia di vulnerabilità, degli strumenti di Vulnerability Assessment automatici: tali strumenti sono progettati per inviare determinate request all’applicativo ed elaborarne le risposte, restituendo poi le vulnerabilità individuate attraverso il confronto con un Database di comportamenti e vulnerabilità note. Il limite, nel caso delle business logic vulnerabilities, risiede nel fatto che gli strumenti automatici di VA, non potendo avere contezza dei comportamenti e delle logiche di ogni singolo applicativo, spesso non sono in grado di riconoscere, dalla modifica di un parametro in input da parte dell’utente, la presenza di un comportamento umano “malevolo” che vada contro la logica con cui l’applicativo è stato progettato. Semplicemente potrebbe analizzare il comportamento, dal punto di vista tecnico, che l’applicativo avrebbe a riguardo (ad esempio errori dal server, output riflessi nella pagina etc..).
Come è possibile, quindi, fronteggiare tale minaccia?
Oltre a condurre un’analisi approfondita dei processi logici dell’applicazione durante tutto il ciclo di vita dello sviluppo Software (SDLC), fondamentale ma spesso ostacolata da tempistiche stringenti per la delivery di una funzionalità o di un applicativo, le Business Logic Vulnerabilities possono essere individuate e contrastate attraverso attività di Penetration Testing.
Queste hanno lo scopo di simulare un attacco reale contro l’applicazione al fine di individuare le vulnerabilità e valutare, oltre agli impatti, l’efficacia delle contromisure di sicurezza dell’organizzazione.
Alfa Group, in quanto primo Platinum Partner italiano di Tenable, partner di Synopsys e grazie ad un Red Team esperto e certificato, garantisce un supporto lungo di tutto il processo di esecuzione di Vulnerability Assessment integrandolo ad attività di penetration test, in grado di certificare la sicurezza dei sistemi testati e offrendo una panoramica puntuale e dettagliata sul livello di rischio.
Durante un penetration test, i nostri esperti di cyber security utilizzano approcci specifici per esplorare le logiche applicative e individuare le vulnerabilità associate, valutando poi il relativo impatto sui dati e sull’organizzazione.
Evidenziare la presenza e il funzionamento di questo tipo di vulnerabilità è necessario per comprendere che, al fine di rendere più sicure possibile le proprie applicazioni, non è sufficiente scansionarle periodicamente con strumenti automatici ma, bensì, cercare di integrare a tali strumenti delle attività di simulazione manuali che possano restituire dei risultati concreti sugli impatti relativi alle vulnerabilità presenti, con scenari di attacco reali che portino a una consapevolezza del rischio al quale sono esposti i sistemi che tengono al sicuro i nostri dati o quelli dei nostri Clienti.