SAシステムアーキテクト試験 午前Ⅱ

平成30年度秋期 システムアーキテクト 午前Ⅱ 問25

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

Webアプリケーションにおけるセキュリティ上の脅威とその対策に関する記述のうち,適切なものはどれか。

選択肢

  1. ア
    OSコマンドインジェクションを防ぐために,Webアプリケーションが発行するセッションIDに推測困難な乱数を使用する。
  2. イ
    SQL インジェクションを防ぐために,Web アプリケーション内でデータベースへの問合せを作成する際にプレースホルダを使用する。
  3. ウ
    クロスサイトスクリプティングを防ぐために,Web サーバ内のファイルを外部から直接参照できないようにする。
  4. エ
    セッションハイジャックを防ぐために,Web アプリケーションからシェルを起動できないようにする。
解き方のヒントを見る

攻撃の作用点と対策の作用点を揃える

Webアプリケーションへの攻撃と対策の対応を考えるときは、攻撃がどこで悪影響を生じさせるのかという作用点を先に把握し、対策がその同じ箇所に働きかけるものかどうかを照らし合わせる観点に絞って検討すると整理しやすくなります。

この問題で問われていること

問われているのは、個々の攻撃手法が悪用する仕組みと、それを防ぐための対策の働きとが噛み合っているかという対応関係です。名前の印象や一般的なセキュリティ対策という漠然とした理解ではなく、防御が効く位置を確かめることが鍵になります。

視点

攻撃と対策の対応関係は、用語同士を暗記で結び付けるよりも「攻撃者が送り込んだものや仕掛けた操作が、どの処理・どの相手のところで本来と違う振る舞いを引き起こすのか」という作用点を軸に考えると整理しやすくなります。対策にもそれぞれ効果を発揮する位置があり、作用点と対策の位置が一致していれば対応していると判断できます。逆に、セキュリティ対策として一般に有効なものでも、作用点から外れた位置で働くものは、その攻撃への直接の対策にはなりません。

確認ポイント

  • その攻撃で、攻撃者の入力や操作が最終的に悪影響を及ぼす場所(どの処理・どの相手か)を自分の言葉で説明できるか
  • 検討している対策が効果を発揮する位置が、その作用点と同じ場所に向いているかを確かめたか
  • 別の攻撃には有効な対策を、作用点の異なる攻撃に当てはめてしまう取り違えをしていないか
正解と解説を見る

正解

イ

解説

Webアプリケーションの脅威対策では、対策の内容が防ごうとしている攻撃の経路や対象に対応しているかを確認する。データベース問合せの組立て方と、認証情報やOS機能などへの対策を混同しないことが重要です。

理由

SQLインジェクションは、入力値などがデータベース問合せの構文として解釈されることを利用する攻撃です。そのため、問合せ作成時に値とSQL構文を分離するプレースホルダの使用は、脅威の成立条件に直接対応する。

比較

他の記述は、示された脅威と対策の対象が一致していない。セッションIDの推測困難化、外部ファイル参照の制限、シェル起動の制限は、それぞれ別の脅威や攻撃経路に関係する対策であり、記述された脅威への直接的な対策とはいえない。

選択肢ア

これは不正解だよ。推測困難な乱数を使ったセッションIDは、攻撃者によるセッションIDの推測や不正利用を困難にするための対策である。OSコマンドインジェクションはOSへ渡すコマンドや引数への不正な入力が問題であり、セッションIDの生成方法とは対策対象が異なる。

選択肢イ(正解)

これは正解だよ。プレースホルダを使用すると、データベース問合せの構文と、利用者から受け取った値を分離して扱える。入力値がSQL文の一部として解釈されることを防ぎやすくなるため、SQLインジェクション対策として脅威と対策の対応が適切である。

選択肢ウ

これは不正解だよ。Webサーバ内のファイルを外部から直接参照できないようにすることは、ファイルの不正な取得や参照を抑える対策である。クロスサイトスクリプティングは、Webページに不正なスクリプトが実行される形で混入する問題であり、ファイル参照制限とは対策の対象が異なる。

選択肢エ

これは不正解だよ。Webアプリケーションからシェルを起動できないようにすることは、OSコマンドインジェクションなど、OSのコマンド実行に関わる攻撃を抑える方向の対策である。セッションハイジャックはセッション情報の不正利用が問題なので、シェル起動制限とは対応する脅威が異なる。

学習のポイント

脅威の種類と、対策が作用する対象を正しく対応付ける。

出典:独立行政法人 情報処理推進機構(IPA)平成30年度秋期 システムアーキテクト試験 午前Ⅱ 問25(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針