MacOs没有开启沙盒化的应用有哪些权限是系统不可控的?
比如该应用是否可以没经过我的同意访问我的所有文件?如系统相册app和短信app
目前已了解的是非沙盒化应用访问下载,文稿,桌面,iCloud云盘这几个文件夹需要获得我的授权。
我想知道的是在appstore以外下载的应用并且没有开启沙盒化选项,他们能读取我的什么文件,除上述说的强制访问权限控制
Mac mini (M2, 2023)
比如该应用是否可以没经过我的同意访问我的所有文件?如系统相册app和短信app
目前已了解的是非沙盒化应用访问下载,文稿,桌面,iCloud云盘这几个文件夹需要获得我的授权。
我想知道的是在appstore以外下载的应用并且没有开启沙盒化选项,他们能读取我的什么文件,除上述说的强制访问权限控制
Mac mini (M2, 2023)
下面是我了解到和理解的,有不对之处请大家指正
这个大概牵扯到三个方面的概念 沙盒、授权和隐私。为了说清楚,下面有点啰嗦,请耐心看完,可以有助于理解。
大概是2017年开始吧,苹果计划和实施,引入(资源)授权(Entitlements)这个概念,也就是说,对于一个开发者来说,app在设计之初就该确定好,这个app需要或者可能会访问哪些需要被授权的(系统和用户)资源,并在程序开发的时候,就在app的配置属性中勾选这些需要授权的资源。
同时,操作系统内置的安全机制中的隐私(传统被成为TCC,也就是Transparency, Consent and Control)控制功能,与app授权设置一起工作,明示地询问用户的许可,才会准许app访问某个(被系统认为)涉及隐私的资源,达到保护用户隐私的目的。
这样,当app开始运行的时候,系统会根据app中勾选的授权设置,当app需要访问这些需授权设备的时候(旧的macOS系统的行为是,第一次运行的时候一次性询问用户是否准许),系统提示用户是否准许它访问,比如微信需要打开摄像头,或者浏览器需要打开麦克风,或者终端需要全盘访问权限等。无论是准许还是不准许的操作,都会记录在当前用户的隐私和安全系统设置(System Settings或System Preferences中的Privacy & Security)中,这样既保存了用户的选择,而即便是更新等,也不用每次都询问用户,也方便以后的变更,比如取消授权等。
这就有了一个问题,有好多的旧的软件,在当初开发的时候,没有所谓的授权和隐私这些概念,也就无从说起在app开发之初就打开这些设置。好像是XCode 10.13及之前的版本开发的不支持授权和隐私,从10.14才开始的。对于这种情况,操作系统可以有两种策略,一种是准许这种app继续运行,不经过用户准许就默认准许访问所有的资源,也就是说就跟没有授权和隐私这么回事一样;另一种策略就是默认就是禁止。至于macOS来说,目前来说,好像是前者的策略,这一点需要测试和跟Apple的开发人员确认,但以后肯定会转化为后者。
当然还有另外一种情况,这个隐私的分类是随着macOS的升级而慢慢细化的,在旧版中无需授权的资源,在新版中增加了需求,那么对于支持旧版的,或者使用旧版XCode开放的app来说,它只会打开某些授权,那么在新系统中,在访问没有明确询问授权的资源时,系统同样也有前面所说的类似的两种策略。我记得,对于这种app,需要升级,按照新规处理,否则,系统默认会禁止访问。所以,看到有些人抱怨在新系统中微信无法录屏等问题。
至于沙盒(sandbox),可以说它是一种将一个app及其数据隔离于其它的一种机制。沙盒出现早于授权和隐私,沙盒与授权和隐私两者并没有必然的关联。也就是旧版的沙盒app,也可能不支持授权和隐私。
不过,在app store中的app,肯定是沙盒化的,而且在多年前,Apple就要求app的开发者完成认证、授权和隐私等等好多的新安全措施的更新。所以,题主所说的沙盒化的应用都需要授权的说法,应该指的是app store下载的应用。
下面是我了解到和理解的,有不对之处请大家指正
这个大概牵扯到三个方面的概念 沙盒、授权和隐私。为了说清楚,下面有点啰嗦,请耐心看完,可以有助于理解。
大概是2017年开始吧,苹果计划和实施,引入(资源)授权(Entitlements)这个概念,也就是说,对于一个开发者来说,app在设计之初就该确定好,这个app需要或者可能会访问哪些需要被授权的(系统和用户)资源,并在程序开发的时候,就在app的配置属性中勾选这些需要授权的资源。
同时,操作系统内置的安全机制中的隐私(传统被成为TCC,也就是Transparency, Consent and Control)控制功能,与app授权设置一起工作,明示地询问用户的许可,才会准许app访问某个(被系统认为)涉及隐私的资源,达到保护用户隐私的目的。
这样,当app开始运行的时候,系统会根据app中勾选的授权设置,当app需要访问这些需授权设备的时候(旧的macOS系统的行为是,第一次运行的时候一次性询问用户是否准许),系统提示用户是否准许它访问,比如微信需要打开摄像头,或者浏览器需要打开麦克风,或者终端需要全盘访问权限等。无论是准许还是不准许的操作,都会记录在当前用户的隐私和安全系统设置(System Settings或System Preferences中的Privacy & Security)中,这样既保存了用户的选择,而即便是更新等,也不用每次都询问用户,也方便以后的变更,比如取消授权等。
这就有了一个问题,有好多的旧的软件,在当初开发的时候,没有所谓的授权和隐私这些概念,也就无从说起在app开发之初就打开这些设置。好像是XCode 10.13及之前的版本开发的不支持授权和隐私,从10.14才开始的。对于这种情况,操作系统可以有两种策略,一种是准许这种app继续运行,不经过用户准许就默认准许访问所有的资源,也就是说就跟没有授权和隐私这么回事一样;另一种策略就是默认就是禁止。至于macOS来说,目前来说,好像是前者的策略,这一点需要测试和跟Apple的开发人员确认,但以后肯定会转化为后者。
当然还有另外一种情况,这个隐私的分类是随着macOS的升级而慢慢细化的,在旧版中无需授权的资源,在新版中增加了需求,那么对于支持旧版的,或者使用旧版XCode开放的app来说,它只会打开某些授权,那么在新系统中,在访问没有明确询问授权的资源时,系统同样也有前面所说的类似的两种策略。我记得,对于这种app,需要升级,按照新规处理,否则,系统默认会禁止访问。所以,看到有些人抱怨在新系统中微信无法录屏等问题。
至于沙盒(sandbox),可以说它是一种将一个app及其数据隔离于其它的一种机制。沙盒出现早于授权和隐私,沙盒与授权和隐私两者并没有必然的关联。也就是旧版的沙盒app,也可能不支持授权和隐私。
不过,在app store中的app,肯定是沙盒化的,而且在多年前,Apple就要求app的开发者完成认证、授权和隐私等等好多的新安全措施的更新。所以,题主所说的沙盒化的应用都需要授权的说法,应该指的是app store下载的应用。
感谢您的回复!
我其实想知道的是在appstore以外下载的应用并且该应用没有开启沙盒功能,那么设置里面的权限如相册等,是否对它有效。
还有一个问题就是没开启沙盒功能的应用有什么权限是不需要系统提示授权,就可以进行访问。
如果有一个没开启沙盒化的恶意软件在我没给任何权限的情况下,它能做的最坏的事情是什么,能读取mac的什么内容?
再次感谢您的回复!
问题1:在新系统中,依然有效
问题2:不涉及系统和app定义的用户敏感信息。比如可能调用其它app等等
问题3:既然是都“恶意软件”了,它可能通过各种方式,比如骗取用户信任,或者系统漏洞等方式获取或者绕过授权。
最坏的事情?获取你的个人信息,从而假冒你坑蒙拐骗,或者威胁恐吓你,毁坏你的信用,骗贷款等等;获取你的设备的控制权。还想咋样,谁有过具体事例“现身说法”下吧
感谢您帮我解答问题,谢谢!
MacOs没有开启沙盒化的应用有哪些权限是系统不可控的?