戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

情報処理安全確保支援士 2009年 秋期 午後1 問02


Javaアプレットに関する次の記述を読んで、設問1~4に答えよ。

   B社は、従業員数100名の電子部品の卸業者で、メーカから商品を仕入れ、小売業者へ販売している。 B社では、2年前にリリースされたC社のソフトウェアパッケージに独自機能をもつモジュール(以下、カスタムモジュールという)を追加した在庫管理システム(以下、Xシステムという)を3か月前に導入した。その運用と保守はC社に委託している。   〔Xシステムの概要〕  Xシステムは、ソフトウェアパッケージの本体モジュールとカスタムモジュールから構成され、それらはJavaを用いて実現されている。 Xシステムの利用の操作は、普段B社従業員らがインターネットの閲覧にも用いる社内標準仕様のブラウザを用いて、クライアントPC上で行っている。  B社では、在庫管理のために、以前から携帯型のバーコード読取り端末を利用していた。読取り端末で読み取ったデータのファイルを、B社従業員がクライアントPC上でXシステム用に編集している。 Xシステムでは、そのファイルを用いて在庫管理情報を更新している。   〔Xシステムのカスタムモジュール〕  カスタムモジュールのうち、ファイルが決められた書式であることとサイズが規定値以下であることの適合性チェック(以下、入力チェックという) 機能、入力チェック結果を利用者に通知する機能と、適合したファイルをアップロードする機能はJavaアプレット(以下、入力チェックアプレットという)で実現されており、クライアントPC上のブラウザで実行される。また、サーバマシン上では、Xシステムとして、本体モジュールに加え、クライアントPC上の入力チェックアプレットからのファイル受信と本体モジュールへのファイル引渡しを行うモジュール(以下、ファイル受信モジュールという) があり、JavaアプレットではないJavaアプリケーションで実現されている。したがって、Xシステム全体は、入力チェックアプレット、本体モジュールとファイル受信モジュールで構成されている。 図1にXシステムの構成を示す。
情報処理安全確保支援士試験(平成21年 午後1 問2 図1) ↩設問4(1)
 図2は、入力チェックアプレットのJavaのクラスのソースコードである。 Xシステムでは、入力チェックアプレットとして構成するクラス群をa形式で一つにまとめ、bによって署名したa形式ファイルをサーバマシン上の特定のディレクトリに置き、ブラウザにダウンロードさせる。ここで、bは、有限体上の離散対数問題に基づく署名方式である。
 入力チェックアプレットが、クライアントPC上のブラウザ上で実行されると、図2中の下線 (ア)の文の処理によってボタンが作成される。 利用者がそのボタンを押すと、クライアントPCのローカルファイルを選択するダイアログボックスが図3のように表示される。次に、利用者がファイルを選択すると入力チェックが行われ、適合している場合、その旨が利用者に通知され、ファイル受信モジュールを通してアップロードされ、サーバマシン上にファイルとして保存される。 適合していない場合、その旨が通知され、読み込んだデータは破棄されアップロードされない。
