this post was submitted on 07 Jul 2023
66 points (90.2% liked)

Memes

45423 readers
1301 users here now

Rules:

  1. Be civil and nice.
  2. Try not to excessively repost, as a rule of thumb, wait at least 2 months to do it if you have to.

founded 5 years ago
MODERATORS
66
It's Open Source! (lemmy.dbzer0.com)
submitted 1 year ago* (last edited 1 year ago) by [email protected] to c/[email protected]
 

Not discrediting Open Source Software, but nothing is 100% safe.

all 48 comments
sorted by: hot top controversial new old
[–] [email protected] 12 points 1 year ago (2 children)

Luckily there are people who do know, and we verify things for our own security and for the community as part of keeping Open Source projects healthy.

[–] [email protected] 1 points 1 year ago

Though one of the major issues is that people get comfortable with that idea and assume for every open source project there is some other good Samaritan auditing it

[–] [email protected] 1 points 1 year ago (1 children)

Open source software is safe because somebody knows how to audit it.

[–] [email protected] 1 points 1 year ago* (last edited 1 year ago)

And to a large extent, there is automatic software that can audit things like dependencies. This software is also largely open source because hey, nobody's perfect. But this only works when your source is available.

[–] [email protected] 3 points 1 year ago

Did you fabricate that CPU? Did you write that compiler? You gotta trust someone at some point. You can either trust someone because you give them money and it's theoretically not in their interest to screw you (lol) or because they make an effort to be transparent and others (maybe you, maybe not) can verify their claims about what the software is.

[–] [email protected] 3 points 1 year ago

The point is not that you can audit it yourself, it's that SOMEBODY can audit it and then tell everybody about it. Only a single person needs to find an exploit and tell the community about it for that exploit to get closed.

[–] [email protected] 2 points 1 year ago* (last edited 1 year ago)

IDK why, but this had me imagining someone adding malicious code to a project, but then also being highly proactive with commenting his additions for future developers.

"Here we steal the user's identity and sell it on the black market for a tidy sum. Using these arguments..."

[–] [email protected] 1 points 1 year ago

I don't use the term "open source". I say free software because giving someone else control over your computing is unjust. The proprietor of the program has absolute control over how the program works and you can not change it or use alternative versions of it

[–] [email protected] 1 points 1 year ago (1 children)

"given enough eyeballs, all bugs are shallow" ...but sometimes there is a profound lack of eyeballs.

[–] [email protected] 0 points 1 year ago (1 children)

That's exactly the problem with many open source projects.

I recently experienced this first hand when submitting some pull requests to Jerboa and following the devs: As long as there is no money funding the project the devs are trying to support the project in their free time which means little to no time for quality control. Mistakes happen... most of them are uncritical but as long as there's little to no time and expertise to audit code meaningfully and systematically, there will be bugs and these bugs may be critical and security relevant.

[–] [email protected] 0 points 1 year ago (1 children)

Even when you do have time. There have been “researchers” submitting malicious prs and when caught just act like it’s no big deal. Even had an entire institution banned from submitting prs to the Linux kernel.

https://www.bleepingcomputer.com/news/security/linux-bans-university-of-minnesota-for-committing-malicious-code/

[–] [email protected] 0 points 1 year ago (1 children)

Well, i think in most of those big incidents, people got caught. That means the concept kinda works well?

Regarding the earlier comment: I think companies just started to figure that out. They/You can't just take free libraries databases etc... If you're big tech company you better pay a few developers or an audit to make those libraries safe. This is your way of contributing. Otherwise your big platform will get hacked because you just took some 15 year olds open source code.

[–] [email protected] 0 points 1 year ago (1 children)

Selection bias though. We don't know how many have not yet been caught.

[–] [email protected] 0 points 1 year ago (1 children)

agree. Hell i wouldnt be shocked if some corporations or even nation-state (ie: NSA) actors do this, in a much better/more professional manner to ensure things like....backdoor access.

[–] [email protected] 0 points 1 year ago (1 children)

No hypothesis needed https://en.wikipedia.org/wiki/EternalBlue can't have been a one-off either.

[–] [email protected] 0 points 1 year ago (1 children)

Yeha that was my though. But more a dedicated program to do similar with large FOSS projects.

They also have hardware/supply chain intercept programs to install back doors in closed source appliances (ie: Cisco firewalls)

So something similar but dedicated to open source PRs.

[–] [email protected] 0 points 1 year ago* (last edited 1 year ago) (1 children)

