見出し画像

【SCR04春PMI問2解説】令和04年春午後1問2(情報処理安全確保支援士試験)

このNoteでは「セキスペR04春午後1問2」の解説をします。

  1. 各問題にて「どう正解に至るか」解説

  2. 先生が考える合格に必要な必要知識

1の解説では、正解に至るために必要な情報を明記し、模範解答だけでなく、別解や私の解答、解答を作る経緯まで書きました。

2では、LinuxやWeb技術など、今回の設問を「完全に」理解するために必要な知識を強化します。「今回の設問に正解しても次回に違った形ででて失点しては意味がない」と隙のない考えを持っている方は、ぜひ読んで頂けると嬉しいです。


私はSCPMIIを97点で独学合格し、IT専門学校で授業しています。このNoteには、授業で教えていること以上の情報を詰め込みました。

一所懸命に作ったので、信頼して下さったら嬉しいです。

それでは始めましょう!



設問1(1) | DNSレコードは書き方まで身につける


正答は、ア(Aレコード)、エ(TTL)。


必ず正解してください。

  • DNSサーバで、ホスト名とIPアドレスを紐づけているのはAレコード。

  • 「300秒」よりTTL(Time To Live)。データの寿命。


各選択肢について。

  • ア:Aレコード:ドメイン名→IPアドレス

  • イ:MX:メールサーバ

  • ウ:TLS:暗号通信の規格SSL/TLS

  • エ:TTL:データの寿命(Time To Live)

  • オ:TTY:Linuxコマンド。自分の端末のデバイス名。忘れましょう。

  • カ:TXTレコード:自由な記述ができるDNSレコード。SPFレコードなどに使われる。なんでも書けるので攻撃の原因になることも。>R05春午後1問2の解説Note

繰り返しますが、今回正解してもDNSレコードの仔細はおさえてください。狩られますよ。>SCやNWで知っておくべきDNSの解説Note


DNSレコードは必須です。

書き方まで出題されます。詳しくは >SCやNWで知っておくべきDNSの解説Note


TTL(Time To Live)も必須知識。

今回はDNSレコードの寿命(秒)でしたが、通信プロトコルでの寿命(経由した機器の数)としても良く出題されます。データの寿命はTTLと知っておきましょう。


TTYの実行結果も載せておきます。扱いに困りますよね。

私は学生時代からLinuxを使ってますが、TTYコマンドを使ったことがないです。

もっと覚えておくべきコマンドはたくさんあるので、忘れてください。>R05春午後1問2の解説Note(ps, cron, chmod)




設問1(2) | 注記まで読み込んで解答を作る


模範解答は「外部からLAN側への通信の許可設定が変更される」。


すごく難しいですね。

表2を注記まで読み込んで答えをつむぐ必要があります。

ファイアウォール機能の「インバウンド通信:全て拒否」はWAN側からLAN側への通信を許可していません。アウトバウンド通信(LAN→WAN)は全て許可されていて、応答(WAN→LAN)はステートフルインスペクションによって一時的に許可されます。

ところが「注1」に「UPnP機能による設定が優先される」とあり、もしUPnP機能がWAN側に有効にしていると、ファイアウォール機能の「インバウンド通信:全て拒否」よりも優先した設定ができるようになってしまいます。

よって私の答えは以下あたり。

  • 「ファイアウォール機能に優先してWANからの通信を設定できる」29文字

  • 「WANからルータAの通信可否の設定を変更できる」23文字

要はインターネット側からLAN側に入る設定ができてしまうという旨。




設問1(3) | そろそろLinuxを知っていた方が良い


模範解答は「PCからのファイル操作ではアクセスできない領域のファイルが暗号化されたから」。


ヒント(というか答え)は、10頁最初「ファイル共有機能でもWeb操作機能でもアクセスできない/rootディレクトリ配下のファイルも暗号化されていた」

私の解答は「ファイル共有機能でもWeb操作機能でもアクセスできない領域が暗号化されていたから」40文字ちょっきり。

ほとんど問題文を使って書きました。

また下線②の文章を使って「A社のPCによってアクセスできない領域が暗号化されていたから」30文字。

ちょっと外れるかもですが「NAS-Aの管理者アカウントでしかアクセスできない領域が暗号化されていたから」30文字。管理者アカウントなんて言葉が問題文にないからちょっと自信ないです。

以上のように、問題文から正答をつむげはします。

しかしLinuxを少し知っているともっとすんなり正解に至ります。このNoteの末尾に、Linuxのディレクトリ構造と権限についての解説を追加しておきました。




設問2(1) | 用語問題と具体的手法


模範解答は「バストラバーサル攻撃」ですが「ディレクトリトラバース攻撃」もOK。別名なだけです。

むしろ今まで「ディレクトリトラバーサル攻撃」で覚えてきましたよね。

