8 ms·
> Not if you're running HTTPS you're not. Yes, you are. If your adversary can MITM a datacenter, it's likely that a rouge cert can also be obtained from a trus
by Nyr 11y ago
> Not if you're running HTTPS you're not.
Yes, you are. If your adversary can MITM a datacenter, it's likely that a rouge cert can also be obtained from a trusted CA. If your threat model includes this kind of adversary, please don't use my script. You should also consider how funny would be to host a VPN and route your traffic like this in a network which you don't trust.
> You're also still ignoring my first point as well.
What would an adversary accomplish pointing a DIFFERENT short URL to a malicious script? I don't understand. I'm only using/listing git.io/vpn, so whatever someone does with other URLs is not my problem. There is some fork using git.io/ovpn for example.
> I really don't get your careless stance here.
I'm not careless. You can either run the one-liner which clearly states --no-check-certificate or download and examine the script as long as you want. The choice is on you.
> Github already comes with an SSL cert
But minimal distro images don't come with trusted CA certificates, so it's useless. Yes, I could install them. No, I don't want to.
- laumars 11y ago> Yes, you are. If your adversary can MITM a datacenter, it's likely that a rouge cert can also be obtained from a trusted CA. One cannot simply obtain a cert from a trusted CA. Hence how they become signing authorities. Granted it's not impossible to do, but it is very difficult. Certainly a far better assurance than not running HTTPS at all. > If your threat model includes this kind of adversary, please don't use my script. You should also consider how funny would be to host a VPN and route your traffic like this in a network which you don't trust. We're not talking local network here - literally nobody can trust the internet. Hence why CA's exist in the first place. This isn't some weird edge case threat model, this is something that's well known and already handled. And it's something that is already supported by Github but you are intentionally breaking. > What would an adversary accomplish pointing a DIFFERENT short URL to a malicious script? Do you really need that answered for you? 1. Clone repo 2. Publish their own shortened malicious URL in cloned repo 3. ??? 4. Profit It's called "social engineering" and actually quite a comment method of attack. > I'm not careless. Given this script is aimed at less-technical people, I'd say it's rather presumptuous to assume they'd even realise just how careless it is to run a script downloaded from an unverified source. > But minimal distro images don't come with trusted CA certificates, so it's useless. Yes, I could install them. No, I don't want to. That's an edge case. You can add a comment to disable the certs in that edge case - or better yet, instructions on how to install the CA certs. Every excuse you make is really just a plea for your own laziness. "it's the users responsibility" - no it's not, you're providing instructions for them thus it's your responsibility to get those instructions right. "they might not have CA installed", so add a footnote about installing that. I mean seriously dude, Github have already handed you the tools you need securing the install - there's literally no good excuse for disabling them.
- Nyr 11y ago> One cannot simply obtain a cert from a trusted CA. One can't simply MITM a datacenter. > literally nobody can trust the internet. Hence why CA's exist lol > it's something that is already supported by Github but you are intentionally breaking I'm not breaking anything. It is supported by GitHub but not by many of the client machines (by default). > It's called "social engineering" and actually quite a comment method of attack. I unfortunately can't fix user stupidity. > That's an edge case. That's when you've proved you have no idea about what my user base is. Minimal images are very common for OpenVZ templates. Anyway, and to end this: you've already stated your points and I've given you my explanations. You can either accept them or not, but I don't want to waste more time on this - feel free to fork if you don't like it.
- laumars 11y ago> One can't simply MITM a datacenter. SSHing onto a Linux server in some secure datacentre doesn't magically mean that everything that server connects to outside of the datacentre is also going to be secure. I assume that you do actually understand how the internet works? :p > I'm not breaking anything. It is supported by GitHub but not by many of the client machines (by default). Of course you're breaking things. You're breaking the security of HTTPS by disabling cert checking. And you're breaking readability of your install code by using URL shorteners. As for HTTPS not being supported by many of your client machines by default, it's so very easy to rectify: $(which apt-get yum) install ca-certificates This will work on Debian and its derivatives as well as the usual Redhat derivatives too. So that one line and works on all your supported platforms. It really is that simple. :) > I unfortunately can't fix user stupidity. But you're forcing user stupidity by using stupid defaults. It's quite literally your fault that they're being stupid as you're recommending they do stupid things. > That's when you've proved you have no idea about what my user base is. Minimal images are very common for OpenVZ templates. I happen run a hosting as a side project and almost exclusively use OS containers for personal projects. So I'm well versed in these kinds of containers and the kind of users you're targeting. You're just making excuses for bad security practices. > Anyway, and to end this: you've already stated your points and I've given you my explanations. You've given excuses, not explanations. I've demonstrated how easy it is to work around the limitations you've put in place. You've just given lazy excuses as to why you couldn't be bothered. The crux of the matter is when building gateways you should NEVER default to insecure settings like you are currently doing. Period. > feel free to fork if you don't like it. To be quite honest, it could benefit from a complete rewrite. The code is functional but messy, your OS detection could use a little fine tuning too. But the real problem is that there's more instances within your script of code getting pulled from the internet with certificate checking disabled, and that would also need to be fixed (but at least you're not using URL shorteners there). Your intentions are noble, but sadly your execution is less so. Which is what happens when you never listen to advice. And looking at the comments on your repo, this has been an issue that has been raised a multitude of times before. So it's not just me being an elitist :)