Erebus Attacks and how to stop them with ASMAP - NADO 18
Ep. 18

Erebus Attacks and how to stop them with ASMAP - NADO 18

•

Episode description

In this episode of The Van Wirdum Sjorsnado, Aaron and Sjors discuss the Erebus Attack. The episode is a follow-up from last week’s episode on Eclipse Attacks, a type of attack that isolates a Bitcoin node by occupying all of its connection slots to block the node from receiving any transactions. Erebus Attacks are Eclipse Attacks where an attacker essentially spoofs a whole part of the internet.

Support the Show!
Follow Bitcoin Magazine on Twitter @BitcoinMagazine
Follow Aaron van Wirdum @AaronvanW
Follow Sjors Provoost @provoost

Music:
Song Title: Segwit Sounds
By: The NakamoTones
Album: Citadel Music
Produced by: Bitcoin Audio

Transcript

Download transcript (.vtt)
0:07

Aaron van Wirdum Live from Utrecht, this is the van Wirdum Sjorsnado.

0:10

Sjors Provoost Hello.

0:10

Aaron van Wirdum Hey Sjors.

0:11

Sjors Provoost What's up?

0:11

Aaron van Wirdum We got a market cap all-time high. Did you celebrate?

0:13

Sjors Provoost No, I did not because it's just dilution.

0:16

Aaron van Wirdum What do you mean?

0:17

Sjors Provoost I mean, somebody's making more Bitcoin. So it's fun that the market cap goes up, but it doesn't matter unless you...

0:23

Aaron van Wirdum It doesn't benefit you personally. That's the only thing you're concerned about.

0:27

Sjors Provoost Exactly. I'm very selfish.

0:28

Aaron van Wirdum Got it. Sjors, we're making a follow-up episode this time.

0:31

Sjors Provoost That's right.

0:32

Aaron van Wirdum I think this is our first follow-up episode.

0:34

Sjors Provoost It's very possible.

0:35

Aaron van Wirdum Possibly.

0:36

Sjors Provoost But everything is connected.

0:37

Aaron van Wirdum Very true. Last week, we discussed eclipse attacks. And this week, we're going to discuss another type of eclipse attack. Yeah. Last week, we discussed a paper by Ethan Heilman et al. And this week we're discussing a paper by...

0:52

Sjors Provoost People whose name I unfortunately cannot pronounce, but from the University of Singapore, from Korea University, and from the Japan Advanced Institute of Science and Technology. Published quite a few years later than the previous paper.

1:05

Aaron van Wirdum Yeah, so what's the paper? What's the name of the paper? What's it called? What are we discussing exactly?

1:09

Sjors Provoost We are discussing the Erebus attack, or Erebus attack, or Erebus attack. I have no idea how to pronounce it.

1:15

Aaron van Wirdum Let's recap eclipse attacks very briefly.

1:18

Sjors Provoost Yeah.

1:18

Aaron van Wirdum You go for it.

1:19

Sjors Provoost So if you're a node and you think you're talking to the rest of the Bitcoin network, it may actually be just a single entity that is pretending to be all the other nodes that you're talking to. And so that node is eclipsing your view of the Bitcoin network.

1:32

Aaron van Wirdum Yeah, so that node could potentially shield transactions or blocks from you, maybe even create fake blocks or blocks that are not included in the longest blockchain.

1:43

Sjors Provoost Exactly. Not fake blocks, but definitely blocks that are not in the longest chain. So you might think... You've seen something confirmed and then suddenly there's a reorg that you didn't know about.

1:52

Aaron van Wirdum That's fake in my book Sjors.

1:54

Sjors Provoost Well, fake would be [unclear] signatures. Because you're still checking all the proof of work and all the rules.

2:00

Aaron van Wirdum In my book, it's fake, Sjors.

2:01

Sjors Provoost Okay, and Bitcoin Cash Blocks are real?

2:04

Aaron van Wirdum These are very fake. Okay. So one of the solutions, so for those who want more details, just listen to our previous episode, the one we did last week. One of the solutions we discussed are like IP buckets, where you categorize other nodes in different buckets. with IPs that suggest they are behind different ISPs.

2:26

Sjors Provoost Right, that's been in there from the beginning, these IP buckets, but that is one of the general defenses against Eclipse attacks. So you look at the four-digit, four-number IP address, and you look at the first two numbers, and usually you assume that's going to be different internet providers. So if you have some diversity there, that's good. And there's a bunch of other things that were done to make the original attacks more difficult.

2:46

Aaron van Wirdum Right. So, but this paper, the one we're discussing this week, actually... introduced, proposed, I don't know what the right word is to use here.

2:55

Sjors Provoost Revealed.

2:56

