Let's also admit that setting up iptables is harder than it needs to be. I mean, not after the first twenty times... you eventually remember all the arcane logic and expect everyone else to as well.
Most people don't know that you can have systemd bind to the privileged ports for you, and hand over the fd to the port to your (unprivileged) process.
Same goes for docker/containerd btw, if you run docker as root nowadays, you are doing it wrong.
[1] https://www.freedesktop.org/software/systemd/man/systemd.soc... [2] https://www.freedesktop.org/software/systemd/man/systemd-soc...
I thought Atlassian products were well trusted. Is that not the case?
https://confluence.atlassian.com/doc/confluence-security-adv...
Each time, they patch the particular vulnerable script, but they don't seem to have done anything systematic which would eliminate the entire class of vulnerabilities (like, say, adding taint-checking for unquoted, client-supplied content before running code as an OGNL script). So they keep coming up.
See "Figure 1. Process tree in Volexity Volcano Server from the infected Confluence server"
https://www.volexity.com/wp-content/uploads/2022/06/Figure1....
I didn't mean running as non-root would fix the problem, just that a remote root RCE was worse than a normal RCE.
I usually try and make this so, but it is often very hard to impossible. Vendors do not make it easy.
https://www.zdnet.com/article/equifax-confirms-apache-struts...
Now, if the attacker has access to the proxy authentication, all of this doesn’t help much, but at least you could track and limit who can access what chunks.
This only applies to apps for internal use like Confluence or Jenkins, not publically accessible websites.
An unauthenticated attacker can no longer simply rely on a vulnerability in the application or underlying framework, but must first obtain an employee's credentials, or find another vulnerability in the proxy or authentication infrastructure.
This isn't a false sense of security. It is a concrete additional layer of security which has tangible benefits.
I have other proxies which require OIDC authentication before passing any packets on
Now sure, I'm still vulnerable to internal attackers from my company, but that's an audited trail to a real specific user, not just a random botnet on the internet.
This often doesn't apply in cryptography; where adding two separate functions may result in a system that is actually weaker to attack.
The real problem is if there only one wedge, you need to combine that strategy with multiple layers of security to get anywhere, otherwise the first hole is the last.
Possibly just some nginx features I'm not familiar with, or are there whole apps out there that serve to be nothing other than an authentication layer inside of a webserver? Are they popular?
Google IAP is a big one, and Cloudflare Access can let you do similar things (link an internal service to Cloudflare network and Cloudflare will deny someone ability to talk to that service until they've validated their identity to cloudflare and it matches your rules somehow.
Nothing from Atlassian should ever be exposed to the public internet. Atlassian stuff is a security tire-fire with very old dependencies even in the latest releases, a painful reinstall/config merge needed for even minor patches, and no auto-update mechanism.