【SCR04秋PMI問2解説】令和04年秋午後1問2(情報処理安全確保支援士試験)
このNoteでは「セキスペR04秋午後1問2」の解説をします。
各問題の解説:どう正解に至るか
オリジナル視点:解答欄での見極め、最近よく出るLinux
1の解説では、正解に至るために必要な情報を明記し、模範解答だけでなく、私の解答・解答を作る経緯まで書きました。
今回「問1, 2のどちらかを選ぶかで迷った」「問1で痛い目にあった」って方は私と気が合います。解答欄を使った問題の選び方を書いてみたので、ぜひ2も読んで頂けたら嬉しいです。
私はSCPMIIを97点で独学合格し、IT専門学校で授業しています。このNoteには、授業で教えていること以上の情報を詰め込みました。
一所懸命に作ったので、信頼して下さったら嬉しいです。
それでは始めましょう!
設問1 | 複数の表で紐づける
正答は「a3.b3.c3.d3」。必ず正解しましょう。
表3にて、runのプロセスIDが200。表4にて、プロセスIDが200のHTTP通信が、a3.b3.c3.d3へ送られています。
設問2(1) | 最近よくでるプロセスID
模範解答は「runプロセスの親プロセスがTソフトのプロセスであるから」。28文字。40文字制限のわりにはコンパクトですね。
Tソフトとの絡みを見つけます。
プロセスとは実行中のプログラムのことと思ってください。
さらにプロセス(プログラム)は別のプログラムを実行させることがあります。その際に親子関係が生じます。親が終了すると子も終了します。
表3を見ると、runの親プロセスID=100は、java BSoftMainのプロセスIDと同じです。
よって、BSoftMainからrunが実行されていると分かります。
あとは作文。
表3のプロセスIDからTソフトの関係性が伝わるように作文します。なかなか難しいんですよね。
まず、そのままを言語にしてみましょう。
「runの親プロセスIDが、BSoftMainのプロセスIDと同じだから」。35文字。OK。
Tソフトを入れたくなったので、文中から「BSoftMainというTソフトのプロセス」の文言を持ってきて。
「runの親プロセスIDが、TソフトのBSoftMainプロセスのIDと同じだから」。40文字ちょっきり。
さすがに「プロセスIDが100」までは盛り込めないですね。
一応逆視点で書いた方もいるかもなので、頑張ってみますね。
「TソフトのBSoftMainプロセスが、runプロセスを実行しているから」。37文字。
キビシイと思います。親IDは入っておくべきなので。
「TソフトのBSoftMainのプロセスIDが、runの親プロセスIDだから」。37文字。結局前半と後半が入れ替わっただけとなりました。でも正解になるでしょう。
ちょっと書きにくさがありました。問われているのが判断した理由なので、runプロセスの情報(親ID)から特定する流れであるべきかなとは思います。
設問2(2) | コア部分だけ抽出する
正答は、b:13:04:32, c:13:05:50, d:a8.b8.c8.d8, e:LDAP, f:JExp。
今回は手口が複雑に見えますが、コアエッセンスだけを抽出すれば大丈夫です。まず図2から「コア」を把握。
コアは、最初に受けたHTTPリクエストに攻撃文字列がある→LDAPでアクセス→HTTPでJavaクラス入手して実行→HTTPでマルウェア入手して実行。
表5と表6を統合して考えていきます。
13:04:32 インターネット(a7.b7.c7.d7)から予約サーバにHTTPリクエストが来る
13:05:50 予約サーバは、HTTPリクエスト内の攻撃文字列に従ってLDAP発信(JExp)。a8.b8.c8.d8へ。
a8.b8.c8.d8から次のアクセス先と取得する情報を送られる13:05:53 予約サーバは、a8.b8.c8.d8へHTTP発信
a8.b8.c8.d8からJavaクラスが送られ、予約サーバが実行する13:06:05 予約サーバは、a9.b9.c9.d9にHTTP発信
a9.b9.c9.d9からマルウェアが送られ、予約サーバが実行する
図の事例とログIPアドレスが違うし、増え方も違ったので迷ったと思います。私も図2と表5, 6を何度も見直しました。
図2の注記にも「LDAPリクエストやJavaクラスやマルウェアファイル名は違う」という旨が書かれていますね。
設問3(1) | HTTPリクエストは認証可否とは無関係
模範解答は「ログ出力処理する文字列中に攻撃文字列が含まれれば悪用可能だから」。
HTTPリクエストはWebサーバに「これ見せて!」と要求することです。
簡単な例だとgoogle先生に「https://www.google.com/search?q=IPA」と入力したら「IPA」の検索結果がでます。
今回はHTTPリクエストに攻撃文字列が含まれていれば、ライブラリXがログ出力する時に、攻撃文字列が実行されてしまう脆弱性。
WebページにアクセスするだけでWebサーバに攻撃文字列を伝達できるので、認証に成功するしないは無関係です。
私は、認証に無関係な点をアピールする解答にしました。
「予約サーバは、攻撃文字列が含まれたHTTPリクエストを認証前に受け取るから」。37文字。良いでしょう。
書いているのは当たり前すぎる気もしますが。たぶん大丈夫。
他の解答は「最初のHTTPリクエストは認証に関係なく予約サーバは受け取るから」。32文字。
やはり40文字となると難しかったですね。私も本番で正解する自信はないです。
設問3(2) | 「怪しいポイント」に気づいてた?
模範解答は「会員サーバからインターネット宛てのLDAP通信が許可されていないから」。
予約サーバと会員サーバは、どちらもJavaを使用していますし、お客さんからのアクセスを受け付けています。
違うのはFWの設定。
予約サーバは、自発的にインターネットに発信できます。しかも全てのプロトコルで。一方で会員サーバは発信できません。
攻撃の段階と会員サーバの動きを照らし合わせます。
最初に受けたHTTPリクエストに攻撃文字列がある:お客さんと同様に受け付ける
LDAPでアクセス:できない(表2でLDAP発信が許可されていない)
HTTPでJavaクラス入手して実行:上記で止まるため到達せず
HTTPでマルウェア入手して実行:上記で止まるため到達せず
以上より「FWによって会員サーバのインターネットへLDAP発信が許可されていないから」。37文字。良さそう。
もし文字数が厳しければ、以下のように節約します。
許可されていないから(10文字)
→禁止されているから(-1文字, 9文字)
→できないから(-4文字, 6文字)FWによって、を削る(-6文字)
最大10文字削れて27文字。30文字以内でもいけますね。
「攻撃が失敗した」と聞くと迷うかもしれません。
今回のように攻撃の途中段階で先に進まなくなったのも、攻撃の「失敗」と表現されるんですね。FWで弾いたり、サーバに脆弱性がなかったりなどいろんなケースを考えちゃって迷いますよね。
設問4 | 仕様を読み込む
正答は、g:予約サーバ, h:SNS投稿用のサーバのURL, i:全て。
プロキシのフィルタリング設定もよく出題されるので、慣れていきましょう。表1をしっかり読み込めば、必ず正解できる問題です。
さてお話は、予約サーバ→インターネットのHTTPS通信を、予約サーバ→プロキシサーバ→インターネットにするとのこと。
プロキシサーバにURLフィルタリング機能があるので設定するとのこと。
アクセス元は予約サーバなのは良いですね。
許可する発信は、表1より「複数のSNS投稿用のサーバ」。
他の発信は全て禁止したいので、禁止リストは「全て」
合格者が読むときに見たポイント
ここでは、私が学生さんに伝えているオリジナル情報を書きました。
テーマは2つです。
問題の選び方:問1と問2で迷ったので、解答欄を見る
問題演習で気づいて欲しいこと:怪しい点・Linuxの出題傾向
解答欄で問題を選ぶ
今回、私は問1と問2のどちらを選ぶかで迷いました。
大抵問1はプログラムが絡むので、プログラムコードを確認したら絶対に選ばないのですが。
今回は問1はガチプログラムではないし、問1, 2両方にそこそこプログラムっぽいものが含まれています。
解けそうなテーマか・興味を持てそうなテーマかで選ぶのもアリですが、これは試験。なるべく得点できそうな問題を選びたいですね。
私は解答欄を見ます。
用語問題:知らなかったら失点確実
選択問題
記号選択なら有難い(知らなくても消去法が使える)
「適切な字句」なら問題文から流用なので実質選択肢
作文問題
30文字までは問題文流用・単語組み合わせ程度
40文字以上はゼロベースや深い理解なので超負担
一方で、こうも思っています。
用語問題や選択問題は得点しやすい。作問者視点で見ると「点数を与えても公平性が失われないほど、他の問題が難しい」可能性。
よって「作文が少ない」「用語や選択肢が多い」だけで選ばず、ある程度作文も受け入れていきましょう。
【自己責任】解答用紙に触ってはダメとは言われていない。
試験開始前に問題用紙と解答用紙が配布され「合図があるまで、問題用紙を開かないでください」と言われますよね。
解答欄から用語or選択肢(or適切な字句)の数、作文はマス目から文字数が分かりますよね。
私は、解答用紙を触る行為を高度試験全てでしてきましたが、一度も注意も失格にもなっていません。
読んでいるときに必ず気づいておく
表2を見た瞬間に、すぐに▼マーキングしましょう。
これから問題になるに決まっています。ならなければ正直アタオカ。ポンコツセキュリティにも程があります。
私は「FWの項番2で、なんで全プロトコルを許可してるんだろう」と思っています。
設問4のプロキシ経由の通信経路に変更するのは良い対応ですが、そもそも「FWの項番2のサービスをHTTPSのみ許可」しておけば、会員サーバと同じ動作で防げた攻撃です。
もし「どんな対策が考えられるか?」と問われたら、
予約サーバからインターネットへの通信をプロキシサーバ経由に変更する
FWのフィルタリング項番2のサービスをHTTPSのみ許可、に変更する
あたりで答えます。
むしろFWの設定変更の方が重要です。今回の問題はFW項番2のルールの削除を明記していません。直接アクセスを防げません。
最近出題されるLinux関係(プロセス, コマンド)
今回はプロセスIDが出てきました。
これらは、Linuxのpsコマンドで確認できます。Windowsのタスクマネージャも似たようなものです。
プロセスIDは R05春午後1問2 でも出てきました。
しかもコマンドも幾つか出てきています。
問1はプログラム、問3はネットワーク、問2は中間的。問2は、プログラムほどではないけどLinuxコマンド・ほどほどネットワークを絡めた攻撃、という位置づけになってきたのかもしれません。
まとめ
お疲れ様でした!
マルウェアの入手に至るまでの攻撃段階を把握できれば、難しい問題ではなかったです。ただ、解いてみれば理解してみれば思うわけで、本番初見ではなかなか難しいでしょう。
問題オリジナルのマルウェアの動作は未知の情報、さらにLinuxのプロセスやコマンドなど「知らないこと」が加わると、どんどん分からなくなってしまいますね。
プログラム問題は選ばなくて良いとしても、最近の出題傾向を見るにLinuxからは逃げない方が良いですね。
また今回は問1と問2のどちらを選ぶか迷ってしまいました。問1がプログラム問題でなかったので。提案した「解答欄を見た選び方」も参考にしてくだされば嬉しいです。
選んだ以上はチラチラと心変わりせず、足元固定してして撃ち込んでいきましょう!
ぜひ「情報セキュリティスペシャリスト」合格してくださいね。
\私の3ヶ月の学習履歴/
p.s. 普段は >> 専門学校とIT就職のブログ << をやってます。
でわでわ(・ω・▼)ノシ