情報処理安全確保支援士試験 令和4年度 秋期 午後1 問1
【出典:情報処理安全確保支援士試験 令和4年度 秋期 午後1 問1(一部、加工あり)】
[脆弱性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を含むファームウェアの開発を完了した。
下線③について、罠サイトではどのような仕組みを使って利用者に脆弱性Bを悪用する攻撃リクエストを送信させることができるか。仕組みを50字以内で具体的に答えよ。:攻撃リクエストをPOSTメソッドで送信させるスクリプトを含むページを表示させる仕組み
「しかし、例えば、攻撃者が、WebアプリRにログイン済みの利用者を罠サイトに誘い、③図6の攻撃リクエストを送信させると、脆弱性Bが悪用され、その後、脆弱性Aが悪用されます。」
図6(攻撃リクエスト)では、製品Rにログインしている利用者自身が製品RにPOSTメソッドによって攻撃者のファイルをダウンロードするよう指示する、いわゆるスクリプトを示しています。
罠サイトでこのスクリプトを配置したページを表示することで、利用者がクリックなどの操作によって攻撃リクエストを送信させることができるでしょう。
(e)に入れる、トークンがもつべき特徴を15字以内で答えよ。:推測困難である
「次に、脆弱性Bについては、利用者からのリクエストのパラメータに、セッションにひも付けられ、かつ、(e)という特徴をもつトークンを付与し、WebアプリRはそのトークンを検証するように修正した。」
脆弱性Bは、「IPアドレス設定機能には、ログイン済みの利用者が攻撃者によって設置された罠サイトにアクセスし、利用者が意図せずに悪意のあるリクエストをWebアプリRに送信させられた場合に、WebアプリRがそのリクエストを受け付けて処理してしまう脆弱性がある。」というものでした。
利用者が意図しないリクエストを送信し、WebアプリRがそれを受け付けて処理してしまうことが問題です。
WebアプリRが、リクエストが正規なものかどうかを判断できれば良さそうです。
その方法として、利用者のログイン時のセッションとひも付けされるトークンを利用する方法があります。
ログイン時にWebサイトRが発行する利用者専用のトークンを、リクエスト時に付与することで、正規なリクエストかどうかを判断できます。
そのトークン自体の特徴として必要なことは、第三者に推測困難であることです。
脆弱性A及び脆弱性Bが該当するCWEを、それぞれ解答群の中から選び、記号で答えよ。:(脆弱性A)ア、(脆弱性B)オ
ア:CWE-78 OSコマンドインジェクション
イ:CWE-79 クロスサイトスクリプティング
ウ:CWE-89 SQLインジェクション
エ:CWE-94 コードインジェクション
オ:CWE-352 クロスサイトリクエストフォージェリ
カ:CWE-918 サーバサイドリクエストフォージェリ
CWE(Common Weakness Enumeration)とは、ソフトウェアやハードウェアの脆弱性を分類、識別してリスト化したもので、米国の非営利団体MITREが発行しており、世界中の公的機関や企業が脆弱性分類の共通基準として採用しています。
脆弱性Aは、「IPアドレス設定機能には、任意のコマンドを実行してしまう脆弱性がある。」とあるように、OSコマンドを実行(注入)される攻撃であり、OSコマンドインジェクションに分類されます。
脆弱性Bは、「IPアドレス設定機能には、ログイン済みの利用者が攻撃者によって設置された罠サイトにアクセスし、利用者が意図せずに悪意のあるリクエストをWebアプリRに送信させられた場合に、WebアプリRがそのリクエストを受け付けて処理してしまう脆弱性がある。」とあるように、攻撃者のサイトを経由(クロスサイト)して、偽造されたリクエストを送信(フォージェリ)する攻撃であり、クロスサイトリクエストフォージェリ(CSRF)に分類されます。