Unpatchable Apple Exploit Found!!!

Поделиться
HTML-код
  • Опубликовано: 7 фев 2025
  • Recorded live on twitch, GET IN
    / theprimeagen
    Become a backend engineer. Its my favorite site
    boot.dev/?prom...
    This is also the best way to support me is to support yourself becoming a better backend engineer.
    Follow Low Level!!!!
    / lowleveltweets
    / lowlevellearning
    Article link: arstechnica.co...
    By: Dan Goodin | da...
    MY MAIN YT CHANNEL: Has well edited engineering videos
    / theprimeagen
    Discord
    / discord
    Have something for me to read or react to?: / theprimeagenreact
    Kinesis Advantage 360: bit.ly/Prime-K...
    Hey I am sponsored by Turso, an edge database. I think they are pretty neet. Give them a try for free and if you want you can get a decent amount off (the free tier is the best (better than planetscale or any other))
    turso.tech/dee...

Комментарии •

  • @EdmondDantèsDE
    @EdmondDantèsDE 10 месяцев назад +1863

    So annoying when researchers stumble over your government backdoor. 😞

    • @_Safety_Third_
      @_Safety_Third_ 10 месяцев назад +65

      ☝️

    • @CommanderRiker0
      @CommanderRiker0 10 месяцев назад +32

      No joke...

    • @Volvith
      @Volvith 10 месяцев назад +66

      I wouldn't be surprised if there's a whooole lot of 0days we just don't know about.
      And by 'we' i mean the common people, us plebs.

    • @Knowbody42
      @Knowbody42 10 месяцев назад

      @@Volvith Of course there are. Stuxnet proves this. Using several zero day vulnerabilities and a leaked private key from Realtek.

    • @Dekatelon
      @Dekatelon 10 месяцев назад +12

      it's just one of many...

  • @S0L4RE
    @S0L4RE 10 месяцев назад +854

    Chat message I saw was so funny…
    > users act worried about a low level vulnerability, meanwhile they're giving league of legends a rootkit

    • @Volvith
      @Volvith 10 месяцев назад +111

      Lmao.
      _If you think it's just league of legends you should look up how many rootkit-access level anticheats/DRM's are employed in the gaming industry._
      The best part is they don't even work. Cheaters can literally just sidestep nearly all of them. And what few they can't, they will some time in the future.

    • @xeqqail3546
      @xeqqail3546 10 месяцев назад +7

      It's a good thing guys! a reason to finally ditch the game cuz tencent gonna data mine your pc through root kit

    • @OveRaDaMaNt
      @OveRaDaMaNt 10 месяцев назад +3

      @@Volvithwhile they are frequently side stepped, they aren't that big of a deal to have on your pc. People have been whining about it for years and yet nothing bad has happened. This is why normies don't even care about that stuff.

    • @sathalel4084
      @sathalel4084 10 месяцев назад

      @@OveRaDaMaNt ESEA literally used their kernel level anti cheat as a bitcoin miner. Vangaurd has been shown to cause multiple issues with end user machines crashing them over driver issues. Just because you aren't aware of issues doesn't mean they don't exist.

    • @moonasha
      @moonasha 10 месяцев назад +32

      @@OveRaDaMaNt nothing bad has happened? didn't hackers use the rootkit DRM in that one chinese gacha game to install ransomware on people's computers? And then the one that helldivers uses has had loads of bad publicity. And I know these things definitely do interfere with drivers, lots of reports of people's peripherals refusing to work. These things literally tamper with other processes. They don't just read them, they write

  • @mascot4950
    @mascot4950 10 месяцев назад +848

    One day is not a vacation, that's called sleeping in.

    • @Kane0123
      @Kane0123 10 месяцев назад

      When you have a few thousand degenerate pseudo-children in the form of Twitch viewers, any day off would feel like a holiday.

    • @MegasXaos
      @MegasXaos 10 месяцев назад +12

      You mean a weekend?

    • @kingoffongpei
      @kingoffongpei 10 месяцев назад +33

      He's making an effort to take more "mini-retirements."

    • @snooks5607
      @snooks5607 10 месяцев назад +3

      @@MegasXaos less than a weekend

    • @Kane0123
      @Kane0123 10 месяцев назад +2

      Prime retiring from streaming. It’s official.

  • @alexgerdisch
    @alexgerdisch 10 месяцев назад +225

    much love to the LowLevelLearning drop in for more intel, that was cool

    • @svenmify
      @svenmify 10 месяцев назад +3

      It’s not intel, it’s apple

    • @marss4536
      @marss4536 9 месяцев назад

      @@svenmify i think he meant intelligence

    • @svenmify
      @svenmify 9 месяцев назад

      @@marss4536 well yeah, obviously

  • @scifino1
    @scifino1 10 месяцев назад +69

    Side channel attacks are a fascinating topic. I remember hearing of one where a specific encryption algorithm was cracked for a specific device, because the device had an LED that would blink when data was being written to memory, which would leak the cryptographic keys to an attacker looking at that LED.

    • @0dsteel
      @0dsteel 10 месяцев назад +9

      and then it evolves into the LED is lit, but when the cpu draws slightly more power for some specific operation, the LED emits slightly less light D:

    • @juleswernes
      @juleswernes 10 месяцев назад +8

      but the framerate of the security camera was too low, so they used the moving shutter effect to get a time resolution of the energyconsumption

    • @earthling_parth
      @earthling_parth 10 месяцев назад +4

      @@juleswernesI remember seeing a video about that. It was absolutely wild that researchers were able to guess the card keys used by most hotels with a 24fps feed from a run-of-the-mill security camera.

    • @garystinten9339
      @garystinten9339 10 месяцев назад +1

      It's like watching the HDD light on your PC to determine time of operation... You can see the time and rhythm of a bootup and how your computer processes information

  • @Chamieiniibet
    @Chamieiniibet 10 месяцев назад +207

    The Meltdown is, basically, this: you say "CPU, take the value at this memory address I don't own, and treat it as the relative address in my current memory space". CPU retrieves the value you don't own, goes to the address in your address space, and fetches it into the cache. And then drops the result because of the security. But! As a 16-bit value can only have 65k variants, you can check which of the 65k memory values in your address space is in the cache - by trying to retrieve it and measuring the response time. The address of it is the value by that address you don't own.

    • @StinkyCatFarts
      @StinkyCatFarts 10 месяцев назад

      We know

    • @MisterAssasine
      @MisterAssasine 10 месяцев назад

      I didnt, this was a very concise explanation which helped me understand the problem@@StinkyCatFarts

    • @chordogg
      @chordogg 10 месяцев назад +13

      Thanks! I didn’t watch the video but wanted to know the vulnerability.

    • @deadchannel8431
      @deadchannel8431 10 месяцев назад +7

      @@StinkyCatFarts 🤓

    • @StinkyCatFarts
      @StinkyCatFarts 10 месяцев назад

      @@deadchannel8431 🤡

  • @TALHA-hr6xf
    @TALHA-hr6xf 10 месяцев назад +67

    "As an adult, I don't put stickers on my laptop"
    Tough but fair - I needed to hear this.

    • @cenobitedk
      @cenobitedk 10 месяцев назад +2

      Its so true

    • @duckyatsea
      @duckyatsea 10 месяцев назад +17

      Putting stickers on stuff has absolutely nothing to do with maturity, it was a trash take from a guy who wanted to take a low swing at many Apple users because “I’m so much better with my Linux laptop, look how mature I am”. There is nothing wrong with putting something fun and whimsical and bringing just a little bit more happiness into your day instead of being a gruff, coffee-chugging grouchy computer engineer. Some of us want to actually be happy

    • @TALHA-hr6xf
      @TALHA-hr6xf 10 месяцев назад +9

      @@duckyatsea You use a mac and put stickers on it? Do you get your fruit cut up into slices with a sippy cup as well lol

    • @jeromemainaud
      @jeromemainaud 10 месяцев назад +1

      Having stickers on a laptop is a security. It make your computer unique and reduce the risk of substitution (either on purpose or by mistake) when you use it in a public area.

    • @radiantveggies9348
      @radiantveggies9348 10 месяцев назад +4

      ​@@TALHA-hr6xf let's not pretend like the majority of commenters here aren't loser nerds. Stickers are the least of your worries

  • @loocid455
    @loocid455 10 месяцев назад +88

    "I want on a vacation for a day" is the most American thing ThePrimeagen has ever said.

    • @Tidbit0123
      @Tidbit0123 10 месяцев назад +1

      LMAO

    • @Enhancedlies
      @Enhancedlies 10 месяцев назад +1

      nail on the head , Americans dont understand

    • @meanmole3212
      @meanmole3212 10 месяцев назад +1

      I WANT on a vacation for a day, as in they don't even get that 1 day off, it is only in their dreams.

  • @beofonemind
    @beofonemind 10 месяцев назад +33

    It scares me how smart hackers are, and the techniques they have that I would never think to defend against.

    • @JohnathanMenezes-yb2ux
      @JohnathanMenezes-yb2ux 10 месяцев назад +1

      because you don’t have the resources of a major nation state behind you….

    • @garystinten9339
      @garystinten9339 10 месяцев назад +2

      It's just like taking a 3d cube and turning to it looks at the same cube but from a different angle.. basically reordering the information into another outcome based on what info you have and how you want to twist it.

    • @beofonemind
      @beofonemind 10 месяцев назад

      @@garystinten9339 Interesting way to put it, Thank You.

    • @JeffSherlock
      @JeffSherlock 10 месяцев назад +1

      Smart or not, its what they do. They that millions of other people used to do things, before computers put them out of business.

  • @bonsairobo
    @bonsairobo 10 месяцев назад +107

    Spectre and Meltdown described as "back in the day". Hooooo boy.

    • @zeuglcockatrice4633
      @zeuglcockatrice4633 10 месяцев назад +11

      we gettin old son

    • @nosleep7026
      @nosleep7026 10 месяцев назад +5

      i mean... thats almost 10 years ago

    • @wafinashwan8242
      @wafinashwan8242 10 месяцев назад +1

      god we old. i have a laptop vulrable by spectre

    • @codey1391
      @codey1391 10 месяцев назад +2

      @@nosleep7026 6 years is not almost 10 years

    • @MrHaggyy
      @MrHaggyy 10 месяцев назад +2

      Spectre was possible on some high end chips from 2008 and many chips from 2012 onwards but you needed physical access to the socket.
      In the 2017/2018 breach the problem was that you could do the same things via remote diagnostics if the system was setup for it. Which sadly many chipset-bios-cpu combination were out of factory.

  • @Nik-rx9rj
    @Nik-rx9rj 10 месяцев назад +26

    You are the PRIME source of tech news. I love coming back to your videos EGEAN and EGEAN

    • @Eldarlll
      @Eldarlll 10 месяцев назад

      Fitting pfp

    • @wafinashwan8242
      @wafinashwan8242 10 месяцев назад

      fireship better

    • @Eldarlll
      @Eldarlll 10 месяцев назад

      @@wafinashwan8242 they different things. fireship is shallow and just gives a short summary, while prime often gives great insight

    • @duckyatsea
      @duckyatsea 10 месяцев назад

      He can't even talk about tech news without acting special for having a system76 laptop (which were vulnerable to Meltdown/Spectre in the past), I would hardly say he's a good source.

  • @kzalesak4
    @kzalesak4 10 месяцев назад +4

    Been watching for a while, absolutely love the streams. Endless fun and tons of info. Thanks!

  • @UliTroyo
    @UliTroyo 10 месяцев назад +46

    Oh snap, it’s Low Level Learning! He rocks!

    • @w3w3w3
      @w3w3w3 10 месяцев назад

      yea fr

  • @FunMushizzle
    @FunMushizzle 10 месяцев назад +137

    Apple knew about this exploit, it's in M1 and M2 chips.M3 chips had a single bit flag added to the hardware to override the prefetch behaviour on demand... they knew. Chip design takes years to get from inception to production, this was found three or four years ago when M3 was a glimmer in Apple's eye...

    • @TheBswan
      @TheBswan 10 месяцев назад

      This does not seem likely. Knowingly doing this would be super illegal and highly risky, and 95+% of users are not going to upgrade to patch a theoretical vulnerability. If your infosec team at work isn't taking away your M1 or M2, they're either incompetent or this isn't a big deal. Caveat I write JavaScript professionally so all this is speculation from a filthy casual.

    • @framegrace1
      @framegrace1 10 месяцев назад +3

      If they knew, why not fix the issue instead of disabling the whole thing?

    • @ingodubingo
      @ingodubingo 10 месяцев назад

      @@framegrace1 $$$

    • @1DJRikkiBee
      @1DJRikkiBee 10 месяцев назад +14

      ​@@framegrace1Because if they don't fix it, people will buy both.

    • @earthling_parth
      @earthling_parth 10 месяцев назад +3

      So you're saying that before Apple even released their first M1 chips, they knew about this and still chose to release computing systems with that vulnerable chip in there? Doesn't apple always prioritize your security and privacy though? /s

  • @zeathe
    @zeathe 10 месяцев назад +145

    I had someone ask about the stickers on my laptop... I said they're the computer geek version of prison tattoos

    • @_Safety_Third_
      @_Safety_Third_ 10 месяцев назад +5

      I've got an ironic CIA sticker on my laptop. What's that the computer geek version of?

    • @monad_tcp
      @monad_tcp 10 месяцев назад +11

      @@_Safety_Third_ Who knows, but it is not ironic.

    • @Volvith
      @Volvith 10 месяцев назад

      @@_Safety_Third_ Letting your buddy, who 'totally has like done a lot of tattoos before yo', tattoo a d*ck on your forehead.

    • @icodestuff6241
      @icodestuff6241 10 месяцев назад +4

      @@_Safety_Third_ blood gang tattoos

    • @karmatraining
      @karmatraining 10 месяцев назад +1

      That's funny

  • @microcolonel
    @microcolonel 10 месяцев назад +210

    Let's say hypothetically they knew that this "0day" was here, and love that it will force people to prematurely retire M1 machines.

    • @mcchaderson
      @mcchaderson 10 месяцев назад +9

      The people who would care about this would change hardware…no?

    • @CommanderRiker0
      @CommanderRiker0 10 месяцев назад +6

      @@mcchaderson Agree, but more so they would use software based disk encryption if they were really paranoid.

    • @doresearchstopwhining
      @doresearchstopwhining 10 месяцев назад +12

      Stock is up despite being sued via anti-trust laws...

    • @IOverlord
      @IOverlord 10 месяцев назад

      Appletards gonna be happy to buy another improved and secured device only for $6942.0 just because it doesn't have that backdoor.

    • @owenelliott5742
      @owenelliott5742 10 месяцев назад +8

      @@doresearchstopwhiningwe're approaching the end of capitalism

  • @ryangrogan6839
    @ryangrogan6839 10 месяцев назад +16

    Basically, a side-channel attack is being able to derive information from observing the operation of some system.

    • @SaraMorgan-ym6ue
      @SaraMorgan-ym6ue 9 месяцев назад

      basically stop watching Microsoft porn kid🤣🤣🤣🤣🤣🤣🤣

  • @npsit1
    @npsit1 10 месяцев назад +2

    For the memory leak from the cache, an attacker could tell the CPU to return values from memory outside the range of where data is protected because the branching prediction doesn't check the memory space restrictions, therefore you can effectively get some data from the branch prediction outside of its own memory space. The data may be inaccurate because it's only a prediction, but it's still data regardless.

  • @djin81
    @djin81 10 месяцев назад +16

    I'd imagine your isPointer(value) function would be something like - The HW MMU knows the pages allocated to the virtual memory sandbox the application is in. So the HW cache looks at the upper bits of values in the cache and if they match a virtual page address mapped in that processes virtual memory sandbox, that's pretty likely to be a pointer. I think it'd probably just look a few resent cache page addresses, like a TLB. Scanning through all allocated pages would obviously be a performance loss in a L1 or L2 cache.

    • @monad_tcp
      @monad_tcp 10 месяцев назад +1

      I still wonder why they don't use pointer tagging via hardware, its just 3 extra bits, how much more expensive that can be ?

    • @DigitalOsmosis
      @DigitalOsmosis 10 месяцев назад

      Additionally, in normal operation at a hardware level there are probably patterns that repeat, so tracking state over time you could probably build an engine that could improve performance by guessing if the next operation "isPointer"

  • @jonnyso1
    @jonnyso1 10 месяцев назад +11

    Side channel sounds scary AF, the kinda thing you go into a habbit role of madness to avoid if you're really paranoid.

  • @FAB1150
    @FAB1150 9 месяцев назад +1

    To explain it further, a side channel attack is an attack that doesn't use flaws in something, but observes how it is working.
    The famous example is the pizzerias near the Pentagon: The pentagon is extremely secure so knowing then they're planning something is (let's say) impossible... But when everybody is working, they eat at the facility, so you see a spike in orders at nearby pizzerias!
    The spectre/meltdown attacks work by making the CPU think it's gonna load something by for example running a function repeatedly that always returns something. Once it's "trained", you suddenly make the function return something else. The CPU will have already returned the value you repeatedly calculated before, and it has to redo the operation once it sees it's wrong. By timing how long the CPU takes to correct the mistake you're able to understand what it's doing!
    Spectre/meltdown use this to gather data about what is in cache (for example, doing a simple operation multiple times on parts of memory you can access, then suddenly try to do the same operation on a part of memory you can't access so the CPU does it, realizes it can't, and corrects the mistake while you time it), without actually ever reading the cache. Super cool!
    Explanation about the actual attack is very simplified because I don't know how it works more in depth than this lol. It's black magic

  • @username7763
    @username7763 10 месяцев назад +160

    This is totally patchable. Pop the CPU out of the socket and pop a new one in. That was the fix for the Pentium fdiv bug. Apple just has to mail everyone a new CPU. Expensive, for sure. But this is what companies with recalled products do. Oh, soldered in and glued together.... yeah "modern" computing is dumb.

    • @yearswriter
      @yearswriter 10 месяцев назад +12

      M1 die soldered . But I get teh idea

    • @NotYourSpy
      @NotYourSpy 10 месяцев назад +6

      boomer take. monolithic everytime. all day battery. i do not own a mac.

    •  10 месяцев назад +36

      ​@@NotYourSpybig dum dum take. No replacement for displacement. Enjoy your Tesla.

    • @Chamieiniibet
      @Chamieiniibet 10 месяцев назад +6

      Well, it's almost the entire machine is that "CPU". So the replacement item price would anyway be almost equal to the price of complete mainboard

    • @monad_tcp
      @monad_tcp 10 месяцев назад +3

      SOCKET, ahahah hhaaqhahaha haaaaaaaaaaaaaaaaaa haha
      no sockets, you have to use a BGA reflow station and pay $$$$ for specialized service. get rekt

  • @JibunnoKage-YouTube-Channel
    @JibunnoKage-YouTube-Channel 10 месяцев назад +5

    Original side-channel issues where (as I recall) first raised as an issue right after virtualization was becoming mainstream in datacenters... about 2003-2004 or there about. At the time VMware and other type-1 hypervisor publishers (most not yet mainstream) were struggling to create methods to protect VMs watching VMs on the same physical machines.... explaining this issue... to non-technical management... was I think one of the most difficult things I have had to do in my 30+ IT career in virtualization/security/infrastructure design work. And what is possible now, is light years more complex, you have only scratched the surface of what the real zero-day exploits are now.

    • @SaraMorgan-ym6ue
      @SaraMorgan-ym6ue 9 месяцев назад

      are those encryption keys critical security flaws or are they the option to allow you to replace the ssd on the apple laptop has anyone checked out if that is possible with that leak?

  • @RichHeart89
    @RichHeart89 10 месяцев назад +4

    Pc: vulnerability found and lessons learned in 2016.
    Apple: well let’s do it in 2024

  • @JAN0L
    @JAN0L 10 месяцев назад +15

    5:15 Someone had that same battle net update popup happen to them at the end of a no-hit run in Dark Souls and died because of it.

    • @super_salty9189
      @super_salty9189 10 месяцев назад

      Zentreya. Was the saddest shi ever.

  • @gwentarinokripperinolkjdsf683
    @gwentarinokripperinolkjdsf683 10 месяцев назад +2

    I love how prime is just as intrigued by xor swap as I was.
    I found it myself when trying to swap too variables without using an intermediate variable and I wanted to do it in a way that wasn't just using an intermediate behind the scenes.
    then i quickly looked it up and was glad to see it was a very old algorithm

  • @cat-.-
    @cat-.- 10 месяцев назад +3

    It’s very easy to imagine a looks_like_ptr() function. Only some ARM instructions allow pointer operands. So if you have some data that is the same as an ARM machine code which takes a pointer operand, and the “pointer” looks like a viable virtual address, then the data looks like a pointer.

  • @lucaszapico926
    @lucaszapico926 10 месяцев назад +1

    Honestly! Super cool that you just plugged lowlevelearning into your stream. 👏👏 nice job with your community prime!

  • @CharlesBallowe
    @CharlesBallowe 10 месяцев назад +1

    Responsible disclosure can also be "seeing active exploit in the wild". A theoretical attack that isn't being actively exploited is lower risk, but active exploits need to alert people so they can defend.

  • @jackle3002
    @jackle3002 10 месяцев назад

    Man I must be a mad nerd.. because I’m just cracking up at “looks like a pointer code” you’re awesome prime.

  • @CitAllHearItAll
    @CitAllHearItAll 9 месяцев назад

    Hates stickers on his laptops. Likes things clean and nice. Has giant mustache. He’s an adult.

  • @riley1636
    @riley1636 9 месяцев назад +1

    Icestorm cores are the name for the efficiency cores. The performance cores are called Firestorm cores. Likely a reference to their impact on the thermal envelope of the CPU.

  • @NoodleBerry
    @NoodleBerry 10 месяцев назад +2

    Well pointers (that aren't null) tend to be big positive numbers, so I guess every big positive number is a pointer now.

  • @XDarkGreyX
    @XDarkGreyX 10 месяцев назад +8

    My noob self caught mention of the XOR swap earlier this year and I looked it up and found articles but man was I too stupid to grasp their explanation. That bit magic eludes me.

    • @nyx211
      @nyx211 10 месяцев назад +3

      It's simple:
      a XOR a = 0
      a XOR 0 = a
      a XOR b = b XOR a
      That means that:
      a XOR b XOR a = b
      b XOR a XOR b = a

    • @garystinten9339
      @garystinten9339 10 месяцев назад

      Think algebra terms

  • @loocheenah
    @loocheenah 10 месяцев назад +1

    the M1 chip is just asking its AI cores trained on exabytes of pointer addresses to distinguish between what is a pointer address and what is not

  • @johnchilton4005
    @johnchilton4005 10 месяцев назад +12

    Cool cameo by LowLevelLearning!

    • @monad_tcp
      @monad_tcp 10 месяцев назад +1

      lol "cameo" its a voice "cameo"

    • @johnchilton4005
      @johnchilton4005 10 месяцев назад +1

      @@monad_tcp I don't find that "cameo" is limited to visual media

  • @FalcoGer
    @FalcoGer 10 месяцев назад +1

    @6:00 spectre works something like this:
    1. Allocate Memory Array: The attacker creates a program that allocates a memory array.
    2. Condition Branch Predictor: The attacker conditions the CPU's branch predictor to predict that a bounds check will pass.
    3. Access Out-of-Bounds Memory: The attacker feeds an out-of-bounds address to the array.
    4. False Branch Prediction: The CPU's branch predictor falsely predicts that the bounds check will pass.
    5. Speculative Execution: The CPU speculatively executes code, including accessing data from the out-of-bounds address and using it to index another array (the "capture" array) owned by the attacker. This causes that part of the capture array to be put into cache.
    6. Branch Misprediction: The CPU eventually realizes the branch prediction was wrong and undoes the speculatively executed code.
    7. Cache Side-Channel: The CPU does not undo the cache fetching of the capture array, leaving traces of the speculative execution.
    8. Access Time Measurement: The attacker measures access times to the capture array to determine which index corresponds to the data accessed speculatively.
    9. Cache Eviction and Repeat: The attacker evicts the cache for the capture array and repeats the process.

  • @stylis666
    @stylis666 10 месяцев назад +1

    "I don't put stickers on my laptop; I'm an adult. I like things clean."
    One moment later:
    "Raptor Lake, that's a badass name!"
    I'm with chat on that one, you need stickers on your laptop 🤣

  • @Feedback406
    @Feedback406 10 месяцев назад +12

    Low Level Learning X Prime 🔥🔥🔥🔥🔥

  • @rezasajadiany7120
    @rezasajadiany7120 10 месяцев назад +1

    looks like a pointer in prefetcher is simply if this address was previously used as a pointer (and that instruction committed ok) then the prefetcher "learns" that information in what you can think of a "hardware table." So, address 0xdead was once accessed as a pointer, then prefetcher allocates a row in that table and remembers this address in case it sees it again in the future. Now there is another problem here: all these uArchitecture optimizations are left as is during context switches (too expensive to clean up everything,) so you could leak information across context too... It's can of worms that shows up with prefetchers and branch predictors

  • @genxer1824
    @genxer1824 10 месяцев назад +3

    Say what you will, it's impressive as hell that this backdoor was only found four years later. On an entirely new architecture that had lots of tech-savvy early adopters, to boot.

    • @pradhumnkanase8381
      @pradhumnkanase8381 10 месяцев назад +2

      It was not found after after 4 years lol. It was made public after 4 years

    • @genxer1824
      @genxer1824 10 месяцев назад

      ​@@pradhumnkanase8381 Fine, if you want me to be precise: found by people who did not put it there.

  • @spencert94
    @spencert94 10 месяцев назад +2

    It sounds like they're saying since they know the encryption function, the IsPointer function, and if IsPointer has returned true (since they can see if the cache has updated?), they construct a piece of data x that goes in like IsPointer(encrypt(x, key)) and if IsPointer returns true or false that narrows down the possible values of the key.

  • @DiegoBM
    @DiegoBM 10 месяцев назад +1

    The highlight of this video for me is that Low-level learning follows the primeagen!

  • @DKLHensen
    @DKLHensen 10 месяцев назад +1

    It's a feature: Hangman, you guess a letter, CPU tells you if it's in there or not.

  • @gabemcguire2463
    @gabemcguire2463 10 месяцев назад +2

    Calling Georgia Tech “JIT” is going to show up in my nightmares

  • @chickenduckhappy
    @chickenduckhappy 10 месяцев назад +2

    That we still load cryptographic secrets into general purpose hardware with caching and branch prediction &c. Is absolutely insane plus a general backdoor into all current computers. We only use specialized hardware for login and disk encryption, so why not also for all other crypto with universal kernel support and a common little C library? And I mean since 2014 or so, when timing attacks on otherwise unreachable memory were a big topic for the first time?

  • @thekwoka4707
    @thekwoka4707 10 месяцев назад +4

    Bitwise math is cool, and more people should know it in programming

  • @taylorcox8743
    @taylorcox8743 10 месяцев назад +2

    This only works if your Mac is already compromised, it’s an issue with the silicon but if it gets to that point then your machine is already infected.

    • @L1Q
      @L1Q 10 месяцев назад +1

      Wrong, you would not call your machine infected because you run JavaScript on Amazon page. When meltdown and spectre happened, js engines exposed enough precision in their timing APIs it was a viable vector of attack.

  • @girarr3029
    @girarr3029 10 месяцев назад

    Thank you for the "how would I code that" part

  • @featherless2524
    @featherless2524 10 месяцев назад +2

    As an adult I have a crazy subs sticker, a remilia sticker and a drawing I made myself stickered all on the side. Only kids wouldn't sticker their computer that's for sure!

  • @YadraVoat
    @YadraVoat 10 месяцев назад

    Although it's beyond my current ability as well, to design a pointer detector, where I detect you barking up the wrong tree is in that you're talking about programming the pointer-detector using code (instructions), while the actual pointer-detector implementations you're pondering, are implemented in logic gates, so there may well be an "is pointer" flag-bit or register or something else physical which can be checked to see if the 64-bit value is a pointer.
    I realize that's not the same as "looks like" a pointer, but my point is that this is occurring in hardware, not software.

  • @namenotfound2456
    @namenotfound2456 10 месяцев назад +1

    Personally i wouldn't trust apple with an encrypted drive, who knows what kind of bs stunts could they pull.

  • @dexterman6361
    @dexterman6361 10 месяцев назад

    As for pointer prediction, I think there are "usual cases". For example, if I am not mistaken, even if an address is 64 bits wide, the hardware uses only 48 to address memory (~256TB), meaning the top 16 bits are always 0 (if not stuffed with other bits for other optimizations by the programmer ... used, for example, in fast map datastructures). Another part of it is that an application's virtual memory range is typically the same. The stack and heap usually fall within the roughly similar regions (despite ASLR / KASLR), which are later translated by the MMU (memory management unit). Another great way to predict if a value is a memory address is to look at the instructions it is operated upon by. If a value has load, store, offset, and "memory-like" calculations performed on it, it is almost certainly an address. Classic access patterns such as virtual-table indirection for runtime-polymorphism use pretty uniform implementations, so that can be another good metric.
    I think these operations are not as hard to implement as they seem to be. The first can be done with simple bit-masking. After that, you can check if the value lies b/w some VM ranges (the kernel can do this, and given tight hardware-kernel integration on macs, this shouldn't be impossible to achieve). By this point the value is almost certainly an address. And by perhaps checking what previous instructions were executed on this value, you can pretty confident that something is an address.
    I mean, it made sense to implement it at a hardware/firmware level and spend really expensive silicon realestate for it, so I think it's safe to assume the implementation itself wasn't thaaaaat hard (for smart engineers), and took up fairly small cost in terms up hardware/firmware resources.

  • @mkabilly
    @mkabilly 10 месяцев назад +2

    If you're the processor, it's not hard to "guess" if something is a pointer. First of all, pointers tend to be word-aligned -- if your word is 64 bits long, it means every pointer will be a multiple of 8. Second of all, with Virtual Memory, your pointers don't have absolute memory addresses, but they're all relative to some base (that you, as the MMU, know). So the first guess would be: any word-sized value that's a multiple of 8 and is within this process' virtual page boundaries. Not all integers can be pointers in most architectures. Especially modern ones. This isn't something silly.

  • @Njna
    @Njna 10 месяцев назад

    "As an adult I don't put stickers on my..." woah.. take a step back there grandpa. LOL.

  • @kirbofn524
    @kirbofn524 10 месяцев назад

    If im not wrong, for the isPointer function, you could get the memory segments of the process and then just check if the val that is inside the ptr is < seg.max and > seg.min. Making sure its 8 bit alligned, and a bunch of other stuff to check if its a pointer. Not 100% all the time, but very close to it

  • @gardensalsasunchips562
    @gardensalsasunchips562 10 месяцев назад +1

    It doesn’t require physical, as in touching the processor, access. You need access to the same processor as another process you want to infer information from

  • @AHeinermann
    @AHeinermann 10 месяцев назад +1

    When governments think building a backdoor into encryption is a "good idea" .

  • @gingeral253
    @gingeral253 10 месяцев назад +3

    Love Low Level Learning

  • @SupBro31
    @SupBro31 10 месяцев назад +1

    a pointer is usually word aligned, page aligned etc.

  • @bencodesall
    @bencodesall 10 месяцев назад

    Girthy ... lol. Was in a band named "Girth" once. We had side-chain leaking issues too.

  • @NotGarbageLoops
    @NotGarbageLoops 10 месяцев назад

    Shared device contexts also apply to browser windows. That is, if you have multiple tabs open, and one of them is hammering cache, it can sniff your encryption information via JS. This can happen not only via malicious sites but also ads. I'd link the research paper but.. yeah. RUclips spam filters and all that.

  • @Mbro-dq2do
    @Mbro-dq2do 9 месяцев назад

    Grow to be 6'4" 230 lbs and I assure you no one is stealing your latop from you.M1 Max here. Best machine Ive ever woned. No doubt thee most secure machine ive ever had

  • @graxxor
    @graxxor 10 месяцев назад

    LLL was on the ball... super clear and succinct... Fantastic!

  • @martijn3151
    @martijn3151 10 месяцев назад

    Another useful purpose of XOR: XOR a value with itself equals 0. This sounds trivial, but is used heavily on for instance the Z80 processor in the Game Boy and MSX. Often you need the value 0 to be in register A. In C this would be something like: int a = 0. So, intuitively you’d think: load 0 in register a (ld a, 0) right? Well, that works, but it can be done way more efficient. "ld a, 0" costs 2 bytes and consumes 8 cycles, whereas "xor a" is only 1 byte with 4 cycles. And on a small CPU like the Z80, that’s a massive improvement.

  • @joyjin538
    @joyjin538 9 месяцев назад

    internal ssd encryption/decryption is not done on the cpu but in the secure enclave.

  • @amesasw
    @amesasw 10 месяцев назад +1

    Looks like a pointer? Maybe it's checks if it looks like a valid memory address which code could point to?

  • @Raima888s
    @Raima888s 10 месяцев назад

    Sounds like the same issues the apple has previously in their t2 security chips. They were also not able to be patched.

  • @srazash
    @srazash 10 месяцев назад

    "oh no you guys, did you see our m1 and m2 chips have an unpatchable vulnerability??? guess you need to buy a new mac now, oh no!!" - tim cook (maybe)

  • @3rikMad
    @3rikMad 10 месяцев назад +2

    One thing to note is that the XOR trick (17:38 - 20:57) doesn't work if both operands are the same variable (or accessing the same memory location).
    a ⊕ a is always 0, which gets assigned back to a. Since both operands are now 0, a would always end up being 0 instead of its original value like it would be with a true swap.
    It seems odd to swap a variable with itself, but could be concern if you implement this with a function that takes two pointers and then pass the same pointer to both arguments.
    Here's an example in C.
    #include
    void xor_swap(int *a, int *b) {
    *a ^= *b;
    *b ^= *a;
    *a ^= *b;
    }
    int main(void) {
    int x = 5;
    int y = 7;
    printf("Before swaps: x=%d y=%d
    ", x, y);
    xor_swap(&x, &y);
    printf("Swapped x with y: x=%d y=%d
    ", x, y);
    xor_swap(&x, &x);
    printf("Swapped x with x: x=%d y=%d
    ", x, y);
    return 0;
    }
    It prints the following:
    Before swaps: x=5 y=7
    Swapped x with y: x=7 y=5
    Swapped x with x: x=0 y=5

  • @economicist2011
    @economicist2011 10 месяцев назад

    2:00 You need to start selling Primeagen stickers for people to put on their laptops.

  • @VergilPrime
    @VergilPrime 10 месяцев назад

    Mans just insulted laptop stickers. Bad take bro.

  • @julkiewitz
    @julkiewitz 6 месяцев назад

    The attacker doesn't have to have access to the machine. I think it was mentioned that the attack can be launched from within a web browser

  • @francoisdprob
    @francoisdprob 10 месяцев назад +1

    What an awesome explanation by LLL

  • @chickenduckhappy
    @chickenduckhappy 10 месяцев назад

    Simple: you read from your own memory but the adress depends on a hidden forbidden byte from not allowed memory. Then the read into your own memory doesn't actally happen but then you actually read your own memory and one block of memory will be read way faster.

  • @gytisbl
    @gytisbl 10 месяцев назад +2

    just want to give a quick shout out to my man *LowLevelLearning* for such a great explanation about side channel hacks

  • @nicolaskeroack7860
    @nicolaskeroack7860 10 месяцев назад

    1:53 *proceed to tell how much he loves rust and dye his hair blue*

  • @super_salty9189
    @super_salty9189 10 месяцев назад +1

    Battlenet doing Prime dirty. But still did Zentreya way more dirty.

  • @SimonJackson13
    @SimonJackson13 10 месяцев назад

    Spectre is a speculative page fault bug, where the fault is ignored as the code was speculatively ignored, even though the fault should have been registered.

    • @SimonJackson13
      @SimonJackson13 10 месяцев назад

      So basically the pointer prefetch gives them an excuse to ignore the fault.

  • @Kane0123
    @Kane0123 10 месяцев назад +1

    Battle net requiring a launcher to sit between me and my game is the real performance issue.

  • @StrengthOfADragon13
    @StrengthOfADragon13 10 месяцев назад

    As I understand how the information is leaked, everyone is allowed to see what addresses are cached, and by making data "look" like an address the DMP will treat the value like an address and grab that "address" making it incidentally public

  • @cianmoriarty7345
    @cianmoriarty7345 10 месяцев назад

    2:25, no, the reverse, it is when something about the implementation of an otherwise completely theoretically secure encryption algorithm leaks enough information to help you break said encryption.
    Eg. If you had one time pad encryption and never reused the pad, then theoretically it's 100% secure and unbreakable. If however you prepared the two matching pads (key streams) using carbon paper and someone got a hold of the carbon paper and used it to get some of the pad and used it to decrypt some of the cypher text that would be a side channel attack.

  • @adjusted-bunny
    @adjusted-bunny 10 месяцев назад +3

    It's all about dangling pointers and backdoors.

  • @kneekoo
    @kneekoo 10 месяцев назад

    5:14 It looks like Blizzard hired Luke Skywalker on the update department, to use the Force. 😆

  • @imcorfitz
    @imcorfitz 10 месяцев назад +1

    18:20 think I just witnessed the birth of a new meme

  • @zxuiji
    @zxuiji 10 месяцев назад

    15:06, I'd hazard a guess the the "looks like a pointer" checks if the value is in the same address space that currently working in

  • @hyperxml
    @hyperxml 10 месяцев назад

    I’m just commenting to support the Chanel

  • @lebenitza5778
    @lebenitza5778 10 месяцев назад +1

    Be fair, considering physical access, you would not trust any device you can buy that will keep your secrets. No matter the overlords you decided to worship

  • @remrevo3944
    @remrevo3944 10 месяцев назад

    14:10 I guess one big thing might be the address space the pointer is in and what kind of alignment the data has.
    Like when a 64 bit value has a value above a specific number and the last 6 bits are 0 it is not *that* far fetched to assume it is a pointer to something with a 64bit alignment.

  • @j.jester7821
    @j.jester7821 10 месяцев назад +1

    Apple owes everyone a refund. and maybe some damages.

  • @Boomkop3
    @Boomkop3 10 месяцев назад

    Oh look, another unpatchable security hole. There have been a bunch. The main security hole is Apple's lack of giving a #

  • @Foxstab
    @Foxstab 10 месяцев назад

    Reminder that Ainz actually cast Sharknado.
    The Overlord author is whimsical.

  • @GhiveciuMarian
    @GhiveciuMarian 10 месяцев назад

    Actually is not skill issue on the chip itself. Its on who implement the criptografic algortihm. The CPU can give you diffrent speed depending on what you encrypt/decrypt. its hard to make the time constant across multiple blocks, cause speed is needed to mass encryption. Basically what do you want? Super speed on encryption, or slower speed but constant time?

  • @mrechonet
    @mrechonet 10 месяцев назад +11

    The way Mac's encrypt the drives is done via hardware keys. Im going to assume none of that stuff is really exposed to the OS.

    • @emptydata-xf7ps
      @emptydata-xf7ps 10 месяцев назад +4

      Depending on the architecture, the keys could be read with an oscilloscope as it passes over the motherboard. This is how Xbox was hacked back in the day. I would assume it’s something different but hardware keys are no safer than software keys. If it’s stored in memory anywhere it’s vulnerable somehow.

    • @robsnook4512
      @robsnook4512 10 месяцев назад

      @@emptydata-xf7psI just store mine inside the laptops body chassis on a post it note

    • @riley1636
      @riley1636 9 месяцев назад

      irrc this doesn't impact the T1 or T2 chips but unsure what the usage of that is with respect to how they interact with the cpu or other processes.

  • @nbrown5907
    @nbrown5907 10 месяцев назад

    See we kept telling you all NOTHING is safe lol. They just found a low level backdoor into Linux too. Windows is not lonely at all in this manner roflol. Funny thing is Windows 12 is rumored to be much more like Linux and its compartmented design.

  • @Cute_Maxi
    @Cute_Maxi 10 месяцев назад

    Has Apple mentioned being able to disable DMP on the M3 chips (they have the ability to turn it off for a performance hit unlike M1/M2)?

  • @deluxe_1337
    @deluxe_1337 10 месяцев назад +1

    2:00 for real, I always cringe when I see people with stickers on their laptops...

  • @alexmac513
    @alexmac513 10 месяцев назад

    It’s surprising if it’s in microcode because that can usually be updated, how CPU manufacturers fix bugs in their instructions. CPU instructions are all written in code, so will have bugs. BIOS updates fix CPU bugs as they are found.

  • @haniyasu8236
    @haniyasu8236 10 месяцев назад

    So the thing about the XOR trick is that you can actually do it with numbers too! And I think it makes it make a whole lot more sense. (well, floating points wont work due to rounding, but everything else is fine)
    let a = 10;
    let b = 6;
    //First we set a to be the sum of the values
    a = a + b //a is now 16
    //Then, since a is the sum of the two original values, subtracting off b, should give the original value of a
    b = a - b //b is now 10, the original value of a
    //a is still the sum of the originals, but b is now the original value of a, so subtracting it off should give the original value of b
    a = a - b //a is now 6. the original value of b
    To understand the XOR trick, note the following:
    - XOR is actually a lot like addition: it's a binary operation, it's commutative, and it's associative. It just acts on binary strings instead of numbers
    - XOR is also it's own inverse: a XOR b XOR b gives you a back. SO in a way, XOR is also like subtraction too
    Thus, all you need to do to get the XOR trick, is replace both the addition _and_ subtraction in the number version with XOR, and it should work perfectly.

  • @nevokrien95
    @nevokrien95 10 месяцев назад +1

    Values tend to not use the full range of what numbers have to offer.
    Take uint64. Most uint64s would fit into uint32...and most 32s into 16s.
    For signed ints you would have that 1 significant bit for the minus then lots of zeros so
    100000011 is probably -3
    000000011 is probably 3
    101101011 is probably a pointer