基本情報技術者試験「安全でないデシリアライゼーション」の問題
あるWebアプリは、利用者のブラウザに保存させた状態データを、サーバ受信時にそのままオブジェクトへ復元(デシリアライズ)して処理に用いている。攻撃者が復元処理を悪用し、改ざんしたデータでサーバ上の意図しない処理や任意コードの実行を狙う脆弱性が指摘された。根本対策として、最も適切なものはどれか。
ウそのまま復元せず、改ざんの有無の確認と、想定する型・内容への適合の検証を経てから扱う。
ア復元したオブジェクトを画面に出すときの文字サイズを大きくし、内容を確認しやすくするようにする。
イ状態データの保管場所をブラウザからサーバ側のログファイルへ移し、長期間にわたり残すようにする。
エ復元処理に要する時間を計測し、規定値より遅い場合はその処理を途中で打ち切るようにする。
正解
ウ.そのまま復元せず、改ざんの有無の確認と、想定する型・内容への適合の検証を経てから扱う。
脆弱性の原因は、利用者側という信頼できない場所から受け取ったデータを無検証でオブジェクトへ復元している点にある。改ざんされていないこと(署名やMACの検証)を確かめ、復元結果が想定する型・内容に適合することを検証してから扱う、あるいはそもそも信頼境界外のデータをそのまま復元せず安全な形式で受け渡すことで、改ざんデータによる不正処理や任意コード実行を防げる。
?選択肢ごとの解説
ウ ○脆弱性の原因は、利用者側という信頼できない場所から受け取ったデータを無検証でオブジェクトへ復元している点にある。改ざんされていないこと(署名やMACの検証)を確かめ、復元結果が想定する型・内容に適合することを検証してから扱う、あるいはそもそも信頼境界外のデータをそのまま復元せず安全な形式で受け渡すことで、改ざんデータによる不正処理や任意コード実行を防げる。
ア ×表示文字サイズの変更は見やすさの調整に過ぎず、改ざんデータが復元・実行される動作とは無関係である。
イ ×保存先をログへ変えても、受信データを無検証で復元する処理が残る限り脆弱性は解消せず、むしろログ肥大などの別問題を招く。
エ ×復元時間の計測とタイムアウトは性能・可用性の制御であり、改ざんされたデータの内容が悪用される問題を防げない。
✎くわしく
安全でないデシリアライゼーションは『信頼できないデータを、内部表現へ無検証で復元する』ことが本質である。対策の基本は信頼境界の意識で、外部由来データには完全性検証を施す、復元対象の型を限定する、可能なら復元自体を避けてデータのみをやり取りする設計とすることである。
✓本番での押さえどころ
試験のコツ
『利用者側のデータを無検証でオブジェクト復元』は安全でないデシリアライゼーション。対策は改ざん検知・型検証、または信頼境界外データをそのまま復元しない。
覚え方
外から来た包みを『中身を確かめず開けて実行』は危険。署名で封を確認し、型を縛ってから開ける。
よくある誤り
表示や保存、性能といった周辺の対策を選びがちだが、論点は『信頼できないデータをそのまま復元している』構造であり、完全性検証や復元の回避が要である。
情報セキュリティの他の問題
A社の経理担当者が、取引先を装ったメールに添付された請求書ファイルを業務PCで開いたところ、見慣れない画面が一瞬表示されて消…B社のWebサービスで、複数の利用者アカウントに対し正しいIDとパスワードの組合せによるログインが短時間に外部から成立する事…C社では、退職予定者や異動者のアカウント権限の見直しが滞り、業務上不要になった共有フォルダへのアクセス権が残り続けている。情…D社のファイルサーバがランサムウェアに感染し、業務ファイルが暗号化された。D社は日次でバックアップを取得しているが、バックア…E社の従業員に、取引先銀行を名乗る『口座情報の更新が必要』というメールが届いた。本文中のリンク先URLにアクセスすると、銀行…F社は社外の従業員が、カフェなどの公衆無線LANを利用して社内システムへアクセスしている。通信内容が経路上で第三者に盗聴・改…
この問題を、AIの8-ways解説つきで。
無料ではじめる →基本情報技術者試験の演習を、一問ごとに「なぜ」まで。まずは無料で。
ukamiru 過去問 · 基本情報技術者試験 · fe-b-sec-0103