New Bitcoin DDoS Technique
github.com
github.com
This doesn't appear to be new or interesting: If you exhaust a hosts incoming sockets it temporarily can't accept new connections.
Bitcoin itself already prioritizes existing and "good" connections to a substantial extent. Networks and IPs with multiple existing connections are prioritized for disconnection to handle new connections[1]. The result is that most existing connections are undisturbed, which makes it fairly ineffectual as an attack-- unless someone has broken something in the last couple years since I worked on it. A few years ago there were some periodic waves of people attempting attacks like this that went completely unnoticed in public due to their lack of meaningful effect.
It's annoying that new connections can be frustrated while an attack is ongoing, but since bitcoin connections are extremely long lived it doesn't have much of an impact, which is the security property the software is intended to uphold. The comment about 'finalization' suggests the author of the post isn't particularly familiar with how bitcoin works.
And at least if the attack is at a high enough rate, since the exhaustion will happen at the kernel before it gets to the bitcoin software, there isn't much for the bitcoin software to do. The host can implement firewall rules to mitigate, though even that can only work to the extent that the attack hasn't just effectively become volumetric.
It might be reasonable for the bitcoin authors to recommend some standard iptables rules that people should deploy as a best practice to protect their kernel's TCP stack (and avoid the issue that people will screw them up when coming up with their own).
[1] https://github.com/bitcoin/bitcoin/blob/master/src/node/evic...
If you're going to be making announcements and whatever, you probably should have taken the time to characterize your observations completely! The failure to do so makes it kinda just look like more lamesauce attempts at market manipulation (not to lob an accusation, it's just what it looks like -- there is a long history of that kind of activity).
> it's too early, at least for me, to know whether peers would drop a node under attack over timeouts,
Do your homework! You're not the first person who ever thought of attacking a bitcoin node. While I'm sure there are areas for improvement, you're not likely to be able to make useful suggestions from a position of almost total ignorance.
again, i've successfully found remote crashes and dos issues in 25 - 30 blockchains. i don't care if you're a biased developer who takes this to heart. i'm going to see to brutalizing bitcoind and making it clear to you what happens when i attack nodes. cocky academics like you motivate me. he who laughs last etc.
This is a great opportunity to get your ego in check. If you're really interested in security, follow the right path. No one here is impressed that you RCE'd slack (likely using someone else's research, and exploit dev nonetheless). No one is impressed with your Twitter or livejournal handle. And btw fuck anti and rj2 and the rest of those spam/scammers.
You probably smell bad. Dork.
Unless there's been a significant regression these issues were fixed after I found the slowloris type attacks to be an issue in 2012.
Edit: Maybe he's attacking his own RPC port, which again doesn't matter since it's not open to the internet.
it's not an rpc port - and the computer in the screen shot using telnet is an external machine that isn't participating in the attack.
The attacking node will have a very low score and get disconnected when other legitimate connections are made.
edit: re: child comment / syn flood; sure. bitcoind needs ip associated throttling baked in. there is no rationale behind a single machine attempting 1k handshakes a second. the attack shouldn't work at all.
But is it preventing the node from communicating with the rest of the network?
That's a big doubt from me.
It's yet to be seen by you. But you are not the first person to have thought of characterizing this behavior in the last decade. Some other people have actually done so, including the person you're responding to! (who successfully discovered and fixed a number of vulnerabilities years ago)
I tested and existing connections continue to work fine w/ a connection exhausted peer, as expected. It sounds like you're saying that you haven't tested this. If you do and get a different result, I'm sure the bitcoin devs would like to hear about it.
Most "blockchains" are just garbage scams. Many are just whitelabled junk put out by scamcoin factories-- development sweatshops that bang out whatever features at least appear to fulfill some nonsense a non-engineer wrote in some marketing whitepaper, in exchange for some payment. Then they pay exchanges to list then, pay influencers to hype them, dump their premines on the suckers who bought in and then wash rinse repeat until they're either wealthy enough to quit or blow their bankroll on a pump that fails.
If any of those are secure from attack at all it's mostly by accident -- security is certainly not a goal for them, and a non-fatal attack would just be a bit of free marketing.
Even ones that are less intentionally scammy, spend much of their time essentially failed under their own weight due to a lack of any technical competence supporting them.
> i suspect that there could be something here
A fine starting point for research, not a reason to make a public announcement.
Not even knowing if connections are long lived or not really shows you haven't even bothered checking on the most basic stuff that you could easily find with a few minutes of reading.
however - and i mean this - you need to watch your mouth buddy. you've been unnecessarily rude. i have decided not to respond with force - so either stfu or press your luck
Careful, you might cut yourself on that edge. Buddy.
News at eleven.
sudo iptables --append INPUT --source 123.123.123.123 --jump DROPedit: interesting child comment here. not pushing a patch just leaves the bulk of the network vulnerable to being ddos'd by a botnet - potentially resulting in severely lagged finality at best. ip throttling can/should be implemented by being baked into bitcoind.
This is a not a bug / won't fix
[1] https://en.wikipedia.org/wiki/Slowloris_(computer_security)