The Internet Was Weeks Away From Disaster And No One Knew

The Internet Was Weeks Away From Disaster And No One Knew

Veritasium

0:00 (suspenseful music)- [Derek] In 2021, a hacker uncovered a fatal weakness

0:04 in the world's most important operating system.

0:07 What would you do with a key that gets you into any server on the internet?

0:12 Is this live to the public right now?

0:14 Yeah, it's live on the server.

0:15 Look, I'm not pleased.

0:16 I would like you to change it back.

0:19 [Narrator] At the time,

0:20 just about everyone believed that hacking this system was impossible,

0:23 but they were wrong.

0:24 Well, I can tell you how many systems would have been compromised,

0:27 which would have been millions.

0:28 Actually, I'm still surprised the mainstream news

0:31 outlets haven't really covered this very much.

0:33 How close did we come?

0:35 We were weeks away from millions of internet

0:38 servers being accessible to whoever crafted the backdoor.

0:41 Anything from spying, to ransom, to taking down entire countries,

0:47 you could have done it with this backdoor.

0:50 This hacker had realized the entire operating system rested on a single part,

0:54 maintained by a single person, and that by compromising that one part,

0:58 they could infect almost any server on the internet.

1:02 So, how could we ever let ourselves get this vulnerable?

1:07 Well, the story begins with a jammed printer.

1:11 (suspenseful music) (upbeat music)- [Narrator] The AI lab was buzzing.

1:21 They had just installed the Xerox 9700.

1:24 It was one of the first ever commercial laser printers.

1:27 It was a pretty big deal.

1:29 The only problem was it kept jamming.

1:34 [Stallman] You'd wait an hour figuring, I know it's gonna be jammed,

1:36 I'll wait an hour and go collect my printout,

1:39 and then you'd see that it'd been jammed the whole time.

1:42 Frustration up the wazoo.

1:46 Richard Stallman, a researcher at the lab, thought that he had a solution.

1:50 Years earlier, he had solved a similar problem by coding

1:52 a simple program that sent an alert whenever there was a jam.

1:55 Now, it didn't fix the problem mechanically,

1:57 but it did make sure that a jam wouldn't go unnoticed.

2:00 He thought he could do a similar thing now.

2:02 The only problem was that Xerox hadn't

2:04 provided them the source code for the printer,

2:06 and without it, Stallman couldn't write his code.

2:08 So he tracked down the original developer.

2:11 [Stallman] And I said, "Hi, I'm from MIT.

2:12 Could I have a copy of the printer source code?" And he said,

2:17 "No, I promised not to give you a copy." I was stunned.

2:21 I was angry.

2:23 All I could think of was to turn around on my heel and walk out of his room.

2:30 Maybe I slammed the door.

2:33 And I thought about it later on because I realized that I was seeing not just

2:38 an isolated jerk but a social phenomenon

2:41 that was important and affected a lot of people.

2:46 [Henry] This social phenomenon had slowly

2:48 invaded the world of computer research.

2:50 In the late 60s, engineers at AT&T's

2:52 Bell Labs invented an operating system called Unix,

2:56 which they shared widely across universities and research labs.

2:59 This was a time of freedom.

3:01 But by the 80s, AT&T started going

3:04 after Unix clone developers for copyright infringement.

3:07 Later, they even sued the University of California at Berkeley.

3:10 The tech landscape had shifted.

3:12 They wanted to close off software development.

3:15 Companies were now making their employees sign non-disclosure agreements,

3:18 prohibiting them from ever sharing their code with other programmers.

3:23 [Stallman] See, this was my first encounter with a non-disclosure agreement,

3:26 and I was the victim.

3:28 And the lesson it taught me was that non-disclosure agreements have victims.

3:32 They're not innocent, they're not harmless.

3:36 [Henry] Stallman wondered, maybe he could adapt to this new world.

3:40 [Stallman] But I realized that that way I

3:41 could have fun coding and I could make money.

3:44 But at the end, I'd have to look back at my career and say,

3:48 "I have spent my life building walls to divide

3:51 people." and I would've been ashamed of my life.

3:56 So Stallman chose a different path.

3:58 He quit his job at MIT and in 1985 established the Free Software Foundation,

4:03 and it worked to promote four basic freedoms.

4:06 You should be free to run software for any purpose,

4:08 free to study it, free to change it, and free to share it.

4:12 Now, to ensure those freedoms, he created a legal license that developers could

4:15 attach to their code called the General Public License.

4:19 And to stick it to AT&T,

4:20 he started to work on a project based on Unix but built from the ground up,

4:24 so AT&T couldn't sue.

4:27 He called the project GNU, a recursive acronym for GNU is Not Unix.

4:33 Now, to replicate a Unix system,

4:34 the GNU Project had to recreate three layers of functionality.

4:38 They needed the utilities,

4:39 which were the everyday tools and commands, the shell,

4:42 which is the terminal that people use to interact with the machine,

4:45 and finally, the kernel,

4:46 which is the core that talks to the hardware and manages memory.

4:50 Now, over the next seven years, the GNU Project made much of that from scratch.

4:54 They created the GCC code compiler, the Bash shell,

4:57 and a host of other core utilities.

4:59 But they were always missing one key component.

5:02 The kernel.

5:05 That changed in the fall of 1991 when Stallman visited

5:08 the University of Helsinki to give a talk promoting the project.

5:12 In the audience was a young computer science student who

5:15 just happened to be building his own kernel from scratch.

5:19 His version wasn't free, but after hearing Stallman speak,

5:23 the student changed his mind and adopted the General Public License.

5:27 At first, he wanted to call it Free Unix, or Freax,

5:31 but his friend thought that sounded terrible,

5:34 so he renamed it after the student himself, Linus Torvalds.

5:37 Linus, Unix.

5:39 Well, that's how he got Linux.

5:43 That kernel, combined with the other components from the GNU Project,

5:46 became a full operating system.

5:48 Now, technically, Linux only refers to that kernel,

5:51 but a lot of people use it to refer to the whole operating system,

5:54 so GNU and Linux and whatever else.

5:57 Because the code was open and free and the projects built on it were too,

6:01 a new model of software development took hold.

6:03 Anyone could inspect the code, improve it, fix flaws,

6:07 and generally just push development forward for everyone.

6:09 So, software split into two competing ideologies.

6:13 Proprietary closed source systems controlled by companies,

6:16 and open source projects where the code was free.

6:19 It's free in two ways.

6:21 It's free as in you don't have to pay for it,

6:23 but it's all free to change it in any way you want,

6:26 and that seems to be the much more important aspect.

6:29 People are happy to pay for technology,

6:31 but so often do they run into some roadblocks where

6:34 you have to file a support ticket with some large company,

6:38 they may or may not get the help they need,

6:40 and engineers are just itching to just fix it themselves.

6:45 Developers could take that basic code which was freely available

6:48 and then add on their own features relevant to their specific device.

6:52 They didn't have to reinvent the wheel every time.

6:55 So that's why Linux spread into all sorts of different applications.

6:59 Hello, I'm a Mac.

7:00 And I'm a PC.

7:01 No one else.

7:02 No one.

7:02 (woman clears throat)- Hi, I'm Linux.

7:05 There are an estimated 30 million Linux users out there.

7:09 How long you been standing there?

7:10 A long time.

7:12 And it's not even just limited to computers.

7:15 Your electronic vacuum is definitely Linux.

7:18 Your camera is definitely Linux.

7:20 Most TVs, most electronics are Linux.

7:24 Linux even runs some of the most sensitive machines on the planet.

7:28 You can assume that Linux is pretty much used in anything of high-security need,

7:32 not necessarily because Microsoft, for instance,

7:36 couldn't build something equally secure,

7:38 but because usually there's secrecy involved in building,

7:42 let's say, a new weapon system,

7:44 and you don't necessarily want to have to work with some tech company.

7:47 You don't want to involve more people than absolutely necessary.

7:52 [Henry] Of the top 500 supercomputers in the world, every single one runs Linux.

7:56 It's used in the Pentagon and on US nuclear submarines.

8:01 Every bank you can think of really, manufacturers, hospitals, governments,

8:07 defense organizations and things like that, they're all running Linux servers.

8:11 Today, Linux is everywhere, and most people are familiar with Windows and macOS,

8:15 but they are not the most popular operating systems in the world.

8:18 No, they are dwarfed by systems running a Linux kernel.

8:22 Android, with over 3 billion devices, is built on Linux.

8:26 And it also powers the majority of internet servers in the world.

8:30 There is no one company that could have imagined all

8:32 the different cases where computers are used these days, and Linux,

8:37 thanks to its adaptability where everyone can just tweak it

8:40 in little ways to make it fit their use case, now covers all the use cases.

8:47 But all of this, it all relies on one key assumption.

8:52 That the code is secure.

8:53 Now, there's a good reason to feel this way.

8:56 Because there are so many people looking at the code,

8:58 there's this idea that bugs, either intentional or unintentional,

9:02 won't be too deep to catch.

9:04 It's known simply as Linus's Law.

9:06 That with enough eyeballs, all bugs are shallow.

9:09 But there's a big problem with this assumption.

9:12 The open source movement isn't one big project.

9:15 It's an ecosystem.

9:16 You need thousands of small tools and libraries each doing a different job,

9:20 like networking, security, or compression.

9:23 Now, a lot of these projects start because

9:25 one person wants to fix a specific problem, so they build it themselves.

9:29 They're often unpaid, coding on nights and weekends just to make the tool work.

9:33 If it's useful, one open source project adopts it, then another,

9:37 and suddenly you have millions of machines

9:39 all relying on one person's passion project.

9:42 That's how the entire ecosystem can end up quietly

9:45 resting on a project maintained by a single volunteer.

9:48 There's a famous XKCD comic that captures this idea perfectly.

9:53 But what happens when that block is compromised?

9:58 In our story, our person isn't from Nebraska.

10:01 No, Lasse Collin is from Finland,

10:03 and he's been working on a small data compression tool called XZ since 2005.

10:08 XZ is so good at compression that it's

10:11 now used in almost every major Linux distribution.

10:14 For the past 20 years, almost all of the work of keeping

10:17 the tool compatible with ever-evolving hardware, it's all fallen on Lasse.

10:22 He's never been paid for it, but up till now, he's been okay with that.

10:26 Recently, though, he's been under more and more pressure.

10:30 "Over one month and no closer to being merged.

10:33 Not a surprise." "Progress will not happen until there is a new maintainer.

10:37 Submitting patches here has no purpose these days.

10:40 The current maintainer lost interest or doesn't

10:43 care to maintain anymore." Lasse responds, "I haven't lost interest,

10:47 but my ability to care has been fairly limited,

10:50 mostly due to long-term mental health issues, but also due to some other things.

10:54 It's also good to keep in mind that this is

10:57 an unpaid hobby project." But it's not enough.

11:00 "I'm sorry about your mental health issues,

11:02 but it's important to be aware of your own limits.

11:05 The community desires more.

11:07 You ignore the many patches bit rotting away on this mailing list.

11:10 Right now, you choke your repo." Lasse is burning out.

11:15 But just when he thinks he can't handle it anymore...

11:19 "Nice job to both of you for getting this feature as far as it is already.

11:22 Just trying to do my part as a helper elf." Signed, Jia Tan.

11:27 For months, Jia has been taking some of the load off Lasse.

11:30 He's been incredibly helpful.

11:32 Now he offers to step up and take over as maintainer of the project.

11:36 To Lasse, it sounds almost too good to be true.

11:39 "As I've hinted in earlier emails,

11:41 Jia Tan may have a bigger role in the project in the future." Finally,

11:45 Lasse can step back and breathe after 20 years of hard work.

11:49 But Jia is not who he appears to be.

11:53 And he's identified Lasse Collin's XZ project

11:56 as a weak link in the Linux ecosystem,

11:58 one that could give him access to almost every computer on the internet.

12:02 (suspenseful music) Today we take secure remote logins for granted.

12:11 I mean, they've worked reliably for over 30 years.

12:14 But it all started in 1995

12:16 at the Helsinki University of Technology when a hacker

12:19 captured thousands of usernames and passwords sent

12:22 over the campus network in a sniffing attack.

12:25 In hindsight, the problem's obvious.

12:27 These login requests were being sent totally in plain text,

12:30 so anyone who intercepted the data could just read it.

12:34 (suspenseful music) When Tatu Ylonen,

12:37 a computer researcher at the university, learned of the attack,

12:40 he made it his mission to ensure that it would never happen again.

12:44 [Tatu] Password sniffing was perhaps the most

12:47 serious security issue on the internet back then.

12:52 To do this, his solution needed to ensure two things.

12:55 First, machines had to establish a secure connection.

12:58 If both computers could agree on a shared secret

13:00 code that they would use to scramble their data,

13:02 then even if they were overheard,

13:04 anyone without that secret code would just get gibberish.

13:07 Now, you could agree on that shared secret ahead of time in person.

13:11 Password.

13:12 But on the internet, that's rarely practical.

13:14 No, you have to agree on that shared secret ahead of time

13:17 without ever having met and also with someone listening in the entire time.

13:21 It sounds really tricky, but there is a way to do it,

13:24 and I can show you how using this jar of paint.

13:27 Say I'm trying to send a message to Gregor over there.

13:30 First step is we agree on a shared public color.

13:33 Let's pick this red.

13:35 This is no secret, anyone can see this.

13:38 Now we each pick our own private color.

13:40 I'm gonna pick yellow, and he can pick whatever he wants.

13:44 So we take our private color, and then I'm gonna mix that with the public color.

13:51 It's worth saying now that these mixtures are assumed to be impossible to unmix,

13:54 so even if you know this orange and you know this red,

13:57 you can't exactly deduce the exact shade of yellow we used to create it,

14:00 and this is important for the actual computer example later.

14:03 Okay, so I'm gonna send this over to Gregor.

14:06 So, I mixed in my secret color with the public,

14:07 and I'm gonna pass this to Henry.

14:10 So, Gregor sent me this, which looks like a sort of dark green sort of color.

14:15 And what we're gonna do now is we're

14:17 gonna mix it with my original private color.

14:21 Okay, now that I have Henry's secret color mixed in with the public,

14:24 I'm gonna add some of my own.

14:28 So we end up with this sort of distinct olive color.

14:33 There's my yellow in there, I can see, and whatever Gregor had in his side.

14:37 And the thing is because each set of paints went through the same process,

14:40 they both end up with this same olive green,

14:43 even though we never shared our secret colors.

14:46 So we end up with this shared secret color at the end that no one else can get,

14:50 and that means that we can use it as our secret code when sending information.

14:54 Now, in the real exchange, we use big public numbers instead of colors,

14:57 but the idea is the exact same.

14:59 Each side mixes in their own private number using

15:02 some math that, when you try to reverse it, leads to a discreet log problem,

15:06 which makes it practically impossible to unmix them.

15:08 That way, we solve the first problem.

15:11 But there is another threat that's unaccounted for.

15:14 Say a hacker, like Casper here, tries to sit in between us.

15:18 Now we can create a legitimate connection,

15:21 so we end up with a shared secret code,

15:23 and Casper could do the exact same thing with Gregor.

15:27 Now, whenever I send a message, he can relay that to Gregor,

15:30 he can change and modify it and send his response back.

15:33 And to each of us, the connection looks legitimate,

15:35 but Casper's sitting between us the whole time.

15:38 He's a man in the middle.

15:40 So, I need a way of authenticating that Gregor is really who he says he is.

15:44 Now, we could do this again by agreeing on a password ahead of time in person,

15:48 but we need a practical way to do it over the internet.

15:50 This was the second problem that Tatu had to solve.

15:53 To make that happen,

15:54 Gregor can take two really big prime numbers, which he keeps secret.

15:58 He then multiplies them together to get an even bigger number,

16:01 which he then makes public.

16:03 Now, when I want to send Gregor a message,

16:05 I just take that big public number and I scramble it in a way that only Gregor,

16:09 who knows the two prime factors that make up that big public number,

16:12 can successfully unscramble.

16:14 For anyone else, getting those two prime factors is practically impossible.

16:17 So, as long as I know that that big public number actually belongs to Gregor,

16:21 I know that anything encrypted to that key can only be read by him.

16:24 This is called RSA encryption,

16:26 and it means that if I know the certificate is valid,

16:29 then I accept the connection.

16:30 And by authenticating Gregor, it foils our man in the middle, Casper Devious.

16:36 All right.

16:38 Tatu Ylonen combined these two steps,

16:40 securing the channel and authenticating the user,

16:42 into a protocol for remote logins between machines.

16:46 It gave you the same simple text shell people

16:48 were used to, a plain terminal where you type commands,

16:51 but now the connection was encrypted.

16:53 He called it Secure Shell, or SSH.

16:57 And it was immediately useful.

16:59 Many Linux machines don't even have keyboards or monitors,

17:02 especially not servers,

17:03 so you wanna be able to log in and control them remotely.

17:06 So SSH was soon adopted on almost every machine that ran Linux.

17:11 And as Linux spread, so too did SSH.

17:14 Today, when you control a machine remotely,

17:16 there's a good chance you're using SSH.

17:18 SSH is literally the maintenance backbone of the entire internet.

17:23 And the most widely used open source SSH implementation is called OpenSSH.

17:29 And because it's so popular, it's heavily protected.

17:33 I mean, OpenSSH is probably one of the most closely examined projects out

17:39 there because it's just so vitally

17:42 important to the security of servers everywhere.

17:44 Having a way to bypass the authentication in secure

17:48 shell is like having the master key to the hotel.

17:51 It lets you into every room.

17:54 (suspenseful music)- [Henry] This is why Jia Tan wants a way into OpenSSH,

17:59 but trying to hack it directly would be almost impossible.

18:03 Lucky for Jia, the open source model doesn't just

18:05 mean that operating systems are stitched together from many programs,

18:09 but that each of those programs is itself stitched together from other programs.

18:14 Those are called dependencies.

18:16 OpenSSH is one of the most scrutinized software packages,

18:19 but that doesn't extend to all of its dependencies.

18:24 Jia believes that if he can compromise a dependency of OpenSSH,

18:27 he can sneak an exploit into the main project.

18:30 And it just so happens that Lasse Collin's compression

18:33 tool XZ is linked through a chain of these dependencies.

18:38 (suspenseful music) Now, Lasse's original goal with XZ was to find

18:46 a better way to compress data on Linux.

18:48 That data could be anything.

18:49 Code, an image, text.

18:51 But what was important to Lasse was

18:53 that once you compressed and decompressed it,

18:56 it had to come back exactly the same.

18:58 The method had to be lossless.

19:00 Let me give you an example.

19:01 We're gonna take the lyrics to Rick Astley's hit "Never

19:04 Gonna Give You Up" and we're gonna try to compress it.

19:07 Now, say we take this and we represent it as a stream of characters,

19:11 and each one gets a fixed-width 8-bit code.

19:14 Now, that works, but it's inefficient.

19:17 If we go through this stream and just count up how often each symbol appears,

19:21 you'll notice there's a pattern.

19:22 Some appear more frequently, like N with 430 uses,

19:27 and some, barely at all, like J with one use.

19:30 To save space, why don't we give

19:32 the ones that appear more frequently shorter codes,

19:34 and the rarer ones, well, they can afford to be long.

19:37 But how do we do that?

19:38 So, let's start by counting up how often each symbol

19:41 appears and sorting that from most frequent to least frequent.

19:45 We take the two least frequent symbols and join them together into a pair.

19:48 We then treat that pair as a new combined symbol

19:51 whose frequency is the sum of the two it represents.

19:54 We can then reinsert that back into the list.

19:57 Then we do it again.

19:58 We take the two least frequent items, combine them,

20:01 and then reinsert them back into the list.

20:03 And we do that over and over again until

20:05 we get this massive structure called a Huffman tree.

20:09 Now, to get our codes, we just walk the tree.

20:12 A step right is a 1, a step left is a 0.

20:15 So, for example, to get R, we just go right,

20:18 left, left, right, so the code is 1001.

20:21 So what you'll notice is the more commonly occurring

20:24 symbols naturally appear at the top of the tree, so they get shorter codes,

20:27 while the ones that appear less frequently are at the bottom of the tree.

20:30 The system works well, but it also has a weakness.

20:33 In our "Never Gonna Give You Up" example, it always encodes N-E-V-E-R space.

20:39 It doesn't realize that this whole chunk repeats.

20:42 So, what if instead of looking at symbols, we looked at those chunks?

20:46 Now, they don't have to be words, they can be parts of words or even longer.

20:49 They just have to be patterns that repeat.

20:51 So let's scan through the text but keep

20:53 a rolling dictionary of what we've just seen.

20:55 Then, as we move forward,

20:56 we can check whether the next chunk has already appeared.

20:59 And if it has, we don't need to write that chunk again.

21:02 We just write a code with two numbers,

21:03 how far back to look, and how many characters to copy.

21:07 Now, when we decompress,

21:08 we can just read along and whenever we hit one of these codes,

21:11 we jump back, copy the matching chunk, and paste it into place.

21:15 Two scientists, Lempel and Ziv, published this algorithm in 1977,

21:20 so it became known as LZ77.

21:24 But some of these symbols and pointers show up more often than others.

21:28 They actually have their own frequencies.

21:30 So we can feed that whole stream into another

21:32 Huffman tree to get a second layer of compression.

21:35 And in our demo, it actually gets the file down 85% smaller than the original.

21:40 This might look new, but you've almost certainly used it yourself.

21:43 It's called deflate, but it's better known for the files it creates, .zip.

21:49 If you ever clicked Close on this before, you've definitely used it.

21:52 But Huffman only uses the overall frequency of a chunk repeating.

21:58 Real data isn't just random chunks.

22:01 In our example, after "Never gonna", you might get "give you up",

22:05 "let you down", or "run around and desert you".

22:08 You might get "make you cry",

22:10 you might get "say goodbye" or "tell a lie and hurt you".

22:13 Each one has its own probability, and you can represent these probabilities

22:17 with a mathematical tool called a Markov chain.

22:20 The algorithm can then encode the stream of data so that the more

22:25 probable next chunks cost few bits and the less probable ones cost more.

22:30 If you combine that with a much bigger search

22:32 window so it can point much further back in memory,

22:34 then you get the Lempel Ziv Markov chain algorithm, or LZMA.

22:39 LZMA was developed by Igor Pavlov around 1998,

22:42 and it often beats much more familiar methods.

22:45 In many cases, it can shrink files to about 70% of the size of a typical .zip.

22:50 Lasse took this elegant compression algorithm and made it work on Linux,

22:54 and he called it XZ not because it stood for anything,

22:57 but just because it sounded cool.

23:00 I'm using XZ quite a lot.

23:01 I think XZ is a wonderful project.

23:03 There are lots of different ways of compressing data.

23:06 Some of them are fast but they don't compress very well,

23:09 and some of them are slow but they get extremely good compression.

23:15 But across Linux, projects are constantly shipping the same files

23:18 and updates to millions of machines, so XZ is perfect.

23:22 You compress something once, then you get a smaller file to download forever.

23:26 Lasse released XZ in 2009, and over the next decade and a half,

23:30 it went from a niche tool to the common

23:32 choice whenever a project needed effective lossless compression.

23:35 So, XZ quietly spread everywhere, eventually becoming a dependency of OpenSSH.

23:41 (suspenseful music)- So,

23:47 it was at some point in about February 2024 and Jia Tan, he emails me.

23:53 He's got all these new features in the new version of XZ.

23:57 [Henry] He wins Rich over almost immediately.

24:01 So I get to talk to hundreds of contributors all the time,

24:03 and I do get a feel for them.

24:06 I feel, you know, are they good coders, which is what I really care about.

24:11 Are they conscientious people, are they helpful?

24:14 Do they respond to bug reports quickly?

24:18 And in all of the dimensions,

24:20 Jia Tan would be a very good contributor because he's obviously a good coder.

24:26 He's very responsive, he's very keen, and I love all that.

24:30 All indications are that Jia is a great contributor,

24:33 and this puts Rich at ease, so he lets his guard down.

24:37 And that's often where the problems start on the internet.

24:39 You can't keep your guard up forever.

24:41 But lucky for us, with today's sponsor, NordVPN, you don't have to.

24:45 NordVPN's Threat Protection Pro blocks dangerous websites before they load.

24:49 It stops malicious downloads and it

24:52 strips out trackers and intrusive ads automatically.

24:54 And it works even when you're not connected to the VPN,

24:57 so a lot of these attacks never get the chance to start in the first place.

25:00 I use NordVPN whenever I'm traveling or working on public wifi because

25:04 it means that I don't have to think about who's running the network.

25:07 It's just one click and it's so fast that I often forget that it's on.

25:10 Not just that, if there's a show that's no longer

25:13 available in my region or a sports team that's blacked out,

25:16 like I'm often watching international football and they

25:19 don't quite have it where I'm going, well,

25:20 in that case, I can just switch my server

25:22 location with one click to unlock the content.

25:25 Apparently you can even use it to find better deals

25:27 on plane tickets by changing your IP address to another country.

25:31 I haven't tried it yet, but that sounds fascinating.

25:33 So, if you wanna try it,

25:35 you can get the best deal by going to nordvpn.com/veritasium.

25:39 When you use that link or this QR code, you'll get a huge discount.

25:43 Also, you get a 30-day money back guarantee through Nord.

25:47 It's a no brainer.

25:47 So again, that's nordvpn.com/veritasium or you can

25:52 click the link in the description below.

25:54 Thanks so much to Nord,

25:55 and let's get back to Jia and the prize he's got his eyes on.

26:00 At this point, we were preparing RHEL 10.

26:04 [Henry] See, Red Hat ships two major flavors of Linux.

26:07 Fedora, which is free and publicly available, and Red Hat Enterprise Linux,

26:12 or RHEL, which is available through a paid subscription.

26:15 This one has to be stable and secure

26:17 because it's widely used on the most important machines,

26:20 like in governments and hospitals.

26:22 Jia wants his code in RHEL,

26:24 but RHEL only has a new major release about once every three years.

26:28 So, there's definitely a deadline,

26:30 and that deadline was around sort of March, April in 2024.

26:35 Jia has to act fast.

26:36 He wants complete control of any compromised machine.

26:39 And to pull it off, he has three steps in his plan.

26:42 Step one, the Trojan horse.

26:47 The code for XZ lives on a website called GitHub,

26:50 which tracks all edits to XZ's code using a tool called Git,

26:53 which was also developed by Linus Torvalds.

26:56 So, Jia starts by making small changes.

26:58 He changes the primary contact for bug reports to his own email.

27:02 He tweaks small tools that will help him later.

27:04 But he can't sneak in the payload this way.

27:07 I mean, it'd be too obvious.

27:08 So he needs a way to sneak it in without

27:10 it ever appearing as normal source code on GitHub.

27:14 So, when you're writing compression software,

27:16 it's very often the case that your software is full of these binary blobs,

27:21 as we call them, so just lumps of binary which are

27:24 used to test the compression or the decompression is still working.

27:28 Nobody reads these test blobs.

27:30 They're included without ever appearing in the human readable source code.

27:33 They're assumed to be garbage data.

27:36 But for Jia, this is the perfect place to hide his payload,

27:40 inside something that at first glance looks harmless.

27:44 But in reality, it's a Trojan horse.

27:48 But with a Trojan horse inside of XZ,

27:50 it's still just a lump of data in a binary blob.

27:54 He has to unpack it.

27:56 So, in the code that builds the project,

27:58 he slips in a small easy-to-miss change.

28:00 It hides among all the automatically

28:02 generated code and quietly unpacks his payload,

28:05 inserting it into the XZ library.

28:08 But now that it's inside of XZ, it still has to pick the right time to act.

28:13 On to step two, Goldilocks.

28:18 Jia's end goal is to compromise a very

28:20 specific part of the SSH connection process, the RSA authentication step.

28:25 He realizes that if he can slip a small malicious component in there,

28:29 let's call it the payload,

28:30 then every time SSH checks for a key, his code will run first.

28:34 It will quietly look for a special master key that only he knows,

28:38 and if it sees that key, it'll let him straight in.

28:40 If it doesn't, it'll call the real code and no one's the wiser.

28:44 So, he will have his backdoor entrance to OpenSSH.

28:47 But he can't just go in and rewrite RSA Decrypt,

28:50 the function that verifies the client's identity during the login.

28:53 It's not that easy.

28:56 See, when you build an application, you could take all the code you need

28:59 from different libraries and bundle it into your application.

29:02 But there's a big drawback to this approach.

29:05 If 10 different applications on a system all bundle the same library,

29:09 you end up with 10 separate copies on your machine, so it's redundant.

29:13 That's why modern systems mostly use shared libraries.

29:17 When an application starts, the linker fills in a table of addresses.

29:20 These addresses point to the functions and variables

29:23 it needs from the libraries it links to.

29:25 That table is called the Global Offset Table, or GOT.

29:30 Now, when it wants to use something from a shared library,

29:32 it just checks the GOT and jumps to the right spot in memory.

29:36 RSA Decrypt doesn't belong to OpenSSH at all.

29:39 It comes from a shared crypto library.

29:41 So to hijack authentication,

29:43 Jia can overwrite the GOT entry that tells SSH where it is.

29:48 And to do that, he can use a little known tool called an IFUNC resolver.

29:52 The IFUNC is used where let's say you wanna optimize

29:56 your code to run on Intel's hardware and AMD hardware.

30:00 Now, you could write the software just for Intel,

30:02 and it would run very fast on Intel

30:04 and it probably would run very badly on AMD hardware.

30:07 [Henry] Instead, you keep multiple versions of the same function

30:10 and the IFUNC resolver picks the right one for the hardware you're on.

30:13 At first glance, that sounds like a way for Jia to trick the system

30:16 into thinking it's running hardware that needs

30:19 his own compromised version of RSA Decrypt.

30:21 But there is a catch.

30:23 A library can only define IFUNC resolvers for its own functions.

30:26 And since RSA Decrypt doesn't belong to XZ,

30:29 it can't use an IFUNC resolver to override it.

30:32 But IFUNC can still help him.

30:34 So it will, very, very early on in the running of the program

30:37 it will do this sort of determination of what hardware is available,

30:40 and crucially, it does let you run your own code in the library very early on.

30:48 Now, at this early stage, from within an IFUNC resolver,

30:51 Jia could try to directly rewrite the GOT entry for RSA Decrypt.

30:56 But at this point, the system is still filling in the GOT,

30:59 so even if Jia changes the RSA Decrypt slot,

31:02 the loader will come along later and write

31:04 the real address back in, wiping out his change.

31:07 And there's a limit on the other side as well.

31:09 To make this sort of hijacking harder,

31:11 once every entry is filled on the GOT, the system marks the table Read Only.

31:16 That means that if Jia waits too long, the RSA Decrypt entry is frozen.

31:21 So he has to slip it in at a very precise moment.

31:24 After the RSA Decrypt entry is filled in legitimately,

31:27 but before the table gets marked Read Only.

31:30 And that tiny window is the Goldilocks zone.

31:34 And to hit it, he's gonna need another tool.

31:37 So, linking shared libraries in the GOT often leads to bugs,

31:41 so Linux has a special debugging feature that tracks what the system's doing.

31:45 It lets you run code whenever the linker writes a symbol's address into the GOT.

31:50 It's called a dynamic audit hook,

31:52 and normally you'd use it to profile performance.

31:54 But crucially for Jia, there are no real guardrails.

31:58 The hook can run any code he wants.

32:00 And this is where IFUNC finally pays off.

32:03 Jia uses an IFUNC resolver to set the audit hook early.

32:06 Then, when the linker writes in the real RSA Decrypt address,

32:10 the hook fires and swaps in his payload.

32:13 Right in the middle of the Goldilocks zone.

32:17 There is one final complication, though.

32:19 Audit hooks are normally configured by the system, not by libraries like XZ.

32:23 So when Jia is first looking for the audit

32:25 hook variable that he's supposed to rewrite,

32:27 it's actually hidden from him, so he first has to find it.

32:31 Within the IFUNC, he scans a small region of binary code,

32:35 hunting for signs of the hook.