情報処理安全確保支援士試験(平成21年 午後1 問2 図3)
〔サンドボックスの概要とその脆弱性の公表〕  Xシステムの導入後、Xシステムの実行環境として想定するバージョンのJREにおいて、サンドボックスを回避する脆弱性 (以下、当該脆弱性という)が公表され、修正されたJREの新バージョンがリリースされた。 JREのサンドボックスと当該脆弱性の概要は次のとおりである。  Java 2以降のJREでは、サンドボックス機構におけるd又はSecurityManagerを用いて、任意のセキュリティポリシを適用できる。JREに用意されたデフォルトのポリシファイルを用いると、JavaアプレットではないJavaアプリケーションを実行する場合と、署名されたJavaアプレットを実行する場合、ローカルのコンピュータリソースにアクセスが可能である。 他方、署名がないJavaアプレットを実行する場合、そのアクセスは制限される。 例えば、クライアントPCのブラウザ上で、入力チェックアプレットのようなローカルファイルへアクセスするJavaアプレットを、署名なしJavaアプレットとして実行した場合、dクラスによって、eがスローされる。 ところが、当該脆弱性を悪用すると、署名なしJavaアプレットであっても、この制限を回避して、ローカルのコンピュータリソースにアクセスできてしまう。   〔Xシステムでの対処〕  B社は、当該脆弱性への対策に関してC社と検討を行った。 まず、①Xシステムのサーバ側とクライアント側のJREのバージョンアップに伴う確認作業の負荷を考慮した結果、現段階では、バージョンアップに伴う作業工数の確保は難しいと判断した。しかし、②XシステムのクライアントPCのJREをバージョンアップしない場合、クライアントPC上のブラウザで当該脆弱性が悪用される可能性がある。 そこで、③Javaアプレットを利用しない代替方式を検討したが、予定する期間内に実現することは難しいと判断した。 よって、B社は、④当該脆弱性への暫定処置として、サーバ側のJREはバージョンアップせず、JREの利用がJavaアプレットに限定されているクライアント側のJREだけバージョンアップすることとした。 サーバ側のJREのバージョンアップは、次回のシステム更新時に行うこととし、Xシステムを再稼働した。

設問1:

問題文を見る
本文中のa、b、d、eに入れる適切な字句を解答群の中から選び、記号で答えよ。 解答群  ア:AccessController  イ:DH  ウ:DSA  エ:jar  オ:java.io.IOException  カ:java.security.AccessControlException  キ:policytool  ク:RSA  ケ:xml

模範解答

a:エ b:ウ d:ア e:カ

解説

解答の論理構成

  1. a に入る語
    • 原文: 「クラス群をa形式で一つにまとめ」
    • Javaでは複数クラスを単一ファイルにパッケージするときに用いるのは「jar形式」(Java ARchive) です。
    • 解答: エ「jar」
  2. b に入る語
    • 原文: 「有限体上の離散対数問題に基づく署名方式」
    • 離散対数問題を利用する代表的な電子署名方式は「DSA (Digital Signature Algorithm)」です。
    • 解答群の中で該当するのはウ「DSA」。
    • 解答: ウ「DSA」
  3. d に入る語
    • 原文: 「Java 2以降のJREでは、サンドボックス機構におけるd又はSecurityManagerを用いて」
    • JavaセキュリティアーキテクチャでSecurityManagerと対になるクラスはAccessControllerであり、ポリシによるアクセス制御を司ります。
    • 解答群のアは「Access Controller」で一致します。
    • 解答: ア「Access Controller」
  4. e に入る語
    • 原文: 「署名なしJavaアプレットとして実行した場合、dクラスによって、eがスローされる」
    • AccessControllerがアクセスを拒否するときに投げる例外はjava.security.AccessControlExceptionです。
    • 解答群で該当するのはカ「java.security.AccessControlException」。
    • 解答: カ「java.security.AccessControlException」

誤りやすいポイント

  • 「有限体上の離散対数問題」というキーワードから「DH」を選んでしまう
    (Diffie-Hellmanは鍵共有であり署名方式ではありません)。
  • policytool(キ) はセキュリティポリシファイルを編集するGUIですが、 サンドボックスを「適用」する主体ではない点に注意。
  • 例外名をjava.io.IOExceptionと誤解するケース
    (I/O例外ではなく、セキュリティ違反を示すjava.security.AccessControlExceptionが正解)。
  • WAR形式やZIP形式と混同してjarを外すミス。
    WARはWebアプリケーション用、ZIPは汎用圧縮であり文脈が異なります。

FAQ

Q: JARファイルとZIPファイルはどう違うのですか?
A: 両者は技術的には同じ圧縮フォーマットを用いますが、JARにはMETA-INF/ ディレクトリにマニフェストや署名情報を格納できる点と、Java実行時にクラスパスとして扱える点が加わります。
Q: 署名付きアプレットならローカルファイルへのアクセスは完全に許可されますか?
A: デフォルトポリシでは許可されますが、企業環境ではpolicyファイルを強化して追加制限を掛ける運用も一般的です。
Q: AccessControllerとSecurityManagerの役割分担は?
A: SecurityManagerが「チェック」を呼び出すフロントエンド、AccessControllerが「権限委譲・ドメイン判定」を実施するバックエンドという位置付けです。両者が協調してサンドボックスを実現します。

