( nice | 2011. 08. 08., h – 22:32 )

> De, pont erre született.

Az ASLR és a W^X által, nem? Az viszont a vanilla kernel alatt is van már, noha nem olyan erős, mint a PaX-é, és igényel némi támogatást a fordítótól (meg a programtól, hogy ne akarjon gonosz mprotect-et hívni).

> Rosszul gondolod. PaX esetén nincs fix címen a vsyscall sem.

Ez tényleg jó, és elismerem, hogy a PaX zseniális alkotás, de úgy tudom, a vsyscallba nem raknak kritikus dolgokat.

> Honnan ered ez a bizalom? ;)

Hát, tudom, hogy nem valami sok, de ezt tudom erre mutatni:
http://en.opensuse.org/openSUSE:Security_Features

> Legalábbis ebben reménykedsz. ;)

Arra törekszem, hogy a felhasználók ne hozhassanak be binárisokat (ld. fent a noexecről szóló dolgokat). Pl. a webszerver sem írhat exec opcióval mountolt partícióra. Logfájlt sem (mint ahogy semmilyen más démonnak sem engedem ezt).

> Az megvan, hogy egyedül PaX alatt nem írható a .text?

Nem az írhatóságról, hanem a randomizációról volt itt szó. Egyébként lehet, hogy hülyeséget kérdezek, de ha egy program úgy lett lefordítva, hogy a betöltődés után ne legyen végrehajtható a text (és miért lehetne), akkor csak futásidőben tudja azzá tenni magán mprotect segítségével (ezt pedig miért tenné). Tudom, hogy a PaX ezt is megakadályozza, de fortify source, ASLR és stack protector esetén azért van valamekkora védelem az ellen, hogy valaki rávegyen egy programot ilyen őrültségre. Persze olyan hibát kihasználva is megtehető ez, ami ellen a fentiek egyike sem véd, de mi van, ha én ezt gyakorlatilag elhanyagolom?