32:37 But it's just raw bites, so he writes a tiny decoder to turn

32:40 them back into instructions that he can read.

32:43 Now Jia can find where the hook lives in memory and finally plant his code.

32:47 Then, when RSA Decrypt gets called legitimately,

32:49 it triggers the payload and he's in.

32:52 But now that he's in, what does he do?

32:54 And how does he get out of there cleanly?

32:56 Step three, the cat burglar.

33:00 With Jia's exploit in place,

33:02 SSH isn't just checking for a legitimate login anymore.

33:05 It's also listening for a hidden master key.

33:08 And Jia is careful, he doesn't want anyone else stumbling onto the backdoor,

33:11 so that master key isn't just a simple password.

33:14 It's actually a mini cryptographic exchange of its own.

33:18 First, the backdoor code checks for a shared secret,

33:21 and then, second, it authenticates the user.

33:23 And only if both checks pass does the payload run.

33:26 In effect, it's like the backdoor is running a miniature

33:28 version of the encryption from SSH inside of SSH.

33:32 But in SSH, it uses that encryption to keep the attackers out.

33:36 In this case, the backdoor is using that encryption to make

33:39 sure that it's only the attackers that can get in.

33:41 But he's still careful.

33:43 One of the main ways defenders catch intrusions is through SSH logging.

33:47 So, to cover his tracks, he wipes evidence of the backdoor ever firing.

33:51 And this is on top of the numerous safety checks that he's inserted throughout

33:55 the process to make sure the system supports

33:57 the backdoor and doesn't crash and draw attention.

34:00 And this is the genius of Jia's trap.

34:02 It's cautious and meticulous,

34:05 designed to slip through only where it will run invisibly.

34:08 With all three of these steps complete,

34:10 he can finally control the machine undetected.

34:13 All he needs to do now is get his updated XZ implemented in the next release.

34:18 But just as Jia is completing his backdoor,

34:21 an open source developer requests to remove

34:23 the dependency that links XZ to OpenSSH.

34:26 This would spell disaster for Jia Tan.

34:29 He becomes frantic, pushing harder and harder

34:32 to get his compromised XZ into major Linux releases.

34:35 He gets it into an early experimental build of Debian.

34:38 He files a request to have it added to Ubuntu.

34:40 He's trying to land the backdoor everywhere

34:42 he can before anyone realizes what's going on.

34:45 And it's then that Rich gets his first message from Jia.

34:49 Over the next few weeks, he gets more and more insistent,

34:52 urging Rich to add the updated XZ into the next release of Fedora.

34:55 I'm always very keen to talk to keen upstream contributors,

35:00 contributors who are really excited about new things in their software,

35:05 who are really willing to help us get stuff into Fedora.

35:08 So, you know, that's great, love it.

35:10 That kind of makes my day, it's my happy place.

35:13 Eventually, Jia gets what he wants.

35:15 Rich adds the updated XZ to a pre-release version of Fedora.

35:19 Jia has succeeded.

35:21 Except there's a bug.

35:24 In low-level code like the backdoor, things you normally take for granted,

35:28 like memory management, are not done automatically.

35:31 If a function grabs a bit of memory,

35:33 it also has to give that memory back when it's done.

35:36 And if it doesn't, then every time the function runs,

35:38 it grabs more and more memory and then never releases it.

35:41 Over time, the program just keeps growing.

35:44 That's called a memory leak.

35:45 And to catch problems like this, developers use a tool called Valgrind.

35:49 It runs the program more slowly

35:51 but watches every memory operation for anything suspicious.

35:55 Valgrind is raising hell on Jia's code.

35:59 We put XZ, this version, 560, into Fedora 40.

36:04 We get a bug report initially.

36:07 And the backdoor in XZ specifically is generating invalid writes errors.

36:12 Well, the logic was written by hand, bypassing the compiler's safety checks,

36:16 and so they accidentally wrote outside the memory stack.

36:19 Now, lucky for Jia, all this isn't immediately obvious.

36:22 Rich still hasn't noticed what's happening.

36:25 New software has bugs, right?

36:26 It's the state of nature of software.

36:28 Software is absolutely full of bugs all the time.

36:32 [Henry] Now, the real problem is inside the malicious code in the test file.

36:35 But Jia can't just go and fix that, that would completely expose the backdoor.

36:39 So he invents a cover story.

36:41 He claims that the random data he used to generate the original test files,

36:45 well, it's not reproducible, so he's replacing it.

36:47 And in this updated code, he fixes the memory error.

36:51 It's a very convincing and plausible explanation

36:54 for why this test blob has to be updated.

36:56 But of course, it's not the real reason.

36:59 All right, so now the real fix is in, but if the bug just magically went away,

37:03 it would look a bit suspicious.

37:04 So he has to find a way to cover it up.

37:06 So what he then does is he changes the IFUNC code in a way

37:12 where he adds like a whole bunch of comments and changes to the code

37:17 around it that doesn't actually change the code but is plausible enough

37:22 to look like he's changing how the IFUNC works to fix the Valgrind bug.

37:26 It does, listening to it and I'm like I

37:27 know that this is the evil hacker Jia Tan, but I'm like, ooh, that's clever.

37:32 You know?

37:33 Yeah, I mean, look, the guy is obviously not an idiot, right?

37:37 But none of this is suspicious.

37:41 This is what we expect from compression software.

37:44 And as a packager, it's not really my job to fix every bug in upstream software.

37:51 As soon as it gets to a certain level of difficulty, my thought here is, well,

37:57 Jia Tan has actually been writing this software, right?

37:59 So he's got it all in his head, he knows how it works.

38:02 It's easier for me to just give him the problem.

38:05 And I send the bug over to him and like a day later he sends the fix back.

38:09 From my point of view, it's problem solved.

38:11 It worked, system worked, right?

38:13 I made the right call.

38:14 I don't see, at that point, knowing what I know then,

38:19 I don't see that there's any problem.

38:22 So we downloaded Jia Tan's version of XZ,

38:24 which was available on Fedora publicly, but we made a slight modification.

38:29 Instead of using Jia's secret code, we're using our own,

38:31 and that means that we can take advantage of Jia's backdoor.

38:35 In this case, we're targeting the veritasium.com website.

38:39 And once we get control of it, I got a little trick in store for Derek.

38:43 Now, to make sure I don't mess with any real traffic too bad and lose my job,

38:47 we actually cloned the Veritasium website and put it on a very similar URL,

38:51 but it will work the same.

38:52 Of course, Derek doesn't know that I've covered my bases.

38:56 Oh no.

38:58 Man, when you guys do these things, I just,

