piping random scripts from the internet into bash is the worst way of installing things. imagine if there was an operating system where this was the main way of installing things, and people just googled the program name, clicked the first link, and ran an executable file with admin permissions. imagine that

@lynnesbian

Ironically has security equivalent to most Linux package repositories.

@endomain @lynnesbian no it doesn't? the packages you download still have the authority granted by tls, just like a reasonably secure curl | bash installation would, but also have their own cryptographic signatures and the curation of the repository maintainer

Follow

@00dani

@lynnesbian

Which are just another version of SSL certs only without a global registry? Say what you will about the morality of a central trust root for SSL, it's a bigger hoop than "hit up my ppa".

@lynnesbian

@00dani

So then the extra security (in the model) would be if we believed the Ubuntu repo keys are more secure than their SSL cert.

I'm willing to entertain this but offhand I can't imagine why that would be.

@endomain @lynnesbian @00dani Because if you installed Ubuntu, you presumably trust the Ubuntu maintainers not to put malware in their packages.

@alexbuzzbee

@lynnesbian @00dani

Does this logic not extend to curl | bash? Presumably we're talking about cases where the user trusts.

@endomain @lynnesbian @00dani No, it does not. Your operating system maintainer is someone you already trust, who is certifying (by creating, signing, and distributing the package) that the software meets their standards. No such standards are applied to software you install by curl | sh, unless you independently verify the software and its installer.

@alexbuzzbee

Removing other folks from the thread. I don't really want to get into a rock-em-sock-em debate since I said my original comment only half seriously.

But seriously for a moment, what you said is a value judgement. You're telling me what you have decided to do, but I think an awful lot of people implicitly trust ISVs. Unless you're using a heavily sandboxed OS like Qubues or iOS, it seems like a pretty intense trust relationship. Both are equally applicable, although they can have different consequences.

By the logic you've laid out, you're making a case I should trust Microsoft and Ubuntu equally since I use both their platforms, but that's not true. So I can't help but remain unconvinced by it.

@endomain It comes down to this: Packages in an OS repository have been vetted by somebody. Software you install through curl | sh has not been. Software that is not malicious will not be in the OS repo unless the OS maintainer is evil or has been tricked, both of which are relatively unlikely.

If you run Windows and expose it to your information, you do trust Microsoft at least somewhat. Probably, and hopefully, not as much as the Ubuntu maintainers, but at some level.

@endomain Literally anyone with an Internet connection and some basic Web and Unix skills can put up a fancy site describing some awesome software and tell you to run curl | sh to install it. That is not the case with publishing software in a package repository.

@alexbuzzbee

How many personal PPAs have you added? Are those different?

@endomain PPAs aren't secure. You should not trust them any more than you would trust curl | sh. Additionally, I'm not running Ubuntu, so the concept doesn't exactly apply to me, but I have no third-party repos configured; I install everything I can from the official repos, and when I can't, I look into the software I'm installing first and find an AppImage or a source tarball.

@alexbuzzbee

So I guess you just run old software all the time. Which is a luxury I wish I had. :)

@endomain I run Void Linux, which packages new software versions relatively quickly, so I'm mostly up-to-date. Ubuntu is slow to update mainly because its upstream is Debian, which is well-known as the stable and slow-moving distro.

@alexbuzzbee

Cool, but. We're so far afield of the original point. Anyone who can run void Linux can safely is a curl sh download, and their security standards are even more obscure.

The simple reality is that curl|sh gets much more hate than ppa's or build-from-source or "download this Deb" and folk's response is, "I super trust that those minimal requirements my OS put down are enough to make our pre-shared public key trust root safe."

But I see this as analogous to NodeJS's woes. All it will take is one person to get control of a critical package and slow roll and issue and we'll all be in the same boat.

@alexbuzzbee

That's why I use Qubes when I can. Then, I can actually use a computer like a human and have some degree of confidence that if I use it on a day when my judgement is impaired I'm not automatically totally fucked.

@alexbuzzbee

As a general rule, I object to creating security whipping targets because they tend to give a false sense of security to people. Hence I like pointing out curl https:// | sh is essentially a model that lots of people already are trusting.

The response is often "nuh-uh!" but you'll note the thread author here pretty much saw what I was saying and agreed as opposed to trying to lawyer their way into being right.

@endomain I will agree that people do insecure things a lot more than they think, but I don't believe that "install a package selected, assembled, and signed by a trusted maintainer" is an insecure model, and it is the default way that Linux users install software as long as you don't modify the package manager configuration.

@alexbuzzbee

Maintainers are authority, and around these parts we demand authority justifies itself.

I don't know if void Linux has done that for you, but none of the OS's we have discussed here have sufficiently done it for me except the ones with hard segmentation.

@endomain Qubes is nice. I've considered it quite a few times, and I may still switch to it at some point. My main problem has been that I don't particularly like systemd (I'm not going to get into that right now), and Qubes' dom0 is systemd-based.

@alexbuzzbee

Systemd is not cost me millions of dollars the way runit has, and it's less monolithic than runit. I humbly suggest that you give OSs using it a chance.

Not just because there's a lot of FUD about it, it also because fast boots are security feature. The enable you to turn off your computer more, Which intern makes you much more resistant to cold boot attacks.

@endomain I literally just said "I'm not going to get into that right now."

However, I would *strongly* disagree that systemd is "less monolithic than runit." runit is made of ~6 small programs that can be put together to create a service manager/init system. In my experience, runit boots very fast. You might be thinking of sysvinit.

Meanwhile, systemd is a single program that implements a service manager, an init system, a mount manager, a task scheduler, a device manager, etc.

@endomain The systemd package contains a binary called systemd, which implements the components I mentioned among others.

Show more

@alexbuzzbee

Do you know who did that vetting or what their criterion was? Or how often they vet?

@endomain @lynnesbian package signatures can be produced offline and you can trust a repository's signing key through a variety of mechanisms, not all of which rely on tls, so you've got a distinct authentication factor added to the existing assurance that tls provides

@00dani

@lynnesbian

That is a thing SSL certs can do.

Thinking on it, maybe the big advantages of packages is that they tend to have a signature over all the binary files as opposed to the status quo of bash scripts leading to other hard-to-audit downloads, and take that as an atomic unit.

It's not really harder to make a package do a dumb thing, but you have less reason to.

Sign in to participate in the conversation
hackers.town

A bunch of technomancers in the fediverse. Keep it fairly clean please. This arcology is for all who wash up upon it's digital shore.