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.
Platón ragadt informatikusok klubja Egyetlen más szakma sincs, ahol olyan gyorsan el lehet érni a karrier-platóra, mint az IT. A midlife, a mid-level mellett létezik mid-career krízis is.
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.