Home Articoli tecnici Miglioramento delle prestazioni delle applicazioni con regole di sicurezza più rapide
Applications

Miglioramento delle prestazioni delle applicazioni con regole di sicurezza più rapide

About The Author

Outline

Man mano che sempre più team di sviluppo delle applicazioni integrano la sicurezza nei flussi di lavoro, stanno valutando l’impatto della sicurezza sulle loro applicazioni, dal punto di vista della pipeline applicativa, del flusso di lavoro e delle prestazioni.

A causa dei requisiti di conformità, la protezione WAAP (Web Application and API Protection) viene comunemente implementata in uno stack di applicazioni. Ma mentre le organizzazioni spostano i loro carichi di lavoro sul cloud e iniziano a incorporare la sicurezza nel tessuto delle loro applicazioni, il ruolo del WAAP si sta evolvendo. Le organizzazioni hanno bisogno di piattaforme WAAP in grado di scalare e adattarsi alle architetture cloud in evoluzione e alle crescenti minacce alla sicurezza.

In questo articolo, esamineremo come il motore WAAP, e, più specificamente, un set di regole creato appositamente per l’uso con tale motore, può essere adattato per scalare nei flussi di lavoro cloud e migliorare le prestazioni della vostra applicazione web mantenendo una protezione efficace dalle minacce online.‍

Considerare sia il motore WAAP che la sua ruleset‍

Il WAAP deve essere una parte importante dello stack di applicazioni e del programma di protezione della rete. Tradizionalmente, i WAAP erano disconnessi dallo sviluppo delle applicazioni e venivano visti come un livello di protezione esterno all’applicazione. Ma le moderne architetture e strumenti WAAP hanno aiutato SecOps a collaborare con DevOps durante il processo ci/CD, tra cui la creazione e il test delle regole durante lo sviluppo di un’applicazione. Se utilizzato correttamente per analizzare il traffico che attraversa l’infrastruttura applicativa, il motore WAAP e il relativo set di regole svolgono un ruolo importante nella velocità con cui viene completata l’analisi e nel grado di prestazioni delle decisioni di controllo e blocco risultanti come parte dell’architettura applicativa complessiva.

Come il motore, il computer e la trasmissione di un’automobile, un motore WAAP, i suoi set di regole, e l’applicazione che protegge deve essere progettata e ottimizzata per funzionare insieme. Un produttore di auto non progetta un motore in una bolla. Deve essere ottimizzato per il resto del telaio e dei componenti dell’automobile per raggiungere prestazioni ed efficienza massime su tutta la linea. Lo stesso vale per il motore WAAP e il relativo set di regole. Un WAAP che non tiene conto di queste variabili può essere sovraccaricato e sovraccaricato e, in ultima analisi, degradare le prestazioni e l’esperienza utente dell’applicazione web.‍

Ridurre il carico di lavoro WAAP per migliorare velocità e effectiveness‍

L’Edgio WAAP utilizza una combinazione di firme open source, industriali e proprietarie per informare il proprio set di regole. Valutiamo attentamente l’impatto di ogni firma sulle prestazioni del set di regole complessivo.

Durante la progettazione e l’ottimizzazione del motore WAAP, abbiamo visto che raccogliendo e consumando i set di regole open source e di settore senza alcuna modifica, (quasi) ogni regola avrebbe dovuto essere analizzata man mano che il traffico attraversa il cavo. Questo modello è abbastanza comune tra i WAAP e rende “facile” vedere cosa succede al traffico. Ma obbliga anche il WAAP a eseguire ogni regola per valutare il rischio associato al traffico. Ciò comporta un carico di lavoro inutilmente pesante per il WAAP che si aggrava ulteriormente con l’aumento del set di regole.

Naturalmente, non si tratta sempre di velocità. Un elemento chiave di un WAAP è la sua capacità di determinare il rischio (compromesso) rispetto al premio (transazioni riuscite) associato al traffico e decidere se contrassegnare il traffico come dannoso, sospetto o benigno. Il WAAP invia un avviso al team (modalità di controllo/avviso) e blocca o reindirizza il traffico se ritenuto troppo rischioso da lasciarlo passare (modalità di produzione/blocco).

Questa analisi diventa una sfida più grande quando si esaminano le regole del settore e dell’open source acquisite. È improbabile che siano stati creati con velocità ed efficienza in mente per ogni possibile motore WAAP sul mercato. Questo non significa che siano cattivi, significa solo che si concentrano prima sul rischio, lasciando le prestazioni come un ripensamento. In altre parole, c’è spazio per il miglioramento.

Con i set di regole creati per la completezza e la precisione, molti WAAP scoprono di non essere in grado di gestire il traffico analizzato in entrambe le modalità (controllo e blocco), costringendo i team InfoSec a scegliere una modalità: iniziate con la modalità di controllo e spostatela in modalità di produzione o direttamente in modalità di produzione con pochi o nessun test reale, il che li lascia aperti a minacce mancate e falsi positivi.‍

In che modo Edgio potenzia la sua rulesets‍ WAAP

Il modello open-source OWASP ModSecurity per i set di regole fornisce un modo standard e coerente attraverso il quale è possibile sviluppare e implementare i set di regole WAAP. A complemento di ciò, OWASP offre un insieme di regole generiche del settore che può essere acquisito da un WAAP che segue questo modello.

Tuttavia, mentre il nostro team stava implementando il set di regole, si è reso conto che i set di regole che venivano ingeriti, pur essendo completi e precisi, stavano effettivamente rallentando il motore WAAP. Quindi, il team ha deciso di esaminare come vengono strutturati ed elaborati i set di regole. Ciò che abbiamo riscontrato, che non dovrebbe sorprendere nessun amministratore WAAP, è che molte regole passano continuamente gli stessi dati per scorrere i controlli necessari per determinare il rischio del traffico che passa attraverso il WAAP.

