Remix.run Logo
azalemeth 4 days ago

I really love Graphene OS but I _wish_ there was a version in which you could get a root shell and extract private data of apps you install when verified as the user. The developers are on record as saying that root blows a hole in their security model (it does!) but if there was _some_ way of doing it safely, so I can modify applications I as the user wish to, it would be my ideal OS. I know I could download and self sign it, but I'd rather not…

colordrops 4 days ago | parent | next [-]

What is the threat model when enabling root on a phone and why can't it be mitigated? Root is enabled on most servers and desktops and we are surviving fine.

integralid 2 days ago | parent | next [-]

Threat model is that you can "spy" on what your applications are doing, or do things undesirable to application owners (like making screenshots).

This is desirable to end users, but my understanding is that making your os rootable will make applications like bank apps blacklist your os, and make it more or less unusable for a normal user.

Brian_K_White 4 days ago | parent | prev | next [-]

The way apps behave and the user interface to apps and the way they are used, the level of basic visibility and control that the user has moment to moment, is totally different on a phone than on a pc.

j4hdufd8 4 days ago | parent [-]

How so?

subscribed 4 days ago | parent | prev [-]

This is why most desktops and servers are comparably much less secure.

Check why Qubes OS was developed.

const_cast 3 days ago | parent | next [-]

In practice, desktops and servers are quiet secure because you don't need to download random closed-source firmware and apps to use your device.

iOS and Android are a security nightmare. Downloading a random-ass executable to pay for parking is asking for trouble. Relying on millions of lines of proprietary Google code that you-don't-know-what-it-does is asking for trouble.

This code could have, and almost certainly does have, spyware, keyloggers, and various other forms of malware. You're simply trusting that it doesn't, because it's unverifiable.

And this doesn't even TOUCH on all the vulnerabilities associated with cellular networks, the baseband, SS7, etc. Good luck auditing that code.

At least on a server I can have some baseline guarantees about what software I'm running and what it's doing. Whereas on a phone, your location could constantly be triangulated, your phone identity spoofed, your cellular traffic sniffed, and on and on and you'd never know.

I mean, just this week we saw a post on here about ICE using fake cell towers to identify protestors. That shit is truly trivial to do, and people have been doing it for almost two decades. You wanna talk CVE? Start with that.

buckle8017 4 days ago | parent | prev [-]

The user has real dom0 root on qubes.

sterlind 3 days ago | parent [-]

Is Qubes resistant to forensics? I think its selling point is multi-level security and lateral movement prevention, not safeguarding data on a stolen laptop.

strcat 2 days ago | parent [-]

No, it's not resistant to forensics unless it's turned off when obtained. The hardware / firmware / software makes no serious attempt to protect a device in the After First Unlock state.

djrj477dhsnv 4 days ago | parent | prev | next [-]

I wish this as well. I make a userdebug build myself to get adb root, which isn't difficult, but would be a lot nicer if it were officially supported.

imiric 4 days ago | parent [-]

That's interesting. Can you share a guide for doing that?

rjdj377dhabsn 4 days ago | parent [-]

You can just follow the official build instructions with a single change: when specifying the build target, change it from -user to -userdebug:

https://grapheneos.org/build#setting-up-the-os-build-environ...

imiric 4 days ago | parent [-]

Hhmm that seems like a hassle, TBH.

One of the things I like the most about GOS is the web installer, and how easy it is to use. If I need a custom build, to run my own server, and sacrifice performance for it, it doesn't seem worth it. It would also be good to know what a debug build entails, how exactly it is "less secure", and so on. Since this is unlikely to be documented by the GOS team, a 3rd party guide would still be helpful.

3abiton 4 days ago | parent | next [-]

> It would also be good to know what a debug build entails, how exactly it is "less secure".

Using software engineering terms, think of the official GOS as production release, and the debug version as test release. You deploy it by actiually building it, like building a linux kernel. This takes lots of reaources (RAM + storage). But also is quite flexible because you can compile and build it whenver there is a new update. And you can sign the build yourself. The reason why they say it's insecure is the same why your server sysadmin does not give you the root password. You can do some serious damage if you have no idea what you're doing. On Android, root allow you to peek on other processes and apps, so if you grant root to a malicious app, high risk of data leakage. That's it though. Been rooting and building roms since early android days, no issues for me as I tend to use open source tools most of the time.

