Openwall Linux 3.0 — No SUIDs, Anti-Log-Spoofing
solardiz writes "Openwall GNU/*/Linux (or Owl for short) version 3.0 is out, marking 10 years of work on the project. Owl is a small, security-enhanced Linux distro for servers, appliances, and virtual appliances. Two curious properties of Owl 3.0: no SUID programs in the default install (yet the system is usable, including password changing); and logging of who sends messages to syslog (thus, a user can't have a log message appear to come, say, from the kernel or sshd). No other distro has these. Other highlights of Owl 3.0: single live+install+source CD, i686 or x86_64, integrated OpenVZ (host and/or guest), 'make iso' & 'make vztemplate' in the included build environment, ext4 by default, xz in tar/rpm/less, 'anti-Debian' key blacklisting in OpenSSH. A full install is under 400 MB, and it can rebuild itself from source."
While OpenWall won't see much adoption on it's own I do hope a lot of the work gets ported to other distributions so it is in common use.
Not trolling, but Linux Security is somewhat atrocious these days with the whole security via obscurity approach, so I for one have a better state of mind when I know I can protect myself even in the result of a succusful exploit.
If you ignore ACs because they are anonymous - you're an idiot.
This is pretty interesting, I just wonder what happens to Fortress Linux?
"Never give up, never surrender!"
Can it do so with cross-compilation? I want this as an ARM distro...
"Flyin' in just a sweet place,
Never been known to fail..."
Can someone explain (for real) the point of the 'anti-Debian' key blacklist?
Is it because of the Debian-specific vulnerability in OpenSSH? I thought that was a couple years ago.
THL phish sticks
While I'm not terribly interested in the distribution itself, its great to see a classic Slashdot story about some major or point release of a semi-well known OSS product.
Bye!
The exploits named in the summary are mostly for locally connected users, which means academic environments. I mean, how would you send a message to syslog over the web?
The kind of secure system one needs today is mostly about the web server, if it doesn't come through port 80 it never reaches the server because the router blocks it.
I'm not sure I believe that. The only way I can think of permitting things like su and passwd (among many others) is by running some sort of permissions escalation daemon ("owl-control" perhaps?) as root that essentially does the same thing. This moves the vulnerability from the binary to the permissions daemon.
There is almost no documentation on owl-control; the best I could find was a FreeBSD port and the (encoded) man page as plucked from CVS HEAD.
If this has been independently audited and continues to appear to be a Good Idea then perhaps it would be of interest to one of the larger distributions?
Use my userscript to add story images to Slashdot. There's no going back.
Two curious properties of Owl 3.0: no SUID programs in the default install (yet the system is usable, including password changing); and logging of who sends messages to syslog (thus, a user can't have a log message appear to come, say, from the kernel or sshd). No other distro has these.
Of all the Linux vulnerabilities in the past few years, how many would have been stopped by this?
These things sound nice, but I'm wondering if they are actually useful or if they are just security theater.
News that matters.
Next up, Microsoft/Symantec/Cisco security product and costs 10's of thousands more! Can't leave the point-and-click jui jitsu black belts out.
http://www.maxineudall.com/2010/02/should-economists-be-sued-for-malpractice.html
t Linux Security is somewhat atrocious these days with the whole security via obscurity approach
Your ideas are intriguing to me. I would like to subscribe to your newsletter.
http://www.maxineudall.com/2010/02/should-economists-be-sued-for-malpractice.html
Here's one of the better criticisms of dropping SUID, and it's from an Openwall developer. These criticisms are echoed by almost everyone thinking about removing SUID.
There's a lot of talk lately regarding replacing the SUID bit on program
binaries in Linux distros with filesystem capabilities. Specifically,
Fedora and Ubuntu are heading in that direction.
Fedora:
http://fedoraproject.org/wiki/Features/RemoveSETUID
https://bugzilla.redhat.com/show_bug.cgi?id=646440
Ubuntu:
http://www.outflux.net/blog/archives/2010/02/09/easy-example-of-fscaps/
https://wiki.ubuntu.com/Security/FilesystemCapabilties
While in general this is a good idea, there are issues with it, in
arbitrary order:
- Some currently-SUID programs are aware of them being (potentially)
SUID, and will drop the "more privileged" euid when it is no longer
needed, but they will probably not be aware of them possessing
capabilities. This may result in larger parts of the programs
(sometimes orders of magnitude larger) running with elevated privileges
(or with allowed-to-be-elevated privileges, which is a privilege on its
own and is usable through vulnerabilities that allow for arbitrary code
execution). Let's consider ping, which appears to be the classical
example of "where filesystem capabilities will help" (or so it is
claimed). IIRC, it starts by acquiring a raw socket (NB: of a certain
somewhat-limited type), then drops root privs (if it was installed SUID
root and run by non-root), then proceeds to parse the command-line,
resolve the provided hostname, and so on. If the SUID bit is replaced
with cap_net_raw+ep, as seen in Kees' example above, will ping know to
drop this capability? Hardly. Not without a source code patch.
Besides, dropping the capability might [need to] require privileges
beyond CAP_NET_RAW itself (recall the capability-dropping attack on
sendmail from a decade ago). So does moving from SUID root to
cap_net_raw+ep improve security? Most likely not. On the contrary, it
results in hundreds of lines of ping's code and thousands of lines of
library code (DNS resolver) running with elevated privileges, as
compared to just a few lines of ping.c, which was the case with simple
SUID root. Granted, those "elevated privileges" are a lot less than
root privileges, but they're a lot more than having a single raw socket
of a specific type.
- In some cases, the capability sets being granted are (almost)
equivalent (or expandable to) full root powers. This is seen in:
http://people.fedoraproject.org/~dwalsh/policycoreutils_setuid.patch
-%attr(4755,root,root) %{_bindir}/newrole
+%attr(0755,root,root) %caps(cap_audit_write,cap_setuid) %{_bindir}/newrole
-%{_sbindir}/seunshare
+%attr(0755,root,root) %caps(cap_setuid,cap_dac_override,cap_sys_admin,cap_sys_nice) %{_sbindir}/seunshare
This mostly just sweeps the SUID root under the rug, where the sysadmin
will hopefully not see it and thus feel safer. However, it may expose
more problems in the programs if they knew to drop root, but wouldn't
know to drop the capabilities (same issue I described above for ping).
Granted, vulnerabilities of certain classes might become unexploitable
or be partially mitigated. For example, if no direct code execution is
possible (not a buffer overflow, etc.), but "only" privileged access to
an attacker-provided arbitrary pathname is possible, then "newrole"
above would be protected, but "seunshare" above would not (because of
cap_dac_override).
- Completely getting rid of SUID root pro
I'm interested in this for a VMware guest OS, as a possible alternative to m0n0wall. Have the authors thought about that kind of implementation? How much RAM does it need to run adequately?
Bill Stewart
New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
There's always pfSense as an alternative to m0n0wall. I run many of those under VMWare.
I chose it for its easy multi external link capabilities, after I gave up on Linux for this and was pleasantly surprised by its ease of use, stability and huge range of features.
It is nearly bullet proof as I discovered when one of a customer's VMFS died. All the other VMs fell over immediately but the pfSense router carried on running without its "hard disc" for two days before I replaced it. Internet access downtime was 2 seconds as I cut it over. Admittedly the web interface vanished but the routing, VPNs, firewall etc carried on running.
As to OWL, its a Linux distro so it will have no problems with being a VM - that's the whole point of virtualization. You might have to select "Linux other (64 bit)" but my many Gentoo's run happily like that
Why on earth should the devs even think about VMWare, HyperV, KVM or whatever - that's your job! Apart from considering making the guest tools pre-packaged what should they be doing? I doubt they care whether you spec your boxen from Dell. HP, IBM or PC World so why should they care whether it is physical or VM?
As to asking about RAM requirements - I'd suggest (without even having looked at it) >=256Mb depending what you do with it. I've no doubt that fact is covered on their web site. If you are using ESXi and not just playing on your home PC then the answer would probably be "who cares, RAM is cheap as chips"
Go on - try it, I might even do the same.
Cheers
Jon
PS You have a 5 digit /.ID. Have you been moonlighting on other OSs for the last 10 years, asking such questions 8)
It has been explained to this moron ad naseum that the priority of all bugs in the Linux kernel is 100%, and that they are not treated any different because each in every bug that is identified gets fixed as soon as humanly possible. There is a lot more to the story than that as well, and he continues to either pretend to be completely stupid and unable to understand how the Linux development process assures security, or is actually that stupid. He is a known troll. Just ignore him.
Agreed. Perfect appliance baseline. Most appliances don't want package mangement outside the scope of their platform workload, anyway.
"Flyin' in just a sweet place,
Never been known to fail..."
I'm interested in this for a VMware guest OS, as a possible alternative to m0n0wall. Have the authors thought about that kind of implementation
Yes, Owl 3.0 works in VMware out of the box. We mostly run it in QEMU and VirtualBox for our VM-based testing, though.
BTW, you might find it curious that when you run Owl in a VM like this, you can further create OpenVZ containers with multiple instances of Owl and with other Linux distros inside that single running copy of Owl. Such container-based virtualization has no further performance overhead. :-)
How much RAM does it need to run adequately?
128 MB is plenty, probably a lot less will do. I have my QEMU set to its default of 128 MB when I do install-tests with new Owl ISOs. Also, my Owl-based router and small fileserver at home has 128 MB RAM (runs the default-enabled set of Owl services plus ntpd, named, pppd/pppoe, openvpn, squid, NFS, and a sometimes a few lftp's and ctorrent's under screen).
On the other hand, of course you may need a lot more RAM for your specific uses of Owl - e.g., to run many OpenVZ containers, to do web hosting, etc. We currently administer several 32 GB RAM machines running Owl and one 64 GB RAM machine, as well as a countless number of 4-16 GB machines - so we know Owl has no problem with these larger RAM sizes as well (and with the many OpenVZ containers running various Linux distros actually making use of this RAM).
No, it is not SUID. It just has the capability to grant any capability to the user. LOL.
the Openwall website groans and moans imploring for a facelift. it's so poignant..
metrix007 is pissed about this http://yro.slashdot.org/comments.pl?sid=1888084&cid=34462614 where he blundered on hosts files against a person he was trolling there. metrix007 got played. He played himself, and right on his first attempted trolling reply. Hilarious.
metrix007 is pissed about this http://yro.slashdot.org/comments.pl?sid=1888084&cid=34462614 where he blundered on hosts files against a person he was trolling there. metrix007 got played. He played himself, and right on his first attempted trolling reply and he ran like a scared beyotch after that. Hilarious. Then, metrix007, who was still stinging from his bad fuckup due to his skimming and trolling, attempted to troll that same person again and failed once more http://tech.slashdot.org/comments.pl?sid=1901826&cid=34528502 because the +5 moderation still stands strong versus metrix007's trolling and blatant technical screw ups.
metrix007 is pissed about this http://yro.slashdot.org/comments.pl?sid=1888084&cid=34462614 where he blundered on hosts files against a person he was trolling there. metrix007 got played. He played himself, and right on his first attempted trolling reply and he ran like a scared beyotch after that. Hilarious. Then, metrix007, who was still stinging from his bad fuckup due to his skimming and trolling, attempted to troll that same person again and failed once more http://tech.slashdot.org/comments.pl?sid=1901826&cid=34528502 because the +5 moderation still stands strong versus metrix007's trolling & blatant technical screw ups.
metrix007 is pissed about this http://yro.slashdot.org/comments.pl?sid=1888084&cid=34462614 where he blundered on hosts files against a person he was trolling there. metrix007 got played. He played himself, and right on his first attempted trolling reply and he ran like a scared beyotch after that. Hilarious. Then, metrix007, who was still stinging from his bad fuck ups due to his skimming and trolling, attempted to troll that same person again and failed once more http://tech.slashdot.org/comments.pl?sid=1901826&cid=34528502 because the +5 moderation still stands strong versus metrix007's trolling and blatant technical screw ups.
metrix007 is pissed about this http://yro.slashdot.org/comments.pl?sid=1888084&cid=34462614 where he blundered on hosts files against a person he was trolling there. metrix007 got played. He played himself, and right on his first attempted trolling reply and he ran like a scared beyotch after that. Hilarious. Then, metrix007, who was still stinging from his bad fuck ups due to his skimming and trolling, attempted to troll that same person again and failed once more http://tech.slashdot.org/comments.pl?sid=1901826&cid=34528502 because the +5 moderation still stands strong versus metrix007's trolling and blatant technical screw ups.
God I hate you guys
Solardiz (and/or gm.outside):
First, thanks for participating in this thread (and for submitting the article, and for making OWL).
Second, the documentation on owl-control is very sparse; I can't even find an HTML-rendered version of its man page (as noted in my GGP) let alone a more detailed description of its features, uses, advantages, etc. It is obviously central to the security model of the system. Please reply to the GGP with a link to more detail on owl-control (assuming you have one) as assembling it from your comments is not easy.
Use my userscript to add story images to Slashdot. There's no going back.
Re: immutable/append-only flags -- you are obviously wrong, chattr -i and chattr -a are your friends to remove these flags in a normal multi-user runlevel, indeed, you need to be root to do it, though.
Actually, it is possible to configure a Linux system such that "chattr -a" won't work without having to reboot first. With ancient kernels, we had BSD-style securelevel for this. With recent ones, we have the capability bounding set instead (/proc/sys/kernel/cap-bound). But very few sysadmins make use of this functionality, and it is tricky and painful to use it in a way that would achieve much (need to make almost the entire "base system" immutable - the individual files - or watch for any unexpected reboots and consider those signs of a potential intrusion, but that just wastes time). I tried this with securelevel on Linux 2.0 kernels in late 1990s, but I am not doing this anymore.
Cool, thanks! I've got a lab where we evaluate firewall and intrusion detection products, and since we just got a new big VMware box, I'd like to be able to fill it full of well-behaved client VMs, evil nasty client VMs, etc., so a distro that's reasonably small and has reasonable features and convenient management is a helpful thing.
Bill Stewart
New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks