News for hackers. Stuff that matters.
Re:Your Phone Is Your Castle by saagarjha on Sunday September 13, 2020 @06:54PM (#24464621)
Yes, this is exactly how Apple's security model operates; at least for their embedded devices. On Macs it seems like you at least get the choice between "I trust Apple" and "I don't check anything", which is still annoying because clearly the option people want is "I trust me" but Apple is not willing to provide this.
Re:Your Phone Is Your Castle by judge2020 on Sunday September 13, 2020 @07:09PM (#24464704)
Apple still requires notarization and thus checks for viruses for non-app store apps.
Re:Your Phone Is Your Castle by heavyset_go on Sunday September 13, 2020 @07:40PM (#24464889)
The notarization process also filters out apps that give users greater control of their hardware, because they might touch things like private APIs. When the user goes to run the software they chose to download, macOS will treat it as if it's radioactive, giving the user the impression that the application either doesn't work or is malicious.

The end result is that users are left being unable to use their computers in ways that Apple doesn't like.

Re:Your Phone Is Your Castle by scarface74 on Sunday September 13, 2020 @09:43PM (#24465859)
The notarization process does not scan for the use of private APIs. That only happens if you submit an app to App Store.
Re:Your Phone Is Your Castle by heavyset_go on Sunday September 13, 2020 @10:24PM (#24466128)
From the macOS Mojave for Users, Administrators, and Developers book:

> The Notary service will also perform some additional checks on the application. These include security checks that verify the application is doing what it indicates as well as the check for private API usage, similar to Mac App Store apps.

[1] https://www.waynedixon.com/2019/05/16/new-notarization-requi...

Re:Your Phone Is Your Castle by saagarjha on Monday September 14, 2020 @01:13AM (#24466981)
Notarization does not stop you from using private APIs. Source: have notarized multiple applications that link against them.
Re:Your Phone Is Your Castle by scarface74 on Sunday September 13, 2020 @10:45PM (#24466240)
From the documentation.

https://developer.apple.com/documentation/xcode/notarizing_m...

> For example, if a plug-in employs deep integration with the host executable via C function pointer overrides, or uses a JavaScript engine for custom workflows, the host executable must declare the Allow Unsigned Executable Memory Entitlement or Allow Execution of JIT-compiled Code Entitlement, respectively. In some cases, a plug-in fails to even load if the host executable lacks the proper entitlement.

This is the best documentation I could find with a quick Google search. But basically, if you can use C function pointers, you can call anything you want and there is no way that an automated scan can detect it with the right level of indirection.

I also couldn’t find anything from the official documentation about not being able to code sign anything that uses private APIs.

But even simpler for apps that don’t actually get manually reviewed, it’s really easy to bypass.

https://medium.com/swlh/calling-ios-and-macos-hidden-api-in-...

Even if they did do something like scan for text strings in PerformSelector, that’s also easy to obfuscate.

Re:Your Phone Is Your Castle by Wowfunhappy on Sunday September 13, 2020 @07:53PM (#24464973)
Right, so that is OP's point. Either you trust Apple to do notorization, or you disable signature checks by turning off Gatekeeper.

(Or you let specific apps through Gatekeeper, or you go even further and turn off SIP... there are a lot of in-between states, but they fall somewhere on the spectrum between "trust Apple" and "don't verify trust". There's no "trust Mozilla" option.)