376 points
*

You do it because it makes an attacker’s life harder because now I have to find two bugs instead of one.

The entire boot chain of the phone up to the apps you run are verified successively by the component that loads it. A digital signature helps ensure that only trustworthy code ever runs. A bug must be found to bypass these checks to load malware code. For example, a bug in the image code in a web browser might cause loading of code that isn’t checked. This way the malware gets smuggled onto the phone.

This means that if you get hacked via one bug and malware is loaded, the attacker has to work harder to solve the problem of how do I convince the phone to load it again at boot because the code it’s made of isn’t going to be approved code. When you reboot, you are effectively forcing a validation that all the code you have running is authentic, which would exclude the malware. Trick me once sure, can you survive a full pat down? Probably not. It’ll get caught.

Unless I have a second bug to fool the normal code loading systems too, the malware can’t run. You have to go back and trigger the first bug again somehow, which places more strain on the attacker.

permalink
report
reply
119 points

Thanks for taking the time to write that out. I found it really helpful.👍

permalink
report
parent
reply
71 points

I love to talk about computer security. I don’t get the chance often enough.

permalink
report
parent
reply
31 points

I hope you get more chances to do so; you explained the situation in a much better way than the article and convinced me to reboot my phone.

permalink
report
parent
reply
7 points

Thank you, friend. You’ve convinced me to restart my phone.

permalink
report
parent
reply
4 points
*

I hope to hear you* on Darknet Diaries hahaha

permalink
report
parent
reply
2 points

If you have a blog where you talk about that, I would like to read it.

permalink
report
parent
reply
38 points

Exactly, as you already explained in detail this is primarily for security.

GrapheneOS has a feature to set a time after which the phone reboots in case there was no unlock. So in case a bad actor gets your phone they only have that time with a running system after the first unlock. However, if you use it normally, and unlock it in regular intervals it does not auto-reboot. This is especially neat if your threat level is not “investigative journalist” or “political activist on the run”, because then you can set the time to a longer interval and the phone does not reboot every night when you are asleep which also leads to the SIM card being locked and nobody being able to call you…

permalink
report
parent
reply
15 points

I remember this feature, and I wish it was a standard Android feature. It sounds like it would be trivial to implement and could be completely optional.

permalink
report
parent
reply
1 point

I wonder if tasker could do it… 🤔

permalink
report
parent
reply
10 points

But that only works for untrusted code escaping a sandbox, right? It does not help with malicious code embedded into legitimate seeming apps. The later vector seems easier, especially on Android, no?

permalink
report
parent
reply
25 points
*

I don’t really consider a malicious app to be an exploit. In this case, the software is doing exactly what it was designed to do – malicious activity. It’s not being manipulated to perform unintended operations through the exploitation of a software bug. Code signing and secure boot are not effective in the face of intentionally shipping malicious code to end users. It’s designed to frustrate actual hackers.

For malicious-by-design apps, we rely on a central app store that hopefully reduces the number of bad apps in circulation. If you publish malware, eventually you get caught and we know who you are. Sandboxing with a permissions system helps prevent apps from performing actions contrary to the user’s interests. E.g. why is my flashlight app asking for my contacts when I pressed ‘change color?’

If you directly exploit your way in, it’s harder to know who did this and why because you didn’t go through any central vetting or accountability system, and you’re not so easily bound by the permissions system. It depends on what your bad guy’s goals are, what they want, whom they’re targeting. Force your way in the back entrance, crawl through an open window (like a weak security setting), or lie your way in the front door (trojan)? It depends.

None of it is perfect, but I’m sure OS design experts would love to hear about better solutions if any exist.

permalink
report
parent
reply
4 points

Your explanations really are poetry.

permalink
report
parent
reply
0 points

wouldn’t a malicious app still be an exploit though? I’d say that if I download an app for playing a game, but instead it was designed to also upload my private photos to the attacker’s server, i’d say that’s still exploiting. It’s just exploiting my expectations of what the app should do, rather than leveraging a system weakness (which it probably does, anyway)

permalink
report
parent
reply
9 points

