News for hackers. Stuff that matters.
Re:Port knocking by fao_ on Thursday May 14, 2020 @11:25PM (#23188515)
If you're exposing a developer instance to the network and it has port knocking deployed, why does it matter? The discoverability of such a service is basically zero.

What are the chances of the cracker finding the exact combination of ports to knock on, and then the exact key to use? If they're able to do that then they are a dedicated attacker and they're mitm'ing a presumably encrypted connection on your network, so you probably have more problems than just one bad machine, they already replicated or replaced a certificate on your machine, or worse.

And if you then expose a service that isn't via the port knocking algorithm, surely that would show up?

> We're not even comfortable with long-lived keys anymore

Can you not just change the key N number of logins and factor in 2FA as well?

I'm not sure how port knocking cannot, at least theoretically, be used in conjunction with the other measures you talked about.

Re:Port knocking by tptacek on Thursday May 14, 2020 @11:29PM (#23188539)
The premise of your comment is that you're deploying dev instances on routable IP addresses on networks without default-closed filtering, in a configuration where it's theoretically possible that people could directly get a remote shell into that machine.

Don't do that.

In AWS (for example), have a dev VPC, and a WireGuard forwarder on it (or, if you're doing things 2010-style, an SSH bastion). If the machine needs to expose 443 directly to the Internet, give it an EIP; have the VPC prevent traffic to anything but 443 (and WireGuard).

What, in that architecture, would port knocking even be accomplishing? Keeping the wrong developer off your machine?

As for how attackers would break port knocking: if you believe attackers can't passively watch traffic, either directly or through redirection, I have good news for you about how much money you need to spend on encrypting traffic!

Re:Port knocking by cheweh on Friday May 15, 2020 @09:09AM (#23191723)
Re: sniffing, if I were implementing port knocking I would use the "single packet authorization" variant like in knockknock, which makes sniffing much less useful to an attacker.
Re:Port knocking by tptacek on Friday May 15, 2020 @01:29PM (#23194814)
At the point where you're installing network cryptography tools to authorize access to your machine, why not just use a real cryptographic tunnel?
Re:Port knocking by juliusdavies on Friday May 15, 2020 @06:39PM (#23198346)
I just prepend a secret letter to every possible ssh account on my server ('root' becomes 'jroot') and so that way "ssh [email protected]" can never work even if you know my root password. And this way my defense is opaque to attackers passively monitoring my network traffic (the username is encrypted in the ssh protocol).

Oh shit, I just gave away my secret on a public forum...

Ha ha, fooled you! I use a different secret letter in actual practice!

(Or do I?)

p.s. Pretty sure port-knocking offers less protection than this scheme.

Re:Port knocking by tptacek on Friday May 15, 2020 @07:04PM (#23198540)
This does basically approximate my take on port knocking. :)
Re:Port knocking by gridlockd on Friday May 15, 2020 @08:18AM (#23191248)
You're telling people not to do a simple thing, instead telling them to do a far more complex thing.

You do not give a single argument on why the complex thing is meaningfully safer in practice.

If security is equal for all practical purposes in either case, this would be the wrong thing to do, because it is easier to fuck up complex things and it's more expensive to manage them.

https://xkcd.com/538/

Re:Port knocking by fao_ on Friday May 15, 2020 @07:31PM (#23198740)
Not just this, but they're assuming that everyone's server setups are enterprise-grade! People regularly still put raspberry pis and other kinds of low-cost computers on the public internet (William Gibson, for example, hosts hackers.town on a server setup in his (probably metaphorical) basement), and their answer to that is: "Don't do that".