A Shatter attack egy szoftvertechnológia , amelyet hackerek használnak , hogy megkerüljék a biztonsági korlátozásokat a Microsoft Windows operációs rendszer ugyanazon munkamenetén belüli folyamatai között . Kihasználja az üzenettovábbítási architektúra hibáját, és lehetővé teszi, hogy egy alkalmazás tetszőleges kódot fecskendezzen be bármely más alkalmazásba vagy szolgáltatásba , amely ugyanabban a munkamenetben fut. Ennek eredményeként a jogosultságok jogosulatlan kiterjesztése történhet .
Egy új típusú támadásról heves vita folyik a biztonsági szakemberek körében Chris Page [1] , független adatvédelmi tanácsadó cikkének 2002. augusztusi publikálása óta. Ez a dokumentum először vezette be a "shatter attack" kifejezést annak a folyamatnak a leírására, amellyel egy alkalmazás tetszőleges kódot tud végrehajtani egy másik alkalmazásban. Ez azért lehetséges, mert a Windows lehetővé teszi az alacsonyabb jogosultságokkal rendelkező alkalmazások számára, hogy üzeneteket küldjenek magasabb jogosultságokkal rendelkező alkalmazásoknak. Az üzenet paraméterként tartalmazhatja egy visszahívási függvény címét az alkalmazás címteréből. Ha egy támadónak sikerül beillesztenie adatait egy másik alkalmazás memóriájába (például shellkód beszúrásával egy szerkesztőablakba vagy a VirtualAllocEx és a WriteProcessMemory függvények használatával), akkor küldhet neki egy WM_TIMER üzenetet, és megadhatja a visszahívási függvény címét. amely ezekre az adatokra vonatkozik.
Néhány héttel a cikk megjelenése után a Microsoft egyetértett abban, hogy a probléma fennáll, de egyúttal tisztázta [2] , hogy hiba ezt Windows-hibának nevezni, mivel a probléma magában a kiemelten kiemelt szolgáltatásban rejlik.
2002 decemberében a Microsoft kiadott egy javítást a Windows NT 4.0 , a Windows 2000 és a Windows XP rendszerekhez , hogy megakadályozza az "összetörő támadást" [3] . Ez azonban részleges megoldást jelentett a problémára, mivel a javítás a Windows rendszerrel szállított szolgáltatásokra vonatkozott. Maga az architektúra azonban nem változott, és a fenyegetés továbbra is fennáll más alkalmazások és szolgáltatások számára.
A Windows Vista rendszerben a problémát átfogóan megoldották, két jelentős változtatással. Először is, a 0. munkamenet kizárólag a rendszerfolyamatok számára van fenntartva, és a felhasználó már nem jelentkezik be ebbe a munkamenetbe [4] . Másodszor, a legtöbb üzenet már nem kerül elküldésre az alacsony jogosultságokkal rendelkező folyamatoktól a magas jogosultságokkal rendelkező folyamatokhoz ( User Interface Privilege Isolation , UIPI) [5] . Az Internet Explorer 7 például ezt az újítást használja arra, hogy korlátozza a renderelő összetevők interakcióját a rendszer többi részével.