Nel nostro precedente articolo sulla tematica cloud abbiamo , come proteggere le risorse IT nel cloud pubblico e perché gli antivirus tradizionali non sono del tutto adatti a questi scopi. In questo post continueremo a parlare di sicurezza cloud e discuteremo dell'evoluzione del WAF e di cosa sia meglio scegliere: hardware, software o cloud.

Cos'è un WAF
Oltre il 75% degli attacchi hacker è volto a vulnerabilità delle applicazioni web e dei siti: tali attacchi sono generalmente invisibili per l'infrastruttura di sicurezza informatica e i servizi di sicurezza informatica. Le vulnerabilità delle applicazioni web comportano, a loro volta, rischi di compromissione e frode su account e dati personali degli utenti, password e numeri di carte di credito. Inoltre, le vulnerabilità di un sito web possono servire come porta d'ingresso per i malintenzionati nella rete aziendale.
Il Web Application Firewall (WAF) è uno schermo di protezione che blocca gli attacchi alle applicazioni web: iniezioni SQL, cross-site scripting, esecuzione di codice remoto, brute force e bypass dell’autenticazione. Include anche attacchi che sfruttano vulnerabilità zero-day. I firewall per applicazioni forniscono protezione monitorando il contenuto delle pagine web, inclusi HTML, DHTML e CSS, e filtrando le richieste potenzialmente dannose tramite HTTP/HTTPS.
Quali erano le prime soluzioni?
I primi tentativi di creare un Web Application Firewall risalgono all'inizio degli anni '90. Si conoscono almeno tre ingegneri che hanno lavorato in questo campo. Il primo è il professor di informatica Gene Spafford della Purdue University, che ha descritto l'architettura di un firewall per applicazioni basato su proxy e nel 1991 ha pubblicato un libro .
Il secondo e il terzo erano gli esperti di sicurezza informatica William Cheswick e Marcus Ranum di Bell Labs. Hanno sviluppato uno dei primi prototipi di firewall per applicazioni, distribuito da DEC con il nome SEAL (Secure External Access Link).
Tuttavia, SEAL non era una soluzione WAF completa. Rappresentava un classico firewall di rete con funzionalità avanzate — la possibilità di bloccare attacchi su FTP e RSH. Per questo motivo, la prima soluzione WAF è considerata oggi il prodotto della Perfecto Technologies (poi Sanctum). Nel 1999 hanno lanciato il sistema AppShield. All'epoca la Perfecto Technologies si dedicava allo sviluppo di soluzioni di sicurezza informatica per l'e-commerce, e il pubblico target del loro nuovo prodotto erano i negozi online. AppShield era in grado di analizzare le richieste HTTP e bloccava gli attacchi sulla base di politiche di sicurezza informatica dinamiche.
Circa nello stesso periodo di AppShield (nel 2002) è apparso il primo WAF open source, . È stato creato con l'intento di promuovere le tecnologie WAF e viene ancora supportato dalla comunità IT (ecco il suo ). ModSecurity blocca attacchi alle applicazioni, basandosi su un insieme standard di espressioni regolari (firmware) — strumenti per l'ispezione delle richieste in base a modelli — .
Alla fine, i sviluppatori sono riusciti a raggiungere il loro obiettivo: sono comparse nuove soluzioni WAF sul mercato, comprese quelle costruite sulla base di ModSecurity.
Tre generazioni — sono già storia
Si distinguono tre generazioni di sistemi WAF, che si sono evoluti con lo sviluppo delle tecnologie.
Prima generazione. Funziona con espressioni regolari (o grammatiche). Include ModSecurity. Il fornitore del sistema studia i tipi di attacchi alle applicazioni e crea modelli che descrivono le richieste legittime e potenzialmente dannose. Il WAF si confronta con queste liste e decide come agire in una certa situazione — bloccare il traffico o meno.
Un esempio di rilevamento basato su espressioni regolari è il già citato progetto open source. Un altro esempio è Inoltre, le espressioni regolari presentano un livello di falsi positivi piuttosto alto. Il famoso linguista Noam Chomsky ha proposto una classificazione delle grammatiche in cui le ha suddivise in quattro livelli di complessità. Secondo questa classificazione, le espressioni regolari possono descrivere solo le regole del firewall che non prevedono deviazioni dal modello. Ciò significa che i malintenzionati possono facilmente "ingannare" il WAF di prima generazione. Uno dei metodi per contrastare ciò è l'aggiunta di simboli speciali nelle richieste alle applicazioni, che non influiscono sulla logica dei dati dannosi, ma violano la regola di firma.
Anche le espressioni regolari hanno un livello piuttosto elevato di falsi positivi. Il famoso linguista Noam Chomsky ha proposto una classificazione delle grammatiche, suddividendole in quattro livelli di complessità. Secondo questa classificazione, le espressioni regolari possono descrivere solo le regole del firewall che non prevedono deviazioni dal modello. Ciò significa che gli aggressori possono facilmente "ingannare" le WAF di prima generazione. Uno dei metodi per contrastare questo è aggiungere ai richieste alle applicazioni caratteri speciali che non influenzano la logica dei dati dannosi, ma infrangono la regola di firma.