用語は勘で答えても正解するわけないので、自分の知っている言葉から選びましょう。


基本情報技術者試験でやったパス(path)の知識ですね。

図2に「http://192.168.0.1/images/..%2fstatus.cgiでアクセスするとhttp://102.168.0.1/status.cgiに認証なしでアクセスできてしまう」とあるように、「..」によってimageディレクトリの上層に移動しています。

世界のWebサーバの70%がLinuxで動いています。Windows Serverは10%程度(サーバ専用のWindows)。

LinuxとWindowsはディレクトリ構造が少し違うので、このNoteの末尾に補強を準備しました。




設問2(2) | 用語問題と具体的手法2


正答は「OSコマンドインジェクション」。必ず正解してください。

10頁図2の最後の方の脆弱性2の説明に「OSコマンドを実行できてしまう」より分かります。

Linuxコマンドを知っている方は、whoami(ユーザ名を知る)やping(通信の導通確認)がチラチラ書いてあるので分かりますね。




設問2(3) | 順番問題は最後(目的)から決めても良い


正答は、ア(URLデコード)、ウ(パス名の正規化)、イ(除外リストとの比較)。正解しておきましょう。


  • URLデコード:%など特殊記号を使った表記を解決する

  • パス名の正規化:絶対パスの記述に変換する

  • 除外リストと比較:登録されているディレクトリなら認証なしでアクセス可、登録されていないならアクセス負荷


少なくとも最後gは、イ(除外リストとの比較)ですね。

除外リストに書かれているディレクトリと同じか違うかで、アクセスさせるかを判断したいのですから。

まずは「%」などの変な記号を解決(デコード)して、そ能登パスをキチンとして書式に変換(正規化)します。




設問3(1) | POSTとGETは知っておく


模範解答は「POSTメソッドで送信したボディがアクセスログに残っていなかったから」。


アクセスログをみると、OSコマンドがGETでは見えるけど、POSTでは見えないですね。

GETとPOSTはどっちだったか分からなくなるのですが、今回は問題文に書かれていました。優しい。

このNoteの末尾に補強を準備しておきました。




設問3(2) | 「具体的に」の深さ


模範解答は「sudoコマンドの設定ファイルで、tarコマンドのオプションを受け付けないように設定する」。


設問文「具体的に述べよ」なので「図4をどう設定すれば良いか分からない」で止まってしまいますね。でも模範解答はもうちょっとフワっとした感じでした。


私も本番で正答する自信はないですが、解答を作ってみましょう。

図4下の文章から。「ファームウェアのアップデート時、wwwアカウントの権限でsudoコマンドを実行してtarコマンドを実行することで~」より、tarコマンドを使用禁止にはできません。

でも「ただしファームウェアのアップデート時にこのオプションは使用していない」。つまりオプションは使用禁止して良いのです。

この問題は「tarコマンドには、任意のOSコマンドを実行できるオプションがある」から発生しています。

以上より「sudoコマンドの設定ファイルにて、tarコマンドのオプションを使えないように変更する」43文字。

「tarコマンドのオプション」は必ず入れる言葉です。

また「sudoコマンドの設定ファイル」も必要でしょう。わざわざ図4を掲載していますし、設問文に「具体的に述べよ」とあるため。


私は「具体的に述べよ」を見て「図4の設定方法知らないしなぁ」と止まってしまいました。でも作問者の「具体的に」は「何をどんな感じに設定する」という意味だったんですね。

難しく考えすぎて止まった時は、書いてある情報だけで何か書けないか考えるのも良いのかも、と学んだ設問でした。




設問4 | 日頃からITに触れているか


模範解答は「noindex」または「none」。


google検索で使うデータベースを作るために、クローラというプログラムがWebページを巡回しています。googleのデータベースに登録されることを「インデックスされる」と云います。

ただしnoindexを設定していたら、登録はされません。検索で表示されたくないWebページに設定します。カテゴリーページなどに設定することが多いです。

これはHTMLの問題ですね。HTMLでWebを作る勉強をしたり、ブログを運営したりしていると身に付きます。

このNoteの末尾に「日頃からITに触れておいてね!」という解説を少し書いておきました。結構助かるんですよ。




合格するのに必要な知識


今回の問題の背景知識を補強します。

  • 設問1(3):Linuxのディレクトリ構造と権限

  • 設問2(1):Webサーバのディレクトリとディレクトリトラバーサル攻撃

  • 設問3(1):GETとPOSTの違い

  • 設問4:試験のためにITに触れておいて欲しい理由

問題演習を「正解した/しなかった」「合格点だった/足りなかった」で終わらせては勿体ないです。

少しキビシイことを言いますが、過去問演習をたくさんしたのに合格できないのは復習方法を間違えています。

