Saagar Jha
(replying to Jeff Johnson)
2 replies
Jeff Johnson
(replying to Saagar Jha)
@saagar Could you be less vague? You said it was a reminder, but I’m not reminded of anything, and if I’m not, then I’m not sure who would be.
AssertionError("Joe Groff")
(replying to Jeff Johnson)
@lapcatsoftware @saagar not sure exactly what saagar is thinking of, but there are various entitlements which grant an executable root-like abilities as a normal user, and without sip, not much is there to stop a malicious process from granting entitlements to other executables under its control
Saagar Jha
(replying to AssertionError("Joe Groff"))
Jeff Johnson
(replying to Saagar Jha)
@saagar @joe I’m confused. Are you referring to the High Sierra “I am root” bug, which you admit that SIP did not protect against? If so, then why would you mention that in this context? It’s a red herring and feels obscurantist.
So far, neither you nor Joe have given a single specific example, which again, is a reminder of absolutely nothing.
1 replies
AssertionError("Joe Groff")
(replying to Jeff Johnson)
@lapcatsoftware @saagar i didn't have an exploit per se in mind, but one thing i was recently playing with in a side project was creating virtual network interfaces with vmnet.framework. creating an interface typically requires root, but if apple grants your executable the `com.apple.vm.networking` entitlement, then that executable can do so as a regular user, or even in the sandbox. but the mechanisms that ensure #OnlyApple can grant that entitlement rely on SIP, AIUI
AssertionError("Joe Groff")
(replying to AssertionError("Joe Groff"))
@lapcatsoftware @saagar i suppose that isn't so different from setuid binaries though
Saagar Jha
(replying to AssertionError("Joe Groff"))
Jeff Johnson
(replying to Jeff Johnson)
@saagar @joe I respect your technical knowledge, but explaining it to other people is a different matter.
I’ve spent a lot of time and effort over the years trying to explain things to people, for example on my blog.
You seem to assume that people know what you’re talking about, but frankly, they usually don’t.
Saagar Jha
(replying to Jeff Johnson)
Saagar Jha
(replying to Saagar Jha)
1 replies
Jeff Johnson
(replying to Saagar Jha)
@saagar @joe I got an AppleScript error, NSXPCConnectionInterrupted, perhaps because it’s running the script as Setup Assistant.
But I’m presuming that the vulnerability is the ability to create a new admin user with known password, and the specific exploit is inessential?
1 replies
Saagar Jha
(replying to Jeff Johnson)
Jeff Johnson
(replying to Saagar Jha)
@saagar @joe Bypassing TCC is never too difficult. ;-)
In any case, I still struggle to see how the situation with SIP disabled is worse than the situation with SIP nonexistent. Perhaps you’re overestimating past security?
Saagar Jha
(replying to Jeff Johnson)
Jeff Johnson
(replying to Saagar Jha)
@saagar @joe What I meant was, how was Setup Assistant NOT vulnerable in Mac OS X 10.10 and earlier? Which goes back to my original question, there was a defense before SIP?
Jeff Johnson
(replying to Jeff Johnson)
@saagar @joe I have an old Mac with Snow Leopard, and I can DYLD_ inject Setup Assistant.
The app quits on its own after launch for whatever reason, perhaps because it was designed to run only once.
Saagar Jha
(replying to Jeff Johnson)
Saagar Jha
(replying to Saagar Jha)
Jeff Johnson
(replying to Saagar Jha)
@saagar @joe Library validation was introduced in 10.10. That’s the point, though: it’s independent of SIP.
The question is whether disabling SIP is worse than not having SIP, and I’m not sure that it is. You seem to blame SIP for the introduction of a root escalation, whereas I wonder whether it was preexisting.
Saagar Jha
(replying to Jeff Johnson)
Jeff Johnson
(replying to Saagar Jha)
@saagar @joe "we assume Apple will get around to it someday"
I don't assume that. ;-)
In any case, it's merely hypothetical speculation. There's no real-world argument that disabling SIP is worse than pre-SIP without real-world examples of post-SIP bugs.
Also, Apple can be publicly pressured. Disabling SIP is supposed to be an outlet for "You can always choose to run any software on your system," which becomes a lie if Apple sabotages that.
Saagar Jha
(replying to Saagar Jha)
ran mak
(replying to Saagar Jha)
@saagar @lapcatsoftware none of this makes any sense. if it's trivial, what's the way? i'll report it as a bug.
if you can't tell me what it is, is it a zero day? are reminding us that there are 0-day vulnerabilities at any given time?
only macos uses SIP, so you're saying everyone else is insecure or macos is insecure by design ?
Saagar Jha
(replying to ran mak)
1 replies
ran mak
(replying to Saagar Jha)
@saagar I don't know, I think this entitlement thing falls firmly outside of "trivial" anything. Can I still inspect the entitlements of the software in this scenario ? I don't think people who are disabling SIP are running cracked executables or not using other precautions. I personally use Mother's Ruin's Suspicious Package & Archaeology and I regularly audit anything that is persistent with Lingon Pro and Launch Control.
I need to have SIP off because I use dtrace frequently. If you have an odd problem occuring right now in the currently running environment, and it is an intermittent issue, then you can't really restart and temporarily disable SIP.
I think what people who say SIP should always be on are saying "I don't think you have any reason to be running dtrace". I think that is a bold assertion and that's why I replied. I think in the context of your followers, we would be more prone to using dtrace than the general population.
Finally, I understand what you mean when you say "There are always a handful [of these trivial workarounds] at any given time". I believe there may be workarounds at any given time, but I doubt they are trivial. But the other important point about this is that you recognize that these issues are indeed being fixed, and that the revolving door of bugs surrounding this always keeps a few unresolved issues. I think these reports may be deprioritized, but not discarded completely.
Saagar Jha
(replying to ran mak)
Saagar Jha
(replying to Saagar Jha)
Saagar Jha
(replying to Saagar Jha)
ran mak
(replying to Saagar Jha)
@saagar yeah, this is good stuff and i didn’t know about this. i haven’t examined the exploit too closely, but i get what it is doing. i would have expect that flippancy internally, but to get that as a response to a legitimate security concern means that i should probably think hard about what you’ve advised.
i think, unfortunately, this is a reality vs. ideal situation. this is not the security model we want: the tools for evaluation (dtrace) are blocked philosophically and logically by SIP. but, when you disable SIP, you’re not thinking about typical ACLs, you need to go to `dyld`, because for apple-signed (or those with the entitlement) executables it behaves differently.
there are a lot of red flags there.
but also, you have done the rare thing of convincing someone on the internet that they need to reconsider their views.