I miss my BlackBerry and it’s scheduled reboot option

permalink
report
parent
reply
8 points

Pixels with grapheneos can reboot automatically after a number of hours with the screen off (unattended because you are sleeping). But this would also interfere with Whatsapp backup, which happens overnight.

permalink
report
parent
reply
6 points

Samsung phones also have a reboot schedule option

permalink
report
parent
reply
3 points

Guessing Pegasus and their ilk have an easy way around this

permalink
report
parent
reply
5 points
*

Nope! From Kaspersky:

Reboot Daily: According to research from Amnesty International and Citizen Lab, Pegasus often relies on zero-click 0-days with no persistence. Regular daily reboots can help clean the device, making it necessary for attackers to repeatedly reinfect, thereby increasing the chances of detection over time.

For a case with persistence, Lookout notes another bug was required and details the extra work.

permalink
report
parent
reply
3 points

Idk man I just do it when my phone won’t ring when I get a call from my dad or doctor or something, so I have to go delete the voicemail and call them back. So like, every couple of weeks. I think it’s a Samsung thing, happened on my last phone too.

permalink
report
parent
reply
2 points

Nothing wrong with that. I don’t think it’s a mistake to not reboot your phone until you need to. It’s your phone. It’s not like rebooting your phone will save lives or the planet.

My wife doesn’t even use a lock screen password. I’m interested in the nuances of such things.

permalink
report
parent
reply
111 points

Jokes on them, my S22 Ultra restarts in it’s own. Even when I don’t want it to.

permalink
report
reply
35 points

It’s a feature! Device Failed Successfully.

permalink
report
parent
reply
8 points

This is gonna sound odd, but have you cleaned out the USB port lately? Weird stuff happens when pocket lint collects in there. I thought mine had a dead port until I picked out (with a non-conductive toothpick) the lint I didn’t realize had accumulated.

permalink
report
parent
reply
7 points

Sounds like my wife’s old Samsung phone as well… I’m sensing a common theme…

permalink
report
parent
reply
1 point

And my old note 4 too…

permalink
report
parent
reply
3 points

Android auto fails to load for me so often I’m pretty much restarting every day anyway

permalink
report
parent
reply
2 points

Don’t e.g. alarm apps not work after that until you unlock your phone since the device data decryption keys weren’t kept in RAM after rebooting? I have that feature off since I don’t want that to happen. Afaik AOSP has added that to make installing updates more seamless, but it’d be useful for this too. (And since Samsung usually sucks at improving their already self-made stuff to align with AOSP, like Virtual A/B updates, I’m just assuming this)

permalink
report
parent
reply
2 points

Really? My S22u is super stable. I don’t think it’s ever crashed. The current up time is 377 hours. But that’s only because of the 6.1 update a few weeks ago.

permalink
report
parent
reply
1 point

It’s a feature.

permalink
report
parent
reply
-9 points
*

Replace your battery.

Your phone is 2 years old.

Phone batteries are typically designed to last around 2 years before they really degrade because a lot of people buy new ones around every 2-3 years.

When the battery can’t sustain the same throughput, the phone can handle this in one of two ways.

  1. Slow the phone down. This is what Apple does and why people with iPhones 2 years old complain the new update slowed their phone down.

  2. Don’t slow it down but if the throughput drops below what’s needed, die and reboot. This is what your phone is doing.

Getting a new battery will probably stop this behavior (and for iPhone users reading this, getting a new battery for a 2 year old phone will make your phone faster).

Edit: Seems some of you don’t believe me looking at the downvotes. Look at number 8 in this list: https://helpdeskgeek.com/help-desk/why-your-android-phone-keeps-restarting-and-9-ways-to-fix/

permalink
report
parent
reply
8 points

I have an s22 ultra as well, and it’s fine? Sounds more like they have some rogue apps causing the restart.

permalink
report
parent
reply
3 points

Didn’t really have much installed aside from revanced and Firefox

permalink
report
parent
reply
-3 points

Half life is typically probabilistic.

You were lucky. They were not.

permalink
report
parent
reply

