1 00:00:14,490 --> 00:00:17,150 It's August 2018. 2 00:00:17,710 --> 00:00:24,890 A sysadmin logs in to the control panel of a wind turbine in southern France to update its firmware. 3 00:00:25,410 --> 00:00:31,770 More than 600 kilometers away, their PHP session token appears on my screen. 4 00:00:32,430 --> 00:00:40,350 Eight months later, an Egyptian oil tanker pulls into the port of Sfax, Tunisia, with a malfunctioning alternator on board. 5 00:00:40,350 --> 00:00:53,570 From my vantage point, more than 1500 kilometers away, I learn that this ship will be out of commission for at least a month, and I learn the name and passport number of the engineer who's flying away to fix it. 6 00:00:54,410 --> 00:01:04,790 Just this summer, 13,000 meters above the Atlantic Ocean, the accountant of a Polish real estate group put the finishing touches on their annual financial report. 7 00:01:04,850 --> 00:01:16,810 The Word document she prepared reached my computer at the same time it arrived at the inboxes of her colleagues at her parent company, one of Europe's largest private commercial real estate trusts. 8 00:01:16,890 --> 00:01:19,110 How does this sort of thing happen? 9 00:01:19,110 --> 00:01:23,710 How do I get this kind of information, and how do we protect it in the future? 10 00:01:23,790 --> 00:01:25,190 I'm James Pavore. 11 00:01:25,190 --> 00:01:30,290 I'm a PhD student at Oxford University, where I research satellite cybersecurity. 12 00:01:30,570 --> 00:01:38,930 And today, I want to talk about the results of more than two years of experiments looking at real world use of satellite broadband. 13 00:01:39,050 --> 00:01:45,630 I do this work with a bunch of talented people from both the UK and Switzerland, and I'm honored to get to share what we've found. 14 00:01:46,010 --> 00:01:50,030 This actually started as a fairly small kind of summer project. 15 00:01:50,090 --> 00:01:57,630 What we wanted to do is take a look at some research from the mid to late 2000s and see if we could replicate these findings. 16 00:01:57,810 --> 00:02:11,370 And what was cool about this research is that these people found that there were these satellite television feeds that were encapsulating internet traffic as well, and that if you had the right equipment and the right know-how, you could actually find sensitive, 17 00:02:11,370 --> 00:02:14,210 unencrypted internet traffic inside those feeds. 18 00:02:14,330 --> 00:02:20,310 Now, a lot has changed both about the way we use satellites and the way we use the internet since 2005, right? 19 00:02:20,310 --> 00:02:22,370 We have like smartphones and stuff now. 20 00:02:22,390 --> 00:02:30,130 And so we wanted to update this research and also to make it a little bit broader and more systematic, kind of look at large-scale use of these patterns. 21 00:02:30,330 --> 00:02:41,110 So what we ended up doing is conducting a series of domain-focused experiments, looking at real-world users at land, at sea, and in the sky for these satellite internet connections. 22 00:02:41,630 --> 00:02:50,410 In total, we analyzed signals from 18 satellites in geostationary orbit with a combined coverage area of about 100 million square kilometers. 23 00:02:50,410 --> 00:02:58,930 To put that into perspective, that means we were able to receive signals from as far away as parts of the United States and the Caribbean, China, and India. 24 00:02:58,930 --> 00:03:01,610 A massive coverage area for an attacker. 25 00:03:01,750 --> 00:03:15,630 And in all 18 of these feeds, we identified deeply sensitive internet traffic, whether it was being transmitted using those protocols that had issues we've known about since 2005 or using newer protocols that have replaced it. 26 00:03:15,630 --> 00:03:17,330 And it wasn't just any data. 27 00:03:17,330 --> 00:03:19,490 It was some pretty interesting traffic. 28 00:03:19,490 --> 00:03:26,510 We saw sensitive information from nine members of the Fortune Global 500 that we're able to identify. 29 00:03:26,550 --> 00:03:32,610 Traffic belonging to passengers on six of the ten largest airlines in the world by passenger count. 30 00:03:33,110 --> 00:03:40,990 Traffic belonging to maritime companies who together make up 40% of the world's cargo shipping capacity by volume. 31 00:03:41,250 --> 00:03:51,350 And traffic belonging to government agencies ranging from the postal service of an Eastern European nation to an actual Air Force jet belonging to a North African country. 32 00:03:51,470 --> 00:03:54,690 We even saw traffic from regular people like you. 33 00:03:54,750 --> 00:04:00,390 People who might browse Wi-Fi in a coffee shop or update their Instagram while they're on a cruise. 34 00:04:00,990 --> 00:04:12,410 Now, before I delve into kind of the meat of this traffic, how we got at it, and what it has inside, I want to kind of be sure we're all starting at the same point and give you a bit of a crash course in satellite communications. 35 00:04:12,470 --> 00:04:18,910 So I'm going to run through a very simple scenario here to kind of explain what satellite communications look like in practice. 36 00:04:19,330 --> 00:04:21,090 So here's our satellite. 37 00:04:21,090 --> 00:04:26,630 It's in geostationary orbit, which means it's 30,000 kilometers above the Earth's surface. 38 00:04:26,650 --> 00:04:30,870 We have a customer in the Atlantic Ocean who wants to talk to this satellite. 39 00:04:31,730 --> 00:04:38,270 And to do this, they want to visit a website over the satellite feed that's hosted over here in Ireland. 40 00:04:38,270 --> 00:04:40,050 We'll say it's Google.com. 41 00:04:40,450 --> 00:04:48,410 And they have a device on their boat that's called a VSAT terminal, or a Very Small Aperture Terminal, which is what they'll use for this connection. 42 00:04:48,490 --> 00:04:54,410 And that device was sold to them by an internet service provider who runs a ground station here in Madrid. 43 00:04:55,170 --> 00:05:02,310 We'll also imagine an attacker who's quite far away from this conversation, down here in Accra, but still wants to intercept the communications. 44 00:05:02,750 --> 00:05:04,590 So how does this play out? 45 00:05:04,590 --> 00:05:08,190 Well, because our satellite's in geostationary orbit, it doesn't move around. 46 00:05:08,190 --> 00:05:16,610 So our customer just needs to point their satellite dish at the sky and say, get me Google.com, using whatever weird satellite protocol is used in this network. 47 00:05:16,770 --> 00:05:19,070 The satellite is more or less a dumb bent pipe. 48 00:05:19,070 --> 00:05:21,450 It doesn't really do any processing or networking. 49 00:05:21,450 --> 00:05:26,730 It just sends that signal right back down on a focused beam towards the ground station in Madrid. 50 00:05:26,850 --> 00:05:31,230 You'll notice this beam is very narrow, so it passes over our attacker at Accra's head. 51 00:05:31,230 --> 00:05:33,190 They can't intercept this communication. 52 00:05:33,190 --> 00:05:44,770 Once we get to Madrid, the satellite internet service provider will convert this weird satellite protocol into normal IP traffic and route it to Google, just like if you were visiting a webpage at home, terrestrially. 53 00:05:44,810 --> 00:05:49,670 It'll get the response over the terrestrial internet and then beam it back up into space. 54 00:05:50,470 --> 00:05:54,970 It's worth noting that when I say beam up into space, this isn't a fast process. 55 00:05:54,970 --> 00:06:06,110 The round-trip time for a conversation like this can be as long as 700 milliseconds, because the speed of light is only so fast, and geostationary orbit, which is the kind of satellite we're looking at, is very far away. 56 00:06:06,450 --> 00:06:12,170 Once we finally make it out there, though, there's one last step, which is to beam this signal back down to Earth. 57 00:06:12,330 --> 00:06:22,170 Only this time, we'll do it with a kind of critical difference, which is because satellites are expensive and we want to serve a lot of customers, we'll send it on a really broad forward link signal. 58 00:06:22,310 --> 00:06:34,990 You'll notice that the footprint of this signal reaches both our attacker in Ghana and our customer in the Atlantic Ocean, so those radio waves carrying that response from Google will hit our attacker's satellite dish at the same time as they hit the customer's. 59 00:06:34,990 --> 00:06:37,790 This is the crux of satellite eavesdropping. 60 00:06:37,890 --> 00:06:50,150 An attacker can reliably expect to intercept the signal from very far away on these forward links, but they can't always be guaranteed to see both sides of the conversation, which is somewhat unusual for an eavesdropper. 61 00:06:51,510 --> 00:07:08,470 Additionally, we can kind of think about the security properties in this context, because if we're imagining, say, a vulnerability in Wi-Fi or GSM, where the attacker has to be in your city or in your neighborhood to intercept your communications, here an attacker can be in a different country or on a different continent from their victim. 62 00:07:08,730 --> 00:07:12,390 So what does an attacker actually need to pull off this attack? 63 00:07:12,390 --> 00:07:15,030 Let's talk a little bit about our threat model. 64 00:07:15,190 --> 00:07:19,710 So in this case, if the attacker is a nation state, it's very simple. 65 00:07:19,710 --> 00:07:21,790 They simply need a bit of money. 66 00:07:21,870 --> 00:07:35,090 There are companies out there that sell specialized modems for intelligence collection purposes, like this one, and you hook them up to a multi-million dollar ground station, like this one, and you're off to the races just listening to whatever satellite signals you want. 67 00:07:35,090 --> 00:07:39,870 And it's a pretty reasonable assumption to say that national intelligence services are doing this. 68 00:07:40,510 --> 00:07:44,630 However, they don't really give this equipment to PhD students. 69 00:07:44,630 --> 00:07:53,070 So I had to find a different way to information, and that prior research that talked about using television signals is kind of what led our next step. 70 00:07:53,330 --> 00:07:59,370 So we tried to see how far we could get using simple home television equipment that's widely available. 71 00:07:59,370 --> 00:08:08,450 We picked up this nifty flat panel satellite dish, which cost around 90 bucks, although honestly you could get something free off of Craigslist or Gumtree most of the time. 72 00:08:08,450 --> 00:08:12,330 You may even have a satellite dish kind of like rusting on your roof that you could use. 73 00:08:12,470 --> 00:08:15,450 And then we got a card to interpret these signals in our computer. 74 00:08:15,450 --> 00:08:19,890 Now we used a professional end card, which tends to run about $200 to $300. 75 00:08:20,130 --> 00:08:30,050 You could use a much cheaper card in like the $80 price range at the cost of maybe not being able to comprehend the more complex internet signals, but you'd still definitely find something. 76 00:08:30,430 --> 00:08:36,510 Once we have this equipment, the next test is to actually use it to connect to a satellite signal. 77 00:08:36,830 --> 00:08:39,050 And figuring out where the satellite is is easy. 78 00:08:39,050 --> 00:08:43,510 It's public information, and since they're in geostationary orbit, they're not moving anywhere. 79 00:08:43,590 --> 00:08:46,050 But actually connecting is a little bit trickier. 80 00:08:46,050 --> 00:08:49,510 So let me show you what that looks like in our lab environment. 81 00:08:50,670 --> 00:09:00,670 So what we're going to go ahead and do is use a tool called EBS Pro, which is designed to help people find satellite television feeds to listen to if they want to watch TV on their computer. 82 00:09:00,710 --> 00:09:03,810 And we're going to scan to hunt for internet signals instead. 83 00:09:04,390 --> 00:09:10,110 Now what we're going to do is point our dish at a satellite that we think has internet service, say because of a press release. 84 00:09:10,130 --> 00:09:14,930 And we're going to scan the KU band of the radio spectrum, because that's what our equipment is set up for. 85 00:09:15,230 --> 00:09:21,990 And what we're looking for is kind of signal against all of this background noise that's indicative of channels that might have information. 86 00:09:22,650 --> 00:09:30,330 In this case, the signal is pretty noisy, but we do see a few distinct humps in the spectrum graph that might contain actual traffic inside them. 87 00:09:30,350 --> 00:09:35,890 We'll go ahead and tell our card to connect to this one and interpret it as a digital video broadcasting for satellite feed. 88 00:09:36,210 --> 00:09:41,490 After a few seconds, we get a lock, meaning that we found a satellite and we're listening to signals from it. 89 00:09:41,630 --> 00:09:46,550 Now for the demo, I'm going to connect to this weaker signal here because I know it has interesting information. 90 00:09:46,670 --> 00:09:53,510 You'll see the signal to noise ratio is pretty abysmal, so we're not likely to get all of the packets in this network, but hopefully we'll find something. 91 00:09:53,610 --> 00:10:00,530 I'll go ahead and real quick just jot down some information about the frequency, the orientation, and the symbol rate, because we're going to have to switch tools. 92 00:10:00,530 --> 00:10:07,850 This tool doesn't get us all the way, it's designed for television feeds, and what we really want is raw data from that digital video broadcasting signal. 93 00:10:08,150 --> 00:10:12,890 So to do that, I'll use a tool that's provided with our device, that PCIe card in the drivers. 94 00:10:13,050 --> 00:10:17,150 We'll lock to that signal we discovered, and then we'll kick off a quick recording. 95 00:10:17,770 --> 00:10:21,270 The amount of traffic you get in a recording like this is hugely variable. 96 00:10:21,270 --> 00:10:27,130 You could get a terabyte in a week, you could get a megabyte in a week, it depends on your equipment and the signal you're listening to. 97 00:10:27,230 --> 00:10:35,850 In this case, I'm just going to record a couple hundred kilobytes, and we'll take a look at the file and see if we have any indicators that it has internet traffic instead of television traffic. 98 00:10:36,310 --> 00:10:40,130 There's no trick here to differentiating between the two types. 99 00:10:40,130 --> 00:10:51,230 All I'm going to do is just kind of grep through that binary file for the string HTTP, which we would expect to see in an internet recording, but we wouldn't expect to see in a television feed. 100 00:10:51,450 --> 00:10:55,390 And sure enough, we see here what looks like the output of a SOAP API. 101 00:10:55,770 --> 00:11:06,310 At this point, this is a clear text information from someone else's internet signal using freely available tools and commercial off-the-shelf equipment. 102 00:11:06,770 --> 00:11:08,090 And that's pretty bad, right? 103 00:11:08,090 --> 00:11:11,310 They could have sensitive information just in this API string. 104 00:11:11,450 --> 00:11:15,810 But as an attacker, what we really want is to see if we can pull off something even worse. 105 00:11:15,810 --> 00:11:20,510 We want to understand the semantics of this connection, kind of the nature of the communications. 106 00:11:20,670 --> 00:11:24,010 And to do that, we have to delve a bit into the protocols that are being used. 107 00:11:24,750 --> 00:11:29,170 So in our research, we've looked at two protocols, although there are others out there. 108 00:11:29,310 --> 00:11:32,130 The first is called MPEG-TS. 109 00:11:32,130 --> 00:11:35,550 Now, you might be saying, MPEG, isn't that a video streaming format? 110 00:11:35,770 --> 00:11:36,730 And you'd be correct. 111 00:11:36,730 --> 00:11:40,470 MPEG is widely used across the internet for sending videos. 112 00:11:41,070 --> 00:11:44,250 It's used for satellite television video feeds, for example. 113 00:11:44,250 --> 00:11:47,650 And over the years, people have kind of added all kinds of weird additions. 114 00:11:47,650 --> 00:11:55,930 They've added the ability to, like, pause live satellite television or update your set-top boxes firmware over these feeds. 115 00:11:56,010 --> 00:12:01,750 And these functionalities have been kind of hacked together to offer interactivity and internet services. 116 00:12:02,130 --> 00:12:10,250 And so, inside all of these layers of weird protocols, you have a fairly standard container format that there's a lot of great tooling for working with. 117 00:12:10,630 --> 00:12:21,430 And so, in fact, if you're, like, really lucky and you get a high quality signal-to-noise ratio, you may just be able to open that file we saved in the desktop directly in Wireshark and start seeing real packets. 118 00:12:21,630 --> 00:12:27,910 This is kind of where prior research focused, because it was a pretty straightforward process to line up all the tools correctly. 119 00:12:28,050 --> 00:12:32,290 And then you could spend most of your time looking at the contents of the traffic, which is the interesting bit. 120 00:12:32,490 --> 00:12:40,950 However, MPEG-TS is still a used standard for satellite internet, but it's getting replaced by newer protocols like GSE, or generic stream encapsulation. 121 00:12:41,210 --> 00:12:43,550 GSE makes a lot more sense. 122 00:12:43,550 --> 00:12:52,290 It essentially has an IP layer, which is embedded inside of this generic stream, which is broken up into fragments and then put directly into that digital video broadcasting feed. 123 00:12:52,290 --> 00:12:57,790 So, you have none of the weird MPEG characteristics that are intended for video streaming and aren't relevant to internet. 124 00:12:58,270 --> 00:13:02,070 We found that it was particularly popular among enterprise customers. 125 00:13:02,070 --> 00:13:08,090 So, people who had an entire satellite transponder for their network, think like maritime customers or aviation customers. 126 00:13:08,110 --> 00:13:11,650 But these customers also had much better equipment than we do. 127 00:13:11,650 --> 00:13:19,550 They would spend tens to hundreds of thousands of dollars on signal processing hardware, whereas we're using, like, 200 bucks of a PCIe card. 128 00:13:19,550 --> 00:13:29,230 So, when we were trying to receive these signals, we were often missing fragments of IP packets and had super corrupted feeds, which meant that existing tools weren't able to parse these signals for us. 129 00:13:29,230 --> 00:13:31,550 We didn't get much help in that regard. 130 00:13:31,850 --> 00:13:36,050 So, what we did instead is build our own tool called GSE Extract. 131 00:13:36,110 --> 00:13:44,450 And the goal of GSE Extract is to forensically reconstruct PCAP files from corrupted recordings of GSE feeds. 132 00:13:44,610 --> 00:13:47,070 And it does this by taking some shortcuts. 133 00:13:47,290 --> 00:13:53,850 If we were designing a satellite modem, we would have to consider all of the edge cases and how a network operates or how a packet gets sent. 134 00:13:53,850 --> 00:13:59,190 But for GSE Extract, we can say, generally, we would expect the start of an IP packet to appear here. 135 00:13:59,190 --> 00:14:02,730 Or we would expect this fragment to belong to this payload. 136 00:14:02,910 --> 00:14:11,930 And by making some of those assumptions, GSE Extract is able to help us figure out what to do with between 50 and 70% of the frames that are hitting our dish. 137 00:14:11,950 --> 00:14:18,070 This is significantly better than an existing tool, which would just throw an error message because the feed is so corrupted. 138 00:14:19,150 --> 00:14:25,430 Hopefully, by the time that you're watching this recording, GSE Extract will be available on my research group's GitHub. 139 00:14:25,710 --> 00:14:31,570 It may take a little bit longer because we're still kind of doing some responsible disclosure review process stuff. 140 00:14:31,690 --> 00:14:33,770 But it should eventually end up there. 141 00:14:33,790 --> 00:14:43,890 In the interim, if you want to delve into how it works a little bit deeper, it's described in pretty high detail in a related academic paper that we published a few months ago in the appendix of that paper. 142 00:14:45,450 --> 00:14:49,110 So this is kind of what you get at the end of the day by using GSE Extract. 143 00:14:49,110 --> 00:14:57,690 This is a JPEG file that we intercepted from an engineer aboard a maritime vessel who was dealing with a maintenance issue and sending pictures to his colleagues. 144 00:14:57,930 --> 00:15:00,350 You'll see that we're able to get like the start of the packet. 145 00:15:00,350 --> 00:15:02,850 We're able to kind of figure out, you know, this is a JPEG file. 146 00:15:02,850 --> 00:15:04,430 We knew what port it was going to. 147 00:15:04,430 --> 00:15:06,450 We kind of knew the nature of the communications. 148 00:15:06,610 --> 00:15:08,750 But at some point, we start losing fragments. 149 00:15:08,750 --> 00:15:12,990 And then in the case of like a compressed file like this, we weren't able to get everything. 150 00:15:13,190 --> 00:15:17,450 That said, the first chunk of an IP payload often has the most interesting bits. 151 00:15:17,450 --> 00:15:22,730 It may be the entire packet, or it may be the parts that you care about from like a session login or something. 152 00:15:22,910 --> 00:15:36,690 And so we think this is still useful to an attacker, even if it's not 100% recovery, and allows someone to get away with $200 or $300 of home television equipment and do harm that they would otherwise need tens of thousands of dollars to play with in these networks. 153 00:15:38,090 --> 00:15:41,630 All right, so at this point, we're in a good spot. 154 00:15:41,630 --> 00:15:45,710 We have a satellite dish that we can use to talk to signals. 155 00:15:45,950 --> 00:15:55,550 We know that if those signals are in a digital video broadcasting for satellite format, which is very common from geostationary orbit, we can parse that using that PCIe card on our computer. 156 00:15:56,270 --> 00:16:09,650 Depending on the contents of those streams, we can use existing tools like DVBSnoop or Wireshark, or tools we've written ourselves like GSExtract, to get meaningful PCAP data out of it and understand the internet traffic inside. 157 00:16:09,650 --> 00:16:13,150 The next step is really to understand the impact of what we found. 158 00:16:13,150 --> 00:16:20,030 How does this affect modern users of terrestrial satellite communications, maritime, and aviation communication links? 159 00:16:20,430 --> 00:16:25,910 So across all three of these domains, there are a couple of general things we found that are worth highlighting. 160 00:16:25,950 --> 00:16:31,310 The first is that none of the ISPs we looked at appear to employ encryption by default. 161 00:16:31,430 --> 00:16:42,570 That is to say that individual customers might choose to encrypt their traffic, but the satellite ISP was sending over the satellite feed traffic in essentially the same format that was coming into the modem. 162 00:16:43,270 --> 00:16:50,070 What this means is that as an attacker, we had an ISP-level vantage point on the traffic that was coming to a customer. 163 00:16:50,070 --> 00:16:57,810 We saw every website they visited, every bit torrent they downloaded, every connection they made would pass over that satellite link and we would get it. 164 00:16:57,910 --> 00:17:06,910 But when we looked at the enterprise customers, this got even more interesting because a lot of these enterprise networks operate basically as a LAN environment across the satellite feed. 165 00:17:06,910 --> 00:17:12,090 A good example is a cruise line we were looking at that had Windows machines on all of their ships. 166 00:17:12,210 --> 00:17:19,670 And the internal Windows LDAP traffic from that network, that Windows local area environment, was being broadcast across the satellite feed. 167 00:17:19,770 --> 00:17:32,770 Getting to see Windows-to-Windows corporate LAN communications as a wireless eavesdropper is really unusual and we thought it was a particularly interesting angle because it got us behind the firewall of a lot of these big corporations' networks. 168 00:17:34,010 --> 00:17:38,650 So the first environment I want to talk about, the first domain, is terrestrial customers. 169 00:17:38,650 --> 00:17:44,510 And these were really interesting to us because they're real people, they're kind of your home internet users, and they care about privacy. 170 00:17:44,650 --> 00:17:46,650 Now, I know what you might be saying. 171 00:17:46,650 --> 00:17:52,810 You might say, wait a second, my browser has this lock icon on it which says that my traffic is encrypted. 172 00:17:52,910 --> 00:17:56,210 What could an eavesdropper do to cause harm to me? 173 00:17:56,230 --> 00:18:04,970 And I would say to you, convenient made-up straw man, that there's actually a lot that an attacker can do to mess with your communications in this context. 174 00:18:05,610 --> 00:18:18,050 So even though we can't see exactly the content of your communications, we get to see your DNS queries, for example, which is essentially every website you're visiting, and we can use that to piece together your browsing history. 175 00:18:18,270 --> 00:18:33,130 Additionally, those TLS certificates that you think are protecting your traffic, or protecting the contents of that traffic, but they're fingerprinting the websites you're visiting, which allowed us to determine like which networks devices belong to or generally where users were going. 176 00:18:33,130 --> 00:18:35,110 Now, this is a mild privacy concern. 177 00:18:35,110 --> 00:18:38,190 You don't want an entire continent to hear your browsing history. 178 00:18:38,190 --> 00:18:40,470 But it gets worse when you slip up. 179 00:18:40,470 --> 00:18:46,590 One of the most illustrative examples of this comes from a lawyer whose emails we intercepted across this feed. 180 00:18:46,590 --> 00:18:51,010 So this lawyer in Spain was communicating with one of his clients about an upcoming court case. 181 00:18:51,010 --> 00:18:52,790 He happened to be a defense attorney. 182 00:18:53,130 --> 00:19:01,190 And we intercepted the emails that were going to his inbox, because he was using POP3 to download them over the satellite link. 183 00:19:01,510 --> 00:19:08,710 And so this is obviously bad news for that attorney's client, and for attorney-client privilege, and customer privacy in general, and all of that. 184 00:19:08,710 --> 00:19:14,330 But it gets a little bit worse if we think about it in the context of everything else we know about this lawyer. 185 00:19:14,390 --> 00:19:20,690 Because we also know what other websites he was visiting, and so we can say, hey, this lawyer goes to PayPal.com. 186 00:19:20,690 --> 00:19:22,830 We see that from his DNS queries. 187 00:19:22,830 --> 00:19:26,590 We have his email address, and we can read everything that goes to his inbox. 188 00:19:26,590 --> 00:19:32,170 We can go and hit the reset my password link on PayPal, and essentially hijack his accounts. 189 00:19:32,250 --> 00:19:44,910 This demonstrates how a man-in-the-middle attacker who's listening to your entire connection, who's essentially an internet service provider, can engage in attacks that are way more sophisticated than someone who's just eavesdropping in a single connection to an insecure service. 190 00:19:46,750 --> 00:19:56,990 So, the other thing we were curious about were kind of IoT systems, because these didn't really exist when people were looking at these feeds last time, especially in kind of the electricity and critical infrastructure domain. 191 00:19:57,370 --> 00:20:03,850 We found that a lot of operators seem to be using these networks under the assumption that they were secure against eavesdropping. 192 00:20:04,030 --> 00:20:17,050 A great example of this is a major electricity provider in Europe who had this HTTP basic authentication login that you see on the left to access the Cisco router inside their network's configuration page. 193 00:20:17,290 --> 00:20:25,430 And I've blocked out all of the sensitive information, but clearly this is a clear text admin username and credential that could probably change some settings on that router. 194 00:20:25,630 --> 00:20:35,450 And if you have a keen eye, you'll see that the host IP address for this router is publicly routable, meaning that anyone with an internet connection could use these credentials to log into the device. 195 00:20:35,750 --> 00:20:45,110 Very similarly, I kind of touched on this at the beginning, there are a lot of wind turbines that use satellite connections because they're in remote locations and they don't have terrestrial internet access. 196 00:20:45,330 --> 00:20:52,890 And what we found is that a lot of them have these control panels that were used to configure the devices that were being sent over the satellite feed. 197 00:20:52,890 --> 00:20:56,490 And these control panels are publicly routable over the open internet. 198 00:20:56,610 --> 00:21:10,110 So we could get these credentials that were being leaked in clear text over the satellite feed, whether that be a login cookie or username and password, and combine it with any internet connection to potentially start messing around with these power generation facilities. 199 00:21:10,290 --> 00:21:13,770 Now, obviously, we didn't engage in any attacks on an electrical grid system. 200 00:21:13,770 --> 00:21:17,710 So there could be another protection when you log in as some sort of second factor control. 201 00:21:17,710 --> 00:21:22,130 But I think it's intuitively concerning that this stuff is getting sent in clear text. 202 00:21:23,330 --> 00:21:31,870 So heading out to sea for a moment, I think one of the most interesting things for us about the maritime case was how unique every boat in the network is. 203 00:21:31,870 --> 00:21:37,450 So we had these terabytes and terabytes of traffic from all kinds of different companies and all kinds of different ships. 204 00:21:37,650 --> 00:21:46,450 And what we really wanted to do was figure out a way to tie an IP address in this massive PCAP file to a specific boat in the ocean to figure out what it was doing. 205 00:21:46,730 --> 00:21:52,610 So we picked 100 random IP addresses from the thousands that we had, and we set ourselves a little challenge. 206 00:21:52,610 --> 00:21:59,850 We designed a fingerprint based off of DNS queries and TLS certificates and a couple of strings from the first few kilobytes of their traffic. 207 00:21:59,910 --> 00:22:04,710 And we used that to see if we could de-anonymize IP addresses and identify ships. 208 00:22:04,710 --> 00:22:10,890 This very basic kind of manual process was sufficient to de-anonymize 10% of the vessels in that case study. 209 00:22:10,890 --> 00:22:12,710 So we de-anonymized 12 vessels. 210 00:22:12,710 --> 00:22:21,770 I've hidden their names here because I want to maintain the privacy of their owners, but you get a real sense for the breadth of the type of ships impacted by this research. 211 00:22:21,910 --> 00:22:30,690 So the smallest fleet that we listened to was this fishing fleet here, which had a single fishing vessel and was using some sort of software over the satellite feed to help it find fish. 212 00:22:30,690 --> 00:22:32,510 I'm not really sure how it works. 213 00:22:32,790 --> 00:22:39,950 On the flip side, we have this enormous container ship, one of the larger container ships in the world, belonging to one of the larger shipping companies in the world. 214 00:22:40,030 --> 00:22:45,130 And it's operating within the same kind of IP address space as that random fishing crew. 215 00:22:46,050 --> 00:22:54,510 Beyond being able to identify like which companies and organizations are affected, another cool thing we could do is kind of fingerprint operational technology aboard the vessel. 216 00:22:54,730 --> 00:23:00,250 A good example is this subsea repair ship down here, which is owned by a major petroleum company. 217 00:23:00,610 --> 00:23:12,090 And we were able to identify from the traffic inside those PCAP files that there was a device on board the ship running a vulnerable version of Windows Server 2003 that had all kinds of CVEs that could be deployed against it. 218 00:23:12,090 --> 00:23:24,930 At this point, if we wanted to attack that ship, we could potentially deploy CVEs not just against that one, but against any ship in this petroleum company's fleet and potentially cause some serious harm. 219 00:23:26,090 --> 00:23:34,950 So another piece of operational technology we were curious about was something called electronic chart display and information systems, or ECTIS. 220 00:23:34,950 --> 00:23:38,670 And ECTIS are essentially GPS nav terminals for boats. 221 00:23:38,830 --> 00:23:41,710 They tell boats like where they can go safely or illegally. 222 00:23:41,710 --> 00:23:44,610 They have like various hazard updates for mariners. 223 00:23:44,610 --> 00:23:47,110 And there's been a lot of great research on securing them. 224 00:23:47,110 --> 00:23:53,630 There are actually formats out there to stop people from tampering with these charts using various cryptographic authenticity guarantees. 225 00:23:54,010 --> 00:24:04,270 Unfortunately, we saw that a lot of maritime operators were using older or proprietary versions of these formats that did not have protections against tampering attacks that we could see. 226 00:24:04,630 --> 00:24:06,950 Now, you might be saying, why does this matter, right? 227 00:24:06,950 --> 00:24:11,650 You can get free nautical charts and maybe save a couple hundred bucks if you want to go on a sailing expedition. 228 00:24:11,650 --> 00:24:16,890 But can you really mess with this data as someone who's just passively listening to a satellite connection? 229 00:24:16,970 --> 00:24:21,130 It turns out that you can, because a lot of these are updated insecurely. 230 00:24:21,130 --> 00:24:26,850 A great example is this ship, which had a publicly routable FTP server on board. 231 00:24:27,010 --> 00:24:37,730 And the way they would get their chart updates is someone on land in the back office would copy the latest chart files into a folder called chart delivery on an FTP server, and then it would get deployed to the ECTOS terminal. 232 00:24:38,730 --> 00:24:44,170 Now, because this FTP server is accessible over the internet, anyone with an internet connection can connect to it. 233 00:24:44,170 --> 00:24:49,050 And the password is getting sent in clear text over the satellite feed because they didn't use SFTP. 234 00:24:49,050 --> 00:24:54,770 And so it would be pretty trivial to send a false chart to this folder or even deploy targeted malware. 235 00:24:55,170 --> 00:24:58,570 Another common way that charts get update is via emails. 236 00:24:58,570 --> 00:25:08,850 And generally there's an email address like chartupdates underscore ship name at shipcompany.org, which will get updates every so often as attachments to the inbox. 237 00:25:08,850 --> 00:25:15,190 The captain will copy those files onto a flash drive, walk over to the ECTOS terminal, plug it in, and kind of update the information. 238 00:25:15,910 --> 00:25:32,210 That's not inherently insecure, but if you're like this captain and you use an insecure email protocol, then we get a pretty good template for a targeted social engineering operation that might persuade you to copy malicious charts or malware onto your own vessel's critical operational technology. 239 00:25:33,090 --> 00:25:45,090 Beyond this kind of operational technology, I think it's important to remember that there are real people aboard these ships who have real privacy concerns, like billionaires sailing around on their super yachts. 240 00:25:45,090 --> 00:25:53,690 Now I know getting up at DefCon and saying think of the billionaires is not a great starting point, but this was a really fun case study that I want to kind of delve into a little bit. 241 00:25:53,790 --> 00:26:03,890 So we were listening to this traffic from this Greek billionaire's mega yacht, and there were all kinds of interesting anecdotes that came up in the traffic that really painted a picture of what was going on. 242 00:26:03,950 --> 00:26:16,630 For example, one day the captain of this yacht forgot to log in to his Microsoft account, and so the credentials for that captain's account came across the satellite feed in clear text in the format of an account reset link. 243 00:26:16,930 --> 00:26:26,850 Now at this point, we could hijack the account of someone who has reason to communicate with a very high net worth individual and potentially engage in some super targeted social engineering attacks. 244 00:26:26,870 --> 00:26:34,310 Because the captain's email address included the name of the yacht, we could also very easily identify which billionaire was affected by this traffic. 245 00:26:35,630 --> 00:26:40,990 Additionally, once we had kind of de-anonymized the owner of this yacht, there were other things we could piece together. 246 00:26:40,990 --> 00:26:53,850 For example, the yacht used software to manage, like, lunch orders and stuff for the crew members and for guests, and so we could see who this billionaire was inviting on their yacht or where they were going or even what they were eating for lunch on a particular day, 247 00:26:53,850 --> 00:27:02,970 which is, like, not inherently sensitive, but if you're hiding who you're meeting or you don't want an entire continent to know about your social life, it could be a little bit concerning for these individuals. 248 00:27:03,410 --> 00:27:10,170 Beyond the billionaires, though, there are also regular people on vessels across the sea who have privacy concerns. 249 00:27:10,490 --> 00:27:17,950 Another privacy thing that we encountered was what looked like point-of-sale terminal traffic coming off of cruise ships from a major European cruise operator. 250 00:27:18,250 --> 00:27:23,050 And I don't know if there were credit card numbers in here, so I've censored the data very heavily. 251 00:27:23,130 --> 00:27:26,510 A lot of the numbers did pass the loan check, but it could have been coincidental. 252 00:27:26,810 --> 00:27:36,690 At the very least, anything that tells you how much someone paid for a soda, what their name was, is pretty deeply concerning that it's being broadcast across an entire continent in clear text. 253 00:27:37,230 --> 00:27:45,890 Another example of sensitive information from, like, real people on cruise ships or on vessels would be when ports have cargo vessels come in. 254 00:27:45,890 --> 00:27:49,510 They often require the crew to share some visa information. 255 00:27:49,610 --> 00:27:54,930 And this particular port authority thought that a great way to do that would be an insecure HTTP web service. 256 00:27:55,070 --> 00:28:03,570 And so as a result, we could see from the cargo vessels pulling into this port, all of the names and passport numbers and date of birth of the crew members aboard these ships. 257 00:28:03,810 --> 00:28:07,610 Obviously, this is deeply sensitive information that should have been encrypted. 258 00:28:08,290 --> 00:28:10,350 All right, let's head out to the skies. 259 00:28:10,590 --> 00:28:14,950 So the aviation use case is really interesting to me because it's the newest one. 260 00:28:14,950 --> 00:28:17,430 We were going to do this as our 2020 experiment. 261 00:28:17,430 --> 00:28:24,650 We're going to get all kinds of great data from airplanes this year and really get a feeling for how aviation intersects with satellite communication security. 262 00:28:25,130 --> 00:28:26,330 And we started out great. 263 00:28:26,330 --> 00:28:30,030 We had some great traffic from these in-flight entertainment systems in February. 264 00:28:30,030 --> 00:28:31,950 We're super excited for the year. 265 00:28:32,010 --> 00:28:34,730 And then everyone stopped flying. 266 00:28:34,730 --> 00:28:38,670 The number of people in airplanes sank dramatically because of the pandemic. 267 00:28:38,670 --> 00:28:41,370 And so the amount of traffic we were getting also tanked. 268 00:28:41,370 --> 00:28:46,950 I was originally pretty salty about this, but then I realized that there's actually a silver lining here. 269 00:28:47,390 --> 00:28:52,130 You see, back in February, the traffic we were seeing was a lot, but it was mostly garbage. 270 00:28:52,130 --> 00:28:57,350 It was people checking their Facebook on a flight, which isn't that interesting from a security researcher perspective. 271 00:28:57,670 --> 00:29:06,450 But in April, when the airplanes were flying empty, almost all of the traffic in these networks was somehow essential to either the operation of the airline or the operation of the airplane. 272 00:29:06,450 --> 00:29:08,650 There were no passengers to generate noise. 273 00:29:08,870 --> 00:29:19,470 And even as passenger counts increased, the passengers we saw tended to be like high-value business executives as opposed to just random tourists, which made the traffic a little bit more interesting from a privacy perspective. 274 00:29:19,990 --> 00:29:27,670 Now, because we had this unique opportunity, there was something I wanted to test, which was a claim that was made by a researcher whose work I really admire. 275 00:29:27,690 --> 00:29:30,490 So Ruben Santamarta does research in satellite modems. 276 00:29:30,490 --> 00:29:35,490 He's definitely presented at Black Hat and DEFCON and stuff, doing a lot of hardware reverse engineering. 277 00:29:35,630 --> 00:29:41,230 And he has this blog post where he looks at in-flight entertainment systems, including some of the systems that we were seeing traffic from. 278 00:29:41,430 --> 00:29:52,010 And he posited that he suspects the satellite terminal could be a bridge between the part of the airplane that keeps people entertained and happy and the part of the airplane that keeps it in the sky and going in the right direction. 279 00:29:52,010 --> 00:30:01,710 And we wanted to see if there was anything in these traffic captures that crossed that red line and kind of crossed those two separate information security domains, which shouldn't be happening. 280 00:30:02,290 --> 00:30:05,690 We would have missed this if we had all of that Facebook traffic. 281 00:30:05,690 --> 00:30:10,870 We actually had traffic from this device for several months, and we didn't realize it until coronavirus hit. 282 00:30:10,870 --> 00:30:13,910 But we found what I'm going to call the loneliest EFB. 283 00:30:13,910 --> 00:30:15,910 So an EFB is an electronic flight bag. 284 00:30:15,910 --> 00:30:25,750 It's essentially an information terminal like an ECTIS terminal, but for airplanes it includes navigational information and weather updates and all kinds of stuff that the pilot needs to manage the flight. 285 00:30:26,070 --> 00:30:32,870 And this specific Chinese airline had made a mistake in configuring their EFB such that it wasn't logging in correctly. 286 00:30:32,870 --> 00:30:35,190 Someone had like fat fingered a password or something. 287 00:30:35,190 --> 00:30:41,290 And so all of the requests it was sending were getting bounced off of this redirect page from the satellite modem and reaching us. 288 00:30:41,290 --> 00:30:54,450 And we could use that to not only fingerprint like how this API works and what sort of data is being sent from the airplane and where the airplane was at any time, but we could also identify other vessels that were using this same device. 289 00:30:54,450 --> 00:31:06,290 And even though it seems to be encrypted over the air in most cases, we're able to confirm that the network that's carrying this operational technology traffic is the same one as the person a few rows back who's browsing Instagram. 290 00:31:07,850 --> 00:31:11,890 Another case that we were interested in for airplanes is something called a femtocell. 291 00:31:11,890 --> 00:31:14,510 There have been a couple of talks at DEFCON about it, I think. 292 00:31:14,510 --> 00:31:21,570 And it's essentially a miniature cell tower that they put in airplanes that allows customers to use their cell phones as if they were on the ground. 293 00:31:22,090 --> 00:31:25,390 And we saw that the front end of these is fairly secure. 294 00:31:25,390 --> 00:31:29,970 It uses GSM or LTE or whatever, which has some security guarantees over the air. 295 00:31:29,970 --> 00:31:36,930 But the back end was being routed unencrypted in these kind of SCTP wrappers over the satellite signal. 296 00:31:36,930 --> 00:31:41,370 And so we're able to see like the contents of people's cellular communications. 297 00:31:41,370 --> 00:31:46,570 What's particularly scary about this is that we don't know if these customers were aware of what they were doing. 298 00:31:46,670 --> 00:31:54,210 If you forgot to put your phone into airplane mode, it's very possible a text message that you received during your flight will show up in our packet captures. 299 00:31:54,210 --> 00:31:56,790 You're not even aware you're connected to a satellite network. 300 00:31:57,190 --> 00:32:00,230 And to kind of bring home the severity, here's a good example. 301 00:32:00,570 --> 00:32:05,810 There's this person who was on a flight and in the middle of their flight, they got their negative coronavirus test result. 302 00:32:05,930 --> 00:32:09,690 Now that's a huge relief for anyone who's sitting next to him on the airplane, right? 303 00:32:09,690 --> 00:32:16,970 But for the rest of us who care about health data privacy, it's a huge information breach that this is being sent in clear text across a continent. 304 00:32:16,970 --> 00:32:19,050 We saw all kinds of wild text messages. 305 00:32:19,050 --> 00:32:28,350 I remember listening to some guy who spoke Croatian in his text messages talking about a wild dream he had where his friend's mom showed up in a burning house or something. 306 00:32:28,350 --> 00:32:32,670 Just real people's personal communications are being sent in clear text. 307 00:32:32,690 --> 00:32:34,410 And it's not just personal communications. 308 00:32:34,410 --> 00:32:42,390 If you've ever used SMS as a second factor for account login, it's very clear how this could be deployed in an account hijacking attack. 309 00:32:44,050 --> 00:32:46,570 So fundamentally, everything we've done is passive. 310 00:32:46,570 --> 00:32:49,870 We haven't gotten any equipment to send signals in these networks. 311 00:32:49,870 --> 00:32:51,470 We don't have a license to do that. 312 00:32:51,470 --> 00:32:57,430 But is it possible that there are other sort of semi-active or fully active attacks we could deploy against these networks? 313 00:32:57,630 --> 00:33:09,130 One scenario I saw, which is based off of some malware that actually has been used in practice by a Russian group, would be to use satellites for untraceable data exfiltration. 314 00:33:09,430 --> 00:33:11,970 And there are only two requirements for this to play out. 315 00:33:11,970 --> 00:33:15,350 First, you have to compromise a device that you want to steal data from. 316 00:33:15,350 --> 00:33:19,630 And it needs to be connected to a network that has a route to a satellite IP address. 317 00:33:19,770 --> 00:33:27,990 Generally, the internet is sufficient because there are a lot of satellite devices that have internet routable IP addresses, but it could also be a device inside someone's LAN environment. 318 00:33:28,870 --> 00:33:33,890 Additionally, as an attacker, you need to be able to be inside that satellite signals forward link footprint. 319 00:33:33,890 --> 00:33:35,850 You need to be able to eavesdrop on the traffic. 320 00:33:35,890 --> 00:33:36,910 And that's it. 321 00:33:36,910 --> 00:33:38,510 Let's see how this plays out. 322 00:33:38,570 --> 00:33:41,250 So an attacker who's compromised the device has a problem. 323 00:33:41,250 --> 00:33:45,630 They want to send the sensitive data they've stolen to their server somewhere on the internet. 324 00:33:45,630 --> 00:34:02,730 The problem is that if they decide to just route this along the internet, just send a post request with whatever file they have to a web server they run, then law enforcement can very easily trace that post request and identify where the attacker's command and control server or data exfiltration database is. 325 00:34:03,330 --> 00:34:09,350 But if the attacker uses a satellite hop as an intermediary, they can really cause some trouble for law enforcement. 326 00:34:09,550 --> 00:34:17,010 Because you see, the compromised computer with the malware can send a signal to a satellite customer that will be routed over the satellite feed. 327 00:34:17,010 --> 00:34:19,290 And this customer doesn't need to be involved at all. 328 00:34:19,290 --> 00:34:22,730 It can just be a random ship in the ocean that happens to have an IP address. 329 00:34:22,730 --> 00:34:24,610 It doesn't even need a service running at that port. 330 00:34:24,610 --> 00:34:27,110 It could be a closed port or broken connection . 331 00:34:27,350 --> 00:34:31,810 And what will happen is the satellite will beam that signal down across its footprint area. 332 00:34:32,330 --> 00:34:42,650 And if the pilot, if a law enforcement officer tries to investigate this, they'll see it reach this like broken surface on a maritime ship and have no idea where it's gone. 333 00:34:42,750 --> 00:34:51,730 Meanwhile, behind the scenes, the attacker can be using a satellite dish to eavesdrop on that connection and leak information in clear text. 334 00:34:51,730 --> 00:35:12,630 Even if the satellite network had some degree of encryption, which there are some network out networks out there that do, the attacker might still be able to use even just the size of packets or the content of packets or the existence of packets as a signal that's virtually untraceable because they're somewhere in this massive continent-sized footprint and that's all law enforcement could possibly know. 335 00:35:13,830 --> 00:35:20,450 Another attack that we tried to pull off is something called TCP session hijacking, which is a very classic kind of networking attack. 336 00:35:20,470 --> 00:35:28,310 Essentially, TCP has this three-way handshake to set up connections where you have to know these randomly selected sequence numbers to prove you are who you say you are. 337 00:35:28,310 --> 00:35:39,510 And what we found is that in certain satellite environments, you could actually impersonate one of these endpoints very reliably due to the physical characteristics of orbit and hijack arbitrary TCP session numbers. 338 00:35:39,570 --> 00:35:47,230 We did this against our own connection to one device in one specific satellite network, but we didn't test it at a very broad scale because we didn't want to mess with anything important. 339 00:35:47,570 --> 00:35:51,210 Let me give you a show of how this kind of works from a physical perspective. 340 00:35:51,330 --> 00:35:52,450 Let's take a look. 341 00:35:53,050 --> 00:36:01,310 So just like before, we have someone in Ireland, only this time they're a maritime office that wants to visit a website that's hosted on the cargo vessel with status information. 342 00:36:01,790 --> 00:36:07,430 So what they'll do is they'll send a TCP SYN number as a start of a TCP three-way handshake. 343 00:36:07,430 --> 00:36:13,770 And this has a sequence number that you have to know to prove that you received the start of the handshake and that you're part of this conversation. 344 00:36:13,790 --> 00:36:16,950 This is like a very fundamental protection against spoofing attacks. 345 00:36:17,610 --> 00:36:22,090 However, our attacker can easily get the sequence number over the unencrypted satellite link. 346 00:36:22,330 --> 00:36:26,070 And at the next step, our attacker, remember how I said they were in Ghana? 347 00:36:26,290 --> 00:36:34,330 So Accra happens to have some of the fastest terrestrial internet in Africa and a direct backbone link to the UK, although that doesn't necessarily matter. 348 00:36:34,350 --> 00:36:44,510 But because the speed of light is only so fast, the attacker 100% of the time can beat the legitimate acknowledgement message from that handshake to our maritime office in Ireland. 349 00:36:44,510 --> 00:36:52,470 And at this point, the maritime office will start a conversation thinking they're talking to the vessel when they're actually sending information to our attacker. 350 00:36:52,690 --> 00:37:02,350 Our attacker can continue to eavesdrop over the satellite link and that message with their spoofed acknowledgement will reach the ship at sea, who will simply ignore it because it has incorrect sequence numbers. 351 00:37:02,370 --> 00:37:12,910 But our attacker at this point has free reign to send whatever information they want to the maritime office and impersonate the ship in a way that's virtually undetectable if you're not employing some sort of certificate signing scheme. 352 00:37:14,330 --> 00:37:23,970 So this is like a very simple example that shows that even though we can't transmit directly in the satellite network, we're fundamentally part of a broader network, which is the internet. 353 00:37:23,970 --> 00:37:27,070 And in that environment, active attacks are definitely possible. 354 00:37:27,430 --> 00:37:30,270 So obviously, this research has some ethical implications. 355 00:37:30,350 --> 00:37:32,470 It's real world networks and real people. 356 00:37:32,470 --> 00:37:35,710 So we're very careful to adhere to the laws and go above and beyond that. 357 00:37:35,710 --> 00:37:39,530 You might be a little disappointed today that I haven't named and shamed any companies. 358 00:37:39,530 --> 00:37:43,910 That's a conscious choice, because I don't want this to be about X airline is leaking your data. 359 00:37:43,910 --> 00:37:50,930 I want the focus to be on the fact that this is a systemic issue that affects a lot, thousands, tens of thousands of satellite customers around the world. 360 00:37:51,690 --> 00:37:53,950 We've, of course, engaged in responsible disclosure. 361 00:37:53,950 --> 00:38:01,690 Many of the satellite companies have known about this as early as 2019, as well as some of their customers who have leaked particularly interesting data or particularly large. 362 00:38:02,390 --> 00:38:03,970 Most people were receptive to this. 363 00:38:03,970 --> 00:38:06,910 We talked to a lot of CISOs who have started changing around their networks. 364 00:38:06,910 --> 00:38:09,430 We don't know exactly what they're doing, but at least they're aware of the risks. 365 00:38:09,430 --> 00:38:15,910 And we only had one company threatened to sue us, which is really good for this kind of systemic cybersecurity research. 366 00:38:16,050 --> 00:38:24,730 We got a huge boost to responsible disclosure, courtesy of the Federal Bureau of Investigation, who releases threat intelligence notification to the maritime industry. 367 00:38:25,170 --> 00:38:34,930 And what's really interesting about this notification is that it showed up online from the FBI almost a month before our academic paper was publicly available. 368 00:38:34,930 --> 00:38:44,150 So the only people that accessed this PDF file were people who were responsibly disclosed to you with the request that they keep it private and our academic peer reviewers. 369 00:38:44,150 --> 00:38:49,970 Yet somehow the FBI was able to cite specific information from a chart inside that paper. 370 00:38:50,070 --> 00:38:52,710 Now, as a researcher, this is, you know, a little bit unsettling. 371 00:38:52,710 --> 00:38:55,390 How did the FBI get my paper before I gave it to anyone? 372 00:38:55,450 --> 00:39:07,170 But if you're ever wondering that you should join one of these like threat intelligence schemes, it's like clear that the FBI does a good job at getting a scoop ahead of like the industry or even the researchers themselves thinking it's out there. 373 00:39:07,810 --> 00:39:10,250 So how do we protect against these attacks going forward? 374 00:39:10,250 --> 00:39:12,030 How do we defend these networks? 375 00:39:12,170 --> 00:39:15,310 Well, I think we need to understand why these kinds of attacks can happen. 376 00:39:15,310 --> 00:39:19,830 And it's easy to say it's because satellite operators are ignorant, but the reality is more complicated. 377 00:39:19,890 --> 00:39:22,230 Remember when I said the speed of light is only so fast? 378 00:39:22,230 --> 00:39:31,570 That means that sending a signal to space is slow, which makes all of those TCP connections you get when you visit a website add up to make your internet seem really slow. 379 00:39:31,650 --> 00:39:41,610 So what ISPs have done is they started splitting these handshakes as a man-in-the-middle attacker, basically, who benevolently accelerates your connection via what we call a performance-enhancing proxy. 380 00:39:41,610 --> 00:39:51,490 The problem is that if a customer uses like end-to-end encryption over a VPN, these performance-enhancing proxies can't find those TCP handshakes, and so they can't accelerate the connection. 381 00:39:52,010 --> 00:40:01,510 So in the short term, you might have to accept that as reality and just say, you know what, passport numbers are sensitive enough that we should send them encrypted or not send them at all. 382 00:40:01,650 --> 00:40:08,890 And in many cases, if you're using a TCP layer encryption protocol or a UDP encryption protocol, it doesn't affect performance at all. 383 00:40:08,890 --> 00:40:13,970 You should never be using POP for your emails, although we found thousands and thousands of people still do. 384 00:40:13,970 --> 00:40:16,090 You should be using an encrypted email client. 385 00:40:16,830 --> 00:40:26,750 And since ISPs are already screwing around with TCP sequence numbers and TCP sessions, if they just change those sequence numbers over the air from what they are on the ground, they can prevent TCP hijacking attacks. 386 00:40:26,750 --> 00:40:30,590 A lot of ISPs seem to do this already, although I think it's largely accidental. 387 00:40:31,010 --> 00:40:40,550 In the longer term, though, we're trying to work on a solution that makes it easier for individual customers to be sure their data is always encrypted, regardless of what protocol mistakes they might make. 388 00:40:40,550 --> 00:40:47,530 We're building a tool called QPEP, which uses the QUIC protocol, which is a TCP replacement that is encrypted by default. 389 00:40:47,530 --> 00:40:52,410 And it's kind of a combination between like a tunneling VPN and a performance enhancing proxy. 390 00:40:52,970 --> 00:40:58,030 If you want to take a look at QPEP, there is a public GitHub repository for it. 391 00:40:58,030 --> 00:40:59,370 This isn't a commercial product. 392 00:40:59,370 --> 00:41:03,830 The goal is to build a tool for people to start playing around with securing these networks. 393 00:41:03,990 --> 00:41:10,370 It's designed to be much more accessible than existing PEPs, which tend to be written in these obtuse C libraries for networking. 394 00:41:10,450 --> 00:41:15,110 It's written in Python as a test bed so you can simulate it without a satellite equipment at all. 395 00:41:15,110 --> 00:41:18,350 And most of the networking layer is written in Go for performance reasons. 396 00:41:18,850 --> 00:41:28,430 And the end goal is to help individuals protect their traffic instead of trying to berate ISPs into encrypting data, which we know doesn't work because we've been doing it since 2005. 397 00:41:29,910 --> 00:41:43,270 So this kind of shows the difference between those two options versus using an encrypted proxy like the one that we're building and using a very good open source VPN, but one that doesn't take into account the unique aspects of satellite communications. 398 00:41:43,390 --> 00:41:51,070 And you can see the difference in the amount of time it takes to load just a very typical web page as an indicator of why customers aren't encrypting their data. 399 00:41:51,070 --> 00:41:53,450 It's not that they don't know privacy is at risk. 400 00:41:53,450 --> 00:42:00,970 Many of the people responsibly disclosed to were like this isn't a security vulnerability because everyone knows about it, which has its own problems. 401 00:42:00,970 --> 00:42:13,670 But I think fundamentally when you give someone a choice between performance and privacy, it's very likely that they will choose performance, especially in an environment like satellite where you already have kind of sluggish connections. 402 00:42:13,830 --> 00:42:29,470 And so finding technological solutions that enable people to have as good of a performance as they've come to expect while adding in privacy basically invisible in the background is I think the best way that we can bolster privacy and security in these networks for real satellite customers. 403 00:42:30,370 --> 00:42:39,630 So to sum things up, today I've kind of presented the case that satellite broadband as it's used in the status quo is vulnerable to long-range eavesdropping attacks. 404 00:42:39,670 --> 00:42:48,070 Someone in a different country or on a different continent from you can be listening to your internet communications and yet many people act like this isn't the case. 405 00:42:48,070 --> 00:42:58,950 Whether it's a massive Fortune 500 company or a random person in a coffee shop somewhere, people are leaking deeply sensitive traffic over satellite feeds as if they don't know that an eavesdropper could be listening. 406 00:42:59,010 --> 00:43:00,750 We think this can be changed. 407 00:43:00,750 --> 00:43:13,470 We think the underlying reason that this is still a problem is that performant encryption is something that ISPs have to build into their satellite networks instead of something that individuals can just run for themselves when they connect to a satellite terminal. 408 00:43:13,550 --> 00:43:19,990 And we think that we can balance out that trade-off and bring security to customers regardless of how they interface with a satellite connection. 409 00:43:20,510 --> 00:43:28,730 So if I wanted to give a broader lesson, kind of a major takeaway from this talk that has almost nothing to do with satellites, it would be very simple. 410 00:43:28,730 --> 00:43:31,590 And that is that the next hop is unknown. 411 00:43:31,590 --> 00:43:38,470 When you connect to the internet, there's a whole web of different nodes and connections that's constantly changing that's routing your traffic. 412 00:43:38,530 --> 00:43:45,650 And any one of those nodes could be a satellite link or a wireless tower or a wiretapped ethernet cable. 413 00:43:46,690 --> 00:43:51,850 And so if we want to be sure that no one is listening to our traffic wherever it might go next, right? 414 00:43:51,850 --> 00:43:55,870 Because we could connect to a Wi-Fi hotspot and it could have the best encryption in the world. 415 00:43:55,870 --> 00:43:59,170 But if the next hop is a satellite link, that does us no good. 416 00:43:59,330 --> 00:44:14,190 So having the ability to encrypt your own traffic, having the right to encrypt your own traffic, and having the knowledge to make that encryption as secure and robust as possible is, I think, critical to preventing this whole class of attack regardless of the domain we consider it in. 417 00:44:14,250 --> 00:44:17,050 Thank you so much for listening to my presentation. 418 00:44:17,050 --> 00:44:22,370 I'm happy to answer any email questions via email or in a breakout session after this. 419 00:44:22,370 --> 00:44:23,990 And I hope you enjoyed the talk.