39:01 I start to get more and more scared now.

39:03 I want it to work for the video,

39:04 but I also don't want it to work 'cause I don't wanna screw stuff up, so.

39:08 Yeah, it's the risk you take, I guess, letting us run rampant.

39:11 It is a concern.

39:13 I'm gonna execute a script here, which is gonna open up.

39:16 It's opening up a port on the Veritasium server.

39:20 And then on this side I'm gonna execute a little script.

39:26 Uh-oh.

39:27 (Henry laughs) Henrytasium.

39:30 Who is this goof?

39:32 On the main photo, you spent time getting all suited up there.

39:37 Of course.

39:38 Looking sharp, sir.

39:39 Thank you, thank you.

39:41 [Derek] "Videos Derek would never approve of." Uh-oh.

39:44 The concept was over the years that we've worked together,

39:47 you've said no to a bunch of my ideas,

39:49 and I figured now with control of the website it's about time the world saw it.

39:53 "Surviving 7 days living underwater.

39:56 How do saturation divers live at -1,000 feet?" I mean,

40:01 you wouldn't be outside, right?

40:02 So I don't know why you need goggles

40:04 there and like a respirator but you're not underwater.

40:08 "Why it's almost impossible to shoot 4,000 meters." It's a sniper video.

40:14 Yeah.

40:15 "The CIA lied: exposing how the CIA lied about torture." I

40:19 feel like that still goes into a tough territory for us.

40:22 "How xenon gas replaced oxygen.

40:25 I attempted to climb Mount Everest on xenon

40:28 gas." That sounds like a terrible idea.

40:30 This is what this whole video is about,

40:32 this whole video is just about trying to get me to green light your projects.

40:37 You know, if people like these video ideas,

40:39 they can feel free to let us know in the comments and we can actually make them.

40:43 The top upvoted comment one, I will green light happily.

40:48 Let's go!

40:49 Is this live to the public right now?

40:51 It is live, yeah, it's live on the server, yeah.

40:53 If anyone's on the website right now, that would be very strange for them.

40:57 Look, I'm not pleased, I would like you to change it back.

41:02 It doesn't seem like this should be possible on a Linux server.

41:06 So the big question is, how did you do it?

41:09 The address is the server, the seed is our code to get in, and then

41:13 the command is what we're doing to essentially open up,

41:16 in this case nc, which is like opening up a port

41:18 on the machine that we can then access from this second terminal.

41:21 Then what we're doing is on this side we're running

41:24 a script that's connecting to that port that's just been opened up,

41:28 copying our files and then by the end

41:30 we're gonna have root access on the server.

41:33 That means that it thinks that we own the thing.

41:36 That's so crazy.

41:37 This is a very scary hack.

41:40 I do not like it.

41:42 Another thing is that this is a very obvious way of demonstrating this attack.

41:47 Like I've changed everything on the website,

41:48 you immediately know that I've gone in and hacked the server.

41:51 If we were doing this for real, we would do it a lot sneakier.

41:54 I mean, as you say, right?

41:56 The thing to do would not be

41:57 to totally rework someone's website so everyone notices,

42:00 but to change it subtly so nobody notices so you can skim data or, yeah,

42:05 like get credit card details or take

42:08 payments to a different location, stuff like that.

42:11 So you can copy anything you want,

42:13 you can change anything you want, you can delete anything you want.

42:15 So if there's any interesting documents or crypto tokens,

42:19 any files you're interested in, those are yours now.

42:22 If there's secret communications going across these, and let's keep

42:26 in mind all of our communication networks are also built around Linux,

42:30 those communication streams are yours now.

42:33 If you wanted to encrypt something and ask for ransom, that's possible now.

42:38 [Henry] The possibilities really are endless.

42:40 After two and a half years of hard work,

42:42 slowly infiltrating the XZ Project and weaving

42:45 in this ingenious backdoor, Jia's done it.

42:49 He now has free rein on any machine that installs the new Fedora pre-release.

42:53 And he also gets the same access

42:55 on Debian testing and Ubuntu's pre-release environments.

42:58 And with RHEL 10 coming up,

42:59 his code could infect some of the most important computers in the world.

43:02 Now he should be able to relax,

43:04 wait for the release, and he's got his backdoor key.

43:07 But just when he thinks everything's going right...

43:11 (suspenseful music) Andres Freund is a German programmer.

43:19 He's not a security researcher, he's not a hacker.

43:23 He's just an employee at Microsoft working

43:25 on an open source project called Postgres.

43:28 One day in March 2024, he tries out the unstable release of Debian

43:31 to make sure that Postgres will run smoothly.

43:34 But while checking the server connection times, he notices something odd.

43:38 A slowdown.

43:40 It's not much.

43:40 In the worst case, it's only half a second,

43:43 but it's enough to make Andres suspicious.

43:45 We tested the connection times ourselves on our own version

43:48 of the XZ hack and we found the exact same thing.

43:50 Consistent slowdowns of about 400 to 500 milliseconds.

43:54 Andres had already seen the problems with XZ and Valgrind

43:57 weeks earlier and this only makes him more suspicious, so he digs in deeper.

44:01 He looks at recent additions to OpenSSH and traces

44:04 the delay back to an update in XZ.

44:07 He sees the binary test files but notices that they were never used in a test.

44:11 It's even stranger.

44:12 Andres tries to get back to work, but he can't stop thinking about it.

44:16 [Andres] I remember sitting in a bunch of meetings and like

44:18 not really being able to concentrate because it feels like,

44:23 I need to continue looking into this.

44:25 Eventually, Andres sees it.

44:26 This isn't some bug, this is a backdoor.

44:30 And this backdoor is meticulous.

44:32 It hunts through memory to find the audit hook,

44:35 it implements a decoder to read those raw bites,

44:37 and then it wraps everything in custom encryption and safety checks

44:41 so that it only triggers on the right kind of connection.

44:44 I mean, it even garble its own strings so that it won't be detected.

44:48 It's incredibly cautious.

44:50 But all of that takes time,

44:51 and in the end, that's what grabs Andres's attention.

44:55 If they had done less obfuscation,

44:56 I probably would not have noticed that anything was wrong.

44:59 [Henry] Now, XZ's security contact is Jia Tan,

45:02 so Andres can't exactly report it through the usual channels.

45:06 Instead, he emails the Debian security team directly and posts

45:09 a detailed report to a public security mailing list.

45:13 Then, all hell breaks loose.

45:16 I'm called up on I think it was a Friday evening, in fact,

45:22 I'm sure it was a Friday evening, to join a internal Red Hat meeting.