関連キーワード: JAR, DSA, AccessController, サンドボックス、Javaアプレット

解説を読んでも分からないところは、AIに質問できます。 この問題の本文と解説をふまえて答えます。

この設問をAIに質問する

クイズモードで開きます(AIへの質問は無料の会員登録で使えます)

設問2:XシステムのJavaアプレットについて、(1)、(2)に答えよ。

問題文を見る
(1)図2中のcに入れる適切な字句を解答群の中から選び、記号で答えよ。 解答群  ア:file <=  イ:file >=  ウ:size <=  エ:size >=

模範解答

c:ウ

解説

解答の論理構成

  1. 【問題文】には
    「ファイルが決められた書式であることとサイズが規定値以下であることの適合性チェック」
    と明記されています。
    ➔ “規定値以下” なので条件式は「サイズ ≤ 上限値」になる必要があります。
  2. 図2のコードでは
    private static final long MAX_FILE_SIZE = 1000000; //読み込むことを許すファイルの最大サイズ
    と上限値を定義し、直後に
    long size = file.length();
    で実際のファイルサイズを取得しています。
  3. if文は「読み込みを許可するファイルだけ後続処理へ進む」ための判定です。
    したがって (size <= MAX_FILE_SIZE) が正しく、解答群では
    ウ:size <= が該当します。
  4. もしfile <= を選ぶとfileはjava.io.File型なので比較演算子が使えずコンパイルエラー、 size >= を選ぶと “上限を超えたものだけ読み込む” という逆の意味になり仕様に反します。

誤りやすいポイント

  • 変数名を見落としfileと比較してしまう。fileはオブジェクトで数値比較できません。
  • “規定値以下” を “未満” と早合点し演算子を逆にする。
  • MAX_FILE_SIZEのコメントを読まず、ファイルサイズが「最小値」だと勘違いする。

FAQ

Q: size < MAX_FILE_SIZEでも良いのでは?
A: 仕様は「サイズが規定値以下」。等号を含まないと上限ぴったりのファイルを弾いてしまいます。
Q: 比較対象にfile.length() を直接書く方が簡潔では?
A: 可読性と例外処理の容易さのため、一度sizeに格納してから判定する実装は一般的です。
Q: MAX_FILE_SIZEをintにしても問題ない?
A: 1,000,000バイト程度ならintでも表現できますが、大容量対応や可搬性を考慮しlongが推奨です。

関連キーワード: Javaアプレット、ファイルサイズ、バリデーション、if文、例外処理

解説を読んでも分からないところは、AIに質問できます。 この問題の本文と解説をふまえて答えます。

この設問をAIに質問する

クイズモードで開きます(AIへの質問は無料の会員登録で使えます)

設問2:XシステムのJavaアプレットについて、(1)、(2)に答えよ。

問題文を見る
(2)当該脆弱性のないJREを用いたXシステムにおいて、仮に署名がない入力チェックアプレットを実行する場合、図2中の下線 (ア)〜(ウ) の中で実行される文をすべて選び、記号で答えよ。 ここで、実行の際、JREに用意されたデフォルトのポリシファイルを用いていることとする。

模範解答

(ア)

解説

