Monthly Archives: August 2006

Ross Anderson’s <i>Security Engineering</i> is free beer

A great security book, Security Engineering is now available online for free. The author, Ross Anderson, convinced Wiley to make it available so that as many people as possible can have access.

Bruce Schneier is quoted `If you’re even thinking of doing any security engineering, you need to read this book’. I’d go further and extend this to any kind of engineering. I think it’s one of those rare books that pretty much everyone involved in computers or technology in general should read (another might be Brooks’ The Mythical Man Month). Security Engineering is packed with knowledge and deep insight across a wide range of topics. It’s also comprehensively referenced, making it a great stepping off point for further study.

For those interested in learning more about historical Mandatory Access Control, MLS and other advanced security models, the Multilevel Security chapter is worth reading. While only touching on Type Enforcement, it provides a lot of background material for understanding the historical context of SELinux.

Also, Ross has a blog.

Hard problems

I was kind of surprised and also happy to see that Dan Kegel’s The C10K Problem is still being actively maintained after seven years (with recent updates covering Evgeniy’s kevent work). That’d have to make it one of the oldest active Linux documents on the Internet. Which is like how people describe volcanoes.

I’ve glanced through a copy of the new SELinux book, SELinux by Example, and it looks to be very comprehensive. I’d say it’s the best current resource on the subject.

FC6 will include some SELinux usability improvements, most notably, a new GUI desktop tool setroubleshoot, which was inspired by the idea of the Gnome Bug Buddy. The idea is to notify the user when something goes wrong (e.g. an AVC denial), and present them with a clear explanation and an easy means to do something constructive in response. In addition to the detailed design documentation at the above link, setroubleshoot has been blogged about by Karl MacMillan and Dan Walsh.

setroubleshoot alert
Setroubleshoot Alert.

There’s also a new facility for maintaining the correct labels on files, restorecond, which runs in the background and relabels files automatically in certain cases (e.g. for files being served by Apache). This is of course a trade-off between security and usability, and is entirely configurable via


It’s really great to see these kinds of improvements being made. Security is a hard problem, and such problems take a lot of time and effort to solve effectively. We’re getting there.

OLPC fun

I received an OLPC test board on Friday and spent much of the weekend playing with it.

OLPC test board running Fedora

The test board seems to work as expected, with a couple of minor BIOS bugs. I haven’t had much luck with the OPLC Fedora build images, which I gather contain the neat UI stuff, although normal Fedora development snapshots seem to be ok. I’ve only done text mode so far (not sure if I’ll even bother trying to get Gnome running with 128K of RAM).

Some possibly helpful tips:

  • I’m using a portable Segate 60GB USB hard drive, which has a second USB cable just for power. This is useful as the OLPC board doesn’t have enough power for the drive via any of its onboard USB ports, and you need the boot drive connected directly due to a BIOS bug. So, I can connect the power-only USB cable to a powered hub and the data cable to the board.
  • For wired ethernet, I’m using an old SMC 2208 USB ethernet adapter, which uses the rtl8150 driver (it’s the very last item in the driver selection dialog during the Fedora install).
  • I also have a new D-Link DUB-E100 USB ethernet adapter, which according to online docs, should work with the usbnet driver, although I haven’t had any luck with that.

It looks like there are many interesting and novel engineering problems to be solved for this project — certainly no shortage of solid challenges for software and hardware hackers. All kinds of useful development info is being added to the OLPC Trac system.