Yeah. I think the discussion is kind of nonsensical and a tautology. Nothing in life is 100% safe, if foss or not. And we don't know what we don't know. We got a few cases where we know something got intercepted after people tried to do malicious PRs or intercepted network equipment.

[–] [email protected] 0 points 1 year ago (1 children)

I think the more interesting question has long been: what's (or who is) your threat? Against a sufficiently motivated and resourced adversary, there are few real obstacles. Conversely, some people are just not interesting because there's little or nothing to gain from attacking them.

[–] [email protected] 0 points 1 year ago* (last edited 1 year ago) (1 children)

Exactly. I just wanted to point out that most of the people here honestly have no idea what they're talking about.

If people had read the articles about that 'study' if malicious pull requests got accepted... and the aftermath... If they had read the articles how the NSA(?) helped(?!) with the mathematical constants of elliptic curve encryption... How cisco networking equipment got intercepted... If you knew how the internet and freedom worked... You'd know it's not that easy. Every 'simple' answer is just plain wrong. It depends... What is the thread model, what are you able and willing to invest, what are you trying to achieve? Sometimes you don't even know who's friend or foe.

Idk why people want to piss on open source software. It's a fact that one can have a look at open source software and not at closed source. And don't tell me nobody does, because i know i do. And millions of github users contribute code and read some code here and there. And i know a few tech blogs who like to check apps and see if they respect privacy and so on. ... And that's not everything as we pointed out earlier. If this helps you, depends on your own goals and thread model.

[–] [email protected] 1 points 1 year ago

I really enjoy the discussion here. Refreshing! Most of the time I as a relative non-expert have no idea what I'm doing, but I do read things as much as I can. Otherwise I'm a fallen sysadmin who got a job managing cyber because bills need to be paid.

Open, closed, it's all object code in the end which can be examined in disassembly, or the behaviours observed during runtime. Open makes some processes easier in this area. I think the real strengths in this have been beyond security, to enhance cooperation and reuse so we don't waste time constantly reinventing.

[–] [email protected] 1 points 1 year ago