TL;DR:
Restarting your phone once a week can help improve performance and security.

  • this is the same for routers and it’s commonly known as a power refresh
permalink
report
reply
24 points

Maybe home grade routers.

permalink
report
parent
reply
24 points

well, I mean… anything can leak memory. but yeah, enterprise/carrier grade devices are designed to be in continuous use for years and they generally do that pretty well.

permalink
report
parent
reply
14 points

Even then, some places will reboot on a schedule when nobody should be using it.

I have some entry level “enterprise” hardware (Mikrotik router and Ubiquiti access point) and I auto-reboot mine weekly. In addition to maintaining performance and minor security wins, it also helps ensure everything csn survive a reboot (e.g. all configurations have persisted to disk).

It’s good practice. Some people brag about continuous uptime, I see it as a liability.

permalink
report
parent
reply
3 points

I leak memory all the time

permalink
report
parent
reply
7 points

If my router rebooted once a week, it would be in the trash can.

permalink
report
parent
reply
6 points

Restarting anything with a chip in it once and a while is good practice.

permalink
report
parent
reply
5 points

Feels like I need to reboot my iPhone daily in order to keep applications and tabs from being terminated from out of memory issues as quickly.

permalink
report
parent
reply
3 points

I have an old-ass iPhone XS and don’t run into this issue. But mine has a LOT of storage so maybe that helps?

permalink
report
parent
reply
4 points

I wonder if the regular updates mine does count.

permalink
report
parent
reply
9 points

Yes, a reboot is a reboot. As long as the boot sequence cycles through where the code is validated, you’re good.

permalink
report
parent
reply
2 points

a reboot is a reboot

Not always. Some phones will do a sort of “soft” reboot, which doesn’t actually go through the entire boot process, but is more like logging out of the active OS user and back in, reloading some of the OS but not all.

Pretty sure a system update would trigger a full reboot, though, but I’ve seen the option for this sort of partial reboot in the power menu on some devices in the past.

permalink
report
parent
reply
43 points
permalink
report
reply
7 points

TIL, I use GOS and never thought to look, I just see a banner saying there’s been updates and I’ve got “update and restart now”, “schedule restart” and “I’ll restart myself when ready” (or some such).

permalink
report
parent
reply
23 points

The main purpose of this is actually security. Because when the device is in BFU (before first unlock) state, it’s much harder to gain access to the data (without the correct unlock credentials). During the reboot, the encryption keys are wiped from RAM, making it essentially impossible to access the device, since brute-force unlock attempts are prohibited by Weaver API, which is enforced by the Titan M2 hardware security module. You can read more about this at https://grapheneos.org/faq#encryption

permalink
report
parent
reply
2 points

I will give that a read. I have been unintentionally using this feature, anytime I expect I won’t use the GOS pixel for a bit I restart it, I’ve also found it disables biometrics as a security measure. Cool stuff.

permalink
report
parent
reply
4 points

Samsung has had the auto reboot feature for a long time too.

Samsung - auto-restart

permalink
report
parent
reply
3 points

This! Actually a great feature on GrapheneOS, been using it for over a year now.

permalink
report
parent
reply
32 points

“you do need to restart your phone regularly to rid it of demons”

typo: “daemons”, not “demons”.

permalink
report
reply
4 points

Miners. Not minors! (Galaxy Quest)

permalink
report
parent
reply

Sounds kinda cyberpunk

permalink
report
parent
reply

Technology

!technology@lemmy.world

Create post

This is a most excellent place for technology news and articles.


Our Rules


  1. Follow the lemmy.world rules.
  2. Only tech related content.
  3. Be excellent to each another!
  4. Mod approved content bots can post up to 10 articles per day.
  5. Threads asking for personal tech support may be deleted.
  6. Politics threads may be removed.
  7. No memes allowed as posts, OK to post as comments.
  8. Only approved bots from the list below, to ask if your bot can be added please contact us.
  9. Check for duplicates before posting, duplicates may be removed

Approved Bots


Community stats

  • 17K

    Monthly active users

  • 12K

    Posts

  • 544K

    Comments