2009-08-23 8 views
0

私はCocoaアプリケーションのresourcesフォルダに保存されているシェルスクリプトを持っています。不正に使用された場合は危険です(コマンドへの絶対パスを使用するなどの悪用を減らすための予防措置を講じていますが)ので、スクリプトをバイナリ形式で暗号化し、使用する必要があるときに解読する方法はありますか?ユーザーはそれを使用するために解読しますCocoaアプリケーションでリソースを暗号化しますか?

おかげ

+0

意味がありません。 「攻撃者」がスクリプトファイルを編集できる場合、アプリケーション実行可能コードも同様に簡単に編集できます。アプリケーションの実行可能コードをどのように保護しますか? – Jacob

答えて

3

スクリプトへの書き込みアクセス権を取得し、それを修正して任意のコードを実行する人が懸念されるようです。スクリプトのチェックサムをバイナリに保存し、実行する前にスクリプトのチェックサムと比較することができます。さて、バイナリの編集を人々にどうやって止めるのですか?コード署名。実際、もしあなたがアプリケーションバンドルにシェルスクリプトを残しておけば、スクリプトを編集すると、とにかくバンドルの署名が破られます。

+0

それは素晴らしいアイデアです。それ。私はコード署名をしようとします。 – indragie

+0

私はこのチュートリアルの後に試してみました:http://www.red-sweater.com/blog/514/development-phase-code-signingしかし、アプリケーションが変更されたときに警告を出さないようです – indragie

+0

マニュアルページを見てくださいcodesignとcsreqを使用すると、カスタム要件とオプションを設定できることがわかります。 'ハード'フラグを使用すると、その署名が壊れているとアプリは死にます。 –

0

番ならば、彼女はいくつかの点でクリアテキストを参照してください(とインターセプト)することができます。あなたは "シェルのような"ことがあると思うなら、C/ObjCでそれらをしてください... Thisあなたの友人になることができます。

0

あなたが求めているのは、本質的にDRMです。別の目的(著作権侵害を阻止するのではなく "セキュリティ")。しかし、同じ問題を抱えて同じアプローチ。

ユーザーが(音楽|ビデオ|スクリプト)を正常に使用できるようにするには、ユーザーはそれを復号化できる必要があります。あなたはあなたの(プレイヤー|アプリ)の適切な条件の下でのみこれを行うでしょうが、それは問題ではありません:どのようにうまく隠れていても、解読に必要なすべての技術とキーをユーザーに提供する必要があります(音楽|ビデオ|スクリプト)ので、あなたの(プレイヤー|アプリ)がそれを行うことができます。

そして、ユーザーはそれを解読するのに必要なすべての技術とキーを持っているので、攻撃者はそれらすべてを解読し、自分自身で(音楽|ビデオ|スクリプト)を解読できます。

マッサは、シェルスクリプトから切り離すことを提案しています。これにより、リスクを完全に排除することはできません。攻撃者がシェルスクリプトへのアクセス権を得ることができれば、Mach-O実行可能ファイルへのアクセス権を簡単に得ることができます。しかし、Mach-O実行可能ファイルを編集することはそれほど簡単ではないので、あなたは少なくともそのようにバーを上げています。

+0

PCWizは、このシェルスクリプトを読んで、awkの脆弱なバージョンのためにawkを変更するなどの攻撃のベクトルを考えていると思います。誰かが自分のプログラムにインターネットからのコードを実行させることができます" – Massa

+0

ええ、マッサは正しいです。より安全にするために、私はコマンドへの絶対パスを使用しました(PATH変数を悪用して不要なコードを実行することはできません)が、攻撃者がスクリプトへの書き込みアクセス権を取得した場合、 私はMassaのリンクでコンパイラを試してみるつもりです。私が持っていたもう一つのアイデアは、ObjCアプリケーションの中にNSStringとしてスクリプトを格納し、スクリプトを一時的な場所に書き出して実行し、プロセスが終了したときに削除することでした。これは効果がありますか? おかげで – indragie

+0

ccshコンパイラで問題があるようです、私はそれをオンラインで実行しようとすると、私はこれを取得: 要求されたURLの/pcgi-bin/ccsh.cgiは、このサーバー上に見つかりませんでした。 – indragie

2

これはあまり意味がありません。攻撃者がこのスクリプトファイルを編集するアクセス権を持っている場合、任意の数のファイルを編集できるアクセス権を持つ可能性があります。攻撃者が行う可能性のある他のセキュリティリスクよりもセキュリティリスクが低い可能性があります。

関連する問題