I also highly recommend checking OpenBSD's events page for additional slides/papers and videos.
1,632 karma · joined March 25, 2016
I also highly recommend checking OpenBSD's events page for additional slides/papers and videos.
Do you have a link to the bug report you undoubtedly filed when observing this?
https://www.openbsd.org/innovations.html
If it helps to put things into perspective, NetBSD is closest relative to OpenBSD, the latter having forked over 23 years ago. The last time FreeBSD and OpenBSD shared the same tree was at Berkeley. In fact, NetBSD, FreeBSD and OpenBSD independently merged the final release from Berkeley, 4.4BSD-Lite2 in 1995.
Linux users generally don't understand what it means for each major BSD being fundamentally distinct operating systems, including separately developed kernels, drivers, userland utilities, with their own developer/user communities.
It would be unlikely for any open source project to begin such a massive undertaking to re-license, from an already permissive license, without at least some corporate incentive/initiative to do so. No doubt lawyers were paid.
I understand what you're saying, but it is also being disingenuous.
nginx was initially considered, but the upstream wasn't receptive to patches that OpenBSD worked on, including a chroot(2) support and security patches, i.e: reallocarray to protect against arithmetic overflows. At the time, Nginx cared more about it's Nginx PLUS offering and less about the community.
You were saying?
It's stated as much in the initial proposal.
"1) Some contributors are actively blocked from contributing code to LLVM."
> These contributors have been holding back patches for quite some time that they’d like to upstream. Corporate contributors (in particular) often have patents on many different things, and while it is reasonable for them to grant access to patents related to LLVM, the wording in the Developer Policy can be interpreted to imply that unrelated parts of their IP could accidentally be granted to LLVM (through “scope creep”).
"In addition, the clause about the patent license is problematic because a patent license cannot be granted under Copyright law, but only under contract law, which drags the whole license into the domain of contract law. But while Copyright law is somewhat standardized by international agreements, contract law differs wildly among jurisdictions. So what the license means in different jurisdictions may vary and is hard to predict."
Theo de Raadt: https://news.ycombinator.com/item?id=12617881
These objections have been largely glossed over by the LLVM community. It's no secret that a handful of corporations are pushing for this change, and not the best interest of the open source community. Especially the larger ones using LLVM, like *BSD. LLVM is already under a permissive BSD-like license (NCSA), as pointed out by jwilk: https://news.ycombinator.com/item?id=18700258
OpenSSL is similarly attempting the same thing with newer versions of OpenSSL, which they went about in a particularly legally dubious way: https://lwn.net/Articles/717996/ (For context, OpenBSD maintains LibreSSL).
.. You might think that objection would be listened to more readily, or do the interest of a handful of corporations hold greater weight?
OpenBSD will undoubtedly be forced to fork LLVM 8, and likely have to take on the burden of asking individual developers to dual-license contributions they backport going forward. This will place them in a similar position they had with GCC, since the GPLv3 license change.
[0] https://github.com/openbsd/src/commit/e688c2b0648a80551cf735...
[1] https://github.com/openbsd/src/commit/9866f44de26a847eaed067...
[2] https://github.com/openbsd/src/commit/c0f0c565f0b312e55b410b...
Mark Kettenis formal rejection on behalf of the OpenBSD project: http://lists.llvm.org/pipermail/llvm-dev/2017-April/112300.h...
But yes-- I certainly do expect to be able to run a shell on any computer that I own. It's nice to hear that iOS devices are just another appliance for the affluent majority.
https://opensource.apple.com/source/xnu/xnu-4570.71.2/bsd/ne...
https://opensource.apple.com/source/xnu/xnu-4570.71.2/bsd/ne...
https://opensource.apple.com/source/xnu/xnu-4570.71.2/bsd/ne...
You will find RCS tags for OpenBSD/NetBSD/FreeBSD littered throughout the kernel source tree, some files even retaining original SCCS ids from 1980's CSRG days.
$ grep -R "\$OpenBSD:" | wc -l
24
$ grep -R "\$NetBSD:" | wc -l
138
$ grep -R "\$FreeBSD:" | wc -l
162
$ grep -R "\$KAME:" | wc -l
73
$ grep -R "WIDE Project" | wc -l
87
$ grep -R "The Regents" | wc -l
427
$ grep -R "Berkeley" | wc -l
919
This isn't "userland (POSIX) API layer + the odd device compatibility layer", far from it.Don't presume to know who you're talking smack to, when it's clear you have absolutely no idea what you're talking about.
This makes no sense. Of course you know what the promises are, they're in the source code. You can also use ktrace/kdump(1) or even strings(1). The names of the promises are obvious and their intention is clear. There are subsets of POSIX.
> The assumption that with Capsicum you wouldn’t be able to sandbox stuff is blatantly false.
That is not what I said, I was specifically correcting your misinformed statement regarding pledge(2) and those programs that explicitly permit exec, like shells. Capsicum has no solution for this, and as such these programs cannot be sandboxed on FreeBSD.
Google not accepting this upstream is a separate issue, albeit regretful, OpenBSD maintains the pledge/unveil patches and users benefit from this work today, whereas FreeBSD users cannot run Capsicum-ised Chrome.
Capsicum patches are also considerably more intrusive, and their intention and protection is less clear.
... That nothing uses. And even their flagship research example, Chrome, has never made it into the FreeBSD ports tree.
OpenBSD has pledge(2)/unveil(2) for Chrome.
You can only call fork/exec if it's part of the pledge(2) promises, which you can later drop with subsequent calls to pledge. And with unveil(2) or even chroot(2) you can also place further restrictions on which binaries can be executed, and in which directories.
Systems like Capsicum would have you not be able to sandbox those programs at all. Users are left unprotected. So yes, if you pledge(2) a shell. It can call exec, but directly it can't call socket/connect(2), and the reduction of kernel attack surface is still significant. Software using privilege separation can safely leverage this.
It makes owning such a device even more baffling, sounds incredibly useless to me. I didn't know iOS was such a trash fire.
The kernel also includes code from BSD, source is available, including from FreeBSD/NetBSD and OpenBSD. For example, the network stack is BSD code. It also includes OpenBSD's pf(4).
For example, there was a recent ICMP vulnerability in XNU, that later affected FreeBSD. So please reconsider posting misinformation in the future.
If this software could be developed and installed, cross-compiling a native Unix toolchain, either from the open source code distributed by Apple, or the BSDs, or even GNU, should be just as easy to pull off.
So what gives?
OpenBSD's pledge(2) and unveil(2) by comparison are seeing far greater usage, covering somewhere between 85% to 90% of the base operating system. Patches for 3rd party software, and programming languages are also appearing upstream, as they also serve as helpful annotation for other mechanisms and encourage privilege separation.
https://man.openbsd.org/pledge
https://man.openbsd.org/unveil
https://gist.github.com/ligurio/f6114bd1df371047dd80ea9b8a55...
https://www.openbsd.org/luna88k.html
OpenBSD also used to run on Motorola's 88k VME boards, but the mvme88k port was discontinued after 5.5.
https://www.openbsd.org/mvme88k.html
If you have any spare parts/systems, I suspect aoyama@ would be interested in hearing from you.
https://www.youtube.com/watch?v=wdeFQJXd_II&list=PLbx1j8Pb6u...
https://en.wikipedia.org/wiki/BSD_Authentication
https://man.openbsd.org/authenticate.3
It does have some benefits, with its process-based model, with various login_* helper utilities (in contrast to PAMs shared libraries). This allows some cool things like "sandboxing" with pledge(2), which it appears many are.. including login_duress.
This is slightly different from how it's handled outside the Perl software ecosystem, as all the srand* functions effectively became nops on OpenBSD in favour of strong random numbers, and userland ports had to be patched to use the deterministic variants if needed. I guess that would be hard with things like CPAN.
https://github.com/openbsd/src/commit/2e109fb9e8c0dc273648dd...
https://github.com/openbsd/src/commit/2e109fb9e8c0dc273648dd...
https://github.com/openbsd/src/commit/2e109fb9e8c0dc273648dd...
Looks like upstream Perl also uses drand48 from FreeBSD, with its own internal RNG. But I guess this can be overridden with build options.
I'd imagine something like pwgen would be better, but I doubt it matters here.