1

我在 Mac 上有一个应用程序,它需要提升权限才能执行某些任务。为此,我在我的 App 包中携带了一个二进制可执行文件,每当需要提升时,我都会使用SMJobSubmit(). 除了这个可执行文件,我还向可执行文件提交了一个带有某些参数的 plist 文件,以告诉它它需要做什么。

我担心的是如何确保可执行文件运行是我打算运行的文件。如果有人用恶意的可执行文件替换了可执行文件,如果授予 root 权限可能会造成严重破坏怎么办?launchd 或 SMJobSubmit 是否提供任何豁免权,还是我必须在我的最后验证签名和校验和?奇怪的是,我在网上找不到关于这个问题的讨论,也许我在这里遗漏了一些微不足道的东西。

这个博客给出了一个很好的使用 SMJobSubmit 的例子。我已经在相同的线路上实施了。

4

1 回答 1

0

从您提供的链接中的信息来看,SMJobSubmit所做的只是安装一个临时launchd守护程序,该守护程序依赖于用户来验证安装是否合法。我不确定你如何设想你的可执行文件被替换,但如果你想防止被篡改,你可以生成文件的校验和,并将其与预先针对真正的二进制文件生成的嵌入式校验和进行比较。

然后再次,如果攻击者可以访问您的整个源,他们可以替换源代码校验和和二进制校验和以匹配,或者完全跳过检查......

于 2013-03-10T19:14:14.953 回答