我在Mac上有一個應用程序需要提升特權才能執行某些任務。爲了達到這個目的,我在我的應用程序包中攜帶了一個二進制可執行文件,並且每當需要提升時,我都會使用SMJobSubmit()
將此可執行文件提交到launchd。除了這個可執行文件之外,我還將一個帶有某些參數的plist文件提交給可執行文件,告訴它它需要做什麼。如何確保SMJobSubmit提交的二進制文件是真的?
我的問題是,我如何確保可執行的運行是我打算運行的那個。如果某人將可執行文件替換爲惡意文件,如果授予root權限可能會造成嚴重破壞,該怎麼辦? launchd或SMJobSubmit是否提供任何豁免權,還是必須在我的終端驗證簽名和校驗和?奇怪的是,我無法在網上找到關於這個問題的單個討論,也許我在這裏錯過了一些微不足道的東西。
blog給出了一個很好的使用SMJobSubmit的例子。我已經執行了相同的路線。
感謝。實際上,有人可以打開App包內容並替換我攜帶的二進制文件。所以爲了防止這種事情我想驗證簽名。作爲解決方案,我將helper二進制文件(由smjobsubmit提交)的簽名存儲在已編譯的應用程序二進制文件中,並在運行時驗證它。由於攻擊者無法訪問源代碼,因此它可以正常工作。 – sraok