7 ms·
Fun with macOS's Sip
- cobbal 4y agoThere are few miseries I deal with regularly that compare to SIP or the hardened runtime telling me I may not debug processes on a computer where I have root. If anything is going to make me abandon macOS (I've been using it since I was a child) it's the "security and privacy" features.
- aviramha 4y agoI totally feel you though I can understand that for Apple the average consumer's security > hackers :) I think Apple should remember that people debugging and working is important too, and make the documentation around the security features less obscure. (Attaching a debugger/ptrace on macOS is really evil to implement)
- sbuk 4y agoThe security and privacy features benefit the majority, of which you clearly are not, so there is an escape hatch for you; turn off SIP. Just don't disable it for typical users.
- justsomeadvice0 4y agoYea, I'm really not sure how this is a "misery". System processes are protected for typical users to limit the blast radius of malware, among other reasons. If you are capable of debugging system processes you should be able to manage to: Restart macOS, holding ⌘+R. Open Terminal. Type `csrutil disable`. Restart macOS again.
- derbOac 4y agoFor some things though that's just Step 1 of many. Still doable but too much of a pain.
- aviramha 4y agoWhy not enable easier override for specific scenarios? Turning off completely feels like a bad outcome
- chongli 4y agoThat’s like telling me to remove the front door of my house rather than letting me have a key to unlock it.
- tempodox 4y agoTrue, but giving us a key might jeopardize future revenue streams where we have to pay for the privilege of developing software on Apple platforms. You already get a degraded developer experience for iOS if you don't bribe Apple with a Developer Program subscription.
- rogual 4y agoNot just iOS. Notarizing apps for macOS requires payment too.
- scarface74 4y agoHN has been predicting a future that you could only install apps through the Mac App Store since it was introduced in 2011. Any day now…
- Gigachad 4y agoWe will see alt app stores on the iphone before we see macOS match those predictions.
- jabedude 4y agoWhat would be a suitable key in your analogy?
- solarkraft 4y agoSuper-root? But as far as I'm aware the reasoning is that if there's a way to access something from a normal user account (with admin privileges) it can be abused somehow. Maybe a "key" would be the ability to boot/log in to a special mode with SIP enabled. Disabling/enabling it approximates this, but as far as I know an update will generally destroy your changes because Apple will just overwrite everything.
- howinteresting 4y agoThen iOS apps stop working, right? The DRM regime requires SIP to be enabled. Stallman was right about "treacherous computing".
- sbuk 4y agoThis has nothing to do with iOS.
- howinteresting 4y agomacOS now has support for iOS apps, but only if SIP is enabled and their DRM/"trusted" computing regime is active. https://forums.macrumors.com/threads/if-you-disable-sip-all-you-ios-apps-will-stop-working-on-your-m1.2269661 https://forums.macrumors.com/threads/if-you-disable-sip-all-...
- vaughan 4y agoTurning off SIP means you can’t run iOS apps on macOS. This sucks.
- madeofpalk 4y agoYou can just disable SIP, no?
- Gigachad 4y agoYes, the "locked down dictatorship macos" is surprisingly permissive. Impressively you can even dual boot linux on Apple Silicon completely unrestricted without having to turn on off the boot chain security features of macOS.
- lloeki 4y agoUnder "Security and Privacy" there's been "Developer Tools" for a while, within which I only ever saw Terminal.app (but any app could be added) I'm not sure what it really does (could not find any docs, maybe someone can enlighten?) but the text made me think it could allow stuff like running unsigned debuggers: Allow the applications below to run software locally that does not meet the system's security policies Again I'm really not sure, but maybe it can cover some use cases without going the nuclear route of fully disabling SIP?
- memco 4y agoI Would be interested to know more about it too. I have been interested in running a piece of software that needs SIP partially disabled, but I’d I could just grant it exemption I would prefer that to a blanket removal. Funny thing is all computers used to run without SIP, but since they added it I’m now hesitant to turn it off even though I’m not any worse off than I used to be.
- macshome 4y agoIt relaxes the signing requirements and malware signature checks for binaries run in the Terminal. This way you can build and test stuff without needing to relax the security posture of the entire Mac.
- scarface74 4y agoYes because it’s not like bad things can happen when SIP is turned off. Not always malicious, it’s often ineptness https://appleinsider.com/articles/19/09/25/google-chrome-update-corrupting-some-macos-installs----but-theres-a-fix https://appleinsider.com/articles/19/09/25/google-chrome-upd...
- antihero 4y agoThis is interesting. I’m guessing just having a patched shell binary and forking stuff from within that wouldn’t work.
- aviramha 4y agoYou could patch a shell binary, but you'd ultimately want to use other binaries as well. The most common example we had is when people tried to run our software with `pyenv` which was a shell script that used other system binaries + shell scripts
- WirelessGigabit 4y agoWhile the explanation is super cool it makes me feel nervous. None of this did supported. APIs change without notice, as you don't have a contract. You're relying on the fact that there is an x64 version available.
- aviramha 4y agoMost odds is when x64 binary will stop shipping, arm64e won't be in preview mode anymore and we will be able to just do the re-signing part. (Which is supported)
- ghostpepper 4y agoIt's pretty much expected that if you publish a method for working around a security feature it will be patched quickly. Cool research if that was the intention but if you're building a product around this... you're going to have a bad time.
- eyalbukchin 4y agoThis is detailed in the post, but the security feature i.e. preventing injected libraries access to entitlements isn't actually bypassed here. Rather the binary is run without these entitlements (which aren't required anyway for mirrord's use case).
- pseufaux 4y ago> Killed! And it was so young. This got far more of a chuckle from me than it should have. Must have had a long day or far to little sleep.
- pedrow 4y agoWould it be an option to compile your own versions of `ls` et al., maybe from the Darwin source (if available, I don't know) or one of the BSDs? Does what you're trying to do depend on the specific implementation of Apple's utilities?
- eyalbukchin 4y agoMaybe, we haven't looked into that option for the following reasons: a. It would require that we maintain a potentially pretty big list of self-compiled binaries b. It would be an alteration of what the user's running, which we try to keep to a minimum, as mirrord's commonly used as a testing tool
- david2ndaccount 4y agoThis is a strange product they’re selling. You run your binary on on macOS but presumably your server is running linux. Why are you trying to run Darwin executables as if they were in the cloud when that is not what will actually be deployed? Shouldn’t the testing at least be done from a linux machine?
- eyalbukchin 4y agoIdeally! And it can be run on a Linux machine if the user prefers. But if you code on a Mac, mirrord still lets you go through a good number of test iterations (by letting your process run with network input/output, file content and environment variables from the cloud) before having to deploy your code to a Linux machine for that (hopefully) final round of testing.
- jbverschoor 4y agoI have no clue what this mirrord does. Is it some kind of API proxy? What if I don't have 'pods', also, shouldn't it be called redirect_api? mirror sounds like it's mirrorring. Why would I need this? or whatever this does?
- aviramha 4y agomirrord is a tool for backend engineers that enables them to work on a remote environment without needing to deploy there or actually run there. It makes the iteration time (code -> test -> [review] -> deploy) faster since you don't replace the remote service also, which means many devs can work the same time. You can read more about it here https://metalbear.co/blog/mirrord-3.0-is-out/ https://metalbear.co/blog/mirrord-3.0-is-out/