TOPlist

PageRank ukazatel

Ty nejlepší informace ze světa Windows, nyní vždy jasně, stručně a aktuálně o Windows 8 a Windows 8.1 MojeWindows.cz

Sledujte blog o noteboocích a netboocích nejenom značky Asus Eee PC.

Už jste někdy přemýšleli o tom,  jak se dostat přes nezabezpečený formulář na cizí bankovní účet nebo do databáze nějaké vládní či tajné organizace? Myslíte si, že je to těžké? Ale jděte! Divili byste se, jak se nevyplácí šetřit na programátorech.

Před několika měsíci jsem pracoval pro jednu nejmenovanou bankovní instituci. Na jejich stránkách internetového bankovnictví používali formulář, resp.sadu formulářů pro manipulaci s účtem. Je to takový ten formulář, který je rozdělený do několika kroků. První je login. Klient zadá číslo účtu a heslo pro vstup do aplikace. Data se metodou POST přenesou na server a ten je zpracuje. Skript porovná údaje s daty v databázi a rozhodne zda požadavek (klienta) autorizuje či nikoliv. Až potud v pořádku. Data se pošlou zpět na stranu klienta, spolu s další částí formuláře.

Už někomu z vás dochází, kam tím mířím?

Data se pošlou zpět na stranu klienta! Jaká data? Správná otázka!

To, co jsem viděl, mě šokovalo. Na druhém formuláři, který už nijak nebránil vstupu do bankovní aplikace, bylo v políčku pěkně vypsáno moje ID – moje číslo účtu. Ok, to ještě nic nemusí znamenat, ale pojďme to prověřit. Neříkej mi, že to používaj pro další identifikaci požadavku klienta…

To, že se HTML formulář nechá zfalšovat, je dobře známá věc. Prostě si zkopírujete HTML kód webového formuláře na jinou mašinu, poupravíte ho a zavoláte přes něj aplikaci, která ho zpracovává. Zkusil jsem to. Zkusil jsem uhádnout číslo účtu jiného klienta. Několikrát se to nepovedlo, ale to není důležité. Aplikace nevyhodila žádnou chybu! Prostě mě nechala zkoušet to tak dlouho, až jsem se strefil. Nebudu uvádět žádné detaily, čí to byl účet ani kolik tam ten člověk měl zůstatek. Ale modří už vědí 🙂

Okamžitě jsem si nechal zavolat správce systému. Jak dlouho vám to tu prosimtě běží? Kdo to programoval? Kolik jste mu za to zaplatili? Vy jste mu zaplatili??!

Místo toho, abych mu zdlouhavě popisoval, na co jsem přišel, jsem se ho zeptal. Máš účet u týhle banky? No samozřejmě. Dej mi číslo účtu. Nechápavě mi diktoval svoje číslo účtu. Řekl jsem mu, teď se koukej z okna. Za pár vteřin jsem mu začal číst údaje z jeho účtu a žertem se zeptal, kolik peněz mu tam mám nechat, až si budu chtít něco poslat do mojí banky, na můj účet.

Analýza problému: „Programátoři“ (a nebyli to nějací studenti, ale firma, která se chlubila bezpečností svých aplikací) „zapomněli“ na něco, co se nazývá Neviditelná bariéra na straně klienta. Neuvědomili si, že pro druhý krok používají tu nejméně vhodnou metodu pro ověřování identity klienta (webového prohlížeče) – přes formulářové políčko typu „hidden“. Že to si může každý upravit a podvést tak aplikaci. Proč? Těžko říct, možná že nakonec ona firma skutečně zaměstnávala nějaké studenty, kterým zaplatila pár korun a tučnou provizi si nechali. Kdo ví?

Poznámka pod čarou: Nikdy neplaťte málo svému doktorovi, právníkovi ani programátorovi!

Závěr: Zapamatujte si, že existuje něco jako Neviditelná bariéra mezi klientem a serverem. Že data, která už jste jednou verifikovali musíte zkontrolovat znovu, pokud je posíláte zpátky za tuto bariéru!!!

Zkuste si vzpomenout na pohádku o kůzlátkách, která byla doma sama. Maminka se vrátila zpátky. Kůzlátka už vědí, jak dopadly sousedovic mláďata posledně, když uvěřily vlkovi, který si změnil hlas. Jsou chytrá. Mají na dveřích nové kukátko. Neotevřou, dokud se nepodívají, že je to skutečně jejich maminka. Ta si ale něco zapomněla venku a „hned je zpátky“. Vyběhne ven a za chvilku někdo klepe.

Kdopak je asi za dveřmi?

Klient –

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *