OpenBSD's Kernel Gets W^X Treatment On Amd64
New submitter brynet tips this news from Theo de Raadt:
Over the last two months Mike Larkin (mlarkin@) modified the amd64 kernel to follow the W^X principles. It started as a humble exercise to fix the .rodata segment, and kind of went crazy. As a result, no part of the kernel address space is writeable and executable simultaneously. At least that is the idea, modulo mistakes. Final attention to detail (which some of you experienced in buggy drafts in snapshots) was to make the MP and ACPI trampolines follow W^X, furthermore they are unmapped when not required. Final picture is many architectures were improved, but amd64 and sparc64 look the best due to MMU features available to service the W^X model. The entire safety model is also improved by a limited form of kernel ASLR (the code segment does not move around yet, but data and page table ASLR is fairly good."
My guess is 80% of you will get about 20% of what this email is saying, but you'll post on here like you know it all. /reflections of myself about 15 years ago. //Modulo mistakes... cute
Search your feelings, you know it to be true.
Does anyone know what the status is on other UNIX like kernels with respect to this W^X security feature? Is OpenBSD pioneering new ground here?
I expected a long rant from TdR. I was disappointed.
I wasn't aware the BSDs have different kernels. Do OpenBSD kernel changes also end up in the other BSDs?
(I guess it might not be worth it as I recently saw confirmation that *BSD is dying.)
C'mon, people, it's writexorexecute, as in "xor" as in "exclusive or". Write or execute is exactly what they're trying to avoid.
Never bothered learning how to tag stuff or contribute to tags on Slashdot, so just ranting here. Thank you, that is all.
In the english language itself, "or" doesn't necessarily imply "xor". Usually some other mechanism is used to imply exclusivity, either from situational awareness or from context in the surrounding text.
This doesn't do a hell of a lot of good in the kernel since you can also scribble directly to arbitrary physical memory -- including the pages mapped "no write". This is the big difference to userspace programs and tends to defeat the entire mechanism. Doing this makes a few things slightly harder, which is good, I guess.
The entire safety model is also improved by a limited form of kernel ASLR (the code segment does not move around yet, but data and page table ASLR is fairly good."
Oh, my - unopened quotation and an unclosed parenthetical! This crap drives me nuts. Don't journalists have to take English classes at all?
"Somebody has to do something. It's just incredibly pathetic it has to be us."
--- Jerry Garcia
I am one of those 80% who do not understand what W^X is --- and I am ready to admit that I do not understand it
But there is one thing that I would like to know ...
Is there anyone out there thinking of " W^Xifying" Linux?
...that I did understand all of this. (Maybe it goes with being between the six-digit guy and the four-digit one.)
In theory, theory and practice are the same; in practice they're different. (Yogi Berra & A. Einstein)
Like this one:
http://www.coresecurity.com/content/open-bsd-advisorie
I am impressed that OpenBSD is so righteously conservative they are just getting one of the security feature they are most famous for.
I hope developers of other systems would follow that example and I can't wait for someone to modify the linux kernel to support USB keyboards, or to modify Xorg to support 1024x768 resolution up from the previous maximum of 640x480.
As mentioned earlier, it's really NAND, not OR or XOR :)