解答の論理構成

  1. デフォルトポリシでの権限
    【問題文】には
    「Java 2以降のJREでは、サンドボックス機構におけるd又はSecurityManagerを用いて、任意のセキュリティポリシを適用できる。…署名がないJavaアプレットを実行する場合、そのアクセスは制限される。」
    とあります。したがって署名なしアプレットはローカルファイルへの入出力が禁止です。
  2. アプレットがローカルファイルに触れた場合の挙動
    同じく
    「クライアントPCのブラウザ上で…署名なしJavaアプレットとして実行した場合、dクラスによって、eがスローされる。」
    とあり、ファイルアクセスの直前で例外が発生して処理が中断します。
  3. 図2で下線がある3文の権限要求
    (ア) JButton loader = new JButton("ファイル読込み");
    画面部品を生成するだけでローカル資源を要求しません。よって実行可能です。
    (イ) fileData = new byte[(int)size]; の前にFileInputStream in = new FileInputStream(filePath); があり、ここでローカルファイルを開くため権限が必要です。署名がないため前項の例外が発生し実行されません。
    (ウ) errNo = inputCheck(fileData); は (イ) が成功しないと到達しません。
  4. 以上より実際に動くのは (ア) だけです。
    解答: (ア)

誤りやすいポイント

  • 「byte配列を確保するだけだから (イ) も動く」と思い込みがちですが、実際には直前のFileInputStreamが権限制限に引っ掛かります。
  • 署名の有無とJREバージョンの話を混同し、脆弱性が無い環境なら全て動くと早合点しやすいです。
  • inputCheckはアプレット側ロジックなので安全と思って (ウ) を選びがちですが、呼び出し前に例外で処理が停止します。

FAQ

Q: 署名なしでもユーザが「実行を許可」すればファイルアクセスできますか?
A: デフォルトポリシのままでは許可できません。追加のポリシ設定か署名付きJARが必要です。
Q: (イ) の例外は具体的に何ですか?
A: 【問題文】の記述より e、すなわちAccessControlExceptionです。
Q: サンドボックスを回避する脆弱性が残っている場合は (イ) も通りますか?
A: はい、当該脆弱性を悪用されると署名なしでも制限を突破できるため実行できてしまいます。

関連キーワード: サンドボックス、署名なしアプレット、セキュリティポリシ、AccessControlException, ローカルファイルアクセス

解説を読んでも分からないところは、AIに質問できます。 この問題の本文と解説をふまえて答えます。

この設問をAIに質問する

クイズモードで開きます(AIへの質問は無料の会員登録で使えます)

設問3:当該脆弱性への対策について、(1)、(2)に答えよ。

問題文を見る
(1)クライアントPCのJREをバージョンアップしない場合、どのようなときに、本文中の下線②で示す可能性が高まるか。 B社のクライアントPCの利用状況を考慮し、45字以内で述べよ。

模範解答

XシステムのクライアントPC上のブラウザでインターネットのWebブラウジングを行うとき

解説

解答の論理構成

  • 【問題文】には「当該脆弱性を悪用すると、署名なしJavaアプレットであっても、この制限を回避して、ローカルのコンピュータリソースにアクセスできてしまう。」とあります。脆弱性を利用する主体は“署名なしJavaアプレット”であり、これは外部サイトから配布される可能性が高いです。
  • さらに「普段B社従業員らがインターネットの閲覧にも用いる社内標準仕様のプラウザを用いて、クライアントPC上で行っている。」とあるように、在庫管理と同じブラウザで一般のWebサイトも閲覧しています。
  • したがってクライアントPCのJREを更新しないまま外部サイトを閲覧すると、悪意のある“署名なしJavaアプレット”が読み込まれ、ローカル資源に不正アクセスされるおそれが顕在化します。
  • よって「XシステムのクライアントPC上のブラウザでインターネットのWebブラウジングを行うとき」が危険度の高まる場面となります。

誤りやすいポイント

  • 「Xシステム専用ブラウザなので安全」と思い込み、社員が同一ブラウザで外部サイトを閲覧している事実を見落とす。
  • 署名付きアプレットだけが危険と誤解し、【問題文】で指摘されている“署名なし”アプレットのサンドボックス回避を軽視する。
  • 脆弱性が「サーバ側JRE」のみ関係すると勘違いし、クライアント側で読み込むアプレット経由のリスクを評価しない。

FAQ

Q: 社内ポータルだけを閲覧する場合も危険ですか?
A: 社内ポータルが信頼できることを前提とすればリスクは低下します。しかし一度でも外部サイトに遷移する運用なら危険は残ります。
Q: 署名付きであれば脆弱性は関係ありませんか?
A: 署名付きアプレットはもともとローカルアクセスが許可されるため、今回の「署名なしアプレットが制限を回避する」という脆弱性とは直接の関係は小さいです。ただし別の脆弱性の有無までは保証できません。
Q: ブラウザのJavaプラグインを無効化する方法は有効ですか?
A: 有効ですが、それではXシステムの「入力チェックアプレット」が動作しなくなるため、B社では採用できませんでした。

関連キーワード: サンドボックス、Javaアプレット、JRE脆弱性、署名、ローカルリソース

解説を読んでも分からないところは、AIに質問できます。 この問題の本文と解説をふまえて答えます。

この設問をAIに質問する

クイズモードで開きます(AIへの質問は無料の会員登録で使えます)

設問3:当該脆弱性への対策について、(1)、(2)に答えよ。

問題文を見る
(2)本文中の下線③で示す代替方式として、HTMLフォームによってファイルを選択する機能と、アップロード後にサーバへファイルを保存する機能を追加したとする。 このとき、Xシステムのサーバ側で、更にどのような機能を追加すれば代替方式となるか。 追加すべき機能を二つ挙げ、それぞれ20字以内で述べよ。

模範解答

①・入力チェック機能 ②・チェック結果を利用者へ通知する機能  ・アップロードされたファイルを消去する機能

解説

解答の導き方

  1. まず本文から「何が既にできているか」「何が欠けているか」を整理します。問題文は「HTMLフォームによってファイルを選択する機能と、アップロード後にサーバへファイルを保存する機能を追加した」と記載しており、クライアント側でファイル選択とサーバへの保存は行える状態になっています。一方、もともとの構成では「入力チェック機能、入力チェック結果を利用者に通知する機能と、適合したファイルをアップロードする機能はJavaアプレットで実現されており」とあります。つまり、以前はアプレット側で(1)入力チェックと(2)結果通知を行ってからアップロードしていました。
  2. なぜサーバ側で追加すべきかを論理的に示します。アプレット実装の一例としてコード中に「private static final long MAX_FILE_SIZE = 1000000; //読み込むことを許すファイルの最大サイズ」とあり、アプレット側でサイズチェック等をしていたことが分かります。しかしHTMLフォーム+HTTPアップロードに置き換えた場合、クライアント側(ブラウザ)の検査は容易に改ざん・回避され得ます。したがって「クライアントが検査したから安全」という前提は成り立たず、サーバ側で同等の検査を必ず行う必要があります。
  3. 以上から、サーバ側で追加すべき機能は次の二つが最小限でありかつ必須です(設問の要件=二つ):
  • 入力チェック機能
    理由:問題文で定義される「ファイルが決められた書式であることとサイズが規定値以下であることの適合性チェック」をサーバ側で行い、改ざんされたリクエストや直接POSTによる不正なファイルを排除するためです。具体的にはファイル形式検証、サイズ検査(上記MAX_FILE_SIZE相当)をサーバで実施します。
  • チェック結果の通知と不適合時の破棄
    理由:もともとアプレットでは「適合している場合…利用者に通知され、ファイル受信モジュールを通してアップロードされ…サーバマシン上にファイルとして保存される。適合していない場合、その旨が通知され、読み込んだデータは破棄されアップロードされない」とあり、この振る舞いを代替方式でも再現する必要があります。サーバは検査結果を利用者に返し、不適合なら保存しない(あるいは一時保存後に確実に消去)して、不要なファイルを残さないようにします。
(解答となる短い表現)
  • 入力チェック機能
  • チェック結果の通知と不適合時の破棄