勿論ITパスポートとは違って問題の「流用」なんてありません。しかし、過去問で出た技術の「別の知識」が問われることがあります。

例えばDNSのAレコードが今回出ましたが、MX・CNANE・SPFレコードの復習するんです。実際に出題されています。

今回強く感じたのは「Linux周りが必要になってきたなぁ」でした。




設問1(3)の補強 | Linuxのディレクトリ権限


設問1(3)のルートディレクトリへの権限について強化します。私は学生時代からLinuxを使っていたのですぐに正答に至りました。


ルートディレクトリってコンピュータの最上位のディレクトリ。全てのディレクトリ/ファイルの大元なので、全削除するOSごと壊れます。

ルートディレクトリ「/」は、管理者権限でないと書き換えはできません(閲覧は他のアカウントでもできます)。

ユーザアカウント(例えばkotepan)は、ルートディレクトリ「/」を見ることはできますが、書き換えたり削除などの操作はできません。kotepanは「/home/kotepan」内なら自分の領域なので好きに使えます。

最近のSCにはLinuxの知識がちょいちょい入ってきています。過去問演習の度で良いので、Linuxの基礎を学んでいくとアドバンテージになります。

このNoteの最後でも強化しますし、他の過去問でもプロセスIDやコマンドも出題されています。




設問2(1)の補強 | ディレクトリトラバーサル攻撃


設問2(1)のディレクトリトラバーサル攻撃(バストラバーサル攻撃)について、Webサーバのディレクトリ構造を解説します。


ディレクトリトラバーサル攻撃は、Webページのリンクを用いずに、直接ファイルやフォルダへのアクセスを試みる攻撃です。

実は、Webサーバはディレクトリに一部をインターネットに公開しています。

Webサーバアプリで有名なApacheの場合、/usr/local/apache2/htdocs内のファイルを公開します。


webページの住所「URL」は、Webサーバ内でのファイルの場所を指しています。

http://192.168.0.1/index.htmlにアクセスすれば、htdocs直下のindex.htmlが表示されます。

http://192.168.0.1/image/にように直接指定すると、画像ファイルの一覧が表示されます。本来はindex.htmlなどで読み込まれる画像たちです。

今回はURLエンコードを利用したディレクトリトラバーサル攻撃によって、1つ上のディレクトリに移動していました。




設問3(1)の補強 | HTTPのPOSTとGET


Webブラウザで入力して送信ボタンを押した後に、Webサーバに内容を送る方法が2通りあるんですよね。

  • GET:URLの一部として送る

  • POSTではHTTP通信の中身にデータを埋め込む(URLにはデータは表れない)

GETとPOSTはどっちだったか分からなくなりますよね。

よくどっちか分からなくなるので「郵便ポスト(POST)に送るときは封筒に入れるよね」と覚えることにします。すみません今考えました。

AMII対策ですが、攻撃手法HTTP GET floodやHTTP POST floodでも見ることになります。




設問4の補強 | 日頃からITに触れておくメリット


高度にはしばしば「日頃からITに触れているか、ニュースを見ているか」を問われる問題がでます。なかなか対策テキストの勉強だけでは答えられない問題です。

日頃のスマホの認証や電子決済・インターネットバンキング・スマホアプリなどの経験がないと正解が大変困難です。

積極的に触れられなくても、普段使いの中で「こんなことあったな」ってのを考えるようにしてください。

例えば以下のような場面に遭遇したことはないですか?

  • CAPTCHA(歪んだ文字列)

  • リスクベース認証(普段と違う端末やネットワークからアクセスした時の行う追加認証)

  • アプリの画像識別(口座解説の免許証の読み込み)

Linuxはハードルが高いかもですが、スマートフォンやパソコンなら触れていますよね。少しだけ観察するようにしてみてください。




まとめ


お疲れ様でした!


ディレクトリトラバーサル攻撃、OSコマンドインジェクション攻撃の具体的な手法が学べる問題でしたね。

問題文にある情報で解けるようには配慮されていましたが、GET/POSTの専門知識だけでなく、Linuxの知識があるとアドバンテージがあることも分かりました。

もう少し過去問解説を作ったら、Linuxについてまとめてみないとなぁと思った問題でした。私を待たず、復習して学習ノートにまとめてみてくださいね。最初はコマンドと権限に注目すると良いですよ。

ぜひ「情報セキュリティスペシャリスト」合格してくださいね。

\私の3ヶ月の学習履歴/

p.s. 普段は >> 専門学校とIT就職のブログ << をやってます。
でわでわ(・ω・▼)ノシ

この記事が参加している募集

学習方法・問題特集のNoteは全て無料提供を続けます▼ もしご覧になったNoteが有益だったり、私の志に共感されたりしましたら、サポート頂けますと励みになります▼ もちろんコメントでも結構です(・ω・▼)ノシ