Aaron van Wirdum Revealed a new type of Eclipse attack.

2:59

Sjors Provoost That's right. Basically one where you can fake a lot of those initial IP addresses rather than just one or two.

3:08

Aaron van Wirdum Right. I think you described it as... with this eclipse attack because it is take two. You already described it in other words. You said this is like faking the internet.

3:17

Sjors Provoost It's like faking the internet or it's faking part of the internet.

3:20

Aaron van Wirdum You're faking part of the internet for one specific node.

3:23

Sjors Provoost Yes.

3:24

Aaron van Wirdum What is the internet?

3:26

Sjors Provoost What is the internet?

3:27

Aaron van Wirdum I think to understand this attack we need to understand the internet.

3:31

Sjors Provoost It's a group of computers. It has an amazing potential.

3:34

Aaron van Wirdum It's going to be very big one day maybe.

3:36

Sjors Provoost The internet consists of building blocks and those are called autonomous systems. An autonomous system could be an internet provider, it could be Google. Usually it's one legal entity and it owns a whole bunch of IP addresses. And when you send something from one place on the internet to another place on the internet, the package goes from one autonomous system to the next autonomous system to the next autonomous systems from your provider to Google to some other place on the internet.

4:03

Aaron van Wirdum Right. So if I am a node and I want to connect to a diverse part of the internet, I want to... How do I say this? I want to connect to nodes on diverse areas of the internet.

4:18

Sjors Provoost Yes.

4:18

Aaron van Wirdum Then surely if I connect to nodes in different autonomous systems, then all my problems are solved.

4:24

Sjors Provoost Well, that would definitely be a big improvement over just connecting to different IP prefixes, right? Because Amazon has a lot of them, but you're not really there yet. And that's what the faking the internet comes in. Because when your package goes from your autonomous system to the next autonomous system to the next one, You don't know what's happening after the first step. So the first autonomous system in line can actually fake everything behind it.

4:51

Aaron van Wirdum Right. So it's one autonomous system could be like a bottleneck for a whole part of the internet behind it.

5:00

Sjors Provoost Correct.

5:00

Aaron van Wirdum Can you give an example of this?

5:02

Sjors Provoost Yeah. So if we look at it geographically, it's a slight oversimplification. But if you're in Europe and you want to connect to New Zealand, then it's going to go through Australia. And so Australia can basically fake anything going to and coming from New Zealand. Not entirely true because I think there's another cable, but let's pretend there isn't.

5:20

Aaron van Wirdum Yeah, we're simplifying a bit. So there are bottlenecks.

5:24

Sjors Provoost And we could say Indonesia could be faking everything that's happening in Australia and New Zealand.

5:28

Aaron van Wirdum Yeah. So let's say, for example, that I am a node. I'm still a node. And I want to connect to diverse parts of the internet. So I'm going to pick... Indonesia and Australia and New Zealand because they're very different parts of the internet. But then actually...

5:46

Sjors Provoost Actually, you might only be connected to some evil person in Indonesia that's fooling you.

5:51

Aaron van Wirdum That's acting as a bottleneck for the other parts and that's faking the other parts. So then I'm still susceptible to an eclipse attack by the Indonesian guy.

6:00

Sjors Provoost Yes. Well, of course, not some random Indonesian guy. It would have to be whoever is in control of the Indonesian internet.

6:07

Aaron van Wirdum Which in Indonesia is probably some random guy.

6:10

Sjors Provoost It's very possible.

6:11

Aaron van Wirdum I may be insulting our Indonesian listeners now.

6:15

Sjors Provoost It's also important to understand that the internet isn't very geographical in that sense. So, for example, there's a cable company in the Netherlands called Ziggo. And if you look at how the internet is constructed from there, the Netherlands Ziggo and the UK Ziggo and the Austrian Ziggo are all behind the same thing called Aorta. whereas the Dutch KPN is not. So in a sense, Dutch and English and Austrian Ziggo customers are less diverse than Dutch and Dutch KPN and Ziggo customers that might be living right next to each other.

6:51

Aaron van Wirdum Right. Interesting. so anyways I'm a node I think I'm being smart I'm connecting to different parts of the internet different autonomous systems but then actually I can still be tricked yeah sure how can we possibly know where all of these bottlenecks are

7:07

Sjors Provoost Well, first of all, I think we should recap a little bit that how this attack would work because just faking it is not enough. You need to do the same thing as we explained in the previous episode. So you need to make sure that the person, the node you're attacking is only going to connect to parts of the internet that are behind you. But the nice thing is that rather than only giving it your IP address and IP addresses you control, you can give that victim node IP addresses from all over the world. So a much more diverse seeming. range of IP addresses. But the rest of the tech works the same. So you spam them, you wait for them to connect only to you. Yeah. To things that are behind you, quote unquote. And then maybe you reset them and if you can get them to crash, but, or you just wait.

