by torne » Fri Dec 19, 2003 9:43 pm
The big difference is that grsecurity is principally designed to secure ordinary Linux systems against remote or local penetration; i.e. to help ordinary system administrators protect against the attacks encountered every second on the Internet and generally on any computer with untrusted users.
SELinux is designed to make an operating system compliant with Common Criteria security standards, suitable for low-level military use. It attempts to protect against attacks in the way GRSec does (though with different mechanisms) but also is designed to protect privacy, confidentiality, and all other kinds of information leakage. It's also designed to deal with classified (this doesn't have to be Top Secret; trade secrets, perhaps) data, and the vital restriction that processes with access to classified data only be allowed to write to nonclassified data under controlled conditions, to prevent a trojan/virus from leaking data which should be restricted.
In my opinion, the requirements of SELinux make it vastly overcomplicated if your goals are simply to protect yourself from 'regular' compromise. SELinux *should* achieve the goal of 'crack protection', but it's almost as a side effect of its design. GRSec is a more specific defence designed to tackle real-world attacks, rather than implement any particular theoretical security model. Please don't take this to be any form of attack on SELinux; their goals are noble and their implementation is, from what I have seen, excellent. Nonetheless, I chose GRSec because I felt that it would be better suited to the needs of an average system administrator, and the vastly reduced complexity of its configuration allows me to be far more confident that the end result is secure. I simply don't trust my own abilities enough to go with the more flexible tool. =)