ObolNetwork / charon

Charon (pronounced 'kharon') is a Proof of Stake Ethereum Distributed Validator Client
https://docs.obol.tech/
Other
202 stars 89 forks source link

Research libp2p DDoS attack mitigation #538

Open corverroos opened 2 years ago

corverroos commented 2 years ago

Problem to be solved

Charon nodes in a cluster communicate via libp2p. There are multiple libp2p protocols inside charon (dkg/qbft/ping/parsigex). A Byzantine node can DDoS other nodes by spamming them with valid (or invalid) connections and messages, causing OOM and or CPU problems.

DDoS can happen on the following resources:

This is however a common problem, so there might be existing solutions to the problem.

Proposed solution

Write a document with findings and recommendations.

Out of Scope

Nothing needs to be implemented yet.

corverroos commented 1 year ago

Note that one way to attack peers is to send future duties over libp2p protocols. We drop expired duties, but we do not have a "max future duty" limit or logic yet. So this could be used to spam and overload memory.