2009. június 15., hétfő

Webalkalmazások biztonsági hibái - 10. Lefordított alkalmazások

Betörési tesztjeink során gyakran találkozunk azzal a jelenséggel, hogy a weboldalak fejlesztői ugyanazokat a hibákat követik el újra és újra. Ezen klasszikus hibákat egy több részből álló sorozatban szeretnénk bemutatni.

Sok webalkalmazás alkalmaz valamilyen beágyazott/lefordított kódot: ezek az esetek nagy részében csodaszépen animált menüket, izgőmozgó bannereket, esetleg az oldal betöltésekor megjelenő és az oldalt kiszürkítő "KATTINTS IDE OLCSÓ REPÜLŐJEGYEKÉRT!"-feliratot jelenítenek meg, de láttunk már példát arra is, amikor valamilyen üzleti funkcionalitást valósítottak meg ilyen módon.

Az ilyen "beágyazott" kódok kapcsán két technológia terjedt el: a java appletek és a flash. Nagyon sokban hasonlítanak - az eszközöket leszámítva ugyanazok a biztonsági problémák mondhatóak el velük kapcsolatban.

A flasht és appleteket nem túl nehéz programozni, ugyanakkor szerveroldalon nem igazán foglalnak működéskor erőforrást, ugyanis a varázslat nagy része a kliens böngészőjében történik, a kliens processzoridejét használva. Flash és java sandbox specifikus biztonsági is résből sok van, de a legizgalmasabb az a lehetőség, hogy viszonylag egyszerűen dekompilálhatóak a böngésző által futtatott .swf fájlok és appletek.

Maga a visszaforgatott kód is érdekes (lehet), azonban a legizgalmasabbak azok a pillanatok, amikor a lefordított kódból adatforgalom történik - a használt URL-eket a legtöbb dekompiler eszköz szépen kigyűjti. Tapasztalataink szerint a bevésett URL-ek mögött figyelő függvények a legritkább esetben alkalmaznak bármilyen ellenőrzést, validációt az inputokkal kapcsolatban: nem egy on-line flash játékban érhető el a highscore-listában 999.999.999 pont a 99. szinten azzal, hogy a submitkor meghívott függvényt böngészőből is meglátogatjuk egy megfelelően összeállított HTTP-kéréssel. (Vissza)fordítással nagyon egyszerűen megnyerhető a legtöbb on-line kvíz is, ami szépen animált flashes felülettel operál, ugyanis a függvények törzsében ott van a legtöbb esetben plain-textben a kérdésre adandó helyes válasz.

Teszteléssel appletek, flash objektumok vizsgálatával sok esetben kiegészíthető a webalkalmazásról a mapping fázisban alkotott képünk: a háttérrendszerből/webalkalmazásból letöltött képek, adatok, információk URL-je sok esetben árulkodó lehet. Amennyiben valamilyen biztonsági kontroll megvalósítása történik beágyazott kódok segítségével, visszaforgatással ezen kódok, algoritmusok ellenőrzése is megoldható.

Klasszikus java decomplier itt, flashesből a legjobb a HP által bekebelezett SWFscan.

Nincsenek megjegyzések:

Megjegyzés küldése

Kommentek