A Google is erősíti a Flash védelmét
Fegyverkezésbe kezdett a Flash, végre komolyan vehető biztonsági mechanizmusokkal vértezte fel az Adobe és a Google együttműködése a széles körben elterjedt webes beépülő szoftvert.
Szorosan együttműködött az Adobe és a Google biztonsági csapata a Flash megerősítésén, ennek köszönhetően a legutóbb kiadott 18.0.0.209-es verzióban több olyan megoldás is bemutatkozott, amelyet a Google elit szoftvermérnökei, a Project Zero munkatársai alkottak a Flash védelmére.
A Flash ellen indított támadások legnépszerűbb fajtája a puffertúlcsordulás. Ilyenkor a támadó egy rosszul leprogramozott objektumból ki tud törni, és a közvetlen szomszédos objektum által elfoglalt memóriaterületre tud ráírni. Ha a támadó tudja kontrollálni, hogy a túlcsordulásra kiszemelt objektum mellé milyen objektumot helyezzen a rendszer és abba (immár jogosultság nélkül) tetszőlegesen bele tud írni, akkor nyert ügye van. A szakemberek szerint ez utóbbi szerepre különösen alkalmas a Flash Vector. objektuma, amelynek első adateleme a hosszúságot rögzíti – ezt felülírva (a hosszúságot tetszőlegesen megnyújtva) nyílik meg a támadás lehetősége.
A Google megoldása a problémára a halomparticionálás (heap partitioning). Ezt a megoldást a cég saját böngészője, a Chrome mellett az Internet Explorer is használja, a lényege, hogy a memóriában tárolt objektumokat elszigeteli egymástól, így egy túlcsordulással nem lehet beleírni egy másik objektumba. A particionálást követően a támadó hiába igyekszik a két objektumot egymás után helyezni a halomban, ez nem fog sikerülni, mivel ezek immár két különböző heap részei. A Google itt jegyzi meg, hogy ez a védelem sokkal erősebb 64 bites böngésző (és 64 bites Flash) használatával, köszönhetően a kiterjesztett címtérnek.
A particionáláson túl egy másik kockázatminimalizáló megoldást bevezetésében is segített a Project Zero csapata. Ahogy említettük, a puffertúlcsordulásos támadás lényege, hogy a támadónak lehetősége legyen az objektumokat egymás mellé helyezni a memóriában, irányított módon. Ezt segít kiküszöbölni egy másik megoldás, amely elveszi ezt a lehetőséget a támadótól, a memóriát pedig kevésbé előrejelezhető módon osztja ki, még az egészen nagy méretű, akár több gigabájtos objektumok számára is.
Ünnepi mix a bértranszparenciától a kódoló vezetőkig Négy IT karrierrel kapcsolatos, érdekes témát csomagoltunk a karácsonyfa alá.
Az Adobe csapata sem volt tétlen, a cég is fejlesztett egy saját biztonsági mechanizmust, amit gyakorlatilag úgy írhatunk le, mint a Vector objektumok hosszára vonatkozó kétfaktoros autentikációt. A .209-es verziótól fogva ugyanis a Vector objektum hosszára vonatkozóan a Flash egy validációs titkot is kiír valahová. Ha a támadó felül is írja a hosszúságot, nem tudja, hogy a titkot milyen értékre kell állítania, az eltérés pedig azonnal a futás megszakítását vonja maga után. Ez jól kiegészíti a heap particionálást a 32 bites rendszereken, a két megoldás együtt már nagyon hatékony védelmet jelent az ilyen típusú támadások ellen.
A Project Zero a Google elit, IT-biztonsággal foglalkozó csapata, amelynek feladata a zero-day sebezhetőségek keresése – nem csak a Google szoftvereiben, hanem más népszerű szoftverekben is. A csoport korábban nem kis feszültséget generált az IT-biztonsággal foglalkozó szakértők körében azzal, hogy 90 napot adott a fejlesztőknek az általuk felfedezett hibák javítására, ezt követően a javítás kiadásától függetlenül pedig publikálta azokat. A Google most inkább a kooperációra helyezte a hangsúlyt, a Flash megerősítése úgy tűnik jobban szolgálta most a cég érdekeit.
További szaftos műszaki részletekért érdemes a Project Zero blogbejegyzését fellapozni.