Stříkání JIT - JIT spraying - Wikipedia
Stříkání JIT je třída zneužít zabezpečení počítače která obchází ochranu randomizace rozvržení adresního prostoru (ASLR) a prevence provádění dat (DEP) využíváním chování just-in-time kompilace.[1] Byl použit k vykořisťování PDF formát[2] a Adobe Flash.[3]
A kompilátor just-in-time (JIT) podle definice vytváří kód jako data. Vzhledem k tomu, že účelem je vytvářet spustitelná data, je kompilátor JIT jedním z mála typů programů, které nelze spustit v prostředí bez spustitelných dat. Z tohoto důvodu jsou překladače JIT obvykle vyňaty z prevence provádění dat. Útok spreje JIT ano haldy postřik s vygenerovaným kódem.
K výrobě exploit kódu z JIT, nápad od Diona Blazakise[4] se používá. Vstupní program, obvykle JavaScript nebo ActionScript, obvykle obsahuje četné konstantní hodnoty, které lze chybně provést jako kód. Například XOR lze použít operaci:[5]
var A = (0x11223344^0x44332211^0x44332211^ ...);
JIT poté transformuje bytecode na nativní kód x86 jako:
0: b8 44 33 22 11mov 0x11223344 $,% eax
mov eax,0x11223344
5: 35 11 22 33 44xor 0x44332211 $,% eax
xor eax,0x44332211
a: 35 11 22 33 44xor 0x44332211 $,% eax
xor eax,0x44332211
Útočník poté použije vhodnou chybu k přesměrování spuštění kódu do nově vygenerovaného kódu. Například a přetečení zásobníku nebo použijte zdarma chyba by mohla umožnit útoku upravit a ukazatel funkce nebo zpáteční adresa.
To způsobí, že CPU provede instrukce způsobem, který nechtěli autoři JIT. Útočník se obvykle neomezuje pouze na očekávané hranice instrukcí; je možné skočit doprostřed zamýšlené instrukce, aby ji CPU interpretovala jako něco jiného. Stejně jako u jiných než JIT ROP útoky, může to být dost operací k užitečnému převzetí kontroly nad počítačem. Pokračováním výše uvedeného příkladu se skokem na druhý bajt instrukce „mov“ vytvoří instrukce „inc“:
1: 44vč % zejm
vč zejm
2: 33 22xor (% edx),% zejm
xor zejm,DWORD PTR [edx]
4: 11 35 11 22 33 44příd % esi,0x44332211
příd DWORD PTR ds:0x44332211,esi
a: 35 11 22 33 44xor 0x44332211 $,% eax
xor eax,0x44332211
Počítačový hardware, který umožňuje přeskočit uprostřed instrukce, zahrnuje x86, x86-64, a PAŽE. Ačkoli je na tomto typu hardwaru obzvláště efektivní, postřik JIT funguje i na jiných systémech.
Pro ochranu před postřikem JIT může být kód JIT deaktivován nebo může být pro útočníka méně předvídatelný.[4]
Reference
- ^ Jürgen Schmidt (20. ledna 2011). „Vrácení postřikovače - JIT Spraying: Exploits to beat DEP and ASLR“. H. Citováno 22. ledna 2011.
- ^ Haifei Li (10. února 2010). „JIT Spraying in PDF“. Blog Fortinet. Archivovány od originál dne 18. dubna 2010. Citováno 22. ledna 2011.
- ^ Larry Seltzer (4. února 2010). „Nový“ JIT sprej „proniká nejlepší obranou systému Windows“. PCmag.com. Citováno 22. ledna 2011.
- ^ A b Dion Blazakis. "Využití tlumočníka. Odvození ukazatele a postřik JIT" (PDF). Black Hat & Defcon 2010.; „Snímky“ (PDF).
- ^ Psaní JIT-Spray Shellcode pro zábavu a zisk Alexey Sintsov,
Tento zabezpečení počítače článek je a pahýl. Wikipedii můžete pomoci pomocí rozšiřovat to. |