Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Simulate eclipse attacks #22

Open
ackintosh opened this issue Jun 15, 2022 · 6 comments
Open

Simulate eclipse attacks #22

ackintosh opened this issue Jun 15, 2022 · 6 comments

Comments

@ackintosh
Copy link
Owner

Ref: Low-Resource Eclipse Attacks on Ethereum’s Peer-to-Peer Network

  • ECLIPSE BY MONOPOLIZING CONNECTIONS
  • ECLIPSE BY TABLE POISONING
@AgeManning
Copy link

AgeManning commented Jun 19, 2022

I'm not sure that paper is relevant to our discv5.
I think we have built a few interesting counter-measures for eclipses.

I'm very curious to see how discv5 works under eclipse scenarios.

@ackintosh
Copy link
Owner Author

ackintosh commented Jun 20, 2022

You are right. The paper is mentioning Geth and Node Discovery Protocol v4. So I customed the attacks the paper introduces to apply them to discv5.

Still a work in progress, I have observed discv5 avoids the attacks, with effective configuration. 🚀

@AgeManning
Copy link

Oh nice. I was curious about how effective some of the measures we've added are. 🚀

@ackintosh
Copy link
Owner Author

ackintosh commented Jun 21, 2022

I noticed a scenario where attackers can add its node id to the victim's routing table as "outgoing".

image

From what I've seen of the code, the scenario can not happen on our discv5 implementation. 👍
https://github.com/sigp/discv5/blob/a00c872075d0b9d06a09292db99084559fcd7e91/src/handler/mod.rs#L670

I think it's worth implementing the scenario as a simulation, to check the validity of our implementation continuously.

(update) I'm planning to implement a scenario that is based on the above, the victim node sends FINDNODE, not PING.

@AgeManning
Copy link

Oh yeah nice. Looks like we cover this scenario. Have you seen this happen elsewhere?

I think the concept of ingoing/outgoing is something we have added independently and its not used in other implementations, i'm not sure tho

@ackintosh
Copy link
Owner Author

ackintosh commented Jun 23, 2022

I've only seen Prysm before, it also uses inbound/outbound (slightly different name from our discv5) concept. I'm not sure if the scenario happens on Prysm though because I haven't dug into Prysm. 🤔

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants