So with open source software more on my mind lately I was wondering - while I get the benefits of transparency and such, how safe is it? If the source code is available to all, isn’t it easier to breach for people (like the recent cookies hack)? If I’d have an open source password manager, would it be easier for people to get my passwords somehow than if I use something not open source? Do I just not understand how software works in general?
And what are other benefits that may be not so obvious to someone not so knowledgable about this?
Edit: thank you all for really insightful answers! Among other things I also learned just how much I don’t know :)
Short answer is no. Safety of a program is in its implementation, not in the visibility of the code.
Most of the internet runs on opensource code, most companies that require highest security rely on open source programs, while companies relying on proprietary software are victims of hackers, malwares, ransomware every second (I am not going to name names to avoid useless wars).
That said, not all open source code is safe to use, as no all closed source software is safe to use. Bigger projects, used by many and used by experts are usually safe, most often even safer than close source counterparts.
Smaller projects are as safe as any random software downloaded from internet, unless you are able to read the code yourself. Many are safe, many aren’t, few are malevolent.
Be careful and research the program you are installing for security concerns.
If you want to download big stuff like debian, fedora, blender, gimp, krita, chromium, vscode, docker, k8s (I don’t know what you are into) just be sure that you trust the source from were you download binaries. The same as for any closed source software
Technically, vscode isn’t open source. It’s in the same situation of chrome vs chromium.
Majority is the same, but Microsoft has some non-open source parts of vscode.
Vscode repo contains “code - oss”
There is VSCodium that is released under MIT without the Microsoft proprietery stuff.
Except Chromium can still access the Chrome extension store. The VSCode extension store is not included with the OSS version, which seriously hampers the usefulness of the app.
I know, but I didn’t want to add too many details to the answer. Also because the core of vscode is open source and can be read by anyone
Open source is generally considered to be more secure because the large number of eyes on it are expected to catch the vulnerabilities. That’s the idea anyway.
I get where you’re coming from though. If anyone can see how it works it must be easier to break into right? But if something is only secure because you don’t know how it works, then it isn’t really secure at all.
Right. The amount people with good intentions looking for vulnerabilities in open source software far outnumbers the amount of malicious actors looking for vulnerabilities. Chances are great that, by the time malicious actors find a vulnerability, someone with good intentions is working on a patch already.
But if something is only secure because you don’t know how it works, then it isn’t really secure at all.
For an IRL equivalence, just watch any Lock Picking Lawyer video featuring any Master lock. If watching how easily defeated those locks are plummets your confidence in those locks, well it’s the same idea with digital security.
Right. The amount people with good intentions looking for vulnerabilities in open source software far outnumbers the amount of malicious actors looking for vulnerabilities.
It’s more safe than closed source because it’s open for all to view and edit. Of course if nobody looks at it then it’s as good as being closed.
I don’t necessarily agree with this. Just because software is open doesn’t mean it’s actually getting audited and it also doesn’t mean the people doing any auditing know what to look for.
On the other hand, closed source (or open source) software can be audited by reputable companies just the same.
The fact that it’s open, in my opinion, can give people a false sense of security with the software.
The log4shell vulnerability existed in the code since 2013 and wasn’t found until the end of 2021.
I don’t think the real problem is that the vulnerabilities exist. It’s a question of how many people are looking for those vulnerabilities and what those people’s intentions are. With big open source projects, as someone else already pointed out, the number of good actors far exceeds the malicious ones, so when a vulnerability is identified it’s more likely to be by someone who just wants to patch it, not exploit it for gain. In a closed source project, fewer good actors are looking - only the people allowed to work on the code - but the bad actors are probably pretty much the same. Of course, popularity of the program and what it’s actually doing matter, too, in terms of how interested bad actors are going to be.
I love the idea of open source software for exactly this reason. I see it as a reminder that most people are good.
It depends on the project. A server used by thousand of users and companies? Super secure. A random library with barely any usage or engagement? I wouldn’t trust it without reading the source first.
I think one general benefit of open source is that in general - they are built for the user rather than for the stakeholders.
If Spotify was an open source app - you know for sure you would be able to hide podcasts for example (for people who don’t care about podcasts and just want a music experience). However, since for Spotify The Business it’s better to piss off X% of their users if Y% of their users turn into podcast users - they’re not going care about the angry X%.
So in general - in open source apps you’ll generally find features users actually want and very rarely the app will try to push new features on you because they’re trying to make numbers look good on their quarterly report.
To add, open source projects tend to give YOU more control over the data (if not the mainline version, some fork will probably exist. Its far more profitable to target a big company for a ransom than an average Joe. Obviously, as long as you don’t fall for one of the classic blunders.
Like most things, it’s about balance. All changes to open source software must be approved by the community managing it, and if that community is lazy or poorly managed or simply too busy then there’s an opportunity for new vulnerabilities to be created, either accidentally or maliciously.
But for well managed software, as other people have said you can get more changes more frequently, more security as many people are evaluating the code base, and greater attention to what users want rather than what’s profitable. Whereas with closed source software there is a greater focus on profitability, and sometimes that leaves vulnerabilities open when development is rushed and/or vulnerabilities are not seen as important enough to justify the cost to fix, but sometimes that tendancy towards profitability can also ensure the product stays a market leader. Steam may be a good example of a good closed source product.
If you’re asking specifically about password managers, the Bitwarden team have good info on their blog about opensource safety. If you’re asking about FOSS more generally, there are several foundations and advocates who write about this question.
Neither closed or open software is safer than the other in my opinion. If someone wants to find a vulnerability they will find a vulnerability. The only advantage open source maybe has that it’s harder to hide vulnerabilities for years and it’s more obvious if they don’t fix it. But personally I wouldn’t use open source just for safety reasons.
What kind of safety reasons rule out OSS for you?
I think they mean any safety advantages on their own aren’t enough to warrant a switch.
Aha. Understood. Thank you for the clarification
If someone wants to find a vulnerability they will find a vulnerability.
only if there is a vulnerability. Which is possible but not necessary.
The only advantage open source maybe has that it’s harder to hide vulnerabilities for years
Vulnerabilitues should never be hidden but in stead eradicated. The true advantage of oss (regarding security) is that your implementations have to be secure. Security by obscurity is simply not an option
and it’s more obvious if they don’t fix it.
Security also means knowing about issues. When “they don’t fix it” in OSS, you at least (can) know about that, in closed source it is harder to be sure that the code is secure.
This is the right answer. Basically nothing is secure. That’s the truth. There will always be a hole or a way to circumvent something. That said, a lot of open source software is very high quality and I use it where I can because it’s free and some conglomerate is not push ads or siphoning info from me.
It is no all or nothing question. Some things are obviously more secure than others. Locking your door with a key won’t guarantee that there will be no home invasion but having no lock at all will make it much easier for potential threats. And open source software has advantages in this regard.
There are good comments here already, but I thought I’d provide a practical breakdown of my experience using both in web development.
Open source software is generally better overall from a programming perspective. The “many eyes” dynamic can be extremely positive if the project has a strong developer community. Even smaller communities make great software.
On a security level, I’d say they’re about on par - I’ve had about as many security issues with open source as I have with closed. It was what to do when that security problem arose that the real difference came into play. In open source, you either have to figure it out yourself, or wait for the community to fix it. In closed source, you’re paying someone to fix it for you. On the balance, closed source security issues get fixed faster than open source in my experience, but it really depends on the strength of the community behind the open source project, versus the size of the closed source company - bigger companies move a lot slower than many of the smaller services I’ve used.
On a software evolution level, open source wipes the floor with closed source. There’s simply no competing with the amount of creative minds behind open source development. Most closed source successes in the online world are built on the backs of open source developers - if not directly, than on the ideas that had their genesis in the open source space.
When it comes to consistency and stability, they’re about neck and neck, with a slight advantage to closed source. Again, it’s the difference between volunteers maintaining the code and someone you’re paying.
On a personal level, how much do you want to be involved with running the software? If you want to have a greater level of control, build new features, and have the time to maintain it, go open source. If you just want it to work and you’re willing to pay someone else to maintain it, go closed source.
Note in a corporate setting, it’s often better to go with closed source, as then you have more plausible deniability and someone else to blame when it fails.
deleted by creator
If you know how to code and you audit the code and compile it yourself from the source code ? Then it is 100% safe.
If the program is from a well regarded community and the source code is easily accessible to the public and it has been regularly reviewed by experts ? Then it is pretty safe.
If the program is from an unknown source and the source code is difficult to access by the public or it is obfuscated and no reviews are available? It is probably better to give it a miss and keep looking for a program that is more trustworthy which suits your needs.