誤りやすいポイント

  • クライアント側のHTMLフォームだけで十分と考える誤り:HTTPリクエストは改ざん可能で、サーバ側検査が必須です。
  • 「通知」だけ実装してファイルを残す誤り:不適合ファイルを残すとサーバ内に悪意あるデータが蓄積されるリスクがあります。
  • サイズチェックをクライアント実装の値に依存する誤り:コードにあるMAX_FILE_SIZEは参考値にすぎず、サーバ側でも同等の制限を厳格に適用すべきです。
  • 検査範囲を狭く取る誤り:形式/サイズ以外にファイル名の正規化やパス走査対策、MIME確認等も考慮が必要です(設問の必須項目は形式とサイズですが、運用上の注意点として重要です)。

FAQ

Q: クライアント側でも入力チェックを残すべきですか?
A: はい、ユーザビリティ向上のためにクライアントチェックは有用ですが、必ずサーバ側でも同じ検査を行ってください。クライアントチェックは補助であり安全性の根拠になりません。
Q: 「チェック結果の通知」と「不適合時の破棄」は別の機能として数えるべきですか?
A: 設問は機能を二つ挙げる形式なので、利用者通知と不適合時の破棄を「結果処理」としてまとめて一機能扱いにして問題ありません。重要なのは両方の振る舞いがサーバ側で担保されることです。
Q: その他にサーバで取るべき防御はありますか?
A: 付随対策としてファイル名の正規化(パス・トラバーサル防止)、アップロード先の権限分離、ウイルススキャンや拡張子/MIMEの二重チェックなどを検討してください(設問の必須回答とは別の推奨事項です)。

関連キーワード: サーバ側バリデーション、入力検証、ファイルサイズ制限、不適合ファイルの破棄、結果通知

解説を読んでも分からないところは、AIに質問できます。 この問題の本文と解説をふまえて答えます。

この設問をAIに質問する

クイズモードで開きます(AIへの質問は無料の会員登録で使えます)

設問4:JREのバージョンアップについて、(1)、(2)に答えよ。

問題文を見る
(1)本文中の下線①にある、JREのバージョンアップに伴う確認作業とは何か。Xシステムでの作業対象を図1中の用語を用いて示し、確認作業の内容を55字以内で述べよ。

模範解答

新しいバージョンのJREで、本体モジュール、ファイル受信モジュールと入力チェックアプレットの動作確認

解説

解答の導き方

設問は「JREのバージョンアップに伴う確認作業」を、図1中の用語を用いて示すことを求めています。まず本文・図1から次が読み取れます。
・「Xシステムは、入力チェックアプレット、本体モジュールとファイル受信モジュールで構成されている。」とあることから、Xシステムの主要構成要素はこれら3つです。
・「クライアントPC上のブラウザで実行される」とあるため、入力チェックアプレットはクライアント側のJREで動作します。
・サーバ側のモジュールについては「Javaアプリケーションで実現されている」とあるため、本体モジュールとファイル受信モジュールはサーバ側のJREで動作します。
以上より、JREを新バージョンにした際に確認すべきは、JRE上で動作するXシステムの各構成要素が期待どおり動くかどうかです。したがって、確認作業の対象は図1の用語で「本体モジュール、ファイル受信モジュールと入力チェックアプレット」であり、内容はそれらの動作確認と表現します。
(要点を一文にまとめると)新しいバージョンのJREで、本体モジュール、ファイル受信モジュールと入力チェックアプレットの動作確認

誤りやすいポイント

  • 図1で示されたXシステムの構成要素(入力チェックアプレット/本体モジュール/ファイル受信モジュール)を抜かして書く。
  • 図1にない一般用語(例:データベース)や周辺要素だけを挙げ、Xシステムの構成要素を示さない。
  • ブラウザやJREといった環境名だけを書いて終わらせ、どのコンポーネントを確認するか明確にしない。
  • 字数制限を意識するあまり重要語(例:ファイル受信モジュール)を省略してしまう。

FAQ