Alcune regole di applicazione del protocollo sono abbastanza semplici e non devono “vivere” all’interno dell’ecosistema del set di regole. Per risolvere questo problema, abbiamo sviluppato innanzitutto il set di regole che ha efficacemente ridotto il set di regole OWASP implementandolo direttamente nel motore WAAP in un formato non ModSecurity. Ciò si traduce in un’esecuzione precoce e in un rilevamento più rapido.

Successivamente, abbiamo preso di mira le regole che analizzano i corpi delle richieste. Abbiamo creato un livello di memorizzazione nella cache che riduce l’overhead delle prestazioni derivante dal ricalcolo delle stesse espressioni nelle regole. Prendendo un esempio di corpi in formato XML, abbiamo cercato quante volte l’espressione “XML:/*” appare nel set di regole OWASP CRS per vedere quante volte un XPath potrebbe essere ricalcolato nell’elaborazione di una singola richiesta senza un livello di cache, il numero è significativo.

Infine, dove si verificano molte espansioni macro/sostituzioni di stringhe e ricerche esplicite, abbiamo identificato e rimosso tali regole dal set di regole e le abbiamo implementate nel motore con algoritmi di ricerca e ricerca migliori, come ad esempio l’operatore HashMap Lookups e Phrase Match (PM) invece di un operatore regex (Rx) laddove possibile.

Facendo le cose in modo diverso con la struttura dei set di regole, il nostro motore WAAP utilizza strutture di dati più veloci e formati standard aperti come JSON, che sono più facili da configurare ed eseguire più velocemente. Ciò si traduce in prestazioni migliori, non solo in termini di velocità ma anche in termini di precisione:

  • Bassi falsi positivi: Edgio organizza e controlla il set di regole in modo da garantire il mantenimento della precisione
  • Prestazioni del motore migliorate: Il motore Edgio WAAP fa funzionare i set di regole in modo da evitare di sovraccaricare il motore

Ad esempio, per la regola dei criteri blocklist IP OWASP, il motore ModSecurity utilizza il proprio algoritmo “msc_Tree” che esamina un elenco IP errato. In alternativa, il motore Edgio WAAP utilizza un algoritmo diverso che è un po’ più veloce. I seguenti risultati dei test mostrano le prestazioni di Edgio WAAP rispetto a ModSecurity. ModSecurity aggiunge circa 200 ms a 500 ms di latenza quando si eseguono milioni di query su grandi elenchi IP. Edgio WAAP gestisce circa 10 miliardi di richieste al giorno in tutta la sua rete. Questi piccoli numeri contano molto su una scala così ampia.

Evitare gli avvisi anziché bloccare i compromessi

Una migliore combinazione di motore WAAP e set di regole significa anche che le organizzazioni ottengono prestazioni più veloci e possono eseguire WAAP in modalità doppia (sia in modalità di blocco che in modalità di controllo). Ciò consente ai team addetti alle operazioni di sicurezza di sperimentare nuove regole rispetto al traffico di produzione in modalità di controllo/avviso e di perfezionare le regole prima di promuovere il set di regole in modalità di blocco sul WAAP.

I set di regole Edgio altamente personalizzati consentono agli amministratori di tagliare e tagliare a dadi ovunque e di eseguire i set di regole in modalità doppia. Con le stesse regole applicate a impostazioni diverse, gli amministratori possono eseguirle due volte senza influire sulle prestazioni, grazie, in parte, al motore intelligente e all’implementazione delle regole.

Il valore qui si estende oltre il team di gestione WAAP. Molti clienti Edgio integrano questa opzione nel loro ciclo di vita DevOps, offrendo all’azienda, al team di progettazione e al team di sicurezza IT la possibilità di collaborare e testare le regole in modalità di controllo prima di applicarle alla modalità di blocco della produzione.

Questo processo in due fasi consente al team di sicurezza IT di controllare le modifiche alla configurazione del firewall prima che vengano attivate, dotando il team di dati per testare le modifiche sul traffico di produzione reale, riducendo così i falsi positivi una volta che il set di regole viene inserito in produzione. Una volta convalidato il set di regole, le configurazioni aggiornate vengono implementate entro pochi secondi. E, se necessario, i rollback sono possibili in pochi minuti. Ciò rende le prove di regole significative molto più realistiche, dinamiche, di impatto, efficaci e a supporto degli obiettivi aziendali.

L’ approccio alla modalità Edgio Dual WAF migliora ulteriormente le prestazioni. Il set di regole intelligente assicura che il traffico dannoso noto venga bloccato rapidamente per dare un po’ di spazio al WAF in modo che possa gestire il resto del traffico che viene costantemente presentato. Questo, a sua volta, dà agli amministratori più tempo per concentrarsi sull’acquisizione di visibilità predittiva; in altre parole, possono vedere le cose nelle applicazioni tramite la modalità di controllo prima di essere distribuiti nei siti di produzione.

Se la vostra azienda ha bisogno di uno stack di applicazioni in grado di adattarsi a carichi di lavoro imprevedibili e offrire comunque un’architettura altamente sicura, è consigliabile prendere in considerazione il motore WAAP e il set di regole. Una volta ottimizzati, questi fattori possono migliorare le prestazioni delle applicazioni Web.

Per ulteriori informazioni su come il motore intelligente Edgio WAAP e i set di regole possono proteggere le vostre applicazioni web con velocità e precisione, connettetevi oggi stesso.