7:49

Aaron van Wirdum Yeah. We took all of these precautions that we described last week, but then now our smart random Indonesian guy, attacker, he's aware of all of these solutions so he can still trick us.

8:01

Sjors Provoost Yeah. Because he can fake a much larger chunk of the internet this time. So then the question is that you asked us, what can we do about it?

8:07

Aaron van Wirdum Bottlenecks, where are they? How do we know?

8:09

Sjors Provoost Yeah. So the nice thing is there's no official map of the internet. But the internet is a very decentralized thing. Everybody kind of plugs in on their end of the world. But there are people who are trying to make these maps. And in particular, there's an organization called RIPE. Or I-P-E. I don't know how they prefer to be pronounced. And they coordinate the internet in Europe, Middle East, and the former Soviet Union.

8:32

Aaron van Wirdum Who or what are? or what are they is it is like a non-profit or how should I think about this

8:38

Sjors Provoost I think there's some sort of unofficial official internet owning non-profit I mean they're the internet people what do you mean by non-profit right there

8:47

Aaron van Wirdum I don't know I'm just asking questions because I have no idea what RIPE is

8:52

Sjors Provoost Yeah, neither do I.

8:53

Aaron van Wirdum Okay, internet people. They're making the map for us.

8:56

Sjors Provoost Exactly. So they do all sorts of useful things, and one of the projects they do is making maps. And basically the way they do that is they have a bunch of very large autonomous systems that are sort of connecting to lots of different providers all over the world, and they ask them to basically ping everything on the internet and construct. routing tables to that point. So they keep track of where the packages go and how they come back. Right. And then they publish that. Basically every month, there's like a giant file that you can download that says, okay, this is the way from me to this place. This is the way from me to this other place. And yeah, everybody can download that and play with that.

9:41

Aaron van Wirdum So it's like an unofficial roadmap for the internet, which they're making.

9:45

Sjors Provoost Exactly.

9:45

Aaron van Wirdum Which has got colorful lines and map of the world. And is that how I should see it?

9:51

Sjors Provoost Yeah, exactly. But it's not a complete map, right? It's just a map from those vantage points. So from like 20 different places, you can see thousands of other different places.

10:00

Aaron van Wirdum So like Europe and Eurasia, is that what you mentioned?

10:04

Sjors Provoost Well, again, it's not...

10:05

Aaron van Wirdum Or they're making it for the entire world. What are these [unclear] places?

10:08

Sjors Provoost This organization works for Europe and et cetera, but they're doing this for the whole world. So they are mapping from South America and from Australia and from Singapore and from the Netherlands and from all these places.

10:17

Aaron van Wirdum Right. So this is a big map. This is like a couple gigabytes.

10:20

Sjors Provoost Yes.

10:21

Aaron van Wirdum So... You start your Bitcoin node and you download a couple of gigabytes.

10:26

Sjors Provoost Right, because we like downloading gigabytes and then you process it. No. Thankfully, there is another project actually can download this map for you called asmap-rs done by Gleb Naumenko and someone whose first name I don't know called Rybarczyk. And what they do is two things. One, they download this map, and the other is they process the map. Because now you have all these routes on the internet, but the question you really want to ask is, where are the shadows, or where are the bottlenecks, put a different way. And so what it does is it looks at all the lines from A to B, and it says, okay, if there's a line from A to B to C, and there's a line from E to B to C, then you say, well, all lines go to C, they all go to B. Or in the example we gave before, all routes to New Zealand all go through Indonesia. So what we're going to do is we're going to consider that as if it is Indonesia. So it's a way to compress the internet, basically. You just hide everything that's behind something else.

11:28

Aaron van Wirdum Right, yeah. So RIPE made this map, and then Gleb Naumenko and Mr. Rybarczyk, they mapped out the bottlenecks.

11:36

Sjors Provoost Correct.

11:36

Aaron van Wirdum Which is not 4 gigabytes, which is a much smaller file.

11:39

Sjors Provoost Yeah, I think they compressed it down to 8 gig—8 megabytes.

11:43

Aaron van Wirdum Right. And do they update this frequently? Because you mentioned RIPE publish a new map every month or so. Is this also something that's being updated?

11:50

Sjors Provoost Well, and even that's somewhat decentralized because RIPE is pointing to 10 different, or I think 16 different organizations that are producing maps in the same format. at whatever frequency they choose to.

12:02

Aaron van Wirdum I see.

12:02

Sjors Provoost Some of them do it every month. Some of them haven't done it in 10 years.

12:05

Aaron van Wirdum Right. And are Gleb Naumenko and Mr. Rybarczyk also updating their bottleneck?

