こんにちは、mokakoです。
今回は情報処理安全確保支援士試験の令和元年度 秋期 午後Ⅱ 問1を解説していきたいと思います!
※この解説ブログでは、あくまでも私自身が解いた備忘録となりますので、間違いなどを発見された場合はどうぞ教えていただけますと幸いです。
下記より問題文と解答を引用しております。
問題
出典:令和元年度 秋期 情報処理安全確保支援士試験 午後Ⅱ 問1
https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2019h31_2/2019r01a_sc_pm2_qs.pdf
解答
https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2019h31_2/2019r01a_sc_pm2_ans.pdf
では早速解説してまいります!
設問1
(1)DBMS-Rにおける同じ脆弱性を悪用されて、別のマルウェアXまたはほかのマルウェアに再度感染してしまい、マルウェアXの動作が阻害される。
解説
攻撃者が表1の先頭に6379/tcpへのパケットを破棄するルールを挿入した理由を考えます。マルウェアXはそのポートを利用してDBMS-Rに接続したのに、なぜその後はパケットを破棄する必要があるのでしょうか。
今回の攻撃者の視点に立つと、破棄しない場合、自分が利用した後も6379/tcpは開いたままなので、いつでも悪意を持った者によって攻撃されてしまいます。別の者に攻撃されてしまうと、自分の攻撃が阻害されてしまう可能性があります。そのため、このような解答になります。
(2)α. カ β. ク γ. ア
解説
ルートキットの動作についての穴埋めです。こちらはLinuxの知識が必要になってきます。図4も参考にしながら考えていきます。
まず α ですが、Linuxにおけるプロセス監視を出力するコマンドはtopコマンドになります。
次に通常は β 関数を通して γ 内のファイルにアクセスできるとあります。図4も併せて考えると、通常時はtopコマンドは β 関数を通じてディレクトリγ内のファイルにアクセスし当該プロセスの状態を参照して表示していることが分かります。このときにtopコマンドが使用する関数は”ライブラリ関数”、参照するディレクトリは”/proc/123(プロセスID)”となります。
(3)マルウェアXには、暗号資産の採掘プログラムによる採掘演算結果以外の情報を外部に送信する機能はなく、マルウェアX以外による遠隔コマンド実行およびSSHサービスへの接続がなかったから
解説
下線②サーバAからの会員情報の漏えいがなかったと結論付けた理由を答えます。
下線②の前の段落に書かれていることを箇条書きにすると、
(ⅰ)ネットワーク経由でのサーバA上のDBMS-Rへのアクセスは、S社のPC以外からだとマルウェアXの1回のみ
(ⅱ)遠隔コマンド実行はマルウェアXによるものだけ
(ⅲ)SSHサービスへの接続はS社のPCからのみ
です。つまり、遠隔操作はマルウェアXによるものだけ。さらに図2の4.(1)より、マルウェアXには採掘演算結果以外を外部へ送信する機能はありません。これをまとめれば解答することができます。
設問2
(1)対策1 (イ)
対策2 (イ)
対策3 (ア)、(エ)
対策4 (ウ)、(エ)、(オ)
解説
表2の対策を行うと、図2の3.マルウェアXのどの機能を抑制することができるかを考えます。
図2の対策を一つずつ見ていきます。
対策1は、サーバAへのアクセス制限を行うものです。これを実行した時、DBMS-Rに侵入することが不可能になるので、(イ)が防止できます。その他の機能は直接防止できるわけではないので、ここでは(イ)のみです。
対策2は、ポート番号をデフォルト以外に変更して、開いていると推測されているポートの悪用を防ぐものです。こちらも対策1と同じ理由で(イ)のみが正解です。
対策3は、サーバAからのインターネットへのSSH、HTTP及びHTTPSを禁止、つまりサーバAを遠隔操作しサーバAがインターネットへアクセスするのを防ぎます。これによって直接防げるのは(ア)と(エ)です。
対策4は、アプリやミドルウェアを限られた権限でしか稼働できなくすることで、行動を制限します。この対策が直接防ぐのは(ウ)、(エ)、(オ)になります。
(2)あ. 22/tcp
い. 6379/tcp
う. a2.b2.c2.d2
解説
対策3のSSH、HTTP及びHTTPSについて、サーバAから外部へのアクセスを禁止の方法である、FWのフィルタリングルール変更についての穴埋めです。
変更前の表1と変更後の表3を見比べながら解いていきます。
表1と表3の項番1,2はどちらも共通なので、変更はありません。
その次の項番3,4に変更点があると推測できます。表1では送信元は全てとなっています。ここで対策3の内容からも分かるように、全てからでは、外部からもアクセスできてしまうので、送信元を制限する必要があります。送信元については、p7の最後のPさんの発言に注目すると、アクセスはS社の開発用LANだけからなので、とあるので、(う)には開発用LANのグローバルIPアドレスである、”a2.b2.c2.d2″が当てはまります。
(あ)と(い)は”22/tcp”か”6379/tcp” が入ります。先程のPさんの発言の続きを見ると、DBMS-Rのポートは(い)のままにします、とあるので、(い)に “6379/tcp”が入り、(あ)に “22/tcp”が入ることが分かります。
(3)a. curl
b. iptables
解説
図3を見ると、2と3にそれぞれ実行されたコマンドが明記されています。まず、a ですが、このコマンドによってファイルをダウンロードしていて、図3の2に次のコマンドを実行して、引数のURLからスクリプトファイルをダウンロードとあるので、curlが正解となります。
次に b ですが、図2の(ウ)が実行とあります。図2の(ウ)とはサーバのFWルールを変更する機能です。つまり、b によってサーバのFWルールを変更する機能が実行されました。図3の3に次のコマンドを実行し、表1の先頭にルールが挿入された旨の記述があるので、iptablesが正解となります。
(4)え. オ お. カ か. キ
解説
ライブラリのファイルの改ざん検知の提案についての穴埋め問題です。流れを整理すると、
(ⅰ)保護対象ファイルの(え)を計算して、保護された場所に保存
(ⅱ)定期的に保護対象ファイルの(え)を計算し直した値と保存しておいた値を(お)する
(ⅲ)(か)または改ざんが検知できる
(ⅱ)にて(ⅰ)で元々計算しておいた値と、最新の計算し直した値を(お)して検知しているので、元の値(正しい値)と新しい値を比較していると推測できます。そのため、(お)は カ 比較 が当てはまります。
また、少しの変更でも大きく変わる値といえば、ハッシュ値です。そのため(え)には オ ハッシュ値 が当てはまります。
最後に(か)または改ざんが検知できるとありますが、(ⅱ)ハでッシュ値が異なっているのはファイルに何らかの変更があった時です。そのため、(か)には キ 変更 が当てはまります。
設問3
(1)ア、ウ
解説
これは知識問題です。知らない場合は名前で予測するか、勘で書くしかないです・・・全部一言で説明すると、
ア CIS Benchmarks:インターネットセキュリティに関する構成ガイドライン
イ FedRAMP:クラウドサービスの調達におけるセキュリティ評価のための枠組み
ウ OWASP ASVS:アプリケーションセキュリティ検証標準
エ OWASP ZAP:webアプリケーション脆弱性診断ツール
オ QUIC:Google社が開発したUDP上で通信を行うプロトコル
カ X.509:PKIに関する規格
です。参考になりそうなセキュリティ対策の標準、と言っているのでセキュリティ関連でかつ参考にできる標準のようなものはア、ウになります。
(2)S社のシステムを構成する実行環境のバージョン情報を把握して、その情報を常に最新にしておくこと
解説
収集する情報を必要十分な範囲に絞るため、情報収集に先立って必要な措置を考えます。
下線④の前の文章に注目すると、運用プロセスでは、自社内で使用している実行環境の脆弱性情報の収集を強化することにした、とあります。
ここでp3に書かれていた現状の問題について思い出します。Sシステムでは、OS、ライブラリ及びミドルウェアを全く更新していないという問題もある、と書かれていて、この記述に対する対応は他の設問で聞かれていなかったので、ここが答えになると推測できます。しかし最新バージョンに更新しておくだけでは、少し不十分で、常に実行環境の構成情報を把握しておき、かつ最新であることが大切なので、こちらと併せて解答すると良いです。
(3)き. ア く. ウ
解説
脆弱性情報が報告された後に、社内で行うべき対応について考えます。
まず、社内で(き)を実施とあります。その後、パッチを適用すべきかの判断を行っているので、(き)では脆弱性についての評価を行っていると推測できます。解答群だとア “CVSSによる脆弱性アセスメント”が当てはまります。
また、ここで適用すべきと判断した場合、検証環境でパッチを適用し(く)を行った上で、問題がなければ、本番環境でパッチを適用する、とあるので、本番環境にリリースするために検証環境で行わなければならない作業です。そのため、ここではウ “回帰テスト”が当てはまります。
(4)け. レビュー
こ. 第三者
解説
前後の手順を見ると、2. 手順書作成→3. (?)→4. 手順書に基づいて作業です。作成と実際の作業の間に必要なプロセスはなんでしょうか。想像してみると、自分で資料を作成したとき、誰かに見てもらいます。誤字などはもちろんその資料の内容がおかしくないかアドバイスしてほしいですね。
手順書などを作成し、それを用いた運用を行う場合、必ず作成者以外がレビューを行い、必要に応じて修正を行います。
したがって、(け)には”レビュー”、(こ)には”第三者”が入ります。
設問4
c. オ d. ア e. エ f. カ g. キ h. ウ
解説
コンテナ技術に関する穴埋め問題です。
まず、サーバで c を一つ稼働させておけば、c の上で、あとあるので、c にはコンテナを管理する”コンテナエンジン”が当てはまることが分かります。
次に、d ごとに別の e を稼働させることが可能、とあります。ここだけでは少し不安です。しかし次の次の文章を見ると、c(コンテナエンジン)の上で稼働する e は複製が容易なので、とあります。コンテナエンジン上で稼働するのはコンテナなので、e は”コンテナ”が当てはまります。
また、同じ開発環境をいくつも用意して d を開発、とあるので、”アプリ”が当てはまることが分かります。先程の文章に当てはめると、アプリごとに別のコンテナを稼働させることが可能となり、意味が通ります。
少し飛んで、構成情報については、f を確認することができ、とあります。構成情報とは現在のバージョンや過去に行った変更についての情報になります。そのため、解答群より、”変更の履歴”が当てはまります。
次に g です。リリースする際の確認のため、g 環境と同じ実行環境を用意して、d(アプリ)が動作するかを確認することが可能となります、とあります。リリースする際は必ず、本番環境と同じ環境でテストを行う必要があるので、ここは”本番”が当てはまります。
最後に h です。図5で提案した h 環境も用意できます、とあります。図5をみてみると検証プロセスの項目で、検証環境がないので、用意すべきである、との記述があります。したがってここは”検証”が当てはまります。
コメント