情報処理安全確保支援士 令和4年度 春季試験 午後Ⅰ 問2を解説していきます。
出題テーマ:IoT機器のインシデント対応と脆弱性対策
出題テーマは『セキュリティインシデント対応と脆弱性対策』でした。
インシデント対応や脆弱性の対策を行うにおいて、攻撃手法などの幅広い知識が必要となる問題でした。
知識が必要と言っても、問われていましたのは攻撃手法の単語と簡単な内容までとなりますので、深い知識が必要というわけではありません。
一方で、記述式の問題に関しては文章中のヒントから解答することができる国語の問題だったかと思います。
設問1 (1)
この問題はDNSに関する知識が必要となってきます。
まずは【a】から考えていきます。
【a】の部分として、『Z社のDNSサーバの設定でホスト名nas-aに割り当てているIPアドレスを変更するために、【a】レコードを更新する。』とあります。
IPアドレスに関連するDNSのレコードと言えば、『a:ア』のAレコードとなります。
次に【b】について考えていきます。
【b】の部分として、『そのレコードの【b】は、300秒に設定されていた。』
DNSサーバは同じ問い合わせを何回も受けたくはありませんので、Aレコードと一緒にこの時間だけ保持(キャッシュ)しておいてと時間を伝えます。
この時間のことをTTL(Time to Live)といいますので、『b:エ』となります。
せっかくなので他の選択肢も見ていきましょう。
イ:MX
DNSレコードの1つで、メールサーバのホスト名を示すのに用いるMXレコードとなります。
ウ:TLS
SSL/TLSのように暗号化のことです。
オ:TTY
UNIXのコマンドにTTYというものがあります。
カ:TXT
DNSレコードの1つで、任意のデータを入れることができるTXTレコードです。
個人的には、実通信で用いられるよりも検証などでDNSクエリ、レスポンスのサイズを増やす際に用いることが多いと思います。
設問1 (2)
まずUPnP機能がどのようなものかというと、表1の注釈に『Universal Plug and Playの略称。認証なしでリクエストを受け付ける仕様のプロトコルである。』とあります。
次にルータにおけるUPnP機能として、『LAN側の機器から受け付けたリクエストの内容で、ポートフォワーディングの設定とファイアウォール機能の設定を行う。』
つまり、LAN側からであれば、認証なしで設定変更が可能ということになります。
下線部①として、『WAN側は、本機能を有効にできない仕様になっている。』とあります。
WAN側でUPnPを有効にできてしまうと、WAN側からでも設定変更が可能ということになりますので、当然の仕様と言えます。
特に変えられるとまずい設定としては、現状のファイアウォール設定で、『インバウンド:全て拒否』となっています。
インバウンドとはWAN側からLAN側方向の通信で、この設定を『インバウンド:全て許可』と変更されると、WAN側からの通信を全てLANに通してしまうことになります。
つまりはどうぞ攻撃してくださいという状態になります。
ということで解答例としては、『インバウンド通信を全て許可に変更されてしまうこと(24文字)』と解答することができます。
設問1 (3)
下線部②として、『A社のPCがランサムウェアに感染したのではなく、NSA-A自体がランサムウェアに感染したことによってNAS-Aのファイルが暗号化された可能性が高い』とあります。
重要な部分として、『ファイル共有機能でもWeb操作機能でもアクセスできない/rootディレクトリ配下のファイルも暗号化されていた。』とあります。
A社のPCがランサムウェアに感染して、感染したファイルをNAS-Aに共有したのであれば、PCがアクセスできない/rootディレクトリ配下のファイルは暗号化されていないはずです。
ですが、今回はPCがアクセスできない/rootディレクトリ配下のファイルが暗号化されていましたので、PCが感染していたというよりもNAS-A自体が感染していたと考えることができます。
よって解答例としては、『PCがアクセスできない/rootディレクトリ配下のファイルが暗号化されていたため(40文字)』となります。
設問2 (1)
この問題は知識が必要となる問題です。
【c】の部分として、『認証なしアクセスの処理に脆弱性があり、除外リストに指定されていないディレクトリ配下のファイルにも認証なしでアクセスできてしまう。これはURLに”..%2f”を使用した【c】と呼ばれる攻撃手法である。』とあります。
このような攻撃を『パストラバーサル(7文字)』と呼びます。
作成者が意図していない入力方法や脆弱性などを利用して、普通ならアクセスできないファイルなどにアクセスする攻撃手法です。
この攻撃を受けると、重要な情報などにアクセスされ、情報漏洩につながってしまう可能性があります。
設問2 (2)
この問題も知識が必要となる問題です。
【d】の部分として、『製品Xには、Web管理機能の一つとして、IPアドレスを指定してpingを実行する機能がある。このIPアドレスの処理に脆弱性があり、任意のOSコマンドを実行できてしまう。(略)これは、【d】と呼ばれる攻撃手法である。』とあります。
このような攻撃を『OSコマンドインジェクション(14文字)』と呼びます。
Webサイト上などで、OSコマンドを含む不正な入力を行い、Webサイト(サーバ)のOS上でコマンドを実行させる攻撃手法です。
コマンドを実行することができれば、ファイルの削除・改ざんなど様々なことが行えてしまいます。
設問2 (3)
重要な部分として、『パッチMでは、脆弱性1の対策として、認証なしアクセスの処理の流れにパス名の正規化の処理を加え、さらに図3に示す順序にした。パス名の正規化とは、総体パスで記述されたパス名を、相対パスを含まない形式に変換することである。』とあります。
もともとの処理に『ウ:パス名の正規化』を加えたので、ウはe:最初もしくはf:真ん中に入るべきと選択肢を絞ることができます。
『ア:URLデコード』について見ていきます。
デコードとは元のデータに復元することを意味します。
URLに日本語などが含まれている場合、クライアントは送信しやすいようにURLをエンコード(変換)して送信します。
例えば、『あ』でしたら、『%E3%81%82』と変換されます。
クライアントのリクエストを受け取ったサーバ側では『%E3%81%82→あ』というように元のデータに戻すこと、デコードを行います。
デコードしてからパス名の正規化や除外リストとの比較を行わないと意味がありませんので、最初に行われるべきと考えることができます。
次にパスの正規化を行い相対パスの記述を含まない形式に変更してから、除外リストのとの比較を行うと考えることができます。
ということで、『e:ア URLデコード、f:ウ パス名の正規化、g:イ 除外リストとの比較』と考えることができます。
設問3 (1)
下線③としては、『POSTメソッドを使用して実行されたOSコマンドの内容は分からなかった。』とあります。
HTTPリクエストの構造としては、大きくヘッダとボディに分けられます。
ヘッダにはリクエストの内容(URI)や日付や自身の情報などが記載され、ヘッダは必ずなければなりません。
一方ボディはPOST時に用いられ、任意でなくても問題ありません。
ざっくりとした説明とはなってしまいますが、GETはページを表示する際などの情報を取りに行くイメージです。
そして、ヘッダのリクエストに表示したい情報(URI)を記載します。
POSTはアップロードなどのように情報を置きにいくイメージです。
POSTではボディ内にリクエスト内容を記載することも可能です。
表3のアクセスログの内容を確認しますと、リクエストに関してはロギングが行われていますが、ボディ部分のロギングは行われていません。
ということで解答例としては、『POSTメソッドのボディ部分をアクセスログでロギングしていないため(33文字)』と考えることができます。
公式の解答例としては、『POSTメソッドの送信したボディがアクセスログに残っていなかったから』とあります。
表3の注記に『一部の項目は省略している。』とありますので、ボディ部分を本来はロギングしているという可能性もあります。
ですが、時刻やリクエストなどのログが残っているのに、わざわざボディ部分を消すとは考えにくいので、上記のように解答しています。
設問3 (2)
下線④としては、『製品Xでtarコマンドのオプションが悪用されるのを防ぐ対策』とあります。
重要な部分として、『製品Xでは、ファームウェアのアップデート時、wwwアカウントの権限でsudoコマンドを仕様してtarコマンドを実行することで、rootアカウントの権限でアーカイブファイルを展開している。このtarコマンドには、任意のOSコマンドを実行できるオプションがある。ただし、ファームウェアのアップデート時にこのオプションは使用していない。』とあります。
sudoとは、現在のユーザと違うユーザの権限でコマンドを実行するコマンドのことです。
特にユーザを指定せずに実行すれば、特権ユーザの権限で実行されますので、通常のユーザでも特権ユーザの権限でコマンドが実行できる便利なコマンドではあります。
記載があるようにtarコマンド自体はファームウェアのアップデート時に使用されますが、攻撃者が利用するオプションはアップデート時には使用していないとありますので、sudoの設定ファイルにてオプションを使用できないように設定してあげればよいと考えることができます。
ということで解答例としては、『sudoコマンドの設定ファイルで、攻撃者が使用するオプションを使用できないように設定する(44文字)』と考えることができます。
sudoの設定ファイルは『/etc/sudoers』というファイルです。
どのように設定すればいいのかと気になりましたので、別の記事にて深掘りをしていこうと思います。(現在鋭意作成中)
設問4
知識の問題となります。
【h】の部分として、『インターネットの検索エンジンで検索されないようにするために、各Webページのセクションにを記載することを検討した。』とあります。
検索エンジンはクローラーというサイトを自動巡回するロボット(仕組み)を用いて、Webサイトの情報を収集します。
クローラーが集めた情報を分析し、検索エンジンは評価をつけます。
この評価が、検索結果の順位となってあらわれます。
Googleなどで検索結果の1番上に表示されるとページのアクセス数が伸び、2ページ目などはあまり閲覧されなくなってしまいます。
ブログを運営している身としては、1番上とはいかなくてもできるだけ上位に表示されたいので、高い評価を得られるように対策を行います。
これが俗にいうSEO対策です。
話はそれましたが、今回の場合は検索エンジンの検索結果に表示させたくないとあります。
このような場合に用いるのが、『noindex』となります。
『noindex』を指定することで検索結果に表示させないようにすることができます。
また、『none』を用いることでも検索エンジンの検索結果に表示させないようにすることもできます。
『none』はリンク先を検索結果に表示させないという『nofllow』と『noindex』の機能を両方持ち合わせます。
基本的に検索エンジンの検索結果に表示させたくない場合は『nofollow(7文字)』の方を用いるかと思いますが、『none(4文字)』でも実現可能なのでどちらでも正解となります。
ブログなどを行っていると解答することができたかと思います。
公式解答例との比較
私の解答と公式解答を比較してみました。
満点ではないにせよ、少なくとも7割~8割程度は取れているかと思いますので合格ラインには達していると思います。
予想配点はあくまで予想ですので参考程度でお願いします。
出題テーマは『IoT機器のセキュリティインシデント対応と脆弱性対策』でした。
記述問題は論理的に考えることで解答することができる国語の問題が多く出題されましたが、攻撃手法などの用語を選択肢ではなく直接書かせる問題が出題されておりましたので、ある程度知識が必要な問題であったかと思います。
総じて、難易度としては普通~やや難しいだと思います。
配点 |
|||
設問1 (1) | a:ア b:エ |
a:ア b:エ |
各2点 |
設問1 (2) | インバウンド通信を全て許可に変更されてしまうこと(24文字) | 外部からLAN側への通信の許可設定が変更される。 | 6点 |
設問1 (3) | PCがアクセスできない/rootディレクトリ配下のファイルが暗号化されていたため(40文字) | PCからのファイル操作ではアクセスできない領域のファイルが暗号化されたから | 7点 |
設問2 (1) | パストラバーサル(7文字) | パストラバーサル | 4点 |
設問2 (2) | OSコマンドインジェクション(14文字) | OSコマンドインジェクション | 4点 |
設問2 (3) | e:ア f:ウ g:イ |
e:ア f:ウ g:イ |
各2点 |
設問3 (1) | POSTメソッドのボディ部分をアクセスログでロギングしていないため(33文字) | POSTメソッドの送信したボディがアクセスログに残っていなかったから | 7点 |
設問3 (2) | sudoコマンドの設定ファイルで、攻撃者が使用するオプションを使用できないように設定する(44文字) | sudoコマンドの設定ファイルで、tarコマンドのオプションを受け付けないように設定する。 | 8点 |
設問4 | noindex(7文字) or none(4文字) | noindex or none | 4点 |
引用元
問題および解答例に関しては、独立行政法人 情報処理推進機構(IPA)より引用しています。
YouTube解説動画
情報処理安全確保支援士の問題解説
その他の年度、問題解説は以下のページにまとめております。