Q: 図1の「ブラウザ」も確認対象に入れたほうがよいですか?
A: ブラウザは図1に示されていますが、設問はXシステムでの作業対象を図1の用語で示すことが求められています。Xシステムの主要構成要素は「入力チェックアプレット、本体モジュール、ファイル受信モジュール」なので、これらを答案に含めるのが適切です。ブラウザは間接的な影響要因として補助的に確認します。
Q: クライアント側のみJREを上げる場合は答えを変えるべきですか?
A: 設問は一般的な「確認作業」を問うているため、原則は両側のJREで動作するコンポーネントが対象です。ただし問題文で「クライアント側のみ」と明示されていれば、クライアント側で動く「入力チェックアプレット」の動作確認を強調して記述します。

関連キーワード: Javaアプレット、JRE、サンドボックス、署名、互換性検証

解説を読んでも分からないところは、AIに質問できます。 この問題の本文と解説をふまえて答えます。

この設問をAIに質問する

クイズモードで開きます(AIへの質問は無料の会員登録で使えます)

設問4:JREのバージョンアップについて、(1)、(2)に答えよ。

問題文を見る
(2)本文中の下線④に関して、Xシステムのサーバ側のJREをバージョンアップしなくても問題ないと判断するためには何を確認すべきか。 60字以内で述べよ。

模範解答

解答の要点を満たしていれば正解 (解答の要点:Xシステムのサーバで利用するJREでは、当該脆弱性を悪用したJavaのクラスを実行する可能性がないことについて、適切に記述していること)

解説

解答の論理構成

  • 【問題文】では「Xシステム全体は、入力チェックアプレット、本体モジュールとファイル受信モジュールで構成されている。」とあり、サーバ上で動くのは後者2つのJavaアプリケーションだけです。
  • 当該脆弱性は「署名なしJavaアプレットであっても、この制限を回避して、ローカルのコンピュータリソースにアクセスできてしまう。」というサンドボックス回避に関するものです。
  • サーバ側ではアプレット(ブラウザ経由で読み込まれるコード)を一切実行せず、運用上ロードするのは自社が配置した「本体モジュール」「ファイル受信モジュール」だけであるなら、脆弱性を悪用できるJavaクラスが入り込む余地がありません。
  • したがって「サーバ側のJREを更新しなくても問題ないか」を判断する鍵は、当該JREが外部から提供される未署名アプレット/クラスを実行する可能性が存在しないことを確認する点にあります。

誤りやすいポイント

  • 「アプレットではないから安全」と短絡し、将来追加されるplug-inや運用スクリプトが外部クラスを動的ロードし得ることを見落とす。
  • 脆弱性がサンドボックス機構に起因するため、サーバプロセスなら無関係と思い込み、管理系GUIなどでアプレットを使用していないかを確認しない。
  • クライアントだけ更新したので十分と判断し、サーバJREがWebコンソールなど別用途に共有されていないかを調査し忘れる。

FAQ

Q: サーバ側Javaアプリケーションでも、サンドボックスは関係ないのでは?
A: 通常のJavaアプリケーションはSecurityManagerを入れない限りフル権限で動くためサンドボックス依存はありません。ただし動的に未署名コードをロードする仕組みがあれば話は別なので、そこを確認する必要があります。
Q: 署名付きアプレットなら脆弱性は問題ないのですか?
A: デフォルトポリシでは署名付きアプレットはローカルリソースにアクセスできます。したがって当該脆弱性(署名なしでも回避可能になる)が悪用できなくても、本来からしてフル権限です。
Q: サーバJREを後日まとめて更新する計画は妥当?
A: 外部コードを一切実行しない運用と監査で担保できるなら、暫定対応としては現実的です。ただしOS/ミドルウェアとの互換性テストを含めた更新計画は早期に立てるべきです。

関連キーワード: サンドボックス、署名なしアプレット、SecurityManager, 動的クラスロード、権限管理

解説を読んでも分からないところは、AIに質問できます。 この問題の本文と解説をふまえて答えます。

この設問をAIに質問する

クイズモードで開きます(AIへの質問は無料の会員登録で使えます)

戦国ITクイズ機能

\ せっかくなら /

情報処理安全確保支援士を
クイズ形式で学習しませんか?

クイズ画面へ遷移する→

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について