
» continua
Con il termine "application logic " vengono descritti i passaggi necessari per completare una particolare azione, secondo quanto previsto dallo sviluppatore di un'applicazione.
Un esempio di application logic potrebbe essere quello di un cliente che aggiunge un articolo a un carrello per lo shopping online; compiuta questa operazione gli viene chiesto di fornire il nome, l'indirizzo e i dettagli di pagamento prima di potere completare l'acquisto.
L'application logic (denominata anche business logic) non si riferisce alla funzionalità generale di un Web server, ma alle specifiche operazioni delle funzioni dell'applicazione, quali gli sconti sul prodotto, il tipo di pagamento e così via. Un attacco di application logic cerca di aggirare o di fare un uso improprio dell'ordine atteso delle operazioni all'interno delle caratteristiche dell'applicazione. Generalmente, tali attacchi sono indirizzati a un sito Web, ma possono anche essere destinati ai visitatori del sito o ai dati riservati dei clienti contenuti in tale sito.
Come funzionano gli attacchi di application logic
A differenza dei comuni attacchi alle
applicazioni, come l'SQL injection, ogni attacco di application logic è
solitamente unico, poiché deve sfruttare una funzione o una caratteristica che è
specifica della singola applicazione. Ciò rende più difficile per i tool usati
nei test di vulnerabilità automatica rilevare tali attacchi perché sono causati
da difetti nella logica e non necessariamente nel codice attuale.
Quando gli attacchi di application logic riescono, solitamente è perché gli sviluppatori non creano un processo di validazione e controllo adeguato all'interno dell'applicazione. Questa mancanza di controllo nel flusso permette agli attacker di effettuare determinate operazione in modo non corretto o secondo una sequenza differente da quella prevista.
Per esempio, consideriamo un'applicazione di shopping online che può offrire uno sconto se viene comprato il prodotto A. Se l'applicazione non si accerta che il prodotto A sia ancora nel carrello della spesa quando viene effettuato il pagamento, un utente malintenzionato potrebbe aggiungere tale prodotto per ottenere lo sconto e quindi rimuoverlo per comprare il prodotto B a un prezzo erroneamente scontato.
Tipi di attacco di application logic
Un tipo differente di attacco
si presenta quando un attacker usa ripetutamente una funzionalità di un'applicazione,
quale la capacità di generare parecchie migliaia di nuovi account o la pubblicazione di
messaggi ripetuti su forum di discussione. Questo tipo di attacco abusa
di un'utile applicazione con poche o addirittura nessuna modifica alla funzione originale.
Un esempio reale di un attacco di questo tipo si è avuto
nell'agosto 2005 su un sito Web di scommesse online. Basandosi sui ritardi
di tempo, alcuni giocatori hanno imparato come predire le mosse dei
croupier che distribuiscono le carte. Questo difetto ha permesso di vincere parecchi soldi
in un modo abbastanza legale! Alcuni attacchi application logic possono condurre
anche al denial of service.
Attacchi di application logic: misure preventive
La chiave per impedire gli attacchi di application logic è di
effettuare un controllo di qualità validando i processi di business e definendo i
requisiti già dall'avvio del ciclo di sviluppo dell'applicazione. I programmatori
Web devono inoltre sviluppare la sicurezza e il controllo di flusso nei diritti
delle applicazioni sin dall'inizio. Purtroppo, molti evitano di eseguire le
valutazioni della sicurezza e i test fino a quando l'applicazione non è stata
generata.
Fino a quando un maggior numero di sviluppatori non rispetterà la codifica standard e testerà il codice non appena è stato scritto, gli attacchi di application logic continueranno a rappresentare per gli attacker un vettore molto vantaggioso.
