close

Tříštivý útok

Přejít na navigaci Přejít na hledání

Shatter attack je softwarová  technologie používaná hackery k obcházení bezpečnostních omezení mezi procesy ve stejné relaci v operačním systému Microsoft Windows . Využívá chyby v architektuře předávání zpráv a umožňuje jedné aplikaci vložit libovolný kód do jakékoli jiné aplikace nebo služby běžící ve stejné relaci. V důsledku toho může dojít k neoprávněné eskalaci oprávnění .

Popis

Nový typ útoku je předmětem vášnivých diskusí mezi bezpečnostními profesionály od srpna 2002, kdy byl zveřejněn článek Chrise Page [1] , nezávislého konzultanta pro ochranu dat. Tento dokument poprvé zavedl termín „shatter attack“ k popisu procesu, kterým může aplikace spustit libovolný kód v jiné aplikaci. To je možné, protože systém Windows umožňuje aplikacím s nižšími oprávněními odesílat zprávy aplikacím s vyššími oprávněními. Zpráva může obsahovat jako parametr adresu funkce zpětného volání z adresního prostoru aplikace. Pokud se útočníkovi podaří vložit svá data do paměti jiné aplikace (například vložením kódu shellu do editačního okna nebo pomocí funkcí VirtualAllocEx a WriteProcessMemory), může mu poslat zprávu WM_TIMER a zadat adresu funkce zpětného volání. který odkazuje na tyto údaje.

Několik týdnů po zveřejnění článku Microsoft souhlasil, že problém existuje, ale zároveň objasnil [2] , že je chybou nazývat to chybou Windows, protože problém spočívá v samotné vysoce privilegované službě.

Řešení

V prosinci 2002 vydala společnost Microsoft záplatu pro Windows NT 4.0 , Windows 2000 a Windows XP , aby zabránila „rozbitnému útoku“ [3] . Ale toto bylo částečné řešení problému, protože oprava byla pro služby dodávané se systémem Windows. Samotná architektura se však nezměnila a hrozba nadále existovala pro další aplikace a služby.

Ve Windows Vista byl problém vyřešen komplexně a došlo ke dvěma významným změnám. Za prvé, relace 0 je věnována výhradně systémovým procesům a uživatel se do této relace již nepřihlašuje [4] . Za druhé, většina zpráv již není odesílána z procesů s nízkými oprávněními do procesů s vysokými právy ( User Interface Privilege Isolation , UIPI) [5] . Například Internet Explorer 7 využívá tuto novinku k omezení interakce komponent vykreslování se zbytkem systému.

Poznámky

  1. Chris Paget. Využití návrhových nedostatků v Win32 API pro eskalaci oprávnění  (anglicky)  (downlink) (srpen 2002). Archivováno z originálu 4. září 2006.
  2. Informace o hlášené architektonické chybě ve Windows  (  nepřístupný odkaz) . technet . Microsoft Corporation (září 2002). Archivováno z originálu 1. května 2012.
  3. Microsoft Security Bulletin MS02-071  (anglicky)  (odkaz není k dispozici) . Microsoft Corporation (11. prosince 2002). Archivováno z originálu 1. května 2012.
  4. Vnitřní části jádra Windows Vista: Část 2 (odkaz dolů) . TechNet Magazine (březen 2007). Archivováno z originálu 1. května 2012. 
  5. Práce s řízením uživatelských účtů v aplikacích Windows Vista (odkaz dolů) . MSDN Magazine (leden 2007). Archivováno z originálu 1. května 2012. 

Odkazy