12:09

Sjors Provoost No, they're doing nothing because they published code that you can run.

12:12

Aaron van Wirdum Oh, I see.

12:13

Sjors Provoost Yeah.

12:14

Aaron van Wirdum Oh, they made software that maps out the bottlenecks.

12:17

Sjors Provoost Exactly.

12:18

Aaron van Wirdum I see.

12:18

Sjors Provoost That just downloads those files, whatever the most recent version is, and processes it.

12:22

Aaron van Wirdum Right.

12:22

Sjors Provoost And then there's another script written by Pieter Wuille, sipa, and it takes that map. and it compresses it down to one megabyte using some sort of bitmap magical compression.

12:35

Aaron van Wirdum Right. And that's included into Bitcoin Core?

12:39

Sjors Provoost Well, no. Bitcoin Core can use it, but it is not included. It's one of those things where Bitcoin Core makes an improvement but doesn't completely finish it because they want people to try it out. So the idea is in the future to include it in Bitcoin Core if there are no objections and problems with it.

12:55

Aaron van Wirdum Okay, wait. So what's included now exactly?

12:57

Sjors Provoost Right now, Bitcoin Core... it can use this file if you give it to it.

13:02

Aaron van Wirdum Okay, so you got to separately use that software that Gleb Naumenko and Mr. Rybarczyk wrote?

13:08

Sjors Provoost And the software that sipa wrote? Yes, to download and process it. And it's just like two commands. But the idea is, of course, that eventually that'll be in Bitcoin Core. You don't have to do anything. It'll just work. But you can use that software to check that the thing that is in Bitcoin Core is not a lie. Because you don't want the Bitcoin Core developers to lie about what the internet looks like. So a problem is auditability. So can you, given those original files, reproduce the same thing? Can everybody reproduce the same thing?

13:36

Aaron van Wirdum Right. Okay, now we've done this. implemented this we've included this in our version of Bitcoin Core

13:42

Sjors Provoost yep and and basically what that changes is the way the buckets are organized

13:46

Aaron van Wirdum okay

13:46

Sjors Provoost so we talked about buckets right we you look at an IP address and you take the first two numbers and you try to make it you try to make sure that buckets all have different of these prefixes and the only difference is now you do that with these autonomous systems but not just with the autonomous systems but with the ones that we've said only Indonesia rather than We don't consider Indonesia, Australia, and New Zealand separate. We only consider Indonesia, and we keep that diverse. So you have a diverse set of things that are not behind something else.

14:16

Aaron van Wirdum Yes, so this makes even this evil Indonesian random... genius, unable to launch eclipse attacks on us because we're connecting to different parts of the internet behind different bottlenecks.

14:31

Sjors Provoost I would not say unable, but at least it's another pain.

14:35

Aaron van Wirdum We're making his life harder and harder.

14:37

Sjors Provoost Yes, we are. But we're not making it impossible. And for that, I think you would need an even more sophisticated map of the internet and making sure that your eight buckets are not still behind. Your eight connections are still not, you know, behind the same thing.

14:53

Aaron van Wirdum Right. So what's this solution called?

14:54

Sjors Provoost ASMap.

14:55

Aaron van Wirdum And this was included in the last version of Bitcoin Core.

14:58

Sjors Provoost Yeah, the ability to use a map has been included in the last version. And I guess in some future, it'll just work.

15:03

Aaron van Wirdum And it's still a work in progress. It's being developed further and further.

15:06

Sjors Provoost I mean, you know, sipa is very busy with Taproot and stuff. So I'm not sure about the progress, but yeah.

15:14

Aaron van Wirdum sipa can work on several things at once.

15:16

Sjors Provoost He can.

15:17

Aaron van Wirdum And probably literally at once, I mean, with like several laptops and doing it all.

15:23

Sjors Provoost And his clones.

15:24

Aaron van Wirdum Yes.

15:24

Sjors Provoost Exactly. But everybody can contribute on that stuff.

15:27

Aaron van Wirdum Right.

15:27

Sjors Provoost And we're contributing by explaining it.

15:29

Aaron van Wirdum That's being generous.

15:32

Sjors Provoost I like to be generous to myself.

15:34

Aaron van Wirdum Okay. Well, it's clear to me.

15:36

Sjors Provoost Okay. Excellent.

15:37

Aaron van Wirdum Did this cover... The paper by the Singaporean Japanese researchers.

15:42

Sjors Provoost Yeah, I think so. Because they said it was hard to solve and it's been solved.

15:46

Aaron van Wirdum Nice.

15:46

Sjors Provoost All right. So thank you for listening to the van Wirdum Sjorsnado.

15:49

Aaron van Wirdum There you go.