j4hdufd8 4 days ago | parent | prev [-]

This is well documented in AOSP, what do you mean?

sterlind 3 days ago | parent | prev | next [-]

You can enable root on GrapheneOS. It will erase your data, however, so make a backup before you do. But if you really want root you can save your data, root, restore, and leave root on.

lc5G 3 days ago | parent [-]

How can I enable root?

sterlind 2 days ago | parent [-]

sorry, I was mistaken. it looks like you'll have to build a userdebug build in order to gain root.

subscribed 4 days ago | parent | prev [-]

You can't have a cake and eat it. A root access is a big hole, there's no way mainline will support it.

As for the possible way, you answered yourself already (custom keys and images) :)

imiric 4 days ago | parent | next [-]

> A root access is a big hole

How so?

On Linux, I can add an account to the sudoers list, and have the flexibility to configure the level of security appropriate for my use case. I have yet to experience any security issues (that I'm aware of). Why isn't this possible on my mobile device as well?

This absolute stance is not right. Security is not binary, but a spectrum. I should be allowed to have full control over my device without this being a security risk.

rfoo 4 days ago | parent | next [-]

Well, anyone with actual root on a secure (locked, verified boot on) Android phone can hard brick it with a single command. Yes, you can yell at the user telling them it's their fault. Still something you usually do not want to support.

I don't think having authorized temporary root is inherently insecure, but on the other hand making sure it is secure could be a huge time sink.

Now, the original request here, modifying user app (I'd assume it's not system app) data, is reasonable. Designing a properly authenticated way to allow doing so would be an interesting challenge.

subscribed 4 days ago | parent | next [-]

Oh, I agree that the initial request is more than reasonable. Titanium Backup is something i miss every day.

Especially since Seedvault is.... ekhm, lacking.

tiberious726 13 hours ago | parent [-]

Seedvault is the /worst/. I ranted about it here a few months ago, and the lead dev says he's aware they really need something better: https://news.ycombinator.com/item?id=42541520

fsflover 4 days ago | parent | prev [-]

> Designing a properly authenticated way to allow doing so would be an interesting challenge.

Qubes OS solved this problem. I don't see any flaws in their security model relying on vurtualization.

subscribed 4 days ago | parent | prev [-]

How so?

Root can access absolutely everything.

Malware capable of getting root can access / exfiltrate anything, use your network, flash your firmware, can persist permanently, can use you as a vector.

Shellshock, log4j, Heartbleed. Hundreds of the big profile vulnerabilities that can be exploited on the system in an attempt to obtain root. And then you're cooked.

You really think a malware with the root access can't do much?

Why do you think selinux (and similar) even exist?

This isn't absolute stance. This is just stating that having a root access on the proruction/daily system is the opposite of security.

wkat4242 3 days ago | parent | next [-]

Yes but root still exists in phones just like it does in servers. It's just not accessible by the user. The OS does run processes as root and it needs it for things like updates.

Also, the user having root access doesn't mean that every process they run has root rights. For rooted phones there's apps to control what it's used for. Anything else just runs with the limited rights as before.

Of course those 'sudo' apps would be an attack vector but a pretty niche one.

imiric 4 days ago | parent | prev [-]

I understand the risks, but just because they theoretically exist doesn't mean that they pose an active threat in all scenarios, or that they can't be mitigated.

The idea of locking the system down completely and preventing anyone from accessing it is technically more secure, but it creates many practical issues for tech-savvy people who want full control over their devices, which is the vast majority of the GrapheneOS user base.

If SELinux can mitigate the risks, then sure, let's use that. I don't really care what the technical solution is to this problem.

I'm just saying that:

a) As a user of an OS I want to be allowed full control over my device and not have babyproofed functionality because "it's for my own good". That is the realm of walled garden OSs from most major corporations which I deliberately avoid by using GOS in the first place.

b) My personal threat model doesn't involve using a bunch of untrusted applications, and I'm fine with trading some security for convenience. If the risks from choosing convenience can't be mitigated, then my OS should be flexible enough to allow me to make that choice. Other OSs can do this, so why can't GOS? I'm inclined to believe that there's no technical reason for it, but it's something that maintainers simply don't want to support. Which is fine, it's their project and their prerogative, but then let's not pretend that this is a discussion about security.

Batman8675309 3 days ago | parent | prev [-]

>You can't have a cake and eat it.

That is usually how it's done, yes.