SC情報処理安全確保支援士試験 午後Ⅰ

令和5年度春期 情報処理安全確保支援士 午後Ⅰ 問1

事例を読んで設問の答えを考えてから、解説のポイントとIPA公式の解答例・採点講評で確認しましょう。

問題

Javaで実装されたWebアプリケーションプログラムに対して,ツールによるソースコードの静的解析やセキュリティ観点からのシステムテストの実施はセキュリティの不備を発見するのに有効である。 本問では,Webアプリケーションプログラム開発を題材として,静的解析やシステムテストで発見されたセキュリティ上の不具合への対処を踏まえたセキュアプログラミングに関する能力を問う。
解き方のヒントを見る

SQLのつなぎ書きとstatic共有の落とし穴

注文番号をSQL文にそのまま文字列連結するのは、入力された文字をそのまま鍵穴に突っ込むようなものだよ。悪意のある文字列が混ざるとSQLインジェクションにつながるので、`WHERE head.order_no = ?` のようにプレースホルダを使って、外部入力の `orderNo` は安全に束縛しよう。また、得意先コードを `static` で持つと、みんなで同じメモ帳を使っている状態になり、同時アクセス時に別の利用者の値が混ざる危険があるよ。利用者ごとに分けて管理できるよう、セッション単位で保持する設計に直す必要があるんだ。

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

この問題では、静的解析で見つかるSQLの危ない書き方と、システムテストで見えてくる同時アクセス時の値の混線や権限の取り違えを、別々の話ではなく一つのセキュアプログラミング上の問題として読めるかがポイントだよ。

From Static Analysis Findings to Safe Web Implementation

secure remediation of a Java web app requires parameterized SQL、 removal of unsafe external-input concatenation、 and fixing race conditions caused by static shared state

replace string-built SQL with placeholders\nbind external input through PreparedStatement\navoid static shared user data\nkeep customer-specific values in session scope

確認ポイント

  • SQL 文字列連結を排除する。
  • `static` 共有状態の競合を見逃さない。
  • 利用者単位データはセッションへ閉じ込める。
正解と解説を見る

解説

公式過去問です。問題冊子と解答例を参照して確認してください。

公式問題冊子

問題冊子: https://www.ipa.go.jp/shiken/mondai-kaiotu/ps6vr70000010d6y-att/2023r05h_sc_pm1_qs.pdf

公式解答例

解答例: https://www.ipa.go.jp/shiken/mondai-kaiotu/ps6vr70000010d6y-att/2023r05h_sc_pm1_ans.pdf

採点講評

採点講評: https://www.ipa.go.jp/shiken/mondai-kaiotu/ps6vr70000010d6y-att/2023r05h_sc_pm1_cmnt.pdf

学習のポイント

公式問題冊子、解答例、採点講評を併読して要点を整理してください。

出典:独立行政法人 情報処理推進機構(IPA)令和5年度春期 情報処理安全確保支援士試験 午後Ⅰ 問1(公式資料:問題冊子(PDF) / 解答例 / 採点講評)

関連する過去問一覧

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