Why we use OpenBSD at VidiGuard
blog.vidiguard.com
blog.vidiguard.com
https://deftly.net/posts/2016-05-31-why-i-run-openbsd.html
(I agree and have gone 100% OpenBSD on all servers and even all my laptops now. Love love love.)
I found openbsd ran horridly hot and sluggish on my thinkpad so I've been trying to find a laptop that will work well with it.
Lenovo ThinkPad T440s = a clone of my main
Both work great. I had some issues before OpenBSD 5.9 but since 5.9 everything is wonderful, which is why I finally switched over 100%.
Doesn't run hot. Only a miniscule slower than my souped-up super-fast Arch Linux was on the same laptop, but that's a fair trade.
Happy to answer any questions and offer any advice. Click my username here and get my email address from my HN profile.
Sold those big Sun machines with the company, unfortunately.
could you please share where you get firmware for lenovo? thx
I'd go switch to some new version of Linux for a while, try FreeBSD for a while, and each time I tried OpenBSD again - OMG it just works with no effort, whereas the others (besides a kitchen-sink OS like Ubuntu) would never quite get it right.
Even for things where super-new Arch Linux would have trouble with the hardware, or require lots of tweaking to get Xorg working on a super-new laptop or whatever, just stick in the OpenBSD CD or USB, hit [Enter] a bunch of times for the defaults, and voila! A perfectly working base system, including X11 and all.
Love love love.
http://www.cambus.net/why-openbsd/
Somewhat unrelated, but a very interesting read:
"Why did I choose the DragonFlyBSD Operating System?"
https://bsdmag.org/siju_george/
Let's give the 3rd major BSD OS more love :)
(downvotes for asking a followup?)
OpenBSD's incredible code quality quite obviously doesn't apply to the ports tree (and that's not their fault) but we quite often ran into less popular products and third party libraries where the ports were updated in the order of weeks later than things like RedHat RPM for the latest vulnerability.
At point I backported a hotfix myself, the requirement of which was not conducive to security.
Disclaimer: This was years ago, things may have changed.
* Enforced W^X in the kernel on i386/amd64/sparc64.
* Enforced W^X userland as of 6.0 (..exceptions must have a special ELF PT_* flag and be on a filesystem mounted wxallowed).
* arc4random(3), which backs rand(3), random(3), and drand48(3), with an audited base/ports tree. Software must opt-in to deterministic broken POSIX behavior.
* Stack protector (..which OpenBSD pushed into wide adoption).
* bcrypt password hashes only, with an automatically selected rounds value based on system performance.
* PIE by default for base and ports.
* Static-PIE for self-relocating static binaries.
* SROP (sigreturn(2) oriented programming) mitigation by default.
* C shared library re-ordering at boot time, i.e: libc.so is re-linked at boot time so objects are randomly ordered.
* System-wide sandboxing (pledge(2)) of a large percentage of the userland, incl. privileged part of the X server, most networking facing daemons included (..with increasingly reduced pledges, thanks to the next part..).
* Privilege dropping and separation for most of the base system as a matter of policy, new stuff doesn't get enabled without it.
Plenty of other innovations in programming interfaces, widely adopted outside of OpenBSD.. which leads me to disbelieve your claims of non-uniformity in opinion of any reputable 'security pro'.
> That brings us to our third—and today, still experimental—alternative: deep learning. Connect the critical state variables of the system to a deep-learning neural network. Train the network with a blend of normal operation, known attacks, and randomly injected faults. You may never know how the resulting network operates, and you can’t prove that the network is sufficient or even correct. But in complex systems it is likely to out-perform human-devised rule lists
[1] http://systemdesign.altera.com/system-security-a-model-from-...
As such, a number of attack/bugs found in other operating systems, don't impact OpenBSD because they were forward looking.
I'm wondering if you've had a chance to review the change in thinking that the OpenBSD organization has had in the last 6 years, and how it might impact your original 2010 post?
There are important differences. pledge requires you to modify an application. SELinux can sandbox any application, including untrusted applications (see the use of SELinux in Android).
Since SELinux is external to the application, a system administrator can specify/refine a policy, while pledge calls are compiled in.
As such, a number of attack/bugs found in other operating systems, don't impact OpenBSD because they were forward looking.
This vision is not exclusive to OpenBSD. Red Hat Enterprise Linux has included many of the same mitigation techniques for a long time (starting at RHEL 3 in 2003). Moreover, they have shipped SELinux, which is arguably more powerful than pledge since RHEL 4 in 2005.
(I don't want to discredit the work of the OpenBSD developers, which is great. I just want to point out that there are Linux distributions with similar features, wider hardware support, and wider vendor support. Many OpenBSD supporters just seem to ignore work by others in order to push their favorite system.)
I"m just wondering whether tptacek has rethought his comment from 2010 about OpenBSD " its model depends on shipping bug-free distributions " given a lot of success OpenBSD has had in the past several years dodging exploits that resulted from bug-present distribution issues, that its OS compartmentalization approach has successfully avoided.
The stuff going on with pledge is a step forward! I like 2016 OpenBSD more than I did 2010 OpenBSD.
(I was, as you probably know, involved in OpenBSD in the 1990s, and then, because I worked for a company staffed by Monkey.org people, shipped a demanding product on it --- both experiences left a bad taste in my mouth).
Wrong way to do an argument for or even against OpenBSD. You need to establish requirements for security in many areas, features/practices to support those, assurance they work, and then what each OS or system possesses. OpenBSD has only partly done this so I doubt uou have. I look forward to you posting that analysis for OpenBSD and its preferred hardware.
Security mitigations work best in combinations, the entire purpose is to make it as hard as possible to attack the system.. suggesting OpenBSD's mitigations aren't the strongest in their class clearly needs some proof on your part, but I don't expect you'll deliver.
> You started with OpenBSD's features, accepted the claims as fact.
I stated the facts, because I'm aware of and closely followed their development, having tested them. I accepted no claims as "facts". You can easily verify everything I've said, OpenBSD is open source.. and shocking, they pioneered that too.. having created anoncvs.
Not much left to reply to in your post, because you're just grasping at proverbial straws.
Exactly the kind of meaningless statement I was talking about. You've neither proven they work in isolation nor shown they're a strong combination against determined attackers. Almost all of those people are hitting Windows, Linux, iOS, and Android due to market share. Im not sure we've even seen thorough test of OpenBSD's defenses.
"suggesting OpenBSD's mitigations aren't the strongest in their class clearly needs some proof on your part"
Let's try a few memory or stack issues. SPARK can prove the absence of most of them. Concurrent Pascal and Eiffel could for concurrency. Rust can for dynamic memory and concurrency. SAFEcode does for many C-related errors. Example uses are in Muen, Redox, and SVA-OS. Softbound + CETS goes further with total spatial and temporal safety for C but not in OS's yet.
These are all stronger than OpenBSD techniques for similar use cases. Different tradeoffs involved in using them but definitely stronger. I mean, full safety without GC is strongest you can get in memory errors. Although SPIN OS did it in Modula-3 with GC and type-safe linking too.
"and shocking, they pioneered that too.. having created anoncvs."
Your lack of research is apparent as the first, secure OS with source was Burroughs B5000. It was proprietary but shipped source. Had stack checks, bounds checking, pointer protection, OS in high-level language, compile-time checks for function calls, and run-time checks for invalid arguments. Started high-assurance security by addressing root causes of most known issues... in 1961.
It's also not easy to figure out OpenBSD security effectiveness looking at source. The safer languages like Modula-3 or techniques of B5000/JX-OS/Genode are easy to follow since they are simple & fully preventative. Verify that then the rest inherits its properties if used or interfaced certain way. Not so with OpenBSD's scattered mechanisms: requires much more analysis given use of C and stuff in kernel mode.
Finally, bringing up AnonCVS, you might want to look at David Wheeler's Software Configuration Management security page to see what high-security requires in that. Shapiro's OpenCM (in architecture) or competing Aegis (features) were ahead in many ways with OpenBSD's SCM tactics not registering a blip due to missing requirements on Wheeler et al's lists. I even watched them replaced a distribution tool known to resist NSA per Snowden leaks for a simpler, but unproven, one.
OpenBSD has proven great at configuration, code quality, and minimalism. Burden of proof is still on it in terms of security engineering practices vs other methods or OS's. It's never been proven from requirements to methods to results. Fine with me as it has it's uses, esp where 0-days being low is top priority. Best not to pretend it is something it's not vs making the case with evidence as I described.
Some grsecurity features are supersets of the features you listed such as the W^X protections (which I might add have been in PaX for quite some time now). While the situation certainly isn't perfect with getting more packages using PIE at least a number of important packages are now built with that by default. Arch Linux compiles all packages in its repo's with stack protection AFAIK and at least on Arch it's very easy to recompile things to suit your (performance) needs/threat model.
Perhaps OpenBSD offers more of these compiled protections by default in its base/ports but you can still get these options on Linux if you're willing to put a little effort in or use the right distro for your needs.
OpenBSD is less of an obvious choice when you look at what you can do with grsecurity if you put a bit of effort into it both on the side of grsecurity (RBAC) and setting up your distro. You can't just wave your hand and dismiss grsecurity because you believe it to be non-standard/non-upstream or somehow incomprehensible/complicated. It's not about what's enabled by default, it's about how much security/protection/defense in depth I can get from it and arguably you get more from Linux w/grsecurity.
In OpenBSD all the mitigations are enabled all the time, and with pledge beeing the responsibility of the coder, no extra effort needed from the sys admin.
There are obvious benefits to both but I don't think that grsecurity is something which can be dismissed as easily as saying nobody uses it.
https://access.redhat.com/articles/65299
Also, it provides MAC per SELinux.
Let's see.
>Enforced W^X in the kernel
Linux, OS X, Windows
>Enforced W^X userland as of 6.0
Linux
>Stack protector (..which OpenBSD pushed into wide adoption).
Literally every other OS out there has stack protector, and it was Windows pushing it to wide adoption
>PIE by default for base and ports.
Linux
>Static-PIE for self-relocating static binaries.
Linux
>SROP (sigreturn(2) oriented programming) mitigation by default.
Useless "mitigation", can be easily bypassed with no effort
>C shared library re-ordering at boot time, i.e: libc.so is re-linked at boot time so objects are randomly ordered.
Useless mitigation, can be easily bypassed with no effort
>System-wide sandboxing (pledge(2)) of a large percentage of the userland
Large percentage? I disagree, it's more like 10%.
Why isn't that on by default ? The wiki asks the reader to enable hardening if the program handles untrusted data. Doesn't that apply to 99% of the applications out there ? Even it only reads its own configuration file, there is a possibility of a bug in the parser. Why take the risk at all ? Enable it by default for everyone and be done with it.
Regarding the pledge(2) sandboxing, pretty much every userland application in the base install of OpenBSD where is makes sense to sandbox is using pledge. Ports/packages are another story entirely.
[0] https://wiki.debian.org/Hardening#Using_Hardening_Options
>Linux
Well grsecurity's mmap protections are a strict superset of OpenBSD's W^X which we've had for what 10 years now?
>Literally every other OS out there has stack protector, and it was Windows pushing it to wide adoption
I don't know when OpenBSD or Linux distro's were starting to add SSP support but stack protection/BSC (buffer security checks) have been enabled by default in every Visual Studio version since (at least) 2005. The mitigation has been improved over the years as well.
DEP and ASLR became default in 2008 (not really relevant here though).
HardenedBSD already ticks off most points and is actively working on the rest.
When I encounter comments like these, a common theme is something like ~"OpenBSD didn't even set out to be a secure system. They forked NetBSD intending to audit the codebase and write clean, simple code going forwards. That such a system ended up being relatively secure is just a bonus."
To which I reply, this doesn't seem like a terrible downside. I like clean and simple code. There may be other options which offer more technical security features (something with ACLs, for instance), but none come even close to OpenBSD's simplicity.
Secure by default means I don't have to turn off a bunch of stuff to make it secure. Rather, I have to think about what it is I really need to run on this particular system for whatever it is I'm trying to do. It requires a little more thought, since it isn't usually one of the 100+ processes and apps automatically started after installation on most distros. No, I have to figure out what I need, and maybe even port something. (That hasn't happened to me yet, but it could.) But that starting point is far preferable to weeding out a bunch of shit some distro roller thought I should have and disabling or uninstalling it.
And as the OpenBSD team occasionally points out, there really isn't a way to know that you have a 100% secure system now that all hardware has binary blobs that do unknown things. (Well, I guess you could fabricate your own chips and build your own motherboards from components you made and ....)
The website has other problems though, mainly the excess of effects and reliance on hover states for presenting useful information. Nothing that HTTPS is going to fix.
This is one reason to enable HTTPS on your marketing site. There are many many others. What reason do you have for not enabling HTTPS?
Does anyone have any idea why that might be the case?
The content is completely covered by a blue overlay with a couple of "spinny things" on it that never go away. I took a screenshot but can't upload it anywhere at the moment. I'll send it over to my laptop and upload it shortly.
Screenshot: http://i.imgur.com/t079tiF.png
https://vidiguard.com/ Failed to load resource: net::ERR_SSL_VERSION_OR_CIPHER_MISMATCH