Diit.cz - Novinky a informace o hardware, software a internetu

Diskuse k I Transmeta podporuje NX bit

Wladows: Díky za upřesnění. Máš asi pravdu, já ten manuál k Pentiu I četl už hrooozně dávno. Ale pamatoval jsem si, že tam něco takového je.
Docela by mě zajímalo, jak se to asi dotkne run-time packerů (jak psal _greg), protože UPX používám docela dost. :-I

+1
0
-1
Je komentář přínosný?

eMan: vela vela elektronickej krvy :) napada niekoho co spravit s telom chcipnuteho neposlusneho programu ? nejaky externyu zdroj na rakvacamp ? :)

+1
0
-1
Je komentář přínosný?

dalsi jediny (vedle transmenty) je i intel u IA64, ten totiz x86 kod umoznuje sw emulovat (na podobne technologii jako code morphing (prevzato z alphy)), a tedy je mozna sw uprava. Otazkou je jen kdy tento sw bude dostupny (intel rikal letos) ...

+1
0
-1
Je komentář přínosný?

Taky by mě zajímalo kolik programů bude po aplikaci SP2, díky této feature a blbě napsaným kódem, padat.

+1
0
-1
Je komentář přínosný?

A me by zajimalo jak to vypada, kdyz OS zabije neposlusny program ;-)

+1
0
-1
Je komentář přínosný?

Kubass: To te zas tak moc zajimat nemusi, protoze puziti tohoto bitu pujde nastavit pro kazdou aplikaci zvlast.

+1
0
-1
Je komentář přínosný?

Kubass: Čím více, tím lépe. Alespoň se ty programy vyladí. Nemají co "kreslit" do paměti, která jim nepatří. :-(
Je docela síla, že to bude až teď, myslím, že tahle věc funguje v procesorech už od I386 (nastavení, zda stránka paměti má read/write/executable přístup - pokud se s takovou stránkou pak dělá něco, co se dělat nemá generuje procesor výjimku General Protection Fault). :-(
Jenže nikdo se nestaral o to, aby se ten bit pro danou stránku paměti ve Wokenicich nastavil. :-((

+1
0
-1
Je komentář přínosný?

>To te zas tak moc zajimat nemusi, protoze puziti tohoto bitu pujde nastavit pro kazdou aplikaci zvlast.
 
Coze? No, to je teda zase "bezpecnost". :-(

+1
0
-1
Je komentář přínosný?

napad je to samozrejme rozumnej, jak ale bylo zmineno, vi se o nem dlouho, tak firmy ted s velkou slavou objevuji, to co predtim zanedbaly.
Znamena to, ze ale nebudoyu fungovat soucasne programy s run-time rozbalovanim, jako napriklad pomoci UPX nebo PE-Compact.

+1
0
-1
Je komentář přínosný?

Radek N: Ochrana na úrovni stránek existuje už od 386 a jak Windows (NT a výš), tak Unixy ji samozřejmě používají. Problém je v tom, že lze nastavit jen 3 možnosti přístupu:
- nepřístupná stránka (---)
- pro čtení a vykonávání (r-x)
- pro čtení, zápis a vykonávání (rwx)
Platí, že vykonávání instrukcí = čtení, takže jakákoliv čitelná stránka je zároveň i spustitelná. Tohle normálně nevadí, pokud nám nejde o bezpečnost. Vetšina buffer-overflow útoků způsobí přepsání zásobníku (=datové oblasti) kusem kódu, na který pak program skočí. Protože procesor vesele provede cokoliv dokáže přečíst, máme problém.

Přidaný No eXecute bit umožní konečně rozlišit datové (NX=1) a programové stránky paměti (NX=0). Vznikne nám 5 možných druhů přístupu ke stránce:
- nepřístupná stránka (---)
- jen pro čtení (r--) NX=1
- pro čtení a zápis (rw-) NX=1
- pro čtení a vykonávání (r-x) NX=0
- pro čtení, zápis a vykonávání (rwx) NX=0

Pokud bude zásobník implicitně nespustitelný (NX=1), tak útok typu buffer overflow způsobí pouze výjimku (a případně pád programu), ale propašovaný kód se neprovede. O to tady jde.

BTW, je zajímavé, že v týden starém manuálu od Intelu (http://developer.intel.com/design/pentium4/manuals/253668.htm) se o NX bitu ještě vůbec nic nepíše.

Taky mně zajímá kolik kódu přestane s NX bitem fungovat, protože pro řadu věcí se legálně používá dynamické vytváření kousků kódu v alokované paměti (tj. v datové oblasti). Jde třeba o různé stuby, trampolíny, kompilované bitmapy, atd...

+1
0
-1
Je komentář přínosný?

No , kdyz se podivam na chybu v lsass, nebo starsi csrss, nebo jak se to ... tak to skonci nejpis padem celeho OS :-)))
No alespon se ale nebude sirit.

+1
0
-1
Je komentář přínosný?

Honza: Fakt? Odkud máš tuhle informaci?

+1
0
-1
Je komentář přínosný?

Pro psaní komentářů se, prosím, přihlaste nebo registrujte.