[Java, Security] 7u45 Caller-Allowable-Codebase and Trusted-Library

原文はこちら。
https://blogs.oracle.com/java-platform-group/entry/7u45_caller_allowable_codebase_and

Java 7 update 45(2013年10月)では、JavaScriptとJava Applet間のLiveConnectを使ったやりとりが変わりました。7u45はCPU(Critical Patch Update)で、これはセキュリティベースラインが上がることを意味しており、ユーザーに対しアップグレードを強く推奨するものです。
Updated Security Baseline (7u45) impacts Java 7u40 and before with High Security settings
https://blogs.oracle.com/java-platform-group/entry/updated_security_baseline_7u45_impacts
http://orablogs-jp.blogspot.jp/2013/10/updated-security-baseline-7u45-impacts.html
セキュリティベースライン以下のバージョンでは、Trusted-LibraryというManifest属性を適用することで、サンドボックス内のコードとより高い権限が必要なコード間で呼び出します。
Trusted-Library Attribute
http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/mixed_code.html#trusted_library
Trusted-Libraryの値はBooleanで、trueもしくはfalseです。今回のセキュリティベースライン(7u45)でのセキュリティ変更で、異なるCaller-Allowable-Codebaseが導入されました。この属性は、こうしたLiveConnect呼び出しが発信できる場所を正確に指示するものです。例えば、LiveConnect呼び出しは、Webページの3rdパーティ製コンポーネントやその他のDOMベースのブラウザ操作から必ずしも発信すべきものではありません。
Buy An Ad, Own a Browser Botnet (threatpost.com)
https://threatpost.com/buy-an-ad-own-a-browser-botnet
Hacking Browser's DOM Exploiting Ajax and RIA (Shreeraj Shah)
http://www.cio.wisc.edu/Shreeraj_Shah_DOM_Hacking.pdf
Caller-Allowable-Codebase属性の詳細は、以下のリンクからどうぞ。
Caller-Allowable-Codebase Attribute
http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/manifest.html#caller_allowable
エンドユーザーのダイアログに対する回避策は、JDK7u45のリリースノートに記載されています。ここではLiveConnect呼び出しのためのTrusted-Library属性を取り除き、Caller-Allowable-Codebaseを使うよう説明しています。
Java™ SE Development Kit 7, Update 45 (JDK 7u45)
Update Release Notes
http://www.oracle.com/technetwork/java/javase/7u45-relnotes-2016950.html
すべてのセキュリティベースライン以上のユーザーにとって必要な防御を、この方法で提供します。警告は発生しません。クライアントモジュールは自動的にアップデートを検知し、セキュアベースラインへのアップデートを検知し、ユーザーにアップグレードを促すメッセージを表示します。

警告ダイアログの出現

これらの属性はどちらも協調して様々なバージョンをサポートするように動作することになっています。Manifestを修正して、Caller-Allowable-Codebaseを使うようにすると、セキュリティベースラインを下回るユーザーに対し警告を発するのですが、既知の問題として、Caller-Allowable-Codebaseを使わず、セキュリティベースラインを上回る人にも警告を表示するという問題があります。
Manifest 属性
7u45
7u40以下
Caller-Allowable-Codebaseのみ指定 ダイアログは出ない プロンプトを表示
Trusted-Libraryのみ指定 プロンプトを表示 ダイアログは出ない
両方指定 プロンプトを表示(*) ダイアログは出ない
両属性が共存できるよう、これは将来のリリースで修正される予定。
現時点での回避策は、古いTrusted-Library呼び出しではなく、Caller-Allowable-Codebaseを使うことです。

セキュリティベースラインを下回った状態が必要なユーザーのために

"What to do if your applet is blocked or warns of “mixed code”のエントリの一つ目のオプションで説明したように、管理対象のコンピュータ全体へのソフトウェアの展開を計画しているシステム管理者は、デプロイメントルールセットの適用を考慮してもよいでしょう。
What to do if your applet is blocked or warns of mixed code
https://blogs.oracle.com/java-platform-group/entry/what_to_do_if_your
システム管理者はCritucal Patch Upgradeのメール通知にサインアップすることもできます。
Subscribe to Critical Patch Update Alert E-mails
http://www.oracle.com/technetwork/topics/security/securityemail-090378.html

0 件のコメント:

コメントを投稿