https://www.ipa.go.jp/shiken/mondai-kaiotu/gmcbt80000009sgk-att/2022r04h_sc_pm1_qs.pdf
以下のおすすめ問題の解説となります。
良書。
[脆弱性A]
IPアドレス設定機能には、任意のコマンドを実行してしまう脆弱性がある。図2に示すように、利用者がIPアドレス設定画面でIPアドレス、サブネットマスク及びデフォルトゲートウェイのIPアドレスをそれぞれ入力してから確認ボタンをクリックし、IPアドレス設定確認画面で確定ボタンをクリックすると、setvalueに対して図3に示すリクエストが送信される。setvalueが図3中のパラメータを含むコマンド文字列シェルを渡すと、図4のIPアドレス設定を行うコマンドなどが実行される。
リクエストに対するsetvalueの処理には、(d)しまうという問題点があるので、setvalueに対して、図5に示す細工されたリクエストが送られると、製品Rは想定外のコマンドを実行してしまう。
[脆弱性B]
IPアドレス設定機能には、ログイン済みの利用者が攻撃者によって設置された罠サイトにアクセスし、利用者が意図せずに悪意のあるリクエストをWebアプリRに送信させられた場合に、WebアプリRがそのリクエストを受け付けて処理してしまう脆弱性がある。
[脆弱性の修正]
次は、二つの脆弱性の指摘を踏まえて修正を検討した時の、FさんとG主任の会話である。
Fさん:脆弱性Aですが、悪用されるリスクは低いです。というのは、利用者宅内にある製品Rは、インターネットからは直接アクセスできないと想定されるからです。攻撃するには、攻撃者は利用者宅の同一セグメントにつなぎ、不正なログインも成功させる必要があります。修正の優先度を下げてもよいのではないでしょうか。
G主任:確かに脆弱性Aだけを悪用されるリスクは低いでしょう。しかし、例えば、攻撃者が、WebアプリRにログイン済みの利用者を罠サイトに誘い、③図6の攻撃リクエストを送信させると、脆弱性Bが悪用され、その後、脆弱性Aが悪用されます。この結果、製品Rは攻撃者のファイルをダウンロードして実行してしまいます。このリスクは低くありません。
Fさん:分かりました。脆弱性Aと脆弱性Bの両方を修正します。
Fさんは、脆弱性Aへの対策として、利用者からリクエストのパラメータとして受け取ったIPアドレス情報を、コマンドを用いず安全にIPアドレスを設定できるライブラリ関数を利用する方法で設定することにした。次に、脆弱性Bについては、利用者からのリクエストのパラメータに、セッションにひも付けられ、かつ、(e)という特徴をもつトークンを付与し、WebアプリRはそのトークンを検証するように修正した。
FさんとG主任は、そのほかに必要なテストも行って、WebアプリRを含むファームウェアの開発を完了した。
(D)シェルが実行するコマンドであり、そのパラメータを不正に指定できる
(1)攻撃リクエストをPOSTメソッドで送信させる
(2)スクリプトを含むページを表示させる仕組み
脆弱性B
(2)推測困難である
脆弱性A及び脆弱性Bが該当するCWEを、それぞれ解答群の中から選び、記号で答えよ。
任意のコマンドを実行するのはOSヘッダーインジェクション
リクエスト経由で実行させるのは、クロスサイトリクエストフォージェリ