45:28 It's immediately obvious that this is not a normal

45:31 meeting because like our head of security is there.

45:35 It's explained to me that it's been found

45:39 by somebody in the community that XZ has a backdoor,

45:42 and immediately I'm like, WTF?

45:45 How did this happen?

45:47 To cover their bases,

45:48 Red Hat quickly rolls Fedora back and tells all their users to revert,

45:52 and the whole open source community starts digging

45:54 into the project to understand what went wrong.

45:58 One thing is clear, though.

46:00 Andres is a hero.

46:02 Now, the fact that this was discovered

46:04 in a different test at all, that was lucky.

46:06 But then what are the chances that someone who

46:09 isn't looking for a security bug spends days investigating this?

46:13 So, big kudos to the researcher, and yeah,

46:17 saved us all from possibly a doomsday on the internet.

46:22 I think that Andres did a brilliant job because he did what I should have done,

46:27 actually, which is I should have looked at the, you know,

46:29 I should have looked at the bug when I saw it and I should have gone there,

46:35 you know, like a crazy hound sort of sniffing

46:38 around trying to find out what's going on.

46:40 [Henry] Andres even gets a shout out from the CEO of Microsoft.

46:43 But when the story breaks, the mainstream response is surprisingly muted.

46:48 Actually, I'm still surprised now that the mainstream

46:52 news outlets haven't really covered this very much.

46:55 Well, I can tell you how many systems would have been compromised,

46:58 which would have been millions,- Anything from spying,

47:02 to ransom, to just taking down entire countries,

47:07 you could have done it with this backdoor.

47:10 [Henry] I guess the big question is, who is Jia Tan?

47:14 That's the question, isn't it?

47:15 Okay, so my feeling is that Jia Tan,

47:18 the person that I talked to I believe is one person,

47:22 but I also believe that behind him must be a group of people.

47:27 And they worked for quite a while.

47:30 I mean, they were at this for perhaps two and a half years that we know about.

47:35 If you look back at the accounts pressuring Lasse, they share some similarities.

47:39 They use free email addresses and they have

47:42 almost no footprint outside of the XZ threads.

47:45 These were very likely sock puppet accounts,

47:47 identities manufactured to apply pressure as part

47:51 of a multi-stage social engineering campaign.

47:54 Now, who spends a million dollars and takes two and a half years

47:57 to attempt to break into every hotel room on the internet with a master key?

48:02 (suspenseful music) I think it's not

48:05 a criminal organization because I don't think

48:07 a criminal organization would have that patience

48:10 to spend that time without any real return.

48:13 So I think it has to be a nation state actor, here.

48:20 A lot of the aliases, like Jia Tan, they sound like Asian names,

48:24 and the published changes are all timestamped in UTC+8, Beijing time.

48:29 So the signs point to China.

48:32 And that's why it's probably not China.

48:35 I mean, why would they make it that obvious?

48:37 Every other part of the operation has been so meticulous, so cautious.

48:41 And they also worked on Chinese New Year, but not on Christmas.

48:45 And over the years, there were nine changes

48:47 that fall outside of the Beijing time into UTC+2,

48:51 which is a time zone that includes Israel and parts of Western Russia.

48:56 That's why some experts have speculated that this could be the work of APT29,

49:01 a Russian-state-backed hacker group also known as Cozy Bear.

49:05 But again, do we know?

49:07 No, of course we don't know who it is, and we likely will never know.

49:10 Jia Tan himself just disappeared as soon as this exploit

49:14 became publicly known and never heard from again.

49:18 In a sense it doesn't matter whether this was Russian or Chinese or Iranian.

49:22 We need to protect from these types

49:24 of backdoors no matter where they're coming from.

49:26 I see this as like, you know, the canary in the coal mine of what's

49:30 gonna be happening as attackers get more sophisticated,

49:35 they make fewer mistakes.

49:37 You know, the gloves are off in a way.

49:39 I don't think that the Linux community is fully,

49:44 you know, is fully ready for this yet.

49:49 In the aftermath of XZ, the open source community poured over countless

49:52 small similar projects looking for similar campaigns,

49:56 but they found almost nothing.

49:59 I'm worried that we didn't find other backdoors.

50:00 The incentives are just too clear.

50:02 There are state-sponsored parts of either governments,

50:07 militaries or even private contractors working for states

50:11 that are all preparing for the next cyber escalation,

50:15 some kind of a war, some kind of a geopolitical conflict,

50:18 and where are all of those backdoors?

50:20 There's just too many people incentivized to put

50:22 backdoors for the few backdoors that we're actually discovering.

50:27 Now, some experts have argued this reveals

50:29 a fundamental flaw in the open source model, but not everyone agrees.

50:33 Closed source software would be no better here.

50:35 In fact, who's to say that there aren't already state spies working as paid

50:41 software engineers at some of the larger

50:44 companies putting in exactly backdoors like this?

50:46 But then there would be no community member

50:49 running free testing and detecting this by chance.

50:52 This backdoor, if anything, underlines the ethos of open source.

50:57 I mean, just think of what it took to get this done in public.

51:01 There was a multiple-year social engineering campaign,

51:04 there were all these layers of misdirection,

51:05 and then there was code that was designed to withstand constant scrutiny.

51:09 Compare that now with a closed source hack.

51:12 Sometimes all it takes to get a backdoor installed there is a court order,

51:16 or you have a public company that can just brush a breach under the rug.

51:21 I actually used to work as an open

51:23 source researcher myself at the Japanese telecom giant NTT,

51:26 and my perspective is that it's only because this is

51:29 an open source project that it's been picked apart,

51:32 analyzed, and turned into a conversation about security at all.

51:35 One that focuses on the fundamental vulnerability.

51:39 It's not the code, it's the people.

51:42 Now, the system has not supported them enough.

51:46 I feel for Lasse that he's given this beautiful

51:51 gift to the whole world and, you know,

51:56 what have we, what has humanity done back to him, right?

52:00 We've poisoned his gift.

52:02 And then I think implicitly a little bit,

52:06 not everyone's saying this, but implicitly we're blaming him

52:11 for not being there to maintain this stuff for free forever.

52:17 But why are we demanding that Lasse do

52:21 anything when he's not being paid for this stuff?

52:24 And that's, in my opinion, quite unfair.

52:28 On this Saturday evening, we were working together on a workaround for this bug

52:35 in RHEL 9 that he's added to XZ,

52:38 and he absolutely could have told us to get lost, and didn't.

52:43 What a brilliant guy.

52:48 (electronic beeping) (music fades out)

Study with Looplines Download Captions Watch on YouTube