Java jar は、JDK jarsigner ツールで署名できます。これは、policytool と組み合わせて、実行時にのみ jar に特権を追加できるように見えます。デフォルトの「実行へのアクセスを取り消す」を希望します。特定の一連の証明書によって署名されたjarファイルのみが実行を許可されるように、Javaにホワイトリストを作成させることは可能ですか?
3 に答える
私が理解しているように、これはあなたが制御できるコンピューター上にあります。使用する
java -Djava.security.manager YourApplication
アプリケーションを起動するとき。これにより、ポリシー ファイルで設定できるデフォルトのセキュリティ マネージャがインストールされます。ポリシー ファイルを使用すると、署名者ごとまたはコード ベースごとにパーミッションを構成できます。
grant signedBy "me" {
permission java.io.FilePermission "/home/me/*", "read,write";
};
考えられるさまざまなパーミッションの中で、現在「実行する」パーミッションは見当たりませんが、ネットワークとファイルシステム アクセスの両方を完全に無効にできるようです。
意思決定者 (起動するか起動しないか) である独自の外部アプリケーションを実行する可能性がある場合は、既に説明したように、コードから署名を検証できます。
また、ここに記載されているように、-verify スイッチを使用して jarsigner の周りにラッパーを作成できます。
jarsigner -verify -keystore mystore hackerApplication.jar
bashのようなラッパーを使用して、出力の「smk」をキャプチャします。
7u10以降のOracleJREのJavaPlugInおよびWebStartの場合、Javaコントロールパネルに関連するカスタムセキュリティ設定があります。[安全なJREバージョンでの信頼できないアプリに対するアクション]で、[実行しない]を選択します。Javaクライアントのセキュリティレベルの設定を参照してください。