1

特定のタスクを実行するために昇格された特権を必要とする Mac 上のアプリケーションがあります。これを達成するために、私は App バンドル内にバイナリ実行可能ファイルを運び、昇格が必要なときはいつでも、この実行可能ファイルを launchd を使用して送信しSMJobSubmit()ます。この実行可能ファイルに加えて、特定の引数を含む plist ファイルを実行可能ファイルに送信して、実行する必要があることを伝えます。

私の懸念は、実行可能ファイルが実行しようとしているものであることを確認するにはどうすればよいかということです。誰かが実行可能ファイルを悪意のあるものに置き換え、ルート権限が付与された場合に大混乱を引き起こす可能性がある場合はどうなりますか? launchd または SMJobSubmit は免責を提供しますか? それとも、最後に署名とチェックサムを検証する必要がありますか? 不思議なことに、この問題に関する議論をオンラインで 1 つも見つけることができませんでした。

このブログでは、SMJobSubmit の使用例を紹介しています。私は同じ行に実装しました。

4

1 に答える 1

0

あなたが提供したリンクの情報から判断すると、インストールを正当なものとして認証するためにユーザーに依存SMJobSubmitする一時的なデーモンをインストールするだけです。launchd実行可能ファイルがどのように置き換えられるかはわかりませんが、改ざんから保護したい場合は、ファイルのチェックサムを生成し、それを真のバイナリ ファイルに対して生成された埋め込みチェックサムと比較することができます。

次に、攻撃者がソース全体にアクセスできる場合、ソースコードのチェックサムとバイナリのチェックサムを置き換えて一致させるか、チェックを完全にスキップできます...

于 2013-03-10T19:14:14.953 に答える