Secondo genere. Per affrontare le problematiche legate alle prestazioni e all'accuratezza dei WAF, sono stati sviluppati i firewall per applicazioni di seconda generazione. Questi includono parser progettati per identificare tipi specifici di attacchi (come HTML, JS, ecc.). I parser lavorano con token speciali che descrivono le richieste (ad esempio, variabile, stringa, sconosciuto, numero). Le sequenze di token potenzialmente dannose vengono raccolte in un elenco separato, che viene regolarmente confrontato dal sistema WAF. Questo approccio è stato presentato per la prima volta alla conferenza Black Hat 2012 in forma di C/C++ , che consentono di individuare le SQL injection.
Rispetto ai WAF di prima generazione, i parser specializzati possono funzionare più rapidamente. Tuttavia, non hanno risolto le difficoltà legate alla configurazione manuale del sistema quando appaiono nuovi attacchi malevoli.

Terzo genere. L'evoluzione nella logica di rilevamento del terzo genere si basa sull'applicazione di metodi di machine learning, che consentono di avvicinare al massimo la grammatica di rilevamento alla grammatica reale di SQL/HTML/JS dei sistemi protetti. Questa logica di rilevamento è in grado di adattare la macchina di Turing per coprire grammatiche ricorsivamente enumerabili. In precedenza, il compito di creare una macchina di Turing adattabile era insolubile, fino alla pubblicazione delle prime ricerche su macchine di Turing neuronali.
Il machine learning offre un'opportunità unica di adattare qualsiasi grammatica per coprire qualsiasi tipo di attacco senza dover creare manualmente liste di firme, come era necessario per il rilevamento di prima generazione, e senza sviluppare nuovi tokenizzatori/parser per nuovi tipi di attacchi, come le iniezioni di Memcached, Redis, Cassandra, SSRF, come richiedeva la metodologia di seconda generazione.
Combinando tutti e tre i generi di logica di rilevamento, possiamo tracciare un nuovo diagramma, nel quale il terzo genere di rilevamento è rappresentato da un contorno rosso (fig. 3). Tra questo genere si trova una delle soluzioni che implementiamo nel cloud insieme a «Onsec», sviluppatore della piattaforma di protezione adattativa per applicazioni web e API Valarm.
Ora, nella logica di rilevamento, si utilizza il feedback dell'applicazione per l'auto-regolazione. Nel contesto del machine learning, questo ciclo di feedback è chiamato «rinforzo». In genere, ci sono uno o più tipi di tale rinforzo:
- Analisi del comportamento della risposta dell'applicazione (passiva)
- Scansione/fuzzer (attiva)
- File di rapporti/procedure di intercettazione/trappole (post-fattum)
- Manuale (determinato dal supervisore)
Di conseguenza, la logica di rilevamento di terzo genere affronta anche un problema fondamentale di accuratezza. Ora è possibile non solo evitare falsi positivi e falsi negativi, ma anche rilevare risultati realmente negativi ammissibili, come l'uso di un elemento di comando SQL nel pannello di controllo, il caricamento di template per pagine web, richieste AJAX legate a errori di JavaScript e altro ancora.

![]()

