News for hackers. Stuff that matters.
Re:From Markdown to remote code execution in Atom by gcb0 on Thursday November 23, 2017 @10:20AM (#15765530)
welcome to the history loop!

it is a very known fact for all unix grey beards (insert more inclusive analogy if you can think any) that containers and fat binaries lead to way more code rot than anything else. and consequently more bugs and security bugs.

I blame this fad coming back on apple. linux and even Microsoft were happy with shared libraries, until osx adopted the bait and switch tactics of Microsoft and got the whole industry by playing the "but I am unix" tune. and with it the whole (webdev) industry was back to fat binaries.

then people started to realize they dont have to find out the source code to patch that old application just because they have to patch openssl or something. they can just release an entire image! and they have no idea they will make it even harder to have a legacy build when that other openssl bug hit. but for now, everyone can be agile and live serverless! and users now have to update the OS, the few shared libraries, and every and each one of their fat binary applications and container images!

good luck with that

Re:From Markdown to remote code execution in Atom by ryanplant-au on Thursday November 23, 2017 @11:35AM (#15766114)
> a very known fact for all unix grey beards

The co-inventor of Unix, Ken Thompson, and the Unix team engineer and author of The Unix Programming Environment, Rob Pike, are both big advocates of static linking. They designed Go and made a big point of emphasising static linking. Pike: "Shared libraries are obviously a good idea until you've actually used them. Whether it's obvious or not that they're a bad idea is mostly a matter of how close you are to trying to get them to work." He wrote the first windowing system for Unix, which surely qualifies him as a greybeard.

Re:From Markdown to remote code execution in Atom by neoeldex on Thursday November 23, 2017 @12:00PM (#15766326)
It's a shame they didn't roll a proper package manager with the language toolkit. Having your executable depend on having some lib installed is quite a pain. But how do you share libraries properly then? Especially without a proper way of bundling deps in your code...

Using cargo always makes me feel at ease when writing Rust. Haven't dabbled with linkers though.

Re:From Markdown to remote code execution in Atom by xfer on Thursday November 23, 2017 @05:38PM (#15768277)
And rust binaries all link the rust libs statically(you can change linking), maybe because it is easier to distribute static binaries that work everywhere than to distribute a bunch of libraries without official channel(your os distributions).
Re:From Markdown to remote code execution in Atom by pjmlp on Thursday November 23, 2017 @02:38PM (#15767343)
The same Rob Pike also stated that UNIX is past its due date.
Re:From Markdown to remote code execution in Atom by frou_dh on Thursday November 23, 2017 @10:59AM (#15765810)
> it is a very known fact for all unix grey beards ...

It doesn't get more "unix greybeard" than Ken Thompson, the original bearded creator of Unix. And his latest project suggests he is pro static linking.

Re:From Markdown to remote code execution in Atom by gcb0 on Thursday November 23, 2017 @11:16AM (#15765949)
Go packaging philosophy goes against that. but go is also released in a good enough state and things are being done right on the fly.
Re:From Markdown to remote code execution in Atom by styfle on Thursday November 23, 2017 @10:47AM (#15765724)
As a developer, I find containers much easier to update, especially in scenarios where you need to update to a new patch with a fix for OpenSSL.

The solution, is to bump the version in the dockerfile, rebuild, and deploy.

This is especially useful when you want to test the latest version before deployment or when you need to deploy to many machines.

Conversely, using a VM and trying to patch it means the updates are not part of the normal development process so you would need to spin up a new VM to test before patching production VMs.

Now sysadmins and developers think differently so this is purely subjective (note I’m a dev), so surely there are merits to the other approach, but I prefer the container approach.

Re:From Markdown to remote code execution in Atom by gcb0 on Thursday November 23, 2017 @11:09AM (#15765894)
when it works for containers, it would have worked just the same for shared lib, but with one less step.

containers: update the lib, rebuild.

sane software: update the lib.

now, to the complicated case which containers claim to solve, when the lib update breaks compatibility.

container: update lib, application dont compile, leave like that because we think we are not vulnerable anyways.

sane sotware: update lib, application break, have to fix application because shared lib will be updated no matter what.

Re:From Markdown to remote code execution in Atom by AluminiumPoint on Thursday November 23, 2017 @12:48PM (#15766655)
Sort of. You are missing the ephemeral of containers, which has a net security advantage. Ephemeral containers mean that its harder for an attacker to obtain persistence, and easier to cycle out and swap bad containers than it is to patching servers.

I would argue that container orchestration infrastructure is objectively more secure than plain old servers; I get where you are coming from, but this tech is solving real problems, the cool aid is good

Re:From Markdown to remote code execution in Atom by gcb0 on Friday November 24, 2017 @03:12AM (#15770041)
with shared libraries containers are an option just fine
Re:From Markdown to remote code execution in Atom by xorcist on Friday November 24, 2017 @05:07AM (#15770365)
Everything is easy when you are one person caring for your own software. That's not a problem that needs solving.