Gli sviluppatori di applicazioni Web spesso credono che la maggior parte degli utenti seguirà le regole e userà un'applicazione così come è destinata a essere utilizzata, ma che ne dite di quando l'utente (o un hacker) piega le regole? Cosa succede se un utente salta l'interfaccia web di fantasia e inizia a scherzare sotto il cofano senza i vincoli imposti dal browser?
Che dire di Firefox?
Firefox è il browser di scelta per la maggior parte degli hacker grazie al suo design amichevole plug-in. Uno degli strumenti di hacker più popolari per Firefox è un componente aggiuntivo chiamato Tamper Data. Tamper Data non è uno strumento super complicato, è semplicemente un proxy che si inserisce tra l'utente e il sito Web o l'applicazione Web che sta navigando.
Dati di manomissione consente a un hacker di sollevare la tendina per visualizzare e creare confusione con tutta la "magia" HTTP che si svolge dietro le quinte. Tutti questi GET e POST possono essere manipolati senza i vincoli imposti dall'interfaccia utente vista nel browser.
Cosa c'è da piacere?
Quindi perché gli hacker amano tanto i dati di manomissione e perché gli sviluppatori di applicazioni web dovrebbero preoccuparsene? Il motivo principale è che consente a una persona di manomettere i dati inviati avanti e indietro tra il client e il server (da qui il nome Tamper Data). Quando viene avviato Tamper Data e viene avviata un'app o un sito Web in Firefox, Tamper Data mostrerà tutti i campi che consentono l'input o la manipolazione dell'utente. Un hacker può quindi modificare un campo in un "valore alternativo" e inviare i dati al server per vedere come reagisce.
Perché questo potrebbe essere pericoloso per un'applicazione
Supponiamo che un hacker stia visitando un sito di shopping online e aggiunga un articolo al carrello virtuale. Lo sviluppatore dell'applicazione Web che ha creato il carrello degli acquisti potrebbe aver codificato il carrello per accettare un valore dall'utente come Quantità = "1" e ha limitato l'elemento dell'interfaccia utente a una casella a discesa contenente selezioni predeterminate per la quantità.
Un hacker potrebbe tentare di utilizzare Tamper Data per ignorare le restrizioni della casella a discesa che consente solo agli utenti di selezionare da un set di valori come 1, 2, 3, 4 e 5. Utilizzando Tamper Data, l'hacker potrebbe provare per inserire un valore diverso di dire "-1" o forse ".000001".
Se lo sviluppatore non ha codificato correttamente la propria routine di convalida dell'input, allora questo valore "-1" o ".000001" potrebbe finire per essere passato alla formula utilizzata per calcolare il costo dell'articolo (ad esempio prezzo x quantità). Ciò potrebbe causare alcuni risultati imprevisti a seconda di quanto è in corso il controllo degli errori e di quanto lo sviluppatore abbia fiducia nei dati provenienti dal lato client. Se il carrello degli acquisti è mal codificato, l'hacker potrebbe finire per ottenere un possibile sconto enorme non voluto, un rimborso su un prodotto che non hanno nemmeno acquistato, un credito del negozio o chissà cos'altro.
Le possibilità di un uso improprio di un'applicazione web utilizzando i dati di manomissione sono infinite. Se fossi uno sviluppatore di software, solo sapendo che ci sono strumenti come Tamper Data, là fuori, mi terrei sveglio la notte.
Dal lato opposto, Tamper Data è uno strumento eccellente per gli sviluppatori di applicazioni attenti alla sicurezza da utilizzare in modo che possano vedere come le loro applicazioni rispondono agli attacchi di manipolazione dei dati sul lato client.
Gli sviluppatori spesso creano "casi d'uso" per concentrarsi su come un utente potrebbe utilizzare il software per raggiungere un obiettivo. Sfortunatamente, spesso ignorano il fattore cattivo. Gli sviluppatori di app devono indossare i loro cappelli da uomo cattivo e creare "casi di abuso" per tenere conto degli hacker che utilizzano strumenti come i dati di manomissione.
I dati di manomissione dovrebbero far parte del loro arsenale di test di sicurezza per garantire che l'input lato client sia convalidato e verificato prima che sia consentito influenzare le transazioni e i processi lato server. Se gli sviluppatori non svolgono un ruolo attivo nell'utilizzo di strumenti come Tamper Data per vedere come le loro applicazioni rispondono agli attacchi, allora non sapranno cosa aspettarsi e potrebbero finire per pagare il conto per la TV al plasma da 60 "che l'hacker ha appena comprato per 99 centesimi usando il loro carrello degli acquisti difettoso.