Esaminiamo ora le possibilità tecnologiche delle varie opzioni di implementazione del WAF.
Hardware, software o cloud — cosa scegliere?
Una delle opzioni per l'implementazione dei firewall per applicazioni è la soluzione hardware. Questi sistemi sono dispositivi di calcolo specializzati, che l'azienda installa localmente nel proprio data center. Tuttavia, in questo caso, è necessario acquistare hardware proprio e pagare gli integratori per la configurazione e il collaudo (se l'azienda non ha un proprio reparto IT). Va notato che qualsiasi hardware diventa obsoleto e non funziona più, quindi i clienti devono considerare un budget per l'aggiornamento dell'hardware.
Un'altra opzione di distribuzione del WAF è l'implementazione software. La soluzione viene installata come un'estensione per qualche software (ad esempio, ModSecurity viene configurato sopra Apache) e funziona su un server insieme a questo. In generale, tali soluzioni possono essere distribuite sia su server fisici che nel cloud. Il loro svantaggio è la limitata scalabilità e supporto da parte del fornitore.
La terza opzione è la configurazione del WAF dal cloud. Queste soluzioni sono fornite dai fornitori di cloud come servizio in abbonamento. L'azienda non deve acquistare e configurare hardware specializzato, queste attività ricadono sul fornitore del servizio. Un aspetto importante è che un moderno WAF cloud non implica la migrazione delle risorse sulla piattaforma del fornitore. Il sito può essere distribuito ovunque, anche on-premise.
Perché ora sempre più aziende si orientano verso un WAF cloud, lo spiegheremo in seguito.
Cosa può fare un WAF nel cloud
Dal punto di vista delle capacità tecnologiche:
- Gli aggiornamenti sono gestiti dal fornitore. Il WAF è fornito in abbonamento, pertanto il fornitore del servizio si occupa della pertinenza degli aggiornamenti e delle licenze. Gli aggiornamenti riguardano sia il software che l'hardware. Il fornitore aggiorna il parco server e si occupa della sua manutenzione. È anche responsabile del bilanciamento del carico e del backup. In caso di guasto del server WAF, il traffico viene immediatamente reindirizzato a un'altra macchina. Una distribuzione razionale del traffico consente di evitare situazioni in cui il firewall entra in modalità fail open, non riesce a gestire il carico e smette di filtrare le richieste.
- Patch virtuali. Le patch virtuali limitano l'accesso alle parti compromesse dell'applicazione fino alla chiusura della vulnerabilità da parte dello sviluppatore. Di conseguenza, il cliente del fornitore cloud ha l'opportunità di attendere con calma l'emissione di "patch" ufficiali da parte del fornitore del software. Rendere questo il più rapido possibile è una priorità per il fornitore di software. Ad esempio, nella piattaforma "Valarm", il patching virtuale è gestito da un modulo software separato. L'amministratore può aggiungere espressioni regolari personalizzate per bloccare richieste dannose. Il sistema consente di contrassegnare alcune richieste con il flag "Dati sensibili". In questo caso, i loro parametri vengono mascherati e non vengono mai trasmessi al di fuori dell'area di lavoro del firewall.
- Scanner integrato di perimetro e vulnerabilità. Questo consente di definire autonomamente i confini di rete dell'infrastruttura IT, utilizzando i dati delle richieste DNS e del protocollo WHOIS. Dopodiché, il WAF analizza automaticamente i servizi e le applicazioni attive all'interno del perimetro (scansione delle porte). Il firewall è in grado di rilevare tutti i tipi comuni di vulnerabilità — SQLi, XSS, XXE e altri — e identificare errori nella configurazione del software, ad esempio accessi non autorizzati ai repository Git e BitBucket e richieste anonime a Elasticsearch, Redis, MongoDB.
- Gli attacchi sono monitorati dalle risorse del cloud. In genere, i fornitori cloud dispongono di grandi quantità di potenza computazionale. Questo consente di effettuare analisi delle minacce con alta precisione e rapidità. Nel cloud viene distribuito un cluster di nodi di filtraggio, attraverso i quali passa tutto il traffico. Questi nodi bloccano gli attacchi alle applicazioni web e inviano statistiche al Centro di analisi. Utilizza algoritmi di apprendimento automatico per aggiornare le regole di blocco per tutte le applicazioni protette. L'implementazione di tale schema è mostrata nella figura 4. Queste regole di sicurezza adattate riducono il numero di falsi positivi del firewall.

Ora parliamo un po' delle caratteristiche degli WAF cloud dal punto di vista degli aspetti organizzativi e della gestione:
- Transizione a OpEx. Per quanto riguarda gli WAF cloud, il costo di implementazione sarà zero, poiché tutto l'hardware e le licenze sono già stati pagati dal fornitore, e il servizio viene pagato tramite abbonamento.
- Diverse opzioni di abbonamento. L'utente del servizio cloud può rapidamente attivare o disattivare opzioni aggiuntive. La gestione delle funzioni avviene da un'unica interfaccia utente, che è anch'essa protetta. L'accesso avviene tramite HTTPS, e c'è un meccanismo di autenticazione a due fattori basato sul protocollo TOTP (Time-based One-Time Password Algorithm).
- Connessione tramite DNS. È possibile modificare autonomamente il DNS e configurare la routing nella rete. Per svolgere queste operazioni non è necessario formare e addestrare specialisti separati. In genere, il supporto tecnico del fornitore può assistere con la configurazione.
Le tecnologie WAF hanno compiuto un'evoluzione da semplici firewall con regole empiriche a sistemi di protezione complessi con algoritmi di apprendimento automatico. Oggi, i firewall per applicazioni offrono un ampio ventaglio di funzioni che erano difficilmente realizzabili negli anni '90. In gran parte, l'emergere di nuove funzionalità è stato reso possibile dalle tecnologie cloud. Le soluzioni WAF e i loro componenti continuano a evolversi. Così come altre aree della sicurezza informatica.
Il testo è stato preparato da Aleksandr Karpuzikov, Manager dello sviluppo dei prodotti nella sicurezza informatica del fornitore cloud #CloudMTS.
Fonte: habr.com
