Webapplikationsutvecklare litar ofta på att de flesta användare ska följa reglerna och använda en applikation som den är avsedd att användas, men hur är det då när användaren (eller en hackare) böjer reglerna? Vad händer om en användare hoppar över det snygga webgränssnittet och börjar röra sig under huven utan de begränsningar som webbläsaren ställer?
Vad om Firefox?
Firefox är den webbläsare som valts för de flesta hackare på grund av sin plug-in-vänliga design. Ett av de mer populära hackverktygen för Firefox är ett tillägg som heter Tamper Data. Tamper Data är inte ett superkomplicerat verktyg, det är bara en proxy som sätter sig in mellan användaren och webbplatsen eller webbapplikationen som de surfar på.
Tamper Data gör det möjligt för en hackare att ta bort gardinen för att se och röra med alla HTTP-magikerna som äger rum bakom kulisserna. Alla dessa GETs och POSTs kan manipuleras utan de begränsningar som användargränssnittet ställer i webbläsaren.
Vad ska du gilla?
Så varför hackare gillar Tamper Data så mycket och varför bör webbprogramutvecklare bryr sig om det? Huvudskälet är att det tillåter en person att manipulera med data som skickas fram och tillbaka mellan klienten och servern (därav namnet Tamper Data). När Tamper Data startas och en webbapp eller webbplats startas i Firefox, visar Tamper Data alla fält som tillåter användarinmatning eller manipulation. En hacker kan sedan ändra ett fält till ett "alternativt värde" och skicka data till servern för att se hur det reagerar.
Varför detta kan vara farligt för en ansökan
Säg att en hackare besöker en online shoppingplats och lägger till ett objekt i sin virtuella kundvagn. Den webbapplikationsutvecklare som byggt kundvagnen kan ha kodat vagnen för att acceptera ett värde från användaren som Mängd = "1" och begränsade användargränssnittet till en nedrullningsruta som innehåller förutbestämda val för kvantiteten.
En hackare kan försöka använda Tamper Data för att kringgå begränsningarna i listrutan som bara tillåter användare att välja från en uppsättning värden som 1, 2, 3, 4 och 5. Med hjälp av Tamper Data kan hackaren försöka att ange ett annat värde av säga "-1" eller kanske ".000001".
Om utvecklaren inte korrekt kodat sin inmatningsvalideringsrutin kan det här värdet "-1" eller ".000001" eventuellt hamna till den formel som används för att beräkna kostnaden för objektet (t ex Price x Quantity). Detta kan orsaka några oväntade resultat beroende på hur mycket felkontroll som pågår och hur mycket förtroende utvecklaren har i de data som kommer från klientsidan. Om kundvagnen är dåligt kodad kan hackaren sluta få en eventuell oavsiktlig stor rabatt, en återbetalning på en produkt som de inte ens köpte, en butikskredit eller vem vet vad mer.
Möjligheterna att missbruka en webbapplikation med hjälp av Tamper Data är oändliga. Om jag var en mjukvaruutvecklare, vet jag bara att det finns verktyg som Tamper Data där ute skulle hålla mig på natten.
På flip-sidan är Tamper Data ett utmärkt verktyg för säkerhetsmedveten applikationsutvecklare att använda, så att de kan se hur deras applikationer svarar på användaranpassningar på klientsidan.
Utvecklare skapar ofta "Användningsfall" för att fokusera på hur en användare skulle använda programvaran för att uppnå ett mål. Tyvärr ignorerar de ofta den dåliga killen faktorn. App-utvecklare måste lägga på sina onda kepsar och skapa "Misuse Cases" för att redogöra för hackare som använder verktyg som Tamper Data.
Tamper Data ska ingå i deras säkerhetsutvärderingsarsenal för att säkerställa att inmatning av klientsidor valideras och verifieras innan det får påverka transaktioner och server-processer. Om utvecklare inte tar en aktiv roll i att använda verktyg som Tamper Data för att se hur deras applikationer svarar på attacker, vet de inte vad de kan förvänta sig och kan sluta betala räkningen för 60 "Plasma-TV som hackaren köpt för 99 cent med sin defekta kundvagn.