The Insecurity of OpenBSD (2010)
Much to like, but one point is somewhat outdated and another is missing.<p>1. The lack of an AppArmor-type MAC implementation is somewhat outdated since Theo rolled his own with &quot;pledge&quot;. I&#x27;m not a huge fan of how a cabal of Theo plus one or two guys basically hacks out something of new cloth on a whim to solve a problem that&#x27;s been done many times before, on the arrogant supposition they&#x27;re doing it better than anyone else has ever done, and then promptly stuck it into production. This has happened many times before. Certainly some results have been good, but case in point, &quot;doas&quot;. You upgrade one point release and suddenly sudo is not there any more, you have a new tool lacking basic features with completely different semantics. Yes, you can install sudo as a package if you want. Yes, maybe doas is smaller and easier to audit. But was sudo really a problem? Sure the fanboys will love it, but most normal UNIX people are probably not going to appreciate something like sudo just going away. It lacks little &quot;features&quot; like credential caching, which I am sure the fanboys will tell you is bad to begin with, but which most of the rest of us will find a pain in the ass. This sort of thing happens with OpenBSD semiregularly.<p>Of course, many of these homegrown solutions are produced after years of Theo &amp; cabal insisting that there was no need for it and it was wrongheaded. There&#x27;s &quot;pledge,&quot; but then there&#x27;s little things like full-disk encryption, which is basically a requirement for use on mobile, but which OpenBSD never had any use for, until it did, and came out with its own homegrown thing (which still doesn&#x27;t work that great, especially when upgrading).<p>*And since so many others have brought up pledge, it&#x27;s not really a solution on the same scale since you have to build the pledges into the application, there&#x27;s not an easy system for imposing pledges on an application externally. This makes maintenance and adoption much harder, basically nonexistent for most of the package tree.<p>2. The big reason OpenBSD is insecure, is its lack of any meaningful update mechanism to their supposedly rock-solid secure base system. Literally the official way to do security updates is to monitor OpenBSD&#x27;s website, download and apply patches by hand to a source install, rebuild, and run a series of listed commands by hand. If you want to automate this further, you are on your own. It&#x27;s been this way forever. It&#x27;s craziness, and it a big reason that OpenBSD is basically not an option for production in many settings.<p>Upgrading to new releases is a similar deal. The homegrown sysmerge hack has made this slightly less awful, but manual hackery is still required, unreliable, can wipe out customization, and doing a clean reinstall is still urged as the best path in many cases.