But eventually somebody will look and if they find something, they can just fork the code and remove anything malicious. Anyways, open source to me is not about security, but about the public "owning" the code. If code is public all can benefit from it and we don't have to redo every single crappy little program until the end of time but can instead just use what is out there.
Especially if we are talking about software payed for by taxes. That stuff has to be out in the open (with exception for some high security stuff - I don't expect them to open source the software used in a damn tank, a rocket or a fighter jet)

[–] [email protected] 1 points 1 year ago

Open source software is safe because so few people use it it's not worth a hacker's time to break into it (joking, but of course that doesn't apply to server software)

[–] [email protected] 1 points 1 year ago (2 children)

You can get a good look at a T-bone by sticking your head up a cow's ass but I'd rather take the butcher's word for it.

There are people that do audit open source shit quite often. That is openly documented. I'll take their fully documented word for it. Proprietary shit does not have that benefit.

[–] [email protected] 1 points 1 year ago

And even when problems are found, like the heartbleed bug in OpenSSL, they're way more likely to just be fixed and update rather than, oh I dunno, ignored and compromise everybody's security because fixing it would cost more and nobody knows about it anyway. Bodo Moller and Adam Langley fixed the heartbleed bug for free.

[–] [email protected] -1 points 1 year ago

Thanks Callahan!

[–] [email protected] 1 points 1 year ago

No, but someone knows how and does. If there's something bad, there'll be a big stink.

[–] [email protected] 0 points 1 year ago (1 children)

Also, recompile the source code yourself if you think the author is pulling a fast one on you.

[–] [email protected] 1 points 1 year ago

is there not a way to check if thw sourvw and releasw arent the same? would be cool if github / gitlab / etc.. produced a version automatically or there was some instant way to check

[–] [email protected] 0 points 1 year ago (1 children)

I really like the idea of open source software and use it as much as possible.

But another "problem" is that you don't know if the compiled program you use is actually based on the open source code or if the developer merged it with some shady code no one knows about. Sure, you can compile by yourself. But who does that 😉?

[–] [email protected] 0 points 1 year ago (1 children)

You can check it using the checksum. But who does that?

In all seriousness I am running NixOS right now using flakes. The package manager compiles everything unless a trusted source already has it compiled, in which case the package manager checks the checksum to ensure you still get the same result and downloads that instead. It also aims to be fully reproducible and with flakes it automatically pins all dependency versions so next time you build your configurations, you get the same result. It is all really cool, but I still don't understand everything and I'm still learning it.

[–] [email protected] 1 points 1 year ago* (last edited 1 year ago) (1 children)

Based NixOS user

I love NixOS but I really wish it had some form of containerization by default for all packages like flatpak and I didn't have to monkey with the config to install a package/change a setting. Other than that it is literally the perfect distro, every bit of my os config can be duplicated from a single git repo.

[–] [email protected] 1 points 1 year ago

Great points. I kinda feel the same with containerization. I have been wanting change my OS on my home server and while NixOS is great for that, I have decided to do things differently and use OpenSUSE Micro OS. My plan was actually Fedora Core OS, but after that Red Hat drama I decided to run with SUSE instead. It is an immutable distro with atomic upgrades that is designed for being a container host. It uses Ignition as the configuration for setting up things like users, services, networking, etc. My plan is then to just use containers like I was doing before on Fedora Server and for the other things to use Nix to build container images. Instead of using DockerFile, you'd use Nix Flakes to create really minimal images. Instead of starting with a full distro like Alpine, Nix starts from scratch and copies all dependencies over as specified in your flake. So the image only contains the absolute minimum to run. I think I'd be a fun side project while learning more about Ignition, Linux containers and Nix Flakes.

As for your point on config, I think it's just part of the trade offs of NixOS. You either have a system that can be modified easily at anytime through the shell or you have a system that you modify centrally and is fully reproducible. You can already install packages with nix-env in the command line without changing your config, but that also won't be reproducible. Maybe a GUI app for managing your config and packages could be helpful, although I'm pretty sure that's low priority for NixOS right now.

[–] [email protected] 0 points 1 year ago (1 children)

You guise look at the code?

[–] [email protected] 1 points 1 year ago (1 children)

Of course. I don't understand any of it, but it can't hurt check for a stealData function.

[–] [email protected] 1 points 1 year ago

That you formated that appropriately means you still know more about code than the vast majority of people

[–] [email protected] 0 points 1 year ago (1 children)
[–] [email protected] 1 points 1 year ago

Sure, someone knows how to audit code.

Whether that someone is inclined to do it for whatever random FOSS package / library / application / service / whatever is a different question.

[–] [email protected] -1 points 1 year ago (2 children)

I had a discussion with a security guy about this.

For software with a small community, proprietary software is safer. For software with a large community, open source is safer.

Private companies are subject to internal politics, self-serving managers, prioritizing profit over security, etc. Open source projects need enough skilled people focused on the project to ensure security. So smaller companies are more likely to do a better job, and larger open source projects are likely to do a better job.

This is why you see highly specialized software has really enterprise-y companies running it. It just works better going private, as much as I hate to say it. More general software, especially utilities like OpenSSL, is much easier to build large communities and ensure quality.

[–] [email protected] 1 points 1 year ago* (last edited 1 year ago)

Unfortunately that is not the case. Closed sourced software for small communities are not safer. My company had an incredibly embarrassing data leak because they outsourced some work and trusted a software used also by the competitors. Unfortunately the issue was found by one of our customers and ended up on the newspapers.

Absolutely deserved, but still, closed sourced stuff is not more secure

[–] [email protected] 1 points 1 year ago

With all due respect, I have to strongly disagree. I would hold that all OSS is fundamentally better regardless of community size.

Small companies go under with startling frequency, and even with an ironclad contract, there's often nothing you can do but take them to court when they've gone bankrupt. Unless you've specifically contracted for source access, you're completely SOL. Profitable niche companies lose interest too, and while you may not have the same problems if they sell out, you'll eventually have very similar problems that you can't do anything about.

Consider any of my dozens of little OSS libraries that a handful of people have used, on the other hand. Maybe I lost interest a while ago, but it's pretty well written still (can't have people judging my work) and when you realize it needs to do something, or be updated (since things like dependabot can automatically tell you long after I'm gone), you're free and licensed to go make all the changes you need to.

I think you see highly specialized software being run by enterprisey companies because that's just business, not because it's better. It's easiest to start in a niche and grow from there, but that holds true with open software and protocols too. Just look at the internet: used to share research projects between a handful of universities, and now has grown to petabytes of cat gifs. Or linux. Started out as a hobby operating system for a handful of unix geeks, and now runs 96.3 percent of the top 1 million web servers.

It always starts small and gets better if it's good enough. This goes for OSS and companies.