Going Beyond Port Knocking; Single Packet Access 23
michaelrash writes "I have just released a new version of fwknop that implements a single-packet authorization scheme using libpcap (similar to what Simple Nomad has proposed for the upcoming BlackHat Briefings). Fwknop has made Slashdot once before as the first tool that combines port knocking and passive OS fingerprinting. However, this new single-packet method has many advantages over port knocking, including non-replayable messages, much more data can be sent (including complete commands), an attacker cannot break sequences simply by connecting to spurious ports on the target, and more. By using Netfilter to intercept packets within the kernel, anyone scanning for a service protected by this method cannot even talk directly to the IP stack without being authorized; that makes even 0-day exploits largely toothless."
Yeah, right. (Score:2, Insightful)
Yes, because we all know netfilter is invulnerable to 0days? No. [secunia.com]
Re:Yeah, right. (Score:1)
(In theory, of course, because who knows how many firewalls or port knocking systems are correctly configured -- c.f. Microsoft-based systems.)
Re:Yeah, right. (Score:1)
Nothing is secure (Score:2, Funny)
make it spoofproof, they'll make a better spoof.
Whats the point of port knocking? (Score:3, Insightful)
In general if the TCPIP stack is clean and basic, along with a good packet filter ruleset (dont allow telnet), things will be pretty tough for a hacker. Why add overhead that makes the box secure only in theory (if that even).
Re:Whats the point of port knocking? (Score:3, Informative)
Port knocking does add overhead, yes, and the listener code could contain bugs that might in principle decrease security if the code were inline with the access path. However, port knocking code is not usually inline with the access path.
Instead, the knock listener monitors passively from outside the access path, so the worst that a bug in it could do is to turn the access
Re:Whats the point of port knocking? (Score:4, Informative)
Port knocking allows trusted clients from less trusted networks to access services. It gives a couple of advantages to plain packet filtering.
First of all, it doesn't require you to know the IP address of the client - unlike with packet filtering. With static IP addresses this is not a problem for packet filtering, but clients with notebooks traveling around the world with all kinds of IP addresses it definitely is. By using port knocking techniques your services, while still available, will look invisible to an unauthorized user. With plain packet filtering you would need to decide wether you block all connections or allow all of them.
Port knocking also has the the advantage that it may provide some form of user authentication. If a malicious user is behind a trusted NATed IP address, packet filters will happily grant access to talk with services. On the other hand by using port knocking, these services would still be hidden from the malicious user. (There might be a risk where the malicious user could try to get in while the trusted user is opening a connection, but there are ways to prevent that.)
So port knocking is one of the next steps you might do increasing the security on a system. Although there is a small overhead, you want to think about using port knocking when allowing connections from untrusted networks to your services.
Re:Whats the point of port knocking? (Score:1, Funny)
Ahh, fuck it. It's just another way for botnets to communicate.
Re:Whats the point of port knocking? (Score:3, Insightful)
Why overload the port concept when there are plenty of better ways to send data?
Re:Whats the point of port knocking? (Score:2)
That identifier became 'tcp ports' in tcpip, which is why we dont use ip alone. If a user's daemon is connected to a port, noone else uses that port, and external processes can get to that daemon through that port securely.
The SYN header data will work
Re:Whats the point of port knocking? (Score:2)
If the initial connection, sent to the appropriate port, includes the shared secret, you don't need to even listen to connection attempts on other ports. Making extraneous connections to other ports doesn't really gain you anything other than encoding a pas
Re:Whats the point of port knocking? (Score:1)
Good chance to get some karma - (Score:1)
Re:Good chance to get some karma - (Score:1, Informative)
Re:Good chance to get some karma - (Score:2)
You could probably get a script that takes the UDP datagram data through a pgp filter. Just include the time and only allow a 3 second sway to/from it and then accept it.
Including a encrypted time linked to your secret key is plenty good enough. Buh bye replay.
Re:Good chance to get some karma - (Score:3, Interesting)
Assumes libpcap is secure. (Score:3, Insightful)
If one rather not rely on libpcap being secure, one could whip up a perl/python server listening on some port, that'll handle the opening and closing of access to sshd and other stuff. That way you can use simple firewall rules which are less likely to have issues. Whatever it is you have to rely on the firewall code and kernel IP stack being secure.
Sure it's an active server that's listening, but it's a lot easier to secure a perl/python program from buffer overflows and other exploits... You could still DoS it, but it's trivial to DoS the target's internet connection anyway.
Re:Assumes libpcap is secure. (Score:1)
Taking it seriously? (Score:2)
Basically, you'd have better security if you set up a daemon listening on a known port that waited for you to send a password, with no overloading of the port concept in TCP. If you're worried about replay attacks, use the same encryption/whatever on your password as you would on the port numbers.
What benefits does port knocking give over a simple password on a known port?
Re:Taking it seriously? (Score:1)
Port knocking has the additional advantage of allowing the authentication layer to be pushed as low in the stack as possible. This means that the number of code paths (which could contain known/unknown vulnerabilities) is minimize
Re:Taking it seriously? (Score:2)
Port knocking hides the very existence of the service should a vulnerability for that service to be discovered.
The real problem is that only certain types of services are protectable. Anything that the public needs to be able to access is still exposed by necessity.
So, for those instances where it is applicable, the enhancements to secu
Re:Taking it seriously? (Score:1)
I can only suggest it's another security by obscurity tool.
The person who has this installed, probably has it on a home server, in a room with magnetic field protected doorways, ready to wipe the disks if the feds come to haul it away.
It's overkill like this that makes me rethink the whole point of privacy and security. Maybe we would all just be better off sharing everything in the clear (no confidentiality-breach preventio