Return-to-libc_attack

Návrat-k-libc útoku je počítačové bezpečnosti útok obvykle začíná přetečení vyrovnávací paměti , ve kterém zpáteční adresu na zásobníku se nahrazuje adresu jiného výuky a další část zásobníku je přepsán poskytovat argumenty k této funkci. To umožňuje útočníkům volat předcházející funkce bez nutnosti vložení škodlivého kódu do programu.

Sdílená knihovna s názvem " libc "poskytuje modul C Runtime na UNIX systémech stylu. Ačkoli by útočník mohl provést kód návrat kdekoli, libc je nejpravděpodobnější cíl, protože je vždy vázána na program, a poskytuje užitečné vyzývá k útočníkovi (např. systém () volání spustit libovolný program, který potřebuje pouze jeden argument). To je důvod, proč využívat je nazýván "návrat-k-libc", i když zpáteční adresa může ukazovat na zcela jiné místo.

Ochrana před návrat-k-libc zaútočí

Non-spustitelný zásobník může zabránit některým buffer overflow vykořisťování, ale nemůže zabránit tomu, návrat-k-libc útoku, protože v návrat-k-libc útoku pouze stávající spustitelný kód je používán.Na druhé straně tyto útoky mohou volat pouze na již existující funkce. Stack-fantastické ochrana může zabránit, nebo bránit zneužívání, jak to může odhalit korupci v zásobníku a případně vypláchnout ohrožena segmentu. adresního prostoru Rozložení Náhodnost (ASLR) činí tento typ útoku extrémně nepravděpodobné uspět na 64-bitové počítače jako paměť místa funkcí jsou náhodné. Pro 32-bitové systémy ASLR poskytuje jen málo přínosné, protože tam jsou jen 16 bitů k dispozici pro randomizace, a mohou být poraženi hrubou silou během několika minut. [ 1 ]

Související útoky

Return-orientované programování je vypracování techniky používané v tomto útoku, a mohou být použity k provedení operací obecnější metodou řetězení jednotlivých menších útoky, které provést malý počet instrukcí najednou.